@trycourier/courier-react 8.0.14-beta → 8.0.15-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../src/utils/utils.tsx","../src/components/courier-client-component.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-popup-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst _CourierSocket = class _CourierSocket {\n constructor(url, options) {\n // Properties\n __publicField(this, \"webSocket\", null);\n __publicField(this, \"pingInterval\", null);\n // Callbacks\n __publicField(this, \"onOpen\");\n __publicField(this, \"onMessageReceived\");\n __publicField(this, \"onClose\");\n __publicField(this, \"onError\");\n // Properties\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = url;\n this.options = options;\n }\n /**\n * Dynamically checks if the WebSocket is connected\n */\n get isConnected() {\n return this.webSocket !== null;\n }\n async connect() {\n this.disconnect();\n return new Promise((resolve, reject) => {\n try {\n this.webSocket = new WebSocket(this.url);\n this.webSocket.onopen = () => {\n var _a;\n (_a = this.onOpen) == null ? void 0 : _a.call(this);\n resolve();\n };\n this.webSocket.onmessage = (event) => {\n var _a;\n (_a = this.onMessageReceived) == null ? void 0 : _a.call(this, event.data);\n };\n this.webSocket.onclose = (event) => {\n var _a;\n this.webSocket = null;\n (_a = this.onClose) == null ? void 0 : _a.call(this, event.code, event.reason);\n };\n this.webSocket.onerror = (event) => {\n var _a;\n this.webSocket = null;\n const error = new Error(\"Courier Socket connection failed\");\n error.originalEvent = event;\n (_a = this.onError) == null ? void 0 : _a.call(this, error);\n reject(error);\n };\n } catch (error) {\n this.webSocket = null;\n reject(error);\n }\n });\n }\n disconnect() {\n this.stopPing();\n if (this.webSocket) {\n this.webSocket.close(_CourierSocket.NORMAL_CLOSURE_STATUS);\n this.webSocket = null;\n }\n }\n async send(message) {\n if (!this.webSocket) {\n return false;\n }\n const json = JSON.stringify(message);\n return this.webSocket.send(json) !== void 0;\n }\n keepAlive(props) {\n this.stopPing();\n this.pingInterval = setInterval(async () => {\n var _a;\n try {\n await this.send({ action: \"keepAlive\" });\n } catch (error) {\n (_a = this.options.logger) == null ? void 0 : _a.error(\"Error occurred on Keep Alive:\", error);\n }\n }, (props == null ? void 0 : props.intervalInMillis) ?? 3e5);\n }\n stopPing() {\n if (this.pingInterval) {\n clearInterval(this.pingInterval);\n this.pingInterval = null;\n }\n }\n};\n// Constants\n__publicField(_CourierSocket, \"NORMAL_CLOSURE_STATUS\", 1e3);\nlet CourierSocket = _CourierSocket;\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nclass UUID {\n static generate(prefix) {\n const id = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n return prefix ? prefix + id : id;\n }\n}\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nšŸ“” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nšŸ“” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nclass InboxSocket extends CourierSocket {\n constructor(options) {\n const url = InboxSocket.buildUrl(options);\n super(url, options);\n __publicField(this, \"receivedMessage\");\n __publicField(this, \"receivedMessageEvent\");\n this.onMessageReceived = (data) => this.convertToType(data);\n }\n convertToType(data) {\n var _a, _b, _c, _d;\n try {\n const payload = JSON.parse(data);\n switch (payload.type) {\n case \"event\":\n const messageEvent = JSON.parse(data);\n (_a = this.receivedMessageEvent) == null ? void 0 : _a.call(this, messageEvent);\n break;\n case \"message\":\n const message = JSON.parse(data);\n (_b = this.receivedMessage) == null ? void 0 : _b.call(this, message);\n break;\n }\n } catch (error) {\n (_c = this.options.logger) == null ? void 0 : _c.error(\"Error parsing socket message\", error);\n if (error instanceof Error) {\n (_d = this.onError) == null ? void 0 : _d.call(this, error);\n }\n }\n }\n async sendSubscribe(props) {\n var _a;\n const subscription = {\n action: \"subscribe\",\n data: {\n userAgent: \"courier-js\",\n // TODO: Equivalent to Courier.agent.value()\n channel: this.options.userId,\n event: \"*\",\n version: (props == null ? void 0 : props.version) ?? 5\n }\n };\n if (this.options.connectionId) {\n subscription.data.clientSourceId = this.options.connectionId;\n }\n if (this.options.tenantId) {\n subscription.data.accountId = this.options.tenantId;\n }\n (_a = this.options.logger) == null ? void 0 : _a.debug(\"Sending subscribe request\", subscription);\n await this.send(subscription);\n }\n static buildUrl(options) {\n var _a;\n let url = ((_a = options.apiUrls) == null ? void 0 : _a.inbox.webSocket) ?? \"\";\n if (options.accessToken) {\n url += `/?auth=${options.accessToken}`;\n }\n return url;\n }\n}\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new InboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.generate());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.generate();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nconst BaseElement = typeof window === \"undefined\" ? class {\n constructor() {\n }\n} : class extends HTMLElement {\n constructor() {\n super();\n }\n};\nclass CourierSystemThemeElement extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nconst CourierIconSVGs = {\n inbox: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z\" fill=\"currentColor\"/>\n</svg>`,\n archive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z\" fill=\"currentColor\"/>\n</svg>`,\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z\" fill=\"currentColor\"/>\n</svg>`,\n filter: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z\" fill=\"currentColor\"/>\n</svg>`,\n overflow: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z\" fill=\"currentColor\"/>\n</svg>`,\n read: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z\" fill=\"currentColor\"/>\n</svg>`,\n archiveRead: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z\" fill=\"currentColor\"/>\n</svg>`,\n unread: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z\" fill=\"currentColor\"/>\n</svg>`,\n unarchive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z\" fill=\"currentColor\"/>\n</svg>`\n};\nclass CourierIcon extends BaseElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n return `\n :host {\n display: inline-block;\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n svg {\n width: 24px;\n height: 24px;\n color: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nclass CourierLink extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: inline-block;\n }\n\n a {\n text-decoration: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s ease;\n font-family: var(--courier-link-font-family, inherit);\n font-size: var(--courier-link-font-size, inherit);\n }\n\n /* Variants */\n a[data-variant=\"primary\"][data-mode=\"light\"] {\n color: var(--courier-link-color, ${theme.light.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:active {\n opacity: 0.6;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"] {\n color: var(--courier-link-color, ${theme.dark.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:active {\n opacity: 0.6;\n }\n\n a[data-underline=\"true\"] {\n text-decoration: underline;\n }\n\n a:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n }\n `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n return `\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n text-align: center;\n padding: 24px;\n }\n\n .container h2 {\n margin: 0;\n color: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nclass CourierIconButton extends BaseElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: inline-block;\n border-radius: ${this._borderRadius ?? \"50%\"};\n }\n\n button {\n border: none;\n border-radius: ${this._borderRadius ?? \"50%\"};\n cursor: pointer;\n width: ${this._width ?? \"36px\"};\n height: ${this._height ?? \"36px\"};\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${this._backgroundColor ?? \"transparent\"};\n transition: background-color 0.2s ease;\n touch-action: manipulation;\n }\n\n button:hover {\n background-color: ${this._hoverBackgroundColor ?? \"red\"};\n }\n\n button:active {\n background-color: ${this._activeBackgroundColor ?? \"red\"};\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n [part=\"icon\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n }\n `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nfunction registerElement(name, element) {\n if (typeof window !== \"undefined\" && !customElements.get(name)) {\n customElements.define(name, element);\n }\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton },\n { name: \"courier-system-theme\", class: CourierSystemThemeElement }\n];\ncomponents.forEach(({ name, class: componentClass }) => registerElement(name, componentClass));\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierInboxListItemMenu extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.shadow) ?? \"0 2px 8px red\"};\n user-select: none;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s;\n overflow: hidden;\n }\n\n :host(.visible) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul.menu {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n }\n\n li.menu-item {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom: none;\n background: transparent;\n }\n `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nregisterElement(\"courier-inbox-list-item-menu\", CourierInboxListItemMenu);\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(\"CourierInbox socket connectionId:\", (_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId);\n if (socket.isConnected) {\n (_h = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _h.info(\"CourierInbox socket already connected. Socket will not attempt reconnection.\");\n return;\n }\n socket.receivedMessage = (message) => {\n this.addMessage(message, 0, \"inbox\");\n };\n socket.receivedMessageEvent = (event) => {\n let message;\n if (event.messageId) {\n message = this.getMessage({ messageId: event.messageId });\n }\n switch (event.event) {\n case \"mark-all-read\":\n this.readAllMessages({ canCallApi: false });\n break;\n case \"read\":\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case \"unread\":\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case \"opened\":\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case \"archive\":\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case \"archive-read\":\n this.archiveReadMessages({ canCallApi: false });\n break;\n case \"click\":\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case \"unarchive\":\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case \"unopened\":\n break;\n }\n };\n await socket.connect();\n await socket.sendSubscribe();\n socket.keepAlive();\n (_j = (_i = Courier.shared.client) == null ? void 0 : _i.options.logger) == null ? void 0 : _j.info(\"CourierInbox socket connected\");\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierInboxListItemMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.divider) ?? \"1px solid red\"};\n font-family: inherit;\n cursor: pointer;\n transition: background-color 0.2s ease;\n margin: 0;\n width: 100%;\n box-sizing: border-box;\n padding: 12px 20px;\n position: relative;\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: manipulation;\n }\n\n /* ───────────────────────── Base hover / active ────────────────── */\n @media (hover: hover) {\n :host(:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* ───────────────────────── Menu hover / active ────────────────── */\n @media (hover: hover) {\n :host(:hover):has(courier-inbox-list-item-menu:hover, courier-inbox-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-inbox-list-item-menu:active, courier-inbox-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n\n :host(:last-child) {\n border-bottom: none;\n }\n\n .unread-indicator {\n position: absolute;\n top: 28px;\n left: 6px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(listItem == null ? void 0 : listItem.unreadIndicatorColor) ?? \"red\"};\n display: none;\n }\n\n :host(.unread) .unread-indicator {\n display: block;\n }\n\n .content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n margin-right: 12px;\n }\n\n p {\n margin: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n hyphens: auto;\n line-height: 1.4;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n text-align: left;\n }\n\n p[part='title'] {\n font-family: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-inbox-list-item-menu {\n z-index: 1;\n position: absolute;\n top: 8px;\n right: 8px;\n display: none; /* becomes block while visible */\n }\n\n .actions-container {\n display: flex;\n margin-top: 10px;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n display: none;\n }\n\n `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem – failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nregisterElement(\"courier-inbox-list-item\", CourierListItem);\nclass CourierInboxSkeletonListItem extends BaseElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n return `\n :host {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n width: 100%;\n box-sizing: border-box;\n opacity: ${opacity};\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\nclass CourierSkeletonAnimatedRow extends BaseElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.barBorderRadius) ?? \"14px\"};\n }\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `;\n }\n}\nregisterElement(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n return `\n :host {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n }\n\n .list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n overflow: hidden;\n }\n\n .list > * {\n border-bottom: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\nclass CourierInboxPaginationListItem extends BaseElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nregisterElement(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\nclass CourierInboxList extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-list\", CourierInboxList);\nclass CourierInboxOptionMenuItem extends BaseElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n return `\n :host {\n display: flex;\n flex-direction: row;\n padding: 6px 12px;\n cursor: pointer;\n }\n\n :host(:hover) {\n background-color: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.activeBackgroundColor) ?? \"red\"};\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n }\n\n .spacer {\n flex: 1;\n }\n\n p {\n margin: 0;\n font-family: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nregisterElement(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\nclass CourierInboxOptionMenu extends BaseElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n :host {\n position: relative;\n display: inline-block;\n }\n\n .menu {\n display: none;\n position: absolute;\n top: 42px;\n right: -6px;\n border-radius: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.shadow) ?? \"0 4px 12px 0 red\"};\n z-index: 1000;\n min-width: 200px;\n overflow: hidden;\n padding: 4px 0;\n }\n\n courier-inbox-filter-menu-item {\n border-bottom: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\nclass CourierUnreadCountBadge extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-unread-count-badge\", CourierUnreadCountBadge);\nclass CourierInboxHeaderTitle extends BaseElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n .title-section {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n }\n\n courier-icon {\n display: flex;\n align-items: center;\n }\n\n h2 {\n margin: 0;\n font-family: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n return `\n :host {\n z-index: 100;\n }\n\n .courier-inbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 10px 10px 16px;\n background-color: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[500]};\n }\n\n .header-content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .spacer {\n flex: 1;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header\", CourierInboxHeader);\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends BaseElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: ${this._defaultProps.height};\n }\n\n courier-inbox-header {\n flex-shrink: 0;\n }\n\n courier-inbox-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nregisterElement(\"courier-inbox\", CourierInbox);\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n return `\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-menu-button\", CourierInboxMenuButton);\nclass CourierInboxPopupMenu extends BaseElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return `\n :host {\n display: inline-block;\n position: relative;\n }\n\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n\n .popup {\n display: none;\n position: absolute;\n background: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.shadow) ?? `0px 8px 16px -4px red`};\n z-index: 1000;\n width: ${this._width};\n height: ${this._height};\n overflow: hidden;\n transform: translateZ(0);\n will-change: transform;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n\n courier-inbox {\n height: 100%;\n }\n `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nregisterElement(\"courier-inbox-popup-menu\", CourierInboxPopupMenu);\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxPopupMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import { ReactNode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\n\n/**\n * Converts a React node to an HTMLElement.\n * This function uses flushSync to ensure the DOM is updated synchronously.\n * @param node - The React node to convert.\n * @returns The converted HTMLElement.\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n\n // Use flushSync to ensure the DOM is updated synchronously\n flushSync(() => {\n render(node, container);\n });\n\n return container;\n}\n\n/**\n * Render a React node using createRoot.\n * @param node - The React node to render.\n * @param container - The container to render the node into.\n * @returns The rendered node.\n */\nfunction render(node: ReactNode, container: HTMLElement) {\n const root = createRoot(container);\n return root.render(node);\n}","import React, { useState, useEffect } from 'react';\n\ninterface CourierClientProps {\n children: React.ReactNode;\n}\n\nexport const CourierClientComponent: React.FC<CourierClientProps> = ({ children }) => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // During SSR, render nothing or fallback\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (!isMounted) {\n return null;\n }\n\n return <>{children}</>;\n};","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxPopupMenu as CourierInboxPopupMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxPopupMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxPopupMenu = (props: CourierInboxPopupMenuProps) => {\n const menuRef = useRef<CourierInboxPopupMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox-popup-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","_CourierSocket","constructor","url","options","__publicField$1","this","isConnected","webSocket","connect","disconnect","Promise","resolve","reject","WebSocket","onopen","_a","onOpen","call","onmessage","event","onMessageReceived","data","onclose","onClose","code","reason","onerror","error","Error","originalEvent","onError","stopPing","close","NORMAL_CLOSURE_STATUS","send","message","json","JSON","stringify","keepAlive","props","pingInterval","setInterval","async","action","logger","intervalInMillis","clearInterval","CourierSocket","getCourierApiUrls","urls","courier","rest","graphql","inbox","Logger","showLogs","warn","args","console","PREFIX","log","debug","info","UUID","generate","prefix","id","Math","random","toString","substring","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","apiUrls","userId","Authorization","accessToken","brand","InboxSocket","buildUrl","convertToType","_b","_c","_d","parse","messageEvent","receivedMessageEvent","receivedMessage","sendSubscribe","subscription","userAgent","channel","version","connectionId","clientSourceId","tenantId","accountId","InboxClient","socket","getMessages","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","bytes","Uint8Array","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","process","env","NODE_ENV","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","listener","authenticationListeners","push","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","window","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","addEventListener","removeEventListener","BaseElement","HTMLElement","CourierSystemThemeElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","_","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","defaultFontSize","defaultBackgroundColor","defaultTextColor","defaultBorder","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","registerElement","customElements","get","define","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierInboxListItemMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_a2","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_e","_f","_g","_h","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","_l","addMessage","getMessage","readAllMessages","canCallApi","readMessage","unreadMessage","openMessage","archiveMessage","archiveReadMessages","clickMessage","unarchiveMessage","find","m","fetchNextPageOfMessages","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","setTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","clearTimeout","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","size","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","floor","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","parseInt","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","message2","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","getComponentNameFromType","$$typeof","REACT_CLIENT_REFERENCE","displayName","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","getTaskName","UnknownOwner","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","source","self","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","hasOwnProperty","keys","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineKeyPropWarningGetter","owner","REACT_ELEMENT_TYPE","_owner","_store","ReactElement","ReactSharedInternals","A","getOwner","node","validated","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","Array","isArray","createTask","unknownOwnerDebugStack","React$1","callStackForError","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","exports","jsxProd","reactJsxRuntime_production","require$$1","reactNodeToHTMLElement","flushSync","root","createRoot","CourierClientComponent","isMounted","setIsMounted","useState","useEffect","inboxRef","useRef","current","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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AAIC,GAAIC,GAAKC,GAAKC,GAAKC,GAAKqG,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAC7sC,MAAAC,GAAwB,UAATrsB,EAAmB+e,GAAoBC,GACrD,MAAA,CACLxD,MAAO,CACL1c,OAAQ,IAC0B,OAA5BjP,EAAKw8B,GAAa7Q,YAAiB,EAAS3rB,EAAGiP,UACzB,OAAtBrJ,EAAKkS,EAAO6T,YAAiB,EAAS/lB,EAAGqJ,OAC7CD,KAAM,IACgE,OAAhElJ,EAAkC,OAA5BD,EAAK22B,GAAa7Q,YAAiB,EAAS9lB,EAAGoJ,aAAkB,EAASnJ,EAAGkJ,QACzB,OAA1DgL,EAA4B,OAAtBD,EAAKjC,EAAO6T,YAAiB,EAAS5R,EAAG9K,aAAkB,EAAS+K,EAAGhL,MAEnFue,gBAAiB,IACqD,OAAhErT,EAAkC,OAA5BD,EAAKuiB,GAAa7Q,YAAiB,EAAS1R,EAAGhL,aAAkB,EAASiL,EAAGqT,mBACzB,OAA1DnT,EAA4B,OAAtBD,EAAKrC,EAAO6T,YAAiB,EAASxR,EAAGlL,aAAkB,EAASmL,EAAGmT,kBAGrFle,OAAQ,IAC0B,OAA5B+L,EAAKohB,GAAa7Q,YAAiB,EAASvQ,EAAG/L,UACzB,OAAtBgM,EAAKvD,EAAO6T,YAAiB,EAAStQ,EAAGhM,SAGjD9M,MAAO,CACLkpB,OAAQ,IAC0B,OAA5BrP,EAAKogB,GAAaj6B,YAAiB,EAAS6Z,EAAGqP,UACzB,OAAtBpP,EAAKvE,EAAOvV,YAAiB,EAAS8Z,EAAGoP,OAC7CgB,QAAS,IAC6D,OAAhElQ,EAAkC,OAA5BD,EAAKkgB,GAAaj6B,YAAiB,EAAS+Z,EAAGmP,aAAkB,EAASlP,EAAGkQ,WACzB,OAA1DhQ,EAA4B,OAAtBD,EAAK1E,EAAOvV,YAAiB,EAASia,EAAGiP,aAAkB,EAAShP,EAAGgQ,QACjFlqB,MAAO,IACoG,OAArGqa,EAAsE,OAAhED,EAAkC,OAA5BD,EAAK8f,GAAaj6B,YAAiB,EAASma,EAAG+O,aAAkB,EAAS9O,EAAG8P,cAAmB,EAAS7P,EAAGra,SACzB,OAA/Fwa,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAK/E,EAAOvV,YAAiB,EAASsa,EAAG4O,aAAkB,EAAS3O,EAAG2P,cAAmB,EAAS1P,EAAGxa,MACtHyM,KAAM,IACwI,OAAxI6Y,EAA2G,OAArGD,EAAsE,OAAhED,EAAkC,OAA5BD,EAAK8U,GAAaj6B,YAAiB,EAASmlB,EAAG+D,aAAkB,EAAS9D,EAAG8E,cAAmB,EAAS7E,EAAGrlB,YAAiB,EAASslB,EAAG7Y,QACzB,OAAlIiZ,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKhQ,EAAOvV,YAAiB,EAASulB,EAAG2D,aAAkB,EAAS1D,EAAG0E,cAAmB,EAASzE,EAAGzlB,YAAiB,EAAS0lB,EAAGjZ,OAG7JrH,QAAS,IACkG,OAArGygB,EAAsE,OAAhED,EAAkC,OAA5BD,EAAKsU,GAAaj6B,YAAiB,EAAS2lB,EAAGuD,aAAkB,EAAStD,EAAGsE,cAAmB,EAASrE,EAAGzgB,WACzB,OAA/F4gB,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKvQ,EAAOvV,YAAiB,EAAS8lB,EAAGoD,aAAkB,EAASnD,EAAGmE,cAAmB,EAASlE,EAAG5gB,QACtHqH,KAAM,IAC0I,OAA1I2Z,EAA2G,OAArGD,EAAsE,OAAhED,EAAkC,OAA5BD,EAAKgU,GAAaj6B,YAAiB,EAASimB,EAAGiD,aAAkB,EAAShD,EAAGgE,cAAmB,EAAS/D,EAAG/gB,cAAmB,EAASghB,EAAG3Z,QACzB,OAApI+Z,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAK9Q,EAAOvV,YAAiB,EAASqmB,EAAG6C,aAAkB,EAAS5C,EAAG4D,cAAmB,EAAS3D,EAAGnhB,cAAmB,EAASohB,EAAG/Z,OAG/Jue,gBAAiB,IAC0F,OAArGrE,EAAsE,OAAhED,EAAkC,OAA5BD,EAAKwT,GAAaj6B,YAAiB,EAASymB,EAAGyC,aAAkB,EAASxC,EAAGwD,cAAmB,EAASvD,EAAGqE,mBACzB,OAA/FlE,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKrR,EAAOvV,YAAiB,EAAS4mB,EAAGsC,aAAkB,EAASrC,EAAGqD,cAAmB,EAASpD,EAAGkE,kBAG1H7B,MAAO,IAC+D,OAAhEnC,GAAkC,OAA5BD,GAAKkT,GAAaj6B,YAAiB,EAAS+mB,GAAGmC,aAAkB,EAASlC,GAAGmC,SACtB,OAA7DjC,GAA8B,OAAvBD,GAAM1R,EAAOvV,YAAiB,EAASinB,GAAIiC,aAAkB,EAAShC,GAAIiC,MACrFC,MAAO,IACuG,OAAxGqE,GAA0E,OAAnErG,GAAoC,OAA7BD,GAAM8S,GAAaj6B,YAAiB,EAASmnB,GAAI+B,aAAkB,EAAS9B,GAAI+B,YAAiB,EAASsE,GAAIrE,SAC1B,OAAlGwE,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMnY,EAAOvV,YAAiB,EAAS0tB,GAAIxE,aAAkB,EAASyE,GAAIxE,YAAiB,EAASyE,GAAIxE,MAC1H1T,KAAM,IAC6I,OAA7IsY,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMoM,GAAaj6B,YAAiB,EAAS6tB,GAAI3E,aAAkB,EAAS4E,GAAI3E,YAAiB,EAAS4E,GAAI3E,YAAiB,EAAS4E,GAAItY,QAC1B,OAAvI0Y,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM1Y,EAAOvV,YAAiB,EAASiuB,GAAI/E,aAAkB,EAASgF,GAAI/E,YAAiB,EAASgF,GAAI/E,YAAiB,EAASgF,GAAI1Y,KAC/JsL,KAAM,IACiL,OAAjLyN,GAAoJ,OAA7ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAM4L,GAAaj6B,YAAiB,EAASquB,GAAInF,aAAkB,EAASoF,GAAInF,YAAiB,EAASoF,GAAInF,YAAiB,EAASoF,GAAI9Y,WAAgB,EAAS+Y,GAAIzN,QAC1B,OAA3K8N,GAA8I,OAAvID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMnZ,EAAOvV,YAAiB,EAAS0uB,GAAIxF,aAAkB,EAASyF,GAAIxF,YAAiB,EAASyF,GAAIxF,YAAiB,EAASyF,GAAInZ,WAAgB,EAASoZ,GAAI9N,MAErMqI,cAAe,IACwK,OAAjL8F,GAAoJ,OAA7ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMkL,GAAaj6B,YAAiB,EAAS+uB,GAAI7F,aAAkB,EAAS8F,GAAI7F,YAAiB,EAAS8F,GAAI7F,YAAiB,EAAS8F,GAAIxZ,WAAgB,EAASyZ,GAAI9F,iBAC1B,OAA3KmG,GAA8I,OAAvID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM7Z,EAAOvV,YAAiB,EAASovB,GAAIlG,aAAkB,EAASmG,GAAIlG,YAAiB,EAASmG,GAAIlG,YAAiB,EAASmG,GAAI7Z,WAAgB,EAAS8Z,GAAInG,iBAIzMa,QAAS,IACqG,OAAxGyF,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMwK,GAAaj6B,YAAiB,EAASyvB,GAAIvG,aAAkB,EAASwG,GAAIvG,YAAiB,EAASwG,GAAIzF,WAC1B,OAAlG4F,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMra,EAAOvV,YAAiB,EAAS4vB,GAAI1G,aAAkB,EAAS2G,GAAI1G,YAAiB,EAAS2G,GAAI5F,QAC1HlqB,MAAO,IAC8I,OAA/IkwB,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMkK,GAAaj6B,YAAiB,EAAS+vB,GAAI7G,aAAkB,EAAS8G,GAAI7G,YAAiB,EAAS8G,GAAI/F,cAAmB,EAASgG,GAAIlwB,SAC1B,OAAzIswB,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM5a,EAAOvV,YAAiB,EAASmwB,GAAIjH,aAAkB,EAASkH,GAAIjH,YAAiB,EAASkH,GAAInG,cAAmB,EAASoG,GAAItwB,MACjKyM,KAAM,IACoL,OAApLkkB,GAAsJ,OAA/ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAM0J,GAAaj6B,YAAiB,EAASuwB,GAAIrH,aAAkB,EAASsH,GAAIrH,YAAiB,EAASsH,GAAIvG,cAAmB,EAASwG,GAAI1wB,YAAiB,EAAS2wB,GAAIlkB,QAC1B,OAA9KukB,GAAgJ,OAAzID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMrb,EAAOvV,YAAiB,EAAS4wB,GAAI1H,aAAkB,EAAS2H,GAAI1H,YAAiB,EAAS2H,GAAI5G,cAAmB,EAAS6G,GAAI/wB,YAAiB,EAASgxB,GAAIvkB,OAG1MrH,QAAS,IAC4I,OAA/IgsB,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMgJ,GAAaj6B,YAAiB,EAASixB,GAAI/H,aAAkB,EAASgI,GAAI/H,YAAiB,EAASgI,GAAIjH,cAAmB,EAASkH,GAAIhsB,WAC1B,OAAzIosB,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM9b,EAAOvV,YAAiB,EAASqxB,GAAInI,aAAkB,EAASoI,GAAInI,YAAiB,EAASoI,GAAIrH,cAAmB,EAASsH,GAAIpsB,QACjKqH,KAAM,IACsL,OAAtLolB,GAAsJ,OAA/ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMwI,GAAaj6B,YAAiB,EAASyxB,GAAIvI,aAAkB,EAASwI,GAAIvI,YAAiB,EAASwI,GAAIzH,cAAmB,EAAS0H,GAAIxsB,cAAmB,EAASysB,GAAIplB,QAC1B,OAAhLylB,GAAgJ,OAAzID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMvc,EAAOvV,YAAiB,EAAS8xB,GAAI5I,aAAkB,EAAS6I,GAAI5I,YAAiB,EAAS6I,GAAI9H,cAAmB,EAAS+H,GAAI7sB,cAAmB,EAAS8sB,GAAIzlB,QAI9MmI,QAAS,IACqG,OAAxGyd,GAA0E,OAAnED,GAAoC,OAA7BD,GAAM8H,GAAaj6B,YAAiB,EAASmyB,GAAIjJ,aAAkB,EAASkJ,GAAIjJ,YAAiB,EAASkJ,GAAIzd,WAC1B,OAAlG4d,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM/c,EAAOvV,YAAiB,EAASsyB,GAAIpJ,aAAkB,EAASqJ,GAAIpJ,YAAiB,EAASqJ,GAAI5d,QAC1HsX,YAAa,IACwI,OAA/I0G,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMwH,GAAaj6B,YAAiB,EAASyyB,GAAIvJ,aAAkB,EAASwJ,GAAIvJ,YAAiB,EAASwJ,GAAI/d,cAAmB,EAASge,GAAI1G,eAC1B,OAAzI8G,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMtd,EAAOvV,YAAiB,EAAS6yB,GAAI3J,aAAkB,EAAS4J,GAAI3J,YAAiB,EAAS4J,GAAIne,cAAmB,EAASoe,GAAI9G,YACjKzf,KAAM,IAC0L,OAA1L4mB,GAAsJ,OAA/ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMgH,GAAaj6B,YAAiB,EAASizB,GAAI/J,aAAkB,EAASgK,GAAI/J,YAAiB,EAASgK,GAAIve,cAAmB,EAASwe,GAAIlH,kBAAuB,EAASmH,GAAI5mB,QAC1B,OAApLinB,GAAgJ,OAAzID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM/d,EAAOvV,YAAiB,EAASszB,GAAIpK,aAAkB,EAASqK,GAAIpK,YAAiB,EAASqK,GAAI5e,cAAmB,EAAS6e,GAAIvH,kBAAuB,EAASwH,GAAIjnB,OAGhNlH,WAAY,IACyI,OAA/IuuB,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMsG,GAAaj6B,YAAiB,EAAS2zB,GAAIzK,aAAkB,EAAS0K,GAAIzK,YAAiB,EAAS0K,GAAIjf,cAAmB,EAASkf,GAAIvuB,cAC1B,OAAzI2uB,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMxe,EAAOvV,YAAiB,EAAS+zB,GAAI7K,aAAkB,EAAS8K,GAAI7K,YAAiB,EAAS8K,GAAIrf,cAAmB,EAASsf,GAAI3uB,WACjKkH,KAAM,IACyL,OAAzL8nB,GAAsJ,OAA/ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAM8F,GAAaj6B,YAAiB,EAASm0B,GAAIjL,aAAkB,EAASkL,GAAIjL,YAAiB,EAASkL,GAAIzf,cAAmB,EAAS0f,GAAI/uB,iBAAsB,EAASgvB,GAAI9nB,QAC1B,OAAnLmoB,GAAgJ,OAAzID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMjf,EAAOvV,YAAiB,EAASw0B,GAAItL,aAAkB,EAASuL,GAAItL,YAAiB,EAASuL,GAAI9f,cAAmB,EAAS+f,GAAIpvB,iBAAsB,EAASqvB,GAAInoB,OAG/MnH,YAAa,IACwI,OAA/I0vB,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAMoF,GAAaj6B,YAAiB,EAAS60B,GAAI3L,aAAkB,EAAS4L,GAAI3L,YAAiB,EAAS4L,GAAIngB,cAAmB,EAASogB,GAAI1vB,eAC1B,OAAzI8vB,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAM1f,EAAOvV,YAAiB,EAASi1B,GAAI/L,aAAkB,EAASgM,GAAI/L,YAAiB,EAASgM,GAAIvgB,cAAmB,EAASwgB,GAAI9vB,YACjKmH,KAAM,IAC0L,OAA1LgpB,GAAsJ,OAA/ID,GAA+G,OAAxGD,GAA0E,OAAnED,GAAoC,OAA7BD,GAAM4E,GAAaj6B,YAAiB,EAASq1B,GAAInM,aAAkB,EAASoM,GAAInM,YAAiB,EAASoM,GAAI3gB,cAAmB,EAAS4gB,GAAIlwB,kBAAuB,EAASmwB,GAAIhpB,QAC1B,OAApLqpB,GAAgJ,OAAzID,GAAyG,OAAlGD,GAAoE,OAA7DD,GAA8B,OAAvBD,GAAMngB,EAAOvV,YAAiB,EAAS01B,GAAIxM,aAAkB,EAASyM,GAAIxM,YAAiB,EAASyM,GAAIhhB,cAAmB,EAASihB,GAAIvwB,kBAAuB,EAASwwB,GAAIrpB,UAMtNiJ,KAAM,IAC6B,OAA7BqgB,GAAMkE,GAAaj6B,YAAiB,EAAS+1B,GAAIrgB,QAC1B,OAAvBsgB,GAAMzgB,EAAOvV,YAAiB,EAASg2B,GAAItgB,KAC/ChQ,KAAM,IACiE,OAAjEwwB,GAAoC,OAA7BD,GAAMgE,GAAaj6B,YAAiB,EAASi2B,GAAIvgB,WAAgB,EAASwgB,GAAIxwB,QAC1B,OAA3D0wB,GAA8B,OAAvBD,GAAM5gB,EAAOvV,YAAiB,EAASm2B,GAAIzgB,WAAgB,EAAS0gB,GAAI1wB,KACnF+P,KAAM,IACqG,OAArG8gB,GAAwE,OAAjED,GAAoC,OAA7BD,GAAM4D,GAAaj6B,YAAiB,EAASq2B,GAAI3gB,WAAgB,EAAS4gB,GAAI5wB,WAAgB,EAAS6wB,GAAI9gB,QAC1B,OAA/FihB,GAAkE,OAA3DD,GAA8B,OAAvBD,GAAMjhB,EAAOvV,YAAiB,EAASw2B,GAAI9gB,WAAgB,EAAS+gB,GAAI/wB,WAAgB,EAASgxB,GAAIjhB,KACvH/P,KAAM,IACyI,OAAzIoxB,GAA4G,OAArGD,GAAwE,OAAjED,GAAoC,OAA7BD,GAAMsD,GAAaj6B,YAAiB,EAAS22B,GAAIjhB,WAAgB,EAASkhB,GAAIlxB,WAAgB,EAASmxB,GAAIphB,WAAgB,EAASqhB,GAAIpxB,QAC1B,OAAnIwxB,GAAsG,OAA/FD,GAAkE,OAA3DD,GAA8B,OAAvBD,GAAMxhB,EAAOvV,YAAiB,EAAS+2B,GAAIrhB,WAAgB,EAASshB,GAAItxB,WAAgB,EAASuxB,GAAIxhB,WAAgB,EAASyhB,GAAIxxB,KAC3JV,KAAM,IAC6K,OAA7KuyB,GAAgJ,OAAzID,GAA4G,OAArGD,GAAwE,OAAjED,GAAoC,OAA7BD,GAAM8C,GAAaj6B,YAAiB,EAASm3B,GAAIzhB,WAAgB,EAAS0hB,GAAI1xB,WAAgB,EAAS2xB,GAAI5hB,WAAgB,EAAS6hB,GAAI5xB,WAAgB,EAAS6xB,GAAIvyB,QAC1B,OAAvK4yB,GAA0I,OAAnID,GAAsG,OAA/FD,GAAkE,OAA3DD,GAA8B,OAAvBD,GAAMjiB,EAAOvV,YAAiB,EAASw3B,GAAI9hB,WAAgB,EAAS+hB,GAAI/xB,WAAgB,EAASgyB,GAAIjiB,WAAgB,EAASkiB,GAAIjyB,WAAgB,EAASkyB,GAAI5yB,MAEjMC,OAAQ,IAC2K,OAA7KgzB,GAAgJ,OAAzID,GAA4G,OAArGD,GAAwE,OAAjED,GAAoC,OAA7BD,GAAMoC,GAAaj6B,YAAiB,EAAS63B,GAAIniB,WAAgB,EAASoiB,GAAIpyB,WAAgB,EAASqyB,GAAItiB,WAAgB,EAASuiB,GAAItyB,WAAgB,EAASuyB,GAAIhzB,UAC1B,OAAvKqzB,GAA0I,OAAnID,GAAsG,OAA/FD,GAAkE,OAA3DD,GAA8B,OAAvBD,GAAM3iB,EAAOvV,YAAiB,EAASk4B,GAAIxiB,WAAgB,EAASyiB,GAAIzyB,WAAgB,EAAS0yB,GAAI3iB,WAAgB,EAAS4iB,GAAI3yB,WAAgB,EAAS4yB,GAAIrzB,QAEjMG,QAAS,IAC0K,OAA7KuzB,GAAgJ,OAAzID,GAA4G,OAArGD,GAAwE,OAAjED,GAAoC,OAA7BD,GAAM0B,GAAaj6B,YAAiB,EAASu4B,GAAI7iB,WAAgB,EAAS8iB,GAAI9yB,WAAgB,EAAS+yB,GAAIhjB,WAAgB,EAASijB,GAAIhzB,WAAgB,EAASizB,GAAIvzB,WAC1B,OAAvK4zB,GAA0I,OAAnID,GAAsG,OAA/FD,GAAkE,OAA3DD,GAA8B,OAAvBD,GAAMrjB,EAAOvV,YAAiB,EAAS44B,GAAIljB,WAAgB,EAASmjB,GAAInzB,WAAgB,EAASozB,GAAIrjB,WAAgB,EAASsjB,GAAIrzB,WAAgB,EAASszB,GAAI5zB,SAEjMC,UAAW,IACwK,OAA7Kg0B,GAAgJ,OAAzID,GAA4G,OAArGD,GAAwE,OAAjED,GAAoC,OAA7BD,GAAMgB,GAAaj6B,YAAiB,EAASi5B,GAAIvjB,WAAgB,EAASwjB,GAAIxzB,WAAgB,EAASyzB,GAAI1jB,WAAgB,EAAS2jB,GAAI1zB,WAAgB,EAAS2zB,GAAIh0B,aAC1B,OAAvKq0B,GAA0I,OAAnID,GAAsG,OAA/FD,GAAkE,OAA3DD,GAA8B,OAAvBD,GAAM/jB,EAAOvV,YAAiB,EAASs5B,GAAI5jB,WAAgB,EAAS6jB,GAAI7zB,WAAgB,EAAS8zB,GAAI/jB,WAAgB,EAASgkB,GAAI/zB,WAAgB,EAASg0B,GAAIr0B,eAMzMqc,QAAS,IAC0B,OAA7BiY,GAAMM,GAAaj6B,YAAiB,EAAS25B,GAAIjY,WAC1B,OAAvBkY,GAAMrkB,EAAOvV,YAAiB,EAAS45B,GAAIlY,SAEjD+F,MAAO,IAC4B,OAA7BoS,GAAMI,GAAaj6B,YAAiB,EAAS65B,GAAIpS,SAC1B,OAAvBqS,GAAMvkB,EAAOvV,YAAiB,EAAS85B,GAAIrS,OAEjDppB,MAAO,IAC4B,OAA7B07B,GAAME,GAAaj6B,YAAiB,EAAS+5B,GAAI17B,SAC1B,OAAvB27B,GAAMzkB,EAAOvV,YAAiB,EAASg6B,GAAI37B,QAGpD,EAyDqB67B,CAAWtsB,EADP,UAATA,EAAmB7Q,KAAKuwB,YAAcvwB,KAAKwwB,YAE1DxwB,KAAKo9B,SAAS3M,EAClB,CAIE,QAAA2M,CAAS5kB,GACHA,IAAWxY,KAAKyY,SACpBzY,KAAKyY,OAASD,EACdxY,KAAKgwB,QAAQqN,cAAc,IAAIC,YAAYt9B,KAAKu9B,mBAAoB,CAClEC,OAAQ,CAAEruB,MAAOqJ,MAEvB,CAIE,OAAAilB,CAAQ5sB,GACN7Q,KAAKkwB,UAAYrf,EACjB7Q,KAAKswB,aACT,CAME,SAAAhK,CAAU7Y,GACF,MAAAiwB,EAAa,IAAIC,gBACvB39B,KAAKgwB,QAAQ1f,iBAAiBtQ,KAAKu9B,oBAAqBltB,IAC7C5C,EAAA4C,EAAEmtB,OAAOruB,MAAK,GACtB,CAAEyuB,OAAQF,EAAWE,SACxB,MAAM92B,EAAe,CACnBogB,QAASlnB,KACTurB,YAAa,KACXmS,EAAWG,QACX,MAAMre,EAAQxf,KAAK89B,eAAeC,QAAQj3B,GACtC0Y,GAAY,GACTxf,KAAA89B,eAAe7e,OAAOO,EAAO,EAC5C,GAIW,OADFxf,KAAA89B,eAAenvB,KAAK7H,GAClBA,CACX,CAIE,OAAAk3B,GACMh+B,KAAK4Q,qBACP5Q,KAAK4Q,sBAEP5Q,KAAK89B,eAAehvB,SAAShI,GAAiBA,EAAaykB,gBAC3DvrB,KAAK89B,eAAiB,EAC1B,SAEA,cAA2BttB,EACzB,WAAA5Q,CAAYymB,GACN,IAAA3lB,EACG2D,QAEOlF,EAAAa,KAAM,eAAgB,SAEpCb,EAAca,KAAM,iBAEpBb,EAAca,KAAM,WACpBb,EAAca,KAAM,SACpBb,EAAca,KAAM,sBACpBb,EAAca,KAAM,iBACpBb,EAAca,KAAM,UAEpBb,EAAca,KAAM,WACpBb,EAAca,KAAM,kBAEpBb,EAAca,KAAM,mBACpBb,EAAca,KAAM,yBACpBb,EAAca,KAAM,uBAEpBb,EAAca,KAAM,gBAAiB,CACnCmW,MAAO,QACPzG,KAAMyD,EAAgBlQ,MACtBgX,SAAUja,KAAKi+B,aACfxnB,OAAQ,UAEVzW,KAAKokB,QAAUpkB,KAAK2R,aAAa,CAAEd,KAAM,SACzC7Q,KAAK6rB,cAAgBxF,GAAgB,IAAIyJ,GAAyBF,IAC7D5vB,KAAAk+B,QAAU,IAAIvP,GAAmB,CACpCtI,aAAcrmB,KAAK6rB,cACnBgD,iBAAmB5U,IACjBja,KAAK6nB,YAAY5N,EAAQ,IAGxBja,KAAAk+B,QAAQzoB,WAAM,GACdzV,KAAAokB,QAAQjS,YAAYnS,KAAKk+B,SACzBl+B,KAAAm+B,MAAQ,IAAIhY,GAAiB,CAChCE,aAAcrmB,KAAK6rB,cACnBpF,UAAW,KACTzmB,KAAK4T,SAAS,EAEhB+R,oBAAqBrjB,MAAO2X,IAC1B,IAAIb,EAAK9S,EACL,UACIuZ,GAAsBjS,OAAOiP,wBAAwB,CACzD5C,YAEH,OAAQ3Y,GACuE,OAA7EgF,EAAsC,OAAhC8S,EAAMzL,EAAQC,OAAOM,aAAkB,EAASkL,EAAItZ,QAAQ0C,SAA2B8D,EAAGhF,MAAM,yCAA0CA,EAC3J,GAEMslB,eAAgB,CAAC9kB,EAAS0d,KACpB,IAAApG,EACJyG,GAAsBjS,OAAO6O,aAAa,CAAE3a,YACvC9B,KAAAq9B,cAAc,IAAIC,YAAY,gBAAiB,CAClDE,OAAQ,CAAE17B,UAAS0d,SACnB4e,SAAS,EACTC,UAAU,KAEoB,OAA/BjlB,EAAMpZ,KAAK2mB,kBAAoCvN,EAAIxY,KAAKZ,KAAM,CAAE8B,UAAS0d,SAAO,EAEnFsH,qBAAsB,CAAChlB,EAASS,EAAQid,KAClC,IAAApG,EACCpZ,KAAAq9B,cAAc,IAAIC,YAAY,uBAAwB,CACzDE,OAAQ,CAAE17B,UAASS,SAAQid,SAC3B4e,SAAS,EACTC,UAAU,KAE0B,OAArCjlB,EAAMpZ,KAAK6mB,wBAA0CzN,EAAIxY,KAAKZ,KAAM,CAAE8B,UAASS,SAAQid,SAAO,EAEjGwH,mBAAoB,CAACllB,EAAS0d,KACxB,IAAApG,EACCpZ,KAAAq9B,cAAc,IAAIC,YAAY,qBAAsB,CACvDE,OAAQ,CAAE17B,UAAS0d,SACnB4e,SAAS,EACTC,UAAU,KAEwB,OAAnCjlB,EAAMpZ,KAAK+mB,sBAAwC3N,EAAIxY,KAAKZ,KAAM,CAAE8B,UAAS0d,SAAO,IAGpFxf,KAAAgS,OAASH,SAASC,cAAc,SACrC9R,KAAKumB,eACAvmB,KAAAokB,QAAQjS,YAAYnS,KAAKgS,QACzBhS,KAAAokB,QAAQjS,YAAYnS,KAAKm+B,OACzBn+B,KAAAs+B,mBAAqB,IAAI3O,GAA8B,CAC1DluB,QAAUH,IACHtB,KAAAm+B,MAAMnW,SAAS1mB,EAAK,EAE3Bka,gBAAiB,CAACrD,EAAS8B,KACrBja,KAAKi+B,eAAiBhkB,IACnBja,KAAAm+B,MAAM5W,WAAWpP,GACtBnY,KAAKu+B,eACf,EAEMhf,YAAa,CAACpH,EAAS8B,KACjBja,KAAKi+B,eAAiBhkB,IACnBja,KAAAm+B,MAAMxgB,QAAQxF,GACnBnY,KAAKu+B,eACf,EAEM9e,aAAc,CAAC3d,EAAS0d,EAAOvF,KACzBja,KAAKi+B,eAAiBhkB,IACnBja,KAAAm+B,MAAMniB,WAAWla,EAAS0d,GAC/Bxf,KAAKu+B,eACf,EAEM7e,gBAAiB,CAACzO,EAAGuO,EAAOvF,KACtBja,KAAKi+B,eAAiBhkB,IACnBja,KAAAm+B,MAAMvf,cAAcY,GACzBxf,KAAKu+B,eACf,EAEM3e,gBAAiB,CAAC9d,EAAS0d,EAAOvF,KAC5Bja,KAAKi+B,eAAiBhkB,IACnBja,KAAAm+B,MAAMxe,cAAc7d,EAAS0d,GAClCxf,KAAKu+B,eACf,EAEM9iB,oBAAsBxK,IACpBjR,KAAKu+B,cAAc,IAGD1e,GAAAjS,OAAOyM,qBAAqBra,KAAKs+B,oBAClDt+B,KAAA6rB,cAAcvF,WAAWrV,IAC5BjR,KAAKumB,cAAc,IAErBvmB,KAAKw+B,cAAgB7wB,EAAQC,OAAOY,2BAA2ByC,IAC7DjR,KAAK4T,SAAS,KAEoB,OAA/BlT,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGZ,QAAQiG,SAC7D/F,KAAK4T,SAEX,CACE,SAAIzE,GACK,OAAAnP,KAAK6rB,cAAc1E,UAC9B,CACE,aAAAiJ,CAAc5X,GACPxY,KAAA6rB,cAAcuE,cAAc5X,EACrC,CACE,YAAA6X,CAAa7X,GACNxY,KAAA6rB,cAAcwE,aAAa7X,EACpC,CACE,6BAAW4W,GACT,MAAO,CAAC,SAAU,cAAe,aAAc,OAAQ,gBAAiB,uBAAwB,qBACpG,CACE,YAAA7I,GACOvmB,KAAAgS,OAAOC,YAAcjS,KAAKkS,WACnC,CACE,SAAAA,GACS,MAAA,mHAKOlS,KAAKy+B,cAAchoB,2MAarC,CACE,SAAAioB,CAAUxT,GACRlrB,KAAK2+B,eAAiBzT,EACtBlrB,KAAKu+B,cACT,CACE,YAAAK,GACE5+B,KAAK2+B,eAAiB,KACtB3+B,KAAKu+B,cACT,CACE,eAAAM,CAAgB3T,GACTlrB,KAAAm+B,MAAMlT,uBAAuBC,EACtC,CACE,aAAA4T,CAAc5T,GACPlrB,KAAAm+B,MAAMhT,qBAAqBD,EACpC,CACE,aAAA6T,CAAc7T,GACPlrB,KAAAm+B,MAAM/S,qBAAqBF,EACpC,CACE,WAAA8T,CAAY9T,GACLlrB,KAAAm+B,MAAM9S,mBAAmBH,EAClC,CACE,iBAAA+T,CAAkB/T,GACXlrB,KAAAm+B,MAAM7S,yBAAyBJ,EACxC,CACE,cAAAtE,CAAexW,GACbpQ,KAAK2mB,gBAAkBvW,CAC3B,CACE,oBAAA0W,CAAqB1W,GACnBpQ,KAAK6mB,sBAAwBzW,CACjC,CACE,kBAAA4W,CAAmB5W,GACjBpQ,KAAK+mB,oBAAsB3W,CAC/B,CACE,WAAAyX,CAAY5N,GACVja,KAAKi+B,aAAehkB,EACfja,KAAAm+B,MAAMtW,YAAY5N,GACvBja,KAAKu+B,eACLv+B,KAAKob,KAAK,CACRnB,SAAUja,KAAKi+B,aACfljB,aAAa,GAEnB,CACE,YAAAwjB,GACE,MAAMp8B,EAAQ,CACZ8X,SAAUja,KAAKi+B,aACfpkB,YAAagG,GAAsBjS,OAAOiM,YAC1CqlB,aAAcl/B,KAAKm+B,MAAM/lB,SAAS1N,QAEpC,OAAQ1K,KAAK2+B,gBACX,UAAK,EACE3+B,KAAAk+B,QAAQtW,OAAOzlB,GACpB,MACF,KAAK,KACEnC,KAAAk+B,QAAQzoB,MAAM,MACnB,MACF,QACQ,MAAA0pB,EAAgBn/B,KAAK2+B,eAAex8B,GACrCnC,KAAAk+B,QAAQzoB,MAAM0pB,GAG3B,CACE,UAAM/jB,CAAKjZ,SACH0d,GAAsBjS,OAAOwN,KAAKjZ,SAClC0d,GAAsBjS,OAAO8N,kBACvC,CACE,OAAA9H,GACE5T,KAAKob,KAAK,CACRnB,SAAUja,KAAKi+B,aACfljB,aAAa,GAEnB,CACE,iBAAA1G,GACErU,KAAK4T,SACT,CACE,oBAAA5C,GACE,IAAItQ,EAAI4F,EACRtG,KAAK6rB,cAAcmS,UACe,OAAjCt9B,EAAKV,KAAKs+B,qBAAuC59B,EAAGgN,SACxB,OAA5BpH,EAAKtG,KAAKw+B,gBAAkCl4B,EAAGoH,QACpD,CACE,wBAAA8G,CAAyBlQ,EAAMmQ,EAAUC,GACvC,IAAIhU,EAAI4F,EAAIC,EAAIC,EAAIiU,EAAIC,EACxB,GAAIjG,IAAaC,EACjB,OAAQpQ,GACN,IAAK,SACG,MAAAmS,EAAS/B,GAAY1U,KAAKy+B,cAAchoB,OAC9CzW,KAAKiU,MAAMwC,OAASA,EACpB,MACF,IAAK,gBACH,GAAI/B,EACE,IACF1U,KAAK2mB,gBAAkB,IAAIyY,SAAS,QAAS1qB,EAC9C,OAAQpT,GACqE,OAA3EgF,EAAqC,OAA/B5F,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGZ,QAAQ0C,SAA2B8D,EAAGhF,MAAM,yCAA0CA,EAC3J,MAEUtB,KAAK2mB,qBAAkB,EAEzB,MACF,IAAK,uBACH,GAAIjS,EACE,IACF1U,KAAK6mB,sBAAwB,IAAIuY,SAAS,QAAS1qB,EACpD,OAAQpT,GACqE,OAA3EkF,EAAqC,OAA/BD,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGzG,QAAQ0C,SAA2BgE,EAAGlF,MAAM,gDAAiDA,EAClK,MAEUtB,KAAK6mB,2BAAwB,EAE/B,MACF,IAAK,qBACH,GAAInS,EACE,IACF1U,KAAK+mB,oBAAsB,IAAIqY,SAAS,QAAS1qB,EAClD,OAAQpT,GACqE,OAA3EoZ,EAAqC,OAA/BD,EAAK9M,EAAQC,OAAOM,aAAkB,EAASuM,EAAG3a,QAAQ0C,SAA2BkY,EAAGpZ,MAAM,8CAA+CA,EAChK,MAEUtB,KAAK+mB,yBAAsB,EAE7B,MACF,IAAK,cACCrS,GACF1U,KAAKowB,cAAcpuB,KAAKyE,MAAMiO,IAEhC,MACF,IAAK,aACCA,GACF1U,KAAKqwB,aAAaruB,KAAKyE,MAAMiO,IAE/B,MACF,IAAK,OACE1U,KAAA6rB,cAAc4R,QAAQ/oB,GAGnC,GAEA6C,EAAgB,gBAAiB8nB,IACjC,MAAMC,WAA+B9pB,EACnC,WAAA5V,CAAYkuB,GACHzpB,QAEPlF,EAAca,KAAM,sBAEpBb,EAAca,KAAM,cACpBb,EAAca,KAAM,kBACpBb,EAAca,KAAM,qBACpBA,KAAKomB,mBAAqB0H,EAASxH,WAAWrV,IAC5CjR,KAAKswB,aAAa,GAExB,CACE,cAAAza,GACO7V,KAAAsuB,WAAazc,SAASC,cAAc,OACzC9R,KAAKsuB,WAAWlY,UAAY,wBAC5BpW,KAAKu/B,eAAiB,IAAI/oB,EAAkBrD,EAAgBlQ,OACvDjD,KAAAw/B,kBAAoB,IAAI7R,GAAwB,CACnDG,SAAU9tB,KAAKomB,mBAAmBc,QAClC2G,SAAU,WAEZ7tB,KAAKw/B,kBAAkB17B,GAAK,eACtB,MAAAmQ,EAAQpC,SAASC,cAAc,SAOrC,OANMmC,EAAAhC,YAAcjS,KAAKkS,YACpBlS,KAAAsuB,WAAWnc,YAAY8B,GACvBjU,KAAAsuB,WAAWnc,YAAYnS,KAAKu/B,gBAC5Bv/B,KAAAsuB,WAAWnc,YAAYnS,KAAKw/B,mBAC5Bx/B,KAAAyR,OAAOU,YAAYnS,KAAKsuB,YAC7BtuB,KAAKswB,cACEtwB,KAAKsuB,UAChB,CACE,SAAApc,GACS,MAAA,4PAaX,CACE,mBAAAuJ,CAAoB5B,GACd,IAAAnZ,EAC6B,OAAhCA,EAAKV,KAAKw/B,oBAAsC9+B,EAAGwtB,SAASrU,GAC7D7Z,KAAKswB,aACT,CACE,WAAAA,GACE,IAAI5vB,EAAI4F,EAAIC,EAAIC,EAAIiU,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxE,MAAM3E,EAASxY,KAAKomB,mBAAmBc,QAAQC,WACjB,OAA7B3gB,EAAKxG,KAAKu/B,iBAAmC/4B,EAAG0Q,iBAAwI,OAAtH3Q,EAA0F,OAApFD,EAAsD,OAAhD5F,EAAe,MAAV8X,OAAiB,EAASA,EAAO6T,YAAiB,EAAS3rB,EAAGiP,aAAkB,EAASrJ,EAAGoJ,WAAgB,EAASnJ,EAAGgN,QAAUrE,EAAoB,MAC5M,OAA7B0L,EAAK5a,KAAKu/B,iBAAmC3kB,EAAGzD,eAAsI,OAAtHwD,EAA0F,OAApFD,EAAsD,OAAhDD,EAAe,MAAVjC,OAAiB,EAASA,EAAO6T,YAAiB,EAAS5R,EAAG9K,aAAkB,EAAS+K,EAAGhL,WAAgB,EAASiL,EAAGnH,MAAQL,EAAgBlQ,OACpM,OAA7B6Y,EAAK9b,KAAKu/B,iBAAmCzjB,EAAG1E,uBAA4G,OAApF0D,EAAsD,OAAhDD,EAAe,MAAVrC,OAAiB,EAASA,EAAO6T,YAAiB,EAASxR,EAAGlL,aAAkB,EAASmL,EAAGxJ,kBAAoB,eACtK,OAA7ByL,EAAK/c,KAAKu/B,iBAAmCxiB,EAAG1F,4BAAiH,OAApFyF,EAAsD,OAAhDf,EAAe,MAAVvD,OAAiB,EAASA,EAAO6T,YAAiB,EAAStQ,EAAGpM,aAAkB,EAASmN,EAAG9J,uBAAyB9D,EAAoB,QACpM,OAA7BgO,EAAKld,KAAKu/B,iBAAmCriB,EAAG5F,6BAAkH,OAApF2F,EAAsD,OAAhDD,EAAe,MAAVxE,OAAiB,EAASA,EAAO6T,YAAiB,EAASrP,EAAGrN,aAAkB,EAASsN,EAAGhK,wBAA0B/D,EAAoB,QACnM,OAAhCiO,EAAKnd,KAAKw/B,oBAAsCriB,EAAGoJ,aAAa,SACrE,CACE,oBAAAvV,GACEhR,KAAKomB,mBAAmBmF,aAC5B,EAEAhU,EAAgB,4BAA6B+nB,IAkT7C/nB,EAAgB,2BAjThB,cAAoC/G,EAClC,WAAA5Q,GACSyE,QAEOlF,EAAAa,KAAM,SAAU,SAChBb,EAAAa,KAAM,UAAW,SACjBb,EAAAa,KAAM,kBAAmB,aACzBb,EAAAa,KAAM,OAAQ,QACdb,EAAAa,KAAM,SAAU,KAChBb,EAAAa,KAAM,UAAW,QACjBb,EAAAa,KAAM,QAAS,KAE7Bb,EAAca,KAAM,gBAAiB,IAAI8vB,GAAyBF,KAElEzwB,EAAca,KAAM,kBACpBb,EAAca,KAAM,UACpBb,EAAca,KAAM,UACpBb,EAAca,KAAM,UAEpBb,EAAca,KAAM,sBAEpBb,EAAca,KAAM,2BACpB,MAAMyR,EAASzR,KAAK2R,aAAa,CAAEd,KAAM,SACzC7Q,KAAKu/B,eAAiB,IAAID,GAAuBt/B,KAAK6rB,eACjD7rB,KAAAu/B,eAAe9pB,WAAM,GACrBzV,KAAAy/B,OAAS5tB,SAASC,cAAc,OACrC9R,KAAKy/B,OAAOrpB,UAAY,QACxBpW,KAAK0/B,OAAS,IAAIL,GAAar/B,KAAK6rB,eAC/B7rB,KAAA0/B,OAAO3tB,aAAa,SAAU,QAC9B/R,KAAAgS,OAASH,SAASC,cAAc,SACrC9R,KAAKumB,eACE9U,EAAAU,YAAYnS,KAAKgS,QACjBP,EAAAU,YAAYnS,KAAKu/B,gBACjB9tB,EAAAU,YAAYnS,KAAKy/B,QACnBz/B,KAAAy/B,OAAOttB,YAAYnS,KAAK0/B,QAC7B1/B,KAAKu/B,eAAejvB,iBAAiB,QAAStQ,KAAK2/B,YAAY5S,KAAK/sB,OACpE6R,SAASvB,iBAAiB,QAAStQ,KAAKgtB,mBAAmBD,KAAK/sB,OAChEA,KAAK4/B,sBACA5/B,KAAAs+B,mBAAqB,IAAI3O,GAA8B3vB,MACtC6f,GAAAjS,OAAOyM,qBAAqBra,KAAKs+B,oBAClDt+B,KAAA6rB,cAAcvF,WAAWrV,IAC5BjR,KAAKumB,cAAc,GAEzB,CACE,SAAIpX,GACK,OAAAnP,KAAK6rB,cAAc1E,UAC9B,CACE,aAAAiJ,CAAc5X,GACPxY,KAAA6rB,cAAcuE,cAAc5X,EACrC,CACE,YAAA6X,CAAa7X,GACNxY,KAAA6rB,cAAcwE,aAAa7X,EACpC,CACE,6BAAW4W,GACT,MAAO,CAAC,kBAAmB,gBAAiB,uBAAwB,qBAAsB,cAAe,eAAgB,MAAO,QAAS,SAAU,OAAQ,cAAe,aAAc,OAC5L,CACE,YAAA7I,GACOvmB,KAAAgS,OAAOC,YAAcjS,KAAKkS,WACnC,CACE,SAAAA,GACE,IAAIxR,EAAI4F,EAAIC,EAAIC,EAAIiU,EAAIC,EAAIC,EAAIC,EACzB,MAAA,8RAc2E,OAA9DtU,EAAgC,OAA1B5F,EAAKV,KAAKmP,MAAMkd,YAAiB,EAAS3rB,EAAGqP,aAAkB,EAASzJ,EAAGgL,kBAAoB,mCACpC,OAA9D9K,EAAgC,OAA1BD,EAAKvG,KAAKmP,MAAMkd,YAAiB,EAAS9lB,EAAGwJ,aAAkB,EAASvJ,EAAG2K,eAAiB,4BAC3C,OAA9DuJ,EAAgC,OAA1BD,EAAKza,KAAKmP,MAAMkd,YAAiB,EAAS5R,EAAG1K,aAAkB,EAAS2K,EAAGlL,SAAW,0CAC1B,OAA9DoL,EAAgC,OAA1BD,EAAK3a,KAAKmP,MAAMkd,YAAiB,EAAS1R,EAAG5K,aAAkB,EAAS6K,EAAGnJ,SAAW,oEAEnGzR,KAAKgX,4BACJhX,KAAK+W,+TAiBvB,CACE,wBAAAvC,CAAyBlQ,EAAM2M,EAAGyD,GAChC,OAAQpQ,GACN,IAAK,kBACCtE,KAAK6/B,gBAAgBnrB,KACvB1U,KAAK8/B,gBAAkBprB,EACvB1U,KAAK4/B,uBAEP,MACF,IAAK,cACH5/B,KAAKgX,OAAStC,EACT1U,KAAA+/B,QAAQrrB,EAAU1U,KAAK+W,SAC5B,MACF,IAAK,eACH/W,KAAK+W,QAAUrC,EACV1U,KAAA+/B,QAAQ//B,KAAKgX,OAAQtC,GAC1B,MACF,IAAK,MACH1U,KAAKggC,KAAOtrB,EACZ1U,KAAK4/B,sBACL,MACF,IAAK,QACH5/B,KAAKigC,OAASvrB,EACd1U,KAAK4/B,sBACL,MACF,IAAK,SACH5/B,KAAKkgC,QAAUxrB,EACf1U,KAAK4/B,sBACL,MACF,IAAK,OACH5/B,KAAKmgC,MAAQzrB,EACb1U,KAAK4/B,sBACL,MACF,IAAK,cACClrB,GACF1U,KAAKowB,cAAcpuB,KAAKyE,MAAMiO,IAEhC,MACF,IAAK,aACCA,GACF1U,KAAKqwB,aAAaruB,KAAKyE,MAAMiO,IAE/B,MACF,IAAK,OACE1U,KAAA6rB,cAAc4R,QAAQ/oB,GAGnC,CACE,mBAAA+G,CAAoBxK,GAClBjR,KAAK4nB,QACT,CACE,cAAAhB,CAAexW,GACRpQ,KAAA0/B,OAAO9Y,eAAexW,EAC/B,CACE,oBAAA0W,CAAqB1W,GACdpQ,KAAA0/B,OAAO5Y,qBAAqB1W,EACrC,CACE,kBAAA4W,CAAmB5W,GACZpQ,KAAA0/B,OAAO1Y,mBAAmB5W,EACnC,CACE,eAAAyvB,CAAgBvgC,GAYP,MAXgB,CACrB,YACA,WACA,aACA,eACA,cACA,gBACA,eACA,cACA,iBAEoBkG,SAASlG,EACnC,CACE,mBAAAsgC,GAOE,OANK5/B,KAAAy/B,OAAOxrB,MAAMmsB,IAAM,GACnBpgC,KAAAy/B,OAAOxrB,MAAMosB,OAAS,GACtBrgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAO,GACpBtgC,KAAAy/B,OAAOxrB,MAAMssB,MAAQ,GACrBvgC,KAAAy/B,OAAOxrB,MAAMusB,OAAS,GACtBxgC,KAAAy/B,OAAOxrB,MAAMvK,UAAY,GACtB1J,KAAK8/B,iBACX,IAAK,YACE9/B,KAAAy/B,OAAOxrB,MAAMmsB,IAAMpgC,KAAKggC,KACxBhgC,KAAAy/B,OAAOxrB,MAAMssB,MAAQvgC,KAAKigC,OAC/B,MACF,IAAK,WACEjgC,KAAAy/B,OAAOxrB,MAAMmsB,IAAMpgC,KAAKggC,KACxBhgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAOtgC,KAAKmgC,MAC9B,MACF,IAAK,aACEngC,KAAAy/B,OAAOxrB,MAAMmsB,IAAMpgC,KAAKggC,KACxBhgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAO,MACpBtgC,KAAAy/B,OAAOxrB,MAAMvK,UAAY,mBAC9B,MACF,IAAK,eACE1J,KAAAy/B,OAAOxrB,MAAMosB,OAASrgC,KAAKkgC,QAC3BlgC,KAAAy/B,OAAOxrB,MAAMssB,MAAQvgC,KAAKigC,OAC/B,MACF,IAAK,cACEjgC,KAAAy/B,OAAOxrB,MAAMosB,OAASrgC,KAAKkgC,QAC3BlgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAOtgC,KAAKmgC,MAC9B,MACF,IAAK,gBACEngC,KAAAy/B,OAAOxrB,MAAMosB,OAASrgC,KAAKkgC,QAC3BlgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAO,MACpBtgC,KAAAy/B,OAAOxrB,MAAMvK,UAAY,mBAC9B,MACF,IAAK,eACE1J,KAAAy/B,OAAOxrB,MAAMmsB,IAAM,MACnBpgC,KAAAy/B,OAAOxrB,MAAMssB,MAAQvgC,KAAKigC,OAC1BjgC,KAAAy/B,OAAOxrB,MAAMvK,UAAY,mBAC9B,MACF,IAAK,cACE1J,KAAAy/B,OAAOxrB,MAAMmsB,IAAM,MACnBpgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAOtgC,KAAKmgC,MACzBngC,KAAAy/B,OAAOxrB,MAAMvK,UAAY,mBAC9B,MACF,IAAK,gBACE1J,KAAAy/B,OAAOxrB,MAAMmsB,IAAM,MACnBpgC,KAAAy/B,OAAOxrB,MAAMqsB,KAAO,MACpBtgC,KAAAy/B,OAAOxrB,MAAMvK,UAAY,wBAGtC,CACE,WAAAi2B,CAAY7+B,GACVA,EAAMwR,kBACN,MAAMmuB,EAA0C,UAA9BzgC,KAAKy/B,OAAOxrB,MAAMkO,QAI7BniB,KAAAy/B,OAAOxrB,MAAMkO,QAHfse,EAGyB,OAFA,OAIlC,CACE,kBAAAzT,CAAmBlsB,GACZd,KAAK2gB,SAAS7f,EAAMyU,UAClBvV,KAAAy/B,OAAOxrB,MAAMkO,QAAU,OAElC,CACE,UAAAue,CAAW9qB,GACT5V,KAAK0/B,OAAO7rB,UAAY,GACnB7T,KAAA0/B,OAAOvtB,YAAYyD,EAC5B,CACE,OAAAmqB,CAAQrpB,EAAOD,GACbzW,KAAKgX,OAASN,EACd1W,KAAK+W,QAAUN,EACVzW,KAAAy/B,OAAOxrB,MAAMyC,MAAQA,EACrB1W,KAAAy/B,OAAOxrB,MAAMwC,OAASA,CAC/B,CACE,WAAAkqB,CAAYC,GACV,IAAIlgC,EAAI4F,EACJtG,KAAK6/B,gBAAgBe,IACvB5gC,KAAK8/B,gBAAkBc,EACvB5gC,KAAK4/B,uBAEuE,OAA3Et5B,EAAqC,OAA/B5F,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGZ,QAAQ0C,SAA2B8D,EAAGhF,MAAM,qBAAqBs/B,IAEhI,CACE,WAAA/Y,CAAY5N,GACLja,KAAA0/B,OAAO7X,YAAY5N,EAC5B,CAEE,cAAA4mB,CAAe3V,GACRlrB,KAAA0/B,OAAOhB,UAAUxT,EAC1B,CACE,iBAAA4V,GACE9gC,KAAK0/B,OAAOd,cAChB,CACE,oBAAAmC,CAAqB7V,GACdlrB,KAAA0/B,OAAOb,gBAAgB3T,EAChC,CACE,kBAAA8V,CAAmB9V,GACZlrB,KAAA0/B,OAAOZ,cAAc5T,EAC9B,CACE,kBAAA+V,CAAmB/V,GACZlrB,KAAA0/B,OAAOX,cAAc7T,EAC9B,CACE,gBAAAgW,CAAiBhW,GACVlrB,KAAA0/B,OAAOV,YAAY9T,EAC5B,CACE,sBAAAiW,CAAuBjW,GAChBlrB,KAAA0/B,OAAOT,kBAAkB/T,EAClC,CACE,kBAAAkW,CAAmBlW,GACjBlrB,KAAKqhC,wBAA0BnW,EAC/BlrB,KAAK4nB,QACT,CACE,MAAAA,GACQ,MAAA/N,EAAcgG,GAAsBjS,OAAOiM,YACjD,OAAQ7Z,KAAKqhC,yBACX,UAAK,EACL,KAAK,KACErhC,KAAAu/B,eAAe9pB,WAAM,GACrBzV,KAAAu/B,eAAe9jB,oBAAoB5B,GACxC,MACF,QACE,MAAMynB,EAAethC,KAAKqhC,wBAAwB,CAAExnB,gBAC/C7Z,KAAAu/B,eAAe9pB,MAAM6rB,GAGlC,CACE,oBAAAtwB,GACM,IAAAtQ,EAC8B,OAAjCA,EAAKV,KAAKs+B,qBAAuC59B,EAAGgN,SACrD1N,KAAK6rB,cAAcmS,SACvB;;;;;;;;;oCClxIiB,eAAAnxB,QAAQC,IAAIC,UAC1B,WACC,SAASw0B,EAAyBn9B,GAC5B,GAAA,MAAQA,EAAa,OAAA,KACzB,GAAI,mBAAsBA,EACxB,OAAOA,EAAKo9B,WAAaC,EACrB,KACAr9B,EAAKs9B,aAAet9B,EAAKE,MAAQ,KACnC,GAAA,iBAAoBF,EAAa,OAAAA,EACrC,OAAQA,GACN,KAAKu9B,EACI,MAAA,WACT,KAAKC,EACI,MAAA,WACT,KAAKC,EACI,MAAA,aACT,KAAKC,EACI,MAAA,WACT,KAAKC,EACI,MAAA,eACT,KAAKC,EACI,MAAA,WAEX,GAAI,iBAAoB59B,EACtB,OACG,iBAAoBA,EAAK69B,KACxB3+B,QAAQhC,MACN,qHAEJ8C,EAAKo9B,UAEL,KAAKU,EACI,MAAA,SACT,KAAKC,EACK,OAAA/9B,EAAKs9B,aAAe,WAAa,YAC3C,KAAKU,EACK,OAAAh+B,EAAKi+B,SAASX,aAAe,WAAa,YACpD,KAAKY,EACH,IAAIC,EAAYn+B,EAAKwjB,OAKd,OAJPxjB,EAAOA,EAAKs9B,eAGTt9B,EAAO,MADNA,EAAOm+B,EAAUb,aAAea,EAAUj+B,MAAQ,IAC9B,cAAgBF,EAAO,IAAM,cAC9CA,EACT,KAAKo+B,EAEA,OACD,QADCD,EAAYn+B,EAAKs9B,aAAe,MAE7Ba,EACAhB,EAAyBn9B,EAAKA,OAAS,OAE/C,KAAKq+B,EACHF,EAAYn+B,EAAKs+B,SACjBt+B,EAAOA,EAAKu+B,MACR,IACK,OAAApB,EAAyBn9B,EAAKm+B,GACtC,OAAQK,GAAG,EAEX,OAAA,IACb,CACI,SAASC,EAAmBvjC,GAC1B,MAAO,GAAKA,CAClB,CACI,SAASwjC,EAAuBxjC,GAC1B,IACFujC,EAAmBvjC,GACnB,IAAIyjC,GAA2B,CAChC,OAAQ1yB,GACoB0yB,GAAA,CACnC,CACM,GAAIA,EAA0B,CAE5B,IAAIC,GADuBD,EAAAz/B,SAC0BhC,MACjD2hC,EACD,mBAAsBC,QACrBA,OAAOC,aACP7jC,EAAM4jC,OAAOC,cACf7jC,EAAMM,YAAY0E,MAClB,SAMF,OALsB0+B,EAAApiC,KACpBmiC,EACA,2GACAE,GAEKJ,EAAmBvjC,EAClC,CACA,CACI,SAAS8jC,EAAYh/B,GACf,GAAAA,IAASu9B,EAA4B,MAAA,KACzC,GACE,iBAAoBv9B,GACpB,OAASA,GACTA,EAAKo9B,WAAaiB,EAEX,MAAA,QACL,IACE,IAAAn+B,EAAOi9B,EAAyBn9B,GAC7B,OAAAE,EAAO,IAAMA,EAAO,IAAM,OAClC,OAAQs+B,GACA,MAAA,OACf,CACA,CAKI,SAASS,IACP,OAAO9hC,MAAM,wBACnB,CAuBI,SAAS+hC,IACH,IAAAC,EAAgBhC,EAAyBvhC,KAAKoE,MAO3C,OANPo/B,EAAuBD,KACnBC,EAAuBD,IAAiB,EAC1CjgC,QAAQhC,MACN,qJAGG,KADPiiC,EAAgBvjC,KAAKmC,MAAMshC,KACOF,EAAgB,IACxD,CAqDa,SAAAG,EACPt/B,EACAu/B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IApGIC,EAoGAC,EAAWR,EAAOQ,SACtB,QAAI,IAAWA,EACT,GAAAN,EACE,GAAAO,EAAYD,GAAW,CACzB,IACEN,EAAmB,EACnBA,EAAmBM,EAASz5B,OAC5Bm5B,IAEkBQ,EAAAF,EAASN,IACtB5kC,OAAAqlC,QAAUrlC,OAAOqlC,OAAOH,EAChC,MACS7gC,QAAAhC,MACN,+JAEiB6iC,GACzB,GAAII,EAAe3jC,KAAK+iC,EAAQ,OAAQ,CACtCQ,EAAW5C,EAAyBn9B,GACpC,IAAIogC,EAAOvlC,OAAOulC,KAAKb,GAAQ/0B,QAAO,SAAU61B,GAC9C,MAAO,QAAUA,CAC3B,IAEUZ,EAAA,EAAIW,EAAK95B,OACL,kBAAoB85B,EAAKE,KAAK,WAAa,SAC3C,iBACNC,EAAsBR,EAAWN,KAC7BW,EACA,EAAIA,EAAK95B,OAAS,IAAM85B,EAAKE,KAAK,WAAa,SAAW,KAC5DphC,QAAQhC,MACN,kOACAuiC,EACAM,EACAK,EACAL,GAEDQ,EAAsBR,EAAWN,IAAoB,EAChE,CAMM,GALWM,EAAA,UACX,IAAWP,IACRd,EAAuBc,GAAYO,EAAW,GAAKP,GArIxD,SAAqBD,GACnB,GAAIY,EAAe3jC,KAAK+iC,EAAQ,OAAQ,CACtC,IAAIiB,EAAS3lC,OAAO4lC,yBAAyBlB,EAAQ,OAAOlsB,IACxD,GAAAmtB,GAAUA,EAAOE,eAAuB,OAAA,CACpD,CACM,YAAO,IAAWnB,EAAOtkC,GAC/B,CAgIkB0lC,CAAApB,KACTb,EAAuBa,EAAOtkC,KAAO8kC,EAAW,GAAKR,EAAOtkC,KAC3D,QAASskC,EAEX,IAAA,IAASqB,KADTpB,EAAW,CAAE,EACQD,EACnB,QAAUqB,IAAapB,EAASoB,GAAYrB,EAAOqB,SACrCpB,EAAAD,EAQX,OANLQ,GAvIK,SAA2BhiC,EAAOu/B,GACzC,SAASuD,IAEHC,IAAAA,GAA6B,EAC/B5hC,QAAQhC,MACN,0OACAogC,GAEZ,CACMuD,EAAsBH,gBAAiB,EAChC7lC,OAAAC,eAAeiD,EAAO,MAAO,CAClCsV,IAAKwtB,EACLzlC,cAAc,GAEtB,CAyHQ2lC,CACEvB,EACA,mBAAsBx/B,EAClBA,EAAKs9B,aAAet9B,EAAKE,MAAQ,UACjCF,GAlHD,SACPA,EACA/E,EACA0kC,EACAD,EACAsB,EACAjjC,EACA6hC,EACAC,GA0CO,OAxCPF,EAAO5hC,EAAMshC,IACNr/B,EAAA,CACLo9B,SAAU6D,EACVjhC,OACA/E,MACA8C,QACAmjC,OAAQF,GAEV,aAAU,IAAWrB,EAAOA,EAAO,MAC/B9kC,OAAOC,eAAekF,EAAM,MAAO,CACjC7E,YAAY,EACZkY,IAAK6rB,IAEPrkC,OAAOC,eAAekF,EAAM,MAAO,CAAE7E,YAAY,EAAID,MAAO,OAChE8E,EAAKmhC,OAAS,CAAE,EACTtmC,OAAAC,eAAekF,EAAKmhC,OAAQ,YAAa,CAC9C/lC,cAAc,EACdD,YAAY,EACZE,UAAU,EACVH,MAAO,IAEFL,OAAAC,eAAekF,EAAM,aAAc,CACxC5E,cAAc,EACdD,YAAY,EACZE,UAAU,EACVH,MAAO,OAEFL,OAAAC,eAAekF,EAAM,cAAe,CACzC5E,cAAc,EACdD,YAAY,EACZE,UAAU,EACVH,MAAO0kC,IAEF/kC,OAAAC,eAAekF,EAAM,aAAc,CACxC5E,cAAc,EACdD,YAAY,EACZE,UAAU,EACVH,MAAO2kC,IAEFhlC,OAAAqlC,SAAWrlC,OAAOqlC,OAAOlgC,EAAKjC,OAAQlD,OAAOqlC,OAAOlgC,IACpDA,CACb,CAiEaohC,CACLphC,EACA+/B,EACAJ,EACAD,EA7JK,QADHI,EAAauB,EAAqBC,GACT,KAAOxB,EAAWyB,WA+J7C/B,EACAI,EACAC,EAER,CACI,SAASI,EAAkBuB,GACZ,iBAAOA,GAClB,OAASA,GACTA,EAAKpE,WAAa6D,GAClBO,EAAKL,SACJK,EAAKL,OAAOM,UAAY,EACjC,CACQC,IA8BAZ,EA9BAY,EAAQC,EACVV,EAAqBnC,OAAO8C,IAAI,8BAChC9D,EAAoBgB,OAAO8C,IAAI,gBAC/BrE,EAAsBuB,OAAO8C,IAAI,kBACjCnE,EAAyBqB,OAAO8C,IAAI,qBACpCpE,EAAsBsB,OAAO8C,IAAI,kBAE/B5D,EAAsBc,OAAO8C,IAAI,kBACnC7D,EAAqBe,OAAO8C,IAAI,iBAChC1D,EAAyBY,OAAO8C,IAAI,qBACpClE,EAAsBoB,OAAO8C,IAAI,kBACjCjE,EAA2BmB,OAAO8C,IAAI,uBACtCxD,EAAkBU,OAAO8C,IAAI,cAC7BvD,EAAkBS,OAAO8C,IAAI,cAC7BhE,EAAsBkB,OAAO8C,IAAI,kBACjCvE,EAAyByB,OAAO8C,IAAI,0BACpCP,EACEK,EAAMG,gEACR1B,EAAiBtlC,OAAOinC,UAAU3B,eAClCH,EAAc+B,MAAMC,QACpBC,EAAa/iC,QAAQ+iC,WACjB/iC,QAAQ+iC,WACR,WACS,OAAA,IACR,EAOH7C,EAAyB,CAAE,EAC3B8C,GAPIC,EAAA,CACN,2BAA4B,SAAUC,GACpC,OAAOA,GACf,IAIuC,4BAA4BzZ,KAC7D+Y,EACAzC,EAF2ByC,GAIzBW,EAAwBJ,EAAWjD,EAAYC,IAC/CsB,EAAwB,CAAE,EAC9B+B,GAAAC,SAAmBhF,EACnB+E,GAAWE,IAAG,SAAUxiC,EAAMu/B,EAAQC,EAAUE,EAAQC,GAClD,IAAA8C,EACF,IAAMpB,EAAqBqB,6BACtB,OAAApD,EACLt/B,EACAu/B,EACAC,GACA,EACAE,EACAC,EACA8C,EACItlC,MAAM,yBACN+kC,EACJO,EAAmBR,EAAWjD,EAAYh/B,IAASqiC,EAEtD,EACDC,GAAYK,KAAG,SAAU3iC,EAAMu/B,EAAQC,EAAUE,EAAQC,GACnD,IAAA8C,EACF,IAAMpB,EAAqBqB,6BACtB,OAAApD,EACLt/B,EACAu/B,EACAC,GACA,EACAE,EACAC,EACA8C,EACItlC,MAAM,yBACN+kC,EACJO,EAAmBR,EAAWjD,EAAYh/B,IAASqiC,EAEtD,CACL,CAzVG,yBCV0B,eAAzB55B,QAAQC,IAAIC,SACdi6B,GAAAC,wCCQE,IAAA5B,EAAqBnC,OAAO8C,IAAI,8BAClCrE,EAAsBuB,OAAO8C,IAAI,kBAC1B,SAAAkB,EAAQ9iC,EAAMu/B,EAAQC,GAC7B,IAAIvkC,EAAM,KAGV,QAFW,IAAAukC,IAAavkC,EAAM,GAAKukC,QACnC,IAAWD,EAAOtkC,MAAQA,EAAM,GAAKskC,EAAOtkC,KACxC,QAASskC,EAEX,IAAA,IAASqB,KADTpB,EAAW,CAAE,EACQD,EACnB,QAAUqB,IAAapB,EAASoB,GAAYrB,EAAOqB,SACrCpB,EAAAD,EAEX,OADPA,EAASC,EAASH,IACX,CACLjC,SAAU6D,EACVjhC,OACA/E,MACAokC,SAAK,IAAWE,EAASA,EAAS,KAClCxhC,MAAOyhC,EAEX,QACAuD,GAAAR,SAAmBhF,EACnBwF,GAAAP,IAAcM,EACdC,GAAAJ,KAAeG,KD9BInB,GAEjBiB,GAAAC,QAAiBG,kBEKZ,SAASC,GAAuBzB,GAC/B,MAAA3vB,EAAYpE,SAASC,cAAc,OAOlC,OAJPw1B,EAAAA,WAAU,MAaH,SAAO1B,EAAiB3vB,GACzB,MAAAsxB,EAAOC,aAAWvxB,GACjBsxB,EAAK3f,OAAOge,EACrB,CAfIhe,CAAOge,EAAM3vB,EAAS,IAGjBA,CACT,CCbO,MAAMwxB,GAAuD,EAAGtD,eACrE,MAAOuD,EAAWC,GAAgBC,EAAAA,UAAS,GAOvC,OALJC,EAAAA,WAAU,KACRF,GAAa,EAAI,GAChB,IAGmB,oBAAX53B,OACF,KAGJ23B,sBAIKvD,aAHD,IAGU,iBCCQhiC,IACrB,MAAA2lC,EAAWC,SAA4B,MAwG7C,OArGAF,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GACCA,EAAA2jB,eAAezkB,EAAMykB,eAAc,GACxC,CAACzkB,EAAMykB,eAAgBkhB,IAG1BD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GACCA,EAAA6jB,qBAAqB3kB,EAAM2kB,qBAAoB,GACpD,CAAC3kB,EAAM2kB,qBAAsBghB,IAGhCD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GACCA,EAAA+jB,mBAAmB7kB,EAAM6kB,mBAAkB,GAChD,CAAC7kB,EAAM6kB,mBAAoB8gB,IAG9BD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GAAUd,EAAM8lC,cACrBC,gBAAe,KACPjlC,EAAAy7B,WAAWyJ,GAERd,GADWllC,EAAM8lC,aAAcE,KAEvC,GACF,GACA,CAAChmC,EAAM8lC,aAAcH,IAGxBD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GAAUd,EAAMimC,gBACrBF,gBAAe,KACPjlC,EAAA+7B,aAAaqJ,GAEVhB,GADWllC,EAAMimC,eAAgBC,KAEzC,GACF,GACA,CAAClmC,EAAMimC,eAAgBN,IAG1BD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GAAUd,EAAMmmC,kBACrBJ,gBAAe,KACPjlC,EAAA67B,eAAeyJ,GAEZlB,GADWllC,EAAMmmC,iBAAkBC,KAE3C,GACF,GACA,CAACpmC,EAAMmmC,iBAAkBR,IAG5BD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GAAUd,EAAMqmC,oBACrBN,gBAAe,KACPjlC,EAAA47B,iBAAiB4J,GAEdpB,GADWllC,EAAMqmC,mBAAoBC,KAE7C,GACF,GACA,CAACtmC,EAAMqmC,mBAAoBV,IAG9BD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GAAUd,EAAMumC,kBACrBR,gBAAe,KACPjlC,EAAA87B,eAAe4J,GAEZtB,GADWllC,EAAMumC,iBAAkBC,KAE3C,GACF,GACA,CAACxmC,EAAMumC,iBAAkBZ,IAG5BD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GAAUd,EAAMymC,sBACrBV,gBAAe,KACPjlC,EAAAg8B,mBAAmB4J,GAEhBxB,GADWllC,EAAMymC,qBAAsBC,KAE/C,GACF,GACA,CAAC1mC,EAAMymC,qBAAsBd,IAGhCD,EAAAA,WAAU,KACR,MAAM5kC,EAAQ6kC,EAASE,QAClB/kC,GACLilC,gBAAe,KACPjlC,EAAA4kB,YAAY1lB,EAAM8X,UAAY,QAAO,GAC5C,GACA,CAAC9X,EAAM8X,SAAU6tB,WAGjBL,GAEC,CAAAtD,SAAA2E,GAAAlC,IAAC,gBAAA,CACCnD,IAAKqE,EACLrxB,OAAQtU,EAAMsU,OACd,cAAatU,EAAM4mC,WAAa/mC,KAAKC,UAAUE,EAAM4mC,iBAAc,EACnE,aAAY5mC,EAAM6mC,UAAYhnC,KAAKC,UAAUE,EAAM6mC,gBAAa,EAChEn4B,KAAM1O,EAAM0O,QAEhB,0BC5GkC1O,IAC9B,MAAA8mC,EAAUlB,SAAqC,MAoHrD,OAjHAF,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GACAA,EAAAkO,eAAezkB,EAAMykB,eAAc,GACvC,CAACzkB,EAAMykB,eAAgBqiB,IAG1BpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GACAA,EAAAoO,qBAAqB3kB,EAAM2kB,qBAAoB,GACnD,CAAC3kB,EAAM2kB,qBAAsBmiB,IAGhCpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GACAA,EAAAsO,mBAAmB7kB,EAAM6kB,mBAAkB,GAC/C,CAAC7kB,EAAM6kB,mBAAoBiiB,IAG9BpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAM+mC,mBACpBhB,gBAAe,KACRxvB,EAAAmoB,gBAAgBsH,GAEZd,GADWllC,EAAM+mC,kBAAmBf,KAE5C,GACF,GACA,CAAChmC,EAAM+mC,kBAAmBD,IAG7BpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAMgnC,qBACpBjB,gBAAe,KACRxvB,EAAAwoB,kBAAkBmH,GAEdhB,GADWllC,EAAMgnC,oBAAqBd,KAE9C,GACF,GACA,CAAClmC,EAAMgnC,oBAAqBF,IAG/BpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAMinC,uBACpBlB,gBAAe,KACRxvB,EAAAsoB,oBAAoBuH,GAEhBlB,GADWllC,EAAMinC,sBAAuBb,KAEhD,GACF,GACA,CAACpmC,EAAMinC,sBAAuBH,IAGjCpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAMknC,yBACpBnB,gBAAe,KACRxvB,EAAAqoB,sBAAsB0H,GAElBpB,GADWllC,EAAMknC,wBAAyBZ,KAElD,GACF,GACA,CAACtmC,EAAMknC,wBAAyBJ,IAGnCpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAMmnC,uBACpBpB,gBAAe,KACRxvB,EAAAuoB,oBAAoB0H,GAEhBtB,GADWllC,EAAMmnC,sBAAuBX,KAEhD,GACF,GACA,CAACxmC,EAAMmnC,sBAAuBL,IAGjCpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAMonC,2BACpBrB,gBAAe,KACRxvB,EAAAyoB,wBAAwB0H,GAEpBxB,GADWllC,EAAMonC,0BAA2BV,KAEpD,GACF,GACA,CAAC1mC,EAAMonC,0BAA2BN,IAGrCpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GAASvW,EAAMqnC,uBACpBtB,gBAAe,KACRxvB,EAAA0oB,oBAAoBqI,GAEhBpC,GADWllC,EAAMqnC,sBAAuBC,KAEhD,GACF,GACA,CAACtnC,EAAMqnC,sBAAuBP,IAGjCpB,EAAAA,WAAU,KACR,MAAMnvB,EAAOuwB,EAAQjB,QAChBtvB,GACLwvB,gBAAe,KACRxvB,EAAAmP,YAAY1lB,EAAM8X,UAAY,QAAO,GAC3C,GACA,CAAC9X,EAAM8X,SAAUgvB,WAGjBxB,GAEC,CAAAtD,SAAA2E,GAAAlC,IAAC,2BAAA,CACCnD,IAAKwF,EACL,kBAAiB9mC,EAAMunC,eACvB,cAAavnC,EAAMwnC,WACnB,eAAcxnC,EAAMynC,YACpBtJ,KAAMn+B,EAAMm+B,KACZF,IAAKj+B,EAAMi+B,IACXG,MAAOp+B,EAAMo+B,MACbF,OAAQl+B,EAAMk+B,OACd,cAAal+B,EAAM4mC,WAAa/mC,KAAKC,UAAUE,EAAM4mC,iBAAc,EACnE,aAAY5mC,EAAM6mC,UAAYhnC,KAAKC,UAAUE,EAAM6mC,gBAAa,EAChEn4B,KAAM1O,EAAM0O,QAEhB,eCrIsB,KAGxB,MAAMxC,EAAUlM,GAAwBwL,EAAQC,OAAOS,OAAOlM,GACxDoM,EAAU,IAAMZ,EAAQC,OAAOW,UAG/Bs7B,EAAa1nC,GAAqE0d,GAAsBjS,OAAOwN,KAAKjZ,GACpH0a,EAA2B1a,GAA8C0d,GAAsBjS,OAAOiP,wBAAwB1a,GAC9H2nC,EAAsBC,GAAkBp8B,EAAQC,OAAOnG,gBAAkBsiC,EACzE3tB,EAAeta,GAA0B+d,GAAsBjS,OAAOwO,YAAY,CAAEta,YACpFua,EAAiBva,GAA0B+d,GAAsBjS,OAAOyO,cAAc,CAAEva,YACxF2a,EAAgB3a,GAA0B+d,GAAsBjS,OAAO6O,aAAa,CAAE3a,YACtFya,EAAkBza,GAA0B+d,GAAsBjS,OAAO2O,eAAe,CAAEza,YAC1Fwa,EAAexa,GAA0B+d,GAAsBjS,OAAO0O,YAAY,CAAExa,YACpF4a,EAAoB5a,GAA0B+d,GAAsBjS,OAAO8O,iBAAiB,CAAE5a,YAC9Foa,EAAkB,IAAM2D,GAAsBjS,OAAOsO,mBAGpD8tB,EAAMC,GAAWnE,EAAM8B,SAA8B,CAC1D7hC,YAAQ,EACRsI,SACAE,aAGKtL,EAAOinC,GAAYpE,EAAM8B,SAAqB,CACnDxsB,KAAMyuB,EACNhtB,0BACAitB,qBACA1tB,cACAC,gBACAI,eACAF,iBACAD,cACAI,mBACAR,oBAGF4pB,EAAM+B,WAAU,KAGd,MAAMp5B,EAAWd,EAAQC,OAAOY,2BAA0B,IAAM27B,MAG1DC,EAAgB,IAAIza,GAA8B,CACtDluB,QAAUH,GAAiB+oC,EAAa/oC,GACxCka,gBAAiB,IAAM6uB,IACvB9qB,YAAa,IAAM8qB,IACnB5qB,aAAc,IAAM4qB,IACpB3qB,gBAAiB,IAAM2qB,IACvBzqB,gBAAiB,IAAMyqB,IACvB5uB,oBAAqB,IAAM4uB,MAS7B,OAPsBxqB,GAAAjS,OAAOyM,qBAAqB+vB,GAGtCD,IACCE,IAGN,KACL57B,EAASf,SACT08B,EAAc18B,QAAO,CACvB,GACC,IAEH,MAAMy8B,EAAc,WACZ,MAAArqC,EAAU,OAAAY,EAAAiN,EAAQC,OAAOM,aAAQ,EAAAxN,EAAAZ,QAC/BmqC,EAAA,CACNlkC,OAAiB,MAATjG,OAAS,EAAAA,EAAAiG,OACjBsI,SACAE,WACD,EAGG87B,EAAgB/oC,IACpB,MAAMgpC,EAAYzqB,GAAsBjS,OAC/Bs8B,EAAA,CACP9uB,KAAMyuB,EACNhtB,0BACAitB,qBACA1tB,cACAC,gBACAI,eACAF,iBACAD,cACAI,mBACAR,kBACAjZ,MAAOqnC,EAAUvwB,aACjB1R,QAASiiC,EAAUnwB,eACnBN,YAAaywB,EAAUzwB,YACvBvY,SACD,EAGI,MAAA,CACLsM,OAAQD,EAAQC,OAChBo8B,OACA/mC,QACF","x_google_ignoreList":[2,3,4]}
1
+ {"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../src/utils/utils.tsx","../src/components/courier-client-component.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-popup-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CLOSE_CODE_NORMAL_CLOSURE = 1e3;\nconst IPW_VERSION = \"v1\";\nconst _CourierSocket = class _CourierSocket {\n constructor(options) {\n /** The WebSocket instance, which may be null if the connection is not established. */\n __publicField(this, \"webSocket\", null);\n /** The number of connection retry attempts so far, reset after a successful connection. */\n __publicField(this, \"retryAttempt\", 0);\n /** The timeout ID for the current connectionretry attempt, reset when we attempt to connect. */\n __publicField(this, \"retryTimeoutId\", null);\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = options.apiUrls.inbox.webSocket;\n this.options = options;\n }\n /**\n * Connects to the Courier WebSocket server.\n *\n * If the connection is already established, this is a no-op.\n *\n * @returns A promise that resolves when the connection is established or rejects if the connection could not be established.\n */\n async connect() {\n var _a;\n this.clearRetryTimeout();\n if (this.isConnecting || this.isOpen) {\n (_a = this.options.logger) == null ? void 0 : _a.info(\"Attempted to open a WebSocket connection, but one already exists.\");\n return Promise.reject(new Error(\"WebSocket connection already exists\"));\n }\n return new Promise((resolve, reject) => {\n this.webSocket = new WebSocket(this.getWebSocketUrl());\n this.webSocket.addEventListener(\"open\", (event) => {\n this.retryAttempt = 0;\n this.onOpen(event);\n resolve();\n });\n this.webSocket.addEventListener(\"message\", async (event) => {\n var _a2;\n try {\n const json = JSON.parse(event.data);\n if (\"event\" in json && json.event === \"reconnect\") {\n this.close(CLOSE_CODE_NORMAL_CLOSURE);\n await this.retryConnection(json.retryAfter * 1e3);\n return;\n }\n this.onMessageReceived(json);\n } catch (error) {\n (_a2 = this.options.logger) == null ? void 0 : _a2.error(\"Error parsing socket message\", error);\n }\n });\n this.webSocket.addEventListener(\"close\", (event) => {\n if (event.code !== CLOSE_CODE_NORMAL_CLOSURE) {\n const courierCloseEvent = _CourierSocket.parseCloseEvent(event);\n if (courierCloseEvent.retryAfterSeconds) {\n this.retryConnection(courierCloseEvent.retryAfterSeconds * 1e3);\n } else {\n this.retryConnection();\n }\n }\n this.onClose(event);\n });\n this.webSocket.addEventListener(\"error\", (event) => {\n this.retryConnection();\n this.onError(event);\n reject(event);\n });\n });\n }\n /**\n * Closes the WebSocket connection.\n *\n * See {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close} for more details.\n *\n * @param code The WebSocket close code. Defaults to {@link CLOSE_CODE_NORMAL_CLOSURE}.\n * @param reason The WebSocket close reason.\n */\n close(code = CLOSE_CODE_NORMAL_CLOSURE, reason) {\n if (this.webSocket === null) {\n return;\n }\n this.webSocket.close(code, reason);\n this.webSocket = null;\n }\n /**\n * Sends a message to the Courier WebSocket server.\n *\n * @param message The message to send. The message will be serialized to a JSON string.\n */\n send(message) {\n var _a;\n if (this.webSocket === null || this.isConnecting) {\n (_a = this.options.logger) == null ? void 0 : _a.info(\"Attempted to send a message, but the WebSocket is not yet open.\");\n return;\n }\n const json = JSON.stringify(message);\n this.webSocket.send(json);\n }\n get userId() {\n return this.options.userId;\n }\n get logger() {\n return this.options.logger;\n }\n /**\n * Whether the WebSocket connection is currently being established.\n */\n get isConnecting() {\n return this.webSocket !== null && this.webSocket.readyState === WebSocket.CONNECTING;\n }\n /**\n * Whether the WebSocket connection is currently open.\n */\n get isOpen() {\n return this.webSocket !== null && this.webSocket.readyState === WebSocket.OPEN;\n }\n /**\n * Constructs the WebSocket URL for the Courier WebSocket server using context\n * from the {@link CourierClientOptions} passed to the constructor.\n *\n * @returns The WebSocket URL\n */\n getWebSocketUrl() {\n const accessToken = this.options.accessToken;\n const connectionId = this.options.connectionId;\n const userId = this.userId;\n return `${this.url}?auth=${accessToken}&cid=${connectionId}&iwpv=${IPW_VERSION}&userId=${userId}`;\n }\n /**\n * Parses the Retry-After time from the WebSocket close event reason,\n * and returns a new {@link CourierCloseEvent} with the retry after time in seconds\n * if present.\n *\n * The Courier WebSocket server may send the close event reason in the following format:\n *\n * ```json\n * {\n * \"Retry-After\": \"10\" // The retry after time in seconds\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/reason\n *\n * @param closeEvent The WebSocket close event.\n * @returns The WebSocket close event with the retry after time in seconds.\n */\n static parseCloseEvent(closeEvent) {\n if (closeEvent.reason === null || closeEvent.reason === \"\") {\n return closeEvent;\n }\n try {\n const jsonReason = JSON.parse(closeEvent.reason);\n if (!jsonReason[_CourierSocket.RETRY_AFTER_KEY]) {\n return closeEvent;\n }\n const retryAfterSeconds = parseInt(jsonReason[_CourierSocket.RETRY_AFTER_KEY]);\n if (Number.isNaN(retryAfterSeconds) || retryAfterSeconds < 0) {\n return closeEvent;\n }\n return {\n ...closeEvent,\n retryAfterSeconds\n };\n } catch (error) {\n return closeEvent;\n }\n }\n /**\n * Calculates the retry backoff time in milliseconds based on the current retry attempt.\n */\n getBackoffTimeInMillis() {\n const backoffIntervalInMillis = _CourierSocket.BACKOFF_INTERVALS_IN_MILLIS[this.retryAttempt];\n const lowerBound = backoffIntervalInMillis - backoffIntervalInMillis * _CourierSocket.BACKOFF_JITTER_FACTOR;\n const upperBound = backoffIntervalInMillis + backoffIntervalInMillis * _CourierSocket.BACKOFF_JITTER_FACTOR;\n return Math.floor(Math.random() * (upperBound - lowerBound) + lowerBound);\n }\n /**\n * Retries the connection to the Courier WebSocket server after\n * either {@param suggestedBackoffTimeInMillis} or a random backoff time\n * calculated using {@link getBackoffTimeInMillis}.\n *\n * @param suggestedBackoffTimeInMillis The suggested backoff time in milliseconds.\n * @returns A promise that resolves when the connection is established or rejects if the connection could not be established.\n */\n async retryConnection(suggestedBackoffTimeInMillis) {\n var _a, _b, _c;\n if (this.retryTimeoutId !== null) {\n (_a = this.logger) == null ? void 0 : _a.debug(\"Skipping retry attempt because a previous retry is already scheduled.\");\n return;\n }\n if (this.retryAttempt >= _CourierSocket.MAX_RETRY_ATTEMPTS) {\n (_b = this.logger) == null ? void 0 : _b.error(`Max retry attempts (${_CourierSocket.MAX_RETRY_ATTEMPTS}) reached.`);\n return;\n }\n const backoffTimeInMillis = suggestedBackoffTimeInMillis ?? this.getBackoffTimeInMillis();\n this.retryTimeoutId = window.setTimeout(async () => {\n try {\n await this.connect();\n } catch (error) {\n }\n }, backoffTimeInMillis);\n (_c = this.logger) == null ? void 0 : _c.debug(`Retrying connection in ${Math.floor(backoffTimeInMillis / 1e3)}s. Retry attempt ${this.retryAttempt + 1} of ${_CourierSocket.MAX_RETRY_ATTEMPTS}.`);\n this.retryAttempt++;\n }\n /**\n * Clears the retry timeout if it exists.\n */\n clearRetryTimeout() {\n if (this.retryTimeoutId !== null) {\n window.clearTimeout(this.retryTimeoutId);\n this.retryTimeoutId = null;\n }\n }\n};\n/**\n * The jitter factor for the backoff intervals.\n *\n * Backoff with jitter is calculated as a random value in the range:\n * [BACKOFF_INTERVAL - BACKOFF_JITTER_FACTOR * BACKOFF_INTERVAL,\n * BACKOFF_INTERVAL + BACKOFF_JITTER_FACTOR * BACKOFF_INTERVAL).\n */\n__publicField(_CourierSocket, \"BACKOFF_JITTER_FACTOR\", 0.5);\n/**\n * The maximum number of retry attempts.\n */\n__publicField(_CourierSocket, \"MAX_RETRY_ATTEMPTS\", 5);\n/**\n * Backoff intervals in milliseconds.\n *\n * Each represents an offset from the previous interval, rather than a\n * absolute offset from the initial request time.\n */\n__publicField(_CourierSocket, \"BACKOFF_INTERVALS_IN_MILLIS\", [\n 3e4,\n // 30 seconds\n 6e4,\n // 1 minute\n 12e4,\n // 2 minutes\n 24e4,\n // 4 minutes\n 48e4\n // 8 minutes\n]);\n/**\n * The key of the retry after time in the WebSocket close event reason.\n *\n * The Courier WebSocket server may send the close event reason in the following format:\n *\n * ```json\n * {\n * \"Retry-After\": \"10\" // The retry after time in seconds\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/reason\n */\n__publicField(_CourierSocket, \"RETRY_AFTER_KEY\", \"Retry-After\");\nlet CourierSocket = _CourierSocket;\nvar ClientAction = /* @__PURE__ */ ((ClientAction2) => {\n ClientAction2[\"Subscribe\"] = \"subscribe\";\n ClientAction2[\"Unsubscribe\"] = \"unsubscribe\";\n ClientAction2[\"Pong\"] = \"pong\";\n ClientAction2[\"Ping\"] = \"ping\";\n return ClientAction2;\n})(ClientAction || {});\nvar ServerAction = /* @__PURE__ */ ((ServerAction2) => {\n ServerAction2[\"Ack\"] = \"ack\";\n ServerAction2[\"Ping\"] = \"ping\";\n ServerAction2[\"Pong\"] = \"pong\";\n return ServerAction2;\n})(ServerAction || {});\nvar MessageEvent = /* @__PURE__ */ ((MessageEvent2) => {\n MessageEvent2[\"NewMessage\"] = \"message\";\n MessageEvent2[\"Archive\"] = \"archive\";\n MessageEvent2[\"ArchiveAll\"] = \"archive-all\";\n MessageEvent2[\"ArchiveRead\"] = \"archive-read\";\n MessageEvent2[\"Clicked\"] = \"clicked\";\n MessageEvent2[\"MarkAllRead\"] = \"mark-all-read\";\n MessageEvent2[\"Opened\"] = \"opened\";\n MessageEvent2[\"Read\"] = \"read\";\n MessageEvent2[\"Unarchive\"] = \"unarchive\";\n MessageEvent2[\"Unopened\"] = \"unopened\";\n MessageEvent2[\"Unread\"] = \"unread\";\n return MessageEvent2;\n})(MessageEvent || {});\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nconst _UUID = class _UUID {\n /**\n * nanoid\n * Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>\n *\n * https://github.com/ai/nanoid/blob/main/LICENSE\n *\n * @param size - The size of the UUID to generate.\n * @returns A string representing the UUID.\n */\n static nanoid(size = 21) {\n let id = \"\";\n let bytes = crypto.getRandomValues(new Uint8Array(size |= 0));\n while (size--) {\n id += _UUID.ALPHABET[bytes[size] & 63];\n }\n return id;\n }\n};\n__publicField(_UUID, \"ALPHABET\", \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\");\nlet UUID = _UUID;\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nšŸ“” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nšŸ“” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.nanoid() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.nanoid() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nconst _CourierInboxSocket = class _CourierInboxSocket extends CourierSocket {\n constructor(options) {\n super(options);\n // 1 minute\n /**\n * The interval ID for the ping interval.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval\n */\n __publicField(this, \"pingIntervalId\", null);\n /**\n * The list of message event listeners, called when a message event is received\n * from the Courier WebSocket server.\n */\n __publicField(this, \"messageEventListeners\", []);\n }\n onOpen(_) {\n this.restartPingInterval();\n return Promise.resolve();\n }\n onMessageReceived(data) {\n if (\"action\" in data && data.action === ServerAction.Ping) {\n const envelope = data;\n this.sendPong(envelope);\n }\n if (\"event\" in data) {\n for (const listener of this.messageEventListeners) {\n listener(data);\n }\n }\n this.restartPingInterval();\n return Promise.resolve();\n }\n onClose(_) {\n return Promise.resolve();\n }\n onError(_) {\n return Promise.resolve();\n }\n /**\n * Sends a subscribe message to the server.\n *\n * Subscribes to all events for the user.\n */\n sendSubscribe() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Subscribe,\n data: {\n channel: this.userId,\n event: \"*\"\n }\n };\n this.send(envelope);\n }\n /**\n * Sends an unsubscribe message to the server.\n *\n * Unsubscribes from all events for the user.\n */\n sendUnsubscribe() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Unsubscribe,\n data: {\n channel: this.userId\n }\n };\n this.send(envelope);\n }\n /**\n * Adds a message event listener, called when a message event is received\n * from the Courier WebSocket server.\n *\n * @param listener The listener function\n */\n addMessageEventListener(listener) {\n this.messageEventListeners.push(listener);\n }\n /**\n * Send a ping message to the server.\n *\n * ping/pong is implemented at the application layer since the browser's\n * WebSocket implementation does not support control-level ping/pong.\n */\n sendPing() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Ping\n };\n this.send(envelope);\n }\n /**\n * Send a pong response to the server.\n *\n * ping/pong is implemented at the application layer since the browser's\n * WebSocket implementation does not support control-level ping/pong.\n */\n sendPong(incomingMessage) {\n const response = {\n tid: incomingMessage.tid,\n action: ClientAction.Pong\n };\n this.send(response);\n }\n /**\n * Restart the ping interval, clearing the previous interval if it exists.\n */\n restartPingInterval() {\n if (this.pingIntervalId) {\n window.clearInterval(this.pingIntervalId);\n }\n this.pingIntervalId = window.setInterval(() => {\n this.sendPing();\n }, _CourierInboxSocket.PING_INTERVAL_MILLIS);\n }\n};\n/**\n * The interval in milliseconds at which to send a ping message to the server\n * if no other message has been received from the server.\n */\n__publicField(_CourierInboxSocket, \"PING_INTERVAL_MILLIS\", 6e4);\nlet CourierInboxSocket = _CourierInboxSocket;\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new CourierInboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.nanoid());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.nanoid();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n MessageEvent,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier, MessageEvent } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nconst BaseElement = typeof window === \"undefined\" ? class {\n constructor() {\n }\n} : class extends HTMLElement {\n constructor() {\n super();\n }\n};\nclass CourierSystemThemeElement extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nconst CourierIconSVGs = {\n inbox: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z\" fill=\"currentColor\"/>\n</svg>`,\n archive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z\" fill=\"currentColor\"/>\n</svg>`,\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z\" fill=\"currentColor\"/>\n</svg>`,\n filter: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z\" fill=\"currentColor\"/>\n</svg>`,\n overflow: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z\" fill=\"currentColor\"/>\n</svg>`,\n read: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z\" fill=\"currentColor\"/>\n</svg>`,\n archiveRead: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z\" fill=\"currentColor\"/>\n</svg>`,\n unread: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z\" fill=\"currentColor\"/>\n</svg>`,\n unarchive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z\" fill=\"currentColor\"/>\n</svg>`\n};\nclass CourierIcon extends BaseElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n return `\n :host {\n display: inline-block;\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n svg {\n width: 24px;\n height: 24px;\n color: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nclass CourierLink extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: inline-block;\n }\n\n a {\n text-decoration: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s ease;\n font-family: var(--courier-link-font-family, inherit);\n font-size: var(--courier-link-font-size, inherit);\n }\n\n /* Variants */\n a[data-variant=\"primary\"][data-mode=\"light\"] {\n color: var(--courier-link-color, ${theme.light.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:active {\n opacity: 0.6;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"] {\n color: var(--courier-link-color, ${theme.dark.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:active {\n opacity: 0.6;\n }\n\n a[data-underline=\"true\"] {\n text-decoration: underline;\n }\n\n a:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n }\n `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n return `\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n text-align: center;\n padding: 24px;\n }\n\n .container h2 {\n margin: 0;\n color: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nclass CourierIconButton extends BaseElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: inline-block;\n border-radius: ${this._borderRadius ?? \"50%\"};\n }\n\n button {\n border: none;\n border-radius: ${this._borderRadius ?? \"50%\"};\n cursor: pointer;\n width: ${this._width ?? \"36px\"};\n height: ${this._height ?? \"36px\"};\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${this._backgroundColor ?? \"transparent\"};\n transition: background-color 0.2s ease;\n touch-action: manipulation;\n }\n\n button:hover {\n background-color: ${this._hoverBackgroundColor ?? \"red\"};\n }\n\n button:active {\n background-color: ${this._activeBackgroundColor ?? \"red\"};\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n [part=\"icon\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n }\n `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nfunction registerElement(name, element) {\n if (typeof window !== \"undefined\" && !customElements.get(name)) {\n customElements.define(name, element);\n }\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton },\n { name: \"courier-system-theme\", class: CourierSystemThemeElement }\n];\ncomponents.forEach(({ name, class: componentClass }) => registerElement(name, componentClass));\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierInboxListItemMenu extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.shadow) ?? \"0 2px 8px red\"};\n user-select: none;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s;\n overflow: hidden;\n }\n\n :host(.visible) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul.menu {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n }\n\n li.menu-item {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom: none;\n background: transparent;\n }\n `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nregisterElement(\"courier-inbox-list-item-menu\", CourierInboxListItemMenu);\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n if (socket.isConnecting || socket.isOpen) {\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(`Inbox socket already connecting or open for client ID: [${(_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId}]`);\n return;\n }\n socket.addMessageEventListener((event) => {\n if (event.event === MessageEvent.NewMessage) {\n const message2 = event.data;\n this.addMessage(message2, 0, \"inbox\");\n return;\n }\n const message = this.getMessage({ messageId: event.messageId });\n switch (event.event) {\n case MessageEvent.MarkAllRead:\n this.readAllMessages({ canCallApi: false });\n break;\n case MessageEvent.Read:\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unread:\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Opened:\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Archive:\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.ArchiveRead:\n this.archiveReadMessages({ canCallApi: false });\n break;\n case MessageEvent.Clicked:\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unarchive:\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unopened:\n break;\n }\n });\n await socket.connect();\n await socket.sendSubscribe();\n (_i = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _i.info(`Inbox socket connected for client ID: [${(_h = Courier.shared.client) == null ? void 0 : _h.options.connectionId}]`);\n } catch (error) {\n (_k = (_j = Courier.shared.client) == null ? void 0 : _j.options.logger) == null ? void 0 : _k.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n if (!props.messageId) {\n return void 0;\n }\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierInboxListItemMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.divider) ?? \"1px solid red\"};\n font-family: inherit;\n cursor: pointer;\n transition: background-color 0.2s ease;\n margin: 0;\n width: 100%;\n box-sizing: border-box;\n padding: 12px 20px;\n position: relative;\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: manipulation;\n }\n\n /* ───────────────────────── Base hover / active ────────────────── */\n @media (hover: hover) {\n :host(:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* ───────────────────────── Menu hover / active ────────────────── */\n @media (hover: hover) {\n :host(:hover):has(courier-inbox-list-item-menu:hover, courier-inbox-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-inbox-list-item-menu:active, courier-inbox-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n\n :host(:last-child) {\n border-bottom: none;\n }\n\n .unread-indicator {\n position: absolute;\n top: 28px;\n left: 6px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(listItem == null ? void 0 : listItem.unreadIndicatorColor) ?? \"red\"};\n display: none;\n }\n\n :host(.unread) .unread-indicator {\n display: block;\n }\n\n .content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n margin-right: 12px;\n }\n\n p {\n margin: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n hyphens: auto;\n line-height: 1.4;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n text-align: left;\n }\n\n p[part='title'] {\n font-family: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-inbox-list-item-menu {\n z-index: 1;\n position: absolute;\n top: 8px;\n right: 8px;\n display: none; /* becomes block while visible */\n }\n\n .actions-container {\n display: flex;\n margin-top: 10px;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n display: none;\n }\n\n `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem – failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nregisterElement(\"courier-inbox-list-item\", CourierListItem);\nclass CourierInboxSkeletonListItem extends BaseElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n return `\n :host {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n width: 100%;\n box-sizing: border-box;\n opacity: ${opacity};\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\nclass CourierSkeletonAnimatedRow extends BaseElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.barBorderRadius) ?? \"14px\"};\n }\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `;\n }\n}\nregisterElement(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n return `\n :host {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n }\n\n .list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n overflow: hidden;\n }\n\n .list > * {\n border-bottom: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\nclass CourierInboxPaginationListItem extends BaseElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nregisterElement(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\nclass CourierInboxList extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-list\", CourierInboxList);\nclass CourierInboxOptionMenuItem extends BaseElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n return `\n :host {\n display: flex;\n flex-direction: row;\n padding: 6px 12px;\n cursor: pointer;\n }\n\n :host(:hover) {\n background-color: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.activeBackgroundColor) ?? \"red\"};\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n }\n\n .spacer {\n flex: 1;\n }\n\n p {\n margin: 0;\n font-family: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nregisterElement(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\nclass CourierInboxOptionMenu extends BaseElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n :host {\n position: relative;\n display: inline-block;\n }\n\n .menu {\n display: none;\n position: absolute;\n top: 42px;\n right: -6px;\n border-radius: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.shadow) ?? \"0 4px 12px 0 red\"};\n z-index: 1000;\n min-width: 200px;\n overflow: hidden;\n padding: 4px 0;\n }\n\n courier-inbox-filter-menu-item {\n border-bottom: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\nclass CourierUnreadCountBadge extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-unread-count-badge\", CourierUnreadCountBadge);\nclass CourierInboxHeaderTitle extends BaseElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n .title-section {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n }\n\n courier-icon {\n display: flex;\n align-items: center;\n }\n\n h2 {\n margin: 0;\n font-family: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n return `\n :host {\n z-index: 100;\n }\n\n .courier-inbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 10px 10px 16px;\n background-color: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[500]};\n }\n\n .header-content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .spacer {\n flex: 1;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header\", CourierInboxHeader);\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends BaseElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: ${this._defaultProps.height};\n }\n\n courier-inbox-header {\n flex-shrink: 0;\n }\n\n courier-inbox-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nregisterElement(\"courier-inbox\", CourierInbox);\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n return `\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-menu-button\", CourierInboxMenuButton);\nclass CourierInboxPopupMenu extends BaseElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return `\n :host {\n display: inline-block;\n position: relative;\n }\n\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n\n .popup {\n display: none;\n position: absolute;\n background: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.shadow) ?? `0px 8px 16px -4px red`};\n z-index: 1000;\n width: ${this._width};\n height: ${this._height};\n overflow: hidden;\n transform: translateZ(0);\n will-change: transform;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n\n courier-inbox {\n height: 100%;\n }\n `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nregisterElement(\"courier-inbox-popup-menu\", CourierInboxPopupMenu);\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxPopupMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n \"react-stack-bottom-frame\": function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React[\"react-stack-bottom-frame\"].bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import { ReactNode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\n\n/**\n * Converts a React node to an HTMLElement.\n * This function uses flushSync to ensure the DOM is updated synchronously.\n * @param node - The React node to convert.\n * @returns The converted HTMLElement.\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n\n // Use flushSync to ensure the DOM is updated synchronously\n flushSync(() => {\n render(node, container);\n });\n\n return container;\n}\n\n/**\n * Render a React node using createRoot.\n * @param node - The React node to render.\n * @param container - The container to render the node into.\n * @returns The rendered node.\n */\nfunction render(node: ReactNode, container: HTMLElement) {\n const root = createRoot(container);\n return root.render(node);\n}","import React, { useState, useEffect } from 'react';\n\ninterface CourierClientProps {\n children: React.ReactNode;\n}\n\nexport const CourierClientComponent: React.FC<CourierClientProps> = ({ children }) => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // During SSR, render nothing or fallback\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (!isMounted) {\n return null;\n }\n\n return <>{children}</>;\n};","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxPopupMenu as CourierInboxPopupMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxPopupMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxPopupMenu = (props: CourierInboxPopupMenuProps) => {\n const menuRef = useRef<CourierInboxPopupMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox-popup-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","CLOSE_CODE_NORMAL_CLOSURE","_CourierSocket","constructor","options","__publicField$1","this","url","apiUrls","inbox","webSocket","connect","_a","clearRetryTimeout","isConnecting","isOpen","logger","info","Promise","reject","Error","resolve","WebSocket","getWebSocketUrl","addEventListener","event","retryAttempt","onOpen","async","_a2","json","JSON","parse","data","close","retryConnection","retryAfter","onMessageReceived","error","code","courierCloseEvent","parseCloseEvent","retryAfterSeconds","onClose","onError","reason","send","message","stringify","userId","readyState","CONNECTING","OPEN","accessToken","connectionId","closeEvent","jsonReason","RETRY_AFTER_KEY","parseInt","Number","isNaN","getBackoffTimeInMillis","backoffIntervalInMillis","BACKOFF_INTERVALS_IN_MILLIS","lowerBound","BACKOFF_JITTER_FACTOR","upperBound","Math","floor","random","suggestedBackoffTimeInMillis","_b","_c","retryTimeoutId","debug","MAX_RETRY_ATTEMPTS","backoffTimeInMillis","window","setTimeout","clearTimeout","CourierSocket","ClientAction","ClientAction2","ServerAction","ServerAction2","MessageEvent","MessageEvent2","getCourierApiUrls","urls","courier","rest","graphql","Logger","showLogs","warn","args","console","PREFIX","log","_UUID","nanoid","size","id","bytes","crypto","getRandomValues","Uint8Array","ALPHABET","UUID","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","props","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","Authorization","brand","_CourierInboxSocket","_","restartPingInterval","action","Ping","envelope","sendPong","listener","messageEventListeners","sendSubscribe","tid","Subscribe","channel","sendUnsubscribe","Unsubscribe","addMessageEventListener","push","sendPing","incomingMessage","Pong","pingIntervalId","clearInterval","setInterval","PING_INTERVAL_MILLIS","CourierInboxSocket","InboxClient","socket","getMessages","tenantId","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","process","env","NODE_ENV","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","authenticationListeners","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","removeEventListener","BaseElement","HTMLElement","CourierSystemThemeElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","_d","defaultFontSize","_e","defaultBackgroundColor","_f","defaultTextColor","_g","defaultBorder","_h","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","toString","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","registerElement","customElements","get","define","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierInboxListItemMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","call","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","NewMessage","message2","addMessage","getMessage","MarkAllRead","readAllMessages","canCallApi","Read","readMessage","Unread","unreadMessage","Opened","openMessage","Archive","archiveMessage","ArchiveRead","archiveReadMessages","Clicked","clickMessage","Unarchive","unarchiveMessage","Unopened","find","m","fetchNextPageOfMessages","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","disconnect","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","subscription","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","getComponentNameFromType","$$typeof","REACT_CLIENT_REFERENCE","displayName","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","getTaskName","UnknownOwner","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","source","self","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","hasOwnProperty","keys","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineKeyPropWarningGetter","owner","REACT_ELEMENT_TYPE","_owner","_store","ReactElement","ReactSharedInternals","A","getOwner","node","validated","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","Array","isArray","createTask","unknownOwnerDebugStack","React$1","callStackForError","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","exports","jsxProd","reactJsxRuntime_production","require$$1","reactNodeToHTMLElement","flushSync","root","createRoot","CourierClientComponent","isMounted","setIsMounted","useState","useEffect","inboxRef","useRef","current","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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IC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIC,GAAIC,GAAKC,GAAKC,GAAKC,GAAKoG,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GA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","x_google_ignoreList":[2,3,4]}