@trycourier/courier-react 8.0.9-beta ā 8.0.12-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 +5 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +291 -865
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -5
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.min.js","../src/utils/utils.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-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};\nclass CourierSystemThemeElement extends HTMLElement {\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}\nif (!customElements.get(\"courier-button\")) {\n customElements.define(\"courier-button\", CourierButton);\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 HTMLElement {\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}\nif (!customElements.get(\"courier-icon\")) {\n customElements.define(\"courier-icon\", CourierIcon);\n}\nclass CourierLink extends HTMLElement {\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]);\nif (!customElements.get(\"courier-link\")) {\n customElements.define(\"courier-link\", CourierLink);\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}\nif (!customElements.get(\"courier-info-state\")) {\n customElements.define(\"courier-info-state\", CourierInfoState);\n}\nclass CourierIconButton extends HTMLElement {\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}\nif (!customElements.get(\"courier-icon-button\")) {\n customElements.define(\"courier-icon-button\", CourierIconButton);\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];\ncomponents.forEach(({ name, class: componentClass }) => {\n if (!customElements.get(name)) {\n customElements.define(name, componentClass);\n }\n});\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 CourierListItemActionMenu extends HTMLElement {\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}\nif (!customElements.get(\"courier-list-item-menu\")) {\n customElements.define(\"courier-list-item-menu\", CourierListItemActionMenu);\n}\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 HTMLElement {\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 CourierListItemActionMenu(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-list-item-menu:hover, courier-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-list-item-menu:active, courier-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-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}\nif (!customElements.get(\"courier-list-item\")) {\n customElements.define(\"courier-list-item\", CourierListItem);\n}\nclass CourierInboxSkeletonListItem extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-skeleton-list-item\")) {\n customElements.define(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\n}\nclass CourierSkeletonAnimatedRow extends HTMLElement {\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}\nif (!customElements.get(\"courier-skeleton-animated-row\")) {\n customElements.define(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\n}\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}\nif (!customElements.get(\"courier-inbox-skeleton-list\")) {\n customElements.define(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\n}\nclass CourierInboxPaginationListItem extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-pagination-list-item\")) {\n customElements.define(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\n}\nclass CourierInboxList extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-list\")) {\n customElements.define(\"courier-inbox-list\", CourierInboxList);\n}\nclass CourierInboxOptionMenuItem extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-filter-menu-item\")) {\n customElements.define(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\n}\nclass CourierInboxOptionMenu extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-option-menu\")) {\n customElements.define(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\n}\nclass CourierUnreadCountBadge extends HTMLElement {\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}\nif (!customElements.get(\"courier-unread-count-badge\")) {\n customElements.define(\"courier-unread-count-badge\", CourierUnreadCountBadge);\n}\nclass CourierInboxHeaderTitle extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-header-title\")) {\n customElements.define(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\n}\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}\nif (!customElements.get(\"courier-inbox-header\")) {\n customElements.define(\"courier-inbox-header\", CourierInboxHeader);\n}\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 HTMLElement {\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}\nif (!customElements.get(\"courier-inbox\")) {\n customElements.define(\"courier-inbox\", CourierInbox);\n}\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}\nif (!customElements.get(\"courier-inbox-menu-button\")) {\n customElements.define(\"courier-inbox-menu-button\", CourierInboxMenuButton);\n}\nclass CourierInboxMenu extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-menu\")) {\n customElements.define(\"courier-inbox-menu\", CourierInboxMenu);\n}\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 CourierInboxMenu,\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","/** @license React v17.0.2\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar _assign = require('object-assign');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%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://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` 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://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentName(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('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 {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","import { ReactNode, version } from \"react\";\nimport ReactDOM, { flushSync } from \"react-dom\";\n\nconst reactVersion = parseInt(version.split('.')[0]);\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 with compatibility for React 17 and 18+ (createRoot).\n * See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis\n * for compatibility details\n *\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 // Check if createRoot is a function (React 18+)\n if (reactVersion >= 18) {\n // Lazy load createRoot from react-dom/client\n import('react-dom/client').then(({ createRoot }) => {\n if (createRoot instanceof Function) {\n const root = createRoot(container);\n return root.render(node);\n }\n });\n }\n\n // Fallback to render (React 17)\n const render = (ReactDOM as any)[\"render\"];\n return render(node, container);\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\";\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 /* @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 );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxMenu as CourierInboxMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\n\nexport interface CourierInboxMenuProps {\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 CourierInboxMenu = (props: CourierInboxMenuProps) => {\n const menuRef = useRef<CourierInboxMenuElement>(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 /* @ts-ignore */\n <courier-inbox-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 );\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","CourierSystemThemeElement","HTMLElement","_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","customElements","get","define","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","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierListItemActionMenu","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","CourierInboxMenu","React","require$$0","_assign","require$$1","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","exports","Fragment","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_LEGACY_HIDDEN_TYPE","Symbol","for","symbolFor","MAYBE_ITERATOR_SYMBOL","iterator","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","format","_len2","Array","_key2","level","stack","ReactDebugCurrentFrame","getStackAddendum","concat","argsWithFormat","unshift","prototype","apply","printWarning","getContextName","displayName","getComponentName","tag","$$typeof","_context","outerType","innerType","wrapperName","functionName","_render","lazyComponent","_payload","init","_init","x","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledDepth","disabledLog","__reactDisabledLog","ReactCurrentDispatcher","describeBuiltInComponentFrame","source","ownerFn","match","trim","componentFrameCache","reentry","PossiblyWeakMap","WeakMap","Map","describeNativeComponentFrame","fn","construct","control","frame","previousDispatcher","previousPrepareStackTrace","prepareStackTrace","current","group","groupCollapsed","groupEnd","defineProperties","disableLogs","Fake","set","Reflect","sample","sampleLines","split","controlLines","s","c","_frame","replace","reenableLogs","syntheticFrame","describeFunctionComponentFrame","describeUnknownElementTypeFrameInDEV","isReactComponent","loggedTypeFailures","setCurrentlyValidatingElement","owner","_owner","_source","setExtraStackFrame","specialPropKeyWarningShown","specialPropRefWarningShown","ReactCurrentOwner","hasOwnProperty","RESERVED_PROPS","ref","__self","__source","jsxDEV","config","maybeKey","self","propName","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","hasValidRef","warnIfStringRefCannotBeAutoConverted","defaultProps","warnAboutAccessingKey","defineKeyPropWarningGetter","warnAboutAccessingRef","defineRefPropWarningGetter","_store","freeze","ReactElement","propTypesMisspellWarningShown","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","isValidElement","object","getDeclarationErrorAddendum","ownerHasKeyUseWarning","validateExplicitKey","parentType","validated","currentComponentErrorInfo","parentName","getCurrentComponentErrorInfo","childOwner","validateChildKeys","node","isArray","child","iteratorFn","maybeIterable","maybeIterator","getIteratorFn","step","next","done","validatePropTypes","propTypes","typeSpecs","values","componentName","has","typeSpecName","error$1","ex","checkPropTypes","PropTypes","getDefaultProps","isReactClassApproved","jsxWithValidation","isStaticChildren","validType","isValidElementType","typeString","keys","children","fragment","validateFragmentProps","jsx","jsxs","jsxRuntimeModule","f","reactJsxRuntime_production_min","h","n","p","q","a","k","d","reactVersion","reactNodeToHTMLElement","flushSync","import","then","createRoot","ReactDOM","inboxRef","useRef","useEffect","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","useState","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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AAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIC,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,GAA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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/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-inbox.tsx","../src/components/courier-inbox-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};\nclass CourierSystemThemeElement extends HTMLElement {\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}\nif (!customElements.get(\"courier-button\")) {\n customElements.define(\"courier-button\", CourierButton);\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 HTMLElement {\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}\nif (!customElements.get(\"courier-icon\")) {\n customElements.define(\"courier-icon\", CourierIcon);\n}\nclass CourierLink extends HTMLElement {\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]);\nif (!customElements.get(\"courier-link\")) {\n customElements.define(\"courier-link\", CourierLink);\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}\nif (!customElements.get(\"courier-info-state\")) {\n customElements.define(\"courier-info-state\", CourierInfoState);\n}\nclass CourierIconButton extends HTMLElement {\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}\nif (!customElements.get(\"courier-icon-button\")) {\n customElements.define(\"courier-icon-button\", CourierIconButton);\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];\ncomponents.forEach(({ name, class: componentClass }) => {\n if (!customElements.get(name)) {\n customElements.define(name, componentClass);\n }\n});\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 CourierListItemActionMenu extends HTMLElement {\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}\nif (!customElements.get(\"courier-list-item-menu\")) {\n customElements.define(\"courier-list-item-menu\", CourierListItemActionMenu);\n}\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 HTMLElement {\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 CourierListItemActionMenu(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-list-item-menu:hover, courier-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-list-item-menu:active, courier-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-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}\nif (!customElements.get(\"courier-list-item\")) {\n customElements.define(\"courier-list-item\", CourierListItem);\n}\nclass CourierInboxSkeletonListItem extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-skeleton-list-item\")) {\n customElements.define(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\n}\nclass CourierSkeletonAnimatedRow extends HTMLElement {\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}\nif (!customElements.get(\"courier-skeleton-animated-row\")) {\n customElements.define(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\n}\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}\nif (!customElements.get(\"courier-inbox-skeleton-list\")) {\n customElements.define(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\n}\nclass CourierInboxPaginationListItem extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-pagination-list-item\")) {\n customElements.define(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\n}\nclass CourierInboxList extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-list\")) {\n customElements.define(\"courier-inbox-list\", CourierInboxList);\n}\nclass CourierInboxOptionMenuItem extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-filter-menu-item\")) {\n customElements.define(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\n}\nclass CourierInboxOptionMenu extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-option-menu\")) {\n customElements.define(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\n}\nclass CourierUnreadCountBadge extends HTMLElement {\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}\nif (!customElements.get(\"courier-unread-count-badge\")) {\n customElements.define(\"courier-unread-count-badge\", CourierUnreadCountBadge);\n}\nclass CourierInboxHeaderTitle extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-header-title\")) {\n customElements.define(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\n}\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}\nif (!customElements.get(\"courier-inbox-header\")) {\n customElements.define(\"courier-inbox-header\", CourierInboxHeader);\n}\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 HTMLElement {\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}\nif (!customElements.get(\"courier-inbox\")) {\n customElements.define(\"courier-inbox\", CourierInbox);\n}\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}\nif (!customElements.get(\"courier-inbox-menu-button\")) {\n customElements.define(\"courier-inbox-menu-button\", CourierInboxMenuButton);\n}\nclass CourierInboxMenu extends HTMLElement {\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}\nif (!customElements.get(\"courier-inbox-menu\")) {\n customElements.define(\"courier-inbox-menu\", CourierInboxMenu);\n}\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 CourierInboxMenu,\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, { 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\";\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 /* @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 );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxMenu as CourierInboxMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\n\nexport interface CourierInboxMenuProps {\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 CourierInboxMenu = (props: CourierInboxMenuProps) => {\n const menuRef = useRef<CourierInboxMenuElement>(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 /* @ts-ignore */\n <courier-inbox-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 );\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","CourierSystemThemeElement","HTMLElement","_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","customElements","get","define","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","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierListItemActionMenu","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","CourierInboxMenu","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","inboxRef","useRef","useEffect","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","useState","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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AAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIC,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,GAA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","x_google_ignoreList":[2,3,4]}
|