@novu/js 3.5.0-rc.2 → 3.5.0-rc.3

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.
@@ -74,26 +74,36 @@ var isSameFilter = (filter1, filter2) => {
74
74
 
75
75
  // src/api/http-client.ts
76
76
  var DEFAULT_API_VERSION = "v1";
77
- var DEFAULT_BACKEND_URL = "https://api.novu.co";
78
77
  var DEFAULT_USER_AGENT = `${"@novu/js"}@${"3.5.0-rc.2"}`;
79
78
  var HttpClient = class {
80
79
  constructor(options = {}) {
80
+ // Environment variable for local development that overrides the default API endpoint without affecting the Inbox DX
81
+ this.DEFAULT_BACKEND_URL = typeof window !== "undefined" && window.NOVU_LOCAL_BACKEND_URL || "https://api.novu.co";
81
82
  const {
82
83
  apiVersion = DEFAULT_API_VERSION,
83
- apiUrl = DEFAULT_BACKEND_URL,
84
- userAgent = DEFAULT_USER_AGENT
84
+ apiUrl = this.DEFAULT_BACKEND_URL,
85
+ userAgent = DEFAULT_USER_AGENT,
86
+ headers = {}
85
87
  } = options || {};
86
88
  this.apiVersion = apiVersion;
87
- this.apiUrl = `${apiUrl}/${this.apiVersion}`;
88
- this.headers = {
89
+ this.apiUrl = `${apiUrl}/${apiVersion}`;
90
+ this.headers = chunk7B52C2XE_js.__spreadValues({
89
91
  "Novu-API-Version": "2024-06-26",
90
92
  "Content-Type": "application/json",
91
93
  "User-Agent": userAgent
92
- };
94
+ }, headers);
93
95
  }
94
96
  setAuthorizationToken(token) {
95
97
  this.headers.Authorization = `Bearer ${token}`;
96
98
  }
99
+ setKeylessHeader(identifier) {
100
+ var _a;
101
+ const keylessAppIdentifier = identifier || typeof window !== "undefined" && ((_a = window.localStorage) == null ? void 0 : _a.getItem("novu_keyless_application_identifier"));
102
+ if (!keylessAppIdentifier || !keylessAppIdentifier.startsWith("pk_keyless_")) {
103
+ return;
104
+ }
105
+ this.headers["Novu-Application-Identifier"] = keylessAppIdentifier;
106
+ }
97
107
  setHeaders(headers) {
98
108
  this.headers = chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, this.headers), headers);
99
109
  }
@@ -109,13 +119,14 @@ var HttpClient = class {
109
119
  });
110
120
  });
111
121
  }
112
- post(path, body) {
122
+ post(path, body, options) {
113
123
  return chunk7B52C2XE_js.__async(this, null, function* () {
114
124
  return this.doFetch({
115
125
  path,
116
126
  options: {
117
127
  method: "POST",
118
- body
128
+ body,
129
+ headers: options == null ? void 0 : options.headers
119
130
  }
120
131
  });
121
132
  });
@@ -199,6 +210,7 @@ var InboxService = class {
199
210
  subscriber
200
211
  });
201
212
  chunk7B52C2XE_js.__privateGet(this, _httpClient).setAuthorizationToken(response.token);
213
+ chunk7B52C2XE_js.__privateGet(this, _httpClient).setKeylessHeader(response.applicationIdentifier);
202
214
  this.isSessionInitialized = true;
203
215
  return response;
204
216
  });
@@ -320,6 +332,23 @@ var InboxService = class {
320
332
  }) {
321
333
  return chunk7B52C2XE_js.__privateGet(this, _httpClient).patch(`${INBOX_ROUTE}/preferences/${workflowId}`, channels);
322
334
  }
335
+ triggerHelloWorldEvent() {
336
+ const payload = {
337
+ name: "hello-world",
338
+ to: {
339
+ subscriberId: "keyless-subscriber-id"
340
+ },
341
+ payload: {
342
+ subject: "Novu Keyless Environment",
343
+ body: "You're using a keyless demo environment. For full access to Novu features and cloud integration, obtain your API key.",
344
+ primaryActionText: "Obtain API Key",
345
+ primaryActionUrl: "https://go.novu.co/keyless?utm_campaign=keyless-api-key",
346
+ secondaryActionText: "Explore Documentation",
347
+ secondaryActionUrl: "https://go.novu.co/keyless?utm_campaign=docs"
348
+ }
349
+ };
350
+ return chunk7B52C2XE_js.__privateGet(this, _httpClient).post("/inbox/events", payload);
351
+ }
323
352
  };
