@trycourier/courier-react 8.0.14-beta ā 8.0.16-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 +1 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +377 -417
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../src/utils/utils.tsx","../src/components/courier-client-component.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-popup-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst _CourierSocket = class _CourierSocket {\n constructor(url, options) {\n // Properties\n __publicField(this, \"webSocket\", null);\n __publicField(this, \"pingInterval\", null);\n // Callbacks\n __publicField(this, \"onOpen\");\n __publicField(this, \"onMessageReceived\");\n __publicField(this, \"onClose\");\n __publicField(this, \"onError\");\n // Properties\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = url;\n this.options = options;\n }\n /**\n * Dynamically checks if the WebSocket is connected\n */\n get isConnected() {\n return this.webSocket !== null;\n }\n async connect() {\n this.disconnect();\n return new Promise((resolve, reject) => {\n try {\n this.webSocket = new WebSocket(this.url);\n this.webSocket.onopen = () => {\n var _a;\n (_a = this.onOpen) == null ? void 0 : _a.call(this);\n resolve();\n };\n this.webSocket.onmessage = (event) => {\n var _a;\n (_a = this.onMessageReceived) == null ? void 0 : _a.call(this, event.data);\n };\n this.webSocket.onclose = (event) => {\n var _a;\n this.webSocket = null;\n (_a = this.onClose) == null ? void 0 : _a.call(this, event.code, event.reason);\n };\n this.webSocket.onerror = (event) => {\n var _a;\n this.webSocket = null;\n const error = new Error(\"Courier Socket connection failed\");\n error.originalEvent = event;\n (_a = this.onError) == null ? void 0 : _a.call(this, error);\n reject(error);\n };\n } catch (error) {\n this.webSocket = null;\n reject(error);\n }\n });\n }\n disconnect() {\n this.stopPing();\n if (this.webSocket) {\n this.webSocket.close(_CourierSocket.NORMAL_CLOSURE_STATUS);\n this.webSocket = null;\n }\n }\n async send(message) {\n if (!this.webSocket) {\n return false;\n }\n const json = JSON.stringify(message);\n return this.webSocket.send(json) !== void 0;\n }\n keepAlive(props) {\n this.stopPing();\n this.pingInterval = setInterval(async () => {\n var _a;\n try {\n await this.send({ action: \"keepAlive\" });\n } catch (error) {\n (_a = this.options.logger) == null ? void 0 : _a.error(\"Error occurred on Keep Alive:\", error);\n }\n }, (props == null ? void 0 : props.intervalInMillis) ?? 3e5);\n }\n stopPing() {\n if (this.pingInterval) {\n clearInterval(this.pingInterval);\n this.pingInterval = null;\n }\n }\n};\n// Constants\n__publicField(_CourierSocket, \"NORMAL_CLOSURE_STATUS\", 1e3);\nlet CourierSocket = _CourierSocket;\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nclass UUID {\n static generate(prefix) {\n const id = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n return prefix ? prefix + id : id;\n }\n}\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nclass InboxSocket extends CourierSocket {\n constructor(options) {\n const url = InboxSocket.buildUrl(options);\n super(url, options);\n __publicField(this, \"receivedMessage\");\n __publicField(this, \"receivedMessageEvent\");\n this.onMessageReceived = (data) => this.convertToType(data);\n }\n convertToType(data) {\n var _a, _b, _c, _d;\n try {\n const payload = JSON.parse(data);\n switch (payload.type) {\n case \"event\":\n const messageEvent = JSON.parse(data);\n (_a = this.receivedMessageEvent) == null ? void 0 : _a.call(this, messageEvent);\n break;\n case \"message\":\n const message = JSON.parse(data);\n (_b = this.receivedMessage) == null ? void 0 : _b.call(this, message);\n break;\n }\n } catch (error) {\n (_c = this.options.logger) == null ? void 0 : _c.error(\"Error parsing socket message\", error);\n if (error instanceof Error) {\n (_d = this.onError) == null ? void 0 : _d.call(this, error);\n }\n }\n }\n async sendSubscribe(props) {\n var _a;\n const subscription = {\n action: \"subscribe\",\n data: {\n userAgent: \"courier-js\",\n // TODO: Equivalent to Courier.agent.value()\n channel: this.options.userId,\n event: \"*\",\n version: (props == null ? void 0 : props.version) ?? 5\n }\n };\n if (this.options.connectionId) {\n subscription.data.clientSourceId = this.options.connectionId;\n }\n if (this.options.tenantId) {\n subscription.data.accountId = this.options.tenantId;\n }\n (_a = this.options.logger) == null ? void 0 : _a.debug(\"Sending subscribe request\", subscription);\n await this.send(subscription);\n }\n static buildUrl(options) {\n var _a;\n let url = ((_a = options.apiUrls) == null ? void 0 : _a.inbox.webSocket) ?? \"\";\n if (options.accessToken) {\n url += `/?auth=${options.accessToken}`;\n }\n return url;\n }\n}\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new InboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.generate());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.generate();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nconst BaseElement = typeof window === \"undefined\" ? class {\n constructor() {\n }\n} : class extends HTMLElement {\n constructor() {\n super();\n }\n};\nclass CourierSystemThemeElement extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nconst CourierIconSVGs = {\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`\n};\nclass CourierIcon extends BaseElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n 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: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nclass CourierLink extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.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, ${theme.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, ${theme.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 `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n 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: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nclass CourierIconButton extends BaseElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n 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 `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nfunction registerElement(name, element) {\n if (typeof window !== \"undefined\" && !customElements.get(name)) {\n customElements.define(name, element);\n }\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton },\n { name: \"courier-system-theme\", class: CourierSystemThemeElement }\n];\ncomponents.forEach(({ name, class: componentClass }) => registerElement(name, componentClass));\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierInboxListItemMenu extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.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 `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nregisterElement(\"courier-inbox-list-item-menu\", CourierInboxListItemMenu);\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(\"CourierInbox socket connectionId:\", (_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId);\n if (socket.isConnected) {\n (_h = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _h.info(\"CourierInbox socket already connected. Socket will not attempt reconnection.\");\n return;\n }\n socket.receivedMessage = (message) => {\n this.addMessage(message, 0, \"inbox\");\n };\n socket.receivedMessageEvent = (event) => {\n let message;\n if (event.messageId) {\n message = this.getMessage({ messageId: event.messageId });\n }\n switch (event.event) {\n case \"mark-all-read\":\n this.readAllMessages({ canCallApi: false });\n break;\n case \"read\":\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case \"unread\":\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case \"opened\":\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case \"archive\":\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case \"archive-read\":\n this.archiveReadMessages({ canCallApi: false });\n break;\n case \"click\":\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case \"unarchive\":\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case \"unopened\":\n break;\n }\n };\n await socket.connect();\n await socket.sendSubscribe();\n socket.keepAlive();\n (_j = (_i = Courier.shared.client) == null ? void 0 : _i.options.logger) == null ? void 0 : _j.info(\"CourierInbox socket connected\");\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierInboxListItemMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.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: ${(listItem == null ? void 0 : listItem.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: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Menu hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover):has(courier-inbox-list-item-menu:hover, courier-inbox-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-inbox-list-item-menu:active, courier-inbox-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.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: ${(listItem == null ? void 0 : listItem.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: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-inbox-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 `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem ā failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nregisterElement(\"courier-inbox-list-item\", CourierListItem);\nclass CourierInboxSkeletonListItem extends BaseElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n 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: ${opacity};\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\nclass CourierSkeletonAnimatedRow extends BaseElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.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 `;\n }\n}\nregisterElement(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n 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: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\nclass CourierInboxPaginationListItem extends BaseElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nregisterElement(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\nclass CourierInboxList extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-list\", CourierInboxList);\nclass CourierInboxOptionMenuItem extends BaseElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n 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: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.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: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nregisterElement(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\nclass CourierInboxOptionMenu extends BaseElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n 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: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.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: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\nclass CourierUnreadCountBadge extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-unread-count-badge\", CourierUnreadCountBadge);\nclass CourierInboxHeaderTitle extends BaseElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n 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: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n 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: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[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 `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header\", CourierInboxHeader);\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends BaseElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n 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 `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nregisterElement(\"courier-inbox\", CourierInbox);\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n 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 `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-menu-button\", CourierInboxMenuButton);\nclass CourierInboxPopupMenu extends BaseElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n 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: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.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 `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nregisterElement(\"courier-inbox-popup-menu\", CourierInboxPopupMenu);\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxPopupMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import { ReactNode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\n\n/**\n * Converts a React node to an HTMLElement.\n * This function uses flushSync to ensure the DOM is updated synchronously.\n * @param node - The React node to convert.\n * @returns The converted HTMLElement.\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n\n // Use flushSync to ensure the DOM is updated synchronously\n flushSync(() => {\n render(node, container);\n });\n\n return container;\n}\n\n/**\n * Render a React node using createRoot.\n * @param node - The React node to render.\n * @param container - The container to render the node into.\n * @returns The rendered node.\n */\nfunction render(node: ReactNode, container: HTMLElement) {\n const root = createRoot(container);\n return root.render(node);\n}","import React, { useState, useEffect } from 'react';\n\ninterface CourierClientProps {\n children: React.ReactNode;\n}\n\nexport const CourierClientComponent: React.FC<CourierClientProps> = ({ children }) => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // During SSR, render nothing or fallback\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (!isMounted) {\n return null;\n }\n\n return <>{children}</>;\n};","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxPopupMenu as CourierInboxPopupMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxPopupMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxPopupMenu = (props: CourierInboxPopupMenuProps) => {\n const menuRef = useRef<CourierInboxPopupMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox-popup-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","_CourierSocket","constructor","url","options","__publicField$1","this","isConnected","webSocket","connect","disconnect","Promise","resolve","reject","WebSocket","onopen","_a","onOpen","call","onmessage","event","onMessageReceived","data","onclose","onClose","code","reason","onerror","error","Error","originalEvent","onError","stopPing","close","NORMAL_CLOSURE_STATUS","send","message","json","JSON","stringify","keepAlive","props","pingInterval","setInterval","async","action","logger","intervalInMillis","clearInterval","CourierSocket","getCourierApiUrls","urls","courier","rest","graphql","inbox","Logger","showLogs","warn","args","console","PREFIX","log","debug","info","UUID","generate","prefix","id","Math","random","toString","substring","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","apiUrls","userId","Authorization","accessToken","brand","InboxSocket","buildUrl","convertToType","_b","_c","_d","parse","messageEvent","receivedMessageEvent","receivedMessage","sendSubscribe","subscription","userAgent","channel","version","connectionId","clientSourceId","tenantId","accountId","InboxClient","socket","getMessages","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","bytes","Uint8Array","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","process","env","NODE_ENV","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","listener","authenticationListeners","push","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","window","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","addEventListener","removeEventListener","BaseElement","HTMLElement","CourierSystemThemeElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","_","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","defaultFontSize","defaultBackgroundColor","defaultTextColor","defaultBorder","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","registerElement","customElements","get","define","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierInboxListItemMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_a2","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_e","_f","_g","_h","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","_l","addMessage","getMessage","readAllMessages","canCallApi","readMessage","unreadMessage","openMessage","archiveMessage","archiveReadMessages","clickMessage","unarchiveMessage","find","m","fetchNextPageOfMessages","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","setTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","clearTimeout","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","size","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","floor","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","parseInt","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","message2","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","getComponentNameFromType","$$typeof","REACT_CLIENT_REFERENCE","displayName","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","getTaskName","UnknownOwner","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","source","self","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","hasOwnProperty","keys","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineKeyPropWarningGetter","owner","REACT_ELEMENT_TYPE","_owner","_store","ReactElement","ReactSharedInternals","A","getOwner","node","validated","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","Array","isArray","createTask","unknownOwnerDebugStack","React$1","callStackForError","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","exports","jsxProd","reactJsxRuntime_production","require$$1","reactNodeToHTMLElement","flushSync","root","createRoot","CourierClientComponent","isMounted","setIsMounted","useState","useEffect","inboxRef","useRef","current","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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AAIC,GAAIC,GAAKC,GAAKC,GAAKC,GAAKqG,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,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","x_google_ignoreList":[2,3,4]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../src/utils/utils.tsx","../src/components/courier-client-component.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-popup-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CLOSE_CODE_NORMAL_CLOSURE = 1e3;\nconst IPW_VERSION = \"v1\";\nconst _CourierSocket = class _CourierSocket {\n constructor(options) {\n /** The WebSocket instance, which may be null if the connection is not established. */\n __publicField(this, \"webSocket\", null);\n /** The number of connection retry attempts so far, reset after a successful connection. */\n __publicField(this, \"retryAttempt\", 0);\n /** The timeout ID for the current connectionretry attempt, reset when we attempt to connect. */\n __publicField(this, \"retryTimeoutId\", null);\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = options.apiUrls.inbox.webSocket;\n this.options = options;\n }\n /**\n * Connects to the Courier WebSocket server.\n *\n * If the connection is already established, this is a no-op.\n *\n * @returns A promise that resolves when the connection is established or rejects if the connection could not be established.\n */\n async connect() {\n var _a;\n this.clearRetryTimeout();\n if (this.isConnecting || this.isOpen) {\n (_a = this.options.logger) == null ? void 0 : _a.info(\"Attempted to open a WebSocket connection, but one already exists.\");\n return Promise.reject(new Error(\"WebSocket connection already exists\"));\n }\n return new Promise((resolve, reject) => {\n this.webSocket = new WebSocket(this.getWebSocketUrl());\n this.webSocket.addEventListener(\"open\", (event) => {\n this.retryAttempt = 0;\n this.onOpen(event);\n resolve();\n });\n this.webSocket.addEventListener(\"message\", async (event) => {\n var _a2;\n try {\n const json = JSON.parse(event.data);\n if (\"event\" in json && json.event === \"reconnect\") {\n this.close(CLOSE_CODE_NORMAL_CLOSURE);\n await this.retryConnection(json.retryAfter * 1e3);\n return;\n }\n this.onMessageReceived(json);\n } catch (error) {\n (_a2 = this.options.logger) == null ? void 0 : _a2.error(\"Error parsing socket message\", error);\n }\n });\n this.webSocket.addEventListener(\"close\", (event) => {\n if (event.code !== CLOSE_CODE_NORMAL_CLOSURE) {\n const courierCloseEvent = _CourierSocket.parseCloseEvent(event);\n if (courierCloseEvent.retryAfterSeconds) {\n this.retryConnection(courierCloseEvent.retryAfterSeconds * 1e3);\n } else {\n this.retryConnection();\n }\n }\n this.onClose(event);\n });\n this.webSocket.addEventListener(\"error\", (event) => {\n this.retryConnection();\n this.onError(event);\n reject(event);\n });\n });\n }\n /**\n * Closes the WebSocket connection.\n *\n * See {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close} for more details.\n *\n * @param code The WebSocket close code. Defaults to {@link CLOSE_CODE_NORMAL_CLOSURE}.\n * @param reason The WebSocket close reason.\n */\n close(code = CLOSE_CODE_NORMAL_CLOSURE, reason) {\n if (this.webSocket === null) {\n return;\n }\n this.webSocket.close(code, reason);\n this.webSocket = null;\n }\n /**\n * Sends a message to the Courier WebSocket server.\n *\n * @param message The message to send. The message will be serialized to a JSON string.\n */\n send(message) {\n var _a;\n if (this.webSocket === null || this.isConnecting) {\n (_a = this.options.logger) == null ? void 0 : _a.info(\"Attempted to send a message, but the WebSocket is not yet open.\");\n return;\n }\n const json = JSON.stringify(message);\n this.webSocket.send(json);\n }\n get userId() {\n return this.options.userId;\n }\n get logger() {\n return this.options.logger;\n }\n /**\n * Whether the WebSocket connection is currently being established.\n */\n get isConnecting() {\n return this.webSocket !== null && this.webSocket.readyState === WebSocket.CONNECTING;\n }\n /**\n * Whether the WebSocket connection is currently open.\n */\n get isOpen() {\n return this.webSocket !== null && this.webSocket.readyState === WebSocket.OPEN;\n }\n /**\n * Constructs the WebSocket URL for the Courier WebSocket server using context\n * from the {@link CourierClientOptions} passed to the constructor.\n *\n * @returns The WebSocket URL\n */\n getWebSocketUrl() {\n const accessToken = this.options.accessToken;\n const connectionId = this.options.connectionId;\n const userId = this.userId;\n return `${this.url}?auth=${accessToken}&cid=${connectionId}&iwpv=${IPW_VERSION}&userId=${userId}`;\n }\n /**\n * Parses the Retry-After time from the WebSocket close event reason,\n * and returns a new {@link CourierCloseEvent} with the retry after time in seconds\n * if present.\n *\n * The Courier WebSocket server may send the close event reason in the following format:\n *\n * ```json\n * {\n * \"Retry-After\": \"10\" // The retry after time in seconds\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/reason\n *\n * @param closeEvent The WebSocket close event.\n * @returns The WebSocket close event with the retry after time in seconds.\n */\n static parseCloseEvent(closeEvent) {\n if (closeEvent.reason === null || closeEvent.reason === \"\") {\n return closeEvent;\n }\n try {\n const jsonReason = JSON.parse(closeEvent.reason);\n if (!jsonReason[_CourierSocket.RETRY_AFTER_KEY]) {\n return closeEvent;\n }\n const retryAfterSeconds = parseInt(jsonReason[_CourierSocket.RETRY_AFTER_KEY]);\n if (Number.isNaN(retryAfterSeconds) || retryAfterSeconds < 0) {\n return closeEvent;\n }\n return {\n ...closeEvent,\n retryAfterSeconds\n };\n } catch (error) {\n return closeEvent;\n }\n }\n /**\n * Calculates the retry backoff time in milliseconds based on the current retry attempt.\n */\n getBackoffTimeInMillis() {\n const backoffIntervalInMillis = _CourierSocket.BACKOFF_INTERVALS_IN_MILLIS[this.retryAttempt];\n const lowerBound = backoffIntervalInMillis - backoffIntervalInMillis * _CourierSocket.BACKOFF_JITTER_FACTOR;\n const upperBound = backoffIntervalInMillis + backoffIntervalInMillis * _CourierSocket.BACKOFF_JITTER_FACTOR;\n return Math.floor(Math.random() * (upperBound - lowerBound) + lowerBound);\n }\n /**\n * Retries the connection to the Courier WebSocket server after\n * either {@param suggestedBackoffTimeInMillis} or a random backoff time\n * calculated using {@link getBackoffTimeInMillis}.\n *\n * @param suggestedBackoffTimeInMillis The suggested backoff time in milliseconds.\n * @returns A promise that resolves when the connection is established or rejects if the connection could not be established.\n */\n async retryConnection(suggestedBackoffTimeInMillis) {\n var _a, _b, _c;\n if (this.retryTimeoutId !== null) {\n (_a = this.logger) == null ? void 0 : _a.debug(\"Skipping retry attempt because a previous retry is already scheduled.\");\n return;\n }\n if (this.retryAttempt >= _CourierSocket.MAX_RETRY_ATTEMPTS) {\n (_b = this.logger) == null ? void 0 : _b.error(`Max retry attempts (${_CourierSocket.MAX_RETRY_ATTEMPTS}) reached.`);\n return;\n }\n const backoffTimeInMillis = suggestedBackoffTimeInMillis ?? this.getBackoffTimeInMillis();\n this.retryTimeoutId = window.setTimeout(async () => {\n try {\n await this.connect();\n } catch (error) {\n }\n }, backoffTimeInMillis);\n (_c = this.logger) == null ? void 0 : _c.debug(`Retrying connection in ${Math.floor(backoffTimeInMillis / 1e3)}s. Retry attempt ${this.retryAttempt + 1} of ${_CourierSocket.MAX_RETRY_ATTEMPTS}.`);\n this.retryAttempt++;\n }\n /**\n * Clears the retry timeout if it exists.\n */\n clearRetryTimeout() {\n if (this.retryTimeoutId !== null) {\n window.clearTimeout(this.retryTimeoutId);\n this.retryTimeoutId = null;\n }\n }\n};\n/**\n * The jitter factor for the backoff intervals.\n *\n * Backoff with jitter is calculated as a random value in the range:\n * [BACKOFF_INTERVAL - BACKOFF_JITTER_FACTOR * BACKOFF_INTERVAL,\n * BACKOFF_INTERVAL + BACKOFF_JITTER_FACTOR * BACKOFF_INTERVAL).\n */\n__publicField(_CourierSocket, \"BACKOFF_JITTER_FACTOR\", 0.5);\n/**\n * The maximum number of retry attempts.\n */\n__publicField(_CourierSocket, \"MAX_RETRY_ATTEMPTS\", 5);\n/**\n * Backoff intervals in milliseconds.\n *\n * Each represents an offset from the previous interval, rather than a\n * absolute offset from the initial request time.\n */\n__publicField(_CourierSocket, \"BACKOFF_INTERVALS_IN_MILLIS\", [\n 3e4,\n // 30 seconds\n 6e4,\n // 1 minute\n 12e4,\n // 2 minutes\n 24e4,\n // 4 minutes\n 48e4\n // 8 minutes\n]);\n/**\n * The key of the retry after time in the WebSocket close event reason.\n *\n * The Courier WebSocket server may send the close event reason in the following format:\n *\n * ```json\n * {\n * \"Retry-After\": \"10\" // The retry after time in seconds\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/reason\n */\n__publicField(_CourierSocket, \"RETRY_AFTER_KEY\", \"Retry-After\");\nlet CourierSocket = _CourierSocket;\nvar ClientAction = /* @__PURE__ */ ((ClientAction2) => {\n ClientAction2[\"Subscribe\"] = \"subscribe\";\n ClientAction2[\"Unsubscribe\"] = \"unsubscribe\";\n ClientAction2[\"Pong\"] = \"pong\";\n ClientAction2[\"Ping\"] = \"ping\";\n return ClientAction2;\n})(ClientAction || {});\nvar ServerAction = /* @__PURE__ */ ((ServerAction2) => {\n ServerAction2[\"Ack\"] = \"ack\";\n ServerAction2[\"Ping\"] = \"ping\";\n ServerAction2[\"Pong\"] = \"pong\";\n return ServerAction2;\n})(ServerAction || {});\nvar MessageEvent = /* @__PURE__ */ ((MessageEvent2) => {\n MessageEvent2[\"NewMessage\"] = \"message\";\n MessageEvent2[\"Archive\"] = \"archive\";\n MessageEvent2[\"ArchiveAll\"] = \"archive-all\";\n MessageEvent2[\"ArchiveRead\"] = \"archive-read\";\n MessageEvent2[\"Clicked\"] = \"clicked\";\n MessageEvent2[\"MarkAllRead\"] = \"mark-all-read\";\n MessageEvent2[\"Opened\"] = \"opened\";\n MessageEvent2[\"Read\"] = \"read\";\n MessageEvent2[\"Unarchive\"] = \"unarchive\";\n MessageEvent2[\"Unopened\"] = \"unopened\";\n MessageEvent2[\"Unread\"] = \"unread\";\n return MessageEvent2;\n})(MessageEvent || {});\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nconst _UUID = class _UUID {\n /**\n * nanoid\n * Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>\n *\n * https://github.com/ai/nanoid/blob/main/LICENSE\n *\n * @param size - The size of the UUID to generate.\n * @returns A string representing the UUID.\n */\n static nanoid(size = 21) {\n let id = \"\";\n let bytes = crypto.getRandomValues(new Uint8Array(size |= 0));\n while (size--) {\n id += _UUID.ALPHABET[bytes[size] & 63];\n }\n return id;\n }\n};\n__publicField(_UUID, \"ALPHABET\", \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\");\nlet UUID = _UUID;\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.nanoid() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.nanoid() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nconst _CourierInboxSocket = class _CourierInboxSocket extends CourierSocket {\n constructor(options) {\n super(options);\n // 1 minute\n /**\n * The interval ID for the ping interval.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval\n */\n __publicField(this, \"pingIntervalId\", null);\n /**\n * The list of message event listeners, called when a message event is received\n * from the Courier WebSocket server.\n */\n __publicField(this, \"messageEventListeners\", []);\n }\n onOpen(_) {\n this.restartPingInterval();\n return Promise.resolve();\n }\n onMessageReceived(data) {\n if (\"action\" in data && data.action === ServerAction.Ping) {\n const envelope = data;\n this.sendPong(envelope);\n }\n if (\"event\" in data) {\n for (const listener of this.messageEventListeners) {\n listener(data);\n }\n }\n this.restartPingInterval();\n return Promise.resolve();\n }\n onClose(_) {\n return Promise.resolve();\n }\n onError(_) {\n return Promise.resolve();\n }\n /**\n * Sends a subscribe message to the server.\n *\n * Subscribes to all events for the user.\n */\n sendSubscribe() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Subscribe,\n data: {\n channel: this.userId,\n event: \"*\"\n }\n };\n this.send(envelope);\n }\n /**\n * Sends an unsubscribe message to the server.\n *\n * Unsubscribes from all events for the user.\n */\n sendUnsubscribe() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Unsubscribe,\n data: {\n channel: this.userId\n }\n };\n this.send(envelope);\n }\n /**\n * Adds a message event listener, called when a message event is received\n * from the Courier WebSocket server.\n *\n * @param listener The listener function\n */\n addMessageEventListener(listener) {\n this.messageEventListeners.push(listener);\n }\n /**\n * Send a ping message to the server.\n *\n * ping/pong is implemented at the application layer since the browser's\n * WebSocket implementation does not support control-level ping/pong.\n */\n sendPing() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Ping\n };\n this.send(envelope);\n }\n /**\n * Send a pong response to the server.\n *\n * ping/pong is implemented at the application layer since the browser's\n * WebSocket implementation does not support control-level ping/pong.\n */\n sendPong(incomingMessage) {\n const response = {\n tid: incomingMessage.tid,\n action: ClientAction.Pong\n };\n this.send(response);\n }\n /**\n * Restart the ping interval, clearing the previous interval if it exists.\n */\n restartPingInterval() {\n if (this.pingIntervalId) {\n window.clearInterval(this.pingIntervalId);\n }\n this.pingIntervalId = window.setInterval(() => {\n this.sendPing();\n }, _CourierInboxSocket.PING_INTERVAL_MILLIS);\n }\n};\n/**\n * The interval in milliseconds at which to send a ping message to the server\n * if no other message has been received from the server.\n */\n__publicField(_CourierInboxSocket, \"PING_INTERVAL_MILLIS\", 6e4);\nlet CourierInboxSocket = _CourierInboxSocket;\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new CourierInboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.nanoid());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.nanoid();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n MessageEvent,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier, MessageEvent } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nconst BaseElement = typeof window === \"undefined\" ? class {\n constructor() {\n }\n} : class extends HTMLElement {\n constructor() {\n super();\n }\n};\nclass CourierSystemThemeElement extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nconst CourierIconSVGs = {\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`,\n 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>`\n};\nclass CourierIcon extends BaseElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n 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: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nclass CourierLink extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.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, ${theme.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, ${theme.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 `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n 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: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nclass CourierIconButton extends BaseElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n 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 `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nfunction registerElement(name, element) {\n if (typeof window !== \"undefined\" && !customElements.get(name)) {\n customElements.define(name, element);\n }\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton },\n { name: \"courier-system-theme\", class: CourierSystemThemeElement }\n];\ncomponents.forEach(({ name, class: componentClass }) => registerElement(name, componentClass));\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierInboxListItemMenu extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.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 `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nregisterElement(\"courier-inbox-list-item-menu\", CourierInboxListItemMenu);\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n if (socket.isConnecting || socket.isOpen) {\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(`Inbox socket already connecting or open for client ID: [${(_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId}]`);\n return;\n }\n socket.addMessageEventListener((event) => {\n if (event.event === MessageEvent.NewMessage) {\n const message2 = event.data;\n this.addMessage(message2, 0, \"inbox\");\n return;\n }\n const message = this.getMessage({ messageId: event.messageId });\n switch (event.event) {\n case MessageEvent.MarkAllRead:\n this.readAllMessages({ canCallApi: false });\n break;\n case MessageEvent.Read:\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unread:\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Opened:\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Archive:\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.ArchiveRead:\n this.archiveReadMessages({ canCallApi: false });\n break;\n case MessageEvent.Clicked:\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unarchive:\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unopened:\n break;\n }\n });\n await socket.connect();\n await socket.sendSubscribe();\n (_i = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _i.info(`Inbox socket connected for client ID: [${(_h = Courier.shared.client) == null ? void 0 : _h.options.connectionId}]`);\n } catch (error) {\n (_k = (_j = Courier.shared.client) == null ? void 0 : _j.options.logger) == null ? void 0 : _k.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n if (!props.messageId) {\n return void 0;\n }\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierInboxListItemMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.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: ${(listItem == null ? void 0 : listItem.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: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Menu hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover):has(courier-inbox-list-item-menu:hover, courier-inbox-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-inbox-list-item-menu:active, courier-inbox-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.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: ${(listItem == null ? void 0 : listItem.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: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-inbox-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 `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem ā failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nregisterElement(\"courier-inbox-list-item\", CourierListItem);\nclass CourierInboxSkeletonListItem extends BaseElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n 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: ${opacity};\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\nclass CourierSkeletonAnimatedRow extends BaseElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.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 `;\n }\n}\nregisterElement(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n 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: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\nclass CourierInboxPaginationListItem extends BaseElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nregisterElement(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\nclass CourierInboxList extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-list\", CourierInboxList);\nclass CourierInboxOptionMenuItem extends BaseElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n 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: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.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: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nregisterElement(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\nclass CourierInboxOptionMenu extends BaseElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n 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: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.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: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\nclass CourierUnreadCountBadge extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-unread-count-badge\", CourierUnreadCountBadge);\nclass CourierInboxHeaderTitle extends BaseElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n 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: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n 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: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[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 `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header\", CourierInboxHeader);\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends BaseElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n 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 `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nregisterElement(\"courier-inbox\", CourierInbox);\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n 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 `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-menu-button\", CourierInboxMenuButton);\nclass CourierInboxPopupMenu extends BaseElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n 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: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.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 `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nregisterElement(\"courier-inbox-popup-menu\", CourierInboxPopupMenu);\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxPopupMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import { ReactNode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\n\n/**\n * Converts a React node to an HTMLElement.\n * This function uses flushSync to ensure the DOM is updated synchronously.\n * @param node - The React node to convert.\n * @returns The converted HTMLElement.\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n\n // Use flushSync to ensure the DOM is updated synchronously\n flushSync(() => {\n render(node, container);\n });\n\n return container;\n}\n\n/**\n * Render a React node using createRoot.\n * @param node - The React node to render.\n * @param container - The container to render the node into.\n * @returns The rendered node.\n */\nfunction render(node: ReactNode, container: HTMLElement) {\n const root = createRoot(container);\n return root.render(node);\n}","import React, { useState, useEffect } from 'react';\n\ninterface CourierClientProps {\n children: React.ReactNode;\n}\n\nexport const CourierClientComponent: React.FC<CourierClientProps> = ({ children }) => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // During SSR, render nothing or fallback\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (!isMounted) {\n return null;\n }\n\n return <>{children}</>;\n};","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxPopupMenu as CourierInboxPopupMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxPopupMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxPopupMenu = (props: CourierInboxPopupMenuProps) => {\n const menuRef = useRef<CourierInboxPopupMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox-popup-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","CLOSE_CODE_NORMAL_CLOSURE","_CourierSocket","constructor","options","__publicField$1","this","url","apiUrls","inbox","webSocket","connect","_a","clearRetryTimeout","isConnecting","isOpen","logger","info","Promise","reject","Error","resolve","WebSocket","getWebSocketUrl","addEventListener","event","retryAttempt","onOpen","async","_a2","json","JSON","parse","data","close","retryConnection","retryAfter","onMessageReceived","error","code","courierCloseEvent","parseCloseEvent","retryAfterSeconds","onClose","onError","reason","send","message","stringify","userId","readyState","CONNECTING","OPEN","accessToken","connectionId","closeEvent","jsonReason","RETRY_AFTER_KEY","parseInt","Number","isNaN","getBackoffTimeInMillis","backoffIntervalInMillis","BACKOFF_INTERVALS_IN_MILLIS","lowerBound","BACKOFF_JITTER_FACTOR","upperBound","Math","floor","random","suggestedBackoffTimeInMillis","_b","_c","retryTimeoutId","debug","MAX_RETRY_ATTEMPTS","backoffTimeInMillis","window","setTimeout","clearTimeout","CourierSocket","ClientAction","ClientAction2","ServerAction","ServerAction2","MessageEvent","MessageEvent2","getCourierApiUrls","urls","courier","rest","graphql","Logger","showLogs","warn","args","console","PREFIX","log","_UUID","nanoid","size","id","bytes","crypto","getRandomValues","Uint8Array","ALPHABET","UUID","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","props","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","Authorization","brand","_CourierInboxSocket","_","restartPingInterval","action","Ping","envelope","sendPong","listener","messageEventListeners","sendSubscribe","tid","Subscribe","channel","sendUnsubscribe","Unsubscribe","addMessageEventListener","push","sendPing","incomingMessage","Pong","pingIntervalId","clearInterval","setInterval","PING_INTERVAL_MILLIS","CourierInboxSocket","InboxClient","socket","getMessages","tenantId","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","_Courier2","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","authenticationListeners","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","removeEventListener","BaseElement","HTMLElement","CourierSystemThemeElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","defaultFontSize","defaultBackgroundColor","defaultTextColor","defaultBorder","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","toString","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","_d","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","registerElement","customElements","get","define","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierInboxListItemMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_e","_f","_g","_h","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","call","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","NewMessage","message2","addMessage","getMessage","MarkAllRead","readAllMessages","canCallApi","Read","readMessage","Unread","unreadMessage","Opened","openMessage","Archive","archiveMessage","ArchiveRead","archiveReadMessages","Clicked","clickMessage","Unarchive","unarchiveMessage","Unopened","find","m","fetchNextPageOfMessages","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","disconnect","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","subscription","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","jsxRuntimeModule","exports","REACT_ELEMENT_TYPE","Symbol","for","REACT_FRAGMENT_TYPE","jsxProd","config","maybeKey","propName","ref","$$typeof","reactJsxRuntime_production","Fragment","jsx","jsxs","require$$0","reactNodeToHTMLElement","node","flushSync","root","createRoot","CourierClientComponent","children","isMounted","setIsMounted","useState","useEffect","inboxRef","useRef","current","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","React","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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","x_google_ignoreList":[2,3]}
|