@trycourier/courier-react 8.0.15-beta ā 8.0.16-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +160 -475
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../src/utils/utils.tsx","../src/components/courier-client-component.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-popup-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst 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]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../src/utils/utils.tsx","../src/components/courier-client-component.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-popup-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CLOSE_CODE_NORMAL_CLOSURE = 1e3;\nconst IPW_VERSION = \"v1\";\nconst _CourierSocket = class _CourierSocket {\n constructor(options) {\n /** The WebSocket instance, which may be null if the connection is not established. */\n __publicField(this, \"webSocket\", null);\n /** The number of connection retry attempts so far, reset after a successful connection. */\n __publicField(this, \"retryAttempt\", 0);\n /** The timeout ID for the current connectionretry attempt, reset when we attempt to connect. */\n __publicField(this, \"retryTimeoutId\", null);\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = options.apiUrls.inbox.webSocket;\n this.options = options;\n }\n /**\n * Connects to the Courier WebSocket server.\n *\n * If the connection is already established, this is a no-op.\n *\n * @returns A promise that resolves when the connection is established or rejects if the connection could not be established.\n */\n async connect() {\n var _a;\n this.clearRetryTimeout();\n if (this.isConnecting || this.isOpen) {\n (_a = this.options.logger) == null ? void 0 : _a.info(\"Attempted to open a WebSocket connection, but one already exists.\");\n return Promise.reject(new Error(\"WebSocket connection already exists\"));\n }\n return new Promise((resolve, reject) => {\n this.webSocket = new WebSocket(this.getWebSocketUrl());\n this.webSocket.addEventListener(\"open\", (event) => {\n this.retryAttempt = 0;\n this.onOpen(event);\n resolve();\n });\n this.webSocket.addEventListener(\"message\", async (event) => {\n var _a2;\n try {\n const json = JSON.parse(event.data);\n if (\"event\" in json && json.event === \"reconnect\") {\n this.close(CLOSE_CODE_NORMAL_CLOSURE);\n await this.retryConnection(json.retryAfter * 1e3);\n return;\n }\n this.onMessageReceived(json);\n } catch (error) {\n (_a2 = this.options.logger) == null ? void 0 : _a2.error(\"Error parsing socket message\", error);\n }\n });\n this.webSocket.addEventListener(\"close\", (event) => {\n if (event.code !== CLOSE_CODE_NORMAL_CLOSURE) {\n const courierCloseEvent = _CourierSocket.parseCloseEvent(event);\n if (courierCloseEvent.retryAfterSeconds) {\n this.retryConnection(courierCloseEvent.retryAfterSeconds * 1e3);\n } else {\n this.retryConnection();\n }\n }\n this.onClose(event);\n });\n this.webSocket.addEventListener(\"error\", (event) => {\n this.retryConnection();\n this.onError(event);\n reject(event);\n });\n });\n }\n /**\n * Closes the WebSocket connection.\n *\n * See {@link https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close} for more details.\n *\n * @param code The WebSocket close code. Defaults to {@link CLOSE_CODE_NORMAL_CLOSURE}.\n * @param reason The WebSocket close reason.\n */\n close(code = CLOSE_CODE_NORMAL_CLOSURE, reason) {\n if (this.webSocket === null) {\n return;\n }\n this.webSocket.close(code, reason);\n this.webSocket = null;\n }\n /**\n * Sends a message to the Courier WebSocket server.\n *\n * @param message The message to send. The message will be serialized to a JSON string.\n */\n send(message) {\n var _a;\n if (this.webSocket === null || this.isConnecting) {\n (_a = this.options.logger) == null ? void 0 : _a.info(\"Attempted to send a message, but the WebSocket is not yet open.\");\n return;\n }\n const json = JSON.stringify(message);\n this.webSocket.send(json);\n }\n get userId() {\n return this.options.userId;\n }\n get logger() {\n return this.options.logger;\n }\n /**\n * Whether the WebSocket connection is currently being established.\n */\n get isConnecting() {\n return this.webSocket !== null && this.webSocket.readyState === WebSocket.CONNECTING;\n }\n /**\n * Whether the WebSocket connection is currently open.\n */\n get isOpen() {\n return this.webSocket !== null && this.webSocket.readyState === WebSocket.OPEN;\n }\n /**\n * Constructs the WebSocket URL for the Courier WebSocket server using context\n * from the {@link CourierClientOptions} passed to the constructor.\n *\n * @returns The WebSocket URL\n */\n getWebSocketUrl() {\n const accessToken = this.options.accessToken;\n const connectionId = this.options.connectionId;\n const userId = this.userId;\n return `${this.url}?auth=${accessToken}&cid=${connectionId}&iwpv=${IPW_VERSION}&userId=${userId}`;\n }\n /**\n * Parses the Retry-After time from the WebSocket close event reason,\n * and returns a new {@link CourierCloseEvent} with the retry after time in seconds\n * if present.\n *\n * The Courier WebSocket server may send the close event reason in the following format:\n *\n * ```json\n * {\n * \"Retry-After\": \"10\" // The retry after time in seconds\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/reason\n *\n * @param closeEvent The WebSocket close event.\n * @returns The WebSocket close event with the retry after time in seconds.\n */\n static parseCloseEvent(closeEvent) {\n if (closeEvent.reason === null || closeEvent.reason === \"\") {\n return closeEvent;\n }\n try {\n const jsonReason = JSON.parse(closeEvent.reason);\n if (!jsonReason[_CourierSocket.RETRY_AFTER_KEY]) {\n return closeEvent;\n }\n const retryAfterSeconds = parseInt(jsonReason[_CourierSocket.RETRY_AFTER_KEY]);\n if (Number.isNaN(retryAfterSeconds) || retryAfterSeconds < 0) {\n return closeEvent;\n }\n return {\n ...closeEvent,\n retryAfterSeconds\n };\n } catch (error) {\n return closeEvent;\n }\n }\n /**\n * Calculates the retry backoff time in milliseconds based on the current retry attempt.\n */\n getBackoffTimeInMillis() {\n const backoffIntervalInMillis = _CourierSocket.BACKOFF_INTERVALS_IN_MILLIS[this.retryAttempt];\n const lowerBound = backoffIntervalInMillis - backoffIntervalInMillis * _CourierSocket.BACKOFF_JITTER_FACTOR;\n const upperBound = backoffIntervalInMillis + backoffIntervalInMillis * _CourierSocket.BACKOFF_JITTER_FACTOR;\n return Math.floor(Math.random() * (upperBound - lowerBound) + lowerBound);\n }\n /**\n * Retries the connection to the Courier WebSocket server after\n * either {@param suggestedBackoffTimeInMillis} or a random backoff time\n * calculated using {@link getBackoffTimeInMillis}.\n *\n * @param suggestedBackoffTimeInMillis The suggested backoff time in milliseconds.\n * @returns A promise that resolves when the connection is established or rejects if the connection could not be established.\n */\n async retryConnection(suggestedBackoffTimeInMillis) {\n var _a, _b, _c;\n if (this.retryTimeoutId !== null) {\n (_a = this.logger) == null ? void 0 : _a.debug(\"Skipping retry attempt because a previous retry is already scheduled.\");\n return;\n }\n if (this.retryAttempt >= _CourierSocket.MAX_RETRY_ATTEMPTS) {\n (_b = this.logger) == null ? void 0 : _b.error(`Max retry attempts (${_CourierSocket.MAX_RETRY_ATTEMPTS}) reached.`);\n return;\n }\n const backoffTimeInMillis = suggestedBackoffTimeInMillis ?? this.getBackoffTimeInMillis();\n this.retryTimeoutId = window.setTimeout(async () => {\n try {\n await this.connect();\n } catch (error) {\n }\n }, backoffTimeInMillis);\n (_c = this.logger) == null ? void 0 : _c.debug(`Retrying connection in ${Math.floor(backoffTimeInMillis / 1e3)}s. Retry attempt ${this.retryAttempt + 1} of ${_CourierSocket.MAX_RETRY_ATTEMPTS}.`);\n this.retryAttempt++;\n }\n /**\n * Clears the retry timeout if it exists.\n */\n clearRetryTimeout() {\n if (this.retryTimeoutId !== null) {\n window.clearTimeout(this.retryTimeoutId);\n this.retryTimeoutId = null;\n }\n }\n};\n/**\n * The jitter factor for the backoff intervals.\n *\n * Backoff with jitter is calculated as a random value in the range:\n * [BACKOFF_INTERVAL - BACKOFF_JITTER_FACTOR * BACKOFF_INTERVAL,\n * BACKOFF_INTERVAL + BACKOFF_JITTER_FACTOR * BACKOFF_INTERVAL).\n */\n__publicField(_CourierSocket, \"BACKOFF_JITTER_FACTOR\", 0.5);\n/**\n * The maximum number of retry attempts.\n */\n__publicField(_CourierSocket, \"MAX_RETRY_ATTEMPTS\", 5);\n/**\n * Backoff intervals in milliseconds.\n *\n * Each represents an offset from the previous interval, rather than a\n * absolute offset from the initial request time.\n */\n__publicField(_CourierSocket, \"BACKOFF_INTERVALS_IN_MILLIS\", [\n 3e4,\n // 30 seconds\n 6e4,\n // 1 minute\n 12e4,\n // 2 minutes\n 24e4,\n // 4 minutes\n 48e4\n // 8 minutes\n]);\n/**\n * The key of the retry after time in the WebSocket close event reason.\n *\n * The Courier WebSocket server may send the close event reason in the following format:\n *\n * ```json\n * {\n * \"Retry-After\": \"10\" // The retry after time in seconds\n * }\n * ```\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/reason\n */\n__publicField(_CourierSocket, \"RETRY_AFTER_KEY\", \"Retry-After\");\nlet CourierSocket = _CourierSocket;\nvar ClientAction = /* @__PURE__ */ ((ClientAction2) => {\n ClientAction2[\"Subscribe\"] = \"subscribe\";\n ClientAction2[\"Unsubscribe\"] = \"unsubscribe\";\n ClientAction2[\"Pong\"] = \"pong\";\n ClientAction2[\"Ping\"] = \"ping\";\n return ClientAction2;\n})(ClientAction || {});\nvar ServerAction = /* @__PURE__ */ ((ServerAction2) => {\n ServerAction2[\"Ack\"] = \"ack\";\n ServerAction2[\"Ping\"] = \"ping\";\n ServerAction2[\"Pong\"] = \"pong\";\n return ServerAction2;\n})(ServerAction || {});\nvar MessageEvent = /* @__PURE__ */ ((MessageEvent2) => {\n MessageEvent2[\"NewMessage\"] = \"message\";\n MessageEvent2[\"Archive\"] = \"archive\";\n MessageEvent2[\"ArchiveAll\"] = \"archive-all\";\n MessageEvent2[\"ArchiveRead\"] = \"archive-read\";\n MessageEvent2[\"Clicked\"] = \"clicked\";\n MessageEvent2[\"MarkAllRead\"] = \"mark-all-read\";\n MessageEvent2[\"Opened\"] = \"opened\";\n MessageEvent2[\"Read\"] = \"read\";\n MessageEvent2[\"Unarchive\"] = \"unarchive\";\n MessageEvent2[\"Unopened\"] = \"unopened\";\n MessageEvent2[\"Unread\"] = \"unread\";\n return MessageEvent2;\n})(MessageEvent || {});\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nconst _UUID = class _UUID {\n /**\n * nanoid\n * Copyright 2017 Andrey Sitnik <andrey@sitnik.ru>\n *\n * https://github.com/ai/nanoid/blob/main/LICENSE\n *\n * @param size - The size of the UUID to generate.\n * @returns A string representing the UUID.\n */\n static nanoid(size = 21) {\n let id = \"\";\n let bytes = crypto.getRandomValues(new Uint8Array(size |= 0));\n while (size--) {\n id += _UUID.ALPHABET[bytes[size] & 63];\n }\n return id;\n }\n};\n__publicField(_UUID, \"ALPHABET\", \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\");\nlet UUID = _UUID;\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.nanoid() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.nanoid() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nconst _CourierInboxSocket = class _CourierInboxSocket extends CourierSocket {\n constructor(options) {\n super(options);\n // 1 minute\n /**\n * The interval ID for the ping interval.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval\n */\n __publicField(this, \"pingIntervalId\", null);\n /**\n * The list of message event listeners, called when a message event is received\n * from the Courier WebSocket server.\n */\n __publicField(this, \"messageEventListeners\", []);\n }\n onOpen(_) {\n this.restartPingInterval();\n return Promise.resolve();\n }\n onMessageReceived(data) {\n if (\"action\" in data && data.action === ServerAction.Ping) {\n const envelope = data;\n this.sendPong(envelope);\n }\n if (\"event\" in data) {\n for (const listener of this.messageEventListeners) {\n listener(data);\n }\n }\n this.restartPingInterval();\n return Promise.resolve();\n }\n onClose(_) {\n return Promise.resolve();\n }\n onError(_) {\n return Promise.resolve();\n }\n /**\n * Sends a subscribe message to the server.\n *\n * Subscribes to all events for the user.\n */\n sendSubscribe() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Subscribe,\n data: {\n channel: this.userId,\n event: \"*\"\n }\n };\n this.send(envelope);\n }\n /**\n * Sends an unsubscribe message to the server.\n *\n * Unsubscribes from all events for the user.\n */\n sendUnsubscribe() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Unsubscribe,\n data: {\n channel: this.userId\n }\n };\n this.send(envelope);\n }\n /**\n * Adds a message event listener, called when a message event is received\n * from the Courier WebSocket server.\n *\n * @param listener The listener function\n */\n addMessageEventListener(listener) {\n this.messageEventListeners.push(listener);\n }\n /**\n * Send a ping message to the server.\n *\n * ping/pong is implemented at the application layer since the browser's\n * WebSocket implementation does not support control-level ping/pong.\n */\n sendPing() {\n const envelope = {\n tid: UUID.nanoid(),\n action: ClientAction.Ping\n };\n this.send(envelope);\n }\n /**\n * Send a pong response to the server.\n *\n * ping/pong is implemented at the application layer since the browser's\n * WebSocket implementation does not support control-level ping/pong.\n */\n sendPong(incomingMessage) {\n const response = {\n tid: incomingMessage.tid,\n action: ClientAction.Pong\n };\n this.send(response);\n }\n /**\n * Restart the ping interval, clearing the previous interval if it exists.\n */\n restartPingInterval() {\n if (this.pingIntervalId) {\n window.clearInterval(this.pingIntervalId);\n }\n this.pingIntervalId = window.setInterval(() => {\n this.sendPing();\n }, _CourierInboxSocket.PING_INTERVAL_MILLIS);\n }\n};\n/**\n * The interval in milliseconds at which to send a ping message to the server\n * if no other message has been received from the server.\n */\n__publicField(_CourierInboxSocket, \"PING_INTERVAL_MILLIS\", 6e4);\nlet CourierInboxSocket = _CourierInboxSocket;\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new CourierInboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.nanoid());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.nanoid();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n MessageEvent,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier, MessageEvent } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nconst BaseElement = typeof window === \"undefined\" ? class {\n constructor() {\n }\n} : class extends HTMLElement {\n constructor() {\n super();\n }\n};\nclass CourierSystemThemeElement extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nconst CourierIconSVGs = {\n inbox: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z\" fill=\"currentColor\"/>\n</svg>`,\n archive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z\" fill=\"currentColor\"/>\n</svg>`,\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z\" fill=\"currentColor\"/>\n</svg>`,\n filter: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z\" fill=\"currentColor\"/>\n</svg>`,\n overflow: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z\" fill=\"currentColor\"/>\n</svg>`,\n read: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z\" fill=\"currentColor\"/>\n</svg>`,\n archiveRead: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z\" fill=\"currentColor\"/>\n</svg>`,\n unread: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z\" fill=\"currentColor\"/>\n</svg>`,\n unarchive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z\" fill=\"currentColor\"/>\n</svg>`\n};\nclass CourierIcon extends BaseElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n return `\n :host {\n display: inline-block;\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n svg {\n width: 24px;\n height: 24px;\n color: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nclass CourierLink extends BaseElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: inline-block;\n }\n\n a {\n text-decoration: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s ease;\n font-family: var(--courier-link-font-family, inherit);\n font-size: var(--courier-link-font-size, inherit);\n }\n\n /* Variants */\n a[data-variant=\"primary\"][data-mode=\"light\"] {\n color: var(--courier-link-color, ${theme.light.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:active {\n opacity: 0.6;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"] {\n color: var(--courier-link-color, ${theme.dark.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:active {\n opacity: 0.6;\n }\n\n a[data-underline=\"true\"] {\n text-decoration: underline;\n }\n\n a:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n }\n `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n return `\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n text-align: center;\n padding: 24px;\n }\n\n .container h2 {\n margin: 0;\n color: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nclass CourierIconButton extends BaseElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: inline-block;\n border-radius: ${this._borderRadius ?? \"50%\"};\n }\n\n button {\n border: none;\n border-radius: ${this._borderRadius ?? \"50%\"};\n cursor: pointer;\n width: ${this._width ?? \"36px\"};\n height: ${this._height ?? \"36px\"};\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${this._backgroundColor ?? \"transparent\"};\n transition: background-color 0.2s ease;\n touch-action: manipulation;\n }\n\n button:hover {\n background-color: ${this._hoverBackgroundColor ?? \"red\"};\n }\n\n button:active {\n background-color: ${this._activeBackgroundColor ?? \"red\"};\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n [part=\"icon\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n }\n `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nfunction registerElement(name, element) {\n if (typeof window !== \"undefined\" && !customElements.get(name)) {\n customElements.define(name, element);\n }\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton },\n { name: \"courier-system-theme\", class: CourierSystemThemeElement }\n];\ncomponents.forEach(({ name, class: componentClass }) => registerElement(name, componentClass));\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierInboxListItemMenu extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.shadow) ?? \"0 2px 8px red\"};\n user-select: none;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s;\n overflow: hidden;\n }\n\n :host(.visible) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul.menu {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n }\n\n li.menu-item {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom: none;\n background: transparent;\n }\n `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nregisterElement(\"courier-inbox-list-item-menu\", CourierInboxListItemMenu);\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n if (socket.isConnecting || socket.isOpen) {\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(`Inbox socket already connecting or open for client ID: [${(_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId}]`);\n return;\n }\n socket.addMessageEventListener((event) => {\n if (event.event === MessageEvent.NewMessage) {\n const message2 = event.data;\n this.addMessage(message2, 0, \"inbox\");\n return;\n }\n const message = this.getMessage({ messageId: event.messageId });\n switch (event.event) {\n case MessageEvent.MarkAllRead:\n this.readAllMessages({ canCallApi: false });\n break;\n case MessageEvent.Read:\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unread:\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Opened:\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Archive:\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.ArchiveRead:\n this.archiveReadMessages({ canCallApi: false });\n break;\n case MessageEvent.Clicked:\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unarchive:\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case MessageEvent.Unopened:\n break;\n }\n });\n await socket.connect();\n await socket.sendSubscribe();\n (_i = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _i.info(`Inbox socket connected for client ID: [${(_h = Courier.shared.client) == null ? void 0 : _h.options.connectionId}]`);\n } catch (error) {\n (_k = (_j = Courier.shared.client) == null ? void 0 : _j.options.logger) == null ? void 0 : _k.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n if (!props.messageId) {\n return void 0;\n }\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends BaseElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierInboxListItemMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.divider) ?? \"1px solid red\"};\n font-family: inherit;\n cursor: pointer;\n transition: background-color 0.2s ease;\n margin: 0;\n width: 100%;\n box-sizing: border-box;\n padding: 12px 20px;\n position: relative;\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: manipulation;\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Base hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Menu hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover):has(courier-inbox-list-item-menu:hover, courier-inbox-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-inbox-list-item-menu:active, courier-inbox-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n\n :host(:last-child) {\n border-bottom: none;\n }\n\n .unread-indicator {\n position: absolute;\n top: 28px;\n left: 6px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(listItem == null ? void 0 : listItem.unreadIndicatorColor) ?? \"red\"};\n display: none;\n }\n\n :host(.unread) .unread-indicator {\n display: block;\n }\n\n .content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n margin-right: 12px;\n }\n\n p {\n margin: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n hyphens: auto;\n line-height: 1.4;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n text-align: left;\n }\n\n p[part='title'] {\n font-family: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-inbox-list-item-menu {\n z-index: 1;\n position: absolute;\n top: 8px;\n right: 8px;\n display: none; /* becomes block while visible */\n }\n\n .actions-container {\n display: flex;\n margin-top: 10px;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n display: none;\n }\n\n `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem ā failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nregisterElement(\"courier-inbox-list-item\", CourierListItem);\nclass CourierInboxSkeletonListItem extends BaseElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n return `\n :host {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n width: 100%;\n box-sizing: border-box;\n opacity: ${opacity};\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\nclass CourierSkeletonAnimatedRow extends BaseElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.barBorderRadius) ?? \"14px\"};\n }\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `;\n }\n}\nregisterElement(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n return `\n :host {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n }\n\n .list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n overflow: hidden;\n }\n\n .list > * {\n border-bottom: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nregisterElement(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\nclass CourierInboxPaginationListItem extends BaseElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nregisterElement(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\nclass CourierInboxList extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-list\", CourierInboxList);\nclass CourierInboxOptionMenuItem extends BaseElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n return `\n :host {\n display: flex;\n flex-direction: row;\n padding: 6px 12px;\n cursor: pointer;\n }\n\n :host(:hover) {\n background-color: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.activeBackgroundColor) ?? \"red\"};\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n }\n\n .spacer {\n flex: 1;\n }\n\n p {\n margin: 0;\n font-family: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nregisterElement(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\nclass CourierInboxOptionMenu extends BaseElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n :host {\n position: relative;\n display: inline-block;\n }\n\n .menu {\n display: none;\n position: absolute;\n top: 42px;\n right: -6px;\n border-radius: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.shadow) ?? \"0 4px 12px 0 red\"};\n z-index: 1000;\n min-width: 200px;\n overflow: hidden;\n padding: 4px 0;\n }\n\n courier-inbox-filter-menu-item {\n border-bottom: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\nclass CourierUnreadCountBadge extends BaseElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-unread-count-badge\", CourierUnreadCountBadge);\nclass CourierInboxHeaderTitle extends BaseElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n .title-section {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n }\n\n courier-icon {\n display: flex;\n align-items: center;\n }\n\n h2 {\n margin: 0;\n font-family: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n return `\n :host {\n z-index: 100;\n }\n\n .courier-inbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 10px 10px 16px;\n background-color: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[500]};\n }\n\n .header-content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .spacer {\n flex: 1;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-header\", CourierInboxHeader);\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends BaseElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: ${this._defaultProps.height};\n }\n\n courier-inbox-header {\n flex-shrink: 0;\n }\n\n courier-inbox-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nregisterElement(\"courier-inbox\", CourierInbox);\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n return `\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nregisterElement(\"courier-inbox-menu-button\", CourierInboxMenuButton);\nclass CourierInboxPopupMenu extends BaseElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return `\n :host {\n display: inline-block;\n position: relative;\n }\n\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n\n .popup {\n display: none;\n position: absolute;\n background: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.shadow) ?? `0px 8px 16px -4px red`};\n z-index: 1000;\n width: ${this._width};\n height: ${this._height};\n overflow: hidden;\n transform: translateZ(0);\n will-change: transform;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n\n courier-inbox {\n height: 100%;\n }\n `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nregisterElement(\"courier-inbox-popup-menu\", CourierInboxPopupMenu);\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxPopupMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import { ReactNode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\n\n/**\n * Converts a React node to an HTMLElement.\n * This function uses flushSync to ensure the DOM is updated synchronously.\n * @param node - The React node to convert.\n * @returns The converted HTMLElement.\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n\n // Use flushSync to ensure the DOM is updated synchronously\n flushSync(() => {\n render(node, container);\n });\n\n return container;\n}\n\n/**\n * Render a React node using createRoot.\n * @param node - The React node to render.\n * @param container - The container to render the node into.\n * @returns The rendered node.\n */\nfunction render(node: ReactNode, container: HTMLElement) {\n const root = createRoot(container);\n return root.render(node);\n}","import React, { useState, useEffect } from 'react';\n\ninterface CourierClientProps {\n children: React.ReactNode;\n}\n\nexport const CourierClientComponent: React.FC<CourierClientProps> = ({ children }) => {\n const [isMounted, setIsMounted] = useState(false);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // During SSR, render nothing or fallback\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (!isMounted) {\n return null;\n }\n\n return <>{children}</>;\n};","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxPopupMenu as CourierInboxPopupMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\nimport { CourierClientComponent } from \"./courier-client-component\";\n\nexport interface CourierInboxPopupMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxPopupMenu = (props: CourierInboxPopupMenuProps) => {\n const menuRef = useRef<CourierInboxPopupMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n <CourierClientComponent>\n {/* @ts-ignore */}\n <courier-inbox-popup-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n </CourierClientComponent>\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","CLOSE_CODE_NORMAL_CLOSURE","_CourierSocket","constructor","options","__publicField$1","this","url","apiUrls","inbox","webSocket","connect","_a","clearRetryTimeout","isConnecting","isOpen","logger","info","Promise","reject","Error","resolve","WebSocket","getWebSocketUrl","addEventListener","event","retryAttempt","onOpen","async","_a2","json","JSON","parse","data","close","retryConnection","retryAfter","onMessageReceived","error","code","courierCloseEvent","parseCloseEvent","retryAfterSeconds","onClose","onError","reason","send","message","stringify","userId","readyState","CONNECTING","OPEN","accessToken","connectionId","closeEvent","jsonReason","RETRY_AFTER_KEY","parseInt","Number","isNaN","getBackoffTimeInMillis","backoffIntervalInMillis","BACKOFF_INTERVALS_IN_MILLIS","lowerBound","BACKOFF_JITTER_FACTOR","upperBound","Math","floor","random","suggestedBackoffTimeInMillis","_b","_c","retryTimeoutId","debug","MAX_RETRY_ATTEMPTS","backoffTimeInMillis","window","setTimeout","clearTimeout","CourierSocket","ClientAction","ClientAction2","ServerAction","ServerAction2","MessageEvent","MessageEvent2","getCourierApiUrls","urls","courier","rest","graphql","Logger","showLogs","warn","args","console","PREFIX","log","_UUID","nanoid","size","id","bytes","crypto","getRandomValues","Uint8Array","ALPHABET","UUID","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","props","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","Authorization","brand","_CourierInboxSocket","_","restartPingInterval","action","Ping","envelope","sendPong","listener","messageEventListeners","sendSubscribe","tid","Subscribe","channel","sendUnsubscribe","Unsubscribe","addMessageEventListener","push","sendPing","incomingMessage","Pong","pingIntervalId","clearInterval","setInterval","PING_INTERVAL_MILLIS","CourierInboxSocket","InboxClient","socket","getMessages","tenantId","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","_Courier2","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","authenticationListeners","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","removeEventListener","BaseElement","HTMLElement","CourierSystemThemeElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","defaultFontSize","defaultBackgroundColor","defaultTextColor","defaultBorder","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","toString","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","_d","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","registerElement","customElements","get","define","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierInboxListItemMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_e","_f","_g","_h","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","call","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","NewMessage","message2","addMessage","getMessage","MarkAllRead","readAllMessages","canCallApi","Read","readMessage","Unread","unreadMessage","Opened","openMessage","Archive","archiveMessage","ArchiveRead","archiveReadMessages","Clicked","clickMessage","Unarchive","unarchiveMessage","Unopened","find","m","fetchNextPageOfMessages","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","disconnect","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","subscription","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","jsxRuntimeModule","exports","REACT_ELEMENT_TYPE","Symbol","for","REACT_FRAGMENT_TYPE","jsxProd","config","maybeKey","propName","ref","$$typeof","reactJsxRuntime_production","Fragment","jsx","jsxs","require$$0","reactNodeToHTMLElement","node","flushSync","root","createRoot","CourierClientComponent","children","isMounted","setIsMounted","useState","useEffect","inboxRef","useRef","current","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","React","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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","x_google_ignoreList":[2,3]}
|