324
353
  _httpClient = new WeakMap();
325
354
  var _mittEmitter;
@@ -1401,6 +1430,11 @@ var Notifications = class extends BaseModule {
1401
1430
  }
1402
1431
  return this.cache.clearAll();
1403
1432
  }
1433
+ triggerHelloWorldEvent() {
1434
+ return chunk7B52C2XE_js.__async(this, null, function* () {
1435
+ return this._inboxService.triggerHelloWorldEvent();
1436
+ });
1437
+ }
1404
1438
  };
1405
1439
  _useCache = new WeakMap();
1406
1440
 
@@ -1764,18 +1798,58 @@ var Session = class {
1764
1798
  return chunk7B52C2XE_js.__privateGet(this, _options).applicationIdentifier;
1765
1799
  }
1766
1800
  get subscriberId() {
1767
- return chunk7B52C2XE_js.__privateGet(this, _options).subscriber.subscriberId;
1801
+ var _a;
1802
+ return (_a = chunk7B52C2XE_js.__privateGet(this, _options).subscriber) == null ? void 0 : _a.subscriberId;
1803
+ }
1804
+ handleApplicationIdentifier(method, identifier) {
1805
+ if (typeof window === "undefined" || !window.localStorage) {
1806
+ return null;
1807
+ }
1808
+ const key = "novu_keyless_application_identifier";
1809
+ switch (method) {
1810
+ case "get": {
1811
+ return window.localStorage.getItem(key);
1812
+ }
1813
+ case "store": {
1814
+ if (identifier) {
1815
+ window.localStorage.setItem(key, identifier);
1816
+ }
1817
+ return null;
1818
+ }
1819
+ case "delete": {
1820
+ window.localStorage.removeItem(key);
1821
+ return null;
1822
+ }
1823
+ default:
1824
+ return null;
1825
+ }
1768
1826
  }
