@trycourier/courier-react 8.0.7-beta ā 8.0.8-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 +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +170 -183
- package/dist/index.mjs.map +1 -1
- package/dist/utils/utils.d.ts +4 -1
- package/package.json +1 -1
- package/dist/legacy-O6WN3SMx.mjs +0 -18
- package/dist/legacy-O6WN3SMx.mjs.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../courier-js/dist/index.mjs","../../courier-ui-inbox/dist/index.mjs","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../src/renderer/modern.tsx","../src/renderer/renderer.tsx","../src/utils/utils.tsx","../src/renderer/legacy.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst _CourierSocket = class _CourierSocket {\n constructor(url, options) {\n // Properties\n __publicField(this, \"webSocket\", null);\n __publicField(this, \"pingInterval\", null);\n // Callbacks\n __publicField(this, \"onOpen\");\n __publicField(this, \"onMessageReceived\");\n __publicField(this, \"onClose\");\n __publicField(this, \"onError\");\n // Properties\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = url;\n this.options = options;\n }\n /**\n * Dynamically checks if the WebSocket is connected\n */\n get isConnected() {\n return this.webSocket !== null;\n }\n async connect() {\n this.disconnect();\n return new Promise((resolve, reject) => {\n try {\n this.webSocket = new WebSocket(this.url);\n this.webSocket.onopen = () => {\n var _a;\n (_a = this.onOpen) == null ? void 0 : _a.call(this);\n resolve();\n };\n this.webSocket.onmessage = (event) => {\n var _a;\n (_a = this.onMessageReceived) == null ? void 0 : _a.call(this, event.data);\n };\n this.webSocket.onclose = (event) => {\n var _a;\n this.webSocket = null;\n (_a = this.onClose) == null ? void 0 : _a.call(this, event.code, event.reason);\n };\n this.webSocket.onerror = (event) => {\n var _a;\n this.webSocket = null;\n const error = new Error(\"Courier Socket connection failed\");\n error.originalEvent = event;\n (_a = this.onError) == null ? void 0 : _a.call(this, error);\n reject(error);\n };\n } catch (error) {\n this.webSocket = null;\n reject(error);\n }\n });\n }\n disconnect() {\n this.stopPing();\n if (this.webSocket) {\n this.webSocket.close(_CourierSocket.NORMAL_CLOSURE_STATUS);\n this.webSocket = null;\n }\n }\n async send(message) {\n if (!this.webSocket) {\n return false;\n }\n const json = JSON.stringify(message);\n return this.webSocket.send(json) !== void 0;\n }\n keepAlive(props) {\n this.stopPing();\n this.pingInterval = setInterval(async () => {\n var _a;\n try {\n await this.send({ action: \"keepAlive\" });\n } catch (error) {\n (_a = this.options.logger) == null ? void 0 : _a.error(\"Error occurred on Keep Alive:\", error);\n }\n }, (props == null ? void 0 : props.intervalInMillis) ?? 3e5);\n }\n stopPing() {\n if (this.pingInterval) {\n clearInterval(this.pingInterval);\n this.pingInterval = null;\n }\n }\n};\n// Constants\n__publicField(_CourierSocket, \"NORMAL_CLOSURE_STATUS\", 1e3);\nlet CourierSocket = _CourierSocket;\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nclass UUID {\n static generate(prefix) {\n const id = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n return prefix ? prefix + id : id;\n }\n}\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nclass InboxSocket extends CourierSocket {\n constructor(options) {\n const url = InboxSocket.buildUrl(options);\n super(url, options);\n __publicField(this, \"receivedMessage\");\n __publicField(this, \"receivedMessageEvent\");\n this.onMessageReceived = (data) => this.convertToType(data);\n }\n convertToType(data) {\n var _a, _b, _c, _d;\n try {\n const payload = JSON.parse(data);\n switch (payload.type) {\n case \"event\":\n const messageEvent = JSON.parse(data);\n (_a = this.receivedMessageEvent) == null ? void 0 : _a.call(this, messageEvent);\n break;\n case \"message\":\n const message = JSON.parse(data);\n (_b = this.receivedMessage) == null ? void 0 : _b.call(this, message);\n break;\n }\n } catch (error) {\n (_c = this.options.logger) == null ? void 0 : _c.error(\"Error parsing socket message\", error);\n if (error instanceof Error) {\n (_d = this.onError) == null ? void 0 : _d.call(this, error);\n }\n }\n }\n async sendSubscribe(props) {\n var _a;\n const subscription = {\n action: \"subscribe\",\n data: {\n userAgent: \"courier-js\",\n // TODO: Equivalent to Courier.agent.value()\n channel: this.options.userId,\n event: \"*\",\n version: (props == null ? void 0 : props.version) ?? 5\n }\n };\n if (this.options.connectionId) {\n subscription.data.clientSourceId = this.options.connectionId;\n }\n if (this.options.tenantId) {\n subscription.data.accountId = this.options.tenantId;\n }\n (_a = this.options.logger) == null ? void 0 : _a.debug(\"Sending subscribe request\", subscription);\n await this.send(subscription);\n }\n static buildUrl(options) {\n var _a;\n let url = ((_a = options.apiUrls) == null ? void 0 : _a.inbox.webSocket) ?? \"\";\n if (options.accessToken) {\n url += `/?auth=${options.accessToken}`;\n }\n return url;\n }\n}\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new InboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.generate());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.generate();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nclass CourierSystemThemeElement extends HTMLElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nif (!customElements.get(\"courier-button\")) {\n customElements.define(\"courier-button\", CourierButton);\n}\nconst CourierIconSVGs = {\n inbox: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z\" fill=\"currentColor\"/>\n</svg>`,\n archive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z\" fill=\"currentColor\"/>\n</svg>`,\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z\" fill=\"currentColor\"/>\n</svg>`,\n filter: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z\" fill=\"currentColor\"/>\n</svg>`,\n overflow: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z\" fill=\"currentColor\"/>\n</svg>`,\n read: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z\" fill=\"currentColor\"/>\n</svg>`,\n archiveRead: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z\" fill=\"currentColor\"/>\n</svg>`,\n unread: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z\" fill=\"currentColor\"/>\n</svg>`,\n unarchive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z\" fill=\"currentColor\"/>\n</svg>`\n};\nclass CourierIcon extends HTMLElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n return `\n :host {\n display: inline-block;\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n svg {\n width: 24px;\n height: 24px;\n color: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nif (!customElements.get(\"courier-icon\")) {\n customElements.define(\"courier-icon\", CourierIcon);\n}\nclass CourierLink extends HTMLElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: inline-block;\n }\n\n a {\n text-decoration: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s ease;\n font-family: var(--courier-link-font-family, inherit);\n font-size: var(--courier-link-font-size, inherit);\n }\n\n /* Variants */\n a[data-variant=\"primary\"][data-mode=\"light\"] {\n color: var(--courier-link-color, ${theme.light.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:active {\n opacity: 0.6;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"] {\n color: var(--courier-link-color, ${theme.dark.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:active {\n opacity: 0.6;\n }\n\n a[data-underline=\"true\"] {\n text-decoration: underline;\n }\n\n a:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n }\n `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nif (!customElements.get(\"courier-link\")) {\n customElements.define(\"courier-link\", CourierLink);\n}\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n return `\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n text-align: center;\n padding: 24px;\n }\n\n .container h2 {\n margin: 0;\n color: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nif (!customElements.get(\"courier-info-state\")) {\n customElements.define(\"courier-info-state\", CourierInfoState);\n}\nclass CourierIconButton extends HTMLElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: inline-block;\n border-radius: ${this._borderRadius ?? \"50%\"};\n }\n\n button {\n border: none;\n border-radius: ${this._borderRadius ?? \"50%\"};\n cursor: pointer;\n width: ${this._width ?? \"36px\"};\n height: ${this._height ?? \"36px\"};\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${this._backgroundColor ?? \"transparent\"};\n transition: background-color 0.2s ease;\n touch-action: manipulation;\n }\n\n button:hover {\n background-color: ${this._hoverBackgroundColor ?? \"red\"};\n }\n\n button:active {\n background-color: ${this._activeBackgroundColor ?? \"red\"};\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n [part=\"icon\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n }\n `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nif (!customElements.get(\"courier-icon-button\")) {\n customElements.define(\"courier-icon-button\", CourierIconButton);\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton }\n];\ncomponents.forEach(({ name, class: componentClass }) => {\n if (!customElements.get(name)) {\n customElements.define(name, componentClass);\n }\n});\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierListItemActionMenu extends HTMLElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.shadow) ?? \"0 2px 8px red\"};\n user-select: none;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s;\n overflow: hidden;\n }\n\n :host(.visible) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul.menu {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n }\n\n li.menu-item {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom: none;\n background: transparent;\n }\n `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nif (!customElements.get(\"courier-list-item-menu\")) {\n customElements.define(\"courier-list-item-menu\", CourierListItemActionMenu);\n}\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(\"CourierInbox socket connectionId:\", (_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId);\n if (socket.isConnected) {\n (_h = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _h.info(\"CourierInbox socket already connected. Socket will not attempt reconnection.\");\n return;\n }\n socket.receivedMessage = (message) => {\n this.addMessage(message, 0, \"inbox\");\n };\n socket.receivedMessageEvent = (event) => {\n let message;\n if (event.messageId) {\n message = this.getMessage({ messageId: event.messageId });\n }\n switch (event.event) {\n case \"mark-all-read\":\n this.readAllMessages({ canCallApi: false });\n break;\n case \"read\":\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case \"unread\":\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case \"opened\":\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case \"archive\":\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case \"archive-read\":\n this.archiveReadMessages({ canCallApi: false });\n break;\n case \"click\":\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case \"unarchive\":\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case \"unopened\":\n break;\n }\n };\n await socket.connect();\n await socket.sendSubscribe();\n socket.keepAlive();\n (_j = (_i = Courier.shared.client) == null ? void 0 : _i.options.logger) == null ? void 0 : _j.info(\"CourierInbox socket connected\");\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends HTMLElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierListItemActionMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.divider) ?? \"1px solid red\"};\n font-family: inherit;\n cursor: pointer;\n transition: background-color 0.2s ease;\n margin: 0;\n width: 100%;\n box-sizing: border-box;\n padding: 12px 20px;\n position: relative;\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: manipulation;\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Base hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Menu hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover):has(courier-list-item-menu:hover, courier-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-list-item-menu:active, courier-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n\n :host(:last-child) {\n border-bottom: none;\n }\n\n .unread-indicator {\n position: absolute;\n top: 28px;\n left: 6px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(listItem == null ? void 0 : listItem.unreadIndicatorColor) ?? \"red\"};\n display: none;\n }\n\n :host(.unread) .unread-indicator {\n display: block;\n }\n\n .content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n margin-right: 12px;\n }\n\n p {\n margin: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n hyphens: auto;\n line-height: 1.4;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n text-align: left;\n }\n\n p[part='title'] {\n font-family: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-list-item-menu {\n z-index: 1;\n position: absolute;\n top: 8px;\n right: 8px;\n display: none; /* becomes block while visible */\n }\n\n .actions-container {\n display: flex;\n margin-top: 10px;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n display: none;\n }\n\n `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem ā failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nif (!customElements.get(\"courier-list-item\")) {\n customElements.define(\"courier-list-item\", CourierListItem);\n}\nclass CourierInboxSkeletonListItem extends HTMLElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n return `\n :host {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n width: 100%;\n box-sizing: border-box;\n opacity: ${opacity};\n }\n `;\n }\n}\nif (!customElements.get(\"courier-inbox-skeleton-list-item\")) {\n customElements.define(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\n}\nclass CourierSkeletonAnimatedRow extends HTMLElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.barBorderRadius) ?? \"14px\"};\n }\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `;\n }\n}\nif (!customElements.get(\"courier-skeleton-animated-row\")) {\n customElements.define(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\n}\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n return `\n :host {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n }\n\n .list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n overflow: hidden;\n }\n\n .list > * {\n border-bottom: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nif (!customElements.get(\"courier-inbox-skeleton-list\")) {\n customElements.define(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\n}\nclass CourierInboxPaginationListItem extends HTMLElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nif (!customElements.get(\"courier-inbox-pagination-list-item\")) {\n customElements.define(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\n}\nclass CourierInboxList extends HTMLElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-list\")) {\n customElements.define(\"courier-inbox-list\", CourierInboxList);\n}\nclass CourierInboxOptionMenuItem extends HTMLElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n return `\n :host {\n display: flex;\n flex-direction: row;\n padding: 6px 12px;\n cursor: pointer;\n }\n\n :host(:hover) {\n background-color: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.activeBackgroundColor) ?? \"red\"};\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n }\n\n .spacer {\n flex: 1;\n }\n\n p {\n margin: 0;\n font-family: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nif (!customElements.get(\"courier-inbox-filter-menu-item\")) {\n customElements.define(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\n}\nclass CourierInboxOptionMenu extends HTMLElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n :host {\n position: relative;\n display: inline-block;\n }\n\n .menu {\n display: none;\n position: absolute;\n top: 42px;\n right: -6px;\n border-radius: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.shadow) ?? \"0 4px 12px 0 red\"};\n z-index: 1000;\n min-width: 200px;\n overflow: hidden;\n padding: 4px 0;\n }\n\n courier-inbox-filter-menu-item {\n border-bottom: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-option-menu\")) {\n customElements.define(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\n}\nclass CourierUnreadCountBadge extends HTMLElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-unread-count-badge\")) {\n customElements.define(\"courier-unread-count-badge\", CourierUnreadCountBadge);\n}\nclass CourierInboxHeaderTitle extends HTMLElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n .title-section {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n }\n\n courier-icon {\n display: flex;\n align-items: center;\n }\n\n h2 {\n margin: 0;\n font-family: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-header-title\")) {\n customElements.define(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\n}\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n return `\n :host {\n z-index: 100;\n }\n\n .courier-inbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 10px 10px 16px;\n background-color: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[500]};\n }\n\n .header-content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .spacer {\n flex: 1;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-header\")) {\n customElements.define(\"courier-inbox-header\", CourierInboxHeader);\n}\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends HTMLElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: ${this._defaultProps.height};\n }\n\n courier-inbox-header {\n flex-shrink: 0;\n }\n\n courier-inbox-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nif (!customElements.get(\"courier-inbox\")) {\n customElements.define(\"courier-inbox\", CourierInbox);\n}\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n return `\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-menu-button\")) {\n customElements.define(\"courier-inbox-menu-button\", CourierInboxMenuButton);\n}\nclass CourierInboxMenu extends HTMLElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return `\n :host {\n display: inline-block;\n position: relative;\n }\n\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n\n .popup {\n display: none;\n position: absolute;\n background: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.shadow) ?? `0px 8px 16px -4px red`};\n z-index: 1000;\n width: ${this._width};\n height: ${this._height};\n overflow: hidden;\n transform: translateZ(0);\n will-change: transform;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n\n courier-inbox {\n height: 100%;\n }\n `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nif (!customElements.get(\"courier-inbox-menu\")) {\n customElements.define(\"courier-inbox-menu\", CourierInboxMenu);\n}\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","/** @license React v17.0.2\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar _assign = require('object-assign');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentName(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","import { ReactNode } from \"react\";\nimport { flushSync } from 'react-dom';\nimport { createRoot } from 'react-dom/client';\n\nexport default class ModernRenderer {\n\n public static render(node: ReactNode, container: HTMLElement) {\n flushSync(() => {\n const root = createRoot(container);\n root.render(node);\n });\n }\n\n}","import { ReactNode, version } from 'react';\nimport ModernRenderer from './modern';\n\nexport default class Renderer {\n private static reactVersion = parseInt(version.split('.')[0]);\n\n public static async render(node: ReactNode, container: HTMLElement) {\n if (Renderer.reactVersion >= 18) {\n ModernRenderer.render(node, container);\n } else {\n // TODO: Solve bugs with React 17\n const { default: LegacyRenderer } = await import('./legacy');\n LegacyRenderer.render(node, container);\n }\n }\n}","import { ReactNode } from \"react\";\nimport Renderer from \"../renderer/renderer\";\n\n/**\n * Converts React node to HTMLElement with synchronous updates\n */\nexport function reactNodeToHTMLElement(node: ReactNode): HTMLElement {\n const container = document.createElement('div');\n Renderer.render(node, container);\n return container;\n}","import { ReactNode } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { flushSync } from 'react-dom';\n\nexport default class LegacyRenderer {\n\n public static render(node: ReactNode, container: HTMLElement) {\n // Use the render method from ReactDOM if available, otherwise fallback to createRoot\n if ('render' in ReactDOM) {\n (ReactDOM as any).render(node, container);\n } else {\n const root = (ReactDOM as any).createRoot(container);\n flushSync(() => {\n root.render(node);\n });\n }\n }\n\n}","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n /* @ts-ignore */\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxMenu as CourierInboxMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\n\nexport interface CourierInboxMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxMenu = (props: CourierInboxMenuProps) => {\n const menuRef = useRef<CourierInboxMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n /* @ts-ignore */\n <courier-inbox-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","_CourierSocket","constructor","url","options","__publicField$1","this","isConnected","webSocket","connect","disconnect","Promise","resolve","reject","WebSocket","onopen","_a","onOpen","call","onmessage","event","onMessageReceived","data","onclose","onClose","code","reason","onerror","error","Error","originalEvent","onError","stopPing","close","NORMAL_CLOSURE_STATUS","send","message","json","JSON","stringify","keepAlive","props","pingInterval","setInterval","async","action","logger","intervalInMillis","clearInterval","CourierSocket","getCourierApiUrls","urls","courier","rest","graphql","inbox","Logger","showLogs","warn","args","console","PREFIX","log","debug","info","UUID","generate","prefix","id","Math","random","toString","substring","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","apiUrls","userId","Authorization","accessToken","brand","InboxSocket","buildUrl","convertToType","_b","_c","_d","parse","messageEvent","receivedMessageEvent","receivedMessage","sendSubscribe","subscription","userAgent","channel","version","connectionId","clientSourceId","tenantId","accountId","InboxClient","socket","getMessages","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","bytes","Uint8Array","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","process","env","NODE_ENV","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","listener","authenticationListeners","push","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","window","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","addEventListener","removeEventListener","CourierSystemThemeElement","HTMLElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","_","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","defaultFontSize","defaultBackgroundColor","defaultTextColor","defaultBorder","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","customElements","get","define","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierListItemActionMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_a2","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_e","_f","_g","_h","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","_l","addMessage","getMessage","readAllMessages","canCallApi","readMessage","unreadMessage","openMessage","archiveMessage","archiveReadMessages","clickMessage","unarchiveMessage","find","m","fetchNextPageOfMessages","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","setTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","clearTimeout","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","size","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","floor","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","parseInt","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","message2","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","CourierInboxMenu","React","require$$0","_assign","require$$1","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","exports","Fragment","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_LEGACY_HIDDEN_TYPE","Symbol","for","symbolFor","MAYBE_ITERATOR_SYMBOL","iterator","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","format","_len2","Array","_key2","level","stack","ReactDebugCurrentFrame","getStackAddendum","concat","argsWithFormat","unshift","prototype","apply","printWarning","getContextName","displayName","getComponentName","tag","$$typeof","_context","outerType","innerType","wrapperName","functionName","_render","lazyComponent","_payload","init","_init","x","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledDepth","disabledLog","__reactDisabledLog","ReactCurrentDispatcher","describeBuiltInComponentFrame","source","ownerFn","match","trim","componentFrameCache","reentry","PossiblyWeakMap","WeakMap","Map","describeNativeComponentFrame","fn","construct","control","frame","previousDispatcher","previousPrepareStackTrace","prepareStackTrace","current","group","groupCollapsed","groupEnd","defineProperties","disableLogs","Fake","set","Reflect","sample","sampleLines","split","controlLines","s","c","_frame","replace","reenableLogs","syntheticFrame","describeFunctionComponentFrame","describeUnknownElementTypeFrameInDEV","isReactComponent","loggedTypeFailures","setCurrentlyValidatingElement","owner","_owner","_source","setExtraStackFrame","specialPropKeyWarningShown","specialPropRefWarningShown","ReactCurrentOwner","hasOwnProperty","RESERVED_PROPS","ref","__self","__source","jsxDEV","config","maybeKey","self","propName","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","hasValidRef","warnIfStringRefCannotBeAutoConverted","defaultProps","warnAboutAccessingKey","defineKeyPropWarningGetter","warnAboutAccessingRef","defineRefPropWarningGetter","_store","freeze","ReactElement","propTypesMisspellWarningShown","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","isValidElement","object","getDeclarationErrorAddendum","ownerHasKeyUseWarning","validateExplicitKey","parentType","validated","currentComponentErrorInfo","parentName","getCurrentComponentErrorInfo","childOwner","validateChildKeys","node","isArray","child","iteratorFn","maybeIterable","maybeIterator","getIteratorFn","step","next","done","validatePropTypes","propTypes","typeSpecs","values","componentName","has","typeSpecName","error$1","ex","checkPropTypes","PropTypes","getDefaultProps","isReactClassApproved","jsxWithValidation","isStaticChildren","validType","isValidElementType","typeString","keys","children","fragment","validateFragmentProps","jsx","jsxs","jsxRuntimeModule","f","reactJsxRuntime_production_min","h","n","p","q","a","k","d","ModernRenderer","flushSync","createRoot","_Renderer","reactVersion","default","LegacyRenderer","then","legacy","Renderer","reactNodeToHTMLElement","ReactDOM","ReactDOM__namespace","root","inboxRef","useRef","useEffect","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","useState","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"qvBAAA,IAAIA,EAAYC,OAAOC,eAEnBC,EAAgB,CAACC,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMJ,EAAUI,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACjHI,CAAgBN,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAClG,MAAAK,EAAiB,MAAMA,EAC3B,WAAAC,CAAYC,EAAKC,GAEDC,EAAAC,KAAM,YAAa,MACnBD,EAAAC,KAAM,eAAgB,MAEpCb,EAAca,KAAM,UACpBb,EAAca,KAAM,qBACpBb,EAAca,KAAM,WACpBb,EAAca,KAAM,WAEpBb,EAAca,KAAM,OACpBb,EAAca,KAAM,WACpBA,KAAKH,IAAMA,EACXG,KAAKF,QAAUA,CACnB,CAIE,eAAIG,GACF,OAA0B,OAAnBD,KAAKE,SAChB,CACE,aAAMC,GAEJ,OADAH,KAAKI,aACE,IAAIC,SAAQ,CAACC,EAASC,KACvB,IACFP,KAAKE,UAAY,IAAIM,UAAUR,KAAKH,KAC/BG,KAAAE,UAAUO,OAAS,KAClB,IAAAC,EACkB,OAArBA,EAAKV,KAAKW,SAA2BD,EAAGE,KAAKZ,MACrCM,GAAA,EAENN,KAAAE,UAAUW,UAAaC,IACtB,IAAAJ,EAC6B,OAAhCA,EAAKV,KAAKe,oBAAsCL,EAAGE,KAAKZ,KAAMc,EAAME,KAAI,EAEtEhB,KAAAE,UAAUe,QAAWH,IACpB,IAAAJ,EACJV,KAAKE,UAAY,KACM,OAAtBQ,EAAKV,KAAKkB,UAA4BR,EAAGE,KAAKZ,KAAMc,EAAMK,KAAML,EAAMM,OAAM,EAE1EpB,KAAAE,UAAUmB,QAAWP,IACpB,IAAAJ,EACJV,KAAKE,UAAY,KACX,MAAAoB,EAAQ,IAAIC,MAAM,oCACxBD,EAAME,cAAgBV,EACC,OAAtBJ,EAAKV,KAAKyB,UAA4Bf,EAAGE,KAAKZ,KAAMsB,GACrDf,EAAOe,EAAK,CAEf,OAAQA,GACPtB,KAAKE,UAAY,KACjBK,EAAOe,EACf,IAEA,CACE,UAAAlB,GACEJ,KAAK0B,WACD1B,KAAKE,YACFF,KAAAE,UAAUyB,MAAMhC,EAAeiC,uBACpC5B,KAAKE,UAAY,KAEvB,CACE,UAAM2B,CAAKC,GACL,IAAC9B,KAAKE,UACD,OAAA,EAEH,MAAA6B,EAAOC,KAAKC,UAAUH,GAC5B,YAAqC,IAA9B9B,KAAKE,UAAU2B,KAAKE,EAC/B,CACE,SAAAG,CAAUC,GACRnC,KAAK0B,WACA1B,KAAAoC,aAAeC,aAAYC,UAC1B,IAAA5B,EACA,UACIV,KAAK6B,KAAK,CAAEU,OAAQ,aAC3B,OAAQjB,GACuB,OAA7BZ,EAAKV,KAAKF,QAAQ0C,SAA2B9B,EAAGY,MAAM,gCAAiCA,EAChG,KACiB,MAATa,OAAgB,EAASA,EAAMM,mBAAqB,IAC5D,CACE,QAAAf,GACM1B,KAAKoC,eACPM,cAAc1C,KAAKoC,cACnBpC,KAAKoC,aAAe,KAE1B,GAGcrC,EAAAJ,EAAgB,wBAAyB,KACvD,IAAIgD,EAAgBhD,EACd,MAAAiD,EAAqBC,IAAU,CACnCC,QAAS,CACPC,MAAe,MAARF,OAAe,EAASA,EAAKC,QAAQC,OAAS,0BACrDC,SAAkB,MAARH,OAAe,EAASA,EAAKC,QAAQE,UAAY,oCAE7DC,MAAO,CACLD,SAAkB,MAARH,OAAe,EAASA,EAAKI,MAAMD,UAAY,8BACzD9C,WAAoB,MAAR2C,OAAe,EAASA,EAAKI,MAAM/C,YAAc,+BAGjE,MAAMgD,EACJ,WAAAtD,CAAYuD,GACIpD,EAAAC,KAAM,SAAU,aAC9BA,KAAKmD,SAAWA,CACpB,CACE,IAAAC,CAAKtB,KAAYuB,GACXrD,KAAKmD,UACCG,QAAAF,KAAK,GAAGpD,KAAKuD,UAAUzB,OAAcuB,EAEnD,CACE,GAAAG,CAAI1B,KAAYuB,GACVrD,KAAKmD,UACCG,QAAAE,IAAI,GAAGxD,KAAKuD,UAAUzB,OAAcuB,EAElD,CACE,KAAA/B,CAAMQ,KAAYuB,GACZrD,KAAKmD,UACCG,QAAAhC,MAAM,GAAGtB,KAAKuD,UAAUzB,OAAcuB,EAEpD,CACE,KAAAI,CAAM3B,KAAYuB,GACZrD,KAAKmD,UACCG,QAAAG,MAAM,GAAGzD,KAAKuD,UAAUzB,OAAcuB,EAEpD,CACE,IAAAK,CAAK5B,KAAYuB,GACXrD,KAAKmD,UACCG,QAAAI,KAAK,GAAG1D,KAAKuD,UAAUzB,OAAcuB,EAEnD,EAEA,MAAMM,EACJ,eAAOC,CAASC,GACd,MAAMC,EAAKC,KAAKC,SAASC,SAAS,IAAIC,UAAU,EAAG,IAAMH,KAAKC,SAASC,SAAS,IAAIC,UAAU,EAAG,IAC1F,OAAAL,EAASA,EAASC,EAAKA,CAClC,EAEA,MAAMK,UAA4B5C,MAChC,WAAA3B,CAAYuB,EAAMW,EAASsC,GACzBC,MAAMvC,GACN9B,KAAKmB,KAAOA,EACZnB,KAAKoE,KAAOA,EACZpE,KAAKsE,KAAO,qBAChB,EAEA,SAASC,EAAW/B,EAAQgC,EAAKJ,EAAMpD,GACrCwB,EAAOgB,IAAI,oBACIY,cAAiBI,WAC3BxD,EAAKnB,QACVmB,EAAKyD,OAAS,WAAWzD,EAAKyD,SAAW,OACzCzD,EAAK0D,MAAQ,UAAU1D,EAAK0D,QAAU,OACtC1D,EAAK2D,UAAY,cAAc3C,KAAKC,UAAUjB,EAAK2D,UAAW,KAAM,KAAO,gBAClE3C,KAAKC,UAAUjB,EAAK4D,QAAS,KAAM,aACtC5D,EAAK6D,KAAO7C,KAAKC,UAAUjB,EAAK6D,KAAM,KAAM,GAAK,cAEzD,CACA,SAASC,EAAYtC,EAAQgC,EAAKJ,EAAMpD,GACtCwB,EAAOgB,IAAI,oBACIY,eAAkBI,mBACpBxD,EAAK+D,0BACH/C,KAAKC,UAAUjB,EAAKgE,SAAU,KAAM,SAErD,CACA1C,eAAe2C,EAAK9C,GAClB,MAAM+C,EAAa/C,EAAM+C,YAAc,CAAC,KAClCV,EAAMrC,EAAMrC,QAAQqD,SAAWQ,EAAKC,gBAAa,EACjDuB,EAAU,IAAIC,QAAQjD,EAAMtC,IAAK,CACrC4E,OAAQtC,EAAMsC,OACdG,QAAS,CACP,eAAgB,sBACbzC,EAAMyC,SAEXC,KAAM1C,EAAM0C,KAAO7C,KAAKC,UAAUE,EAAM0C,WAAQ,IAE9CL,GACFD,EAAWpC,EAAMrC,QAAQ0C,OAAQgC,EAAK,OAAQ,CAC5C3E,IAAKsF,EAAQtF,IACb4E,OAAQU,EAAQV,OAChBG,QAAS3F,OAAOoG,YAAYF,EAAQP,QAAQU,WAC5CT,KAAM1C,EAAM0C,OAGV,MAAAG,QAAiBO,MAAMJ,GACzB,GAAoB,MAApBH,EAASD,OACX,OAEE,IAAA/D,EACA,IACKA,QAAMgE,EAASjD,MACvB,OAAQT,GACH,GAAoB,MAApB0D,EAASD,OACX,OAEF,MAAM,IAAIZ,EACRa,EAASD,OACT,mCACA,cAEN,CAOE,GANIP,GACFM,EAAY3C,EAAMrC,QAAQ0C,OAAQgC,EAAK,OAAQ,CAC7CO,OAAQC,EAASD,OACjBC,SAAUhE,KAGTkE,EAAWM,SAASR,EAASD,QAChC,MAAM,IAAIZ,EACRa,EAASD,QACA,MAAR/D,OAAe,EAASA,EAAKc,UAAY,gBAClC,MAARd,OAAe,EAASA,EAAKoD,MAG1B,OAAApD,CACT,CACAsB,eAAeU,EAAQb,GACrB,MAAMqC,EAAMrC,EAAMrC,QAAQqD,SAAWQ,EAAKC,gBAAa,EACnDY,GACFD,EAAWpC,EAAMrC,QAAQ0C,OAAQgC,EAAK,UAAW,CAC/C3E,IAAKsC,EAAMtC,IACX+E,QAASzC,EAAMyC,QACfF,MAAOvC,EAAMuC,MACbC,UAAWxC,EAAMwC,YAGrB,MAAMK,QAAiBO,MAAMpD,EAAMtC,IAAK,CACtC4E,OAAQ,OACRG,QAAS,CACP,eAAgB,sBACbzC,EAAMyC,SAEXC,KAAM7C,KAAKC,UAAU,CACnByC,MAAOvC,EAAMuC,MACbC,UAAWxC,EAAMwC,cAGjB,IAAA3D,EACA,IACKA,QAAMgE,EAASjD,MACvB,OAAQT,GACP,MAAM,IAAI6C,EACRa,EAASD,OACT,mCACA,cAEN,CAOM,GANAP,GACFM,EAAY3C,EAAMrC,QAAQ0C,OAAQgC,EAAK,UAAW,CAChDO,OAAQC,EAASD,OACjBC,SAAUhE,KAGTgE,EAASS,GACZ,MAAM,IAAItB,EACRa,EAASD,QACA,MAAR/D,OAAe,EAASA,EAAKc,UAAY,gBAClC,MAARd,OAAe,EAASA,EAAKoD,MAG1B,OAAApD,CACT,CACA,MAAM0E,EACJ,WAAA9F,CAAYE,GACVE,KAAKF,QAAUA,CACnB,EAEA,MAAM6F,UAAoBD,EAMxB,cAAME,CAASzD,GACb,MAAMuC,EAAQ,qDAEQvC,EAAM0D,4RA2B5B,aAZmB7C,EAAQ,CACzBlD,QAASE,KAAKF,QACdD,IAAKG,KAAKF,QAAQgG,QAAQhD,QAAQE,QAClC4B,QAAS,CACP,oBAAqB5E,KAAKF,QAAQiG,OAClC,uBAAwB,QAExBC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1CvB,QACAC,UAAW,CAAEkB,QAAS1D,EAAM0D,YAElB7E,KAAKkF,KACrB,EAEA,MAAMC,UAAoBxD,EACxB,WAAA/C,CAAYE,GAEVuE,MADY8B,EAAYC,SAAStG,GACtBA,GACXX,EAAca,KAAM,mBACpBb,EAAca,KAAM,wBACpBA,KAAKe,kBAAqBC,GAAShB,KAAKqG,cAAcrF,EAC1D,CACE,aAAAqF,CAAcrF,GACR,IAAAN,EAAI4F,EAAIC,EAAIC,EACZ,IAEF,OADgBxE,KAAKyE,MAAMzF,GACXoD,MACd,IAAK,QACG,MAAAsC,EAAe1E,KAAKyE,MAAMzF,GACI,OAAnCN,EAAKV,KAAK2G,uBAAyCjG,EAAGE,KAAKZ,KAAM0G,GAClE,MACF,IAAK,UACG,MAAA5E,EAAUE,KAAKyE,MAAMzF,GACI,OAA9BsF,EAAKtG,KAAK4G,kBAAoCN,EAAG1F,KAAKZ,KAAM8B,GAGlE,OAAQR,GACuB,OAA7BiF,EAAKvG,KAAKF,QAAQ0C,SAA2B+D,EAAGjF,MAAM,+BAAgCA,GACnFA,aAAiBC,QACI,OAAtBiF,EAAKxG,KAAKyB,UAA4B+E,EAAG5F,KAAKZ,KAAMsB,GAE7D,CACA,CACE,mBAAMuF,CAAc1E,GACd,IAAAzB,EACJ,MAAMoG,EAAe,CACnBvE,OAAQ,YACRvB,KAAM,CACJ+F,UAAW,aAEXC,QAAShH,KAAKF,QAAQiG,OACtBjF,MAAO,IACPmG,SAAmB,MAAT9E,OAAgB,EAASA,EAAM8E,UAAY,IAGrDjH,KAAKF,QAAQoH,eACFJ,EAAA9F,KAAKmG,eAAiBnH,KAAKF,QAAQoH,cAE9ClH,KAAKF,QAAQsH,WACFN,EAAA9F,KAAKqG,UAAYrH,KAAKF,QAAQsH,UAEf,OAA7B1G,EAAKV,KAAKF,QAAQ0C,SAA2B9B,EAAG+C,MAAM,4BAA6BqD,SAC9E9G,KAAK6B,KAAKiF,EACpB,CACE,eAAOV,CAAStG,GACV,IAAAY,EACA,IAAAb,GAAiC,OAAzBa,EAAKZ,EAAQgG,cAAmB,EAASpF,EAAGuC,MAAM/C,YAAc,GAIrE,OAHHJ,EAAQmG,cACHpG,GAAA,UAAUC,EAAQmG,eAEpBpG,CACX,EAEA,MAAMyH,UAAoB5B,EACxB,WAAA9F,CAAYE,GACVuE,MAAMvE,GACNX,EAAca,KAAM,UACfA,KAAAuH,OAAS,IAAIpB,EAAYrG,EAClC,CAOE,iBAAM0H,CAAYrF,GAChB,MAAMuC,EAAQ,2EAEuB1E,KAAKF,QAAQsH,SAAW,eAAepH,KAAKF,QAAQsH,YAAc,gCACzE,MAATjF,OAAgB,EAASA,EAAMsF,kBAAoB,+BACzC,MAATtF,OAAgB,EAASA,EAAMuF,aAAe,MAAMvF,EAAMuF,eAAiB,0nBA+BjG,aAAa1E,EAAQ,CACnBlD,QAASE,KAAKF,QACd4E,QACAE,QAAS,CACP,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1CpG,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAOE,yBAAM2E,CAAoBxF,GACxB,MAAMuC,EAAQ,2EAEuB1E,KAAKF,QAAQsH,SAAW,eAAepH,KAAKF,QAAQsH,YAAc,gDACzE,MAATjF,OAAgB,EAASA,EAAMsF,kBAAoB,+BACzC,MAATtF,OAAgB,EAASA,EAAMuF,aAAe,MAAMvF,EAAMuF,eAAiB,0nBA+BjG,OAAO1E,EAAQ,CACblD,QAASE,KAAKF,QACd4E,QACAE,QAAS,CACP,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1CpG,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAKE,2BAAM4E,GACA,IAAAlH,EACJ,MAAMgE,EAAQ,yEAEyB1E,KAAKF,QAAQsH,SAAW,iBAAiBpH,KAAKF,QAAQsH,YAAc,uBAY3G,OAAgC,OAAvB1G,SATcsC,EAAQ,CAC7BlD,QAASE,KAAKF,QACd4E,QACAE,QAAS,CACP,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1CpG,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,WAEXhC,WAAgB,EAASN,EAAGmH,QAAU,CACjE,CAOE,WAAMC,CAAM3F,GACV,MAAMuC,EAAQ,8DAEYvC,EAAM4F,4BAA4B5F,EAAM6F,8BAG5DpD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,QACAE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAME,UAAMiF,CAAK9F,GACT,MAAMuC,EAAQ,2DAESvC,EAAM4F,6BAGvBnD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,QACAE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAME,YAAMkF,CAAO/F,GACX,MAAMuC,EAAQ,6DAEWvC,EAAM4F,6BAGzBnD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,QACAE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAKE,aAAMmF,GACJ,MAKMvD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,MAdY,oEAeZE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAME,UAAMoF,CAAKjG,GACT,MAAMuC,EAAQ,6DAEWvC,EAAM4F,6BAGzBnD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,QACAE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAME,aAAMqF,CAAQlG,GACZ,MAAMuC,EAAQ,8DAEYvC,EAAM4F,6BAG1BnD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,QACAE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAME,eAAMsF,CAAUnG,GACd,MAAMuC,EAAQ,gEAEcvC,EAAM4F,6BAG5BnD,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,QACAE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAIE,iBAAMuF,GACJ,MAKM3D,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,MAdY,oEAeZE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,CAIE,gBAAMwF,GACJ,MAKM5D,EAAU,CACd,oBAAqB5E,KAAKF,QAAQiG,OAClCC,cAAiB,UAAUhG,KAAKF,QAAQmG,eAEtCjG,KAAKF,QAAQoH,eACPtC,EAAA,8BAAgC5E,KAAKF,QAAQoH,oBAEjDlE,EAAQ,CACZlD,QAASE,KAAKF,QACd4E,MAdY,mEAeZE,UACA/E,IAAKG,KAAKF,QAAQgG,QAAQ7C,MAAMD,SAEtC,EAEA,MAAMyF,EAMJ,aAAAC,CAAcC,GACL,MAAA,CACLC,QAASD,EAAKE,SACdC,UAAWH,EAAKI,WAChBC,UAAWL,EAAKM,WAChBC,YAAaP,EAAKQ,aAClBpE,OAAQ4D,EAAK5D,OACbqE,cAAeT,EAAKU,eACpBC,iBAAkBX,EAAKY,mBACvBC,cAAeb,EAAKc,gBAAkB,GAE5C,CAME,UAACC,CAAUC,GACT,IAAA,MAAWhB,KAAQgB,QACX3J,KAAK0I,cAAcC,EAE/B,EAiBA,MAAMiB,UAAyBlE,EAC7B,WAAA9F,GACEyE,SAASwF,WACT1K,EAAca,KAAM,cAAe,IAAIyI,EAC3C,CAOE,wBAAMqB,CAAmB3H,GACnB,IAAAtC,EAAM,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAc/C,KAAKF,QAAQiG,sBACxD,MAAT5D,OAAgB,EAASA,EAAM4H,oBAC1BlK,GAAA,WAAWsC,EAAM4H,oBAEpB,MAQA/I,QARaiE,EAAK,CACtBnF,QAASE,KAAKF,QACdD,MACA4E,OAAQ,MACRG,QAAS,CACPoB,cAAiB,UAAUhG,KAAKF,QAAQmG,iBAIrC,MAAA,CACL0D,MAAO,IAAI3J,KAAKgK,YAAYN,UAAU1I,EAAK2I,QAC3CM,OAAQjJ,EAAKiJ,OAEnB,CAOE,4BAAMC,CAAuB/H,GACrB,MAQAgI,QARalF,EAAK,CACtBnF,QAASE,KAAKF,QACdD,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAc/C,KAAKF,QAAQiG,sBAAsB5D,EAAMyG,UAC5FnE,OAAQ,MACRG,QAAS,CACPoB,cAAiB,UAAUhG,KAAKF,QAAQmG,iBAI5C,OAAOjG,KAAKgK,YAAYtB,cAAcyB,EAAIC,MAC9C,CAUE,4BAAMC,CAAuBlI,GAC3B,MAAMmI,EAAU,CACdF,MAAO,CACLrF,OAAQ5C,EAAM4C,OACdwE,mBAAoBpH,EAAMmH,iBAC1BG,eAAgBtH,EAAMqH,sBAGpBvE,EAAK,CACTnF,QAASE,KAAKF,QACdD,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAc/C,KAAKF,QAAQiG,sBAAsB5D,EAAMyG,UAC5FnE,OAAQ,MACRG,QAAS,CACPoB,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1CpB,KAAMyF,GAEZ,CAME,wBAAAC,CAAyBpI,GAGvB,MAAO,yCA1FX,SAAgB9C,GACd,MAAMmL,EAAQ,IAAIC,WAAWpL,EAAIqL,QACjC,IAAA,IAASC,EAAI,EAAGA,EAAItL,EAAIqL,OAAQC,IAC9BH,EAAMG,GAAKtL,EAAIuL,WAAWD,GAE5B,OAAOE,KAAKC,OAAOC,gBAAgBP,GACrC,CAmFgBQ,CAAO,GAjGvB,SAAgBC,GACR,MAAAC,EAAeC,KAAKF,GACpBT,EAAQ,IAAIC,WAAWS,EAAaR,QAC1C,IAAA,IAASC,EAAI,EAAGA,EAAIO,EAAaR,OAAQC,IACvCH,EAAMG,GAAKO,EAAaN,WAAWD,GAE9B,OAAAG,OAAOC,gBAAgBP,EAChC,CAyFyBY,CAAOjJ,EAAM8I,cACIjL,KAAKF,QAAQiG,SAAS/F,KAAKF,QAAQsH,SAAW,IAAIpH,KAAKF,QAAQsH,WAAa,aAEtH,EAEA,MAAMiE,UAAoB3F,EAQxB,kBAAM4F,CAAanJ,GACjB,MAAMmI,EAAU,CACdiB,aAAcpJ,EAAMqJ,YACjBrJ,EAAMsJ,QAAU,CACjBA,OAAQ,CACNC,OAAQvJ,EAAMsJ,OAAOE,MACrBC,MAAOzJ,EAAMsJ,OAAOI,KACpBC,UAAW3J,EAAMsJ,OAAOM,SACxBC,SAAU7J,EAAMsJ,OAAOO,SACvBC,aAAc9J,EAAMsJ,OAAOQ,aAC3BC,MAAO/J,EAAMsJ,OAAOS,eAIpBjH,EAAK,CACTnF,QAASE,KAAKF,QACdD,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAc/C,KAAKF,QAAQiG,iBAAiB5D,EAAMgK,QACvF1H,OAAQ,MACRG,QAAS,CACPoB,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1CpB,KAAMyF,EACNpF,WAAY,CAAC,IAAK,MAExB,CAME,qBAAMkH,CAAgBjK,SACd8C,EAAK,CACTnF,QAASE,KAAKF,QACdD,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAc/C,KAAKF,QAAQiG,iBAAiB5D,EAAMgK,QACvF1H,OAAQ,SACRG,QAAS,CACPoB,cAAiB,UAAUhG,KAAKF,QAAQmG,eAE1Cf,WAAY,CAAC,IAAK,MAExB,EAEA,MAAMmH,UAAmB3G,EAOvB,qBAAM4G,CAAgBnK,GACpB,aAAa8C,EAAK,CAChBpF,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAcZ,EAAMoK,wBAAwBvM,KAAKF,QAAQiG,SAC9FjG,QAASE,KAAKF,QACd2E,OAAQ,MACRG,QAAS,CACPoB,cAAe,UAAUhG,KAAKF,QAAQmG,gBAG9C,CAOE,wBAAMuG,CAAmBrK,GACvB,aAAa8C,EAAK,CAChBpF,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,cAAcZ,EAAMoK,wBAAwBvM,KAAKF,QAAQiG,SAC9FjG,QAASE,KAAKF,QACd2E,OAAQ,SACRG,QAAS,CACPoB,cAAe,UAAUhG,KAAKF,QAAQmG,gBAG9C,EAEA,MAAMwG,UAAuB/G,EAU3B,wBAAMgH,CAAmBvK,GACvB,aAAa8C,EAAK,CAChBpF,IAAK,GAAGG,KAAKF,QAAQgG,QAAQhD,QAAQC,uBACrCjD,QAASE,KAAKF,QACd2E,OAAQ,OACRG,QAAS,CACPoB,cAAe,UAAUhG,KAAKF,QAAQmG,eAExCpB,KAAM,IACD1C,EACH4D,OAAQ/F,KAAKF,QAAQiG,QAEvBb,WAAY,CAAC,IAAK,MAExB,CAQE,qBAAMyH,CAAgBxK,GACpB,aAAa8C,EAAK,CAChBpF,IAAKsC,EAAMtC,IACXC,QAASE,KAAKF,QACd2E,OAAQ,OACRI,KAAM,CACJ/D,MAAOqB,EAAMrB,QAGrB,EAEA,MAAM8L,UAAsBlH,EAC1B,WAAA9F,CAAYuC,GACV,IAAIzB,EAAI4F,EACF,MAAAnD,OAA8B,IAAnBhB,EAAMgB,SAAsBhB,EAAMgB,SAAoC,gBAAzB0J,QAAQC,IAAIC,SACpEC,EAAc,IACf7K,EACHgB,WACA2C,QAAS3D,EAAM2D,SAAWlD,IAC1BqD,YAAa9D,EAAM8K,KAAO9K,EAAM+K,cAE5B7I,MAAA,IACD2I,EACHxK,OAAQ,IAAIU,EAAO8J,EAAY7J,UAC/B2C,QAASlD,EAAkBoK,EAAYlH,WAEzC3G,EAAca,KAAM,UACpBb,EAAca,KAAM,UACpBb,EAAca,KAAM,eACpBb,EAAca,KAAM,SACpBb,EAAca,KAAM,SACpBb,EAAca,KAAM,YACpBA,KAAKmN,OAAS,IAAI9B,EAAYrL,KAAKF,SACnCE,KAAKoN,OAAS,IAAIzH,EAAY3F,KAAKF,SACnCE,KAAKqN,YAAc,IAAIzD,EAAiB5J,KAAKF,SAC7CE,KAAKiD,MAAQ,IAAIqE,EAAYtH,KAAKF,SAClCE,KAAKsN,MAAQ,IAAIjB,EAAWrM,KAAKF,SACjCE,KAAKuN,SAAW,IAAId,EAAezM,KAAKF,SACnCE,KAAKF,QAAQmN,KAAQjN,KAAKF,QAAQoN,cAChClN,KAAAF,QAAQ0C,OAAOY,KAAK,qGAEvBpD,KAAKF,QAAQoN,eACe,OAA7BxM,EAAKV,KAAKF,QAAQ0C,SAA2B9B,EAAG0C,KAC/C,sQAGApD,KAAKF,QAAQmN,KAAOjN,KAAKF,QAAQoN,eACL,OAA7B5G,EAAKtG,KAAKF,QAAQ0C,SAA2B8D,EAAGlD,KAC/C,uGAGR,EAEA,MAAMoK,EACJ,WAAA5N,CAAY6N,GACVtO,EAAca,KAAM,YACpBA,KAAKyN,SAAWA,CACpB,CACE,MAAAC,GACUC,EAAAC,OAAOC,6BAA6B7N,KAChD,EAEM,MAAA8N,EAAW,MAAMA,EACrB,WAAAlO,GAIET,EAAca,KAAM,KAAM2D,EAAKC,YAI/BzE,EAAca,KAAM,kBAIND,EAAAC,KAAM,mBAAoB,IAI1BD,EAAAC,KAAM,0BAA2B,GACnD,CACE,mBAAIyH,GACF,OAAOzH,KAAK+N,gBAChB,CACE,mBAAItG,CAAgBnI,GACbU,KAAA+N,iBAAmBhK,KAAKiK,IAAIjK,KAAKkK,IAAI3O,EAAO,GAAI,IACzD,CAKE,UAAI4O,GACF,OAAOlO,KAAKmO,cAChB,CAKE,iBAAWP,GAIT,OAHKE,EAASM,WACZN,EAASM,SAAW,IAAIN,GAEnBA,EAASM,QACpB,CAKE,MAAAC,CAAOlM,GACL,MAAM+E,EAAe/E,EAAM+E,cAAgBvD,EAAKC,WAChD5D,KAAKmO,eAAiB,IAAIvB,EAAc,IAAKzK,EAAO+E,iBACpDlH,KAAKsO,8BAA8B,CAAEvI,OAAQ5D,EAAM4D,QACvD,CAIE,OAAAwI,GACEvO,KAAKmO,oBAAiB,EACtBnO,KAAKsO,8BAA8B,CAAEvI,YAAQ,GACjD,CAME,yBAAAyI,CAA0Bf,GACpB,IAAA/M,EAC0B,OAA7BA,EAAKV,KAAKmO,iBAAmCzN,EAAGZ,QAAQ0C,OAAOkB,KAAK,kCAC/D,MAAA+K,EAAW,IAAIjB,EAAuBC,GAErC,OADFzN,KAAA0O,wBAAwBC,KAAKF,GAC3BA,CACX,CAKE,4BAAAZ,CAA6BY,GACvB,IAAA/N,EAC0B,OAA7BA,EAAKV,KAAKmO,iBAAmCzN,EAAGZ,QAAQ0C,OAAOkB,KAAK,oCACrE1D,KAAK0O,wBAA0B1O,KAAK0O,wBAAwBE,QAAQC,GAAMA,IAAMJ,GACpF,CAKE,6BAAAH,CAA8BnM,GAC5BnC,KAAK0O,wBAAwBI,SAASL,GAAaA,EAAShB,SAAStL,IACzE,GAKAhD,EAAc2O,EAAU,YACxB,IAAIH,EAAUG,EC/lCd,IAAI9O,EAAYC,OAAOC,eAEnBC,EAAgB,CAACC,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMJ,EAAUI,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACjHI,CAAgBN,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAEpGyP,EAAa9P,OAAOC,eAEpB8P,EAAiB,CAAC5P,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAM2P,EAAW3P,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EAClH2P,CAAiB7P,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAC1G,MAAM4P,EACG,CACL,IAAK,UACL,MAAO,YACP,MAAO,aAJLA,EAME,CACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAVHA,EAYG,CACL,IAAK,UACL,MAAO,YACP,MAAO,aAfLA,EAiBE,CACJ,IAAK,UACL,IAAK,WAGHC,EAAQ,CACZC,MAAO,CACLC,OAAQ,CACNC,QAASJ,EAAoB,KAC7BK,UAAWL,EAAoB,KAC/BM,OAAQN,EAAmB,KAC3BO,KAAMP,EAAmB,KACzBQ,KAAMR,EAAoB,MAE5BS,OAAQ,CACNC,aAAc,QAGlBC,KAAM,CACJR,OAAQ,CACNC,QAASJ,EAAoB,KAC7BK,UAAWL,EAAoB,KAC/BM,OAAQN,EAAmB,KAC3BO,KAAMP,EAAmB,KACzBQ,KAAMR,EAAoB,MAE5BS,OAAQ,CACNC,aAAc,SAIdE,EAAqB,IACH,oBAAXC,OACF,QAEFA,OAAOC,WAAW,gCAAgCC,QAAU,OAAS,QAExEC,EAA8BzC,IAC9B,GAAkB,oBAAXsC,OACT,MAAO,OAGH,MAAAI,EAAaJ,OAAOC,WAAW,gCAC/BI,EAAWC,IACN5C,EAAA4C,EAAEJ,QAAU,OAAS,QAAO,EAGvC,OADWE,EAAAG,iBAAiB,SAAUF,GAC/B,KACMD,EAAAI,oBAAoB,SAAUH,EAAO,CACjD,EAEH,MAAMI,UAAkCC,YACtC,WAAA7Q,GACSyE,QACP2K,EAAehP,KAAM,uBACrBgP,EAAehP,KAAM,uBACrBA,KAAK0Q,oBAAsBZ,IACtB9P,KAAA2Q,oBAAsBT,GAA4BU,IACrD5Q,KAAK0Q,oBAAsBE,EAC3B5Q,KAAK6Q,oBAAoBD,EAAI,GAEnC,CACE,sBAAIE,GACF,OAAO9Q,KAAK0Q,mBAChB,CACE,oBAAAK,GACM/Q,KAAK2Q,qBACP3Q,KAAK2Q,qBAEX,CACE,mBAAAE,CAAoBG,GACtB,EAEA,MAAMC,EAAmB,CACvBC,aAAc,MACdC,SAAU,QAENC,EAQQR,IAAU,IACjBK,EACHI,gBAAiBlC,EAAMyB,GAAMvB,OAAOE,UACpC+B,UAAWnC,EAAMyB,GAAMvB,OAAOC,QAC9BiC,WAAY,MACZ/B,OAAQ,aAAaL,EAAMyB,GAAMvB,OAAOG,SACxCgC,OAAiB,UAATZ,EAAmB,sCAAwC,6CAWvE,MAAMa,UAAsBjB,EAC1B,WAAA5Q,CAAYuC,GACHkC,QACP2K,EAAehP,KAAM,WACrBgP,EAAehP,KAAM,UACrB,MAAMwR,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA2R,QAAUC,SAASC,cAAc,UACjC7R,KAAA2R,QAAQG,aAAa,OAAQ,UAC7B9R,KAAA+R,OAASH,SAASC,cAAc,SACrC7R,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAU9P,GAClCqP,EAAAU,YAAYlS,KAAK+R,QACjBP,EAAAU,YAAYlS,KAAK2R,SACxB3R,KAAKmS,aAAahQ,GAClBnC,KAAK2R,QAAQrB,iBAAiB,SAAUD,IACtCA,EAAE+B,iBACF/B,EAAEgC,kBACElQ,EAAMmQ,SACRnQ,EAAMmQ,SACd,GAEA,CACE,SAAAL,CAAU9P,GA6BD,MAAA,6HAOcA,EAAM+O,cAnBC,KACRE,EAAgCpR,KAAK8Q,oBACtCI,aAiBwBqB,6BACxBpQ,EAAMoP,YAZC,KACNH,EAAgCpR,KAAK8Q,oBACtCS,WAUoBiB,6BACpBrQ,EAAMsQ,YAAc,kCACtBtQ,EAAMgP,UAlBC,KACJC,EAAgCpR,KAAK8Q,oBACtCK,SAgBgBuB,qIAKXvQ,EAAMkP,iBAvCC,KACXD,EAAgCpR,KAAK8Q,oBACtCO,gBAqC8BsB,uBACpCxQ,EAAMmP,WA5CM,KACLF,EAAgCpR,KAAK8Q,oBACtCQ,UA0CasB,wBAClBzQ,EAAMqN,QArCE,KACF4B,EAAgCpR,KAAK8Q,oBACtCtB,OAmCWqD,4BACZ1Q,EAAMqP,QAlCF,KACFJ,EAAgCpR,KAAK8Q,oBACtCU,OAgCesB,sFAK5B3Q,EAAM4Q,qBAAuB,qBAAqB5Q,EAAM4Q,wBAA0B,yEAIlF5Q,EAAM6Q,sBAAwB,qBAAqB7Q,EAAM6Q,yBAA2B,oIAQ9F,CACE,YAAAb,CAAahQ,GACPA,EAAM8Q,OACHjT,KAAA2R,QAAQK,YAAc7P,EAAM8Q,MAEnCjT,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAU9P,EAC7C,EAEK+Q,eAAeC,IAAI,mBACPD,eAAAE,OAAO,iBAAkB3B,GAE1C,MAAM4B,EAAkB,CACtBpQ,MAAO,21BAGPoF,QAAS,gkBAGTiL,MAAO,8cAGP1E,OAAQ,kkBAGR2E,SAAU,ugCAGVtL,KAAM,+qBAGNM,YAAa,+3BAGbL,OAAQ,qYAGRI,UAAW,itBAIb,MAAMkL,UAAoB/C,YACxB,WAAA7Q,CAAY6T,EAAOC,GACVrP,QACP2K,EAAehP,KAAM,UACrBgP,EAAehP,KAAM,QACrBgP,EAAehP,KAAM,kBACrBgP,EAAehP,KAAM,UACrBA,KAAK2T,OAASF,GAASvE,EAAoB,KAC3ClP,KAAK4T,KAAOF,EACZ,MAAMlC,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA6T,eAAiBjC,SAASC,cAAc,OACtCL,EAAAU,YAAYlS,KAAK6T,gBACnB7T,KAAA+R,OAASH,SAASC,cAAc,SACrC7R,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAUjS,KAAK2T,QACvCnC,EAAAU,YAAYlS,KAAK+R,QACxB/R,KAAK8T,SACT,CACE,SAAA7B,CAAUwB,GACD,MAAA,yPAYMA,mBAGjB,CACE,OAAAK,GACM9T,KAAK4T,OACF5T,KAAA6T,eAAeE,UAAY/T,KAAK4T,MAEnC5T,KAAK2T,SACP3T,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAUjS,KAAK2T,QAEpD,CACE,WAAAK,CAAYP,GACVzT,KAAK2T,OAASF,EACdzT,KAAK8T,SACT,CACE,SAAAG,CAAUP,GACR1T,KAAK4T,KAAOF,EACZ1T,KAAK8T,SACT,EAEKZ,eAAeC,IAAI,iBACPD,eAAAE,OAAO,eAAgBI,GAExC,MAAMU,UAAoBzD,YACxB,WAAA7Q,GACSyE,QACP2K,EAAehP,KAAM,QACrB,MAAMwR,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAAyP,KAAOmC,SAASC,cAAc,KAC9B7R,KAAAyP,KAAKqC,aAAa,OAAQ,QACzB,MAAAqC,EAAQvC,SAASC,cAAc,SACrCsC,EAAMnC,YAAc,4dAiBmB7C,EAAMC,MAAMC,OAAOI,iTAYnBN,EAAMU,KAAKR,OAAOI,wZAqBzD+B,EAAOU,YAAYiC,GACZ3C,EAAAU,YAAYlS,KAAKyP,MACxBzP,KAAKoU,gBACLpU,KAAKqU,kBACLrU,KAAKsU,YACT,CACE,iBAAAC,GACQ,MAAAC,EAAO5C,SAASC,cAAc,QAC/B7R,KAAAyP,KAAKyC,YAAYsC,GACtBxU,KAAKyU,YACT,CACE,wBAAAC,CAAyBpQ,EAAMqQ,EAAUC,GACvC,GAAID,IAAaC,EACjB,OAAQtQ,GACN,IAAK,OACHtE,KAAKyU,aACL,MACF,IAAK,UACL,IAAK,OACHzU,KAAKoU,gBACL,MACF,IAAK,WACHpU,KAAKyP,KAAK0E,MAAMU,cAAgB7U,KAAK8U,aAAa,YAAc,OAAS,OACzE9U,KAAKyP,KAAK0E,MAAMY,QAAU/U,KAAK8U,aAAa,YAAc,MAAQ,IAClE,MACF,IAAK,QACH9U,KAAKgU,cACL,MACF,IAAK,YACHhU,KAAKqU,kBACL,MACF,IAAK,SACHrU,KAAKgV,eACL,MACF,IAAK,cACHhV,KAAKiV,mBACL,MACF,IAAK,YACHjV,KAAKkV,iBAGb,CACE,UAAAT,GACQ,MAAAU,EAAOnV,KAAKoV,aAAa,QAC3BD,IACFnV,KAAKyP,KAAK0F,KAAOA,EAEvB,CACE,aAAAf,GACE,MAAMiB,EAAUrV,KAAKoV,aAAa,YAAc,UAC1CxE,EAAO5Q,KAAKoV,aAAa,SAAW,QACrCpV,KAAAyP,KAAKqC,aAAa,eAAgBuD,GAClCrV,KAAAyP,KAAKqC,aAAa,YAAalB,EACxC,CACE,WAAAoD,GACQ,MAAAP,EAAQzT,KAAKoV,aAAa,SAC5B3B,EACFzT,KAAKyP,KAAK0E,MAAMmB,YAAY,uBAAwB7B,GAE/CzT,KAAAyP,KAAK0E,MAAMoB,eAAe,uBAErC,CACE,eAAAlB,GACE,MAAMmB,EAA+C,SAAnCxV,KAAKoV,aAAa,aACpCpV,KAAKyP,KAAKqC,aAAa,iBAAkB0D,EAAUvR,WACvD,CACE,UAAAqQ,GACE,MAAM1D,EAAO5Q,KAAKoV,aAAa,SAAW,QACrCpV,KAAAyP,KAAKqC,aAAa,YAAalB,EACxC,CACE,YAAAoE,GACQ,MAAAS,EAASzV,KAAKoV,aAAa,UAC7BK,IACFzV,KAAKyP,KAAKgG,OAASA,EAEzB,CACE,gBAAAR,GACQ,MAAAxC,EAAazS,KAAKoV,aAAa,eACjC3C,EACFzS,KAAKyP,KAAK0E,MAAMmB,YAAY,6BAA8B7C,GAErDzS,KAAAyP,KAAK0E,MAAMoB,eAAe,6BAErC,CACE,cAAAL,GACQ,MAAA/D,EAAWnR,KAAKoV,aAAa,aAC/BjE,EACFnR,KAAKyP,KAAK0E,MAAMmB,YAAY,2BAA4BnE,GAEnDnR,KAAAyP,KAAK0E,MAAMoB,eAAe,2BAErC,EAEAvG,EAAekF,EAAa,qBAAsB,CAChD,OACA,UACA,WACA,QACA,YACA,OACA,SACA,cACA,cAEGhB,eAAeC,IAAI,iBACPD,eAAAE,OAAO,eAAgBc,GAExC,MAAMwB,UAAuBlF,EAC3B,WAAA5Q,GACSyE,QACP2K,EAAehP,KAAM,UACrBA,KAAKwR,OAASxR,KAAK0R,aAAa,CAAEd,KAAM,QAC5C,CAEE,KAAA+E,CAAMC,GACJ,GAAmB,OAAfA,EAEF,YADA5V,KAAKwR,OAAOqE,kBAGR,MAAAC,EAAUF,GAAc5V,KAAK+V,iBAC9B/V,KAAAwR,OAAOqE,gBAAgBC,EAChC,CAEE,cAAAC,GACQ,MAAAD,EAAUlE,SAASC,cAAc,OAOhC,OANPiE,EAAQ9D,YAAc,0BACtB8D,EAAQ3B,MAAM6B,QAAU,wFAKjBF,CACX,EAEA,MAAMG,UAAyBP,EAC7B,WAAA9V,CAAYuC,GACHkC,QACP2K,EAAehP,KAAM,UACrBgP,EAAehP,KAAM,UACrBgP,EAAehP,KAAM,WACrBgP,EAAehP,KAAM,UACrBgP,EAAehP,KAAM,uBAAwB,MAC7CA,KAAKkW,OAAS/T,CAClB,CACE,cAAA4T,GACE,IAAIrV,EAAI4F,EACF,MAAA6P,EAAYvE,SAASC,cAAc,OAkBlC,OAjBF7R,KAAAoW,OAASxE,SAASC,cAAc,OACL,OAA3BnR,EAAKV,KAAKkW,OAAOG,YAAiB,EAAS3V,EAAGuS,QACjDjT,KAAKoW,OAAOpE,YAAchS,KAAKkW,OAAOG,MAAMpD,MAEzCjT,KAAA2R,QAAU,IAAIF,EAAczR,KAAKkW,OAAOvG,QAAUyB,EAAgCpR,KAAK8Q,qBACvF9Q,KAAA+R,OAASH,SAASC,cAAc,SACrC7R,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAUjS,KAAKkW,QAC9CC,EAAUG,UAAY,YACZH,EAAAjE,YAAYlS,KAAK+R,QACjBoE,EAAAjE,YAAYlS,KAAKoW,QACjBD,EAAAjE,YAAYlS,KAAK2R,SACtB3R,KAAAwR,OAAOU,YAAYiE,GACD,OAAtB7P,EAAKtG,KAAK2R,UAA4BrL,EAAGgK,iBAAiB,SAAS,KAC9DtQ,KAAKuW,sBACPvW,KAAKuW,sBACb,IAEWJ,CACX,CACE,mBAAAtF,CAAoBG,GACbhR,KAAAwW,aAAaxW,KAAKkW,OAC3B,CACE,SAAAjE,CAAU9P,GACJ,IAAAzB,EAAI4F,EAAIC,EAAIC,EACT,MAAA,gcAqB6B,OAArB9F,EAAKyB,EAAMkU,YAAiB,EAAS3V,EAAG4Q,YAAc,+BAC7B,OAArBhL,EAAKnE,EAAMkU,YAAiB,EAAS/P,EAAG6K,WAAa,kCAC9B,OAArB5K,EAAKpE,EAAMkU,YAAiB,EAAS9P,EAAGgL,aAAe,iCAClC,OAArB/K,EAAKrE,EAAMkU,YAAiB,EAAS7P,EAAGiM,aAAe,2BAGhF,CACE,YAAA+D,CAAarU,GACXnC,KAAKkW,OAAS/T,EACVnC,KAAK+R,SACP/R,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAU9P,IAEvCnC,KAAK2R,SACF3R,KAAA2R,QAAQQ,aAAahQ,EAAMwN,OAEtC,CACE,sBAAA8G,CAAuBhJ,GACrBzN,KAAKuW,qBAAuB9I,CAChC,EAEKyF,eAAeC,IAAI,uBACPD,eAAAE,OAAO,qBAAsB6C,GAE9C,MAAMS,UAA0BjG,YAC9B,WAAA7Q,CAAY8T,EAAKD,EAAOpC,EAAiB0B,EAAsBC,EAAuB9B,EAAcyF,EAAQC,GACnGvS,QACP2K,EAAehP,KAAM,oBACrBgP,EAAehP,KAAM,yBACrBgP,EAAehP,KAAM,0BACrBgP,EAAehP,KAAM,iBACrBgP,EAAehP,KAAM,WACrBgP,EAAehP,KAAM,UACrBgP,EAAehP,KAAM,UACrBgP,EAAehP,KAAM,WACrBgP,EAAehP,KAAM,SACrBA,KAAK6W,cAAgB3F,EACrBlR,KAAK8W,iBAAmBzF,EACxBrR,KAAK+W,sBAAwBhE,EAC7B/S,KAAKgX,uBAAyBhE,EAC9BhT,KAAKiX,QAAUN,EACf3W,KAAKkX,OAASN,EACd,MAAMpF,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA2R,QAAUC,SAASC,cAAc,UACjC7R,KAAA2R,QAAQG,aAAa,OAAQ,UAClC9R,KAAKmX,MAAQ,IAAI3D,EAAYC,EAAOC,GAC/B1T,KAAA+R,OAASH,SAASC,cAAc,SACrC7R,KAAK8T,UACEtC,EAAAU,YAAYlS,KAAK+R,QACnB/R,KAAA2R,QAAQO,YAAYlS,KAAKmX,OACvB3F,EAAAU,YAAYlS,KAAK2R,QAC5B,CACE,OAAAmC,GACO9T,KAAA+R,OAAOC,YAAchS,KAAKiS,WACnC,CACE,SAAAA,GACS,MAAA,2EAGcjS,KAAK6W,eAAiB,oFAKtB7W,KAAK6W,eAAiB,oDAE9B7W,KAAKkX,QAAU,4BACdlX,KAAKiX,SAAW,wHAIZjX,KAAK8W,kBAAoB,oKAMnB9W,KAAK+W,uBAAyB,uEAI9B/W,KAAKgX,wBAA0B,uRAgB3D,CACE,eAAAI,CAAgB3D,GACTzT,KAAAmX,MAAMnD,YAAYP,EAC3B,CACE,aAAA4D,CAAc3D,GACP1T,KAAAmX,MAAMlD,UAAUP,EACzB,CACE,qBAAA4D,CAAsB7D,GACpBzT,KAAK8W,iBAAmBrD,EACxBzT,KAAK8T,SACT,CACE,0BAAAyD,CAA2B9D,GACzBzT,KAAK+W,sBAAwBtD,EAC7BzT,KAAK8T,SACT,CACE,2BAAA0D,CAA4B/D,GAC1BzT,KAAKgX,uBAAyBvD,EAC9BzT,KAAK8T,SACT,EAEKZ,eAAeC,IAAI,wBACPD,eAAAE,OAAO,sBAAuBsD,GAc/C,SAASe,GAAY3V,GACnB,MAAM4V,EAAO,IACR5V,GAcE,OAZHA,EAAQ6V,UACLD,EAAAC,QAAU7V,EAAQ6V,QAAQC,KAAKrV,GAaxC,SAAyBA,GACvB,MAAMmV,EAAO,IACRnV,GAEDA,EAAOvB,OACT0W,EAAK1W,KAAOgB,KAAKyE,MAAMzE,KAAKC,UAAUM,EAAOvB,QAExC,OAAA0W,CACT,CArBmDG,CAAgBtV,MAE7DT,EAAQd,OACV0W,EAAK1W,KAAOgB,KAAKyE,MAAMzE,KAAKC,UAAUH,EAAQd,QAE5Cc,EAAQgW,OACVJ,EAAKI,KAAO,IAAIhW,EAAQgW,OAEtBhW,EAAQiW,cACVL,EAAKK,YAAc,IAAKjW,EAAQiW,cAE3BL,CACT,CAUA,SAASM,GAAiBC,GACjB,MAAA,IACFA,EACHC,SAAUD,EAAQC,SAASN,KAAK9V,GAAY2V,GAAY3V,KAE5D,CA5CmB,CACjB,CAAEwC,KAAM,iBAAkB6T,MAAO1G,GACjC,CAAEnN,KAAM,eAAgB6T,MAAO3E,GAC/B,CAAElP,KAAM,eAAgB6T,MAAOjE,GAC/B,CAAE5P,KAAM,qBAAsB6T,MAAOlC,GACrC,CAAE3R,KAAM,sBAAuB6T,MAAOzB,IAE7B5H,SAAQ,EAAGxK,OAAM6T,MAAOC,MAC5BlF,eAAeC,IAAI7O,IACP4O,eAAAE,OAAO9O,EAAM8T,EAChC,IA+CA,MAAMC,WAAkC5H,YACtC,WAAA7Q,CAAY0Y,GACHjU,QAEPlF,EAAca,KAAM,UACpBb,EAAca,KAAM,WAAY,IAEhCb,EAAca,KAAM,UACpBA,KAAKuY,OAASD,EACd,MAAM9G,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA+R,OAASH,SAASC,cAAc,SAChC7R,KAAA+R,OAAOC,YAAchS,KAAKiS,YACxBT,EAAAU,YAAYlS,KAAK+R,QAClB,MAAAyG,EAAO5G,SAASC,cAAc,MACpC2G,EAAKlC,UAAY,OACjB9E,EAAOU,YAAYsG,EACvB,CACE,SAAAvG,GACE,IAAIvR,EAAI4F,EAAIC,EACZ,MAAMiS,EAAuG,OAA/FjS,EAAmE,OAA7DD,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+X,WAAgB,EAASnS,EAAGqC,WAAgB,EAASpC,EAAGiS,KACzH,MAAA,+FAIoB,MAARA,OAAe,EAASA,EAAKnH,kBAAoB,4BAC7C,MAARmH,OAAe,EAASA,EAAKhJ,SAAW,6CACzB,MAARgJ,OAAe,EAASA,EAAKtH,eAAiB,gCACzC,MAARsH,OAAe,EAASA,EAAKhH,SAAW,inBA8B/D,CACE,UAAAkH,CAAW5Y,GACTE,KAAK2Y,SAAW7Y,EAChBE,KAAK4Y,YACT,CACE,UAAAA,GACM,IAAAlY,EAAI4F,EAAIC,EAAIC,EACV,MAAAgS,EAAiC,OAAzB9X,EAAKV,KAAK6Y,iBAAsB,EAASnY,EAAGoY,cAAc,WACxE,IAAKN,EAAM,OACXA,EAAKzE,UAAY,GACjB,MAAMgF,EAA4G,OAA/FvS,EAAmE,OAA7DD,EAAiC,OAA3BD,EAAKtG,KAAKuY,OAAOtV,YAAiB,EAASqD,EAAGmS,WAAgB,EAASlS,EAAGoC,WAAgB,EAASnC,EAAGgS,KAC/HQ,EAAe3I,IACnBA,EAAEgC,kBACFhC,EAAE+B,gBAAgB,EAEfpS,KAAA2Y,SAAS7J,SAASmK,IACrB,IAAIC,EAAKC,EAAKC,EACd,MAAM1J,EAAO,IAAIgH,EAAkBuC,EAAIvJ,KAAKgE,IAAKuF,EAAIvJ,KAAK+D,MAAoB,MAAbsF,OAAoB,EAASA,EAAU1H,gBAAwE,OAAtD6H,EAAmB,MAAbH,OAAoB,EAASA,EAAUpQ,WAAgB,EAASuQ,EAAInG,qBAA6E,OAAtDoG,EAAmB,MAAbJ,OAAoB,EAASA,EAAUpQ,WAAgB,EAASwQ,EAAInG,sBAA8E,OAAtDoG,EAAmB,MAAbL,OAAoB,EAASA,EAAUpQ,WAAgB,EAASyQ,EAAIlI,cACjYmI,EAAqBhJ,IACzB2I,EAAY3I,GACZ4I,EAAI3G,SAAS,EAEV5C,EAAAY,iBAAiB,QAAS+I,GAC1B3J,EAAAY,iBAAiB,aAAc0I,GAC/BtJ,EAAAY,iBAAiB,WAAY+I,GAC7B3J,EAAAY,iBAAiB,YAAa0I,GAC9BtJ,EAAAY,iBAAiB,YAAa0I,GAC9BtJ,EAAAY,iBAAiB,UAAW0I,GACjCR,EAAKtG,YAAYxC,EAAI,GAE3B,CACE,IAAA4J,GACOtZ,KAAAuZ,UAAUC,IAAI,UACvB,CACE,IAAAC,GACOzZ,KAAAuZ,UAAU7L,OAAO,UAC1B,EAEKwF,eAAeC,IAAI,2BACPD,eAAAE,OAAO,yBAA0BiF,IAE5C,MAAAqB,GAAyB,MAAMA,EACnC,WAAA9Z,GACET,EAAca,KAAM,iBACpBb,EAAca,KAAM,mBACpBb,EAAca,KAAM,sBAAuB,IAC3Cb,EAAca,KAAM,gBACpBb,EAAca,KAAM,qBAAqB,GACzCb,EAAca,KAAM,uBAAuB,EAC/C,CACE,iBAAW4N,GAIT,OAHK8L,EAAuBtL,WAC1BsL,EAAuBtL,SAAW,IAAIsL,GAEjCA,EAAuBtL,QAClC,CACE,eAAIuL,GACF,OAAO3Z,KAAK4Z,cAAgB,CAChC,CACE,gBAAIC,GACK,OAAA7Z,KAAK8Z,eAAiB,CAAEC,SAAU,QAAS7B,SAAU,GAAI8B,aAAa,EAAOjQ,iBAAkB,KAC1G,CACE,kBAAIkQ,GACK,OAAAja,KAAKka,iBAAmB,CAAEH,SAAU,UAAW7B,SAAU,GAAI8B,aAAa,EAAOjQ,iBAAkB,KAC9G,CACE,oBAAAoQ,CAAqB1L,GACdzO,KAAAoa,oBAAoBzL,KAAKF,EAClC,CACE,uBAAA4L,CAAwB5L,GACtBzO,KAAKoa,oBAAsBpa,KAAKoa,oBAAoBxL,QAAQC,GAAMA,IAAMJ,GAC5E,CACE,kBAAM6L,CAAanY,GACb,IAAAzB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxC,GAAIzY,EAAM0Y,YACR,OAAQ1Y,EAAM4X,UACZ,IAAK,QACH,GAAI/Z,KAAK8Z,cACP,OAAO9Z,KAAK8Z,cAEd,MACF,IAAK,UACH,GAAI9Z,KAAKka,gBACP,OAAOla,KAAKka,gBAKd,MAAAlV,EAA8B,UAAnB7C,EAAM4X,eAA8D,OAA/BrZ,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGuC,MAAMuE,qBAAwD,OAA/BlB,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGrD,MAAM0E,uBACxL,MAAA,CACLoS,SAAU5X,EAAM4X,SAChB7B,UAAqG,OAAzF1R,EAAyD,OAAnDD,EAAiB,MAAZvB,OAAmB,EAASA,EAAShE,WAAgB,EAASuF,EAAG2R,eAAoB,EAAS1R,EAAGsU,QAAU,GAClId,aAA8I,OAA/HS,EAA+F,OAAzFD,EAAyD,OAAnDD,EAAiB,MAAZvV,OAAmB,EAASA,EAAShE,WAAgB,EAASuZ,EAAGrC,eAAoB,EAASsC,EAAGO,eAAoB,EAASN,EAAGO,eAAgB,EACjLjR,kBAAmJ,OAA/H6Q,EAA+F,OAAzFD,EAAyD,OAAnDD,EAAiB,MAAZ1V,OAAmB,EAASA,EAAShE,WAAgB,EAAS0Z,EAAGxC,eAAoB,EAASyC,EAAGI,eAAoB,EAASH,EAAGlT,cAAgB,KAE5L,CACE,sBAAMuT,CAAiB9Y,GACjB,IAAAzB,EACJ,GAAIyB,EAAM0Y,kBAAqC,IAAtB7a,KAAK4Z,aAC5B,OAAO5Z,KAAK4Z,aAGd,aAD2D,OAA/BlZ,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGuC,MAAM2E,0BAC9D,CAC1B,CACE,UAAMsT,CAAK/Y,GACT,IAAIzB,EAAI4F,EAAIC,EACR,IACE,KAAkC,OAA/B7F,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGZ,QAAQiG,QACzD,MAAA,IAAIxE,MAAM,yBAElB,MAAM4Z,EAAahZ,GAAS,CAAE4X,SAAU,QAASc,aAAa,IACvD5C,EAAS0B,SAAqBtZ,QAAQ+a,IAAI,CAC/Cpb,KAAKsa,aAAaa,GAClBnb,KAAKib,iBAAiBE,KAExB,OAAQA,EAAWpB,UACjB,IAAK,QACH/Z,KAAK8Z,cAAgB7B,EACrB,MACF,IAAK,UACHjY,KAAKka,gBAAkBjC,EAG3BjY,KAAK4Z,aAAeD,EACf3Z,KAAAoa,oBAAoBtL,SAASL,IAC5B,IAAAyK,EAAKC,EAAKC,EAAK5S,EACgC,OAAlD2S,GAAOD,EAAMzK,EAAS4M,QAAQC,kBAAoCnC,EAAIvY,KAAKsY,EAAKjB,EAASkD,EAAWpB,UAC/C,OAArDvT,GAAM4S,EAAM3K,EAAS4M,QAAQE,sBAAwC/U,EAAG5F,KAAKwY,EAAKpZ,KAAK4Z,cAAgB,EAAC,GAE5G,OAAQtY,GACqE,OAA3EiF,EAAqC,OAA/BD,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGxG,QAAQ0C,SAA2B+D,EAAGjF,MAAM,uBAAwBA,GACxHtB,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAIyK,EAAKC,EACkC,OAA1CA,GAAOD,EAAMzK,EAAS4M,QAAQ5Z,UAA4B0X,EAAIvY,KAAKsY,EAAK5X,EAAK,GAEtF,CACA,CAEE,sBAAMka,GACJ,IAAI9a,EAAI4F,EACJ,UACItG,KAAKyb,6BACLzb,KAAK0b,eACZ,OAAQpa,GACqE,OAA3EgF,EAAqC,OAA/B5F,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGZ,QAAQ0C,SAA2B8D,EAAGhF,MAAM,+BAAgCA,GAChItB,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAIyK,EAAKC,EACkC,OAA1CA,GAAOD,EAAMzK,EAAS4M,QAAQ5Z,UAA4B0X,EAAIvY,KAAKsY,EAAK5X,EAAK,GAEtF,CACA,CAEE,0BAAMma,GACJ,IAAIE,EAAkB,GACjB3b,KAAK8Z,eACQ6B,EAAAhN,KAAK3O,KAAKkb,KAAK,CAAEnB,SAAU,QAASc,aAAa,KAE9D7a,KAAKka,iBACQyB,EAAAhN,KAAK3O,KAAKkb,KAAK,CAAEnB,SAAU,UAAWc,aAAa,WAE/Dxa,QAAQ+a,IAAIO,EACtB,CACE,mBAAMD,GACA,IAAAhb,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAC1C,MAAAtU,EAAyC,OAA/B7G,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGuC,MAAMsE,OACpE,IACF,IAAKA,EAEH,YAD4E,OAA3EhB,EAAqC,OAA/BD,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGxG,QAAQ0C,SAA2B+D,EAAG7C,KAAK,sCAItG,GAD4E,OAA3E8W,EAAqC,OAA/BhU,EAAKmH,EAAQC,OAAOM,aAAkB,EAAS1H,EAAG1G,QAAQ0C,SAA2BgY,EAAG9W,KAAK,oCAAqE,OAA/B6W,EAAK5M,EAAQC,OAAOM,aAAkB,EAASqM,EAAGza,QAAQoH,cAChMK,EAAOtH,YAET,YAD4E,OAA3Eya,EAAqC,OAA/BD,EAAK9M,EAAQC,OAAOM,aAAkB,EAASuM,EAAG3a,QAAQ0C,SAA2BkY,EAAGhX,KAAK,iFAG/F6D,EAAAX,gBAAmB9E,IACnB9B,KAAA8b,WAAWha,EAAS,EAAG,QAAO,EAE9ByF,EAAAZ,qBAAwB7F,IACzB,IAAAgB,EAIJ,OAHIhB,EAAMiH,YACRjG,EAAU9B,KAAK+b,WAAW,CAAEhU,UAAWjH,EAAMiH,aAEvCjH,EAAMA,OACZ,IAAK,gBACHd,KAAKgc,gBAAgB,CAAEC,YAAY,IACnC,MACF,IAAK,OACCna,GACF9B,KAAKkc,YAAY,CAAEpa,UAASma,YAAY,IAE1C,MACF,IAAK,SACCna,GACF9B,KAAKmc,cAAc,CAAEra,UAASma,YAAY,IAE5C,MACF,IAAK,SACCna,GACF9B,KAAKoc,YAAY,CAAEta,UAASma,YAAY,IAE1C,MACF,IAAK,UACCna,GACF9B,KAAKqc,eAAe,CAAEva,UAASma,YAAY,IAE7C,MACF,IAAK,eACHjc,KAAKsc,oBAAoB,CAAEL,YAAY,IACvC,MACF,IAAK,QACCna,GACF9B,KAAKuc,aAAa,CAAEza,UAASma,YAAY,IAE3C,MACF,IAAK,YACCna,GACF9B,KAAKwc,iBAAiB,CAAE1a,UAASma,YAAY,IAK3D,QAEY1U,EAAOpH,gBACPoH,EAAOV,gBACbU,EAAOrF,YACqE,OAA3E0Y,EAAqC,OAA/BD,EAAKhN,EAAQC,OAAOM,aAAkB,EAASyM,EAAG7a,QAAQ0C,SAA2BoY,EAAGlX,KAAK,gCACrG,OAAQpC,GACqE,OAA3Eua,EAAqC,OAA/BD,EAAKjO,EAAQC,OAAOM,aAAkB,EAAS0N,EAAG9b,QAAQ0C,SAA2BqZ,EAAGva,MAAM,4BAA6BA,EACxI,CACA,CAME,UAAAya,CAAW5Z,GACT,IAAIzB,EAAI4F,EACR,OAAqC,OAA5B5F,EAAKV,KAAK8Z,oBAAyB,EAASpZ,EAAGwX,SAASuE,MAAMC,GAAMA,EAAE3U,YAAc5F,EAAM4F,eAA+C,OAA9BzB,EAAKtG,KAAKka,sBAA2B,EAAS5T,EAAG4R,SAASuE,MAAMC,GAAMA,EAAE3U,YAAc5F,EAAM4F,YACpN,CAME,6BAAM4U,CAAwBxa,GACxB,IAAAzB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAChG,OAAQpb,EAAM4X,UACZ,IAAK,QACH,GAAI/Z,KAAKwd,kBACA,OAAA,KAEH,IAA4B,OAA5B9c,EAAKV,KAAK8Z,oBAAyB,EAASpZ,EAAGsZ,cAAgBha,KAAK8Z,cAAc/P,iBAClF,IACF/J,KAAKwd,mBAAoB,EACnB,MAAAxY,QAAkD,OAA/BsB,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGrD,MAAMuE,YAAY,CAC3FC,gBAAiBkG,EAAQC,OAAOnG,gBAChCC,YAAa1H,KAAK8Z,cAAc/P,oBAE5BkO,EAAU,CACd8B,SAAU,QACV7B,UAAqG,OAAzF1R,EAAyD,OAAnDD,EAAiB,MAAZvB,OAAmB,EAASA,EAAShE,WAAgB,EAASuF,EAAG2R,eAAoB,EAAS1R,EAAGsU,QAAU,GAClId,aAA8I,OAA/HS,EAA+F,OAAzFD,EAAyD,OAAnDD,EAAiB,MAAZvV,OAAmB,EAASA,EAAShE,WAAgB,EAASuZ,EAAGrC,eAAoB,EAASsC,EAAGO,eAAoB,EAASN,EAAGO,eAAgB,EACjLjR,kBAAmJ,OAA/H6Q,EAA+F,OAAzFD,EAAyD,OAAnDD,EAAiB,MAAZ1V,OAAmB,EAASA,EAAShE,WAAgB,EAAS0Z,EAAGxC,eAAoB,EAASyC,EAAGI,eAAoB,EAASH,EAAGlT,cAAgB,MAGjL,OADP1H,KAAKyd,QAAQxF,GACNA,CACR,OAAQ3W,GAEA,OADqE,OAA3Eua,EAAqC,OAA/BD,EAAKjO,EAAQC,OAAOM,aAAkB,EAAS0N,EAAG9b,QAAQ0C,SAA2BqZ,EAAGva,MAAM,8CAA+CA,GAC7I,IACnB,CAAoB,QACRtB,KAAKwd,mBAAoB,CACrC,CAEQ,MACF,IAAK,UACH,GAAIxd,KAAK0d,oBACA,OAAA,KAEH,IAA8B,OAA9Bd,EAAK5c,KAAKka,sBAA2B,EAAS0C,EAAG5C,cAAgBha,KAAKka,gBAAgBnQ,iBACtF,IACF/J,KAAK0d,qBAAsB,EACrB,MAAA1Y,QAAkD,OAA/B6X,EAAKlP,EAAQC,OAAOM,aAAkB,EAAS2O,EAAG5Z,MAAM0E,oBAAoB,CACnGF,gBAAiBkG,EAAQC,OAAOnG,gBAChCC,YAAa1H,KAAKka,gBAAgBnQ,oBAE9BkO,EAAU,CACd8B,SAAU,UACV7B,UAAqG,OAAzF6E,EAAyD,OAAnDD,EAAiB,MAAZ9X,OAAmB,EAASA,EAAShE,WAAgB,EAAS8b,EAAG5E,eAAoB,EAAS6E,EAAGjC,QAAU,GAClId,aAA8I,OAA/HkD,EAA+F,OAAzFD,EAAyD,OAAnDD,EAAiB,MAAZhY,OAAmB,EAASA,EAAShE,WAAgB,EAASgc,EAAG9E,eAAoB,EAAS+E,EAAGlC,eAAoB,EAASmC,EAAGlC,eAAgB,EACjLjR,kBAAmJ,OAA/HsT,EAA+F,OAAzFD,EAAyD,OAAnDD,EAAiB,MAAZnY,OAAmB,EAASA,EAAShE,WAAgB,EAASmc,EAAGjF,eAAoB,EAASkF,EAAGrC,eAAoB,EAASsC,EAAG3V,cAAgB,MAGjL,OADP1H,KAAKyd,QAAQxF,GACNA,CACR,OAAQ3W,GAEA,OADqE,OAA3Eic,EAAqC,OAA/BD,EAAK3P,EAAQC,OAAOM,aAAkB,EAASoP,EAAGxd,QAAQ0C,SAA2B+a,EAAGjc,MAAM,iDAAkDA,GAChJ,IACnB,CAAoB,QACRtB,KAAK0d,qBAAsB,CACvC,EAIW,OAAA,IACX,CAKE,SAAAC,GACE,SAAUhQ,EAAQC,OAAOM,QAAUlO,KAAK8Z,eAAiB9Z,KAAKka,gBAClE,CACE,iBAAMgC,EAAYpa,QAAEA,EAASma,WAAAA,GAAa,IACxC,IAAIvb,EAAI4F,EAAIC,EACR,IAACvG,KAAK2d,YACR,OAEI,MAAAC,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBACzF4D,EAAW9d,KAAK+d,mBAAmBjc,GACrC,IAAAgc,EAAShc,QAAQmG,KAGjB,IACF6V,EAAShc,QAAQmG,MAAA,IAA4B+V,MAAQC,cACrDje,KAAKke,qBAAqBJ,GACrB9d,KAAA4Z,aAAegE,EAAkBjE,YAAc,EAC/C3Z,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAIyK,EAAKC,EAC8C,OAAtDA,GAAOD,EAAMzK,EAAS4M,QAAQE,sBAAwCpC,EAAIvY,KAAKsY,EAAKlZ,KAAK4Z,aAAY,IAEpGqC,SACqC,OAA/Bvb,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGuC,MAAMgF,KAAK,CAAEF,UAAWjG,EAAQiG,YAE7F,OAAQzG,GACqE,OAA3EiF,EAAqC,OAA/BD,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGxG,QAAQ0C,SAA2B+D,EAAGjF,MAAM,yBAA0BA,GAC/HtB,KAAKme,uBAAuBP,EAClC,CACA,CACE,mBAAMzB,EAAcra,QAAEA,EAASma,WAAAA,GAAa,IAC1C,IAAIvb,EAAI4F,EAAIC,EACR,IAACvG,KAAK2d,YACR,OAEI,MAAAC,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBACzF4D,EAAW9d,KAAK+d,mBAAmBjc,GACrC,GAACgc,EAAShc,QAAQmG,KAGlB,IACF6V,EAAShc,QAAQmG,UAAO,EACxBjI,KAAKke,qBAAqBJ,GACrB9d,KAAA4Z,aAAegE,EAAkBjE,YAAc,EAC/C3Z,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAIyK,EAAKC,EAC8C,OAAtDA,GAAOD,EAAMzK,EAAS4M,QAAQE,sBAAwCpC,EAAIvY,KAAKsY,EAAKlZ,KAAK4Z,aAAY,IAEpGqC,SACqC,OAA/Bvb,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGuC,MAAMiF,OAAO,CAAEH,UAAWjG,EAAQiG,YAE/F,OAAQzG,GACqE,OAA3EiF,EAAqC,OAA/BD,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGxG,QAAQ0C,SAA2B+D,EAAGjF,MAAM,2BAA4BA,GACjItB,KAAKme,uBAAuBP,EAClC,CACA,CACE,iBAAMxB,EAAYta,QAAEA,EAASma,WAAAA,GAAa,IACxC,IAAIvb,EAAI4F,EAAIC,EACR,IAACvG,KAAK2d,YACR,OAEI,MAAAG,EAAW9d,KAAK+d,mBAAmBjc,GACzC,SAA4B,IAAxBgc,EAASM,iBAAmD,IAA1BN,EAASO,gBAG3CP,EAAShc,QAAQwc,OAGjB,IACFxc,EAAQwc,QAA0B,IAAIN,MAAQC,cAC9Cje,KAAKke,qBAAqBJ,GACtB7B,SACqC,OAA/Bvb,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGuC,MAAMmF,KAAK,CAAEL,UAAWjG,EAAQiG,YAE7F,OAAQzG,GACPtB,KAAKke,qBAAqBJ,GACkD,OAA3EvX,EAAqC,OAA/BD,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGxG,QAAQ0C,SAA2B+D,EAAGjF,MAAM,yBAA0BA,EACrI,CACA,CACE,kBAAMib,EAAaza,QAAEA,EAASma,WAAAA,GAAa,IACrC,IAAAvb,EAAI4F,EAAIC,EAAIC,EAAI+T,EAChB,GAACva,KAAK2d,YAGN,KACiC,OAA7Bjd,EAAKoB,EAAQiW,kBAAuB,EAASrX,EAAG6d,kBAAoBtC,SACjC,OAA/B1V,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGtD,MAAM6E,MAAM,CACpEC,UAAWjG,EAAQiG,UACnBC,WAA0C,OAA7B1B,EAAKxE,EAAQiW,kBAAuB,EAASzR,EAAGiY,kBAGlE,OAAQjd,GACqE,OAA3EiZ,EAAqC,OAA/B/T,EAAKmH,EAAQC,OAAOM,aAAkB,EAAS1H,EAAG1G,QAAQ0C,SAA2B+X,EAAGjZ,MAAM,0BAA2BA,EACtI,CACA,CACE,oBAAM+a,EAAeva,QAAEA,EAASma,WAAAA,GAAa,IACvC,IAAAvb,EAAI4F,EAAIC,EAAIC,EACZ,IAACxG,KAAK2d,YACR,OAEI,MAAAa,EAAkBxe,KAAK+d,mBAAmBjc,GAC5C,QAA+B,IAA/B0c,EAAgBJ,WAClB,OAEI,MAAAR,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBAC3F,IAGF,GAFApY,EAAQ2c,UAA4B,IAAIT,MAAQC,cAChDje,KAAK0e,cAAc5c,EAAS0c,EAAgBJ,WAAY,SACrB,OAA9B1d,EAAKV,KAAKka,sBAA2B,EAASxZ,EAAGwX,SAAU,CAC9D,MAAMyG,EAAc3e,KAAK4e,gBAAgB9c,EAAS9B,KAAKka,iBAClDla,KAAA8b,WAAWha,EAAS6c,EAAa,UAC9C,CACU1C,SACqC,OAA/B3V,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGrD,MAAMoF,QAAQ,CAAEN,UAAWjG,EAAQiG,YAEhG,OAAQzG,GACqE,OAA3EkF,EAAqC,OAA/BD,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGzG,QAAQ0C,SAA2BgE,EAAGlF,MAAM,2BAA4BA,GACjItB,KAAKme,uBAAuBP,EAClC,CACA,CACE,sBAAMpB,EAAiB1a,QAAEA,EAASma,WAAAA,GAAa,IACzC,IAAAvb,EAAI4F,EAAIC,EAAIC,EACZ,IAACxG,KAAK2d,YACR,OAEI,MAAAC,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBACzFsE,EAAkBxe,KAAK+d,mBAAmBjc,GAC5C,QAAiC,IAAjC0c,EAAgBH,aAGhB,IAGF,GAFAG,EAAgB1c,QAAQ2c,cAAW,EACnCze,KAAK0e,cAAc5c,EAAS0c,EAAgBH,aAAc,WACzB,OAA5B3d,EAAKV,KAAK8Z,oBAAyB,EAASpZ,EAAGwX,SAAU,CAC5D,MAAMyG,EAAc3e,KAAK4e,gBAAgB9c,EAAS9B,KAAK8Z,eAClD9Z,KAAA8b,WAAWha,EAAS6c,EAAa,QAC9C,CACU1C,SACqC,OAA/B3V,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGrD,MAAMqF,UAAU,CAAEP,UAAWjG,EAAQiG,YAElG,OAAQzG,GACqE,OAA3EkF,EAAqC,OAA/BD,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGzG,QAAQ0C,SAA2BgE,EAAGlF,MAAM,6BAA8BA,GACnItB,KAAKme,uBAAuBP,EAClC,CACA,CACE,yBAAMtB,EAAoBL,WAAEA,GAAa,GAAS,CAAA,GAC5C,IAAAvb,EAAI4F,EAAIC,EAAIC,EACZ,IAACxG,KAAK2d,YACR,OAEI,MAAAC,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBAC3F,IACF,MAAM2E,GAA6B,IAAIb,MAAQC,gBACS,OAA5Bvd,EAAKV,KAAK8Z,oBAAyB,EAASpZ,EAAGwX,SAAStJ,QAAQ9M,GAAYA,EAAQmG,SAAU,IACxG6G,SAAShN,IACzB,IAAIoX,EAAKC,EAAKC,EACdtX,EAAQ2c,SAAWI,EACnB,MAAMT,EAA2C,OAA7BlF,EAAMlZ,KAAK8Z,oBAAyB,EAASZ,EAAIhB,SAAS4G,WAAWpC,GAAMA,EAAE3U,YAAcjG,EAAQiG,YAIvH,QAHmB,IAAfqW,IAA4C,IAAnBA,IACG,OAA7BjF,EAAMnZ,KAAK8Z,gBAAkCX,EAAIjB,SAAS6G,OAAOX,EAAY,IAE5C,OAA/BhF,EAAMpZ,KAAKka,sBAA2B,EAASd,EAAIlB,SAAU,CAChE,MAAMyG,EAAc3e,KAAK4e,gBAAgB9c,EAAS9B,KAAKka,iBACvDla,KAAKka,gBAAgBhC,SAAS6G,OAAOJ,EAAa,EAAG7c,EAC/D,KAEW9B,KAAAoa,oBAAoBtL,SAASL,IAC5B,IAAAyK,EAAKC,EAAKC,EAAK4F,EACfhf,KAAK8Z,gBAC4C,OAAlDX,GAAOD,EAAMzK,EAAS4M,QAAQC,kBAAoCnC,EAAIvY,KAAKsY,EAAKlZ,KAAK8Z,cAAe,UAEnG9Z,KAAKka,kBAC4C,OAAlD8E,GAAO5F,EAAM3K,EAAS4M,QAAQC,kBAAoC0D,EAAIpe,KAAKwY,EAAKpZ,KAAKka,gBAAiB,WACjH,IAEU+B,SACqC,OAA/B3V,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGrD,MAAMsF,cAEnE,OAAQjH,GACqE,OAA3EkF,EAAqC,OAA/BD,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGzG,QAAQ0C,SAA2BgE,EAAGlF,MAAM,iCAAkCA,GACvItB,KAAKme,uBAAuBP,EAClC,CACA,CACE,wBAAMqB,EAAmBhD,WAAEA,GAAa,GAAS,CAAA,GAC3C,IAAAvb,EAAI4F,EAAIC,EAAIC,EACZ,IAACxG,KAAK2d,YACR,OAEI,MAAAC,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBAC3F,IACF,MAAM2E,GAA6B,IAAIb,MAAQC,cAClB,OAA5Bvd,EAAKV,KAAK8Z,gBAAkCpZ,EAAGwX,SAASpJ,SAAShN,IAC5D,IAAAoX,EAEJ,GADApX,EAAQ2c,SAAWI,EACiB,OAA/B3F,EAAMlZ,KAAKka,sBAA2B,EAAShB,EAAIhB,SAAU,CAChE,MAAMyG,EAAc3e,KAAK4e,gBAAgB9c,EAAS9B,KAAKka,iBACvDla,KAAKka,gBAAgBhC,SAAS6G,OAAOJ,EAAa,EAAG7c,EAC/D,KAEM9B,KAAK8Z,cAAgB,CACnB5B,SAAU,GACV8B,aAAa,EACbjQ,iBAAkB,KAClBgQ,SAAU,SAEZ/Z,KAAK4Z,aAAe,EACf5Z,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAIyK,EAAKC,EAAKC,EAAK4F,EAAKzE,EAAIC,EACxBxa,KAAK8Z,gBAC4C,OAAlDX,GAAOD,EAAMzK,EAAS4M,QAAQC,kBAAoCnC,EAAIvY,KAAKsY,EAAKlZ,KAAK8Z,cAAe,UAEnG9Z,KAAKka,kBAC4C,OAAlD8E,GAAO5F,EAAM3K,EAAS4M,QAAQC,kBAAoC0D,EAAIpe,KAAKwY,EAAKpZ,KAAKka,gBAAiB,YAEpD,OAApDM,GAAMD,EAAK9L,EAAS4M,QAAQE,sBAAwCf,EAAG5Z,KAAK2Z,EAAIva,KAAK4Z,aAAY,IAEhGqC,SACqC,OAA/B3V,EAAKqH,EAAQC,OAAOM,aAAkB,EAAS5H,EAAGrD,MAAMuF,aAEnE,OAAQlH,GACqE,OAA3EkF,EAAqC,OAA/BD,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGzG,QAAQ0C,SAA2BgE,EAAGlF,MAAM,gCAAiCA,GACtItB,KAAKme,uBAAuBP,EAClC,CACA,CACE,qBAAM5B,EAAgBC,WAAEA,GAAa,GAAS,CAAA,GACxC,IAAAvb,EAAI4F,EAAIC,EAAIC,EAAI+T,EAChB,IAACva,KAAK2d,YACR,OAEI,MAAAC,EAAoB5d,KAAK6d,qBAAqB7d,KAAK2Z,YAAa3Z,KAAK8Z,cAAe9Z,KAAKka,iBAC3F,IACF,MAAM2E,GAA6B,IAAIb,MAAQC,cAClB,OAA5Bvd,EAAKV,KAAK8Z,gBAAkCpZ,EAAGwX,SAASpJ,SAAShN,IAC3DA,EAAQmG,OACXnG,EAAQmG,KAAO4W,EACzB,IAEqC,OAA9BvY,EAAKtG,KAAKka,kBAAoC5T,EAAG4R,SAASpJ,SAAShN,IAC7DA,EAAQmG,OACXnG,EAAQmG,KAAO4W,EACzB,IAEM7e,KAAK4Z,aAAe,EACf5Z,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAIyK,EAAKC,EAAKC,EAAK4F,EAAKE,EAAK1E,EACzBxa,KAAK8Z,gBAC4C,OAAlDX,GAAOD,EAAMzK,EAAS4M,QAAQC,kBAAoCnC,EAAIvY,KAAKsY,EAAKlZ,KAAK8Z,cAAe,UAEnG9Z,KAAKka,kBAC4C,OAAlD8E,GAAO5F,EAAM3K,EAAS4M,QAAQC,kBAAoC0D,EAAIpe,KAAKwY,EAAKpZ,KAAKka,gBAAiB,YAEnD,OAArDM,GAAM0E,EAAMzQ,EAAS4M,QAAQE,sBAAwCf,EAAG5Z,KAAKse,EAAKlf,KAAK4Z,aAAY,IAElGqC,SACqC,OAA/B1V,EAAKoH,EAAQC,OAAOM,aAAkB,EAAS3H,EAAGtD,MAAMkF,UAEnE,OAAQ7G,GACqE,OAA3EiZ,EAAqC,OAA/B/T,EAAKmH,EAAQC,OAAOM,aAAkB,EAAS1H,EAAG1G,QAAQ0C,SAA2B+X,EAAGjZ,MAAM,8BAA+BA,GACpItB,KAAKme,uBAAuBP,EAClC,CACA,CAOE,eAAAgB,CAAgBO,EAAYlH,GAC1B,MAAMC,EAAWD,EAAQC,SACzB,IAAA,IAASvN,EAAI,EAAGA,EAAIuN,EAASxN,OAAQC,IAAK,CAClC,MAAA7I,EAAUoW,EAASvN,GACzB,GAAI7I,EAAQsd,SAAWD,EAAWC,SAAWtd,EAAQsd,QAAUD,EAAWC,QACjE,OAAAzU,CAEf,CACI,OAAOuN,EAASxN,MACpB,CACE,OAAA+S,CAAQxF,GACN,OAAQA,EAAQ8B,UACd,IAAK,QACC/Z,KAAK8Z,gBACF9Z,KAAA8Z,cAAcE,YAAc/B,EAAQ+B,YACpCha,KAAA8Z,cAAc/P,iBAAmBkO,EAAQlO,iBACzC/J,KAAA8Z,cAAc5B,SAAW,IAAIlY,KAAK8Z,cAAc5B,YAAaD,EAAQC,WAE5E,MACF,IAAK,UACClY,KAAKka,kBACFla,KAAAka,gBAAgBF,YAAc/B,EAAQ+B,YACtCha,KAAAka,gBAAgBnQ,iBAAmBkO,EAAQlO,iBAC3C/J,KAAAka,gBAAgBhC,SAAW,IAAIlY,KAAKka,gBAAgBhC,YAAaD,EAAQC,WAIpFlY,KAAKoa,oBAAoBtL,SACtBL,IACC,IAAI/N,EAAI4F,EACR,OAAoD,OAA5CA,GAAM5F,EAAK+N,EAAS4M,QAAQgE,kBAAuB,EAAS/Y,EAAG1F,KAAKF,EAAIuX,EAASA,EAAQ8B,SAAQ,GAGjH,CACE,UAAA+B,CAAWha,EAASwd,EAAOvF,GACzB,IAAIrZ,EAAI4F,EACR,OAAQyT,GACN,IAAK,QACEjY,EAAQmG,WAA8B,IAAtBjI,KAAK4Z,eACnB5Z,KAAA4Z,aAAe5Z,KAAK4Z,aAAe,GAEb,OAA5BlZ,EAAKV,KAAK8Z,gBAAkCpZ,EAAGwX,SAAS6G,OAAOO,EAAO,EAAGxd,GAC1E,MACF,IAAK,UAC4B,OAA9BwE,EAAKtG,KAAKka,kBAAoC5T,EAAG4R,SAAS6G,OAAOO,EAAO,EAAGxd,GAG3E9B,KAAAoa,oBAAoBtL,SAASL,IAC5B,IAAAyK,EAAKC,EAAK5S,EAAIC,EAC8B,OAA/C2S,GAAOD,EAAMzK,EAAS4M,QAAQkE,eAAiCpG,EAAIvY,KAAKsY,EAAKpX,EAASwd,EAAOvF,GACzC,OAApDvT,GAAMD,EAAKkI,EAAS4M,QAAQE,sBAAwC/U,EAAG5F,KAAK2F,EAAIvG,KAAK4Z,cAAgB,EAAC,GAE7G,CACE,aAAA8E,CAAc5c,EAASwd,EAAOvF,GAC5B,IAAIrZ,EAAI4F,EACR,OAAQyT,GACN,IAAK,QACEjY,EAAQmG,WAA8B,IAAtBjI,KAAK4Z,eACnB5Z,KAAA4Z,aAAe5Z,KAAK4Z,aAAe,GAEb,OAA5BlZ,EAAKV,KAAK8Z,gBAAkCpZ,EAAGwX,SAAS6G,OAAOO,EAAO,GACvE,MACF,IAAK,UAC4B,OAA9BhZ,EAAKtG,KAAKka,kBAAoC5T,EAAG4R,SAAS6G,OAAOO,EAAO,GAGxEtf,KAAAoa,oBAAoBtL,SAASL,IAC5B,IAAAyK,EAAKC,EAAK5S,EAAIC,EACiC,OAAlD2S,GAAOD,EAAMzK,EAAS4M,QAAQmE,kBAAoCrG,EAAIvY,KAAKsY,EAAKpX,EAASwd,EAAOvF,GAC5C,OAApDvT,GAAMD,EAAKkI,EAAS4M,QAAQE,sBAAwC/U,EAAG5F,KAAK2F,EAAIvG,KAAK4Z,cAAgB,EAAC,GAE7G,CAKE,oBAAAsE,CAAqBJ,QACW,IAA1BA,EAASO,cACXre,KAAKyf,cAAc3B,EAAShc,QAASgc,EAASO,aAAc,gBAElC,IAAxBP,EAASM,YACXpe,KAAKyf,cAAc3B,EAAShc,QAASgc,EAASM,WAAY,QAEhE,CACE,sBAAAD,CAAuBL,GACrB,MAAMnE,YAAEA,EAAA1W,MAAaA,EAAOoF,QAAAA,GAAYyV,EACxC9d,KAAK8Z,cAAgB7W,EACrBjD,KAAKka,gBAAkB7R,EAClBrI,KAAAoa,oBAAoBtL,SAASL,IAChC,IAAI/N,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EACyB,OAAhDlU,GAAM5F,EAAK+N,EAAS4M,QAAQC,kBAAoChV,EAAG1F,KAAKF,EAAIuC,EAAO,SACnC,OAAhDuD,GAAMD,EAAKkI,EAAS4M,QAAQC,kBAAoC9U,EAAG5F,KAAK2F,EAAI8B,EAAS,WACjC,OAApDmS,GAAMD,EAAK9L,EAAS4M,QAAQE,sBAAwCf,EAAG5Z,KAAK2Z,EAAIZ,EAAW,GAElG,CAOE,aAAA8F,CAAc3d,EAASwd,EAAOvF,GAC5B,OAAQA,GACN,IAAK,aACuB,IAAtB/Z,KAAK4Z,cAA4B9X,EAAQ2c,WACvC3c,EAAQmG,OACVjI,KAAK4Z,aAAe7V,KAAKkK,IAAI,EAAGjO,KAAK4Z,aAAe,IAEjD9X,EAAQmG,OACNjI,KAAA4Z,aAAe5Z,KAAK4Z,aAAe,IAGxC5Z,KAAK8Z,gBACF9Z,KAAA8Z,cAAc5B,SAASoH,GAASxd,GAEvC,MACF,IAAK,UACC9B,KAAKka,kBACFla,KAAAka,gBAAgBhC,SAASoH,GAASxd,GAIxC9B,KAAAoa,oBAAoBtL,SAASL,IAC5B,IAAA/N,EAAI4F,EAAIC,EAAIC,EACiC,OAAhDF,GAAM5F,EAAK+N,EAAS4M,QAAQqE,kBAAoCpZ,EAAG1F,KAAKF,EAAIoB,EAASwd,EAAOvF,GACxC,OAApDvT,GAAMD,EAAKkI,EAAS4M,QAAQE,sBAAwC/U,EAAG5F,KAAK2F,EAAIvG,KAAK4Z,cAAgB,EAAC,GAE7G,CAME,oBAAAiE,CAAqBlE,EAAaE,EAAcI,GACvC,MAAA,CACLN,cACA1W,MAAO+U,GAAiB6B,GACxBxR,QAAS2P,GAAiBiC,GAEhC,CAME,kBAAA8D,CAAmBjc,GACjB,MAAMuc,EAAere,KAAKka,gBAAkBla,KAAKka,gBAAgBhC,SAAS4G,WAAWpC,GAAMA,EAAE3U,YAAcjG,EAAQiG,iBAAa,EAC1HqW,EAAape,KAAK8Z,cAAgB9Z,KAAK8Z,cAAc5B,SAAS4G,WAAWpC,GAAMA,EAAE3U,YAAcjG,EAAQiG,iBAAa,EACnH,MAAA,CACLjG,QAAS2V,GAAY3V,GACrBuc,eACAD,aAEN,GAEAjf,EAAcua,GAAwB,YACtC,IAAIiG,GAAwBjG,GAC5B,MAAMkG,WAAwBnP,YAC5B,WAAA7Q,CAAY0Y,GACHjU,QAEPlF,EAAca,KAAM,UACpBb,EAAca,KAAM,WAAY,MAChCb,EAAca,KAAM,YAAa,SACjCb,EAAca,KAAM,aAAa,GAEjCb,EAAca,KAAM,iBACpBb,EAAca,KAAM,oBACpBb,EAAca,KAAM,gBACpBb,EAAca,KAAM,UACpBb,EAAca,KAAM,SACpBb,EAAca,KAAM,oBACpBb,EAAca,KAAM,qBAEpBb,EAAca,KAAM,oBAAqB,MACzCb,EAAca,KAAM,gBAAgB,GAEpCb,EAAca,KAAM,cAAe,MACnCb,EAAca,KAAM,kBAAmB,MACvCb,EAAca,KAAM,oBAAqB,MACzCA,KAAKuY,OAASD,EACdtY,KAAK6f,UAAY,iBAAkB9P,OACnC,MAAMyB,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACnCkP,EAAmBlO,SAASC,cAAc,OAChDiO,EAAiBxJ,UAAY,oBACxBtW,KAAA+f,cAAgBnO,SAASC,cAAc,KACvC7R,KAAA+f,cAAcjO,aAAa,OAAQ,SACnC9R,KAAAggB,iBAAmBpO,SAASC,cAAc,KAC1C7R,KAAAggB,iBAAiBlO,aAAa,OAAQ,YACtC9R,KAAAigB,kBAAoBrO,SAASC,cAAc,OAChD7R,KAAKigB,kBAAkB3J,UAAY,oBAClBwJ,EAAA5N,YAAYlS,KAAK+f,eACjBD,EAAA5N,YAAYlS,KAAKggB,kBACjBF,EAAA5N,YAAYlS,KAAKigB,mBAC7BjgB,KAAAkgB,aAAetO,SAASC,cAAc,KACtC7R,KAAAkgB,aAAapO,aAAa,OAAQ,QAClC9R,KAAAmgB,iBAAmBvO,SAASC,cAAc,OAC/C7R,KAAKmgB,iBAAiB7J,UAAY,mBAC7BtW,KAAA+R,OAASH,SAASC,cAAc,SACrC7R,KAAKogB,iBACLpgB,KAAKqgB,MAAQ,IAAIhI,GAA0BrY,KAAKuY,QAChDvY,KAAKqgB,MAAM3H,WAAW1Y,KAAKsgB,mBACpB9O,EAAA+O,OAAOvgB,KAAK+R,OAAQ/R,KAAKmgB,iBAAkBL,EAAkB9f,KAAKkgB,aAAclgB,KAAKqgB,OACtF,MAAAG,EAAqBnQ,IACzBA,EAAEgC,kBACFhC,EAAE+B,gBAAgB,EAEfpS,KAAAqgB,MAAM/P,iBAAiB,YAAakQ,GACpCxgB,KAAAqgB,MAAM/P,iBAAiB,cAAekQ,GACtCxgB,KAAAqgB,MAAM/P,iBAAiB,QAASkQ,GAChCxgB,KAAAsQ,iBAAiB,SAAUD,IAC1BrQ,KAAKqgB,MAAMI,SAASpQ,EAAEoF,SAAWpF,EAAEqQ,eAAelb,SAASxF,KAAKqgB,SAGhErgB,KAAK2gB,WAAY3gB,KAAK4gB,aAAiBvQ,EAAEoF,kBAAkBjC,GAAiBxT,KAAK6gB,cAC9E7gB,KAAA4gB,YAAY5gB,KAAK2gB,SAC9B,IAEI3gB,KAAK8gB,sBACL9gB,KAAK+gB,yBACT,CACE,mBAAAD,GACO9gB,KAAK6f,YACH7f,KAAAsQ,iBAAiB,cAAc,KAClCtQ,KAAK6gB,cAAe,EACpB7gB,KAAKghB,WAAW,IAElBhhB,KAAKsQ,iBAAiB,cAAc,IAAMtQ,KAAKihB,cAErD,CACE,uBAAAF,GACE,IAAIrgB,EAAI4F,EAAIC,EACZ,MAAMiS,EAAuG,OAA/FjS,EAAmE,OAA7DD,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+X,WAAgB,EAASnS,EAAGqC,WAAgB,EAASpC,EAAGiS,KAChI,KAAc,MAARA,OAAe,EAASA,EAAK0I,SACjC,OAEF,MAAMC,EAAY3I,EAAK2I,UAClBnhB,KAAAsQ,iBACH,cACA,KACOtQ,KAAAohB,kBAAoBrR,OAAOsR,YAAW,KACzCrhB,KAAK6gB,cAAe,EACpB7gB,KAAKghB,YACDhhB,KAAK2gB,UAAY3gB,KAAKshB,kBACnBthB,KAAAshB,gBAAgBthB,KAAK2gB,UACtBY,UAAUC,SACZD,UAAUC,SAAsB,MAAbL,OAAoB,EAASA,EAAUM,oBAAsB,KAGpFJ,YAAW,KACTrhB,KAAKihB,YACLjhB,KAAK6gB,cAAe,CAAA,IACL,MAAbM,OAAoB,EAASA,EAAUO,kBAAoB,IAAG,GACjE,IAAG,GAER,CAAEC,SAAS,IAER3hB,KAAAsQ,iBAAiB,YAAY,KAC5BtQ,KAAKohB,oBACArR,OAAA6R,aAAa5hB,KAAKohB,mBACzBphB,KAAKohB,kBAAoB,KACjC,GAEA,CACE,cAAAS,CAAeC,GACb9hB,KAAKshB,gBAAkBQ,CAC3B,CAEE,eAAAxB,GACE,IAAI5f,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EACtD,MAAA/D,EAA8I,OAAjIvS,EAAqG,OAA/FD,EAAmE,OAA7DD,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+X,WAAgB,EAASnS,EAAGqC,WAAgB,EAASpC,EAAGiS,WAAgB,EAAShS,EAAGmC,KACvK,IAAI7I,EAAU,GACR,MAAAiiB,EAAmC,YAAnB/hB,KAAKgiB,UAmCpB,OAlCFD,GACHjiB,EAAQ6O,KAAK,CACX7K,IAA6B,OAAvByW,EAAKva,KAAK2gB,eAAoB,EAASpG,EAAGtS,MAAQ,SAAW,OACnEyH,KAAM,CACJgE,KAA8B,OAAvB8G,EAAKxa,KAAK2gB,eAAoB,EAASnG,EAAGvS,MAAgE,OAAvDwS,EAAkB,MAAb1B,OAAoB,EAASA,EAAU7Q,aAAkB,EAASuS,EAAG/G,IAA4D,OAArDgH,EAAkB,MAAb3B,OAAoB,EAASA,EAAU9Q,WAAgB,EAASyS,EAAGhH,IACnND,OAAgC,OAAvBkH,EAAK3a,KAAK2gB,eAAoB,EAAShG,EAAG1S,MAAgE,OAAvD2S,EAAkB,MAAb7B,OAAoB,EAASA,EAAU7Q,aAAkB,EAAS0S,EAAGnH,OAA+D,OAArDmI,EAAkB,MAAb7C,OAAoB,EAASA,EAAU9Q,WAAgB,EAAS2T,EAAGnI,QAAU,OAEpOnB,QAAS,KACHtS,KAAK2gB,WACH3gB,KAAK2gB,SAAS1Y,KAChB0X,GAAsB/R,OAAOuO,cAAc,CAAEra,QAAS9B,KAAK2gB,WAE3DhB,GAAsB/R,OAAOsO,YAAY,CAAEpa,QAAS9B,KAAK2gB,WAEvE,IAII7gB,EAAQ6O,KAAK,CACX7K,GAAIie,EAAgB,YAAc,UAClCrS,KAAM,CACJgE,IAAKqO,EAA2E,OAA1DlG,EAAkB,MAAb9C,OAAoB,EAASA,EAAUzQ,gBAAqB,EAASuT,EAAGnI,IAA+D,OAAxDkJ,EAAkB,MAAb7D,OAAoB,EAASA,EAAU1Q,cAAmB,EAASuU,EAAGlJ,IACrLD,MAAOsO,EAA2E,OAA1DlF,EAAkB,MAAb9D,OAAoB,EAASA,EAAUzQ,gBAAqB,EAASuU,EAAGpJ,OAAkE,OAAxDqJ,EAAkB,MAAb/D,OAAoB,EAASA,EAAU1Q,cAAmB,EAASyU,EAAGrJ,QAAU,OAEtMnB,QAAS,KACHtS,KAAK2gB,WACHoB,EACFpC,GAAsB/R,OAAO4O,iBAAiB,CAAE1a,QAAS9B,KAAK2gB,WAE9DhB,GAAsB/R,OAAOyO,eAAe,CAAEva,QAAS9B,KAAK2gB,WAExE,IAGW7gB,CACX,CAEE,SAAAkhB,GACE,IAAItgB,EAAI4F,EAAIC,EACZ,MAAMiS,EAAuG,OAA/FjS,EAAmE,OAA7DD,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+X,WAAgB,EAASnS,EAAGqC,WAAgB,EAASpC,EAAGiS,KAC5HA,GAAQA,EAAK0I,UACflhB,KAAKqgB,MAAM3H,WAAW1Y,KAAKsgB,mBACtBtgB,KAAAqgB,MAAMlM,MAAM8N,QAAU,QAC3BjiB,KAAKqgB,MAAM/G,OACNtZ,KAAAkgB,aAAa/L,MAAMY,QAAU,IAExC,CACE,SAAAkM,GACE,IAAIvgB,EAAI4F,EAAIC,EACZ,MAAMiS,EAAuG,OAA/FjS,EAAmE,OAA7DD,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+X,WAAgB,EAASnS,EAAGqC,WAAgB,EAASpC,EAAGiS,KAC5HA,GAAQA,EAAK0I,UACflhB,KAAKqgB,MAAM5G,OACNzZ,KAAAqgB,MAAMlM,MAAM8N,QAAU,OACtBjiB,KAAAkgB,aAAa/L,MAAMY,QAAU,IAExC,CACE,UAAAmN,GACM,IAAAxhB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAC5C,MAAMuG,EAAyE,OAA7D7b,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+X,WAAgB,EAASnS,EAAGqC,KAC3F,MAAA,6KAM2B,MAAZwZ,OAAmB,EAASA,EAASC,UAAY,+RASlC,MAAZD,OAAmB,EAASA,EAAS9Q,kBAAoB,uWAW3C,MAAZ8Q,OAAmB,EAASA,EAASpP,uBAAyB,kFAIpD,MAAZoP,OAAmB,EAASA,EAASnP,wBAA0B,ySAMjD,MAAZmP,OAAmB,EAASA,EAAS9Q,kBAAoB,8MAI/C,MAAZ8Q,OAAmB,EAASA,EAAS9Q,kBAAoB,sSAc7C,MAAZ8Q,OAAmB,EAASA,EAASE,uBAAyB,wnBA6Bd,OAApD9b,EAAiB,MAAZ4b,OAAmB,EAASA,EAAS9L,YAAiB,EAAS9P,EAAG+b,SAAW,mCAChC,OAApD9b,EAAiB,MAAZ2b,OAAmB,EAASA,EAAS9L,YAAiB,EAAS7P,EAAG+b,OAAS,4BAChC,OAApDhI,EAAiB,MAAZ4H,OAAmB,EAASA,EAAS9L,YAAiB,EAASkE,EAAG9G,QAAU,qGAKpB,OAAvD+G,EAAiB,MAAZ2H,OAAmB,EAASA,EAASK,eAAoB,EAAShI,EAAG8H,SAAW,mCAChC,OAAvD7H,EAAiB,MAAZ0H,OAAmB,EAASA,EAASK,eAAoB,EAAS/H,EAAG8H,OAAS,4BAChC,OAAvD7H,EAAiB,MAAZyH,OAAmB,EAASA,EAASK,eAAoB,EAAS9H,EAAGjH,QAAU,oEAI3B,OAAnDkH,EAAiB,MAAZwH,OAAmB,EAASA,EAASM,WAAgB,EAAS9H,EAAG2H,SAAW,mCAChC,OAAnD1H,EAAiB,MAAZuH,OAAmB,EAASA,EAASM,WAAgB,EAAS7H,EAAG2H,OAAS,4BAChC,OAAnD3G,EAAiB,MAAZuG,OAAmB,EAASA,EAASM,WAAgB,EAAS7G,EAAGnI,QAAU,6eAwBnG,CACE,cAAA2M,GACOpgB,KAAA+R,OAAOC,YAAchS,KAAKkiB,YACnC,CAEE,iBAAA3N,GACE,IAAI7T,EAAI4F,EACF,MAAAoc,EAAc1iB,KAAKoV,aAAa,WAChCuN,EAAe3iB,KAAKoV,aAAa,aAIvC,GAHIuN,IACF3iB,KAAKgiB,UAAYW,GAEfD,EACE,IACG1iB,KAAA2gB,SAAW3e,KAAKyE,MAAMic,GAC3B1iB,KAAK4iB,gBACN,OAAQC,GACqE,OAA3Evc,EAAqC,OAA/B5F,EAAKiN,EAAQC,OAAOM,aAAkB,EAASxN,EAAGZ,QAAQ0C,SAA2B8D,EAAGhF,MAAM,6CAA8CuhB,EAC3J,CAEA,CAEE,UAAAC,CAAWhhB,EAASiY,GAClB/Z,KAAK2gB,SAAW7e,EAChB9B,KAAKgiB,UAAYjI,EACjB/Z,KAAK4iB,gBACT,CACE,cAAAG,CAAejB,GACb9hB,KAAK4gB,YAAckB,CACvB,CACE,oBAAAkB,CAAqBlB,GACnB9hB,KAAKijB,kBAAoBnB,CAC7B,CACE,kBAAAoB,CAAmBpB,GACjB9hB,KAAKshB,gBAAkBQ,CAC3B,CAEE,cAAAc,GACE,IAAIliB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EACpB,IAACxa,KAAK2gB,SAGR,OAFA3gB,KAAK+f,cAAc/N,YAAc,QACjChS,KAAKggB,iBAAiBhO,YAAc,IAGjChS,KAAAuZ,UAAU4J,OAAO,UAAWnjB,KAAK2gB,SAAS1Y,MAA2B,YAAnBjI,KAAKgiB,WAC5DhiB,KAAK+f,cAAc/N,YAAchS,KAAK2gB,SAAStK,OAAS,mBACxDrW,KAAKggB,iBAAiBhO,YAAchS,KAAK2gB,SAASyC,SAAWpjB,KAAK2gB,SAAS9b,MAAQ,GACnF7E,KAAKkgB,aAAalO,YAznCtB,SAAwBlQ,GAClB,IAACA,EAAQsd,QAAgB,MAAA,MACvB,MAAAiE,MAA0BrF,KAC1BsF,EAAc,IAAItF,KAAKlc,EAAQsd,SAC/BmE,EAAgBxf,KAAKyf,OAAOH,EAAII,UAAYH,EAAYG,WAAa,KAC3E,OAAIF,EAAgB,GAAW,GAAGA,KAC9BA,EAAgB,KAAa,GAAGxf,KAAKyf,MAAMD,EAAgB,OAC3DA,EAAgB,MAAc,GAAGxf,KAAKyf,MAAMD,EAAgB,SAC5DA,EAAgB,OAAe,GAAGxf,KAAKyf,MAAMD,EAAgB,UAC7DA,EAAgB,QAAgB,GAAGxf,KAAKyf,MAAMD,EAAgB,WAC3D,GAAGxf,KAAKyf,MAAMD,EAAgB,WACvC,CA8mCoCG,CAAe1jB,KAAK2gB,UACpD3gB,KAAKqgB,MAAM3H,WAAW1Y,KAAKsgB,mBACrB,MAAAqD,GAAsC,OAAvBjjB,EAAKV,KAAK2gB,eAAoB,EAASjgB,EAAGiX,UAAY3X,KAAK2gB,SAAShJ,QAAQjN,OAAS,EAC1G1K,KAAKigB,kBAAkB9L,MAAM8N,QAAU0B,EAAa,OAAS,OAC7D,MAAMC,EAA+G,OAA/Fpd,EAAmE,OAA7DD,EAAiC,OAA3BD,EAAKtG,KAAKuY,OAAOtV,YAAiB,EAASqD,EAAGmS,WAAgB,EAASlS,EAAGoC,WAAgB,EAASnC,EAAGmR,QAC3E,OAA5D6C,EAA6B,OAAvBD,EAAKva,KAAK2gB,eAAoB,EAASpG,EAAG5C,UAA4B6C,EAAG1L,SAASvM,IACnF,IAAA2W,EAAKC,EAAKC,EAAK4F,EACb,MAAA6E,EAAe,IAAIpS,EAAc,CACrCwB,KAAM1Q,EAAOuhB,QACbzO,QAAS,YACThE,gBAAiC,MAAhBuS,OAAuB,EAASA,EAAavS,gBAC9D0B,qBAAsC,MAAhB6Q,OAAuB,EAASA,EAAa7Q,qBACnEC,sBAAuC,MAAhB4Q,OAAuB,EAASA,EAAa5Q,sBACpExD,OAAwB,MAAhBoU,OAAuB,EAASA,EAAapU,OACrD0B,aAA8B,MAAhB0S,OAAuB,EAASA,EAAa1S,aAC3DM,OAAwB,MAAhBoS,OAAuB,EAASA,EAAapS,OACrDiB,WAAyE,OAA5DyG,EAAsB,MAAhB0K,OAAuB,EAASA,EAAaG,WAAgB,EAAS7K,EAAIoJ,OAC7FnR,SAAuE,OAA5DgI,EAAsB,MAAhByK,OAAuB,EAASA,EAAaG,WAAgB,EAAS5K,EAAIoJ,KAC3FhR,WAAyE,OAA5D6H,EAAsB,MAAhBwK,OAAuB,EAASA,EAAaG,WAAgB,EAAS3K,EAAI4K,OAC7F1S,UAAwE,OAA5D0N,EAAsB,MAAhB4E,OAAuB,EAASA,EAAaG,WAAgB,EAAS/E,EAAIvL,MAC5FnB,QAAS,KACHtS,KAAK2gB,UAAY3gB,KAAKijB,mBACnBjjB,KAAAijB,kBAAkBjjB,KAAK2gB,SAAUpe,EAClD,IAGWvC,KAAAigB,kBAAkB/N,YAAY2R,EAAY,GAErD,EAEK3Q,eAAeC,IAAI,sBACPD,eAAAE,OAAO,oBAAqBwM,IAE7C,MAAMqE,WAAqCxT,YACzC,WAAA7Q,CAAY0Y,EAAQvD,GACX1Q,QAEPlF,EAAca,KAAM,WACpBA,KAAKkkB,QAAUlkB,KAAK0R,aAAa,CAAEd,KAAM,SACnC,MAAAuD,EAAQvC,SAASC,cAAc,SAC/BsC,EAAAnC,YAAchS,KAAKiS,UAAU8C,GAC9B/U,KAAAkkB,QAAQhS,YAAYiC,GACzB,MAAMgQ,EAAW,IAAIC,GAA2B9L,EAAQ,IAClD+L,EAAY,IAAID,GAA2B9L,EAAQ,KACnDgM,EAAW,IAAIF,GAA2B9L,EAAQ,IACnDtY,KAAAkkB,QAAQhS,YAAYiS,GACpBnkB,KAAAkkB,QAAQhS,YAAYmS,GACpBrkB,KAAAkkB,QAAQhS,YAAYoS,EAC7B,CACE,SAAArS,CAAU8C,GACD,MAAA,iMAQQA,mBAGnB,EAEK7B,eAAeC,IAAI,qCACPD,eAAAE,OAAO,mCAAoC6Q,IAE5D,MAAMG,WAAmC3T,YACvC,WAAA7Q,CAAY0Y,EAAQiM,GACXlgB,QACPlF,EAAca,KAAM,WACpBA,KAAKkkB,QAAUlkB,KAAK0R,aAAa,CAAEd,KAAM,SACnC,MAAAuD,EAAQvC,SAASC,cAAc,SACrCsC,EAAMnC,YAAchS,KAAKiS,UAAUqG,EAAQiM,GACtCvkB,KAAAkkB,QAAQhS,YAAYiC,GACnB,MAAAqQ,EAAe5S,SAASC,cAAc,OAC5C2S,EAAalO,UAAY,gBACpBtW,KAAAkkB,QAAQhS,YAAYsS,EAC7B,CACE,SAAAvS,CAAUqG,EAAQiM,GACZ,IAAA7jB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAChD,MAAMpI,GAA4G,OAAlGlN,EAAiE,OAA3DD,EAA4B,OAAtB5F,EAAK4X,EAAOrV,YAAiB,EAASvC,EAAG+jB,cAAmB,EAASne,EAAGoe,gBAAqB,EAASne,EAAGoe,WAAa,OAC5IC,EAA4B,IAAjBnR,EAAM/I,OAAe,IAAI+I,EAAM,KAAKA,EAAM,KAAKA,EAAM,KAAKA,EAAM,KAAKA,EAAM,KAAKA,EAAM,KAAOA,EACxGoR,EAAIC,SAASF,EAASG,MAAM,EAAG,GAAI,IACnCC,EAAIF,SAASF,EAASG,MAAM,EAAG,GAAI,IACnCE,EAAIH,SAASF,EAASG,MAAM,EAAG,GAAI,IACnCG,EAAmB,QAAQL,MAAMG,MAAMC,UACvCE,EAAmB,QAAQN,MAAMG,MAAMC,UACtC,MAAA,kFAIMV,oIAMqG,OAAlG/J,EAAiE,OAA3DD,EAA4B,OAAtB/T,EAAK8R,EAAOrV,YAAiB,EAASuD,EAAGie,cAAmB,EAASlK,EAAGmK,gBAAqB,EAASlK,EAAG4K,YAAc,oGAI3IF,qBACAC,qBACAD,uFAGqH,OAAlGvK,EAAiE,OAA3DD,EAA4B,OAAtBD,EAAKnC,EAAOrV,YAAiB,EAASwX,EAAGgK,cAAmB,EAAS/J,EAAGgK,gBAAqB,EAAS/J,EAAG0K,WAAa,uDACpC,OAAlGxJ,EAAiE,OAA3DD,EAA4B,OAAtBhB,EAAKtC,EAAOrV,YAAiB,EAAS2X,EAAG6J,cAAmB,EAAS7I,EAAG8I,gBAAqB,EAAS7I,EAAGyJ,kBAAoB,oMAYpK,EAEKpS,eAAeC,IAAI,kCACPD,eAAAE,OAAO,gCAAiCgR,IAEzD,MAAMmB,WAAiC7P,EACrC,WAAA9V,CAAY0Y,GACHjU,QACPlF,EAAca,KAAM,UACpBA,KAAKuY,OAASD,CAClB,CACE,cAAAvC,GACQ,MAAA0C,EAAO7G,SAASC,cAAc,OACpC4G,EAAKnC,UAAY,OACX,MAAAnC,EAAQvC,SAASC,cAAc,SAC/BsC,EAAAnC,YAAchS,KAAKiS,YACzBwG,EAAKvG,YAAYiC,GACjB,IAAA,IAASxJ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAM6Z,EAAe,IAAIP,GAA6BjkB,KAAKuY,OAAQ,GAAK5N,EAAI,IAC5E8N,EAAKvG,YAAYsS,EACvB,CAEW,OADFxkB,KAAAwR,OAAOU,YAAYuG,GACjBA,CACX,CACE,SAAAxG,GACE,IAAIvR,EAAI4F,EACD,MAAA,yYAmBgF,OAAhEA,EAAiC,OAA3B5F,EAAKV,KAAKuY,OAAOtV,YAAiB,EAASvC,EAAG+jB,cAAmB,EAASne,EAAG8b,UAAY,wGAO1H,EAEKlP,eAAeC,IAAI,gCACPD,eAAAE,OAAO,8BAA+BmS,IAEvD,MAAMC,WAAuC/U,YAC3C,WAAA7Q,CAAYuC,GACHkC,QAEPlF,EAAca,KAAM,uBACpBb,EAAca,KAAM,YACpBb,EAAca,KAAM,cAEpBb,EAAca,KAAM,uBACpBA,KAAKylB,oBAAsBtjB,EAAMsjB,oBACjCzlB,KAAK0lB,WAAavjB,EAAMujB,WACxB,MAAMlU,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACnCuD,EAAQvC,SAASC,cAAc,SAGrC,GAFMsC,EAAAnC,YAAchS,KAAKiS,YACzBT,EAAOU,YAAYiC,GACfnU,KAAK0lB,WACAlU,EAAAU,YAAYlS,KAAK0lB,gBACnB,CACC,MAAAvP,EAAYvE,SAASC,cAAc,OACzCsE,EAAUG,UAAY,qBACtBtW,KAAK2lB,oBAAsB,IAAIJ,GAAyBpjB,EAAMgN,OACzDnP,KAAA2lB,oBAAoBhQ,WAAM,GACrBQ,EAAAjE,YAAYlS,KAAK2lB,qBAC3BnU,EAAOU,YAAYiE,EACzB,CACInW,KAAK4lB,SAAW,IAAIC,sBAAsBvgB,IAChCA,EAAAwJ,SAASgX,IACXA,EAAMC,gBACR/lB,KAAKylB,qBACf,GACO,IAEEzlB,KAAA4lB,SAASI,QAAQhmB,KAC1B,CACE,SAAAiS,GACS,MAAA,yKAWX,CACE,oBAAAlB,GACE/Q,KAAK4lB,SAASxlB,YAClB,EAEK8S,eAAeC,IAAI,uCACPD,eAAAE,OAAO,qCAAsCoS,IAE9D,MAAMS,WAAyBxV,YAC7B,WAAA7Q,CAAYuC,GACHkC,QAEPlF,EAAca,KAAM,sBAEpBb,EAAca,KAAM,YAAa,IACjCb,EAAca,KAAM,YAAa,SACjCb,EAAca,KAAM,cAAc,GAClCb,EAAca,KAAM,SAAU,MAC9Bb,EAAca,KAAM,gBAAgB,GAEpCb,EAAca,KAAM,kBAAmB,MACvCb,EAAca,KAAM,wBAAyB,MAC7Cb,EAAca,KAAM,sBAAuB,MAC3Cb,EAAca,KAAM,cAEpBb,EAAca,KAAM,wBACpBb,EAAca,KAAM,oBACpBb,EAAca,KAAM,0BACpBb,EAAca,KAAM,wBACpBb,EAAca,KAAM,sBACpBb,EAAca,KAAM,sBACpBA,KAAKkmB,mBAAqB/jB,EAAMgkB,aAAaC,WAAWpV,IACtDhR,KAAKqmB,cAAc,IAErBrmB,KAAKsmB,WAAankB,EAAMokB,UACxBvmB,KAAKwmB,qBAAuBrkB,EAAMsjB,oBAClCzlB,KAAKymB,gBAAkBtkB,EAAMukB,eAC7B1mB,KAAK2mB,sBAAwBxkB,EAAMykB,qBACnC5mB,KAAK6mB,oBAAsB1kB,EAAM2kB,mBACjC,MAAMtV,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACnCuD,EAAQvC,SAASC,cAAc,SAC/BsC,EAAAnC,YAAchS,KAAKiS,YACzBT,EAAOU,YAAYiC,EACvB,CAEE,YAAI+D,GACF,OAAOlY,KAAK+mB,SAChB,CACE,SAAA9U,GACM,IAAAvR,EACE,MAAA+X,EAAkE,OAA1D/X,EAAKV,KAAKkmB,mBAAmBc,QAAQC,WAAWhkB,YAAiB,EAASvC,EAAG+X,KACpF,MAAA,uFAI0B,MAARA,OAAe,EAASA,EAAKpH,kBAAoBnC,EAAoB,wIAUlG,CACE,KAAAgY,GAEE,IADA,IAAIxmB,EAAI4F,EACyB,OAAzB5F,EAAKV,KAAK6Y,iBAAsB,EAASnY,EAAGymB,YAClDnnB,KAAK6Y,WAAWuO,YAAYpnB,KAAK6Y,WAAWsO,YAExC,MAAAhT,EAAQvC,SAASC,cAAc,SAC/BsC,EAAAnC,YAAchS,KAAKiS,YACC,OAAzB3L,EAAKtG,KAAK6Y,aAA+BvS,EAAG4L,YAAYiC,EAC7D,CACE,UAAAkT,CAAWpP,GACTjY,KAAK+mB,UAAY,IAAI9O,EAAQC,UACxBlY,KAAAsnB,aAAeC,QAAQtP,EAAQ+B,aACpCha,KAAKwnB,OAAS,KACdxnB,KAAKynB,YAAa,EAClBznB,KAAK0nB,QACT,CACE,OAAAjK,CAAQxF,GACNjY,KAAK+mB,UAAY,IAAI/mB,KAAK+mB,aAAc9O,EAAQC,UAC3ClY,KAAAsnB,aAAeC,QAAQtP,EAAQ+B,aACpCha,KAAKwnB,OAAS,KACdxnB,KAAKynB,YAAa,EAClBznB,KAAK0nB,QACT,CACE,UAAA5L,CAAWha,EAASwd,EAAQ,GAC1Btf,KAAK+mB,UAAUhI,OAAOO,EAAO,EAAGxd,GAChC9B,KAAK0nB,QACT,CACE,aAAAhJ,CAAcY,EAAQ,GACftf,KAAA+mB,UAAUhI,OAAOO,EAAO,GAC7Btf,KAAK0nB,QACT,CACE,aAAAjI,CAAc3d,EAASwd,EAAQ,GACxBtf,KAAA+mB,UAAUzH,GAASxd,EACxB9B,KAAK0nB,QACT,CACE,WAAAC,CAAY5N,GACV/Z,KAAKgiB,UAAYjI,EACjB/Z,KAAKwnB,OAAS,KACdxnB,KAAKynB,YAAa,EAClBznB,KAAK0nB,QACT,CACE,UAAAE,CAAWC,GACT7nB,KAAKwnB,OAAS,KACdxnB,KAAKynB,WAAaI,EAClB7nB,KAAK0nB,QACT,CACE,QAAAI,CAASxmB,GACPtB,KAAKwnB,OAASlmB,EACdtB,KAAKynB,YAAa,EAClBznB,KAAK+mB,UAAY,GACjB/mB,KAAK0nB,QACT,CACE,gBAAAK,GACE/nB,KAAK8nB,SAAS,IAAIvmB,MAAM,qBAC5B,CACE,WAAAymB,GACEhoB,KAAKsmB,YACT,CACE,aAAA2B,GACEjoB,KAAKsmB,YACT,CACE,MAAAoB,GACM,IAAAhnB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIC,GAAKC,GAAKC,GAAKC,GAC3OnqB,KAAKknB,QACL,MAAM5O,GAAStY,KAAKkmB,mBAAmBc,QAAQC,WAC/C,GAAIjnB,KAAKwnB,OAAQ,CACf,MAAMlmB,EAA+B,OAAtBZ,EAAK4X,GAAOrV,YAAiB,EAASvC,EAAGY,MAClD8oB,EAAe,IAAInU,EAAiB,CACxCI,MAAO,CACLpD,MAAsD,OAA9C3M,EAAc,MAAThF,OAAgB,EAASA,EAAM+U,YAAiB,EAAS/P,EAAG2M,OAASjT,KAAKwnB,OAAO1lB,QAC9FwP,UAA4F,OAAhF9K,EAAoD,OAA9CD,EAAc,MAATjF,OAAgB,EAASA,EAAM+U,YAAiB,EAAS9P,EAAGwd,WAAgB,EAASvd,EAAGiN,MAC/GhB,WAA6F,OAAhF+H,EAAoD,OAA9CD,EAAc,MAATjZ,OAAgB,EAASA,EAAM+U,YAAiB,EAASkE,EAAGwJ,WAAgB,EAASvJ,EAAG8H,OAChHnR,SAA2F,OAAhFuJ,EAAoD,OAA9CD,EAAc,MAATnZ,OAAgB,EAASA,EAAM+U,YAAiB,EAASoE,EAAGsJ,WAAgB,EAASrJ,EAAG6H,KAC9GhR,WAA6F,OAAhFqJ,EAAoD,OAA9CD,EAAc,MAATrZ,OAAgB,EAASA,EAAM+U,YAAiB,EAASsE,EAAGoJ,WAAgB,EAASnJ,EAAGoJ,QAElHrU,OAAQ,CACNsD,KAAsD,OAA/C2I,EAAc,MAATta,OAAgB,EAASA,EAAMqO,aAAkB,EAASiM,EAAG3I,KACzE5B,gBAAiE,OAA/CwK,EAAc,MAATva,OAAgB,EAASA,EAAMqO,aAAkB,EAASkM,EAAGxK,gBACpF0B,qBAAsE,OAA/C6J,EAAc,MAATtb,OAAgB,EAASA,EAAMqO,aAAkB,EAASiN,EAAG7J,qBACzFC,sBAAuE,OAA/C6J,EAAc,MAATvb,OAAgB,EAASA,EAAMqO,aAAkB,EAASkN,EAAG7J,sBAC1F1B,UAA6F,OAAjFyL,EAAqD,OAA/CD,EAAc,MAATxb,OAAgB,EAASA,EAAMqO,aAAkB,EAASmN,EAAGiH,WAAgB,EAAShH,EAAGtJ,MAChHhB,WAA8F,OAAjFwK,EAAqD,OAA/CD,EAAc,MAAT1b,OAAgB,EAASA,EAAMqO,aAAkB,EAASqN,EAAG+G,WAAgB,EAAS9G,EAAGqF,OACjHnR,SAA4F,OAAjFgM,EAAqD,OAA/CD,EAAc,MAAT5b,OAAgB,EAASA,EAAMqO,aAAkB,EAASuN,EAAG6G,WAAgB,EAAS5G,EAAGoF,KAC/GhR,WAA8F,OAAjF8L,EAAqD,OAA/CD,EAAc,MAAT9b,OAAgB,EAASA,EAAMqO,aAAkB,EAASyN,EAAG2G,WAAgB,EAAS1G,EAAG2G,OACjHxS,OAAwD,OAA/C8L,EAAc,MAAThc,OAAgB,EAASA,EAAMqO,aAAkB,EAAS2N,EAAG9L,OAC3EhC,OAAwD,OAA/C+N,EAAc,MAATjc,OAAgB,EAASA,EAAMqO,aAAkB,EAAS4N,EAAG/N,OAC3E0B,aAA8D,OAA/CgX,EAAc,MAAT5mB,OAAgB,EAASA,EAAMqO,aAAkB,EAASuY,EAAGhX,gBAMrF,OAHAkZ,EAAazU,MAAwC,OAAjCwS,EAAKnoB,KAAKqqB,yBAA8B,EAASlC,EAAGvnB,KAAKZ,KAAM,CAAE+Z,SAAU/Z,KAAKgiB,UAAW1gB,MAAOtB,KAAKwnB,UAC3H4C,EAAa3T,wBAAuB,IAAMzW,KAAKgoB,qBACrB,OAAzBI,EAAKpoB,KAAK6Y,aAA+BuP,EAAGlW,YAAYkY,GAE/D,CACI,GAAIpqB,KAAKynB,WAAY,CACb,MAAA6C,EAAiB,IAAI/E,GAAyBjN,IAGpD,OAFAgS,EAAe3U,MAA0C,OAAnC0S,EAAKroB,KAAKuqB,2BAAgC,EAASlC,EAAGznB,KAAKZ,KAAM,CAAE+Z,SAAU/Z,KAAKgiB,kBAC9E,OAAzBsG,EAAKtoB,KAAK6Y,aAA+ByP,EAAGpW,YAAYoY,GAE/D,CACQ,GAA0B,IAA1BtqB,KAAK+mB,UAAUrc,OAAc,CAC/B,MAAM8f,EAA+B,OAAtBjC,EAAKjQ,GAAOrV,YAAiB,EAASslB,EAAGiC,MAClDC,EAAe,IAAIxU,EAAiB,CACxCI,MAAO,CACLpD,MAAsD,OAA9CuV,EAAc,MAATgC,OAAgB,EAASA,EAAMnU,YAAiB,EAASmS,EAAGvV,OAAS,MAAMjT,KAAKgiB,yBAC7F1Q,UAA4F,OAAhFoX,EAAoD,OAA9CD,EAAc,MAAT+B,OAAgB,EAASA,EAAMnU,YAAiB,EAASoS,EAAG1E,WAAgB,EAAS2E,EAAGjV,MAC/GhB,WAA6F,OAAhFmW,EAAoD,OAA9CD,EAAc,MAAT6B,OAAgB,EAASA,EAAMnU,YAAiB,EAASsS,EAAG5E,WAAgB,EAAS6E,EAAGtG,OAChHnR,SAA2F,OAAhF2X,EAAoD,OAA9CD,EAAc,MAAT2B,OAAgB,EAASA,EAAMnU,YAAiB,EAASwS,EAAG9E,WAAgB,EAAS+E,EAAGvG,KAC9GhR,WAA6F,OAAhFyX,EAAoD,OAA9CD,EAAc,MAATyB,OAAgB,EAASA,EAAMnU,YAAiB,EAAS0S,EAAGhF,WAAgB,EAASiF,EAAGhF,QAElHrU,OAAQ,CACNsD,KAAsD,OAA/CgW,EAAc,MAATuB,OAAgB,EAASA,EAAM7a,aAAkB,EAASsZ,EAAGhW,KACzE5B,gBAAiE,OAA/C6X,EAAc,MAATsB,OAAgB,EAASA,EAAM7a,aAAkB,EAASuZ,EAAG7X,gBACpF0B,qBAAsE,OAA/CoW,EAAc,MAATqB,OAAgB,EAASA,EAAM7a,aAAkB,EAASwZ,EAAGpW,qBACzFC,sBAAuE,OAA/CoW,EAAc,MAAToB,OAAgB,EAASA,EAAM7a,aAAkB,EAASyZ,EAAGpW,sBAC1F1B,UAA6F,OAAjFgY,EAAqD,OAA/CD,EAAc,MAATmB,OAAgB,EAASA,EAAM7a,aAAkB,EAAS0Z,EAAGtF,WAAgB,EAASuF,EAAG7V,MAChHhB,WAA8F,OAAjF+W,EAAqD,OAA/CD,EAAc,MAATiB,OAAgB,EAASA,EAAM7a,aAAkB,EAAS4Z,EAAGxF,WAAgB,EAASyF,EAAGlH,OACjHnR,SAA4F,OAAjFuY,EAAqD,OAA/CD,EAAc,MAATe,OAAgB,EAASA,EAAM7a,aAAkB,EAAS8Z,EAAG1F,WAAgB,EAAS2F,EAAGnH,KAC/GhR,WAA8F,OAAjFqY,EAAqD,OAA/CD,EAAc,MAATa,OAAgB,EAASA,EAAM7a,aAAkB,EAASga,EAAG5F,WAAgB,EAAS6F,EAAG5F,OACjHxS,OAAwD,OAA/CqY,EAAc,MAATW,OAAgB,EAASA,EAAM7a,aAAkB,EAASka,EAAGrY,OAC3EhC,OAAwD,OAA/Csa,EAAc,MAATU,OAAgB,EAASA,EAAM7a,aAAkB,EAASma,EAAGta,OAC3E0B,aAA8D,OAA/C6Y,GAAc,MAATS,OAAgB,EAASA,EAAM7a,aAAkB,EAASoa,GAAG7Y,gBAMrF,OAHAuZ,EAAa9U,MAAyC,OAAlCqU,GAAMhqB,KAAK0qB,yBAA8B,EAASV,GAAIppB,KAAKZ,KAAM,CAAE+Z,SAAU/Z,KAAKgiB,aACtGyI,EAAahU,wBAAuB,IAAMzW,KAAKioB,uBACpB,OAA1BgC,GAAMjqB,KAAK6Y,aAA+BoR,GAAI/X,YAAYuY,GAEjE,CACU,MAAAhS,GAAO7G,SAASC,cAAc,MAuBpC,GAtB2B,OAA1BqY,GAAMlqB,KAAK6Y,aAA+BqR,GAAIhY,YAAYuG,IAC3DzY,KAAK+mB,UAAUjY,SAAQ,CAAChN,EAASwd,KAC/B,GAAItf,KAAK2qB,iBAEP,YADAlS,GAAKvG,YAAYlS,KAAK2qB,iBAAiB,CAAE7oB,UAASwd,WAG9C,MAAA6C,EAAW,IAAIvC,GAAgBtH,IAC5B6J,EAAAW,WAAWhhB,EAAS9B,KAAKgiB,WACzBG,EAAAY,gBAAgB6H,IACnB,IAAA1R,EACI,OAA+B,OAA/BA,EAAMlZ,KAAKymB,sBAA2B,EAASvN,EAAItY,KAAKZ,KAAM4qB,EAAUtL,EAAK,IAE9E6C,EAAAa,sBAAqB,CAAC4H,EAAUroB,KACnC,IAAA2W,EACI,OAAqC,OAArCA,EAAMlZ,KAAK2mB,4BAAiC,EAASzN,EAAItY,KAAKZ,KAAM4qB,EAAUroB,EAAQ+c,EAAK,IAE5F6C,EAAAe,oBAAoB0H,IACvB,IAAA1R,EACI,OAAmC,OAAnCA,EAAMlZ,KAAK6mB,0BAA+B,EAAS3N,EAAItY,KAAKZ,KAAM4qB,EAAUtL,EAAK,IAE3F7G,GAAKvG,YAAYiQ,EAAQ,IAEvBniB,KAAKsnB,aAAc,CACf,MAAAuD,EAAiB,IAAIrF,GAA+B,CACxDrW,MAAOmJ,GACPoN,WAAmD,OAAtCyE,GAAMnqB,KAAK8qB,6BAAkC,EAASX,GAAIvpB,KAAKZ,KAAM,CAAE+Z,SAAU/Z,KAAKgiB,YACnGyD,oBAAqB,KACf,IAAAvM,EACI,OAAoC,OAApCA,EAAMlZ,KAAKwmB,2BAAgC,EAAStN,EAAItY,KAAKZ,KAAMA,KAAKgiB,UAAS,IAG7FvJ,GAAKvG,YAAY2Y,EACvB,CACA,CAEE,sBAAAE,CAAuBC,GACrBhrB,KAAKuqB,qBAAuBS,EAC5BhrB,KAAK0nB,QACT,CACE,oBAAAuD,CAAqBD,GACnBhrB,KAAK0qB,mBAAqBM,EAC1BhrB,KAAK0nB,QACT,CACE,oBAAAwD,CAAqBF,GACnBhrB,KAAKqqB,mBAAqBW,EAC1BhrB,KAAK0nB,QACT,CACE,kBAAAyD,CAAmBH,GACjBhrB,KAAK2qB,iBAAmBK,EACxBhrB,KAAK0nB,QACT,CACE,wBAAA0D,CAAyBJ,GACvBhrB,KAAK8qB,uBAAyBE,EAC9BhrB,KAAK0nB,QACT,CACE,YAAArB,GACErmB,KAAK0nB,QACT,CAEE,oBAAA3W,GACE/Q,KAAKkmB,mBAAmBmF,aAC5B,EAEKnY,eAAeC,IAAI,uBACPD,eAAAE,OAAO,qBAAsB6S,IAE9C,MAAMqF,WAAmC7a,YACvC,WAAA7Q,CAAYuC,GACHkC,QAEPlF,EAAca,KAAM,WACpBb,EAAca,KAAM,eAEpBb,EAAca,KAAM,YACpBb,EAAca,KAAM,aACpBb,EAAca,KAAM,UACpBb,EAAca,KAAM,kBACpBb,EAAca,KAAM,UAEpBb,EAAca,KAAM,iBACpBA,KAAKurB,QAAUppB,EAAMqpB,OACrBxrB,KAAKyrB,YAActpB,EAAMupB,WACzB1rB,KAAK2rB,cAAgBxpB,EAAMgkB,aAC3B,MAAM3U,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA+R,OAASH,SAASC,cAAc,SAChC7R,KAAA4rB,SAAWha,SAASC,cAAc,OACvC7R,KAAK4rB,SAAStV,UAAY,YACrBtW,KAAA6rB,UAAY,IAAIrY,EAAYxT,KAAKurB,QAAQ7b,KAAKgE,KAAOL,EAAgBpQ,OACrEjD,KAAA6rB,UAAU/Z,aAAa,OAAQ,MAC/B9R,KAAAoW,OAASxE,SAASC,cAAc,KAChC7R,KAAAoW,OAAOpE,YAAchS,KAAKurB,QAAQtY,KACjC,MAAA6Y,EAASla,SAASC,cAAc,OACtCia,EAAOxV,UAAY,SACnBtW,KAAK+rB,eAAiB,IAAIvY,EAAYH,EAAgBC,OACjDtT,KAAA4rB,SAAS1Z,YAAYlS,KAAK6rB,WAC1B7rB,KAAA4rB,SAAS1Z,YAAYlS,KAAKoW,QAC1BpW,KAAA4rB,SAAS1Z,YAAY4Z,GACtB3pB,EAAM6pB,YACHhsB,KAAA4rB,SAAS1Z,YAAYlS,KAAK+rB,gBAE1Bva,EAAAU,YAAYlS,KAAK+R,QACjBP,EAAAU,YAAYlS,KAAK4rB,UACxB5rB,KAAK+rB,eAAe5X,MAAM8N,QAAUjiB,KAAKyrB,YAAc,QAAU,OACjEzrB,KAAKqmB,cACT,CACE,SAAApU,GACE,IAAIvR,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAClI,MAAArQ,EAAStY,KAAK2rB,cAAc1E,WAC3B,MAAA,6LASqL,OAAlK1M,EAAsI,OAAhI/T,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtB5F,EAAK4X,EAAOrV,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG4lB,YAAiB,EAAS3lB,EAAG4lB,YAAiB,EAAS3lB,EAAGiS,WAAgB,EAAS8B,EAAGxH,uBAAyB,yEAI5C,OAAlK6H,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKlC,EAAOrV,YAAiB,EAASuX,EAAGyR,aAAkB,EAASxR,EAAGyR,YAAiB,EAASxR,EAAGyR,YAAiB,EAASxR,EAAGlC,WAAgB,EAASmC,EAAG5H,wBAA0B,wPAgBhB,OAApM+J,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1Df,EAA4B,OAAtBD,EAAKtD,EAAOrV,YAAiB,EAAS2Y,EAAGqQ,aAAkB,EAASpQ,EAAGqQ,YAAiB,EAAStP,EAAGuP,YAAiB,EAAStP,EAAGpE,WAAgB,EAASqE,EAAGiH,WAAgB,EAAShH,EAAGuF,SAAW,qCAC9B,OAApMjF,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAK1E,EAAOrV,YAAiB,EAAS+Z,EAAGiP,aAAkB,EAAShP,EAAGiP,YAAiB,EAAShP,EAAGiP,YAAiB,EAAShP,EAAG1E,WAAgB,EAAS2E,EAAG2G,WAAgB,EAAS1G,EAAG2G,SAAW,mCAChC,OAApMqE,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1D3K,EAA4B,OAAtBD,EAAKhF,EAAOrV,YAAiB,EAASqa,EAAG2O,aAAkB,EAAS1O,EAAG2O,YAAiB,EAAShE,EAAGiE,YAAiB,EAAShE,EAAG1P,WAAgB,EAAS2P,EAAGrE,WAAgB,EAASsE,EAAG9F,OAAS,4BAChC,OAApMoG,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKhQ,EAAOrV,YAAiB,EAASqlB,EAAG2D,aAAkB,EAAS1D,EAAG2D,YAAiB,EAAS1D,EAAG2D,YAAiB,EAAS1D,EAAGhQ,WAAgB,EAASiQ,EAAG3E,WAAgB,EAAS4E,EAAGlV,QAAU,6GAQpP,CACE,YAAA4S,GACM,IAAA3lB,EAAI4F,EAAIC,EAAIC,EACXxG,KAAA+R,OAAOC,YAAchS,KAAKiS,YAC1BjS,KAAA+rB,eAAe/X,aAAkD,OAApCtT,EAAKV,KAAKurB,QAAQa,oBAAyB,EAAS1rB,EAAG+S,QAAU,OAC9FzT,KAAA+rB,eAAe9X,WAAgD,OAApC3N,EAAKtG,KAAKurB,QAAQa,oBAAyB,EAAS9lB,EAAGoN,MAAQL,EAAgBC,OAC/GtT,KAAKoW,OAAOpE,YAAchS,KAAKurB,QAAQtY,MAAQ,eAC1CjT,KAAA6rB,UAAU7X,aAAyC,OAA3BzN,EAAKvG,KAAKurB,QAAQ7b,WAAgB,EAASnJ,EAAGkN,QAAU,OAChFzT,KAAA6rB,UAAU5X,WAAuC,OAA3BzN,EAAKxG,KAAKurB,QAAQ7b,WAAgB,EAASlJ,EAAGkN,MAAQL,EAAgBpQ,MACrG,EAEKiQ,eAAeC,IAAI,mCACPD,eAAAE,OAAO,iCAAkCkY,IAE1D,MAAMe,WAA+B5b,YACnC,WAAA7Q,CAAYumB,EAAc/hB,EAAM4nB,EAAYlsB,EAASwsB,GAC5CjoB,QAEPlF,EAAca,KAAM,sBAEpBb,EAAca,KAAM,SACpBb,EAAca,KAAM,iBAAkB,GACtCb,EAAca,KAAM,YACpBb,EAAca,KAAM,eACpBb,EAAca,KAAM,eAEpBb,EAAca,KAAM,eACpBb,EAAca,KAAM,SACpBb,EAAca,KAAM,UACpBA,KAAKusB,MAAQnoB,EACbpE,KAAKwsB,YAAcR,EACnBhsB,KAAK2Y,SAAW7Y,EAChBE,KAAKysB,eAAiB,EACtBzsB,KAAK0sB,YAAcJ,EACnB,MAAM9a,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA2sB,YAAc,IAAIjW,EAA2B,YAATtS,EAAqBiP,EAAgBzE,OAASyE,EAAgBE,UAClGvT,KAAAqgB,MAAQzO,SAASC,cAAc,OAC/B7R,KAAAqgB,MAAM/J,UAAY,QAAQlS,IAC1BpE,KAAA+R,OAASH,SAASC,cAAc,SAC9BL,EAAAU,YAAYlS,KAAK+R,QACjBP,EAAAU,YAAYlS,KAAK2sB,aACjBnb,EAAAU,YAAYlS,KAAKqgB,OACxBrgB,KAAK2sB,YAAYrc,iBAAiB,QAAStQ,KAAK4sB,WAAWC,KAAK7sB,OAChE4R,SAAStB,iBAAiB,QAAStQ,KAAK8sB,mBAAmBD,KAAK7sB,OAChEA,KAAKkmB,mBAAqBC,EAAaC,WAAWpV,IAChDhR,KAAKqmB,cAAc,IAErBrmB,KAAKqmB,cACT,CACE,SAAApU,GACE,IAAIvR,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACpF,MAAM9E,EAAStY,KAAKkmB,mBAAmBc,QAAQC,WACxC,MAAA,kOAWgJ,OAAhIzgB,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtB5F,EAAK4X,EAAOrV,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG4lB,YAAiB,EAAS3lB,EAAG4lB,YAAiB,EAAS3lB,EAAG0K,eAAiB,4BAC3C,OAAhIwJ,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKjC,EAAOrV,YAAiB,EAASsX,EAAG0R,aAAkB,EAASzR,EAAG0R,YAAiB,EAASzR,EAAG0R,YAAiB,EAASzR,EAAGlL,SAAW,0CAC1B,OAAhIqM,EAAmG,OAA7FD,EAAgE,OAA1DhB,EAA4B,OAAtBD,EAAKrC,EAAOrV,YAAiB,EAAS0X,EAAGsR,aAAkB,EAASrR,EAAGsR,YAAiB,EAAStQ,EAAGuQ,YAAiB,EAAStQ,EAAGxK,kBAAoB,gCACvC,OAAhI0L,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKtE,EAAOrV,YAAiB,EAAS2Z,EAAGqP,aAAkB,EAASpP,EAAGqP,YAAiB,EAASpP,EAAGqP,YAAiB,EAASpP,EAAGvL,SAAW,0MAQO,OAAlK4L,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAK1E,EAAOrV,YAAiB,EAAS+Z,EAAGiP,aAAkB,EAAShP,EAAGiP,YAAiB,EAAShP,EAAGiP,YAAiB,EAAShP,EAAG1E,WAAgB,EAAS2E,EAAGgF,UAAY,oHAO5N,CACE,YAAAiE,GACE,IAAI3lB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EACnBxa,KAAA+R,OAAOC,YAAchS,KAAKiS,YAC/B,MACMuG,EAAkE,OAA1DlS,EAA4B,OAAtB5F,EADLV,KAAKkmB,mBAAmBc,QAAQC,WACfhkB,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG4lB,MACrFa,EAA0B,YAAf/sB,KAAKusB,MAChBS,EAAeD,EAA0D,OAA9CxmB,EAAa,MAARiS,OAAe,EAASA,EAAKyU,cAAmB,EAAS1mB,EAAGoJ,OAAwD,OAA9CnJ,EAAa,MAARgS,OAAe,EAASA,EAAKb,cAAmB,EAASnR,EAAGmJ,OACvKud,EAAcH,EAAW1Z,EAAgBzE,OAASyE,EAAgBE,SACxEvT,KAAK2sB,YAAYtV,eAA2E,OAA3DkD,EAAqB,MAAhByS,OAAuB,EAASA,EAAatd,WAAgB,EAAS6K,EAAG7G,MAAQwZ,GACvHltB,KAAK2sB,YAAYvV,iBAA6E,OAA3DoD,EAAqB,MAAhBwS,OAAuB,EAASA,EAAatd,WAAgB,EAAS8K,EAAG/G,QAAU,OAC3HzT,KAAK2sB,YAAYrV,uBAAuC,MAAhB0V,OAAuB,EAASA,EAAa3b,kBAAoB,eACzGrR,KAAK2sB,YAAYpV,4BAA4C,MAAhByV,OAAuB,EAASA,EAAaja,uBAAyB,OACnH/S,KAAK2sB,YAAYnV,6BAA6C,MAAhBwV,OAAuB,EAASA,EAAaha,wBAA0B,OACrHhT,KAAKmtB,kBACT,CACE,UAAAzU,CAAW5Y,GACTE,KAAK2Y,SAAW7Y,EAChBE,KAAKmtB,kBACT,CACE,gBAAAA,GACEntB,KAAKqgB,MAAMtM,UAAY,GACvB/T,KAAK2Y,SAAS7J,SAAQ,CAAC0c,EAAQlM,KACvB,MAAA8N,EAAW,IAAI9B,GAA2B,CAC9CE,SACAQ,WAAYhsB,KAAKwsB,YACjBd,WAAY1rB,KAAKysB,iBAAmBnN,EACpC6G,aAAcnmB,KAAKkmB,mBAAmBc,UAE/BoG,EAAA9c,iBAAiB,SAAS,KACjCtQ,KAAKysB,eAAiBnN,EACtBkM,EAAOlZ,QAAQkZ,GACfxrB,KAAKmtB,mBACLntB,KAAKqtB,WAAW,IAEbrtB,KAAAqgB,MAAMnO,YAAYkb,EAAQ,GAErC,CACE,UAAAR,CAAW9rB,GACTA,EAAMuR,kBACN,MAAMib,EAAyC,UAA7BttB,KAAKqgB,MAAMlM,MAAM8N,QACnCjiB,KAAKqgB,MAAMlM,MAAM8N,QAAUqL,EAAY,QAAU,OAC7CA,GACFttB,KAAK0sB,aAEX,CACE,kBAAAI,CAAmBhsB,GACZd,KAAKygB,SAAS3f,EAAM2U,SACvBzV,KAAKqtB,WAEX,CACE,SAAAA,GACOrtB,KAAAqgB,MAAMlM,MAAM8N,QAAU,MAC/B,CACE,YAAAsL,CAAa/B,GACNxrB,KAAAysB,eAAiBzsB,KAAK2Y,SAASmG,WAAW0O,GAAMA,EAAE1pB,KAAO0nB,EAAO1nB,KACrE9D,KAAKmtB,kBACT,CACE,oBAAApc,GACE/Q,KAAKkmB,mBAAmBmF,aAC5B,EAEKnY,eAAeC,IAAI,8BACPD,eAAAE,OAAO,4BAA6BiZ,IAErD,MAAMoB,WAAgChd,YACpC,WAAA7Q,CAAYuC,GACHkC,QAEPlF,EAAca,KAAM,sBAEpBb,EAAca,KAAM,aACpBb,EAAca,KAAM,SAAU,GAE9Bb,EAAca,KAAM,UACpBb,EAAca,KAAM,UACpBA,KAAK0tB,UAAYvrB,EAAMwrB,SACvB3tB,KAAKkmB,mBAAqB/jB,EAAMyrB,SAASxH,WAAWpV,IAC7ChR,KAAAqmB,aAAarmB,KAAK0tB,UAAS,IAElC,MAAMlc,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA6tB,OAASjc,SAASC,cAAc,QACrC7R,KAAK6tB,OAAOvX,UAAY,eACnBtW,KAAA+R,OAASH,SAASC,cAAc,SACrC7R,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAUjS,KAAK0tB,WACvClc,EAAAU,YAAYlS,KAAK+R,QACjBP,EAAAU,YAAYlS,KAAK6tB,OAC5B,CACE,SAAA5b,CAAU0b,GACR,IAAIjtB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAC5B,MAAMnC,EAAStY,KAAKkmB,mBAAmBc,QAAQC,WACzC6G,EAAyB,WAAbH,EAAmF,OAA1DrnB,EAA4B,OAAtB5F,EAAK4X,EAAO6T,YAAiB,EAASzrB,EAAGiP,aAAkB,EAASrJ,EAAGynB,gBAAkH,OAA/FxT,EAAgE,OAA1D/T,EAA4B,OAAtBD,EAAK+R,EAAOrV,YAAiB,EAASsD,EAAG0lB,aAAkB,EAASzlB,EAAGymB,cAAmB,EAAS1S,EAAGwT,gBACvP1c,EAA+B,MAAbyc,OAAoB,EAASA,EAAUzc,gBACzDH,EAA4B,MAAb4c,OAAoB,EAASA,EAAU5c,aAGrD,MAAA,gHAMiBG,sBAR4C,OAArDmJ,EAAkB,MAAbsT,OAAoB,EAASA,EAAU/J,WAAgB,EAASvJ,EAAG/G,kCAUlEvC,qDATkD,OAArDuJ,EAAkB,MAAbqT,OAAoB,EAASA,EAAU/J,WAAgB,EAAStJ,EAAG8H,0GAiB9F,CACE,QAAAyL,CAASnmB,GACP7H,KAAKiuB,OAASpmB,EACd7H,KAAKkuB,aACT,CACE,YAAA7H,CAAasH,GACX3tB,KAAK0tB,UAAYC,EACjB3tB,KAAKkuB,aACT,CACE,WAAAA,GACEluB,KAAK+R,OAAOC,YAAchS,KAAKiS,UAAUjS,KAAK0tB,WAC1C1tB,KAAKiuB,OAAS,GAChBjuB,KAAK6tB,OAAO7b,YAAchS,KAAKiuB,OAAOhqB,WACjCjE,KAAA6tB,OAAO1Z,MAAM8N,QAAU,SAEvBjiB,KAAA6tB,OAAO1Z,MAAM8N,QAAU,MAElC,CACE,oBAAAlR,GACE/Q,KAAKkmB,mBAAmBmF,aAC5B,EAEKnY,eAAeC,IAAI,+BACPD,eAAAE,OAAO,6BAA8Bqa,IAEtD,MAAMU,WAAgC1d,YACpC,WAAA7Q,CAAYumB,EAAcqF,GACjBnnB,QAEPlF,EAAca,KAAM,sBAEpBb,EAAca,KAAM,WACpBb,EAAca,KAAM,aAEpBb,EAAca,KAAM,iBACpBb,EAAca,KAAM,gBACpBb,EAAca,KAAM,gBACpBb,EAAca,KAAM,cACpBb,EAAca,KAAM,UACpBA,KAAKurB,QAAUC,EACf,MAAMha,EAASxR,KAAK0R,aAAa,CAAEd,KAAM,SACpC5Q,KAAA+R,OAASH,SAASC,cAAc,SAChC7R,KAAAouB,WAAaxc,SAASC,cAAc,OACzC7R,KAAKouB,WAAW9X,UAAY,gBAC5BtW,KAAKquB,aAAe,IAAI7a,OAAY,EAAQxT,KAAKurB,QAAQ7b,KAAKgE,KACzD1T,KAAA+f,cAAgBnO,SAASC,cAAc,MACvC7R,KAAAsuB,aAAe,IAAIb,GAAwB,CAC9CG,SAAUzH,EACVwH,SAAU,WAEP3tB,KAAAouB,WAAWlc,YAAYlS,KAAKquB,cAC5BruB,KAAAouB,WAAWlc,YAAYlS,KAAK+f,eAC5B/f,KAAAouB,WAAWlc,YAAYlS,KAAKsuB,cAC1B9c,EAAAU,YAAYlS,KAAK+R,QACjBP,EAAAU,YAAYlS,KAAKouB,YACxBpuB,KAAKkmB,mBAAqBC,EAAaC,WAAWpV,IAC3ChR,KAAAqmB,aAAarmB,KAAKgiB,WAAa,QAAO,IAExChiB,KAAAqmB,aAAarmB,KAAKgiB,WAAa,QACxC,CACE,SAAA/P,GACE,IAAIvR,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAChE,MAAMzE,EAAStY,KAAKkmB,mBAAmBc,QAAQC,WACxC,MAAA,2RAe+I,OAAjIzgB,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtB5F,EAAK4X,EAAOrV,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG2mB,cAAmB,EAAS1mB,EAAGwd,WAAgB,EAASvd,EAAG8b,SAAW,mCAChC,OAAjI5H,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKjC,EAAOrV,YAAiB,EAASsX,EAAG0R,aAAkB,EAASzR,EAAGyS,cAAmB,EAASxS,EAAGsJ,WAAgB,EAASrJ,EAAG6H,OAAS,kCAC1B,OAAjI1G,EAAqG,OAA/FD,EAAgE,OAA1DhB,EAA4B,OAAtBD,EAAKrC,EAAOrV,YAAiB,EAAS0X,EAAGsR,aAAkB,EAASrR,EAAGqS,cAAmB,EAASrR,EAAGmI,WAAgB,EAASlI,EAAGmI,SAAW,2BACpC,OAAjIjH,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKtE,EAAOrV,YAAiB,EAAS2Z,EAAGqP,aAAkB,EAASpP,EAAGoQ,cAAmB,EAASnQ,EAAGiH,WAAgB,EAAShH,EAAGtJ,QAAU,iGAOjL,CACE,YAAA4S,CAAatM,GACX/Z,KAAKgiB,UAAYjI,EACZ/Z,KAAA+R,OAAOC,YAAchS,KAAKiS,YAC1BjS,KAAAsuB,aAAajI,aAAa,UAC/BrmB,KAAKuuB,cACT,CACE,oBAAAC,CAAqBhD,EAAQzR,EAAUJ,GACrC3Z,KAAKurB,QAAUC,EACfxrB,KAAKgiB,UAAYjI,EACZ/Z,KAAAsuB,aAAaN,SAASrU,GAC3B3Z,KAAKuuB,cACT,CACE,YAAAA,GACM,IAAA7tB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAChH,MAAM/P,EAAStY,KAAKkmB,mBAAmBc,QAAQC,WAC/C,OAAQjnB,KAAKgiB,WACX,IAAK,QACEhiB,KAAA+f,cAAc/N,aAAkJ,OAAlIxL,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtB5F,EAAK4X,EAAOrV,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG2mB,cAAmB,EAAS1mB,EAAGtD,YAAiB,EAASuD,EAAGyM,OAAS,QACjMjT,KAAKquB,aAAapa,WAAgL,OAApK0G,EAAwI,OAAlID,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKjC,EAAOrV,YAAiB,EAASsX,EAAG0R,aAAkB,EAASzR,EAAGyS,cAAmB,EAASxS,EAAGxX,YAAiB,EAASyX,EAAGhL,WAAgB,EAASiL,EAAGjH,MAAQL,EAAgBpQ,OAC7OjD,KAAKquB,aAAara,aAAkL,OAApK6I,EAAwI,OAAlID,EAAqG,OAA/Ff,EAAgE,OAA1DD,EAA4B,OAAtBhB,EAAKtC,EAAOrV,YAAiB,EAAS2X,EAAGqR,aAAkB,EAASrQ,EAAGqR,cAAmB,EAASpR,EAAG5Y,YAAiB,EAAS2Z,EAAGlN,WAAgB,EAASmN,EAAGpJ,QAAU,OACjO,MACF,IAAK,UACEzT,KAAA+f,cAAc/N,aAAoJ,OAApIiL,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKxE,EAAOrV,YAAiB,EAAS6Z,EAAGmP,aAAkB,EAASlP,EAAGkQ,cAAmB,EAASjQ,EAAG3U,cAAmB,EAAS4U,EAAGhK,OAAS,UACnMjT,KAAKquB,aAAapa,WAAkL,OAAtKqJ,EAA0I,OAApID,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAK5E,EAAOrV,YAAiB,EAASia,EAAG+O,aAAkB,EAAS9O,EAAG8P,cAAmB,EAAS7P,EAAG/U,cAAmB,EAASgV,EAAG3N,WAAgB,EAAS4N,EAAG5J,MAAQL,EAAgBhL,SAC/OrI,KAAKquB,aAAara,aAAoL,OAAtKqU,EAA0I,OAApID,EAAqG,OAA/FD,EAAgE,OAA1DD,EAA4B,OAAtB3K,EAAKjF,EAAOrV,YAAiB,EAASsa,EAAG0O,aAAkB,EAAS/D,EAAG+E,cAAmB,EAAS9E,EAAG9f,cAAmB,EAAS+f,EAAG1Y,WAAgB,EAAS2Y,EAAG5U,QAAU,OAG3O,CAEE,oBAAA1C,GACE/Q,KAAKkmB,mBAAmBmF,aAC5B,EAEKnY,eAAeC,IAAI,+BACPD,eAAAE,OAAO,6BAA8B+a,IAEtD,MAAMM,WAA2B/Y,EAC/B,WAAA9V,CAAYuC,GACHkC,QAEPlF,EAAca,KAAM,sBAEpBb,EAAca,KAAM,YAAa,SACjCb,EAAca,KAAM,eAAgB,GAEpCb,EAAca,KAAM,iBACpBb,EAAca,KAAM,eACpBb,EAAca,KAAM,eACpBb,EAAca,KAAM,UAEpBb,EAAca,KAAM,qBACpBA,KAAKkmB,mBAAqB/jB,EAAMgkB,aAAaC,WAAWpV,IACtDhR,KAAKqmB,cAAc,IAErBrmB,KAAK0uB,kBAAoBvsB,EAAMwsB,gBACnC,CAEE,gBAAAC,GACE,IAAIluB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACpJ,MAAMxQ,EAAStY,KAAKkmB,mBAAmBc,QAAQC,WACzC4H,EAA2G,OAA7FtoB,EAAgE,OAA1DD,EAA4B,OAAtB5F,EAAK4X,EAAOrV,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG4lB,YAAiB,EAAS3lB,EAAG0mB,QAC7H,MAAA,CACL,CACEnpB,GAAI,QACJmP,MAAgE,OAAxDzM,EAAmB,MAAdqoB,OAAqB,EAASA,EAAW5rB,YAAiB,EAASuD,EAAGyM,OAAS,QAC5FvD,KAAM,CACJ+D,OAAmG,OAA1F+G,EAA8D,OAAxDD,EAAmB,MAAdsU,OAAqB,EAASA,EAAW5rB,YAAiB,EAASsX,EAAG7K,WAAgB,EAAS8K,EAAG/G,QAAU,MAChIC,KAAiG,OAA1FgH,EAA8D,OAAxDD,EAAmB,MAAdoU,OAAqB,EAASA,EAAW5rB,YAAiB,EAASwX,EAAG/K,WAAgB,EAASgL,EAAGhH,MAAQL,EAAgBpQ,OAE9ImpB,cAAe,CACb3Y,OAAsN,OAA7MoJ,EAAwK,OAAlKD,EAAsI,OAAhIf,EAAmG,OAA7FD,EAAgE,OAA1DhB,EAA4B,OAAtBD,EAAKrC,EAAOrV,YAAiB,EAAS0X,EAAGsR,aAAkB,EAASrR,EAAGsR,YAAiB,EAAStQ,EAAGuQ,YAAiB,EAAStQ,EAAGpD,WAAgB,EAASmE,EAAGwP,oBAAyB,EAASvP,EAAGpJ,QAAU,MACnPC,KAAoN,OAA7MyJ,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKxE,EAAOrV,YAAiB,EAAS6Z,EAAGmP,aAAkB,EAASlP,EAAGmP,YAAiB,EAASlP,EAAGmP,YAAiB,EAASlP,EAAGxE,WAAgB,EAASyE,EAAGkP,oBAAyB,EAASjP,EAAGzJ,MAAQL,EAAgBC,OAEjQhB,QAAUkZ,IACHxrB,KAAA8uB,0BAA0B,QAAStD,EAAM,GAGlD,CACE1nB,GAAI,UACJmP,MAAkE,OAA1DmK,EAAmB,MAAdyR,OAAqB,EAASA,EAAWxmB,cAAmB,EAAS+U,EAAGnK,OAAS,UAC9FvD,KAAM,CACJ+D,OAAqG,OAA5F6J,EAAgE,OAA1DD,EAAmB,MAAdwR,OAAqB,EAASA,EAAWxmB,cAAmB,EAASgV,EAAG3N,WAAgB,EAAS4N,EAAG7J,QAAU,MAClIC,KAAmG,OAA5FwU,EAAgE,OAA1D3K,EAAmB,MAAdsR,OAAqB,EAASA,EAAWxmB,cAAmB,EAASkV,EAAG7N,WAAgB,EAASwY,EAAGxU,MAAQL,EAAgBhL,SAEhJ+jB,cAAe,CACb3Y,OAAsN,OAA7M+U,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAK7P,EAAOrV,YAAiB,EAASklB,EAAG8D,aAAkB,EAAS7D,EAAG8D,YAAiB,EAAS7D,EAAG8D,YAAiB,EAAS7D,EAAG7P,WAAgB,EAAS8P,EAAG6D,oBAAyB,EAAS5D,EAAG/U,QAAU,MACnPC,KAAoN,OAA7MoV,EAAwK,OAAlKD,EAAsI,OAAhID,EAAmG,OAA7FD,EAAgE,OAA1DD,EAA4B,OAAtBD,EAAKnQ,EAAOrV,YAAiB,EAASwlB,EAAGwD,aAAkB,EAASvD,EAAGwD,YAAiB,EAASvD,EAAGwD,YAAiB,EAASvD,EAAGnQ,WAAgB,EAASoQ,EAAGuD,oBAAyB,EAAStD,EAAGpV,MAAQL,EAAgBC,OAEjQhB,QAAUkZ,IACHxrB,KAAA8uB,0BAA0B,UAAWtD,EAAM,GAI1D,CACE,gBAAAuD,GACE,IAAIruB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxE,MACM+R,EAA2G,OAA7FzoB,EAAgE,OAA1DD,EAA4B,OAAtB5F,EADjBV,KAAKkmB,mBAAmBc,QAAQC,WACHhkB,YAAiB,EAASvC,EAAGurB,aAAkB,EAAS3lB,EAAG4lB,YAAiB,EAAS3lB,EAAGoR,QAC7H,MAAA,CACL,CACE7T,GAAI,cACJmP,MAAsE,OAA9DzM,EAAmB,MAAdwoB,OAAqB,EAASA,EAAWC,kBAAuB,EAASzoB,EAAGyM,OAAS,mBAClGvD,KAAM,CACJ+D,OAAyG,OAAhG+G,EAAoE,OAA9DD,EAAmB,MAAdyU,OAAqB,EAASA,EAAWC,kBAAuB,EAAS1U,EAAG7K,WAAgB,EAAS8K,EAAG/G,QAAU,MACtIC,KAAuG,OAAhGgH,EAAoE,OAA9DD,EAAmB,MAAduU,OAAqB,EAASA,EAAWC,kBAAuB,EAASxU,EAAG/K,WAAgB,EAASgL,EAAGhH,MAAQL,EAAgBpQ,OAEpJmpB,cAAe,KACf9Z,QAAUtB,IACR2O,GAAsB/R,OAAOoO,gBAAgB,CAAEC,YAAY,GAAM,GAGrE,CACEnY,GAAI,aACJmP,MAAqE,OAA7D0H,EAAmB,MAAdqU,OAAqB,EAASA,EAAWxmB,iBAAsB,EAASmS,EAAG1H,OAAS,cACjGvD,KAAM,CACJ+D,OAAwG,OAA/FmI,EAAmE,OAA7DhB,EAAmB,MAAdoU,OAAqB,EAASA,EAAWxmB,iBAAsB,EAASoS,EAAGlL,WAAgB,EAASkM,EAAGnI,QAAU,MACrIC,KAAsG,OAA/FkJ,EAAmE,OAA7Df,EAAmB,MAAdmT,OAAqB,EAASA,EAAWxmB,iBAAsB,EAASqT,EAAGnM,WAAgB,EAASkN,EAAGlJ,MAAQL,EAAgBhL,SAEnJ+jB,cAAe,KACf9Z,QAAUtB,IACR2O,GAAsB/R,OAAOqR,mBAAmB,CAAEhD,YAAY,GAAM,GAGxE,CACEnY,GAAI,cACJmP,MAAsE,OAA9D4J,EAAmB,MAAdmS,OAAqB,EAASA,EAAWzmB,kBAAuB,EAASsU,EAAG5J,OAAS,eAClGvD,KAAM,CACJ+D,OAAyG,OAAhGsJ,EAAoE,OAA9DD,EAAmB,MAAdkS,OAAqB,EAASA,EAAWzmB,kBAAuB,EAASuU,EAAGpN,WAAgB,EAASqN,EAAGtJ,QAAU,MACtIC,KAAuG,OAAhGuJ,EAAoE,OAA9DD,EAAmB,MAAdgS,OAAqB,EAASA,EAAWzmB,kBAAuB,EAASyU,EAAGtN,WAAgB,EAASuN,EAAGvJ,MAAQL,EAAgBhL,SAEpJ+jB,cAAe,KACf9Z,QAAUtB,IACR2O,GAAsB/R,OAAO0O,oBAAoB,CAAEL,YAAY,GAAM,GAI/E,CACE,6BAAWiT,GACF,MAAA,CAAC,OAAQ,QAAS,YAC7B,CACE,YAAA7I,GACE,IAAI3lB,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAC5B,MAAMnC,EAAStY,KAAKkmB,mBAAmBc,QAAQC,WACzCgF,EAA+B,OAArBvrB,EAAKV,KAAKwR,aAAkB,EAAS9Q,EAAGoY,cAAc,yBAClEmT,IACFA,EAAO9X,MAAM9C,iBAA8E,OAA1D9K,EAA4B,OAAtBD,EAAKgS,EAAOrV,YAAiB,EAASqD,EAAG2lB,aAAkB,EAAS1lB,EAAG8K,kBAAoBnC,EAAoB,KACtJ+c,EAAO9X,MAAMgb,WAAwE,OAA1D5U,EAA4B,OAAtB/T,EAAK8R,EAAOrV,YAAiB,EAASuD,EAAGylB,aAAkB,EAAS1R,EAAG/I,SAAW,mBAAmBtC,EAAmB,QAEhI,OAA1BsL,EAAKxa,KAAKovB,cAAgC5U,EAAG9B,WAAW1Y,KAAK4uB,oBACnC,OAA1BnU,EAAKza,KAAKqvB,cAAgC5U,EAAG/B,WAAW1Y,KAAK+uB,mBAClE,CACE,yBAAAD,CAA0B/U,EAAUyR,GAClCxrB,KAAKgiB,UAAYjI,EACb/Z,KAAKsvB,eACFtvB,KAAAsvB,cAAcd,qBAAqBhD,EAAQxrB,KAAKgiB,UAA8B,UAAnBhiB,KAAKgiB,UAAwBhiB,KAAK4Z,aAAe,GAEnH5Z,KAAK0uB,kBAAkB3U,EAC3B,CACE,MAAA2N,CAAOvlB,GACLnC,KAAKgiB,UAAY7f,EAAM4X,SACvB/Z,KAAK4Z,aAAezX,EAAMwX,YAC1B3Z,KAAKuvB,qBACT,CACE,mBAAAA,GACE,IAAI7uB,EAAI4F,EACR,MAAMklB,EAASxrB,KAAK4uB,mBAAmBnS,MAAMxD,GAAQ,CAAC,QAAS,WAAWzT,SAASyT,EAAInV,KAAOmV,EAAInV,KAAO9D,KAAKgiB,YAC1GwJ,IAC2B,OAA5B9qB,EAAKV,KAAKsvB,gBAAkC5uB,EAAG8tB,qBAAqBhD,EAAQxrB,KAAKgiB,UAA8B,UAAnBhiB,KAAKgiB,UAAwBhiB,KAAK4Z,aAAe,GACnH,OAA1BtT,EAAKtG,KAAKovB,cAAgC9oB,EAAGinB,aAAa/B,GAEjE,CACE,KAAA7V,CAAMC,GACA,IAAAlV,EACJ2D,MAAMsR,MAAMC,GACP5V,KAAA+R,OAASH,SAASC,cAAc,SAChC7R,KAAA+R,OAAOC,YAAchS,KAAKiS,YACT,OAArBvR,EAAKV,KAAKwR,SAA2B9Q,EAAGwR,YAAYlS,KAAK+R,QAC1D/R,KAAKqmB,cACT,CACE,cAAAtQ,GACQ,MAAAyZ,EAAgBxvB,KAAK4uB,mBACtB5uB,KAAAsvB,cAAgB,IAAInB,GAAwBnuB,KAAKkmB,mBAAmBc,QAASwI,EAAc,IAC3FxvB,KAAAovB,YAAc,IAAI/C,GAAuBrsB,KAAKkmB,mBAAmBc,QAAS,WAAW,EAAMwI,GAAe,KACzG,IAAA9uB,EACuB,OAA1BA,EAAKV,KAAKqvB,cAAgC3uB,EAAG2sB,WAAW,IAEtDrtB,KAAAqvB,YAAc,IAAIhD,GAAuBrsB,KAAKkmB,mBAAmBc,QAAS,WAAW,EAAOhnB,KAAK+uB,oBAAoB,KACpH,IAAAruB,EACuB,OAA1BA,EAAKV,KAAKovB,cAAgC1uB,EAAG2sB,WAAW,IAE3DrtB,KAAKovB,YAAY7B,aAAaiC,EAAc,IACtC,MAAA1D,EAASla,SAASC,cAAc,OACtCia,EAAOxV,UAAY,SACb,MAAAqB,EAAU/F,SAASC,cAAc,OACvC8F,EAAQrB,UAAY,UACZqB,EAAAzF,YAAYlS,KAAKovB,aACjBzX,EAAAzF,YAAYlS,KAAKqvB,aACnB,MAAAlZ,EAAYvE,SAASC,cAAc,OAKlC,OAJPsE,EAAUG,UAAY,uBACZH,EAAAjE,YAAYlS,KAAKsvB,eAC3BnZ,EAAUjE,YAAY4Z,GACtB3V,EAAUjE,YAAYyF,GACfxB,CACX,CACE,SAAAlE,GACS,MAAA,qPAUiB/C,EAAoB,8CACVA,EAAmB,sRAmBzD,CAEE,oBAAA6B,GACE/Q,KAAKkmB,mBAAmBmF,aAC5B,EAEKnY,eAAeC,IAAI,yBACPD,eAAAE,OAAO,uBAAwBqb,IAEhD,MAAMgB,GACJ,WAAA7vB,CAAYyb,GACVlc,EAAca,KAAM,UACpBA,KAAKqb,OAASA,CAClB,CACE,MAAA3N,GACwBiS,GAAA/R,OAAOyM,wBAAwBra,KACzD,EAEA,MAAM0vB,GAAoB,CACxBvD,MAAO,CACLxc,OAAQ,CACND,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpQ,OAEvBoO,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,OAC3C6e,gBAAiB,CACfhK,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BqT,KAAM,OACND,YAAQ,EACR0B,YAAQ,GAEV3S,gBAAiBnC,EAAmB,KACpCgC,aAAc,SAGlBnB,OAAQ,CACNsB,gBAAiBnC,EAAoB,KACrCgC,aAAc,MACd1B,OAAQ,aAAaN,EAAmB,OACxCsC,OAAQ,qBAAqBtC,EAAmB,SAGpDjM,MAAO,CACLgpB,OAAQ,CACN5a,gBAAiBnC,EAAoB,KACrCsC,OAAQ,mBAAmBtC,EAAmB,OAC9C+d,QAAS,CACPlJ,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAERtf,MAAO,CACLyM,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpQ,OAEvBgQ,KAAM,SAER5K,QAAS,CACPqH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvB4K,KAAM,WAER8a,gBAAiB,CACfhK,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAERlR,gBAAiBnC,EAAmB,KACpCgC,aAAc,SAGlBgb,MAAO,CACLC,MAAO,CACL9a,gBAAiBnC,EAAoB,KACrCM,OAAQ,aAAaN,EAAmB,OACxCgC,aAAc,MACdM,OAAQ,oBAAoBtC,EAAmB,OAC/CuJ,KAAM,CACJ1F,qBAAsB7D,EAAmB,KACzC8D,sBAAuB9D,EAAmB,KAC1CkT,QAAS,OACT2B,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAER6J,cAAe,CACb3Y,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBC,SAI3B2Z,QAAS,CACPtd,OAAQ,CACND,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBzE,QAEvByC,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,QAE7CjM,MAAO,CACLyM,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpQ,OAEvBgQ,KAAM,SAER5K,QAAS,CACPqH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvB4K,KAAM,YAGV0E,QAAS,CACPhI,OAAQ,CACND,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBE,UAEvBlC,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,QAE7C+f,YAAa,CACXvf,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpL,MAEvBgL,KAAM,YAERzK,WAAY,CACVkH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvB4K,KAAM,eAER1K,YAAa,CACXmH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgB9K,aAEvB0K,KAAM,mBAKdwF,KAAM,CACJpH,gBAAiBnC,EAAoB,KACrCvG,KAAM,CACJ0I,gBAAiB,cACjBgR,qBAAsBnT,EAAmB,KACzC6D,qBAAsB7D,EAAmB,KACzC8D,sBAAuB9D,EAAmB,KAC1CyI,QAAS,CACPtG,gBAAiB,cACjB0B,qBAAsB7D,EAAmB,KACzC8D,sBAAuB9D,EAAmB,KAC1CM,OAAQ,aAAaN,EAAmB,OACxCgC,aAAc,MACdM,OAAQ,sCACRuS,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,SAGVlM,MAAO,CACL5C,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAERC,SAAU,CACR/O,MAAOvE,EAAmB,KAC1BoT,YAAQ,EACRC,KAAM,QAERE,KAAM,CACJhP,MAAOvE,EAAmB,KAC1BoT,YAAQ,EACRC,KAAM,QAERH,QAAS,aAAalT,EAAmB,OACzCsJ,KAAM,CACJ0I,SAAS,EACT7P,gBAAiBnC,EAAoB,KACrCM,OAAQ,aAAaN,EAAmB,OACxCgC,aAAc,MACdM,OAAQ,oBAAoBtC,EAAmB,OAC/CiS,UAAW,CACTO,gBAAiB,IACjBD,kBAAmB,IAErB9Y,KAAM,CACJoK,qBAAsB7D,EAAmB,KACzC8D,sBAAuB9D,EAAmB,KAC1CgC,aAAc,MACdjJ,KAAM,CACJwL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpL,MAEvBC,OAAQ,CACNuL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBnL,QAEvBG,QAAS,CACPoL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvBC,UAAW,CACTmL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgB/K,eAM/Bmc,QAAS,CACPC,UAAW,CACTC,SAAUzV,EAAmB,KAC7BkW,UAAW,OACXE,gBAAiB,OACjBD,SAAU,MAEZjD,QAAS,aAAalT,EAAmB,QAE3Csb,MAAO,CACLnU,MAAO,CACL0N,KAAM,CACJxB,KAAM,OACNyB,OAAQ,MACRvQ,MAAOvE,EAAoB,OAG/BS,OAAQ,CACNsD,KAAM,YAGV3R,MAAO,CACL+U,MAAO,CACL0N,KAAM,CACJxB,KAAM,OACNyB,OAAQ,MACRvQ,MAAOvE,EAAoB,OAG/BS,OAAQ,CACNsD,KAAM,YAKR0c,GAAmB,CACvBxD,MAAO,CACLxc,OAAQ,CACND,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpQ,OAEvBoO,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,OAC3C6e,gBAAiB,CACfhK,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BqT,KAAM,OACND,YAAQ,EACR0B,YAAQ,GAEV3S,gBAAiBnC,EAAmB,KACpCgC,aAAc,SAGlBnB,OAAQ,CACNsB,gBAAiBnC,EAAoB,KACrCgC,aAAc,MACd1B,OAAQ,aAAaN,EAAmB,OACxCsC,OAAQ,oBAAoBtC,EAAoB,WAGpDjM,MAAO,CACLgpB,OAAQ,CACN5a,gBAAiBnC,EAAoB,KACrCsC,OAAQ,mBAAmBtC,EAAmB,OAC9C+d,QAAS,CACPlJ,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAERtf,MAAO,CACLyM,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpQ,OAEvBgQ,KAAM,SAER5K,QAAS,CACPqH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvB4K,KAAM,WAER8a,gBAAiB,CACfhK,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAERlR,gBAAiBnC,EAAmB,KACpCgC,aAAc,SAGlBgb,MAAO,CACLC,MAAO,CACL9a,gBAAiBnC,EAAoB,KACrCM,OAAQ,aAAaN,EAAmB,OACxCgC,aAAc,MACdM,OAAQ,oBAAoBtC,EAAoB,SAChDuJ,KAAM,CACJ1F,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,OAC3CkT,QAAS,OACT2B,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAER6J,cAAe,CACb3Y,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBC,SAI3B2Z,QAAS,CACPtd,OAAQ,CACND,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBzE,QAEvByC,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,QAE7CjM,MAAO,CACLyM,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpQ,OAEvBgQ,KAAM,SAER5K,QAAS,CACPqH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvB4K,KAAM,YAGV0E,QAAS,CACPhI,OAAQ,CACND,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBE,UAEvBlC,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,QAE7C+f,YAAa,CACXvf,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpL,MAEvBgL,KAAM,YAERzK,WAAY,CACVkH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvB4K,KAAM,eAER1K,YAAa,CACXmH,KAAM,CACJ+D,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgB9K,aAEvB0K,KAAM,mBAKdwF,KAAM,CACJpH,gBAAiBnC,EAAoB,KACrCvG,KAAM,CACJ0I,gBAAiB,cACjBgR,qBAAsBnT,EAAmB,KACzC6D,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,OAC3CyI,QAAS,CACPtG,gBAAiB,cACjB0B,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,OAC3CM,OAAQ,aAAaN,EAAmB,OACxCgC,aAAc,MACdM,OAAQ,mBAAmBtC,EAAoB,SAC/C6U,KAAM,CACJtQ,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,SAGVlM,MAAO,CACL5C,MAAOvE,EAAoB,KAC3BoT,YAAQ,EACRC,KAAM,QAERC,SAAU,CACR/O,MAAOvE,EAAmB,KAC1BoT,YAAQ,EACRC,KAAM,QAERE,KAAM,CACJhP,MAAOvE,EAAmB,KAC1BoT,YAAQ,EACRC,KAAM,QAERH,QAAS,aAAalT,EAAmB,OACzCsJ,KAAM,CACJ0I,SAAS,EACT7P,gBAAiBnC,EAAoB,KACrCM,OAAQ,aAAaN,EAAmB,OACxCgC,aAAc,MACdM,OAAQ,oBAAoBtC,EAAoB,SAChDiS,UAAW,CACTO,gBAAiB,IACjBD,kBAAmB,IAErB9Y,KAAM,CACJoK,qBAAsB7D,EAAoB,OAC1C8D,sBAAuB9D,EAAoB,OAC3CgC,aAAc,MACdjJ,KAAM,CACJwL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBpL,MAEvBC,OAAQ,CACNuL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBnL,QAEvBG,QAAS,CACPoL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgBhL,SAEvBC,UAAW,CACTmL,MAAOvE,EAAoB,KAC3BwE,IAAKL,EAAgB/K,eAM/Bmc,QAAS,CACPC,UAAW,CACTC,SAAUzV,EAAoB,KAC9BkW,UAAW,OACXE,gBAAiB,OACjBD,SAAU,MAEZjD,QAAS,aAAalT,EAAmB,QAE3Csb,MAAO,CACLnU,MAAO,CACL0N,KAAM,CACJxB,KAAM,OACNyB,OAAQ,MACRvQ,MAAOvE,EAAoB,OAG/BS,OAAQ,CACNsD,KAAM,YAGV3R,MAAO,CACL+U,MAAO,CACL0N,KAAM,CACJxB,KAAM,OACNyB,OAAQ,MACRvQ,MAAOvE,EAAoB,OAG/BS,OAAQ,CACNsD,KAAM,YA2Kd,MAAM2c,GACJ,WAAAhwB,CAAYiwB,GAEV1wB,EAAca,KAAM,qBAAsB,8BAE1Cb,EAAca,KAAM,UACpBb,EAAca,KAAM,cAAe0vB,IACnCvwB,EAAca,KAAM,aAAc2vB,IAClCxwB,EAAca,KAAM,WACpBb,EAAca,KAAM,iBAAkB,IAEtCb,EAAca,KAAM,aACpBb,EAAca,KAAM,eACpBb,EAAca,KAAM,uBACpBA,KAAKuY,OAASsX,EACT7vB,KAAA8vB,QAAU,IAAIC,YACnB/vB,KAAKgwB,UAAY,SACjBhwB,KAAKiwB,YAAcngB,IACnB9P,KAAKkwB,cAAcR,IACnB1vB,KAAKmwB,aAAaR,IACb3vB,KAAA2Q,oBAAsBT,GAA4BU,IACrD5Q,KAAKiwB,YAAcrf,EACnB5Q,KAAKowB,aAAa,GAExB,CACE,aAAAF,CAAc5X,GACZtY,KAAKqwB,YAAc/X,EACM,UAArBtY,KAAKiwB,aACPjwB,KAAKowB,aAEX,CACE,YAAAD,CAAa7X,GACXtY,KAAKswB,WAAahY,EACO,SAArBtY,KAAKiwB,aACPjwB,KAAKowB,aAEX,CAIE,sBAAItf,GACF,OAAO9Q,KAAKiwB,WAChB,CAIE,QAAAhJ,GACE,OAAOjnB,KAAKuY,MAChB,CAIE,WAAA6X,GACE,MAAMxf,EAA0B,WAAnB5Q,KAAKgwB,UAAyBhwB,KAAKiwB,YAAcjwB,KAAKgwB,UAE7DO,EA7NS,EAAC3f,EAAM0H,KACxB,IAAI5X,EAAI4F,EAAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIC,GAAIC,GAAKC,GAAKC,GAAKC,GAAKqG,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,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/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../src/utils/utils.tsx","../src/components/courier-inbox.tsx","../src/components/courier-inbox-menu.tsx","../src/hooks/use-courier.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst _CourierSocket = class _CourierSocket {\n constructor(url, options) {\n // Properties\n __publicField(this, \"webSocket\", null);\n __publicField(this, \"pingInterval\", null);\n // Callbacks\n __publicField(this, \"onOpen\");\n __publicField(this, \"onMessageReceived\");\n __publicField(this, \"onClose\");\n __publicField(this, \"onError\");\n // Properties\n __publicField(this, \"url\");\n __publicField(this, \"options\");\n this.url = url;\n this.options = options;\n }\n /**\n * Dynamically checks if the WebSocket is connected\n */\n get isConnected() {\n return this.webSocket !== null;\n }\n async connect() {\n this.disconnect();\n return new Promise((resolve, reject) => {\n try {\n this.webSocket = new WebSocket(this.url);\n this.webSocket.onopen = () => {\n var _a;\n (_a = this.onOpen) == null ? void 0 : _a.call(this);\n resolve();\n };\n this.webSocket.onmessage = (event) => {\n var _a;\n (_a = this.onMessageReceived) == null ? void 0 : _a.call(this, event.data);\n };\n this.webSocket.onclose = (event) => {\n var _a;\n this.webSocket = null;\n (_a = this.onClose) == null ? void 0 : _a.call(this, event.code, event.reason);\n };\n this.webSocket.onerror = (event) => {\n var _a;\n this.webSocket = null;\n const error = new Error(\"Courier Socket connection failed\");\n error.originalEvent = event;\n (_a = this.onError) == null ? void 0 : _a.call(this, error);\n reject(error);\n };\n } catch (error) {\n this.webSocket = null;\n reject(error);\n }\n });\n }\n disconnect() {\n this.stopPing();\n if (this.webSocket) {\n this.webSocket.close(_CourierSocket.NORMAL_CLOSURE_STATUS);\n this.webSocket = null;\n }\n }\n async send(message) {\n if (!this.webSocket) {\n return false;\n }\n const json = JSON.stringify(message);\n return this.webSocket.send(json) !== void 0;\n }\n keepAlive(props) {\n this.stopPing();\n this.pingInterval = setInterval(async () => {\n var _a;\n try {\n await this.send({ action: \"keepAlive\" });\n } catch (error) {\n (_a = this.options.logger) == null ? void 0 : _a.error(\"Error occurred on Keep Alive:\", error);\n }\n }, (props == null ? void 0 : props.intervalInMillis) ?? 3e5);\n }\n stopPing() {\n if (this.pingInterval) {\n clearInterval(this.pingInterval);\n this.pingInterval = null;\n }\n }\n};\n// Constants\n__publicField(_CourierSocket, \"NORMAL_CLOSURE_STATUS\", 1e3);\nlet CourierSocket = _CourierSocket;\nconst getCourierApiUrls = (urls) => ({\n courier: {\n rest: (urls == null ? void 0 : urls.courier.rest) || \"https://api.courier.com\",\n graphql: (urls == null ? void 0 : urls.courier.graphql) || \"https://api.courier.com/client/q\"\n },\n inbox: {\n graphql: (urls == null ? void 0 : urls.inbox.graphql) || \"https://inbox.courier.com/q\",\n webSocket: (urls == null ? void 0 : urls.inbox.webSocket) || \"wss://realtime.courier.io\"\n }\n});\nclass Logger {\n constructor(showLogs) {\n __publicField(this, \"PREFIX\", \"[COURIER]\");\n this.showLogs = showLogs;\n }\n warn(message, ...args) {\n if (this.showLogs) {\n console.warn(`${this.PREFIX} ${message}`, ...args);\n }\n }\n log(message, ...args) {\n if (this.showLogs) {\n console.log(`${this.PREFIX} ${message}`, ...args);\n }\n }\n error(message, ...args) {\n if (this.showLogs) {\n console.error(`${this.PREFIX} ${message}`, ...args);\n }\n }\n debug(message, ...args) {\n if (this.showLogs) {\n console.debug(`${this.PREFIX} ${message}`, ...args);\n }\n }\n info(message, ...args) {\n if (this.showLogs) {\n console.info(`${this.PREFIX} ${message}`, ...args);\n }\n }\n}\nclass UUID {\n static generate(prefix) {\n const id = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n return prefix ? prefix + id : id;\n }\n}\nclass CourierRequestError extends Error {\n constructor(code, message, type) {\n super(message);\n this.code = code;\n this.type = type;\n this.name = \"CourierRequestError\";\n }\n}\nfunction logRequest(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Request: ${uid}\nURL: ${data.url}\n${data.method ? `Method: ${data.method}` : \"\"}\n${data.query ? `Query: ${data.query}` : \"\"}\n${data.variables ? `Variables: ${JSON.stringify(data.variables, null, 2)}` : \"\"}\nHeaders: ${JSON.stringify(data.headers, null, 2)}\nBody: ${data.body ? JSON.stringify(data.body, null, 2) : \"Empty\"}\n `);\n}\nfunction logResponse(logger, uid, type, data) {\n logger.log(`\nš” New Courier ${type} Response: ${uid}\nStatus Code: ${data.status}\nResponse JSON: ${JSON.stringify(data.response, null, 2)}\n `);\n}\nasync function http(props) {\n const validCodes = props.validCodes ?? [200];\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n const request = new Request(props.url, {\n method: props.method,\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: props.body ? JSON.stringify(props.body) : void 0\n });\n if (uid) {\n logRequest(props.options.logger, uid, \"HTTP\", {\n url: request.url,\n method: request.method,\n headers: Object.fromEntries(request.headers.entries()),\n body: props.body\n });\n }\n const response = await fetch(request);\n if (response.status === 204) {\n return;\n }\n let data;\n try {\n data = await response.json();\n } catch (error) {\n if (response.status === 200) {\n return;\n }\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"HTTP\", {\n status: response.status,\n response: data\n });\n }\n if (!validCodes.includes(response.status)) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nasync function graphql(props) {\n const uid = props.options.showLogs ? UUID.generate() : void 0;\n if (uid) {\n logRequest(props.options.logger, uid, \"GraphQL\", {\n url: props.url,\n headers: props.headers,\n query: props.query,\n variables: props.variables\n });\n }\n const response = await fetch(props.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...props.headers\n },\n body: JSON.stringify({\n query: props.query,\n variables: props.variables\n })\n });\n let data;\n try {\n data = await response.json();\n } catch (error) {\n throw new CourierRequestError(\n response.status,\n \"Failed to parse response as JSON\",\n \"PARSE_ERROR\"\n );\n }\n if (uid) {\n logResponse(props.options.logger, uid, \"GraphQL\", {\n status: response.status,\n response: data\n });\n }\n if (!response.ok) {\n throw new CourierRequestError(\n response.status,\n (data == null ? void 0 : data.message) || \"Unknown Error\",\n data == null ? void 0 : data.type\n );\n }\n return data;\n}\nclass Client {\n constructor(options) {\n this.options = options;\n }\n}\nclass BrandClient extends Client {\n /**\n * Get a brand by ID using GraphQL\n * @param brandId - The ID of the brand to retrieve\n * @returns Promise resolving to the requested brand\n */\n async getBrand(props) {\n const query = `\n query GetBrand {\n brand(brandId: \"${props.brandId}\") {\n settings {\n colors {\n primary\n secondary\n tertiary\n }\n inapp {\n borderRadius\n disableCourierFooter\n }\n }\n }\n }\n `;\n const json = await graphql({\n options: this.options,\n url: this.options.apiUrls.courier.graphql,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"x-courier-client-key\": \"empty\",\n // Empty for now. Will be removed in future.\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n query,\n variables: { brandId: props.brandId }\n });\n return json.data.brand;\n }\n}\nclass InboxSocket extends CourierSocket {\n constructor(options) {\n const url = InboxSocket.buildUrl(options);\n super(url, options);\n __publicField(this, \"receivedMessage\");\n __publicField(this, \"receivedMessageEvent\");\n this.onMessageReceived = (data) => this.convertToType(data);\n }\n convertToType(data) {\n var _a, _b, _c, _d;\n try {\n const payload = JSON.parse(data);\n switch (payload.type) {\n case \"event\":\n const messageEvent = JSON.parse(data);\n (_a = this.receivedMessageEvent) == null ? void 0 : _a.call(this, messageEvent);\n break;\n case \"message\":\n const message = JSON.parse(data);\n (_b = this.receivedMessage) == null ? void 0 : _b.call(this, message);\n break;\n }\n } catch (error) {\n (_c = this.options.logger) == null ? void 0 : _c.error(\"Error parsing socket message\", error);\n if (error instanceof Error) {\n (_d = this.onError) == null ? void 0 : _d.call(this, error);\n }\n }\n }\n async sendSubscribe(props) {\n var _a;\n const subscription = {\n action: \"subscribe\",\n data: {\n userAgent: \"courier-js\",\n // TODO: Equivalent to Courier.agent.value()\n channel: this.options.userId,\n event: \"*\",\n version: (props == null ? void 0 : props.version) ?? 5\n }\n };\n if (this.options.connectionId) {\n subscription.data.clientSourceId = this.options.connectionId;\n }\n if (this.options.tenantId) {\n subscription.data.accountId = this.options.tenantId;\n }\n (_a = this.options.logger) == null ? void 0 : _a.debug(\"Sending subscribe request\", subscription);\n await this.send(subscription);\n }\n static buildUrl(options) {\n var _a;\n let url = ((_a = options.apiUrls) == null ? void 0 : _a.inbox.webSocket) ?? \"\";\n if (options.accessToken) {\n url += `/?auth=${options.accessToken}`;\n }\n return url;\n }\n}\nclass InboxClient extends Client {\n constructor(options) {\n super(options);\n __publicField(this, \"socket\");\n this.socket = new InboxSocket(options);\n }\n /**\n * Get paginated messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated messages response\n */\n async getMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"} }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get paginated archived messages\n * @param paginationLimit - Number of messages to return per page (default: 24)\n * @param startCursor - Cursor for pagination\n * @returns Promise resolving to paginated archived messages response\n */\n async getArchivedMessages(props) {\n const query = `\n query GetInboxMessages(\n $params: FilterParamsInput = { ${this.options.tenantId ? `accountId: \"${this.options.tenantId}\"` : \"\"}, archived: true }\n $limit: Int = ${(props == null ? void 0 : props.paginationLimit) ?? 24}\n $after: String ${(props == null ? void 0 : props.startCursor) ? `= \"${props.startCursor}\"` : \"\"}\n ) {\n count(params: $params)\n messages(params: $params, limit: $limit, after: $after) {\n totalCount\n pageInfo {\n startCursor\n hasNextPage\n }\n nodes {\n messageId\n read\n archived\n created\n opened\n title\n preview\n data\n tags\n trackingIds {\n clickTrackingId\n }\n actions {\n content\n data\n href\n }\n }\n }\n }\n `;\n return graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Get unread message count\n * @returns Promise resolving to number of unread messages\n */\n async getUnreadMessageCount() {\n var _a;\n const query = `\n query GetMessages {\n count(params: { status: \"unread\" ${this.options.tenantId ? `, accountId: \"${this.options.tenantId}\"` : \"\"} })\n }\n `;\n const response = await graphql({\n options: this.options,\n query,\n headers: {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n url: this.options.apiUrls.inbox.graphql\n });\n return ((_a = response.data) == null ? void 0 : _a.count) ?? 0;\n }\n /**\n * Track a click event\n * @param messageId - ID of the message\n * @param trackingId - ID for tracking the click\n * @returns Promise resolving when click is tracked\n */\n async click(props) {\n const query = `\n mutation TrackEvent {\n clicked(messageId: \"${props.messageId}\", trackingId: \"${props.trackingId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as read\n * @param messageId - ID of the message to mark as read\n * @returns Promise resolving when message is marked as read\n */\n async read(props) {\n const query = `\n mutation TrackEvent {\n read(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as unread\n * @param messageId - ID of the message to mark as unread\n * @returns Promise resolving when message is marked as unread\n */\n async unread(props) {\n const query = `\n mutation TrackEvent {\n unread(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark all messages as read\n * @returns Promise resolving when all messages are marked as read\n */\n async readAll() {\n const query = `\n mutation TrackEvent {\n markAllRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Mark a message as opened\n * @param messageId - ID of the message to mark as opened\n * @returns Promise resolving when message is marked as opened\n */\n async open(props) {\n const query = `\n mutation TrackEvent {\n opened(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive a message\n * @param messageId - ID of the message to archive\n * @returns Promise resolving when message is archived\n */\n async archive(props) {\n const query = `\n mutation TrackEvent {\n archive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Unarchive a message\n * @param messageId - ID of the message to unarchive\n * @returns Promise resolving when message is unarchived\n */\n async unarchive(props) {\n const query = `\n mutation TrackEvent {\n unarchive(messageId: \"${props.messageId}\")\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveRead() {\n const query = `\n mutation TrackEvent {\n archiveRead\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n /**\n * Archive all read messages.\n */\n async archiveAll() {\n const query = `\n mutation TrackEvent {\n archiveAll\n }\n `;\n const headers = {\n \"x-courier-user-id\": this.options.userId,\n \"Authorization\": `Bearer ${this.options.accessToken}`\n };\n if (this.options.connectionId) {\n headers[\"x-courier-client-source-id\"] = this.options.connectionId;\n }\n await graphql({\n options: this.options,\n query,\n headers,\n url: this.options.apiUrls.inbox.graphql\n });\n }\n}\nclass PreferenceTransformer {\n /**\n * Transforms a single API response item to the CourierUserPreferencesTopic type\n * @param item - The API response item\n * @returns A CourierUserPreferencesTopic object\n */\n transformItem(item) {\n return {\n topicId: item.topic_id,\n topicName: item.topic_name,\n sectionId: item.section_id,\n sectionName: item.section_name,\n status: item.status,\n defaultStatus: item.default_status,\n hasCustomRouting: item.has_custom_routing,\n customRouting: item.custom_routing || []\n };\n }\n /**\n * Transforms an array of API response items to CourierUserPreferencesTopic objects\n * @param items - The API response items\n * @returns A generator of CourierUserPreferencesTopic objects\n */\n *transform(items) {\n for (const item of items) {\n yield this.transformItem(item);\n }\n }\n}\nfunction decode(clientKey) {\n const binaryString = atob(clientKey);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode(...bytes);\n}\nfunction encode(key) {\n const bytes = new Uint8Array(key.length);\n for (let i = 0; i < key.length; i++) {\n bytes[i] = key.charCodeAt(i);\n }\n return btoa(String.fromCharCode(...bytes));\n}\nclass PreferenceClient extends Client {\n constructor() {\n super(...arguments);\n __publicField(this, \"transformer\", new PreferenceTransformer());\n }\n /**\n * Get all preferences for a user\n * @param paginationCursor - Optional cursor for pagination\n * @returns Promise resolving to user preferences\n * @see https://www.courier.com/docs/reference/user-preferences/list-all-user-preferences\n */\n async getUserPreferences(props) {\n let url = `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;\n if (props == null ? void 0 : props.paginationCursor) {\n url += `?cursor=${props.paginationCursor}`;\n }\n const json = await http({\n options: this.options,\n url,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const data = json;\n return {\n items: [...this.transformer.transform(data.items)],\n paging: data.paging\n };\n }\n /**\n * Get preferences for a specific topic\n * @param topicId - The ID of the topic to get preferences for\n * @returns Promise resolving to topic preferences\n * @see https://www.courier.com/docs/reference/user-preferences/get-subscription-topic-preferences\n */\n async getUserPreferenceTopic(props) {\n const json = await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"GET\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n }\n });\n const res = json;\n return this.transformer.transformItem(res.topic);\n }\n /**\n * Update preferences for a specific topic\n * @param topicId - The ID of the topic to update preferences for\n * @param status - The new status for the topic\n * @param hasCustomRouting - Whether the topic has custom routing\n * @param customRouting - The custom routing channels for the topic\n * @returns Promise resolving when update is complete\n * @see https://www.courier.com/docs/reference/user-preferences/update-subscription-topic-preferences\n */\n async putUserPreferenceTopic(props) {\n const payload = {\n topic: {\n status: props.status,\n has_custom_routing: props.hasCustomRouting,\n custom_routing: props.customRouting\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${props.topicId}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload\n });\n }\n /**\n * Get the notification center URL\n * @param clientKey - The client key to use for the URL\n * @returns The notification center URL\n */\n getNotificationCenterUrl(props) {\n const rootTenantId = decode(props.clientKey);\n const url = encode(`${rootTenantId}#${this.options.userId}${this.options.tenantId ? `#${this.options.tenantId}` : \"\"}#${false}`);\n return `https://view.notificationcenter.app/p/${url}`;\n }\n}\nclass TokenClient extends Client {\n /**\n * Store a push notification token for a user\n * @param token - The push notification token\n * @param provider - The provider of the token\n * @param device - The device information\n * @see https://www.courier.com/docs/reference/token-management/put-token\n */\n async putUserToken(props) {\n const payload = {\n provider_key: props.provider,\n ...props.device && {\n device: {\n app_id: props.device.appId,\n ad_id: props.device.adId,\n device_id: props.device.deviceId,\n platform: props.device.platform,\n manufacturer: props.device.manufacturer,\n model: props.device.model\n }\n }\n };\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n body: payload,\n validCodes: [200, 204]\n });\n }\n /**\n * Delete a push notification token for a user\n * @param token - The push notification token\n * @returns Promise resolving when token is deleted\n */\n async deleteUserToken(props) {\n await http({\n options: this.options,\n url: `${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${props.token}`,\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${this.options.accessToken}`\n },\n validCodes: [200, 204]\n });\n }\n}\nclass ListClient extends Client {\n /**\n * Subscribe a user to a list\n * @param listId - The ID of the list to subscribe to\n * @returns Promise resolving when subscription is complete\n * @see https://www.courier.com/docs/reference/lists/recipient-subscribe\n */\n async putSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n /**\n * Unsubscribe a user from a list\n * @param listId - The ID of the list to unsubscribe from\n * @returns Promise resolving when unsubscription is complete\n * @see https://www.courier.com/docs/reference/lists/delete-subscription\n */\n async deleteSubscription(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/lists/${props.listId}/subscriptions/${this.options.userId}`,\n options: this.options,\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n }\n });\n }\n}\nclass TrackingClient extends Client {\n /**\n * Post an inbound courier event\n * @param event - The event type: Example: \"New Order Placed\"\n * @param messageId - The message ID\n * @param type - The type of event: Available options: \"track\"\n * @param properties - The properties of the event\n * @returns Promise resolving to the message ID\n * @see https://www.courier.com/docs/reference/inbound/courier-track-event\n */\n async postInboundCourier(props) {\n return await http({\n url: `${this.options.apiUrls.courier.rest}/inbound/courier`,\n options: this.options,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.options.accessToken}`\n },\n body: {\n ...props,\n userId: this.options.userId\n },\n validCodes: [200, 202]\n });\n }\n /**\n * Post a tracking URL event\n * These urls are found in messages sent from Courier\n * @param url - The URL to post the event to\n * @param event - The event type: Available options: \"click\", \"open\", \"unsubscribe\"\n * @returns Promise resolving when the event is posted\n */\n async postTrackingUrl(props) {\n return await http({\n url: props.url,\n options: this.options,\n method: \"POST\",\n body: {\n event: props.event\n }\n });\n }\n}\nclass CourierClient extends Client {\n constructor(props) {\n var _a, _b;\n const showLogs = props.showLogs !== void 0 ? props.showLogs : process.env.NODE_ENV === \"development\";\n const baseOptions = {\n ...props,\n showLogs,\n apiUrls: props.apiUrls || getCourierApiUrls(),\n accessToken: props.jwt ?? props.publicApiKey\n };\n super({\n ...baseOptions,\n logger: new Logger(baseOptions.showLogs),\n apiUrls: getCourierApiUrls(baseOptions.apiUrls)\n });\n __publicField(this, \"tokens\");\n __publicField(this, \"brands\");\n __publicField(this, \"preferences\");\n __publicField(this, \"inbox\");\n __publicField(this, \"lists\");\n __publicField(this, \"tracking\");\n this.tokens = new TokenClient(this.options);\n this.brands = new BrandClient(this.options);\n this.preferences = new PreferenceClient(this.options);\n this.inbox = new InboxClient(this.options);\n this.lists = new ListClient(this.options);\n this.tracking = new TrackingClient(this.options);\n if (!this.options.jwt && !this.options.publicApiKey) {\n this.options.logger.warn(\"Courier Client initialized with no authentication method. Please provide a JWT or public API key.\");\n }\n if (this.options.publicApiKey) {\n (_a = this.options.logger) == null ? void 0 : _a.warn(\n \"Courier Warning: Public API Keys are for testing only. Please use JWTs for production.\\nYou can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token\\nThis endpoint should be called from your backend server, not the SDK.\"\n );\n }\n if (this.options.jwt && this.options.publicApiKey) {\n (_b = this.options.logger) == null ? void 0 : _b.warn(\n \"Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored.\"\n );\n }\n }\n}\nclass AuthenticationListener {\n constructor(callback) {\n __publicField(this, \"callback\");\n this.callback = callback;\n }\n remove() {\n Courier.shared.removeAuthenticationListener(this);\n }\n}\nconst _Courier = class _Courier {\n constructor() {\n /**\n * The unique identifier for the Courier instance\n */\n __publicField(this, \"id\", UUID.generate());\n /**\n * The Courier client instance\n */\n __publicField(this, \"instanceClient\");\n /**\n * The pagination limit (min: 1, max: 100)\n */\n __publicField(this, \"_paginationLimit\", 24);\n /**\n * The authentication listeners\n */\n __publicField(this, \"authenticationListeners\", []);\n }\n get paginationLimit() {\n return this._paginationLimit;\n }\n set paginationLimit(value) {\n this._paginationLimit = Math.min(Math.max(value, 1), 100);\n }\n /**\n * Get the Courier client instance\n * @returns The Courier client instance or undefined if not signed in\n */\n get client() {\n return this.instanceClient;\n }\n /**\n * Get the shared Courier instance\n * @returns The shared Courier instance\n */\n static get shared() {\n if (!_Courier.instance) {\n _Courier.instance = new _Courier();\n }\n return _Courier.instance;\n }\n /**\n * Sign in to Courier\n * @param options - The options for the Courier client\n */\n signIn(props) {\n const connectionId = props.connectionId ?? UUID.generate();\n this.instanceClient = new CourierClient({ ...props, connectionId });\n this.notifyAuthenticationListeners({ userId: props.userId });\n }\n /**\n * Sign out of Courier\n */\n signOut() {\n this.instanceClient = void 0;\n this.notifyAuthenticationListeners({ userId: void 0 });\n }\n /**\n * Register a callback to be notified of authentication state changes\n * @param callback - Function to be called when authentication state changes\n * @returns AuthenticationListener instance that can be used to remove the listener\n */\n addAuthenticationListener(callback) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Adding authentication listener\");\n const listener = new AuthenticationListener(callback);\n this.authenticationListeners.push(listener);\n return listener;\n }\n /**\n * Unregister an authentication state change listener\n * @param listener - The AuthenticationListener instance to remove\n */\n removeAuthenticationListener(listener) {\n var _a;\n (_a = this.instanceClient) == null ? void 0 : _a.options.logger.info(\"Removing authentication listener\");\n this.authenticationListeners = this.authenticationListeners.filter((l) => l !== listener);\n }\n /**\n * Notify all authentication listeners\n * @param props - The props to notify the listeners with\n */\n notifyAuthenticationListeners(props) {\n this.authenticationListeners.forEach((listener) => listener.callback(props));\n }\n};\n/**\n * The shared Courier instance\n */\n__publicField(_Courier, \"instance\");\nlet Courier = _Courier;\nexport {\n BrandClient,\n Courier,\n CourierClient,\n CourierSocket,\n InboxClient,\n ListClient,\n PreferenceClient,\n TokenClient\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { Courier } from \"@trycourier/courier-js\";\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst CourierColors = {\n black: {\n 500: \"#171717\",\n 50010: \"#1717171A\",\n 50020: \"#17171733\"\n },\n gray: {\n 200: \"#F5F5F5\",\n 400: \"#3A3A3A\",\n 500: \"#E5E5E5\",\n 600: \"#737373\"\n },\n white: {\n 500: \"#FFFFFF\",\n 50010: \"#FFFFFF1A\",\n 50020: \"#FFFFFF33\"\n },\n blue: {\n 400: \"#60A5FA\",\n 500: \"#2563EB\"\n }\n};\nconst theme = {\n light: {\n colors: {\n primary: CourierColors.black[500],\n secondary: CourierColors.white[500],\n border: CourierColors.gray[500],\n link: CourierColors.blue[500],\n icon: CourierColors.black[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n },\n dark: {\n colors: {\n primary: CourierColors.white[500],\n secondary: CourierColors.black[500],\n border: CourierColors.gray[400],\n link: CourierColors.blue[400],\n icon: CourierColors.white[500]\n },\n button: {\n cornerRadius: \"4px\"\n }\n }\n};\nconst getSystemThemeMode = () => {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n};\nconst addSystemThemeModeListener = (callback) => {\n if (typeof window === \"undefined\") {\n return () => {\n };\n }\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e) => {\n callback(e.matches ? \"dark\" : \"light\");\n };\n mediaQuery.addEventListener(\"change\", handler);\n return () => {\n mediaQuery.removeEventListener(\"change\", handler);\n };\n};\nclass CourierSystemThemeElement extends HTMLElement {\n constructor() {\n super();\n __publicField2(this, \"_currentSystemTheme\");\n __publicField2(this, \"_systemThemeCleanup\");\n this._currentSystemTheme = getSystemThemeMode();\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._currentSystemTheme = mode;\n this.onSystemThemeChange(mode);\n });\n }\n get currentSystemTheme() {\n return this._currentSystemTheme;\n }\n disconnectedCallback() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n }\n onSystemThemeChange(_) {\n }\n}\nconst baseButtonStyles = {\n borderRadius: \"4px\",\n fontSize: \"14px\"\n};\nconst CourierButtonVariants = {\n primary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.primary,\n textColor: theme[mode].colors.secondary,\n fontWeight: \"500\",\n shadow: \"none\"\n }),\n secondary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.secondary,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: `1px solid ${theme[mode].colors.border}`,\n shadow: mode === \"light\" ? \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\" : \"0px 1px 2px 0px rgba(255, 255, 255, 0.1)\"\n }),\n tertiary: (mode) => ({\n ...baseButtonStyles,\n backgroundColor: theme[mode].colors.border,\n textColor: theme[mode].colors.primary,\n fontWeight: \"500\",\n border: \"none\",\n shadow: \"none\"\n })\n};\nclass CourierButton extends CourierSystemThemeElement {\n constructor(props) {\n super();\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(props);\n shadow.appendChild(this._style);\n shadow.appendChild(this._button);\n this.updateButton(props);\n this._button.addEventListener(\"click\", (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props.onClick) {\n props.onClick();\n }\n });\n }\n getStyles(props) {\n const defaultTextColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.textColor;\n };\n const defaultBackgroundColor = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.backgroundColor;\n };\n const defaultBorder = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.border;\n };\n const defaultShadow = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.shadow;\n };\n const defaultBorderRadius = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.borderRadius;\n };\n const defaultFontSize = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontSize;\n };\n const defaultFontWeight = () => {\n const secondary = CourierButtonVariants.secondary(this.currentSystemTheme);\n return secondary.fontWeight;\n };\n return `\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${props.borderRadius ?? defaultBorderRadius()};\n font-weight: ${props.fontWeight ?? defaultFontWeight()};\n font-family: ${props.fontFamily ?? \"inherit\"};\n font-size: ${props.fontSize ?? defaultFontSize()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${props.backgroundColor ?? defaultBackgroundColor()};\n color: ${props.textColor ?? defaultTextColor()};\n border: ${props.border ?? defaultBorder()};\n box-shadow: ${props.shadow ?? defaultShadow()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${props.hoverBackgroundColor ? `background-color: ${props.hoverBackgroundColor};` : \"filter: brightness(0.9);\"}\n }\n\n button:active {\n ${props.activeBackgroundColor ? `background-color: ${props.activeBackgroundColor};` : \"filter: brightness(0.8);\"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `;\n }\n updateButton(props) {\n if (props.text) {\n this._button.textContent = props.text;\n }\n this._style.textContent = this.getStyles(props);\n }\n}\nif (!customElements.get(\"courier-button\")) {\n customElements.define(\"courier-button\", CourierButton);\n}\nconst CourierIconSVGs = {\n inbox: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z\" fill=\"currentColor\"/>\n</svg>`,\n archive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z\" fill=\"currentColor\"/>\n</svg>`,\n check: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z\" fill=\"currentColor\"/>\n</svg>`,\n filter: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z\" fill=\"currentColor\"/>\n</svg>`,\n overflow: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z\" fill=\"currentColor\"/>\n</svg>`,\n read: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z\" fill=\"currentColor\"/>\n</svg>`,\n archiveRead: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z\" fill=\"currentColor\"/>\n</svg>`,\n unread: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z\" fill=\"currentColor\"/>\n</svg>`,\n unarchive: `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z\" fill=\"currentColor\"/>\n</svg>`\n};\nclass CourierIcon extends HTMLElement {\n constructor(color, svg) {\n super();\n __publicField2(this, \"_color\");\n __publicField2(this, \"_svg\");\n __publicField2(this, \"_iconContainer\");\n __publicField2(this, \"_style\");\n this._color = color ?? CourierColors.black[500];\n this._svg = svg;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._iconContainer = document.createElement(\"div\");\n shadow.appendChild(this._iconContainer);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._color);\n shadow.appendChild(this._style);\n this.refresh();\n }\n getStyles(color) {\n return `\n :host {\n display: inline-block;\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n svg {\n width: 24px;\n height: 24px;\n color: ${color};\n }\n `;\n }\n refresh() {\n if (this._svg) {\n this._iconContainer.innerHTML = this._svg;\n }\n if (this._color) {\n this._style.textContent = this.getStyles(this._color);\n }\n }\n updateColor(color) {\n this._color = color;\n this.refresh();\n }\n updateSVG(svg) {\n this._svg = svg;\n this.refresh();\n }\n}\nif (!customElements.get(\"courier-icon\")) {\n customElements.define(\"courier-icon\", CourierIcon);\n}\nclass CourierLink extends HTMLElement {\n constructor() {\n super();\n __publicField2(this, \"link\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this.link = document.createElement(\"a\");\n this.link.setAttribute(\"part\", \"link\");\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: inline-block;\n }\n\n a {\n text-decoration: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s ease;\n font-family: var(--courier-link-font-family, inherit);\n font-size: var(--courier-link-font-size, inherit);\n }\n\n /* Variants */\n a[data-variant=\"primary\"][data-mode=\"light\"] {\n color: var(--courier-link-color, ${theme.light.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"light\"]:active {\n opacity: 0.6;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"] {\n color: var(--courier-link-color, ${theme.dark.colors.link});\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant=\"primary\"][data-mode=\"dark\"]:active {\n opacity: 0.6;\n }\n\n a[data-underline=\"true\"] {\n text-decoration: underline;\n }\n\n a:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n }\n `;\n shadow.appendChild(style);\n shadow.appendChild(this.link);\n this.updateVariant();\n this.updateUnderline();\n this.updateMode();\n }\n connectedCallback() {\n const slot = document.createElement(\"slot\");\n this.link.appendChild(slot);\n this.updateHref();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (name) {\n case \"href\":\n this.updateHref();\n break;\n case \"variant\":\n case \"mode\":\n this.updateVariant();\n break;\n case \"disabled\":\n this.link.style.pointerEvents = this.hasAttribute(\"disabled\") ? \"none\" : \"auto\";\n this.link.style.opacity = this.hasAttribute(\"disabled\") ? \"0.6\" : \"1\";\n break;\n case \"color\":\n this.updateColor();\n break;\n case \"underline\":\n this.updateUnderline();\n break;\n case \"target\":\n this.updateTarget();\n break;\n case \"font-family\":\n this.updateFontFamily();\n break;\n case \"font-size\":\n this.updateFontSize();\n break;\n }\n }\n updateHref() {\n const href = this.getAttribute(\"href\");\n if (href) {\n this.link.href = href;\n }\n }\n updateVariant() {\n const variant = this.getAttribute(\"variant\") || \"primary\";\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-variant\", variant);\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateColor() {\n const color = this.getAttribute(\"color\");\n if (color) {\n this.link.style.setProperty(\"--courier-link-color\", color);\n } else {\n this.link.style.removeProperty(\"--courier-link-color\");\n }\n }\n updateUnderline() {\n const underline = this.getAttribute(\"underline\") === \"true\";\n this.link.setAttribute(\"data-underline\", underline.toString());\n }\n updateMode() {\n const mode = this.getAttribute(\"mode\") || \"light\";\n this.link.setAttribute(\"data-mode\", mode);\n }\n updateTarget() {\n const target = this.getAttribute(\"target\");\n if (target) {\n this.link.target = target;\n }\n }\n updateFontFamily() {\n const fontFamily = this.getAttribute(\"font-family\");\n if (fontFamily) {\n this.link.style.setProperty(\"--courier-link-font-family\", fontFamily);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-family\");\n }\n }\n updateFontSize() {\n const fontSize = this.getAttribute(\"font-size\");\n if (fontSize) {\n this.link.style.setProperty(\"--courier-link-font-size\", fontSize);\n } else {\n this.link.style.removeProperty(\"--courier-link-font-size\");\n }\n }\n}\n__publicField2(CourierLink, \"observedAttributes\", [\n \"href\",\n \"variant\",\n \"disabled\",\n \"color\",\n \"underline\",\n \"mode\",\n \"target\",\n \"font-family\",\n \"font-size\"\n]);\nif (!customElements.get(\"courier-link\")) {\n customElements.define(\"courier-link\", CourierLink);\n}\nclass CourierElement extends CourierSystemThemeElement {\n constructor() {\n super();\n __publicField2(this, \"shadow\");\n this.shadow = this.attachShadow({ mode: \"open\" });\n }\n // Build the element with a factory function\n build(newElement) {\n if (newElement === null) {\n this.shadow.replaceChildren();\n return;\n }\n const element = newElement ?? this.defaultElement();\n this.shadow.replaceChildren(element);\n }\n // Default element to be used if no factory is provided\n defaultElement() {\n const element = document.createElement(\"div\");\n element.textContent = \"Default Element Factory\";\n element.style.cssText = `\n background-color: red;\n text-align: center;\n padding: 12px;\n `;\n return element;\n }\n}\nclass CourierInfoState extends CourierElement {\n constructor(props) {\n super();\n __publicField2(this, \"_props\");\n __publicField2(this, \"_title\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_buttonClickCallback\", null);\n this._props = props;\n }\n defaultElement() {\n var _a, _b;\n const container = document.createElement(\"div\");\n this._title = document.createElement(\"h2\");\n if ((_a = this._props.title) == null ? void 0 : _a.text) {\n this._title.textContent = this._props.title.text;\n }\n this._button = new CourierButton(this._props.button ?? CourierButtonVariants.secondary(this.currentSystemTheme));\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._props);\n container.className = \"container\";\n container.appendChild(this._style);\n container.appendChild(this._title);\n container.appendChild(this._button);\n this.shadow.appendChild(container);\n (_b = this._button) == null ? void 0 : _b.addEventListener(\"click\", () => {\n if (this._buttonClickCallback) {\n this._buttonClickCallback();\n }\n });\n return container;\n }\n onSystemThemeChange(_) {\n this.updateStyles(this._props);\n }\n getStyles(props) {\n var _a, _b, _c, _d;\n return `\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n text-align: center;\n padding: 24px;\n }\n\n .container h2 {\n margin: 0;\n color: ${((_a = props.title) == null ? void 0 : _a.textColor) ?? \"red\"};\n font-size: ${((_b = props.title) == null ? void 0 : _b.fontSize) ?? \"16px\"};\n font-weight: ${((_c = props.title) == null ? void 0 : _c.fontWeight) ?? \"500\"};\n font-family: ${((_d = props.title) == null ? void 0 : _d.fontFamily) ?? \"inherit\"};\n }\n `;\n }\n updateStyles(props) {\n this._props = props;\n if (this._style) {\n this._style.textContent = this.getStyles(props);\n }\n if (this._button) {\n this._button.updateButton(props.button);\n }\n }\n setButtonClickCallback(callback) {\n this._buttonClickCallback = callback;\n }\n}\nif (!customElements.get(\"courier-info-state\")) {\n customElements.define(\"courier-info-state\", CourierInfoState);\n}\nclass CourierIconButton extends HTMLElement {\n constructor(svg, color, backgroundColor, hoverBackgroundColor, activeBackgroundColor, borderRadius, height, width) {\n super();\n __publicField2(this, \"_backgroundColor\");\n __publicField2(this, \"_hoverBackgroundColor\");\n __publicField2(this, \"_activeBackgroundColor\");\n __publicField2(this, \"_borderRadius\");\n __publicField2(this, \"_height\");\n __publicField2(this, \"_width\");\n __publicField2(this, \"_style\");\n __publicField2(this, \"_button\");\n __publicField2(this, \"_icon\");\n this._borderRadius = borderRadius;\n this._backgroundColor = backgroundColor;\n this._hoverBackgroundColor = hoverBackgroundColor;\n this._activeBackgroundColor = activeBackgroundColor;\n this._height = height;\n this._width = width;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._button = document.createElement(\"button\");\n this._button.setAttribute(\"part\", \"button\");\n this._icon = new CourierIcon(color, svg);\n this._style = document.createElement(\"style\");\n this.refresh();\n shadow.appendChild(this._style);\n this._button.appendChild(this._icon);\n shadow.appendChild(this._button);\n }\n refresh() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: inline-block;\n border-radius: ${this._borderRadius ?? \"50%\"};\n }\n\n button {\n border: none;\n border-radius: ${this._borderRadius ?? \"50%\"};\n cursor: pointer;\n width: ${this._width ?? \"36px\"};\n height: ${this._height ?? \"36px\"};\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${this._backgroundColor ?? \"transparent\"};\n transition: background-color 0.2s ease;\n touch-action: manipulation;\n }\n\n button:hover {\n background-color: ${this._hoverBackgroundColor ?? \"red\"};\n }\n\n button:active {\n background-color: ${this._activeBackgroundColor ?? \"red\"};\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n [part=\"icon\"] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n }\n `;\n }\n updateIconColor(color) {\n this._icon.updateColor(color);\n }\n updateIconSVG(svg) {\n this._icon.updateSVG(svg);\n }\n updateBackgroundColor(color) {\n this._backgroundColor = color;\n this.refresh();\n }\n updateHoverBackgroundColor(color) {\n this._hoverBackgroundColor = color;\n this.refresh();\n }\n updateActiveBackgroundColor(color) {\n this._activeBackgroundColor = color;\n this.refresh();\n }\n}\nif (!customElements.get(\"courier-icon-button\")) {\n customElements.define(\"courier-icon-button\", CourierIconButton);\n}\nconst components = [\n { name: \"courier-button\", class: CourierButton },\n { name: \"courier-icon\", class: CourierIcon },\n { name: \"courier-link\", class: CourierLink },\n { name: \"courier-info-state\", class: CourierInfoState },\n { name: \"courier-icon-button\", class: CourierIconButton }\n];\ncomponents.forEach(({ name, class: componentClass }) => {\n if (!customElements.get(name)) {\n customElements.define(name, componentClass);\n }\n});\nfunction copyMessage(message) {\n const copy = {\n ...message\n };\n if (message.actions) {\n copy.actions = message.actions.map((action) => copyInboxAction(action));\n }\n if (message.data) {\n copy.data = JSON.parse(JSON.stringify(message.data));\n }\n if (message.tags) {\n copy.tags = [...message.tags];\n }\n if (message.trackingIds) {\n copy.trackingIds = { ...message.trackingIds };\n }\n return copy;\n}\nfunction copyInboxAction(action) {\n const copy = {\n ...action\n };\n if (action.data) {\n copy.data = JSON.parse(JSON.stringify(action.data));\n }\n return copy;\n}\nfunction copyInboxDataSet(dataSet) {\n return {\n ...dataSet,\n messages: dataSet.messages.map((message) => copyMessage(message))\n };\n}\nfunction getMessageTime(message) {\n if (!message.created) return \"Now\";\n const now = /* @__PURE__ */ new Date();\n const messageDate = new Date(message.created);\n const diffInSeconds = Math.floor((now.getTime() - messageDate.getTime()) / 1e3);\n if (diffInSeconds < 60) return `${diffInSeconds}s`;\n if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m`;\n if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h`;\n if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d`;\n if (diffInSeconds < 31536e3) return `${Math.floor(diffInSeconds / 604800)}w`;\n return `${Math.floor(diffInSeconds / 31536e3)}y`;\n}\nclass CourierListItemActionMenu extends HTMLElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_options\", []);\n // Components\n __publicField(this, \"_style\");\n this._theme = theme2;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n shadow.appendChild(this._style);\n const menu = document.createElement(\"ul\");\n menu.className = \"menu\";\n shadow.appendChild(menu);\n }\n getStyles() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n return `\n :host {\n display: block;\n position: absolute;\n background: ${(menu == null ? void 0 : menu.backgroundColor) ?? \"red\"};\n border: ${(menu == null ? void 0 : menu.border) ?? \"1px solid red\"};\n border-radius: ${(menu == null ? void 0 : menu.borderRadius) ?? \"0px\"};\n box-shadow: ${(menu == null ? void 0 : menu.shadow) ?? \"0 2px 8px red\"};\n user-select: none;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s;\n overflow: hidden;\n }\n\n :host(.visible) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul.menu {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n }\n\n li.menu-item {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom: none;\n background: transparent;\n }\n `;\n }\n setOptions(options) {\n this._options = options;\n this.renderMenu();\n }\n renderMenu() {\n var _a, _b, _c, _d;\n const menu = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(\"ul.menu\");\n if (!menu) return;\n menu.innerHTML = \"\";\n const menuTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.menu;\n const cancelEvent = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._options.forEach((opt) => {\n var _a2, _b2, _c2;\n const icon = new CourierIconButton(opt.icon.svg, opt.icon.color, menuTheme == null ? void 0 : menuTheme.backgroundColor, (_a2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _a2.hoverBackgroundColor, (_b2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _b2.activeBackgroundColor, (_c2 = menuTheme == null ? void 0 : menuTheme.item) == null ? void 0 : _c2.borderRadius);\n const handleInteraction = (e) => {\n cancelEvent(e);\n opt.onClick();\n };\n icon.addEventListener(\"click\", handleInteraction);\n icon.addEventListener(\"touchstart\", cancelEvent);\n icon.addEventListener(\"touchend\", handleInteraction);\n icon.addEventListener(\"touchmove\", cancelEvent);\n icon.addEventListener(\"mousedown\", cancelEvent);\n icon.addEventListener(\"mouseup\", cancelEvent);\n menu.appendChild(icon);\n });\n }\n show() {\n this.classList.add(\"visible\");\n }\n hide() {\n this.classList.remove(\"visible\");\n }\n}\nif (!customElements.get(\"courier-list-item-menu\")) {\n customElements.define(\"courier-list-item-menu\", CourierListItemActionMenu);\n}\nconst _CourierInboxDatastore = class _CourierInboxDatastore {\n constructor() {\n __publicField(this, \"_inboxDataSet\");\n __publicField(this, \"_archiveDataSet\");\n __publicField(this, \"_dataStoreListeners\", []);\n __publicField(this, \"_unreadCount\");\n __publicField(this, \"isPaginatingInbox\", false);\n __publicField(this, \"isPaginatingArchive\", false);\n }\n static get shared() {\n if (!_CourierInboxDatastore.instance) {\n _CourierInboxDatastore.instance = new _CourierInboxDatastore();\n }\n return _CourierInboxDatastore.instance;\n }\n get unreadCount() {\n return this._unreadCount ?? 0;\n }\n get inboxDataSet() {\n return this._inboxDataSet ?? { feedType: \"inbox\", messages: [], canPaginate: false, paginationCursor: null };\n }\n get archiveDataSet() {\n return this._archiveDataSet ?? { feedType: \"archive\", messages: [], canPaginate: false, paginationCursor: null };\n }\n addDataStoreListener(listener) {\n this._dataStoreListeners.push(listener);\n }\n removeDataStoreListener(listener) {\n this._dataStoreListeners = this._dataStoreListeners.filter((l) => l !== listener);\n }\n async fetchDataSet(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n if (props.canUseCache) {\n switch (props.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n return this._inboxDataSet;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n return this._archiveDataSet;\n }\n break;\n }\n }\n const response = props.feedType === \"inbox\" ? await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getMessages()) : await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getArchivedMessages());\n return {\n feedType: props.feedType,\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n }\n async fetchUnreadCount(props) {\n var _a;\n if (props.canUseCache && this._unreadCount !== void 0) {\n return this._unreadCount;\n }\n const unreadCount = await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.getUnreadMessageCount());\n return unreadCount ?? 0;\n }\n async load(props) {\n var _a, _b, _c;\n try {\n if (!((_a = Courier.shared.client) == null ? void 0 : _a.options.userId)) {\n throw new Error(\"User is not signed in\");\n }\n const properties = props ?? { feedType: \"inbox\", canUseCache: true };\n const [dataSet, unreadCount] = await Promise.all([\n this.fetchDataSet(properties),\n this.fetchUnreadCount(properties)\n ]);\n switch (properties.feedType) {\n case \"inbox\":\n this._inboxDataSet = dataSet;\n break;\n case \"archive\":\n this._archiveDataSet = dataSet;\n break;\n }\n this._unreadCount = unreadCount;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d;\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, dataSet, properties.feedType);\n (_d = (_c2 = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c2, this._unreadCount ?? 0);\n });\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error loading inbox:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Listen for inbox and archive dataset updates. */\n async listenForUpdates() {\n var _a, _b;\n try {\n await this.ensureDataSetsLoaded();\n await this.connectSocket();\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Error listening for updates:\", error);\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onError) == null ? void 0 : _b2.call(_a2, error);\n });\n }\n }\n /** Fetch either/both datasets if they aren't already loaded. */\n async ensureDataSetsLoaded() {\n let dataSetPromises = [];\n if (!this._inboxDataSet) {\n dataSetPromises.push(this.load({ feedType: \"inbox\", canUseCache: true }));\n }\n if (!this._archiveDataSet) {\n dataSetPromises.push(this.load({ feedType: \"archive\", canUseCache: true }));\n }\n await Promise.all(dataSetPromises);\n }\n async connectSocket() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const socket = (_a = Courier.shared.client) == null ? void 0 : _a.inbox.socket;\n try {\n if (!socket) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.info(\"CourierInbox socket not available\");\n return;\n }\n (_f = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _f.info(\"CourierInbox socket connectionId:\", (_e = Courier.shared.client) == null ? void 0 : _e.options.connectionId);\n if (socket.isConnected) {\n (_h = (_g = Courier.shared.client) == null ? void 0 : _g.options.logger) == null ? void 0 : _h.info(\"CourierInbox socket already connected. Socket will not attempt reconnection.\");\n return;\n }\n socket.receivedMessage = (message) => {\n this.addMessage(message, 0, \"inbox\");\n };\n socket.receivedMessageEvent = (event) => {\n let message;\n if (event.messageId) {\n message = this.getMessage({ messageId: event.messageId });\n }\n switch (event.event) {\n case \"mark-all-read\":\n this.readAllMessages({ canCallApi: false });\n break;\n case \"read\":\n if (message) {\n this.readMessage({ message, canCallApi: false });\n }\n break;\n case \"unread\":\n if (message) {\n this.unreadMessage({ message, canCallApi: false });\n }\n break;\n case \"opened\":\n if (message) {\n this.openMessage({ message, canCallApi: false });\n }\n break;\n case \"archive\":\n if (message) {\n this.archiveMessage({ message, canCallApi: false });\n }\n break;\n case \"archive-read\":\n this.archiveReadMessages({ canCallApi: false });\n break;\n case \"click\":\n if (message) {\n this.clickMessage({ message, canCallApi: false });\n }\n break;\n case \"unarchive\":\n if (message) {\n this.unarchiveMessage({ message, canCallApi: false });\n }\n break;\n case \"unopened\":\n break;\n }\n };\n await socket.connect();\n await socket.sendSubscribe();\n socket.keepAlive();\n (_j = (_i = Courier.shared.client) == null ? void 0 : _i.options.logger) == null ? void 0 : _j.info(\"CourierInbox socket connected\");\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Failed to connect socket:\", error);\n }\n }\n /**\n * Get a message by messageId from the inbox or archive data set\n * @param props - The message ID\n * @returns The message or undefined if it is not found\n */\n getMessage(props) {\n var _a, _b;\n return ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.find((m) => m.messageId === props.messageId)) ?? ((_b = this._archiveDataSet) == null ? void 0 : _b.messages.find((m) => m.messageId === props.messageId));\n }\n /**\n * Fetch the next page of messages\n * @param props - The feed type\n * @returns The next page of messages or null if there is no next page\n */\n async fetchNextPageOfMessages(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n switch (props.feedType) {\n case \"inbox\":\n if (this.isPaginatingInbox) {\n return null;\n }\n if (((_a = this._inboxDataSet) == null ? void 0 : _a.canPaginate) && this._inboxDataSet.paginationCursor) {\n try {\n this.isPaginatingInbox = true;\n const response = await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.getMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._inboxDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"inbox\",\n messages: ((_d = (_c = response == null ? void 0 : response.data) == null ? void 0 : _c.messages) == null ? void 0 : _d.nodes) ?? [],\n canPaginate: ((_g = (_f = (_e = response == null ? void 0 : response.data) == null ? void 0 : _e.messages) == null ? void 0 : _f.pageInfo) == null ? void 0 : _g.hasNextPage) ?? false,\n paginationCursor: ((_j = (_i = (_h = response == null ? void 0 : response.data) == null ? void 0 : _h.messages) == null ? void 0 : _i.pageInfo) == null ? void 0 : _j.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_l = (_k = Courier.shared.client) == null ? void 0 : _k.options.logger) == null ? void 0 : _l.error(\"Error fetching next page of inbox messages:\", error);\n return null;\n } finally {\n this.isPaginatingInbox = false;\n }\n }\n break;\n case \"archive\":\n if (this.isPaginatingArchive) {\n return null;\n }\n if (((_m = this._archiveDataSet) == null ? void 0 : _m.canPaginate) && this._archiveDataSet.paginationCursor) {\n try {\n this.isPaginatingArchive = true;\n const response = await ((_n = Courier.shared.client) == null ? void 0 : _n.inbox.getArchivedMessages({\n paginationLimit: Courier.shared.paginationLimit,\n startCursor: this._archiveDataSet.paginationCursor\n }));\n const dataSet = {\n feedType: \"archive\",\n messages: ((_p = (_o = response == null ? void 0 : response.data) == null ? void 0 : _o.messages) == null ? void 0 : _p.nodes) ?? [],\n canPaginate: ((_s = (_r = (_q = response == null ? void 0 : response.data) == null ? void 0 : _q.messages) == null ? void 0 : _r.pageInfo) == null ? void 0 : _s.hasNextPage) ?? false,\n paginationCursor: ((_v = (_u = (_t = response == null ? void 0 : response.data) == null ? void 0 : _t.messages) == null ? void 0 : _u.pageInfo) == null ? void 0 : _v.startCursor) ?? null\n };\n this.addPage(dataSet);\n return dataSet;\n } catch (error) {\n (_x = (_w = Courier.shared.client) == null ? void 0 : _w.options.logger) == null ? void 0 : _x.error(\"Error fetching next page of archived messages:\", error);\n return null;\n } finally {\n this.isPaginatingArchive = false;\n }\n }\n break;\n }\n return null;\n }\n /**\n * Check if the datastore is loaded and ready to perform mutations\n * @returns True if the datastore is loaded and ready to perform mutations, false otherwise\n */\n canMutate() {\n return !!(Courier.shared.client && this._inboxDataSet && this._archiveDataSet);\n }\n async readMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount - 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.read({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error reading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unreadMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const snapshot = this.getMessageSnapshot(message);\n if (!snapshot.message.read) {\n return;\n }\n try {\n snapshot.message.read = void 0;\n this.applyMessageSnapshot(snapshot);\n this._unreadCount = datastoreSnapshot.unreadCount + 1;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2;\n (_b2 = (_a2 = listener.events).onUnreadCountChange) == null ? void 0 : _b2.call(_a2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.unread({ messageId: message.messageId }));\n }\n } catch (error) {\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error unreading message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async openMessage({ message, canCallApi = true }) {\n var _a, _b, _c;\n if (!this.canMutate()) {\n return;\n }\n const snapshot = this.getMessageSnapshot(message);\n if (snapshot.inboxIndex === void 0 && snapshot.archiveIndex === void 0) {\n return;\n }\n if (snapshot.message.opened) {\n return;\n }\n try {\n message.opened = (/* @__PURE__ */ new Date()).toISOString();\n this.applyMessageSnapshot(snapshot);\n if (canCallApi) {\n await ((_a = Courier.shared.client) == null ? void 0 : _a.inbox.open({ messageId: message.messageId }));\n }\n } catch (error) {\n this.applyMessageSnapshot(snapshot);\n (_c = (_b = Courier.shared.client) == null ? void 0 : _b.options.logger) == null ? void 0 : _c.error(\"Error opening message:\", error);\n }\n }\n async clickMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n try {\n if (((_a = message.trackingIds) == null ? void 0 : _a.clickTrackingId) && canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.click({\n messageId: message.messageId,\n trackingId: (_b = message.trackingIds) == null ? void 0 : _b.clickTrackingId\n }));\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error clicking message:\", error);\n }\n }\n async archiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.inboxIndex === void 0) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n message.archived = (/* @__PURE__ */ new Date()).toISOString();\n this.removeMessage(message, messageSnapshot.inboxIndex, \"inbox\");\n if ((_a = this._archiveDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this.addMessage(message, insertIndex, \"archive\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async unarchiveMessage({ message, canCallApi = true }) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n const messageSnapshot = this.getMessageSnapshot(message);\n if (messageSnapshot.archiveIndex === void 0) {\n return;\n }\n try {\n messageSnapshot.message.archived = void 0;\n this.removeMessage(message, messageSnapshot.archiveIndex, \"archive\");\n if ((_a = this._inboxDataSet) == null ? void 0 : _a.messages) {\n const insertIndex = this.findInsertIndex(message, this._inboxDataSet);\n this.addMessage(message, insertIndex, \"inbox\");\n }\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.unarchive({ messageId: message.messageId }));\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error unarchiving message:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveReadMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n const messagesToArchive = ((_a = this._inboxDataSet) == null ? void 0 : _a.messages.filter((message) => message.read)) ?? [];\n messagesToArchive.forEach((message) => {\n var _a2, _b2, _c2;\n message.archived = timestamp;\n const inboxIndex = (_a2 = this._inboxDataSet) == null ? void 0 : _a2.messages.findIndex((m) => m.messageId === message.messageId);\n if (inboxIndex !== void 0 && inboxIndex !== -1) {\n (_b2 = this._inboxDataSet) == null ? void 0 : _b2.messages.splice(inboxIndex, 1);\n }\n if ((_c2 = this._archiveDataSet) == null ? void 0 : _c2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveRead());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving read messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async archiveAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n var _a2;\n message.archived = timestamp;\n if ((_a2 = this._archiveDataSet) == null ? void 0 : _a2.messages) {\n const insertIndex = this.findInsertIndex(message, this._archiveDataSet);\n this._archiveDataSet.messages.splice(insertIndex, 0, message);\n }\n });\n this._inboxDataSet = {\n messages: [],\n canPaginate: false,\n paginationCursor: null,\n feedType: \"inbox\"\n };\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, this._unreadCount);\n });\n if (canCallApi) {\n await ((_b = Courier.shared.client) == null ? void 0 : _b.inbox.archiveAll());\n }\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Error archiving all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n async readAllMessages({ canCallApi = true } = {}) {\n var _a, _b, _c, _d, _e;\n if (!this.canMutate()) {\n return;\n }\n const datastoreSnapshot = this.getDatastoreSnapshot(this.unreadCount, this._inboxDataSet, this._archiveDataSet);\n try {\n const timestamp = (/* @__PURE__ */ new Date()).toISOString();\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.forEach((message) => {\n if (!message.read) {\n message.read = timestamp;\n }\n });\n this._unreadCount = 0;\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c2, _d2, _e2, _f;\n if (this._inboxDataSet) {\n (_b2 = (_a2 = listener.events).onDataSetChange) == null ? void 0 : _b2.call(_a2, this._inboxDataSet, \"inbox\");\n }\n if (this._archiveDataSet) {\n (_d2 = (_c2 = listener.events).onDataSetChange) == null ? void 0 : _d2.call(_c2, this._archiveDataSet, \"archive\");\n }\n (_f = (_e2 = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e2, this._unreadCount);\n });\n if (canCallApi) {\n await ((_c = Courier.shared.client) == null ? void 0 : _c.inbox.readAll());\n }\n } catch (error) {\n (_e = (_d = Courier.shared.client) == null ? void 0 : _d.options.logger) == null ? void 0 : _e.error(\"Error reading all messages:\", error);\n this.applyDatastoreSnapshot(datastoreSnapshot);\n }\n }\n /**\n * Find the insert index for a new message in a data set\n * @param newMessage - The new message to insert\n * @param dataSet - The data set to insert the message into\n * @returns The index to insert the message at\n */\n findInsertIndex(newMessage, dataSet) {\n const messages = dataSet.messages;\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n if (message.created && newMessage.created && message.created < newMessage.created) {\n return i;\n }\n }\n return messages.length;\n }\n addPage(dataSet) {\n switch (dataSet.feedType) {\n case \"inbox\":\n if (this._inboxDataSet) {\n this._inboxDataSet.canPaginate = dataSet.canPaginate;\n this._inboxDataSet.paginationCursor = dataSet.paginationCursor;\n this._inboxDataSet.messages = [...this._inboxDataSet.messages, ...dataSet.messages];\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.canPaginate = dataSet.canPaginate;\n this._archiveDataSet.paginationCursor = dataSet.paginationCursor;\n this._archiveDataSet.messages = [...this._archiveDataSet.messages, ...dataSet.messages];\n }\n break;\n }\n this._dataStoreListeners.forEach(\n (listener) => {\n var _a, _b;\n return (_b = (_a = listener.events).onPageAdded) == null ? void 0 : _b.call(_a, dataSet, dataSet.feedType);\n }\n );\n }\n addMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount + 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 0, message);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 0, message);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageAdd) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n removeMessage(message, index, feedType) {\n var _a, _b;\n switch (feedType) {\n case \"inbox\":\n if (!message.read && this._unreadCount !== void 0) {\n this._unreadCount = this._unreadCount - 1;\n }\n (_a = this._inboxDataSet) == null ? void 0 : _a.messages.splice(index, 1);\n break;\n case \"archive\":\n (_b = this._archiveDataSet) == null ? void 0 : _b.messages.splice(index, 1);\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a2, _b2, _c, _d;\n (_b2 = (_a2 = listener.events).onMessageRemove) == null ? void 0 : _b2.call(_a2, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Apply a message snapshot to the data store\n * @param snapshot - The message snapshot to apply\n */\n applyMessageSnapshot(snapshot) {\n if (snapshot.archiveIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.archiveIndex, \"archive\");\n }\n if (snapshot.inboxIndex !== void 0) {\n this.updateMessage(snapshot.message, snapshot.inboxIndex, \"inbox\");\n }\n }\n applyDatastoreSnapshot(snapshot) {\n const { unreadCount, inbox, archive } = snapshot;\n this._inboxDataSet = inbox;\n this._archiveDataSet = archive;\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d, _e, _f;\n (_b = (_a = listener.events).onDataSetChange) == null ? void 0 : _b.call(_a, inbox, \"inbox\");\n (_d = (_c = listener.events).onDataSetChange) == null ? void 0 : _d.call(_c, archive, \"archive\");\n (_f = (_e = listener.events).onUnreadCountChange) == null ? void 0 : _f.call(_e, unreadCount);\n });\n }\n /**\n * Update a message in the data store\n * @param message - The message to update\n * @param index - The index of the message\n * @param feedType - The feed type of the message\n */\n updateMessage(message, index, feedType) {\n switch (feedType) {\n case \"inbox\":\n if (this._unreadCount !== void 0 && !message.archived) {\n if (message.read) {\n this._unreadCount = Math.max(0, this._unreadCount - 1);\n }\n if (!message.read) {\n this._unreadCount = this._unreadCount + 1;\n }\n }\n if (this._inboxDataSet) {\n this._inboxDataSet.messages[index] = message;\n }\n break;\n case \"archive\":\n if (this._archiveDataSet) {\n this._archiveDataSet.messages[index] = message;\n }\n break;\n }\n this._dataStoreListeners.forEach((listener) => {\n var _a, _b, _c, _d;\n (_b = (_a = listener.events).onMessageUpdate) == null ? void 0 : _b.call(_a, message, index, feedType);\n (_d = (_c = listener.events).onUnreadCountChange) == null ? void 0 : _d.call(_c, this._unreadCount ?? 0);\n });\n }\n /**\n * Copy an inbox data set\n * @param dataSet - The inbox data set to copy\n * @returns A copy of the inbox data set\n */\n getDatastoreSnapshot(unreadCount, inboxDataSet, archiveDataSet) {\n return {\n unreadCount,\n inbox: copyInboxDataSet(inboxDataSet),\n archive: copyInboxDataSet(archiveDataSet)\n };\n }\n /**\n * Copy an inbox message with its archive and inbox indices\n * @param message - The inbox message to copy\n * @returns A copy of the inbox message with its archive and inbox indices\n */\n getMessageSnapshot(message) {\n const archiveIndex = this._archiveDataSet ? this._archiveDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n const inboxIndex = this._inboxDataSet ? this._inboxDataSet.messages.findIndex((m) => m.messageId === message.messageId) : void 0;\n return {\n message: copyMessage(message),\n archiveIndex,\n inboxIndex\n };\n }\n};\n__publicField(_CourierInboxDatastore, \"instance\");\nlet CourierInboxDatastore = _CourierInboxDatastore;\nclass CourierListItem extends HTMLElement {\n constructor(theme2) {\n super();\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_message\", null);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isMobile\", false);\n // Elements\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_subtitleElement\");\n __publicField(this, \"_timeElement\");\n __publicField(this, \"_style\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_unreadIndicator\");\n __publicField(this, \"_actionsContainer\");\n // Touch gestures\n __publicField(this, \"_longPressTimeout\", null);\n __publicField(this, \"_isLongPress\", false);\n // Callbacks\n __publicField(this, \"onItemClick\", null);\n __publicField(this, \"onItemLongPress\", null);\n __publicField(this, \"onItemActionClick\", null);\n this._theme = theme2;\n this._isMobile = \"ontouchstart\" in window;\n const shadow = this.attachShadow({ mode: \"open\" });\n const contentContainer = document.createElement(\"div\");\n contentContainer.className = \"content-container\";\n this._titleElement = document.createElement(\"p\");\n this._titleElement.setAttribute(\"part\", \"title\");\n this._subtitleElement = document.createElement(\"p\");\n this._subtitleElement.setAttribute(\"part\", \"subtitle\");\n this._actionsContainer = document.createElement(\"div\");\n this._actionsContainer.className = \"actions-container\";\n contentContainer.appendChild(this._titleElement);\n contentContainer.appendChild(this._subtitleElement);\n contentContainer.appendChild(this._actionsContainer);\n this._timeElement = document.createElement(\"p\");\n this._timeElement.setAttribute(\"part\", \"time\");\n this._unreadIndicator = document.createElement(\"div\");\n this._unreadIndicator.className = \"unread-indicator\";\n this._style = document.createElement(\"style\");\n this._refreshStyles();\n this._menu = new CourierListItemActionMenu(this._theme);\n this._menu.setOptions(this._getMenuOptions());\n shadow.append(this._style, this._unreadIndicator, contentContainer, this._timeElement, this._menu);\n const cancelPropagation = (e) => {\n e.stopPropagation();\n e.preventDefault();\n };\n this._menu.addEventListener(\"mousedown\", cancelPropagation);\n this._menu.addEventListener(\"pointerdown\", cancelPropagation);\n this._menu.addEventListener(\"click\", cancelPropagation);\n this.addEventListener(\"click\", (e) => {\n if (this._menu.contains(e.target) || e.composedPath().includes(this._menu)) {\n return;\n }\n if (this._message && this.onItemClick && !(e.target instanceof CourierIcon) && !this._isLongPress) {\n this.onItemClick(this._message);\n }\n });\n this._setupHoverBehavior();\n this._setupLongPressBehavior();\n }\n _setupHoverBehavior() {\n if (!this._isMobile) {\n this.addEventListener(\"mouseenter\", () => {\n this._isLongPress = false;\n this._showMenu();\n });\n this.addEventListener(\"mouseleave\", () => this._hideMenu());\n }\n }\n _setupLongPressBehavior() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (!(menu == null ? void 0 : menu.enabled)) {\n return;\n }\n const longPress = menu.longPress;\n this.addEventListener(\n \"touchstart\",\n () => {\n this._longPressTimeout = window.setTimeout(() => {\n this._isLongPress = true;\n this._showMenu();\n if (this._message && this.onItemLongPress) {\n this.onItemLongPress(this._message);\n if (navigator.vibrate) {\n navigator.vibrate((longPress == null ? void 0 : longPress.vibrationDuration) ?? 50);\n }\n }\n setTimeout(() => {\n this._hideMenu();\n this._isLongPress = false;\n }, (longPress == null ? void 0 : longPress.displayDuration) ?? 2e3);\n }, 650);\n },\n { passive: true }\n );\n this.addEventListener(\"touchend\", () => {\n if (this._longPressTimeout) {\n window.clearTimeout(this._longPressTimeout);\n this._longPressTimeout = null;\n }\n });\n }\n setOnLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Helpers\n _getMenuOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n const menuTheme = (_d = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu) == null ? void 0 : _d.item;\n let options = [];\n const isArchiveFeed = this._feedType === \"archive\";\n if (!isArchiveFeed) {\n options.push({\n id: ((_e = this._message) == null ? void 0 : _e.read) ? \"unread\" : \"read\",\n icon: {\n svg: ((_f = this._message) == null ? void 0 : _f.read) ? (_g = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _g.svg : (_h = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _h.svg,\n color: ((_i = this._message) == null ? void 0 : _i.read) ? (_j = menuTheme == null ? void 0 : menuTheme.unread) == null ? void 0 : _j.color : ((_k = menuTheme == null ? void 0 : menuTheme.read) == null ? void 0 : _k.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (this._message.read) {\n CourierInboxDatastore.shared.unreadMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.readMessage({ message: this._message });\n }\n }\n }\n });\n }\n options.push({\n id: isArchiveFeed ? \"unarchive\" : \"archive\",\n icon: {\n svg: isArchiveFeed ? (_l = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _l.svg : (_m = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _m.svg,\n color: isArchiveFeed ? (_n = menuTheme == null ? void 0 : menuTheme.unarchive) == null ? void 0 : _n.color : ((_o = menuTheme == null ? void 0 : menuTheme.archive) == null ? void 0 : _o.color) ?? \"red\"\n },\n onClick: () => {\n if (this._message) {\n if (isArchiveFeed) {\n CourierInboxDatastore.shared.unarchiveMessage({ message: this._message });\n } else {\n CourierInboxDatastore.shared.archiveMessage({ message: this._message });\n }\n }\n }\n });\n return options;\n }\n // Menu visibility helpers\n _showMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.setOptions(this._getMenuOptions());\n this._menu.style.display = \"block\";\n this._menu.show();\n this._timeElement.style.opacity = \"0\";\n }\n }\n _hideMenu() {\n var _a, _b, _c;\n const menu = (_c = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item) == null ? void 0 : _c.menu;\n if (menu && menu.enabled) {\n this._menu.hide();\n this._menu.style.display = \"none\";\n this._timeElement.style.opacity = \"1\";\n }\n }\n _getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n const listItem = (_b = (_a = this._theme.inbox) == null ? void 0 : _a.list) == null ? void 0 : _b.item;\n return `\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(listItem == null ? void 0 : listItem.divider) ?? \"1px solid red\"};\n font-family: inherit;\n cursor: pointer;\n transition: background-color 0.2s ease;\n margin: 0;\n width: 100%;\n box-sizing: border-box;\n padding: 12px 20px;\n position: relative;\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: manipulation;\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Base hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.hoverBackgroundColor) ?? \"red\"};\n }\n }\n :host(:active) {\n background-color: ${(listItem == null ? void 0 : listItem.activeBackgroundColor) ?? \"red\"};\n }\n\n /* āāāāāāāāāāāāāāāāāāāāāāāāā Menu hover / active āāāāāāāāāāāāāāāāāā */\n @media (hover: hover) {\n :host(:hover):has(courier-list-item-menu:hover, courier-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n }\n :host(:active):has(courier-list-item-menu:active, courier-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(listItem == null ? void 0 : listItem.backgroundColor) ?? \"transparent\"};\n }\n\n :host(:last-child) {\n border-bottom: none;\n }\n\n .unread-indicator {\n position: absolute;\n top: 28px;\n left: 6px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(listItem == null ? void 0 : listItem.unreadIndicatorColor) ?? \"red\"};\n display: none;\n }\n\n :host(.unread) .unread-indicator {\n display: block;\n }\n\n .content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n margin-right: 12px;\n }\n\n p {\n margin: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n hyphens: auto;\n line-height: 1.4;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n text-align: left;\n }\n\n p[part='title'] {\n font-family: ${((_c = listItem == null ? void 0 : listItem.title) == null ? void 0 : _c.family) ?? \"inherit\"};\n font-size: ${((_d = listItem == null ? void 0 : listItem.title) == null ? void 0 : _d.size) ?? \"14px\"};\n color: ${((_e = listItem == null ? void 0 : listItem.title) == null ? void 0 : _e.color) ?? \"red\"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${((_f = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _f.family) ?? \"inherit\"};\n font-size: ${((_g = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _g.size) ?? \"14px\"};\n color: ${((_h = listItem == null ? void 0 : listItem.subtitle) == null ? void 0 : _h.color) ?? \"red\"};\n }\n\n p[part='time'] {\n font-family: ${((_i = listItem == null ? void 0 : listItem.time) == null ? void 0 : _i.family) ?? \"inherit\"};\n font-size: ${((_j = listItem == null ? void 0 : listItem.time) == null ? void 0 : _j.size) ?? \"14px\"};\n color: ${((_k = listItem == null ? void 0 : listItem.time) == null ? void 0 : _k.color) ?? \"red\"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-list-item-menu {\n z-index: 1;\n position: absolute;\n top: 8px;\n right: 8px;\n display: none; /* becomes block while visible */\n }\n\n .actions-container {\n display: flex;\n margin-top: 10px;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n display: none;\n }\n\n `;\n }\n _refreshStyles() {\n this._style.textContent = this._getStyles();\n }\n // Lifecycle hooks\n connectedCallback() {\n var _a, _b;\n const messageAttr = this.getAttribute(\"message\");\n const feedTypeAttr = this.getAttribute(\"feed-type\");\n if (feedTypeAttr) {\n this._feedType = feedTypeAttr;\n }\n if (messageAttr) {\n try {\n this._message = JSON.parse(messageAttr);\n this._updateContent();\n } catch (err) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"CourierListItem ā failed to parse message:\", err);\n }\n }\n }\n // Public API\n setMessage(message, feedType) {\n this._message = message;\n this._feedType = feedType;\n this._updateContent();\n }\n setOnItemClick(cb) {\n this.onItemClick = cb;\n }\n setOnItemActionClick(cb) {\n this.onItemActionClick = cb;\n }\n setOnItemLongPress(cb) {\n this.onItemLongPress = cb;\n }\n // Content rendering\n _updateContent() {\n var _a, _b, _c, _d, _e, _f;\n if (!this._message) {\n this._titleElement.textContent = \"\";\n this._subtitleElement.textContent = \"\";\n return;\n }\n this.classList.toggle(\"unread\", !this._message.read && this._feedType !== \"archive\");\n this._titleElement.textContent = this._message.title || \"Untitled Message\";\n this._subtitleElement.textContent = this._message.preview || this._message.body || \"\";\n this._timeElement.textContent = getMessageTime(this._message);\n this._menu.setOptions(this._getMenuOptions());\n const hasActions = ((_a = this._message) == null ? void 0 : _a.actions) && this._message.actions.length > 0;\n this._actionsContainer.style.display = hasActions ? \"flex\" : \"none\";\n const actionsTheme = (_d = (_c = (_b = this._theme.inbox) == null ? void 0 : _b.list) == null ? void 0 : _c.item) == null ? void 0 : _d.actions;\n (_f = (_e = this._message) == null ? void 0 : _e.actions) == null ? void 0 : _f.forEach((action) => {\n var _a2, _b2, _c2, _d2;\n const actionButton = new CourierButton({\n text: action.content,\n variant: \"secondary\",\n backgroundColor: actionsTheme == null ? void 0 : actionsTheme.backgroundColor,\n hoverBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.hoverBackgroundColor,\n activeBackgroundColor: actionsTheme == null ? void 0 : actionsTheme.activeBackgroundColor,\n border: actionsTheme == null ? void 0 : actionsTheme.border,\n borderRadius: actionsTheme == null ? void 0 : actionsTheme.borderRadius,\n shadow: actionsTheme == null ? void 0 : actionsTheme.shadow,\n fontFamily: (_a2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _a2.family,\n fontSize: (_b2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _b2.size,\n fontWeight: (_c2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _c2.weight,\n textColor: (_d2 = actionsTheme == null ? void 0 : actionsTheme.font) == null ? void 0 : _d2.color,\n onClick: () => {\n if (this._message && this.onItemActionClick) {\n this.onItemActionClick(this._message, action);\n }\n }\n });\n this._actionsContainer.appendChild(actionButton);\n });\n }\n}\nif (!customElements.get(\"courier-list-item\")) {\n customElements.define(\"courier-list-item\", CourierListItem);\n}\nclass CourierInboxSkeletonListItem extends HTMLElement {\n constructor(theme2, opacity) {\n super();\n // Shadow root\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(opacity);\n this._shadow.appendChild(style);\n const firstRow = new CourierSkeletonAnimatedRow(theme2, 35);\n const secondRow = new CourierSkeletonAnimatedRow(theme2, 100);\n const thirdRow = new CourierSkeletonAnimatedRow(theme2, 82);\n this._shadow.appendChild(firstRow);\n this._shadow.appendChild(secondRow);\n this._shadow.appendChild(thirdRow);\n }\n getStyles(opacity) {\n return `\n :host {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n width: 100%;\n box-sizing: border-box;\n opacity: ${opacity};\n }\n `;\n }\n}\nif (!customElements.get(\"courier-inbox-skeleton-list-item\")) {\n customElements.define(\"courier-inbox-skeleton-list-item\", CourierInboxSkeletonListItem);\n}\nclass CourierSkeletonAnimatedRow extends HTMLElement {\n constructor(theme2, widthPercent) {\n super();\n __publicField(this, \"_shadow\");\n this._shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles(theme2, widthPercent);\n this._shadow.appendChild(style);\n const skeletonItem = document.createElement(\"div\");\n skeletonItem.className = \"skeleton-item\";\n this._shadow.appendChild(skeletonItem);\n }\n getStyles(theme2, widthPercent) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const color = ((_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.animation) == null ? void 0 : _c.barColor) ?? \"#000\";\n const hexColor = color.length === 4 ? `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}` : color;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const colorWithAlpha80 = `rgba(${r}, ${g}, ${b}, 0.8)`;\n const colorWithAlpha40 = `rgba(${r}, ${g}, ${b}, 0.4)`;\n return `\n :host {\n display: flex;\n height: 100%;\n width: ${widthPercent}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${((_f = (_e = (_d = theme2.inbox) == null ? void 0 : _d.loading) == null ? void 0 : _e.animation) == null ? void 0 : _f.barHeight) ?? \"14px\"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${colorWithAlpha80} 25%,\n ${colorWithAlpha40} 50%,\n ${colorWithAlpha80} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${((_i = (_h = (_g = theme2.inbox) == null ? void 0 : _g.loading) == null ? void 0 : _h.animation) == null ? void 0 : _i.duration) ?? \"2s\"} ease-in-out infinite;\n border-radius: ${((_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.loading) == null ? void 0 : _k.animation) == null ? void 0 : _l.barBorderRadius) ?? \"14px\"};\n }\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `;\n }\n}\nif (!customElements.get(\"courier-skeleton-animated-row\")) {\n customElements.define(\"courier-skeleton-animated-row\", CourierSkeletonAnimatedRow);\n}\nclass CourierInboxSkeletonList extends CourierElement {\n constructor(theme2) {\n super();\n __publicField(this, \"_theme\");\n this._theme = theme2;\n }\n defaultElement() {\n const list = document.createElement(\"div\");\n list.className = \"list\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n list.appendChild(style);\n for (let i = 0; i < 3; i++) {\n const skeletonItem = new CourierInboxSkeletonListItem(this._theme, 1 / (i + 1));\n list.appendChild(skeletonItem);\n }\n this.shadow.appendChild(list);\n return list;\n }\n getStyles() {\n var _a, _b;\n return `\n :host {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n }\n\n .list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n overflow: hidden;\n }\n\n .list > * {\n border-bottom: ${((_b = (_a = this._theme.inbox) == null ? void 0 : _a.loading) == null ? void 0 : _b.divider) ?? \"1px solid red\"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `;\n }\n}\nif (!customElements.get(\"courier-inbox-skeleton-list\")) {\n customElements.define(\"courier-inbox-skeleton-list\", CourierInboxSkeletonList);\n}\nclass CourierInboxPaginationListItem extends HTMLElement {\n constructor(props) {\n super();\n // Components\n __publicField(this, \"skeletonLoadingList\");\n __publicField(this, \"observer\");\n __publicField(this, \"customItem\");\n // Handlers\n __publicField(this, \"onPaginationTrigger\");\n this.onPaginationTrigger = props.onPaginationTrigger;\n this.customItem = props.customItem;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n if (this.customItem) {\n shadow.appendChild(this.customItem);\n } else {\n const container = document.createElement(\"div\");\n container.className = \"skeleton-container\";\n this.skeletonLoadingList = new CourierInboxSkeletonList(props.theme);\n this.skeletonLoadingList.build(void 0);\n container.appendChild(this.skeletonLoadingList);\n shadow.appendChild(container);\n }\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.onPaginationTrigger();\n }\n });\n });\n this.observer.observe(this);\n }\n getStyles() {\n return `\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n `;\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n}\nif (!customElements.get(\"courier-inbox-pagination-list-item\")) {\n customElements.define(\"courier-inbox-pagination-list-item\", CourierInboxPaginationListItem);\n}\nclass CourierInboxList extends HTMLElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_messages\", []);\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_isLoading\", true);\n __publicField(this, \"_error\", null);\n __publicField(this, \"_canPaginate\", false);\n // Callbacks\n __publicField(this, \"_onMessageClick\", null);\n __publicField(this, \"_onMessageActionClick\", null);\n __publicField(this, \"_onMessageLongPress\", null);\n __publicField(this, \"_onRefresh\");\n // Factories\n __publicField(this, \"_onPaginationTrigger\");\n __publicField(this, \"_listItemFactory\");\n __publicField(this, \"_paginationItemFactory\");\n __publicField(this, \"_loadingStateFactory\");\n __publicField(this, \"_emptyStateFactory\");\n __publicField(this, \"_errorStateFactory\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onRefresh = props.onRefresh;\n this._onPaginationTrigger = props.onPaginationTrigger;\n this._onMessageClick = props.onMessageClick;\n this._onMessageActionClick = props.onMessageActionClick;\n this._onMessageLongPress = props.onMessageLongPress;\n const shadow = this.attachShadow({ mode: \"open\" });\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n shadow.appendChild(style);\n }\n // Getters\n get messages() {\n return this._messages;\n }\n getStyles() {\n var _a;\n const list = (_a = this._themeSubscription.manager.getTheme().inbox) == null ? void 0 : _a.list;\n return `\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(list == null ? void 0 : list.backgroundColor) ?? CourierColors.white[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `;\n }\n reset() {\n var _a, _b;\n while ((_a = this.shadowRoot) == null ? void 0 : _a.firstChild) {\n this.shadowRoot.removeChild(this.shadowRoot.firstChild);\n }\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(style);\n }\n setDataSet(dataSet) {\n this._messages = [...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addPage(dataSet) {\n this._messages = [...this._messages, ...dataSet.messages];\n this._canPaginate = Boolean(dataSet.canPaginate);\n this._error = null;\n this._isLoading = false;\n this.render();\n }\n addMessage(message, index = 0) {\n this._messages.splice(index, 0, message);\n this.render();\n }\n removeMessage(index = 0) {\n this._messages.splice(index, 1);\n this.render();\n }\n updateMessage(message, index = 0) {\n this._messages[index] = message;\n this.render();\n }\n setFeedType(feedType) {\n this._feedType = feedType;\n this._error = null;\n this._isLoading = true;\n this.render();\n }\n setLoading(isLoading) {\n this._error = null;\n this._isLoading = isLoading;\n this.render();\n }\n setError(error) {\n this._error = error;\n this._isLoading = false;\n this._messages = [];\n this.render();\n }\n setErrorNoClient() {\n this.setError(new Error(\"No user signed in\"));\n }\n handleRetry() {\n this._onRefresh();\n }\n handleRefresh() {\n this._onRefresh();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da;\n this.reset();\n const theme2 = this._themeSubscription.manager.getTheme();\n if (this._error) {\n const error = (_a = theme2.inbox) == null ? void 0 : _a.error;\n const errorElement = new CourierInfoState({\n title: {\n text: ((_b = error == null ? void 0 : error.title) == null ? void 0 : _b.text) ?? this._error.message,\n textColor: (_d = (_c = error == null ? void 0 : error.title) == null ? void 0 : _c.font) == null ? void 0 : _d.color,\n fontFamily: (_f = (_e = error == null ? void 0 : error.title) == null ? void 0 : _e.font) == null ? void 0 : _f.family,\n fontSize: (_h = (_g = error == null ? void 0 : error.title) == null ? void 0 : _g.font) == null ? void 0 : _h.size,\n fontWeight: (_j = (_i = error == null ? void 0 : error.title) == null ? void 0 : _i.font) == null ? void 0 : _j.weight\n },\n button: {\n text: (_k = error == null ? void 0 : error.button) == null ? void 0 : _k.text,\n backgroundColor: (_l = error == null ? void 0 : error.button) == null ? void 0 : _l.backgroundColor,\n hoverBackgroundColor: (_m = error == null ? void 0 : error.button) == null ? void 0 : _m.hoverBackgroundColor,\n activeBackgroundColor: (_n = error == null ? void 0 : error.button) == null ? void 0 : _n.activeBackgroundColor,\n textColor: (_p = (_o = error == null ? void 0 : error.button) == null ? void 0 : _o.font) == null ? void 0 : _p.color,\n fontFamily: (_r = (_q = error == null ? void 0 : error.button) == null ? void 0 : _q.font) == null ? void 0 : _r.family,\n fontSize: (_t = (_s = error == null ? void 0 : error.button) == null ? void 0 : _s.font) == null ? void 0 : _t.size,\n fontWeight: (_v = (_u = error == null ? void 0 : error.button) == null ? void 0 : _u.font) == null ? void 0 : _v.weight,\n shadow: (_w = error == null ? void 0 : error.button) == null ? void 0 : _w.shadow,\n border: (_x = error == null ? void 0 : error.button) == null ? void 0 : _x.border,\n borderRadius: (_y = error == null ? void 0 : error.button) == null ? void 0 : _y.borderRadius\n }\n });\n errorElement.build((_z = this._errorStateFactory) == null ? void 0 : _z.call(this, { feedType: this._feedType, error: this._error }));\n errorElement.setButtonClickCallback(() => this.handleRetry());\n (_A = this.shadowRoot) == null ? void 0 : _A.appendChild(errorElement);\n return;\n }\n if (this._isLoading) {\n const loadingElement = new CourierInboxSkeletonList(theme2);\n loadingElement.build((_B = this._loadingStateFactory) == null ? void 0 : _B.call(this, { feedType: this._feedType }));\n (_C = this.shadowRoot) == null ? void 0 : _C.appendChild(loadingElement);\n return;\n }\n if (this._messages.length === 0) {\n const empty = (_D = theme2.inbox) == null ? void 0 : _D.empty;\n const emptyElement = new CourierInfoState({\n title: {\n text: ((_E = empty == null ? void 0 : empty.title) == null ? void 0 : _E.text) ?? `No ${this._feedType} messages yet`,\n textColor: (_G = (_F = empty == null ? void 0 : empty.title) == null ? void 0 : _F.font) == null ? void 0 : _G.color,\n fontFamily: (_I = (_H = empty == null ? void 0 : empty.title) == null ? void 0 : _H.font) == null ? void 0 : _I.family,\n fontSize: (_K = (_J = empty == null ? void 0 : empty.title) == null ? void 0 : _J.font) == null ? void 0 : _K.size,\n fontWeight: (_M = (_L = empty == null ? void 0 : empty.title) == null ? void 0 : _L.font) == null ? void 0 : _M.weight\n },\n button: {\n text: (_N = empty == null ? void 0 : empty.button) == null ? void 0 : _N.text,\n backgroundColor: (_O = empty == null ? void 0 : empty.button) == null ? void 0 : _O.backgroundColor,\n hoverBackgroundColor: (_P = empty == null ? void 0 : empty.button) == null ? void 0 : _P.hoverBackgroundColor,\n activeBackgroundColor: (_Q = empty == null ? void 0 : empty.button) == null ? void 0 : _Q.activeBackgroundColor,\n textColor: (_S = (_R = empty == null ? void 0 : empty.button) == null ? void 0 : _R.font) == null ? void 0 : _S.color,\n fontFamily: (_U = (_T = empty == null ? void 0 : empty.button) == null ? void 0 : _T.font) == null ? void 0 : _U.family,\n fontSize: (_W = (_V = empty == null ? void 0 : empty.button) == null ? void 0 : _V.font) == null ? void 0 : _W.size,\n fontWeight: (_Y = (_X = empty == null ? void 0 : empty.button) == null ? void 0 : _X.font) == null ? void 0 : _Y.weight,\n shadow: (_Z = empty == null ? void 0 : empty.button) == null ? void 0 : _Z.shadow,\n border: (__ = empty == null ? void 0 : empty.button) == null ? void 0 : __.border,\n borderRadius: (_$ = empty == null ? void 0 : empty.button) == null ? void 0 : _$.borderRadius\n }\n });\n emptyElement.build((_aa = this._emptyStateFactory) == null ? void 0 : _aa.call(this, { feedType: this._feedType }));\n emptyElement.setButtonClickCallback(() => this.handleRefresh());\n (_ba = this.shadowRoot) == null ? void 0 : _ba.appendChild(emptyElement);\n return;\n }\n const list = document.createElement(\"ul\");\n (_ca = this.shadowRoot) == null ? void 0 : _ca.appendChild(list);\n this._messages.forEach((message, index) => {\n if (this._listItemFactory) {\n list.appendChild(this._listItemFactory({ message, index }));\n return;\n }\n const listItem = new CourierListItem(theme2);\n listItem.setMessage(message, this._feedType);\n listItem.setOnItemClick((message2) => {\n var _a2;\n return (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, message2, index);\n });\n listItem.setOnItemActionClick((message2, action) => {\n var _a2;\n return (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, message2, action, index);\n });\n listItem.setOnItemLongPress((message2) => {\n var _a2;\n return (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, message2, index);\n });\n list.appendChild(listItem);\n });\n if (this._canPaginate) {\n const paginationItem = new CourierInboxPaginationListItem({\n theme: theme2,\n customItem: (_da = this._paginationItemFactory) == null ? void 0 : _da.call(this, { feedType: this._feedType }),\n onPaginationTrigger: () => {\n var _a2;\n return (_a2 = this._onPaginationTrigger) == null ? void 0 : _a2.call(this, this._feedType);\n }\n });\n list.appendChild(paginationItem);\n }\n }\n // Factories\n setLoadingStateFactory(factory) {\n this._loadingStateFactory = factory;\n this.render();\n }\n setEmptyStateFactory(factory) {\n this._emptyStateFactory = factory;\n this.render();\n }\n setErrorStateFactory(factory) {\n this._errorStateFactory = factory;\n this.render();\n }\n setListItemFactory(factory) {\n this._listItemFactory = factory;\n this.render();\n }\n setPaginationItemFactory(factory) {\n this._paginationItemFactory = factory;\n this.render();\n }\n refreshTheme() {\n this.render();\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-list\")) {\n customElements.define(\"courier-inbox-list\", CourierInboxList);\n}\nclass CourierInboxOptionMenuItem extends HTMLElement {\n constructor(props) {\n super();\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_isSelected\");\n // Components\n __publicField(this, \"_content\");\n __publicField(this, \"_itemIcon\");\n __publicField(this, \"_title\");\n __publicField(this, \"_selectionIcon\");\n __publicField(this, \"_style\");\n // Theme\n __publicField(this, \"_themeManager\");\n this._option = props.option;\n this._isSelected = props.isSelected;\n this._themeManager = props.themeManager;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._content = document.createElement(\"div\");\n this._content.className = \"menu-item\";\n this._itemIcon = new CourierIcon(this._option.icon.svg ?? CourierIconSVGs.inbox);\n this._itemIcon.setAttribute(\"size\", \"16\");\n this._title = document.createElement(\"p\");\n this._title.textContent = this._option.text;\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n this._selectionIcon = new CourierIcon(CourierIconSVGs.check);\n this._content.appendChild(this._itemIcon);\n this._content.appendChild(this._title);\n this._content.appendChild(spacer);\n if (props.selectable) {\n this._content.appendChild(this._selectionIcon);\n }\n shadow.appendChild(this._style);\n shadow.appendChild(this._content);\n this._selectionIcon.style.display = this._isSelected ? \"block\" : \"none\";\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H;\n const theme2 = this._themeManager.getTheme();\n return `\n :host {\n display: flex;\n flex-direction: row;\n padding: 6px 12px;\n cursor: pointer;\n }\n\n :host(:hover) {\n background-color: ${((_e = (_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.list) == null ? void 0 : _e.hoverBackgroundColor) ?? \"red\"};\n }\n\n :host(:active) {\n background-color: ${((_j = (_i = (_h = (_g = (_f = theme2.inbox) == null ? void 0 : _f.header) == null ? void 0 : _g.menus) == null ? void 0 : _h.popup) == null ? void 0 : _i.list) == null ? void 0 : _j.activeBackgroundColor) ?? \"red\"};\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n }\n\n .spacer {\n flex: 1;\n }\n\n p {\n margin: 0;\n font-family: ${((_p = (_o = (_n = (_m = (_l = (_k = theme2.inbox) == null ? void 0 : _k.header) == null ? void 0 : _l.menus) == null ? void 0 : _m.popup) == null ? void 0 : _n.list) == null ? void 0 : _o.font) == null ? void 0 : _p.family) ?? \"inherit\"};\n font-weight: ${((_v = (_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.font) == null ? void 0 : _v.weight) ?? \"inherit\"};\n font-size: ${((_B = (_A = (_z = (_y = (_x = (_w = theme2.inbox) == null ? void 0 : _w.header) == null ? void 0 : _x.menus) == null ? void 0 : _y.popup) == null ? void 0 : _z.list) == null ? void 0 : _A.font) == null ? void 0 : _B.size) ?? \"14px\"};\n color: ${((_H = (_G = (_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.menus) == null ? void 0 : _E.popup) == null ? void 0 : _F.list) == null ? void 0 : _G.font) == null ? void 0 : _H.color) ?? \"red\"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d;\n this._style.textContent = this.getStyles();\n this._selectionIcon.updateColor(((_a = this._option.selectionIcon) == null ? void 0 : _a.color) ?? \"red\");\n this._selectionIcon.updateSVG(((_b = this._option.selectionIcon) == null ? void 0 : _b.svg) ?? CourierIconSVGs.check);\n this._title.textContent = this._option.text ?? \"Missing Text\";\n this._itemIcon.updateColor(((_c = this._option.icon) == null ? void 0 : _c.color) ?? \"red\");\n this._itemIcon.updateSVG(((_d = this._option.icon) == null ? void 0 : _d.svg) ?? CourierIconSVGs.inbox);\n }\n}\nif (!customElements.get(\"courier-inbox-filter-menu-item\")) {\n customElements.define(\"courier-inbox-filter-menu-item\", CourierInboxOptionMenuItem);\n}\nclass CourierInboxOptionMenu extends HTMLElement {\n constructor(themeManager, type, selectable, options, onMenuOpen) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_type\");\n __publicField(this, \"_selectedIndex\", 0);\n __publicField(this, \"_options\");\n __publicField(this, \"_selectable\");\n __publicField(this, \"_onMenuOpen\");\n // Components\n __publicField(this, \"_menuButton\");\n __publicField(this, \"_menu\");\n __publicField(this, \"_style\");\n this._type = type;\n this._selectable = selectable;\n this._options = options;\n this._selectedIndex = 0;\n this._onMenuOpen = onMenuOpen;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._menuButton = new CourierIconButton(type === \"filters\" ? CourierIconSVGs.filter : CourierIconSVGs.overflow);\n this._menu = document.createElement(\"div\");\n this._menu.className = `menu ${type}`;\n this._style = document.createElement(\"style\");\n shadow.appendChild(this._style);\n shadow.appendChild(this._menuButton);\n shadow.appendChild(this._menu);\n this._menuButton.addEventListener(\"click\", this.toggleMenu.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this.refreshTheme();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n :host {\n position: relative;\n display: inline-block;\n }\n\n .menu {\n display: none;\n position: absolute;\n top: 42px;\n right: -6px;\n border-radius: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.popup) == null ? void 0 : _d.borderRadius) ?? \"6px\"};\n border: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.menus) == null ? void 0 : _g.popup) == null ? void 0 : _h.border) ?? \"1px solid red\"};\n background: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.backgroundColor) ?? \"red\"};\n box-shadow: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.menus) == null ? void 0 : _o.popup) == null ? void 0 : _p.shadow) ?? \"0 4px 12px 0 red\"};\n z-index: 1000;\n min-width: 200px;\n overflow: hidden;\n padding: 4px 0;\n }\n\n courier-inbox-filter-menu-item {\n border-bottom: ${((_u = (_t = (_s = (_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.menus) == null ? void 0 : _s.popup) == null ? void 0 : _t.list) == null ? void 0 : _u.divider) ?? \"none\"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `;\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f;\n this._style.textContent = this.getStyles();\n const theme2 = this._themeSubscription.manager.getTheme();\n const menu = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus;\n const isFilter = this._type === \"filters\";\n const buttonConfig = isFilter ? (_c = menu == null ? void 0 : menu.filters) == null ? void 0 : _c.button : (_d = menu == null ? void 0 : menu.actions) == null ? void 0 : _d.button;\n const defaultIcon = isFilter ? CourierIconSVGs.filter : CourierIconSVGs.overflow;\n this._menuButton.updateIconSVG(((_e = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _e.svg) ?? defaultIcon);\n this._menuButton.updateIconColor(((_f = buttonConfig == null ? void 0 : buttonConfig.icon) == null ? void 0 : _f.color) ?? \"red\");\n this._menuButton.updateBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.backgroundColor) ?? \"transparent\");\n this._menuButton.updateHoverBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.hoverBackgroundColor) ?? \"red\");\n this._menuButton.updateActiveBackgroundColor((buttonConfig == null ? void 0 : buttonConfig.activeBackgroundColor) ?? \"red\");\n this.refreshMenuItems();\n }\n setOptions(options) {\n this._options = options;\n this.refreshMenuItems();\n }\n refreshMenuItems() {\n this._menu.innerHTML = \"\";\n this._options.forEach((option, index) => {\n const menuItem = new CourierInboxOptionMenuItem({\n option,\n selectable: this._selectable,\n isSelected: this._selectedIndex === index,\n themeManager: this._themeSubscription.manager\n });\n menuItem.addEventListener(\"click\", () => {\n this._selectedIndex = index;\n option.onClick(option);\n this.refreshMenuItems();\n this.closeMenu();\n });\n this._menu.appendChild(menuItem);\n });\n }\n toggleMenu(event) {\n event.stopPropagation();\n const isOpening = this._menu.style.display !== \"block\";\n this._menu.style.display = isOpening ? \"block\" : \"none\";\n if (isOpening) {\n this._onMenuOpen();\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this.closeMenu();\n }\n }\n closeMenu() {\n this._menu.style.display = \"none\";\n }\n selectOption(option) {\n this._selectedIndex = this._options.findIndex((o) => o.id === option.id);\n this.refreshMenuItems();\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-option-menu\")) {\n customElements.define(\"courier-inbox-option-menu\", CourierInboxOptionMenu);\n}\nclass CourierUnreadCountBadge extends HTMLElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_location\");\n __publicField(this, \"_count\", 0);\n // Elements\n __publicField(this, \"_badge\");\n __publicField(this, \"_style\");\n this._location = props.location;\n this._themeSubscription = props.themeBus.subscribe((_) => {\n this.refreshTheme(this._location);\n });\n const shadow = this.attachShadow({ mode: \"open\" });\n this._badge = document.createElement(\"span\");\n this._badge.className = \"unread-badge\";\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles(this._location);\n shadow.appendChild(this._style);\n shadow.appendChild(this._badge);\n }\n getStyles(location) {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const indicator = location === \"button\" ? (_b = (_a = theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.unreadIndicator : (_e = (_d = (_c = theme2.inbox) == null ? void 0 : _c.header) == null ? void 0 : _d.filters) == null ? void 0 : _e.unreadIndicator;\n const backgroundColor = indicator == null ? void 0 : indicator.backgroundColor;\n const borderRadius = indicator == null ? void 0 : indicator.borderRadius;\n const color = (_f = indicator == null ? void 0 : indicator.font) == null ? void 0 : _f.color;\n const fontSize = (_g = indicator == null ? void 0 : indicator.font) == null ? void 0 : _g.size;\n return `\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${backgroundColor};\n color: ${color};\n border-radius: ${borderRadius};\n padding: 4px 8px;\n font-size: ${fontSize};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `;\n }\n setCount(count) {\n this._count = count;\n this.updateBadge();\n }\n refreshTheme(location) {\n this._location = location;\n this.updateBadge();\n }\n updateBadge() {\n this._style.textContent = this.getStyles(this._location);\n if (this._count > 0) {\n this._badge.textContent = this._count.toString();\n this._badge.style.display = \"block\";\n } else {\n this._badge.style.display = \"none\";\n }\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-unread-count-badge\")) {\n customElements.define(\"courier-unread-count-badge\", CourierUnreadCountBadge);\n}\nclass CourierInboxHeaderTitle extends HTMLElement {\n constructor(themeManager, option) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_option\");\n __publicField(this, \"_feedType\");\n // Components\n __publicField(this, \"_titleElement\");\n __publicField(this, \"_iconElement\");\n __publicField(this, \"_unreadBadge\");\n __publicField(this, \"_container\");\n __publicField(this, \"_style\");\n this._option = option;\n const shadow = this.attachShadow({ mode: \"open\" });\n this._style = document.createElement(\"style\");\n this._container = document.createElement(\"div\");\n this._container.className = \"title-section\";\n this._iconElement = new CourierIcon(void 0, this._option.icon.svg);\n this._titleElement = document.createElement(\"h2\");\n this._unreadBadge = new CourierUnreadCountBadge({\n themeBus: themeManager,\n location: \"header\"\n });\n this._container.appendChild(this._iconElement);\n this._container.appendChild(this._titleElement);\n this._container.appendChild(this._unreadBadge);\n shadow.appendChild(this._style);\n shadow.appendChild(this._container);\n this._themeSubscription = themeManager.subscribe((_) => {\n this.refreshTheme(this._feedType ?? \"inbox\");\n });\n this.refreshTheme(this._feedType ?? \"inbox\");\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const theme2 = this._themeSubscription.manager.getTheme();\n return `\n .title-section {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n }\n\n courier-icon {\n display: flex;\n align-items: center;\n }\n\n h2 {\n margin: 0;\n font-family: ${((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.font) == null ? void 0 : _d.family) ?? \"inherit\"};\n font-size: ${((_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.font) == null ? void 0 : _h.size) ?? \"18px\"};\n font-weight: ${((_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.filters) == null ? void 0 : _k.font) == null ? void 0 : _l.weight) ?? \"500\"};\n color: ${((_p = (_o = (_n = (_m = theme2.inbox) == null ? void 0 : _m.header) == null ? void 0 : _n.filters) == null ? void 0 : _o.font) == null ? void 0 : _p.color) ?? \"red\"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `;\n }\n refreshTheme(feedType) {\n this._feedType = feedType;\n this._style.textContent = this.getStyles();\n this._unreadBadge.refreshTheme(\"header\");\n this.updateFilter();\n }\n updateSelectedOption(option, feedType, unreadCount) {\n this._option = option;\n this._feedType = feedType;\n this._unreadBadge.setCount(unreadCount);\n this.updateFilter();\n }\n updateFilter() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n const theme2 = this._themeSubscription.manager.getTheme();\n switch (this._feedType) {\n case \"inbox\":\n this._titleElement.textContent = ((_d = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.filters) == null ? void 0 : _c.inbox) == null ? void 0 : _d.text) ?? \"Inbox\";\n this._iconElement.updateSVG(((_i = (_h = (_g = (_f = (_e = theme2.inbox) == null ? void 0 : _e.header) == null ? void 0 : _f.filters) == null ? void 0 : _g.inbox) == null ? void 0 : _h.icon) == null ? void 0 : _i.svg) ?? CourierIconSVGs.inbox);\n this._iconElement.updateColor(((_n = (_m = (_l = (_k = (_j = theme2.inbox) == null ? void 0 : _j.header) == null ? void 0 : _k.filters) == null ? void 0 : _l.inbox) == null ? void 0 : _m.icon) == null ? void 0 : _n.color) ?? \"red\");\n break;\n case \"archive\":\n this._titleElement.textContent = ((_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters) == null ? void 0 : _q.archive) == null ? void 0 : _r.text) ?? \"Archive\";\n this._iconElement.updateSVG(((_w = (_v = (_u = (_t = (_s = theme2.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.svg) ?? CourierIconSVGs.archive);\n this._iconElement.updateColor(((_B = (_A = (_z = (_y = (_x = theme2.inbox) == null ? void 0 : _x.header) == null ? void 0 : _y.filters) == null ? void 0 : _z.archive) == null ? void 0 : _A.icon) == null ? void 0 : _B.color) ?? \"red\");\n break;\n }\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-header-title\")) {\n customElements.define(\"courier-inbox-header-title\", CourierInboxHeaderTitle);\n}\nclass CourierInboxHeader extends CourierElement {\n constructor(props) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // State\n __publicField(this, \"_feedType\", \"inbox\");\n __publicField(this, \"_unreadCount\", 0);\n // Components\n __publicField(this, \"_titleSection\");\n __publicField(this, \"_filterMenu\");\n __publicField(this, \"_actionMenu\");\n __publicField(this, \"_style\");\n // Callbacks\n __publicField(this, \"_onFeedTypeChange\");\n this._themeSubscription = props.themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._onFeedTypeChange = props.onFeedTypeChange;\n }\n // Menu options\n getFilterOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K;\n const theme2 = this._themeSubscription.manager.getTheme();\n const filterMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.filters;\n return [\n {\n id: \"inbox\",\n text: ((_d = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _d.text) ?? \"Inbox\",\n icon: {\n color: ((_f = (_e = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = filterMenu == null ? void 0 : filterMenu.inbox) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: {\n color: ((_n = (_m = (_l = (_k = (_j = (_i = theme2.inbox) == null ? void 0 : _i.header) == null ? void 0 : _j.menus) == null ? void 0 : _k.popup) == null ? void 0 : _l.list) == null ? void 0 : _m.selectionIcon) == null ? void 0 : _n.color) ?? \"red\",\n svg: ((_t = (_s = (_r = (_q = (_p = (_o = theme2.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.menus) == null ? void 0 : _q.popup) == null ? void 0 : _r.list) == null ? void 0 : _s.selectionIcon) == null ? void 0 : _t.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"inbox\", option);\n }\n },\n {\n id: \"archive\",\n text: ((_u = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _u.text) ?? \"Archive\",\n icon: {\n color: ((_w = (_v = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _v.icon) == null ? void 0 : _w.color) ?? \"red\",\n svg: ((_y = (_x = filterMenu == null ? void 0 : filterMenu.archive) == null ? void 0 : _x.icon) == null ? void 0 : _y.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: {\n color: ((_E = (_D = (_C = (_B = (_A = (_z = theme2.inbox) == null ? void 0 : _z.header) == null ? void 0 : _A.menus) == null ? void 0 : _B.popup) == null ? void 0 : _C.list) == null ? void 0 : _D.selectionIcon) == null ? void 0 : _E.color) ?? \"red\",\n svg: ((_K = (_J = (_I = (_H = (_G = (_F = theme2.inbox) == null ? void 0 : _F.header) == null ? void 0 : _G.menus) == null ? void 0 : _H.popup) == null ? void 0 : _I.list) == null ? void 0 : _J.selectionIcon) == null ? void 0 : _K.svg) ?? CourierIconSVGs.check\n },\n onClick: (option) => {\n this.handleOptionMenuItemClick(\"archive\", option);\n }\n }\n ];\n }\n getActionOptions() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n const actionMenu = (_c = (_b = (_a = theme2.inbox) == null ? void 0 : _a.header) == null ? void 0 : _b.menus) == null ? void 0 : _c.actions;\n return [\n {\n id: \"markAllRead\",\n text: ((_d = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _d.text) ?? \"Mark All as Read\",\n icon: {\n color: ((_f = (_e = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _e.icon) == null ? void 0 : _f.color) ?? \"red\",\n svg: ((_h = (_g = actionMenu == null ? void 0 : actionMenu.markAllRead) == null ? void 0 : _g.icon) == null ? void 0 : _h.svg) ?? CourierIconSVGs.inbox\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.readAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveAll\",\n text: ((_i = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _i.text) ?? \"Archive All\",\n icon: {\n color: ((_k = (_j = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _j.icon) == null ? void 0 : _k.color) ?? \"red\",\n svg: ((_m = (_l = actionMenu == null ? void 0 : actionMenu.archiveAll) == null ? void 0 : _l.icon) == null ? void 0 : _m.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveAllMessages({ canCallApi: true });\n }\n },\n {\n id: \"archiveRead\",\n text: ((_n = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _n.text) ?? \"Archive Read\",\n icon: {\n color: ((_p = (_o = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _o.icon) == null ? void 0 : _p.color) ?? \"red\",\n svg: ((_r = (_q = actionMenu == null ? void 0 : actionMenu.archiveRead) == null ? void 0 : _q.icon) == null ? void 0 : _r.svg) ?? CourierIconSVGs.archive\n },\n selectionIcon: null,\n onClick: (_) => {\n CourierInboxDatastore.shared.archiveReadMessages({ canCallApi: true });\n }\n }\n ];\n }\n static get observedAttributes() {\n return [\"icon\", \"title\", \"feed-type\"];\n }\n refreshTheme() {\n var _a, _b, _c, _d, _e, _f, _g;\n const theme2 = this._themeSubscription.manager.getTheme();\n const header = (_a = this.shadow) == null ? void 0 : _a.querySelector(\".courier-inbox-header\");\n if (header) {\n header.style.backgroundColor = ((_c = (_b = theme2.inbox) == null ? void 0 : _b.header) == null ? void 0 : _c.backgroundColor) ?? CourierColors.white[500];\n header.style.boxShadow = ((_e = (_d = theme2.inbox) == null ? void 0 : _d.header) == null ? void 0 : _e.shadow) ?? `0px 1px 0px 0px ${CourierColors.gray[500]}`;\n }\n (_f = this._filterMenu) == null ? void 0 : _f.setOptions(this.getFilterOptions());\n (_g = this._actionMenu) == null ? void 0 : _g.setOptions(this.getActionOptions());\n }\n handleOptionMenuItemClick(feedType, option) {\n this._feedType = feedType;\n if (this._titleSection) {\n this._titleSection.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n }\n this._onFeedTypeChange(feedType);\n }\n render(props) {\n this._feedType = props.feedType;\n this._unreadCount = props.unreadCount;\n this.refreshTitleSection();\n }\n refreshTitleSection() {\n var _a, _b;\n const option = this.getFilterOptions().find((opt) => [\"inbox\", \"archive\"].includes(opt.id) && opt.id === this._feedType);\n if (option) {\n (_a = this._titleSection) == null ? void 0 : _a.updateSelectedOption(option, this._feedType, this._feedType === \"inbox\" ? this._unreadCount : 0);\n (_b = this._filterMenu) == null ? void 0 : _b.selectOption(option);\n }\n }\n build(newElement) {\n var _a;\n super.build(newElement);\n this._style = document.createElement(\"style\");\n this._style.textContent = this.getStyles();\n (_a = this.shadow) == null ? void 0 : _a.appendChild(this._style);\n this.refreshTheme();\n }\n defaultElement() {\n const filterOptions = this.getFilterOptions();\n this._titleSection = new CourierInboxHeaderTitle(this._themeSubscription.manager, filterOptions[0]);\n this._filterMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"filters\", true, filterOptions, () => {\n var _a;\n (_a = this._actionMenu) == null ? void 0 : _a.closeMenu();\n });\n this._actionMenu = new CourierInboxOptionMenu(this._themeSubscription.manager, \"actions\", false, this.getActionOptions(), () => {\n var _a;\n (_a = this._filterMenu) == null ? void 0 : _a.closeMenu();\n });\n this._filterMenu.selectOption(filterOptions[0]);\n const spacer = document.createElement(\"div\");\n spacer.className = \"spacer\";\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n actions.appendChild(this._filterMenu);\n actions.appendChild(this._actionMenu);\n const container = document.createElement(\"div\");\n container.className = \"courier-inbox-header\";\n container.appendChild(this._titleSection);\n container.appendChild(spacer);\n container.appendChild(actions);\n return container;\n }\n getStyles() {\n return `\n :host {\n z-index: 100;\n }\n\n .courier-inbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 10px 10px 16px;\n background-color: ${CourierColors.white[500]};\n box-shadow: 0px 1px 0px 0px ${CourierColors.gray[500]};\n }\n\n .header-content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .spacer {\n flex: 1;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n `;\n }\n // Disconnect the theme subscription\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-header\")) {\n customElements.define(\"courier-inbox-header\", CourierInboxHeader);\n}\nclass CourierInboxDataStoreListener {\n constructor(events) {\n __publicField(this, \"events\");\n this.events = events;\n }\n remove() {\n CourierInboxDatastore.shared.removeDataStoreListener(this);\n }\n}\nconst defaultLightTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.white[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[500]}`,\n shadow: `0px 8px 16px -4px ${CourierColors.gray[500]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.white[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[500]}`,\n filters: {\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.gray[500]}`,\n list: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n divider: `none`,\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.black[50010],\n activeBackgroundColor: CourierColors.black[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.white[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: \"0px 1px 2px 0px rgba(0, 0, 0, 0.06)\",\n font: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.black[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[600],\n family: void 0,\n size: \"14px\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.white[500],\n border: `1px solid ${CourierColors.gray[500]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.gray[500]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.gray[200],\n activeBackgroundColor: CourierColors.gray[500],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.black[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.gray[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[200]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.black[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst defaultDarkTheme = {\n popup: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n size: \"14px\",\n family: void 0,\n weight: void 0\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n window: {\n backgroundColor: CourierColors.black[500],\n borderRadius: \"8px\",\n border: `1px solid ${CourierColors.gray[400]}`,\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`\n }\n },\n inbox: {\n header: {\n backgroundColor: CourierColors.black[500],\n shadow: `0px 1px 0px 0px ${CourierColors.gray[400]}`,\n filters: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"18px\"\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n },\n unreadIndicator: {\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n backgroundColor: CourierColors.blue[500],\n borderRadius: \"12px\"\n }\n },\n menus: {\n popup: {\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 4px 8px -2px ${CourierColors.white[50020]}`,\n list: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n divider: `none`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n selectionIcon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.check\n }\n }\n },\n filters: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.filter\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n inbox: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.inbox\n },\n text: \"Inbox\"\n },\n archive: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive\"\n }\n },\n actions: {\n button: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.overflow\n },\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020]\n },\n markAllRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n text: \"Read All\"\n },\n archiveAll: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n text: \"Archive All\"\n },\n archiveRead: {\n icon: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archiveRead\n },\n text: \"Archive Read\"\n }\n }\n }\n },\n list: {\n backgroundColor: CourierColors.black[500],\n item: {\n backgroundColor: \"transparent\",\n unreadIndicatorColor: CourierColors.blue[500],\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n actions: {\n backgroundColor: \"transparent\",\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 1px 2px 0px ${CourierColors.white[50010]}`,\n font: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n }\n },\n title: {\n color: CourierColors.white[500],\n family: void 0,\n size: \"14px\"\n },\n subtitle: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"14px\"\n },\n time: {\n color: CourierColors.gray[500],\n family: void 0,\n size: \"12px\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`,\n menu: {\n enabled: true,\n backgroundColor: CourierColors.black[500],\n border: `1px solid ${CourierColors.gray[400]}`,\n borderRadius: \"4px\",\n shadow: `0px 2px 4px -2px ${CourierColors.white[50020]}`,\n longPress: {\n displayDuration: 4e3,\n vibrationDuration: 50\n },\n item: {\n hoverBackgroundColor: CourierColors.white[50010],\n activeBackgroundColor: CourierColors.white[50020],\n borderRadius: \"0px\",\n read: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.read\n },\n unread: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unread\n },\n archive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.archive\n },\n unarchive: {\n color: CourierColors.white[500],\n svg: CourierIconSVGs.unarchive\n }\n }\n }\n }\n },\n loading: {\n animation: {\n barColor: CourierColors.white[500],\n barHeight: \"14px\",\n barBorderRadius: \"14px\",\n duration: \"2s\"\n },\n divider: `1px solid ${CourierColors.gray[400]}`\n },\n empty: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Refresh\"\n }\n },\n error: {\n title: {\n font: {\n size: \"16px\",\n weight: \"500\",\n color: CourierColors.white[500]\n }\n },\n button: {\n text: \"Retry\"\n }\n }\n }\n};\nconst mergeTheme = (mode, theme2) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb, _Lb, _Mb, _Nb, _Ob, _Pb, _Qb, _Rb, _Sb, _Tb, _Ub, _Vb, _Wb, _Xb, _Yb, _Zb, __b, _$b, _ac, _bc, _cc, _dc, _ec, _fc, _gc, _hc, _ic, _jc, _kc, _lc, _mc, _nc, _oc, _pc, _qc, _rc, _sc, _tc, _uc, _vc, _wc, _xc, _yc, _zc, _Ac, _Bc, _Cc, _Dc, _Ec, _Fc, _Gc, _Hc, _Ic, _Jc, _Kc, _Lc, _Mc, _Nc, _Oc, _Pc, _Qc, _Rc, _Sc, _Tc, _Uc, _Vc, _Wc, _Xc, _Yc, _Zc, __c, _$c, _ad, _bd, _cd, _dd, _ed, _fd, _gd, _hd, _id, _jd, _kd, _ld, _md, _nd, _od, _pd, _qd, _rd, _sd, _td, _ud, _vd, _wd, _xd, _yd, _zd, _Ad, _Bd, _Cd, _Dd, _Ed, _Fd, _Gd, _Hd, _Id, _Jd, _Kd, _Ld, _Md, _Nd, _Od, _Pd;\n const defaultTheme = mode === \"light\" ? defaultLightTheme : defaultDarkTheme;\n return {\n popup: {\n button: {\n ...(_a = defaultTheme.popup) == null ? void 0 : _a.button,\n ...(_b = theme2.popup) == null ? void 0 : _b.button,\n icon: {\n ...(_d = (_c = defaultTheme.popup) == null ? void 0 : _c.button) == null ? void 0 : _d.icon,\n ...(_f = (_e = theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon\n },\n unreadIndicator: {\n ...(_h = (_g = defaultTheme.popup) == null ? void 0 : _g.button) == null ? void 0 : _h.unreadIndicator,\n ...(_j = (_i = theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.unreadIndicator\n }\n },\n window: {\n ...(_k = defaultTheme.popup) == null ? void 0 : _k.window,\n ...(_l = theme2.popup) == null ? void 0 : _l.window\n }\n },\n inbox: {\n header: {\n ...(_m = defaultTheme.inbox) == null ? void 0 : _m.header,\n ...(_n = theme2.inbox) == null ? void 0 : _n.header,\n filters: {\n ...(_p = (_o = defaultTheme.inbox) == null ? void 0 : _o.header) == null ? void 0 : _p.filters,\n ...(_r = (_q = theme2.inbox) == null ? void 0 : _q.header) == null ? void 0 : _r.filters,\n inbox: {\n ...(_u = (_t = (_s = defaultTheme.inbox) == null ? void 0 : _s.header) == null ? void 0 : _t.filters) == null ? void 0 : _u.inbox,\n ...(_x = (_w = (_v = theme2.inbox) == null ? void 0 : _v.header) == null ? void 0 : _w.filters) == null ? void 0 : _x.inbox,\n icon: {\n ...(_B = (_A = (_z = (_y = defaultTheme.inbox) == null ? void 0 : _y.header) == null ? void 0 : _z.filters) == null ? void 0 : _A.inbox) == null ? void 0 : _B.icon,\n ...(_F = (_E = (_D = (_C = theme2.inbox) == null ? void 0 : _C.header) == null ? void 0 : _D.filters) == null ? void 0 : _E.inbox) == null ? void 0 : _F.icon\n }\n },\n archive: {\n ...(_I = (_H = (_G = defaultTheme.inbox) == null ? void 0 : _G.header) == null ? void 0 : _H.filters) == null ? void 0 : _I.archive,\n ...(_L = (_K = (_J = theme2.inbox) == null ? void 0 : _J.header) == null ? void 0 : _K.filters) == null ? void 0 : _L.archive,\n icon: {\n ...(_P = (_O = (_N = (_M = defaultTheme.inbox) == null ? void 0 : _M.header) == null ? void 0 : _N.filters) == null ? void 0 : _O.archive) == null ? void 0 : _P.icon,\n ...(_T = (_S = (_R = (_Q = theme2.inbox) == null ? void 0 : _Q.header) == null ? void 0 : _R.filters) == null ? void 0 : _S.archive) == null ? void 0 : _T.icon\n }\n },\n unreadIndicator: {\n ...(_W = (_V = (_U = defaultTheme.inbox) == null ? void 0 : _U.header) == null ? void 0 : _V.filters) == null ? void 0 : _W.unreadIndicator,\n ...(_Z = (_Y = (_X = theme2.inbox) == null ? void 0 : _X.header) == null ? void 0 : _Y.filters) == null ? void 0 : _Z.unreadIndicator\n }\n },\n menus: {\n ...(_$ = (__ = defaultTheme.inbox) == null ? void 0 : __.header) == null ? void 0 : _$.menus,\n ...(_ba = (_aa = theme2.inbox) == null ? void 0 : _aa.header) == null ? void 0 : _ba.menus,\n popup: {\n ...(_ea = (_da = (_ca = defaultTheme.inbox) == null ? void 0 : _ca.header) == null ? void 0 : _da.menus) == null ? void 0 : _ea.popup,\n ...(_ha = (_ga = (_fa = theme2.inbox) == null ? void 0 : _fa.header) == null ? void 0 : _ga.menus) == null ? void 0 : _ha.popup,\n list: {\n ...(_la = (_ka = (_ja = (_ia = defaultTheme.inbox) == null ? void 0 : _ia.header) == null ? void 0 : _ja.menus) == null ? void 0 : _ka.popup) == null ? void 0 : _la.list,\n ...(_pa = (_oa = (_na = (_ma = theme2.inbox) == null ? void 0 : _ma.header) == null ? void 0 : _na.menus) == null ? void 0 : _oa.popup) == null ? void 0 : _pa.list,\n font: {\n ...(_ua = (_ta = (_sa = (_ra = (_qa = defaultTheme.inbox) == null ? void 0 : _qa.header) == null ? void 0 : _ra.menus) == null ? void 0 : _sa.popup) == null ? void 0 : _ta.list) == null ? void 0 : _ua.font,\n ...(_za = (_ya = (_xa = (_wa = (_va = theme2.inbox) == null ? void 0 : _va.header) == null ? void 0 : _wa.menus) == null ? void 0 : _xa.popup) == null ? void 0 : _ya.list) == null ? void 0 : _za.font\n },\n selectionIcon: {\n ...(_Ea = (_Da = (_Ca = (_Ba = (_Aa = defaultTheme.inbox) == null ? void 0 : _Aa.header) == null ? void 0 : _Ba.menus) == null ? void 0 : _Ca.popup) == null ? void 0 : _Da.list) == null ? void 0 : _Ea.selectionIcon,\n ...(_Ja = (_Ia = (_Ha = (_Ga = (_Fa = theme2.inbox) == null ? void 0 : _Fa.header) == null ? void 0 : _Ga.menus) == null ? void 0 : _Ha.popup) == null ? void 0 : _Ia.list) == null ? void 0 : _Ja.selectionIcon\n }\n }\n },\n filters: {\n ...(_Ma = (_La = (_Ka = defaultTheme.inbox) == null ? void 0 : _Ka.header) == null ? void 0 : _La.menus) == null ? void 0 : _Ma.filters,\n ...(_Pa = (_Oa = (_Na = theme2.inbox) == null ? void 0 : _Na.header) == null ? void 0 : _Oa.menus) == null ? void 0 : _Pa.filters,\n inbox: {\n ...(_Ta = (_Sa = (_Ra = (_Qa = defaultTheme.inbox) == null ? void 0 : _Qa.header) == null ? void 0 : _Ra.menus) == null ? void 0 : _Sa.filters) == null ? void 0 : _Ta.inbox,\n ...(_Xa = (_Wa = (_Va = (_Ua = theme2.inbox) == null ? void 0 : _Ua.header) == null ? void 0 : _Va.menus) == null ? void 0 : _Wa.filters) == null ? void 0 : _Xa.inbox,\n icon: {\n ...(_ab = (_$a = (__a = (_Za = (_Ya = defaultTheme.inbox) == null ? void 0 : _Ya.header) == null ? void 0 : _Za.menus) == null ? void 0 : __a.filters) == null ? void 0 : _$a.inbox) == null ? void 0 : _ab.icon,\n ...(_fb = (_eb = (_db = (_cb = (_bb = theme2.inbox) == null ? void 0 : _bb.header) == null ? void 0 : _cb.menus) == null ? void 0 : _db.filters) == null ? void 0 : _eb.inbox) == null ? void 0 : _fb.icon\n }\n },\n archive: {\n ...(_jb = (_ib = (_hb = (_gb = defaultTheme.inbox) == null ? void 0 : _gb.header) == null ? void 0 : _hb.menus) == null ? void 0 : _ib.filters) == null ? void 0 : _jb.archive,\n ...(_nb = (_mb = (_lb = (_kb = theme2.inbox) == null ? void 0 : _kb.header) == null ? void 0 : _lb.menus) == null ? void 0 : _mb.filters) == null ? void 0 : _nb.archive,\n icon: {\n ...(_sb = (_rb = (_qb = (_pb = (_ob = defaultTheme.inbox) == null ? void 0 : _ob.header) == null ? void 0 : _pb.menus) == null ? void 0 : _qb.filters) == null ? void 0 : _rb.archive) == null ? void 0 : _sb.icon,\n ...(_xb = (_wb = (_vb = (_ub = (_tb = theme2.inbox) == null ? void 0 : _tb.header) == null ? void 0 : _ub.menus) == null ? void 0 : _vb.filters) == null ? void 0 : _wb.archive) == null ? void 0 : _xb.icon\n }\n }\n },\n actions: {\n ...(_Ab = (_zb = (_yb = defaultTheme.inbox) == null ? void 0 : _yb.header) == null ? void 0 : _zb.menus) == null ? void 0 : _Ab.actions,\n ...(_Db = (_Cb = (_Bb = theme2.inbox) == null ? void 0 : _Bb.header) == null ? void 0 : _Cb.menus) == null ? void 0 : _Db.actions,\n markAllRead: {\n ...(_Hb = (_Gb = (_Fb = (_Eb = defaultTheme.inbox) == null ? void 0 : _Eb.header) == null ? void 0 : _Fb.menus) == null ? void 0 : _Gb.actions) == null ? void 0 : _Hb.markAllRead,\n ...(_Lb = (_Kb = (_Jb = (_Ib = theme2.inbox) == null ? void 0 : _Ib.header) == null ? void 0 : _Jb.menus) == null ? void 0 : _Kb.actions) == null ? void 0 : _Lb.markAllRead,\n icon: {\n ...(_Qb = (_Pb = (_Ob = (_Nb = (_Mb = defaultTheme.inbox) == null ? void 0 : _Mb.header) == null ? void 0 : _Nb.menus) == null ? void 0 : _Ob.actions) == null ? void 0 : _Pb.markAllRead) == null ? void 0 : _Qb.icon,\n ...(_Vb = (_Ub = (_Tb = (_Sb = (_Rb = theme2.inbox) == null ? void 0 : _Rb.header) == null ? void 0 : _Sb.menus) == null ? void 0 : _Tb.actions) == null ? void 0 : _Ub.markAllRead) == null ? void 0 : _Vb.icon\n }\n },\n archiveAll: {\n ...(_Zb = (_Yb = (_Xb = (_Wb = defaultTheme.inbox) == null ? void 0 : _Wb.header) == null ? void 0 : _Xb.menus) == null ? void 0 : _Yb.actions) == null ? void 0 : _Zb.archiveAll,\n ...(_bc = (_ac = (_$b = (__b = theme2.inbox) == null ? void 0 : __b.header) == null ? void 0 : _$b.menus) == null ? void 0 : _ac.actions) == null ? void 0 : _bc.archiveAll,\n icon: {\n ...(_gc = (_fc = (_ec = (_dc = (_cc = defaultTheme.inbox) == null ? void 0 : _cc.header) == null ? void 0 : _dc.menus) == null ? void 0 : _ec.actions) == null ? void 0 : _fc.archiveAll) == null ? void 0 : _gc.icon,\n ...(_lc = (_kc = (_jc = (_ic = (_hc = theme2.inbox) == null ? void 0 : _hc.header) == null ? void 0 : _ic.menus) == null ? void 0 : _jc.actions) == null ? void 0 : _kc.archiveAll) == null ? void 0 : _lc.icon\n }\n },\n archiveRead: {\n ...(_pc = (_oc = (_nc = (_mc = defaultTheme.inbox) == null ? void 0 : _mc.header) == null ? void 0 : _nc.menus) == null ? void 0 : _oc.actions) == null ? void 0 : _pc.archiveRead,\n ...(_tc = (_sc = (_rc = (_qc = theme2.inbox) == null ? void 0 : _qc.header) == null ? void 0 : _rc.menus) == null ? void 0 : _sc.actions) == null ? void 0 : _tc.archiveRead,\n icon: {\n ...(_yc = (_xc = (_wc = (_vc = (_uc = defaultTheme.inbox) == null ? void 0 : _uc.header) == null ? void 0 : _vc.menus) == null ? void 0 : _wc.actions) == null ? void 0 : _xc.archiveRead) == null ? void 0 : _yc.icon,\n ...(_Dc = (_Cc = (_Bc = (_Ac = (_zc = theme2.inbox) == null ? void 0 : _zc.header) == null ? void 0 : _Ac.menus) == null ? void 0 : _Bc.actions) == null ? void 0 : _Cc.archiveRead) == null ? void 0 : _Dc.icon\n }\n }\n }\n }\n },\n list: {\n ...(_Ec = defaultTheme.inbox) == null ? void 0 : _Ec.list,\n ...(_Fc = theme2.inbox) == null ? void 0 : _Fc.list,\n item: {\n ...(_Hc = (_Gc = defaultTheme.inbox) == null ? void 0 : _Gc.list) == null ? void 0 : _Hc.item,\n ...(_Jc = (_Ic = theme2.inbox) == null ? void 0 : _Ic.list) == null ? void 0 : _Jc.item,\n menu: {\n ...(_Mc = (_Lc = (_Kc = defaultTheme.inbox) == null ? void 0 : _Kc.list) == null ? void 0 : _Lc.item) == null ? void 0 : _Mc.menu,\n ...(_Pc = (_Oc = (_Nc = theme2.inbox) == null ? void 0 : _Nc.list) == null ? void 0 : _Oc.item) == null ? void 0 : _Pc.menu,\n item: {\n ...(_Tc = (_Sc = (_Rc = (_Qc = defaultTheme.inbox) == null ? void 0 : _Qc.list) == null ? void 0 : _Rc.item) == null ? void 0 : _Sc.menu) == null ? void 0 : _Tc.item,\n ...(_Xc = (_Wc = (_Vc = (_Uc = theme2.inbox) == null ? void 0 : _Uc.list) == null ? void 0 : _Vc.item) == null ? void 0 : _Wc.menu) == null ? void 0 : _Xc.item,\n read: {\n ...(_ad = (_$c = (__c = (_Zc = (_Yc = defaultTheme.inbox) == null ? void 0 : _Yc.list) == null ? void 0 : _Zc.item) == null ? void 0 : __c.menu) == null ? void 0 : _$c.item) == null ? void 0 : _ad.read,\n ...(_fd = (_ed = (_dd = (_cd = (_bd = theme2.inbox) == null ? void 0 : _bd.list) == null ? void 0 : _cd.item) == null ? void 0 : _dd.menu) == null ? void 0 : _ed.item) == null ? void 0 : _fd.read\n },\n unread: {\n ...(_kd = (_jd = (_id = (_hd = (_gd = defaultTheme.inbox) == null ? void 0 : _gd.list) == null ? void 0 : _hd.item) == null ? void 0 : _id.menu) == null ? void 0 : _jd.item) == null ? void 0 : _kd.unread,\n ...(_pd = (_od = (_nd = (_md = (_ld = theme2.inbox) == null ? void 0 : _ld.list) == null ? void 0 : _md.item) == null ? void 0 : _nd.menu) == null ? void 0 : _od.item) == null ? void 0 : _pd.unread\n },\n archive: {\n ...(_ud = (_td = (_sd = (_rd = (_qd = defaultTheme.inbox) == null ? void 0 : _qd.list) == null ? void 0 : _rd.item) == null ? void 0 : _sd.menu) == null ? void 0 : _td.item) == null ? void 0 : _ud.archive,\n ...(_zd = (_yd = (_xd = (_wd = (_vd = theme2.inbox) == null ? void 0 : _vd.list) == null ? void 0 : _wd.item) == null ? void 0 : _xd.menu) == null ? void 0 : _yd.item) == null ? void 0 : _zd.archive\n },\n unarchive: {\n ...(_Ed = (_Dd = (_Cd = (_Bd = (_Ad = defaultTheme.inbox) == null ? void 0 : _Ad.list) == null ? void 0 : _Bd.item) == null ? void 0 : _Cd.menu) == null ? void 0 : _Dd.item) == null ? void 0 : _Ed.unarchive,\n ...(_Jd = (_Id = (_Hd = (_Gd = (_Fd = theme2.inbox) == null ? void 0 : _Fd.list) == null ? void 0 : _Gd.item) == null ? void 0 : _Hd.menu) == null ? void 0 : _Id.item) == null ? void 0 : _Jd.unarchive\n }\n }\n }\n }\n },\n loading: {\n ...(_Kd = defaultTheme.inbox) == null ? void 0 : _Kd.loading,\n ...(_Ld = theme2.inbox) == null ? void 0 : _Ld.loading\n },\n empty: {\n ...(_Md = defaultTheme.inbox) == null ? void 0 : _Md.empty,\n ...(_Nd = theme2.inbox) == null ? void 0 : _Nd.empty\n },\n error: {\n ...(_Od = defaultTheme.inbox) == null ? void 0 : _Od.error,\n ...(_Pd = theme2.inbox) == null ? void 0 : _Pd.error\n }\n }\n };\n};\nclass CourierInboxThemeManager {\n constructor(initialTheme) {\n // Event IDs\n __publicField(this, \"THEME_CHANGE_EVENT\", \"courier_inbox_theme_change\");\n // State\n __publicField(this, \"_theme\");\n __publicField(this, \"_lightTheme\", defaultLightTheme);\n __publicField(this, \"_darkTheme\", defaultDarkTheme);\n __publicField(this, \"_target\");\n __publicField(this, \"_subscriptions\", []);\n // System theme\n __publicField(this, \"_userMode\");\n __publicField(this, \"_systemMode\");\n __publicField(this, \"_systemThemeCleanup\");\n this._theme = initialTheme;\n this._target = new EventTarget();\n this._userMode = \"system\";\n this._systemMode = getSystemThemeMode();\n this.setLightTheme(defaultLightTheme);\n this.setDarkTheme(defaultDarkTheme);\n this._systemThemeCleanup = addSystemThemeModeListener((mode) => {\n this._systemMode = mode;\n this.updateTheme();\n });\n }\n setLightTheme(theme2) {\n this._lightTheme = theme2;\n if (this._systemMode === \"light\") {\n this.updateTheme();\n }\n }\n setDarkTheme(theme2) {\n this._darkTheme = theme2;\n if (this._systemMode === \"dark\") {\n this.updateTheme();\n }\n }\n /**\n * Get the current system theme\n */\n get currentSystemTheme() {\n return this._systemMode;\n }\n /**\n * Get the current theme\n */\n getTheme() {\n return this._theme;\n }\n /**\n * Update the theme\n */\n updateTheme() {\n const mode = this._userMode === \"system\" ? this._systemMode : this._userMode;\n const theme2 = mode === \"light\" ? this._lightTheme : this._darkTheme;\n const mergedTheme = mergeTheme(mode, theme2);\n this.setTheme(mergedTheme);\n }\n /**\n * Set the theme and notify all listeners\n */\n setTheme(theme2) {\n if (theme2 === this._theme) return;\n this._theme = theme2;\n this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT, {\n detail: { theme: theme2 }\n }));\n }\n /**\n * Set the mode and notify all listeners\n */\n setMode(mode) {\n this._userMode = mode;\n this.updateTheme();\n }\n /**\n * Subscribe to theme changes\n * @param {Function} callback - Function to run when the theme changes\n * @returns {CourierInboxThemeSubscription} - Object with remove method to stop listening\n */\n subscribe(callback) {\n const controller = new AbortController();\n this._target.addEventListener(this.THEME_CHANGE_EVENT, (e) => {\n callback(e.detail.theme);\n }, { signal: controller.signal });\n const subscription = {\n manager: this,\n unsubscribe: () => {\n controller.abort();\n const index = this._subscriptions.indexOf(subscription);\n if (index > -1) {\n this._subscriptions.splice(index, 1);\n }\n }\n };\n this._subscriptions.push(subscription);\n return subscription;\n }\n /**\n * Clean up event listeners\n */\n cleanup() {\n if (this._systemThemeCleanup) {\n this._systemThemeCleanup();\n }\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\n this._subscriptions = [];\n }\n}\nclass CourierInbox extends HTMLElement {\n constructor(themeManager) {\n var _a;\n super();\n // State\n __publicField(this, \"_currentFeed\", \"inbox\");\n // Theming\n __publicField(this, \"_themeManager\");\n // Components\n __publicField(this, \"_shadow\");\n __publicField(this, \"_list\");\n __publicField(this, \"_datastoreListener\");\n __publicField(this, \"_authListener\");\n __publicField(this, \"_style\");\n // Header\n __publicField(this, \"_header\");\n __publicField(this, \"_headerFactory\");\n // List\n __publicField(this, \"_onMessageClick\");\n __publicField(this, \"_onMessageActionClick\");\n __publicField(this, \"_onMessageLongPress\");\n // Default props\n __publicField(this, \"_defaultProps\", {\n title: \"Inbox\",\n icon: CourierIconSVGs.inbox,\n feedType: this._currentFeed,\n height: \"768px\"\n });\n this._shadow = this.attachShadow({ mode: \"open\" });\n this._themeManager = themeManager ?? new CourierInboxThemeManager(defaultLightTheme);\n this._header = new CourierInboxHeader({\n themeManager: this._themeManager,\n onFeedTypeChange: (feedType) => {\n this.setFeedType(feedType);\n }\n });\n this._header.build(void 0);\n this._shadow.appendChild(this._header);\n this._list = new CourierInboxList({\n themeManager: this._themeManager,\n onRefresh: () => {\n this.refresh();\n },\n onPaginationTrigger: async (feedType) => {\n var _a2, _b;\n try {\n await CourierInboxDatastore.shared.fetchNextPageOfMessages({\n feedType\n });\n } catch (error) {\n (_b = (_a2 = Courier.shared.client) == null ? void 0 : _a2.options.logger) == null ? void 0 : _b.error(\"Failed to fetch next page of messages:\", error);\n }\n },\n onMessageClick: (message, index) => {\n var _a2;\n CourierInboxDatastore.shared.clickMessage({ message });\n this.dispatchEvent(new CustomEvent(\"message-click\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageClick) == null ? void 0 : _a2.call(this, { message, index });\n },\n onMessageActionClick: (message, action, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-action-click\", {\n detail: { message, action, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageActionClick) == null ? void 0 : _a2.call(this, { message, action, index });\n },\n onMessageLongPress: (message, index) => {\n var _a2;\n this.dispatchEvent(new CustomEvent(\"message-long-press\", {\n detail: { message, index },\n bubbles: true,\n composed: true\n }));\n (_a2 = this._onMessageLongPress) == null ? void 0 : _a2.call(this, { message, index });\n }\n });\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n this._shadow.appendChild(this._style);\n this._shadow.appendChild(this._list);\n this._datastoreListener = new CourierInboxDataStoreListener({\n onError: (error) => {\n this._list.setError(error);\n },\n onDataSetChange: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.setDataSet(dataSet);\n this.updateHeader();\n }\n },\n onPageAdded: (dataSet, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addPage(dataSet);\n this.updateHeader();\n }\n },\n onMessageAdd: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.addMessage(message, index);\n this.updateHeader();\n }\n },\n onMessageRemove: (_, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.removeMessage(index);\n this.updateHeader();\n }\n },\n onMessageUpdate: (message, index, feedType) => {\n if (this._currentFeed === feedType) {\n this._list.updateMessage(message, index);\n this.updateHeader();\n }\n },\n onUnreadCountChange: (_) => {\n this.updateHeader();\n }\n });\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n this._authListener = Courier.shared.addAuthenticationListener((_) => {\n this.refresh();\n });\n if ((_a = Courier.shared.client) == null ? void 0 : _a.options.userId) {\n this.refresh();\n }\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"height\", \"light-theme\", \"dark-theme\", \"mode\", \"message-click\", \"message-action-click\", \"message-long-press\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n return `\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: ${this._defaultProps.height};\n }\n\n courier-inbox-header {\n flex-shrink: 0;\n }\n\n courier-inbox-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n `;\n }\n setHeader(factory) {\n this._headerFactory = factory;\n this.updateHeader();\n }\n removeHeader() {\n this._headerFactory = null;\n this.updateHeader();\n }\n setLoadingState(factory) {\n this._list.setLoadingStateFactory(factory);\n }\n setEmptyState(factory) {\n this._list.setEmptyStateFactory(factory);\n }\n setErrorState(factory) {\n this._list.setErrorStateFactory(factory);\n }\n setListItem(factory) {\n this._list.setListItemFactory(factory);\n }\n setPaginationItem(factory) {\n this._list.setPaginationItemFactory(factory);\n }\n onMessageClick(handler) {\n this._onMessageClick = handler;\n }\n onMessageActionClick(handler) {\n this._onMessageActionClick = handler;\n }\n onMessageLongPress(handler) {\n this._onMessageLongPress = handler;\n }\n setFeedType(feedType) {\n this._currentFeed = feedType;\n this._list.setFeedType(feedType);\n this.updateHeader();\n this.load({\n feedType: this._currentFeed,\n canUseCache: true\n });\n }\n updateHeader() {\n const props = {\n feedType: this._currentFeed,\n unreadCount: CourierInboxDatastore.shared.unreadCount,\n messageCount: this._list.messages.length\n };\n switch (this._headerFactory) {\n case void 0:\n this._header.render(props);\n break;\n case null:\n this._header.build(null);\n break;\n default:\n const headerElement = this._headerFactory(props);\n this._header.build(headerElement);\n break;\n }\n }\n async load(props) {\n await CourierInboxDatastore.shared.load(props);\n await CourierInboxDatastore.shared.listenForUpdates();\n }\n refresh() {\n this.load({\n feedType: this._currentFeed,\n canUseCache: false\n });\n }\n connectedCallback() {\n this.refresh();\n }\n disconnectedCallback() {\n var _a, _b;\n this._themeManager.cleanup();\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n (_b = this._authListener) == null ? void 0 : _b.remove();\n }\n attributeChangedCallback(name, oldValue, newValue) {\n var _a, _b, _c, _d, _e, _f;\n if (oldValue === newValue) return;\n switch (name) {\n case \"height\":\n const height = newValue || this._defaultProps.height;\n this.style.height = height;\n break;\n case \"message-click\":\n if (newValue) {\n try {\n this._onMessageClick = new Function(\"props\", newValue);\n } catch (error) {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(\"Failed to parse message-click handler:\", error);\n }\n } else {\n this._onMessageClick = void 0;\n }\n break;\n case \"message-action-click\":\n if (newValue) {\n try {\n this._onMessageActionClick = new Function(\"props\", newValue);\n } catch (error) {\n (_d = (_c = Courier.shared.client) == null ? void 0 : _c.options.logger) == null ? void 0 : _d.error(\"Failed to parse message-action-click handler:\", error);\n }\n } else {\n this._onMessageActionClick = void 0;\n }\n break;\n case \"message-long-press\":\n if (newValue) {\n try {\n this._onMessageLongPress = new Function(\"props\", newValue);\n } catch (error) {\n (_f = (_e = Courier.shared.client) == null ? void 0 : _e.options.logger) == null ? void 0 : _f.error(\"Failed to parse message-long-press handler:\", error);\n }\n } else {\n this._onMessageLongPress = void 0;\n }\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n}\nif (!customElements.get(\"courier-inbox\")) {\n customElements.define(\"courier-inbox\", CourierInbox);\n}\nclass CourierInboxMenuButton extends CourierElement {\n constructor(themeBus) {\n super();\n // Theme\n __publicField(this, \"_themeSubscription\");\n // Components\n __publicField(this, \"_container\");\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_unreadCountBadge\");\n this._themeSubscription = themeBus.subscribe((_) => {\n this.updateTheme();\n });\n }\n defaultElement() {\n this._container = document.createElement(\"div\");\n this._container.className = \"menu-button-container\";\n this._triggerButton = new CourierIconButton(CourierIconSVGs.inbox);\n this._unreadCountBadge = new CourierUnreadCountBadge({\n themeBus: this._themeSubscription.manager,\n location: \"button\"\n });\n this._unreadCountBadge.id = \"unread-badge\";\n const style = document.createElement(\"style\");\n style.textContent = this.getStyles();\n this._container.appendChild(style);\n this._container.appendChild(this._triggerButton);\n this._container.appendChild(this._unreadCountBadge);\n this.shadow.appendChild(this._container);\n this.updateTheme();\n return this._container;\n }\n getStyles() {\n return `\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n `;\n }\n onUnreadCountChange(unreadCount) {\n var _a;\n (_a = this._unreadCountBadge) == null ? void 0 : _a.setCount(unreadCount);\n this.updateTheme();\n }\n updateTheme() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;\n const theme2 = this._themeSubscription.manager.getTheme();\n (_d = this._triggerButton) == null ? void 0 : _d.updateIconColor(((_c = (_b = (_a = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _a.button) == null ? void 0 : _b.icon) == null ? void 0 : _c.color) ?? CourierColors.black[500]);\n (_h = this._triggerButton) == null ? void 0 : _h.updateIconSVG(((_g = (_f = (_e = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _e.button) == null ? void 0 : _f.icon) == null ? void 0 : _g.svg) ?? CourierIconSVGs.inbox);\n (_k = this._triggerButton) == null ? void 0 : _k.updateBackgroundColor(((_j = (_i = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _i.button) == null ? void 0 : _j.backgroundColor) ?? \"transparent\");\n (_n = this._triggerButton) == null ? void 0 : _n.updateHoverBackgroundColor(((_m = (_l = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _l.button) == null ? void 0 : _m.hoverBackgroundColor) ?? CourierColors.black[50010]);\n (_q = this._triggerButton) == null ? void 0 : _q.updateActiveBackgroundColor(((_p = (_o = theme2 == null ? void 0 : theme2.popup) == null ? void 0 : _o.button) == null ? void 0 : _p.activeBackgroundColor) ?? CourierColors.black[50020]);\n (_r = this._unreadCountBadge) == null ? void 0 : _r.refreshTheme(\"button\");\n }\n disconnectedCallback() {\n this._themeSubscription.unsubscribe();\n }\n}\nif (!customElements.get(\"courier-inbox-menu-button\")) {\n customElements.define(\"courier-inbox-menu-button\", CourierInboxMenuButton);\n}\nclass CourierInboxMenu extends HTMLElement {\n constructor() {\n super();\n // State\n __publicField(this, \"_width\", \"440px\");\n __publicField(this, \"_height\", \"440px\");\n __publicField(this, \"_popupAlignment\", \"top-right\");\n __publicField(this, \"_top\", \"40px\");\n __publicField(this, \"_right\", \"0\");\n __publicField(this, \"_bottom\", \"40px\");\n __publicField(this, \"_left\", \"0\");\n // Theming\n __publicField(this, \"_themeManager\", new CourierInboxThemeManager(defaultLightTheme));\n // Components\n __publicField(this, \"_triggerButton\");\n __publicField(this, \"_popup\");\n __publicField(this, \"_inbox\");\n __publicField(this, \"_style\");\n // Listeners\n __publicField(this, \"_datastoreListener\");\n // Factories\n __publicField(this, \"_popupMenuButtonFactory\");\n const shadow = this.attachShadow({ mode: \"open\" });\n this._triggerButton = new CourierInboxMenuButton(this._themeManager);\n this._triggerButton.build(void 0);\n this._popup = document.createElement(\"div\");\n this._popup.className = \"popup\";\n this._inbox = new CourierInbox(this._themeManager);\n this._inbox.setAttribute(\"height\", \"100%\");\n this._style = document.createElement(\"style\");\n this.refreshTheme();\n shadow.appendChild(this._style);\n shadow.appendChild(this._triggerButton);\n shadow.appendChild(this._popup);\n this._popup.appendChild(this._inbox);\n this._triggerButton.addEventListener(\"click\", this.togglePopup.bind(this));\n document.addEventListener(\"click\", this.handleOutsideClick.bind(this));\n this.updatePopupPosition();\n this._datastoreListener = new CourierInboxDataStoreListener(this);\n CourierInboxDatastore.shared.addDataStoreListener(this._datastoreListener);\n this._themeManager.subscribe((_) => {\n this.refreshTheme();\n });\n }\n get theme() {\n return this._themeManager.getTheme();\n }\n setLightTheme(theme2) {\n this._themeManager.setLightTheme(theme2);\n }\n setDarkTheme(theme2) {\n this._themeManager.setDarkTheme(theme2);\n }\n static get observedAttributes() {\n return [\"popup-alignment\", \"message-click\", \"message-action-click\", \"message-long-press\", \"popup-width\", \"popup-height\", \"top\", \"right\", \"bottom\", \"left\", \"light-theme\", \"dark-theme\", \"mode\"];\n }\n refreshTheme() {\n this._style.textContent = this.getStyles();\n }\n getStyles() {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return `\n :host {\n display: inline-block;\n position: relative;\n }\n\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n\n .popup {\n display: none;\n position: absolute;\n background: ${((_b = (_a = this.theme.popup) == null ? void 0 : _a.window) == null ? void 0 : _b.backgroundColor) ?? \"red\"};\n border-radius: ${((_d = (_c = this.theme.popup) == null ? void 0 : _c.window) == null ? void 0 : _d.borderRadius) ?? \"8px\"};\n border: ${((_f = (_e = this.theme.popup) == null ? void 0 : _e.window) == null ? void 0 : _f.border) ?? `1px solid red`};\n box-shadow: ${((_h = (_g = this.theme.popup) == null ? void 0 : _g.window) == null ? void 0 : _h.shadow) ?? `0px 8px 16px -4px red`};\n z-index: 1000;\n width: ${this._width};\n height: ${this._height};\n overflow: hidden;\n transform: translateZ(0);\n will-change: transform;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n\n courier-inbox {\n height: 100%;\n }\n `;\n }\n attributeChangedCallback(name, _, newValue) {\n switch (name) {\n case \"popup-alignment\":\n if (this.isValidPosition(newValue)) {\n this._popupAlignment = newValue;\n this.updatePopupPosition();\n }\n break;\n case \"popup-width\":\n this._width = newValue;\n this.setSize(newValue, this._height);\n break;\n case \"popup-height\":\n this._height = newValue;\n this.setSize(this._width, newValue);\n break;\n case \"top\":\n this._top = newValue;\n this.updatePopupPosition();\n break;\n case \"right\":\n this._right = newValue;\n this.updatePopupPosition();\n break;\n case \"bottom\":\n this._bottom = newValue;\n this.updatePopupPosition();\n break;\n case \"left\":\n this._left = newValue;\n this.updatePopupPosition();\n break;\n case \"light-theme\":\n if (newValue) {\n this.setLightTheme(JSON.parse(newValue));\n }\n break;\n case \"dark-theme\":\n if (newValue) {\n this.setDarkTheme(JSON.parse(newValue));\n }\n break;\n case \"mode\":\n this._themeManager.setMode(newValue);\n break;\n }\n }\n onUnreadCountChange(_) {\n this.render();\n }\n onMessageClick(handler) {\n this._inbox.onMessageClick(handler);\n }\n onMessageActionClick(handler) {\n this._inbox.onMessageActionClick(handler);\n }\n onMessageLongPress(handler) {\n this._inbox.onMessageLongPress(handler);\n }\n isValidPosition(value) {\n const validPositions = [\n \"top-right\",\n \"top-left\",\n \"top-center\",\n \"bottom-right\",\n \"bottom-left\",\n \"bottom-center\",\n \"center-right\",\n \"center-left\",\n \"center-center\"\n ];\n return validPositions.includes(value);\n }\n updatePopupPosition() {\n this._popup.style.top = \"\";\n this._popup.style.bottom = \"\";\n this._popup.style.left = \"\";\n this._popup.style.right = \"\";\n this._popup.style.margin = \"\";\n this._popup.style.transform = \"\";\n switch (this._popupAlignment) {\n case \"top-right\":\n this._popup.style.top = this._top;\n this._popup.style.right = this._right;\n break;\n case \"top-left\":\n this._popup.style.top = this._top;\n this._popup.style.left = this._left;\n break;\n case \"top-center\":\n this._popup.style.top = this._top;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"bottom-right\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.right = this._right;\n break;\n case \"bottom-left\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = this._left;\n break;\n case \"bottom-center\":\n this._popup.style.bottom = this._bottom;\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translateX(-50%)\";\n break;\n case \"center-right\":\n this._popup.style.top = \"50%\";\n this._popup.style.right = this._right;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-left\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = this._left;\n this._popup.style.transform = \"translateY(-50%)\";\n break;\n case \"center-center\":\n this._popup.style.top = \"50%\";\n this._popup.style.left = \"50%\";\n this._popup.style.transform = \"translate(-50%, -50%)\";\n break;\n }\n }\n togglePopup(event) {\n event.stopPropagation();\n const isVisible = this._popup.style.display === \"block\";\n if (!isVisible) {\n this._popup.style.display = \"block\";\n } else {\n this._popup.style.display = \"none\";\n }\n }\n handleOutsideClick(event) {\n if (!this.contains(event.target)) {\n this._popup.style.display = \"none\";\n }\n }\n setContent(element) {\n this._inbox.innerHTML = \"\";\n this._inbox.appendChild(element);\n }\n setSize(width, height) {\n this._width = width;\n this._height = height;\n this._popup.style.width = width;\n this._popup.style.height = height;\n }\n setPosition(position) {\n var _a, _b;\n if (this.isValidPosition(position)) {\n this._popupAlignment = position;\n this.updatePopupPosition();\n } else {\n (_b = (_a = Courier.shared.client) == null ? void 0 : _a.options.logger) == null ? void 0 : _b.error(`Invalid position: ${position}`);\n }\n }\n setFeedType(feedType) {\n this._inbox.setFeedType(feedType);\n }\n // Factory methods\n setPopupHeader(factory) {\n this._inbox.setHeader(factory);\n }\n removePopupHeader() {\n this._inbox.removeHeader();\n }\n setPopupLoadingState(factory) {\n this._inbox.setLoadingState(factory);\n }\n setPopupEmptyState(factory) {\n this._inbox.setEmptyState(factory);\n }\n setPopupErrorState(factory) {\n this._inbox.setErrorState(factory);\n }\n setPopupListItem(factory) {\n this._inbox.setListItem(factory);\n }\n setPopupPaginationItem(factory) {\n this._inbox.setPaginationItem(factory);\n }\n setPopupMenuButton(factory) {\n this._popupMenuButtonFactory = factory;\n this.render();\n }\n render() {\n const unreadCount = CourierInboxDatastore.shared.unreadCount;\n switch (this._popupMenuButtonFactory) {\n case void 0:\n case null:\n this._triggerButton.build(void 0);\n this._triggerButton.onUnreadCountChange(unreadCount);\n break;\n default:\n const customButton = this._popupMenuButtonFactory({ unreadCount });\n this._triggerButton.build(customButton);\n break;\n }\n }\n disconnectedCallback() {\n var _a;\n (_a = this._datastoreListener) == null ? void 0 : _a.remove();\n this._themeManager.cleanup();\n }\n}\nif (!customElements.get(\"courier-inbox-menu\")) {\n customElements.define(\"courier-inbox-menu\", CourierInboxMenu);\n}\nfunction markAsRead(message) {\n return CourierInboxDatastore.shared.readMessage({ message });\n}\nfunction markAsUnread(message) {\n return CourierInboxDatastore.shared.unreadMessage({ message });\n}\nfunction clickMessage(message) {\n return CourierInboxDatastore.shared.clickMessage({ message });\n}\nfunction archiveMessage(message) {\n return CourierInboxDatastore.shared.archiveMessage({ message });\n}\nfunction openMessage(message) {\n return CourierInboxDatastore.shared.openMessage({ message });\n}\nclass CourierInboxDatastoreEvents {\n onDataSetChange(_, __) {\n }\n onPageAdded(_, __) {\n }\n onUnreadCountChange(_) {\n }\n onMessageAdd(_, __, ___) {\n }\n onMessageRemove(_, __, ___) {\n }\n onMessageUpdate(_, __, ___) {\n }\n onError(_) {\n }\n}\nexport {\n CourierInbox,\n CourierInboxDataStoreListener,\n CourierInboxDatastore,\n CourierInboxDatastoreEvents,\n CourierInboxHeader,\n CourierInboxMenu,\n CourierInboxThemeManager,\n CourierListItem,\n archiveMessage,\n clickMessage,\n defaultDarkTheme,\n defaultLightTheme,\n markAsRead,\n markAsUnread,\n mergeTheme,\n openMessage\n};\n//# sourceMappingURL=index.mjs.map\n","/** @license React v17.0.2\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar _assign = require('object-assign');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentName(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","import { ReactNode } from \"react\";\nimport ReactDOM, { 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 with compatibility for React 17 and 18+ (createRoot).\n * See https://react.dev/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis\n * for compatibility details\n *\n * @param node - The React node to render.\n * @param container - The container to render the node into.\n * @returns The rendered node.\n */\nfunction render(node: ReactNode, container: HTMLElement) {\n // Check if createRoot is a function (React 18+)\n const createRoot = (ReactDOM as any)[\"createRoot\"];\n if (createRoot instanceof Function) {\n const root = createRoot(container);\n return root.render(node);\n }\n\n // Fallback to render (React 17)\n const render = (ReactDOM as any)[\"render\"];\n return render(node, container);\n}","import React, { useRef, useEffect } from \"react\";\nimport { CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxTheme, CourierInbox as CourierInboxElement, CourierInboxHeaderFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxFeedType } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\n\nexport interface CourierInboxProps {\n height?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInbox = (props: CourierInboxProps) => {\n const inboxRef = useRef<CourierInboxElement>(null);\n\n // Handle message click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, inboxRef]);\n\n // Handle message action click\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, inboxRef]);\n\n // Handle message long press\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n inbox.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, inboxRef]);\n\n // Render header\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderHeader) return;\n queueMicrotask(() => {\n inbox.setHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderHeader, inboxRef]);\n\n // Render list item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderListItem) return;\n queueMicrotask(() => {\n inbox.setListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderListItem, inboxRef]);\n\n // Render empty state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderEmptyState) return;\n queueMicrotask(() => {\n inbox.setEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderEmptyState, inboxRef]);\n\n // Render loading state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderLoadingState) return;\n queueMicrotask(() => {\n inbox.setLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderLoadingState, inboxRef]);\n\n // Render error state\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderErrorState) return;\n queueMicrotask(() => {\n inbox.setErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderErrorState, inboxRef]);\n\n // Render pagination item\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox || !props.renderPaginationItem) return;\n queueMicrotask(() => {\n inbox.setPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPaginationItem, inboxRef]);\n\n // Set feed type\n useEffect(() => {\n const inbox = inboxRef.current;\n if (!inbox) return;\n queueMicrotask(() => {\n inbox.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, inboxRef]);\n\n return (\n /* @ts-ignore */\n <courier-inbox\n ref={inboxRef}\n height={props.height}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n );\n};","import { useRef, useEffect } from \"react\";\nimport { CourierInboxFeedType, CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxMenuButtonFactoryProps, CourierInboxMenu as CourierInboxMenuElement, CourierInboxPaginationItemFactoryProps, CourierInboxPopupAlignment, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps, CourierInboxTheme } from \"@trycourier/courier-ui-inbox\";\nimport { reactNodeToHTMLElement } from \"../utils/utils\";\nimport { CourierComponentThemeMode } from \"@trycourier/courier-ui-core\";\n\nexport interface CourierInboxMenuProps {\n popupAlignment?: CourierInboxPopupAlignment;\n popupWidth?: string;\n popupHeight?: string;\n left?: string;\n top?: string;\n right?: string;\n bottom?: string;\n lightTheme?: CourierInboxTheme;\n darkTheme?: CourierInboxTheme;\n mode?: CourierComponentThemeMode;\n feedType?: CourierInboxFeedType;\n onMessageClick?: (props: CourierInboxListItemFactoryProps) => void;\n onMessageActionClick?: (props: CourierInboxListItemActionFactoryProps) => void;\n onMessageLongPress?: (props: CourierInboxListItemFactoryProps) => void;\n renderPopupHeader?: (props: CourierInboxHeaderFactoryProps | undefined | null) => React.ReactNode;\n renderPopupListItem?: (props: CourierInboxListItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupEmptyState?: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => React.ReactNode;\n renderPopupLoadingState?: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => React.ReactNode;\n renderPopupErrorState?: (props: CourierInboxStateErrorFactoryProps | undefined | null) => React.ReactNode;\n renderPopupPaginationItem?: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => React.ReactNode;\n renderPopupMenuButton?: (props: CourierInboxMenuButtonFactoryProps | undefined | null) => React.ReactNode;\n}\n\nexport const CourierInboxMenu = (props: CourierInboxMenuProps) => {\n const menuRef = useRef<CourierInboxMenuElement>(null);\n\n // Handle message click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageClick(props.onMessageClick);\n }, [props.onMessageClick, menuRef]);\n\n // Handle message action click\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageActionClick(props.onMessageActionClick);\n }, [props.onMessageActionClick, menuRef]);\n\n // Handle message long press\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n menu.onMessageLongPress(props.onMessageLongPress);\n }, [props.onMessageLongPress, menuRef]);\n\n // Render header\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupHeader) return;\n queueMicrotask(() => {\n menu.setPopupHeader((headerProps?: CourierInboxHeaderFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupHeader!(headerProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupHeader, menuRef]);\n\n // Render list item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupListItem) return;\n queueMicrotask(() => {\n menu.setPopupListItem((itemProps?: CourierInboxListItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupListItem!(itemProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupListItem, menuRef]);\n\n // Render empty state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupEmptyState) return;\n queueMicrotask(() => {\n menu.setPopupEmptyState((emptyStateProps?: CourierInboxStateEmptyFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupEmptyState!(emptyStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupEmptyState, menuRef]);\n\n // Render loading state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupLoadingState) return;\n queueMicrotask(() => {\n menu.setPopupLoadingState((loadingStateProps?: CourierInboxStateLoadingFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupLoadingState!(loadingStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupLoadingState, menuRef]);\n\n // Render error state\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupErrorState) return;\n queueMicrotask(() => {\n menu.setPopupErrorState((errorStateProps?: CourierInboxStateErrorFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupErrorState!(errorStateProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupErrorState, menuRef]);\n\n // Render pagination item\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupPaginationItem) return;\n queueMicrotask(() => {\n menu.setPopupPaginationItem((paginationProps?: CourierInboxPaginationItemFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupPaginationItem!(paginationProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupPaginationItem, menuRef]);\n\n // Render menu button\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu || !props.renderPopupMenuButton) return;\n queueMicrotask(() => {\n menu.setPopupMenuButton((buttonProps?: CourierInboxMenuButtonFactoryProps | undefined | null): HTMLElement => {\n const reactNode = props.renderPopupMenuButton!(buttonProps);\n return reactNodeToHTMLElement(reactNode);\n });\n });\n }, [props.renderPopupMenuButton, menuRef]);\n\n // Set feed type\n useEffect(() => {\n const menu = menuRef.current;\n if (!menu) return;\n queueMicrotask(() => {\n menu.setFeedType(props.feedType || 'inbox');\n });\n }, [props.feedType, menuRef]);\n\n return (\n /* @ts-ignore */\n <courier-inbox-menu\n ref={menuRef}\n popup-alignment={props.popupAlignment}\n popup-width={props.popupWidth}\n popup-height={props.popupHeight}\n left={props.left}\n top={props.top}\n right={props.right}\n bottom={props.bottom}\n light-theme={props.lightTheme ? JSON.stringify(props.lightTheme) : undefined}\n dark-theme={props.darkTheme ? JSON.stringify(props.darkTheme) : undefined}\n mode={props.mode}\n />\n );\n};\n","import React from 'react';\nimport { Courier, CourierProps, InboxMessage } from '@trycourier/courier-js';\nimport { CourierInboxDatastore, CourierInboxDataStoreListener, CourierInboxFeedType, InboxDataSet } from '@trycourier/courier-ui-inbox';\n\ntype AuthenticationHooks = {\n userId?: string,\n signIn: (props: CourierProps) => void,\n signOut: () => void\n}\n\ntype InboxHooks = {\n load: (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => Promise<void>,\n fetchNextPageOfMessages: (props: { feedType: CourierInboxFeedType }) => Promise<InboxDataSet | null>,\n setPaginationLimit: (limit: number) => void,\n readMessage: (message: InboxMessage) => Promise<void>,\n unreadMessage: (message: InboxMessage) => Promise<void>,\n clickMessage: (message: InboxMessage) => Promise<void>,\n archiveMessage: (message: InboxMessage) => Promise<void>,\n openMessage: (message: InboxMessage) => Promise<void>,\n unarchiveMessage: (message: InboxMessage) => Promise<void>,\n readAllMessages: () => Promise<void>,\n inbox?: InboxDataSet,\n archive?: InboxDataSet,\n unreadCount?: number,\n error?: Error\n}\n\n// A hook for managing the shared state of Courier\n// If you want to use more functions, checkout the Courier JS SDK which\n// can be used directly by importing from '@trycourier/courier-js'\nexport const useCourier = () => {\n\n // Authentication Functions\n const signIn = (props: CourierProps) => Courier.shared.signIn(props);\n const signOut = () => Courier.shared.signOut();\n\n // Inbox Functions\n const loadInbox = (props?: { feedType: CourierInboxFeedType, canUseCache: boolean }) => CourierInboxDatastore.shared.load(props);\n const fetchNextPageOfMessages = (props: { feedType: CourierInboxFeedType }) => CourierInboxDatastore.shared.fetchNextPageOfMessages(props);\n const setPaginationLimit = (limit: number) => Courier.shared.paginationLimit = limit;\n const readMessage = (message: InboxMessage) => CourierInboxDatastore.shared.readMessage({ message });\n const unreadMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unreadMessage({ message });\n const clickMessage = (message: InboxMessage) => CourierInboxDatastore.shared.clickMessage({ message });\n const archiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.archiveMessage({ message });\n const openMessage = (message: InboxMessage) => CourierInboxDatastore.shared.openMessage({ message });\n const unarchiveMessage = (message: InboxMessage) => CourierInboxDatastore.shared.unarchiveMessage({ message });\n const readAllMessages = () => CourierInboxDatastore.shared.readAllMessages();\n\n // State\n const [auth, setAuth] = React.useState<AuthenticationHooks>({\n userId: undefined,\n signIn,\n signOut\n });\n\n const [inbox, setInbox] = React.useState<InboxHooks>({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages\n });\n\n React.useEffect(() => {\n\n // Add a listener to the Courier instance\n const listener = Courier.shared.addAuthenticationListener(() => refreshAuth());\n\n // Add inbox data store listener\n const inboxListener = new CourierInboxDataStoreListener({\n onError: (error: Error) => refreshInbox(error),\n onDataSetChange: () => refreshInbox(),\n onPageAdded: () => refreshInbox(),\n onMessageAdd: () => refreshInbox(),\n onMessageRemove: () => refreshInbox(),\n onMessageUpdate: () => refreshInbox(),\n onUnreadCountChange: () => refreshInbox()\n });\n CourierInboxDatastore.shared.addDataStoreListener(inboxListener);\n\n // Set initial values\n refreshAuth();\n refreshInbox();\n\n // Remove listeners when the component unmounts\n return () => {\n listener.remove();\n inboxListener.remove();\n };\n }, []);\n\n const refreshAuth = () => {\n const options = Courier.shared.client?.options;\n setAuth({\n userId: options?.userId,\n signIn,\n signOut\n });\n }\n\n const refreshInbox = (error?: Error) => {\n const datastore = CourierInboxDatastore.shared;\n setInbox({\n load: loadInbox,\n fetchNextPageOfMessages,\n setPaginationLimit,\n readMessage,\n unreadMessage,\n clickMessage,\n archiveMessage,\n openMessage,\n unarchiveMessage,\n readAllMessages,\n inbox: datastore.inboxDataSet,\n archive: datastore.archiveDataSet,\n unreadCount: datastore.unreadCount,\n error: error,\n });\n }\n\n return {\n shared: Courier.shared,\n auth: auth,\n inbox: inbox,\n };\n};\n"],"names":["__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","_CourierSocket","constructor","url","options","__publicField$1","this","isConnected","webSocket","connect","disconnect","Promise","resolve","reject","WebSocket","onopen","_a","onOpen","call","onmessage","event","onMessageReceived","data","onclose","onClose","code","reason","onerror","error","Error","originalEvent","onError","stopPing","close","NORMAL_CLOSURE_STATUS","send","message","json","JSON","stringify","keepAlive","props","pingInterval","setInterval","async","action","logger","intervalInMillis","clearInterval","CourierSocket","getCourierApiUrls","urls","courier","rest","graphql","inbox","Logger","showLogs","warn","args","console","PREFIX","log","debug","info","UUID","generate","prefix","id","Math","random","toString","substring","CourierRequestError","type","super","name","logRequest","uid","method","query","variables","headers","body","logResponse","status","response","http","validCodes","request","Request","fromEntries","entries","fetch","includes","ok","Client","BrandClient","getBrand","brandId","apiUrls","userId","Authorization","accessToken","brand","InboxSocket","buildUrl","convertToType","_b","_c","_d","parse","messageEvent","receivedMessageEvent","receivedMessage","sendSubscribe","subscription","userAgent","channel","version","connectionId","clientSourceId","tenantId","accountId","InboxClient","socket","getMessages","paginationLimit","startCursor","getArchivedMessages","getUnreadMessageCount","count","click","messageId","trackingId","read","unread","readAll","open","archive","unarchive","archiveRead","archiveAll","PreferenceTransformer","transformItem","item","topicId","topic_id","topicName","topic_name","sectionId","section_id","sectionName","section_name","defaultStatus","default_status","hasCustomRouting","has_custom_routing","customRouting","custom_routing","transform","items","PreferenceClient","arguments","getUserPreferences","paginationCursor","transformer","paging","getUserPreferenceTopic","res","topic","putUserPreferenceTopic","payload","getNotificationCenterUrl","bytes","Uint8Array","length","i","charCodeAt","btoa","String","fromCharCode","encode","clientKey","binaryString","atob","decode","TokenClient","putUserToken","provider_key","provider","device","app_id","appId","ad_id","adId","device_id","deviceId","platform","manufacturer","model","token","deleteUserToken","ListClient","putSubscription","listId","deleteSubscription","TrackingClient","postInboundCourier","postTrackingUrl","CourierClient","process","env","NODE_ENV","baseOptions","jwt","publicApiKey","tokens","brands","preferences","lists","tracking","AuthenticationListener","callback","remove","Courier","shared","removeAuthenticationListener","_Courier","_paginationLimit","min","max","client","instanceClient","instance","signIn","notifyAuthenticationListeners","signOut","addAuthenticationListener","listener","authenticationListeners","push","filter","l","forEach","__defProp2","__publicField2","__defNormalProp2","CourierColors","theme","light","colors","primary","secondary","border","link","icon","button","cornerRadius","dark","getSystemThemeMode","window","matchMedia","matches","addSystemThemeModeListener","mediaQuery","handler","e","addEventListener","removeEventListener","CourierSystemThemeElement","HTMLElement","_currentSystemTheme","_systemThemeCleanup","mode","onSystemThemeChange","currentSystemTheme","disconnectedCallback","_","baseButtonStyles","borderRadius","fontSize","CourierButtonVariants","backgroundColor","textColor","fontWeight","shadow","CourierButton","attachShadow","_button","document","createElement","setAttribute","_style","textContent","getStyles","appendChild","updateButton","preventDefault","stopPropagation","onClick","defaultBorderRadius","defaultFontWeight","fontFamily","defaultFontSize","defaultBackgroundColor","defaultTextColor","defaultBorder","defaultShadow","hoverBackgroundColor","activeBackgroundColor","text","customElements","get","define","CourierIconSVGs","check","overflow","CourierIcon","color","svg","_color","_svg","_iconContainer","refresh","innerHTML","updateColor","updateSVG","CourierLink","style","updateVariant","updateUnderline","updateMode","connectedCallback","slot","updateHref","attributeChangedCallback","oldValue","newValue","pointerEvents","hasAttribute","opacity","updateTarget","updateFontFamily","updateFontSize","href","getAttribute","variant","setProperty","removeProperty","underline","target","CourierElement","build","newElement","replaceChildren","element","defaultElement","cssText","CourierInfoState","_props","container","_title","title","className","_buttonClickCallback","updateStyles","setButtonClickCallback","CourierIconButton","height","width","_borderRadius","_backgroundColor","_hoverBackgroundColor","_activeBackgroundColor","_height","_width","_icon","updateIconColor","updateIconSVG","updateBackgroundColor","updateHoverBackgroundColor","updateActiveBackgroundColor","copyMessage","copy","actions","map","copyInboxAction","tags","trackingIds","copyInboxDataSet","dataSet","messages","class","componentClass","CourierListItemActionMenu","theme2","_theme","menu","list","setOptions","_options","renderMenu","shadowRoot","querySelector","menuTheme","cancelEvent","opt","_a2","_b2","_c2","handleInteraction","show","classList","add","hide","_CourierInboxDatastore","unreadCount","_unreadCount","inboxDataSet","_inboxDataSet","feedType","canPaginate","archiveDataSet","_archiveDataSet","addDataStoreListener","_dataStoreListeners","removeDataStoreListener","fetchDataSet","_e","_f","_g","_h","_i","_j","canUseCache","nodes","pageInfo","hasNextPage","fetchUnreadCount","load","properties","all","events","onDataSetChange","onUnreadCountChange","listenForUpdates","ensureDataSetsLoaded","connectSocket","dataSetPromises","_k","_l","addMessage","getMessage","readAllMessages","canCallApi","readMessage","unreadMessage","openMessage","archiveMessage","archiveReadMessages","clickMessage","unarchiveMessage","find","m","fetchNextPageOfMessages","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","isPaginatingInbox","addPage","isPaginatingArchive","canMutate","datastoreSnapshot","getDatastoreSnapshot","snapshot","getMessageSnapshot","Date","toISOString","applyMessageSnapshot","applyDatastoreSnapshot","inboxIndex","archiveIndex","opened","clickTrackingId","messageSnapshot","archived","removeMessage","insertIndex","findInsertIndex","timestamp","findIndex","splice","_d2","archiveAllMessages","_e2","newMessage","created","onPageAdded","index","onMessageAdd","onMessageRemove","updateMessage","onMessageUpdate","CourierInboxDatastore","CourierListItem","_isMobile","contentContainer","_titleElement","_subtitleElement","_actionsContainer","_timeElement","_unreadIndicator","_refreshStyles","_menu","_getMenuOptions","append","cancelPropagation","contains","composedPath","_message","onItemClick","_isLongPress","_setupHoverBehavior","_setupLongPressBehavior","_showMenu","_hideMenu","enabled","longPress","_longPressTimeout","setTimeout","onItemLongPress","navigator","vibrate","vibrationDuration","displayDuration","passive","clearTimeout","setOnLongPress","cb","isArchiveFeed","_feedType","display","_getStyles","listItem","divider","unreadIndicatorColor","family","size","subtitle","time","messageAttr","feedTypeAttr","_updateContent","err","setMessage","setOnItemClick","setOnItemActionClick","onItemActionClick","setOnItemLongPress","toggle","preview","now","messageDate","diffInSeconds","floor","getTime","getMessageTime","hasActions","actionsTheme","actionButton","content","font","weight","CourierInboxSkeletonListItem","_shadow","firstRow","CourierSkeletonAnimatedRow","secondRow","thirdRow","widthPercent","skeletonItem","loading","animation","barColor","hexColor","r","parseInt","slice","g","b","colorWithAlpha80","colorWithAlpha40","barHeight","duration","barBorderRadius","CourierInboxSkeletonList","CourierInboxPaginationListItem","onPaginationTrigger","customItem","skeletonLoadingList","observer","IntersectionObserver","entry","isIntersecting","observe","CourierInboxList","_themeSubscription","themeManager","subscribe","refreshTheme","_onRefresh","onRefresh","_onPaginationTrigger","_onMessageClick","onMessageClick","_onMessageActionClick","onMessageActionClick","_onMessageLongPress","onMessageLongPress","_messages","manager","getTheme","reset","firstChild","removeChild","setDataSet","_canPaginate","Boolean","_error","_isLoading","render","setFeedType","setLoading","isLoading","setError","setErrorNoClient","handleRetry","handleRefresh","_y","_z","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","__","_$","_aa","_ba","_ca","_da","errorElement","_errorStateFactory","loadingElement","_loadingStateFactory","empty","emptyElement","_emptyStateFactory","_listItemFactory","message2","paginationItem","_paginationItemFactory","setLoadingStateFactory","factory","setEmptyStateFactory","setErrorStateFactory","setListItemFactory","setPaginationItemFactory","unsubscribe","CourierInboxOptionMenuItem","_option","option","_isSelected","isSelected","_themeManager","_content","_itemIcon","spacer","_selectionIcon","selectable","header","menus","popup","selectionIcon","CourierInboxOptionMenu","onMenuOpen","_type","_selectable","_selectedIndex","_onMenuOpen","_menuButton","toggleMenu","bind","handleOutsideClick","isFilter","buttonConfig","filters","defaultIcon","refreshMenuItems","menuItem","closeMenu","isOpening","selectOption","o","CourierUnreadCountBadge","_location","location","themeBus","_badge","indicator","unreadIndicator","setCount","_count","updateBadge","CourierInboxHeaderTitle","_container","_iconElement","_unreadBadge","updateFilter","updateSelectedOption","CourierInboxHeader","_onFeedTypeChange","onFeedTypeChange","getFilterOptions","filterMenu","handleOptionMenuItemClick","getActionOptions","actionMenu","markAllRead","observedAttributes","boxShadow","_filterMenu","_actionMenu","_titleSection","refreshTitleSection","filterOptions","CourierInboxDataStoreListener","defaultLightTheme","defaultDarkTheme","CourierInboxThemeManager","initialTheme","_target","EventTarget","_userMode","_systemMode","setLightTheme","setDarkTheme","updateTheme","_lightTheme","_darkTheme","mergedTheme","_ea","_fa","_ga","_ha","_ia","_ja","_ka","_la","_ma","_na","_oa","_pa","_qa","_ra","_sa","_ta","_ua","_va","_wa","_xa","_ya","_za","_Aa","_Ba","_Ca","_Da","_Ea","_Fa","_Ga","_Ha","_Ia","_Ja","_Ka","_La","_Ma","_Na","_Oa","_Pa","_Qa","_Ra","_Sa","_Ta","_Ua","_Va","_Wa","_Xa","_Ya","_Za","__a","_$a","_ab","_bb","_cb","_db","_eb","_fb","_gb","_hb","_ib","_jb","_kb","_lb","_mb","_nb","_ob","_pb","_qb","_rb","_sb","_tb","_ub","_vb","_wb","_xb","_yb","_zb","_Ab","_Bb","_Cb","_Db","_Eb","_Fb","_Gb","_Hb","_Ib","_Jb","_Kb","_Lb","_Mb","_Nb","_Ob","_Pb","_Qb","_Rb","_Sb","_Tb","_Ub","_Vb","_Wb","_Xb","_Yb","_Zb","__b","_$b","_ac","_bc","_cc","_dc","_ec","_fc","_gc","_hc","_ic","_jc","_kc","_lc","_mc","_nc","_oc","_pc","_qc","_rc","_sc","_tc","_uc","_vc","_wc","_xc","_yc","_zc","_Ac","_Bc","_Cc","_Dc","_Ec","_Fc","_Gc","_Hc","_Ic","_Jc","_Kc","_Lc","_Mc","_Nc","_Oc","_Pc","_Qc","_Rc","_Sc","_Tc","_Uc","_Vc","_Wc","_Xc","_Yc","_Zc","__c","_$c","_ad","_bd","_cd","_dd","_ed","_fd","_gd","_hd","_id","_jd","_kd","_ld","_md","_nd","_od","_pd","_qd","_rd","_sd","_td","_ud","_vd","_wd","_xd","_yd","_zd","_Ad","_Bd","_Cd","_Dd","_Ed","_Fd","_Gd","_Hd","_Id","_Jd","_Kd","_Ld","_Md","_Nd","_Od","_Pd","defaultTheme","mergeTheme","setTheme","dispatchEvent","CustomEvent","THEME_CHANGE_EVENT","detail","setMode","controller","AbortController","signal","abort","_subscriptions","indexOf","cleanup","_currentFeed","_header","_list","bubbles","composed","_datastoreListener","updateHeader","_authListener","_defaultProps","setHeader","_headerFactory","removeHeader","setLoadingState","setEmptyState","setErrorState","setListItem","setPaginationItem","messageCount","headerElement","Function","CourierInbox","CourierInboxMenuButton","_triggerButton","_unreadCountBadge","_popup","_inbox","togglePopup","updatePopupPosition","isValidPosition","_popupAlignment","setSize","_top","_right","_bottom","_left","top","bottom","left","right","margin","isVisible","setContent","setPosition","position","setPopupHeader","removePopupHeader","setPopupLoadingState","setPopupEmptyState","setPopupErrorState","setPopupListItem","setPopupPaginationItem","setPopupMenuButton","_popupMenuButtonFactory","customButton","CourierInboxMenu","React","require$$0","_assign","require$$1","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","exports","Fragment","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_LEGACY_HIDDEN_TYPE","Symbol","for","symbolFor","MAYBE_ITERATOR_SYMBOL","iterator","ReactSharedInternals","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","format","_len2","Array","_key2","level","stack","ReactDebugCurrentFrame","getStackAddendum","concat","argsWithFormat","unshift","prototype","apply","printWarning","getContextName","displayName","getComponentName","tag","$$typeof","_context","outerType","innerType","wrapperName","functionName","_render","lazyComponent","_payload","init","_init","x","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledDepth","disabledLog","__reactDisabledLog","ReactCurrentDispatcher","describeBuiltInComponentFrame","source","ownerFn","match","trim","componentFrameCache","reentry","PossiblyWeakMap","WeakMap","Map","describeNativeComponentFrame","fn","construct","control","frame","previousDispatcher","previousPrepareStackTrace","prepareStackTrace","current","group","groupCollapsed","groupEnd","defineProperties","disableLogs","Fake","set","Reflect","sample","sampleLines","split","controlLines","s","c","_frame","replace","reenableLogs","syntheticFrame","describeFunctionComponentFrame","describeUnknownElementTypeFrameInDEV","isReactComponent","loggedTypeFailures","setCurrentlyValidatingElement","owner","_owner","_source","setExtraStackFrame","specialPropKeyWarningShown","specialPropRefWarningShown","ReactCurrentOwner","hasOwnProperty","RESERVED_PROPS","ref","__self","__source","jsxDEV","config","maybeKey","self","propName","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","hasValidRef","warnIfStringRefCannotBeAutoConverted","defaultProps","warnAboutAccessingKey","defineKeyPropWarningGetter","warnAboutAccessingRef","defineRefPropWarningGetter","_store","freeze","ReactElement","propTypesMisspellWarningShown","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","isValidElement","object","getDeclarationErrorAddendum","ownerHasKeyUseWarning","validateExplicitKey","parentType","validated","currentComponentErrorInfo","parentName","getCurrentComponentErrorInfo","childOwner","validateChildKeys","node","isArray","child","iteratorFn","maybeIterable","maybeIterator","getIteratorFn","step","next","done","validatePropTypes","propTypes","typeSpecs","values","componentName","has","typeSpecName","error$1","ex","checkPropTypes","PropTypes","getDefaultProps","isReactClassApproved","jsxWithValidation","isStaticChildren","validType","isValidElementType","typeString","keys","children","fragment","validateFragmentProps","jsx","jsxs","jsxRuntimeModule","f","reactJsxRuntime_production_min","h","n","p","q","a","k","d","reactNodeToHTMLElement","flushSync","createRoot","ReactDOM","inboxRef","useRef","useEffect","renderHeader","queueMicrotask","headerProps","renderListItem","itemProps","renderEmptyState","emptyStateProps","renderLoadingState","loadingStateProps","renderErrorState","errorStateProps","renderPaginationItem","paginationProps","jsxRuntimeExports","lightTheme","darkTheme","menuRef","renderPopupHeader","renderPopupListItem","renderPopupEmptyState","renderPopupLoadingState","renderPopupErrorState","renderPopupPaginationItem","renderPopupMenuButton","buttonProps","popupAlignment","popupWidth","popupHeight","loadInbox","setPaginationLimit","limit","auth","setAuth","useState","setInbox","refreshAuth","inboxListener","refreshInbox","datastore"],"mappings":"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AAIC,EAAIC,EAAI+T,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIgB,EAAIC,EAAIe,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI2K,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAAIC,GAAIC,GAAKC,GAAKC,GAAKC,GAAKqG,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAAKC,GAA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","x_google_ignoreList":[2,3,4]}
|