@trycourier/courier-react 8.0.4-beta → 8.0.7-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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../src/hooks/use-courier.tsx","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../src/renderer/modern.tsx","../src/renderer/renderer.tsx","../src/utils/utils.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-menu.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","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","/** @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","/** @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","import { ReactNode } from \"react\";\nimport { flushSync } from 'react-dom';\nimport { createRoot } from 'react-dom/client';\n\nexport default class ModernRenderer {\n\n public static render(node: ReactNode, container: HTMLElement) {\n flushSync(() => {\n const root = createRoot(container);\n root.render(node);\n });\n }\n\n}","import { ReactNode, version } from 'react';\nimport ModernRenderer from './modern';\n\nexport default class Renderer {\n private static reactVersion = parseInt(version.split('.')[0]);\n\n public static async render(node: ReactNode, container: HTMLElement) {\n if (Renderer.reactVersion >= 18) {\n ModernRenderer.render(node, container);\n } else {\n // TODO: Solve bugs with React 17\n const { default: LegacyRenderer } = await import('./legacy');\n LegacyRenderer.render(node, container);\n }\n }\n}","import { ReactNode } from \"react\";\nimport Renderer from \"../renderer/renderer\";\n\n/**\n * Converts React node to HTMLElement with synchronous updates\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n Renderer.render(node, container);\n return 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"],"names":["__defProp","__defNormalProp","__publicField","_CourierSocket","_Courier","__defProp2","__defNormalProp2","__publicField2","_CourierInboxDatastore","CourierInbox","CourierInboxMenu","require$$1","React","require$$0","ReactDebugCurrentFrame","jsxRuntimeModule","jsx"],"mappings":"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","x_google_ignoreList":[3,4,5]}