1769
1827
  initialize() {
1770
1828
  return chunk7B52C2XE_js.__async(this, null, function* () {
1829
+ var _a, _b;
1771
1830
  try {
1772
- const { applicationIdentifier, subscriberHash, subscriber } = chunk7B52C2XE_js.__privateGet(this, _options);
1831
+ const { subscriber, subscriberHash, applicationIdentifier } = chunk7B52C2XE_js.__privateGet(this, _options);
1832
+ let finalApplicationIdentifier = applicationIdentifier;
1833
+ if (!finalApplicationIdentifier) {
1834
+ const storedAppId = this.handleApplicationIdentifier("get");
1835
+ if (storedAppId) {
1836
+ finalApplicationIdentifier = storedAppId;
1837
+ }
1838
+ } else {
1839
+ this.handleApplicationIdentifier("delete");
1840
+ }
1773
1841
  chunk7B52C2XE_js.__privateGet(this, _emitter5).emit("session.initialize.pending", { args: chunk7B52C2XE_js.__privateGet(this, _options) });
1774
1842
  const response = yield chunk7B52C2XE_js.__privateGet(this, _inboxService2).initializeSession({
1775
- applicationIdentifier,
1843
+ applicationIdentifier: finalApplicationIdentifier,
1776
1844
  subscriberHash,
1777
1845
  subscriber
1778
1846
  });
1847
+ if ((_a = response == null ? void 0 : response.applicationIdentifier) == null ? void 0 : _a.startsWith("pk_keyless_")) {
1848
+ this.handleApplicationIdentifier("store", response.applicationIdentifier);
1849
+ }
1850
+ if (!((_b = response == null ? void 0 : response.applicationIdentifier) == null ? void 0 : _b.startsWith("pk_keyless_"))) {
1851
+ this.handleApplicationIdentifier("delete");
1852
+ }
1779
1853
  chunk7B52C2XE_js.__privateGet(this, _emitter5).emit("session.initialize.resolved", { args: chunk7B52C2XE_js.__privateGet(this, _options), data: response });
1780
1854
  } catch (error) {
1781
1855
  chunk7B52C2XE_js.__privateGet(this, _emitter5).emit("session.initialize.resolved", { args: chunk7B52C2XE_js.__privateGet(this, _options), error });
@@ -1997,11 +2071,11 @@ var Novu = class {
1997
2071
  }));
1998
2072
  chunk7B52C2XE_js.__privateSet(this, _emitter7, new NovuEventEmitter());
1999
2073
  chunk7B52C2XE_js.__privateSet(this, _session, new Session(
2000
- {
2074
+ options.applicationIdentifier ? {
2001
2075
  applicationIdentifier: options.applicationIdentifier,
2002
2076
  subscriberHash: options.subscriberHash,
2003
2077
  subscriber: buildSubscriber(options)
2004
- },
2078
+ } : {},
2005
2079
  chunk7B52C2XE_js.__privateGet(this, _inboxService3),
2006
2080
  chunk7B52C2XE_js.__privateGet(this, _emitter7)
2007
2081
  ));
@@ -2045,16 +2119,17 @@ _emitter7 = new WeakMap();
2045
2119
  _session = new WeakMap();
2046
2120
  _inboxService3 = new WeakMap();
2047
2121
  function buildSubscriber(options) {
2048
- let subscriberObj;
2049
2122
  if (options.subscriber) {
2050
- subscriberObj = typeof options.subscriber === "string" ? { subscriberId: options.subscriber } : options.subscriber;
2051
- } else {
2052
- subscriberObj = { subscriberId: options.subscriberId };
2123
+ return typeof options.subscriber === "string" ? { subscriberId: options.subscriber } : options.subscriber;
2124
+ }
2125
+ if (options.subscriberId) {
2126
+ return { subscriberId: options.subscriberId };
2053
2127
  }
2054
- return subscriberObj;
2128
+ return { subscriberId: "" };
2055
2129
  }
2056
2130
 
2057
2131
  exports.ChannelType = ChannelType;
2132
+ exports.DEFAULT_API_VERSION = DEFAULT_API_VERSION;
2058
2133
  exports.NotificationStatus = NotificationStatus;
2059
2134
  exports.Novu = Novu;
2060
2135
  exports.PreferenceLevel = PreferenceLevel;
@@ -1,5 +1,5 @@
1
- import { N as NotificationFilter } from './novu-q3jzGeyW.js';
2
- export { C as ChannelPreference, c as ChannelType, E as EventHandler, a as Events, F as FiltersCountResponse, I as InboxNotification, L as ListNotificationsResponse, d as Notification, e as NotificationStatus, b as Novu, f as NovuError, g as NovuOptions, P as Preference, h as PreferenceLevel, i as PreferencesResponse, S as SocketEventNames, j as Subscriber, W as WebSocketEvent } from './novu-q3jzGeyW.js';
1
+ import { N as NotificationFilter } from './novu-Bocb1dH9.js';
2
+ export { C as ChannelPreference, c as ChannelType, E as EventHandler, a as Events, F as FiltersCountResponse, I as InboxNotification, L as ListNotificationsResponse, d as Notification, e as NotificationStatus, b as Novu, f as NovuError, g as NovuOptions, P as Preference, i as PreferenceLevel, j as PreferencesResponse, S as SocketEventNames, h as StandardNovuOptions, k as Subscriber, W as WebSocketEvent } from './novu-Bocb1dH9.js';
3
3
 
4
4
  declare const areTagsEqual: (tags1?: string[], tags2?: string[]) => boolean;
5
5
  declare const isSameFilter: (filter1: NotificationFilter, filter2: NotificationFilter) => boolean;
package/dist/cjs/index.js CHANGED
@@ -1,35 +1,35 @@
1
1
  'use strict';
2
2
 
3
- var chunkOGEM74YA_js = require('./chunk-OGEM74YA.js');
3
+ var chunkMKUNHEMT_js = require('./chunk-MKUNHEMT.js');
4
4
  require('./chunk-7B52C2XE.js');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "ChannelType", {
9
9
  enumerable: true,
10
- get: function () { return chunkOGEM74YA_js.ChannelType; }
10
+ get: function () { return chunkMKUNHEMT_js.ChannelType; }
11
11
  });
12
12
  Object.defineProperty(exports, "NotificationStatus", {
13
13
  enumerable: true,
14
- get: function () { return chunkOGEM74YA_js.NotificationStatus; }
14
+ get: function () { return chunkMKUNHEMT_js.NotificationStatus; }
15
15
  });
16
16
  Object.defineProperty(exports, "Novu", {
17
17
  enumerable: true,
18
- get: function () { return chunkOGEM74YA_js.Novu; }
18
+ get: function () { return chunkMKUNHEMT_js.Novu; }
19
19
  });
20
20
  Object.defineProperty(exports, "PreferenceLevel", {
21
21
  enumerable: true,
22
- get: function () { return chunkOGEM74YA_js.PreferenceLevel; }
22
+ get: function () { return chunkMKUNHEMT_js.PreferenceLevel; }
23
23
  });
24
24
  Object.defineProperty(exports, "WebSocketEvent", {
25
25
  enumerable: true,
26
- get: function () { return chunkOGEM74YA_js.WebSocketEvent; }
26
+ get: function () { return chunkMKUNHEMT_js.WebSocketEvent; }
27
27
  });
28
28
  Object.defineProperty(exports, "areTagsEqual", {
29
29
  enumerable: true,
30
- get: function () { return chunkOGEM74YA_js.areTagsEqual; }
30
+ get: function () { return chunkMKUNHEMT_js.areTagsEqual; }
31
31
  });
32
32
  Object.defineProperty(exports, "isSameFilter", {
33
33
  enumerable: true,
34
- get: function () { return chunkOGEM74YA_js.isSameFilter; }
34
+ get: function () { return chunkMKUNHEMT_js.isSameFilter; }
35
35
  });
@@ -1,3 +1,10 @@
1
+ type HttpClientOptions = {
2
+ apiVersion?: string;
3
+ apiUrl?: string;
4
+ userAgent?: string;
5
+ headers?: Record<string, string>;
6
+ };
7
+
1
8
  declare class NovuError extends Error {
2
9
  originalError: Error;
3
10
  constructor(message: string, originalError: unknown);
@@ -88,6 +95,7 @@ type Session = {
88
95
  removeNovuBranding: boolean;
89
96
  isDevelopmentMode: boolean;
90
97
  maxSnoozeDurationHours: number;
98
+ applicationIdentifier?: string;
91
99
  };
92
100
  type Subscriber = {
93
101
  id?: string;
@@ -177,7 +185,10 @@ type Result<D = undefined, E = NovuError> = Promise<{
177
185
  data?: D;
178
186
  error?: E;
179
187
  }>;
180
- type NovuOptions = {
188
+ type KeylessNovuOptions = {} & {
189
+ [K in string]?: never;
190
+ };
191
+ type StandardNovuOptions = {
181
192
  /** @deprecated Use apiUrl instead */
182
193
  backendUrl?: string;
183
194
  /** @internal Should be used internally for testing purposes */
@@ -195,25 +206,20 @@ type NovuOptions = {
195
206
  subscriber: Subscriber | string;
196
207
  subscriberId?: never;
197
208
  });
209
+ type NovuOptions = KeylessNovuOptions | StandardNovuOptions;
198
210
  type Prettify<T> = {
199
211
  [K in keyof T]: T[K];
200
212
  } & {};
201
213
 
202
- type HttpClientOptions = {
203
- apiVersion?: string;
204
- apiUrl?: string;
205
- userAgent?: string;
206
- };
207
-
208
214
  type InboxServiceOptions = HttpClientOptions;
209
215
  declare class InboxService {
210
216
  #private;
211
217
  isSessionInitialized: boolean;
212
218
  constructor(options?: InboxServiceOptions);
213
219
  initializeSession({ applicationIdentifier, subscriberHash, subscriber, }: {
214
- applicationIdentifier: string;
220
+ applicationIdentifier?: string;
215
221
  subscriberHash?: string;
216
- subscriber: Subscriber;
222
+ subscriber?: Subscriber;
217
223
  }): Promise<Session>;
218
224
  fetchNotifications({ after, archived, limit, offset, read, tags, snoozed, data, }: {
219
225
  tags?: string[];
@@ -277,6 +283,7 @@ declare class InboxService {
277
283
  workflowId: string;
278
284
  channels: ChannelPreference;
279
285
  }): Promise<PreferencesResponse>;
286
+ triggerHelloWorldEvent(): Promise<any>;
280
287
  }
281
288
 
282
289
  declare class BaseModule {
@@ -461,9 +468,13 @@ declare class Notifications extends BaseModule {
461
468
  clearCache({ filter }?: {
462
469
  filter?: NotificationFilter;
463
470
  }): void;
471
+ triggerHelloWorldEvent(): Promise<any>;
464
472
  }
465
473
 
466
- type InitializeSessionArgs = {
474
+ type KeylessInitializeSessionArgs = {} & {
475
+ [K in string]?: never;
476
+ };
477
+ type InitializeSessionArgs = KeylessInitializeSessionArgs | {
467
478
  applicationIdentifier: string;
468
479
  subscriber: Subscriber;
469
480
  subscriberHash?: string;
@@ -599,9 +610,9 @@ declare class Novu implements Pick<NovuEventEmitter, 'on'> {
599
610
  * Use the cleanup function returned by the "on" method instead.
600
611
  */
601
612
  off: <Key extends EventNames>(eventName: Key, listener: EventHandler<Events[Key]>) => void;
602
- get applicationIdentifier(): string;
603
- get subscriberId(): string;
613
+ get applicationIdentifier(): string | undefined;
614
+ get subscriberId(): string | undefined;
604
615
  constructor(options: NovuOptions);
605
616
  }
606
617
 
607
- export { type ChannelPreference as C, type EventHandler as E, type FiltersCountResponse as F, type InboxNotification as I, type ListNotificationsResponse as L, type NotificationFilter as N, Preference as P, type SocketEventNames as S, WebSocketEvent as W, type Events as a, Novu as b, ChannelType as c, Notification as d, NotificationStatus as e, NovuError as f, type NovuOptions as g, PreferenceLevel as h, type PreferencesResponse as i, type Subscriber as j };
618
+ export { type ChannelPreference as C, type EventHandler as E, type FiltersCountResponse as F, type InboxNotification as I, type ListNotificationsResponse as L, type NotificationFilter as N, Preference as P, type SocketEventNames as S, WebSocketEvent as W, type Events as a, Novu as b, ChannelType as c, Notification as d, NotificationStatus as e, NovuError as f, type NovuOptions as g, type StandardNovuOptions as h, PreferenceLevel as i, type PreferencesResponse as j, type Subscriber as k };
@@ -1,5 +1,5 @@
1
- import { m as Theme } from '../types-DdImrpw7.js';
2
- import '../novu-q3jzGeyW.js';
1
+ import { m as Theme } from '../types-DeMFGM4g.js';
2
+ import '../novu-Bocb1dH9.js';
3
3
 
4
4
  declare const dark: Theme;
5
5
 
@@ -1,6 +1,6 @@
1
- import { d as Notification, N as NotificationFilter, g as NovuOptions, b as Novu, P as Preference } from './novu-q3jzGeyW.js';
1
+ import { d as Notification, N as NotificationFilter, g as NovuOptions, b as Novu, P as Preference } from './novu-Bocb1dH9.js';
2
2
 
3
- declare const appearanceKeys: readonly ["button", "input", "icon", "badge", "popoverContent", "popoverTrigger", "popoverClose", "dropdownContent", "dropdownTrigger", "dropdownItem", "dropdownItemLabel", "dropdownItemLabelContainer", "dropdownItemLeft__icon", "dropdownItemRight__icon", "dropdownItem__icon", "collapsible", "tooltipContent", "tooltipTrigger", "datePicker", "datePickerGrid", "datePickerGridRow", "datePickerGridCell", "datePickerGridCellTrigger", "datePickerTrigger", "datePickerGridHeader", "datePickerControl", "datePickerControlPrevTrigger", "datePickerControlNextTrigger", "datePickerControlPrevTrigger__icon", "datePickerControlNextTrigger__icon", "datePickerCalendar", "datePickerHeaderMonth", "datePickerCalendarDay__button", "timePicker", "timePicker__hourSelect", "timePicker__minuteSelect", "timePicker__periodSelect", "timePicker__separator", "timePickerHour__input", "timePickerMinute__input", "snoozeDatePicker", "snoozeDatePicker__actions", "snoozeDatePickerCancel__button", "snoozeDatePickerApply__button", "snoozeDatePicker__timePickerContainer", "snoozeDatePicker__timePickerLabel", "back__button", "skeletonText", "skeletonAvatar", "skeletonSwitch", "skeletonSwitchThumb", "tabsRoot", "tabsList", "tabsContent", "tabsTrigger", "dots", "root", "bellIcon", "bellContainer", "bellDot", "preferences__button", "preferencesContainer", "inboxHeader", "loading", "inboxContent", "inbox__popoverTrigger", "inbox__popoverContent", "notificationListContainer", "notificationList", "notificationListEmptyNoticeContainer", "notificationListEmptyNoticeOverlay", "notificationListEmptyNoticeIcon", "notificationListEmptyNotice", "notificationList__skeleton", "notificationList__skeletonContent", "notificationList__skeletonItem", "notificationList__skeletonAvatar", "notificationList__skeletonText", "notificationListNewNotificationsNotice__button", "notification", "notificationContent", "notificationTextContainer", "notificationDot", "notificationSubject", "notificationSubject__strong", "notificationBody", "notificationBody__strong", "notificationBodyContainer", "notificationImage", "notificationImageLoadingFallback", "notificationDate", "notificationDateActionsContainer", "notificationDefaultActions", "notificationCustomActions", "notificationPrimaryAction__button", "notificationSecondaryAction__button", "notificationRead__button", "notificationUnread__button", "notificationArchive__button", "notificationUnarchive__button", "notificationSnooze__button", "notificationUnsnooze__button", "notificationRead__icon", "notificationUnread__icon", "notificationArchive__icon", "notificationUnarchive__icon", "notificationSnooze__icon", "notificationUnsnooze__icon", "notificationsTabs__tabsRoot", "notificationsTabs__tabsList", "notificationsTabs__tabsContent", "notificationsTabs__tabsTrigger", "notificationsTabsTriggerLabel", "notificationsTabsTriggerCount", "inboxStatus__title", "inboxStatus__dropdownTrigger", "inboxStatus__dropdownContent", "inboxStatus__dropdownItem", "inboxStatus__dropdownItemLabel", "inboxStatus__dropdownItemLabelContainer", "inboxStatus__dropdownItemLeft__icon", "inboxStatus__dropdownItemRight__icon", "inboxStatus__dropdownItem__icon", "inboxStatus__dropdownItemCheck__icon", "moreActionsContainer", "moreActions__dropdownTrigger", "moreActions__dropdownContent", "moreActions__dropdownItem", "moreActions__dropdownItemLabel", "moreActions__dropdownItemLeft__icon", "moreActions__dots", "moreTabs__button", "moreTabs__icon", "moreTabs__dropdownTrigger", "moreTabs__dropdownContent", "moreTabs__dropdownItem", "moreTabs__dropdownItemLabel", "moreTabs__dropdownItemRight__icon", "workflowContainer", "workflowLabel", "workflowLabelHeader", "workflowLabelHeaderContainer", "workflowLabelIcon", "workflowLabelContainer", "workflowContainerDisabledNotice", "workflowLabelDisabled__icon", "workflowContainerRight__icon", "workflowArrow__icon", "workflowDescription", "preferencesGroupContainer", "preferencesGroupHeader", "preferencesGroupLabelContainer", "preferencesGroupLabelIcon", "preferencesGroupLabel", "preferencesGroupActionsContainer", "preferencesGroupActionsContainerRight__icon", "preferencesGroupBody", "preferencesGroupChannels", "preferencesGroupInfo", "preferencesGroupInfoIcon", "preferencesGroupWorkflows", "channelContainer", "channelIconContainer", "channel__icon", "channelsContainerCollapsible", "channelsContainer", "channelLabel", "channelLabelContainer", "channelName", "channelSwitchContainer", "channelSwitch", "channelSwitchThumb", "preferencesHeader", "preferencesHeader__back__button", "preferencesHeader__back__button__icon", "preferencesHeader__title", "preferencesHeader__icon", "preferencesListEmptyNoticeContainer", "preferencesListEmptyNotice", "preferencesList__skeleton", "preferencesList__skeletonContent", "preferencesList__skeletonItem", "preferencesList__skeletonIcon", "preferencesList__skeletonSwitch", "preferencesList__skeletonSwitchThumb", "preferencesList__skeletonText", "notificationSnooze__dropdownContent", "notificationSnooze__dropdownItem", "notificationSnooze__dropdownItem__icon", "notificationSnoozeCustomTime_popoverContent", "notificationDeliveredAt__badge", "notificationDeliveredAt__icon", "notificationSnoozedUntil__icon", "strong"];
3
+ declare const appearanceKeys: readonly ["button", "input", "icon", "badge", "popoverContent", "popoverTrigger", "popoverClose", "dropdownContent", "dropdownTrigger", "dropdownItem", "dropdownItemLabel", "dropdownItemLabelContainer", "dropdownItemLeft__icon", "dropdownItemRight__icon", "dropdownItem__icon", "collapsible", "tooltipContent", "tooltipTrigger", "datePicker", "datePickerGrid", "datePickerGridRow", "datePickerGridCell", "datePickerGridCellTrigger", "datePickerTrigger", "datePickerGridHeader", "datePickerControl", "datePickerControlPrevTrigger", "datePickerControlNextTrigger", "datePickerControlPrevTrigger__icon", "datePickerControlNextTrigger__icon", "datePickerCalendar", "datePickerHeaderMonth", "datePickerCalendarDay__button", "timePicker", "timePicker__hourSelect", "timePicker__minuteSelect", "timePicker__periodSelect", "timePicker__separator", "timePickerHour__input", "timePickerMinute__input", "snoozeDatePicker", "snoozeDatePicker__actions", "snoozeDatePickerCancel__button", "snoozeDatePickerApply__button", "snoozeDatePicker__timePickerContainer", "snoozeDatePicker__timePickerLabel", "back__button", "skeletonText", "skeletonAvatar", "skeletonSwitch", "skeletonSwitchThumb", "tabsRoot", "tabsList", "tabsContent", "tabsTrigger", "dots", "root", "bellIcon", "lockIcon", "bellContainer", "bellDot", "preferences__button", "preferencesContainer", "inboxHeader", "loading", "inboxContent", "inbox__popoverTrigger", "inbox__popoverContent", "notificationListContainer", "notificationList", "notificationListEmptyNoticeContainer", "notificationListEmptyNoticeOverlay", "notificationListEmptyNoticeIcon", "notificationListEmptyNotice", "notificationList__skeleton", "notificationList__skeletonContent", "notificationList__skeletonItem", "notificationList__skeletonAvatar", "notificationList__skeletonText", "notificationListNewNotificationsNotice__button", "notification", "notificationContent", "notificationTextContainer", "notificationDot", "notificationSubject", "notificationSubject__strong", "notificationBody", "notificationBody__strong", "notificationBodyContainer", "notificationImage", "notificationImageLoadingFallback", "notificationDate", "notificationDateActionsContainer", "notificationDefaultActions", "notificationCustomActions", "notificationPrimaryAction__button", "notificationSecondaryAction__button", "notificationRead__button", "notificationUnread__button", "notificationArchive__button", "notificationUnarchive__button", "notificationSnooze__button", "notificationUnsnooze__button", "notificationRead__icon", "notificationUnread__icon", "notificationArchive__icon", "notificationUnarchive__icon", "notificationSnooze__icon", "notificationUnsnooze__icon", "notificationsTabs__tabsRoot", "notificationsTabs__tabsList", "notificationsTabs__tabsContent", "notificationsTabs__tabsTrigger", "notificationsTabsTriggerLabel", "notificationsTabsTriggerCount", "inboxStatus__title", "inboxStatus__dropdownTrigger", "inboxStatus__dropdownContent", "inboxStatus__dropdownItem", "inboxStatus__dropdownItemLabel", "inboxStatus__dropdownItemLabelContainer", "inboxStatus__dropdownItemLeft__icon", "inboxStatus__dropdownItemRight__icon", "inboxStatus__dropdownItem__icon", "inboxStatus__dropdownItemCheck__icon", "moreActionsContainer", "moreActions__dropdownTrigger", "moreActions__dropdownContent", "moreActions__dropdownItem", "moreActions__dropdownItemLabel", "moreActions__dropdownItemLeft__icon", "moreActions__dots", "moreTabs__button", "moreTabs__icon", "moreTabs__dropdownTrigger", "moreTabs__dropdownContent", "moreTabs__dropdownItem", "moreTabs__dropdownItemLabel", "moreTabs__dropdownItemRight__icon", "workflowContainer", "workflowLabel", "workflowLabelHeader", "workflowLabelHeaderContainer", "workflowLabelIcon", "workflowLabelContainer", "workflowContainerDisabledNotice", "workflowLabelDisabled__icon", "workflowContainerRight__icon", "workflowArrow__icon", "workflowDescription", "preferencesGroupContainer", "preferencesGroupHeader", "preferencesGroupLabelContainer", "preferencesGroupLabelIcon", "preferencesGroupLabel", "preferencesGroupActionsContainer", "preferencesGroupActionsContainerRight__icon", "preferencesGroupBody", "preferencesGroupChannels", "preferencesGroupInfo", "preferencesGroupInfoIcon", "preferencesGroupWorkflows", "channelContainer", "channelIconContainer", "channel__icon", "channelsContainerCollapsible", "channelsContainer", "channelLabel", "channelLabelContainer", "channelName", "channelSwitchContainer", "channelSwitch", "channelSwitchThumb", "preferencesHeader", "preferencesHeader__back__button", "preferencesHeader__back__button__icon", "preferencesHeader__title", "preferencesHeader__icon", "preferencesListEmptyNoticeContainer", "preferencesListEmptyNotice", "preferencesList__skeleton", "preferencesList__skeletonContent", "preferencesList__skeletonItem", "preferencesList__skeletonIcon", "preferencesList__skeletonSwitch", "preferencesList__skeletonSwitchThumb", "preferencesList__skeletonText", "notificationSnooze__dropdownContent", "notificationSnooze__dropdownItem", "notificationSnooze__dropdownItem__icon", "notificationSnoozeCustomTime_popoverContent", "notificationDeliveredAt__badge", "notificationDeliveredAt__icon", "notificationSnoozedUntil__icon", "strong"];
4
4
 
5
5
  declare const defaultLocalization: {
6
6
  readonly locale: "en-US";
@@ -1,7 +1,7 @@
1
- import { g as NovuOptions } from '../novu-q3jzGeyW.js';
2
- export { d as Notification } from '../novu-q3jzGeyW.js';
3
- import { B as BellRenderer, N as NotificationClickHandler, a as NotificationActionClickHandler, b as NotificationRenderer, S as SubjectRenderer, c as BodyRenderer, d as NovuProviderProps, e as BaseNovuProviderProps, A as Appearance, L as Localization, T as Tab, P as PreferencesFilter, f as PreferenceGroups, R as RouterPush } from '../types-DdImrpw7.js';
4
- export { g as AppearanceKey, h as ElementStyles, E as Elements, I as IconKey, i as IconOverrides, j as IconRenderer, k as LocalizationKey, l as NotificationStatus, m as Theme, V as Variables } from '../types-DdImrpw7.js';
1
+ import { g as NovuOptions } from '../novu-Bocb1dH9.js';
2
+ export { d as Notification } from '../novu-Bocb1dH9.js';
3
+ import { B as BellRenderer, N as NotificationClickHandler, a as NotificationActionClickHandler, b as NotificationRenderer, S as SubjectRenderer, c as BodyRenderer, d as NovuProviderProps, e as BaseNovuProviderProps, A as Appearance, L as Localization, T as Tab, P as PreferencesFilter, f as PreferenceGroups, R as RouterPush } from '../types-DeMFGM4g.js';
4
+ export { g as AppearanceKey, h as ElementStyles, E as Elements, I as IconKey, i as IconOverrides, j as IconRenderer, k as LocalizationKey, l as NotificationStatus, m as Theme, V as Variables } from '../types-DeMFGM4g.js';
5
5
  import { Placement, OffsetOptions } from '@floating-ui/dom';
6
6
  import * as solid_js from 'solid-js';
7
7
  import { ComponentProps } from 'solid-js';