@novu/js 2.0.0-canary.1 → 2.0.0-canary.2

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.
Files changed (52) hide show
  1. package/dist/cjs/{chunk-2C4L4ZUQ.cjs → chunk-NEEKTCEQ.cjs} +17 -5
  2. package/dist/cjs/index.cjs +12 -12
  3. package/dist/cjs/ui/index.cjs +284 -217
  4. package/dist/esm/{chunk-Y6CIZNAK.mjs → chunk-YOLQVRKF.mjs} +17 -5
  5. package/dist/esm/index.mjs +1 -1
  6. package/dist/esm/ui/index.mjs +208 -141
  7. package/dist/index.css +1 -1
  8. package/dist/novu.min.js +7 -7
  9. package/dist/novu.min.js.gz +0 -0
  10. package/dist/types/base-module.d.ts +0 -2
  11. package/dist/types/base-module.d.ts.map +1 -1
  12. package/dist/types/notifications/notification.d.ts +1 -0
  13. package/dist/types/notifications/notification.d.ts.map +1 -1
  14. package/dist/types/types.d.ts +9 -5
  15. package/dist/types/types.d.ts.map +1 -1
  16. package/dist/types/ui/components/ExternalElementRenderer.d.ts +7 -0
  17. package/dist/types/ui/components/ExternalElementRenderer.d.ts.map +1 -0
  18. package/dist/types/ui/components/Inbox.d.ts +4 -4
  19. package/dist/types/ui/components/Inbox.d.ts.map +1 -1
  20. package/dist/types/ui/components/InboxTabs/InboxTabs.d.ts +5 -1
  21. package/dist/types/ui/components/InboxTabs/InboxTabs.d.ts.map +1 -1
  22. package/dist/types/ui/components/Notification/DefaultNotification.d.ts.map +1 -1
  23. package/dist/types/ui/components/Notification/NewMessagesCta.d.ts.map +1 -1
  24. package/dist/types/ui/components/Notification/Notification.d.ts +2 -2
  25. package/dist/types/ui/components/Notification/Notification.d.ts.map +1 -1
  26. package/dist/types/ui/components/Notification/NotificationList.d.ts +2 -2
  27. package/dist/types/ui/components/Notification/NotificationList.d.ts.map +1 -1
  28. package/dist/types/ui/components/Renderer.d.ts +1 -1
  29. package/dist/types/ui/components/elements/Bell/Bell.d.ts +2 -2
  30. package/dist/types/ui/components/elements/Bell/Bell.d.ts.map +1 -1
  31. package/dist/types/ui/components/elements/Header/MoreActionsOptions.d.ts +2 -1
  32. package/dist/types/ui/components/elements/Header/MoreActionsOptions.d.ts.map +1 -1
  33. package/dist/types/ui/components/elements/Header/PreferencesHeader.d.ts.map +1 -1
  34. package/dist/types/ui/components/elements/InboxStatus/InboxStatusDropdown.d.ts.map +1 -1
  35. package/dist/types/ui/components/elements/InboxStatus/InboxStatusOptions.d.ts +2 -1
  36. package/dist/types/ui/components/elements/InboxStatus/InboxStatusOptions.d.ts.map +1 -1
  37. package/dist/types/ui/components/elements/InboxStatus/constants.d.ts +7 -7
  38. package/dist/types/ui/components/elements/Preferences/Preferences.d.ts.map +1 -1
  39. package/dist/types/ui/config/defaultLocalization.d.ts +11 -10
  40. package/dist/types/ui/config/defaultLocalization.d.ts.map +1 -1
  41. package/dist/types/ui/context/LocalizationContext.d.ts +12 -4
  42. package/dist/types/ui/context/LocalizationContext.d.ts.map +1 -1
  43. package/dist/types/ui/helpers/constants.d.ts +2 -0
  44. package/dist/types/ui/helpers/constants.d.ts.map +1 -1
  45. package/dist/types/ui/helpers/index.d.ts +1 -0
  46. package/dist/types/ui/helpers/index.d.ts.map +1 -1
  47. package/dist/types/ui/types.d.ts +7 -7
  48. package/dist/types/ui/types.d.ts.map +1 -1
  49. package/dist/types/ws/socket.d.ts.map +1 -1
  50. package/package.json +2 -2
  51. package/dist/types/ui/components/ExternalElementMounter.d.ts +0 -7
  52. package/dist/types/ui/components/ExternalElementMounter.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2C4L4ZUQ_cjs = require('../chunk-2C4L4ZUQ.cjs');
3
+ var chunkNEEKTCEQ_cjs = require('../chunk-NEEKTCEQ.cjs');
4
4
  var web = require('solid-js/web');
5
5
  var solidJs = require('solid-js');
6
6
  var store = require('solid-js/store');
@@ -28,30 +28,29 @@ var defaultVariables = {
28
28
  fontSize: "inherit",
29
29
  borderRadius: "0.375rem"
30
30
  };
31
-
32
- // src/ui/config/defaultLocalization.ts
33
31
  var defaultLocalization = {
34
32
  locale: "en-US",
35
- "inbox.status.options.unread": "Unread only",
36
- "inbox.status.options.unreadRead": "Unread & read",
37
- "inbox.status.options.archived": "Archived",
38
- "inbox.status.unread": "Unread",
39
- "inbox.status.unreadRead": "Inbox",
40
- "inbox.status.archived": "Archived",
33
+ "inbox.filters.dropdownOptions.unread": "Unread only",
34
+ "inbox.filters.dropdownOptions.default": "Unread & read",
35
+ "inbox.filters.dropdownOptions.archived": "Archived",
36
+ "inbox.filters.labels.unread": "Unread",
37
+ "inbox.filters.labels.default": "Inbox",
38
+ "inbox.filters.labels.archived": "Archived",
41
39
  "notifications.emptyNotice": "No notifications",
42
40
  "notifications.actions.readAll": "Mark all as read",
43
41
  "notifications.actions.archiveAll": "Archive all",
44
42
  "notifications.actions.archiveRead": "Archive read",
45
43
  "notifications.newNotifications": ({ notificationCount }) => `${notificationCount > 99 ? "99+" : notificationCount} new ${notificationCount === 1 ? "notification" : "notifications"}`,
46
- "notification.actions.read.toolTip": "Mark as read",
47
- "notification.actions.unread.toolTip": "Mark as unread",
48
- "notification.actions.archive.toolTip": "Archive",
49
- "notification.actions.unarchive.toolTip": "Unarchive",
44
+ "notification.actions.read.tooltip": "Mark as read",
45
+ "notification.actions.unread.tooltip": "Mark as unread",
46
+ "notification.actions.archive.tooltip": "Archive",
47
+ "notification.actions.unarchive.tooltip": "Unarchive",
50
48
  "preferences.title": "Notification Preferences",
51
49
  "preferences.global": "Global Preferences",
52
50
  "preferences.workflow.disabled.notice": "Contact admin to enable subscription management for this critical notification.",
53
51
  "preferences.workflow.disabled.tooltip": "Contact admin to edit"
54
52
  };
53
+ var [dynamicLocalization, setDynamicLocalization] = solidJs.createSignal({});
55
54
 
56
55
  // src/ui/config/appearanceKeys.ts
57
56
  var appearanceKeys = [
@@ -222,7 +221,7 @@ function createInfiniteScroll(fetcher) {
222
221
  setData(content.data);
223
222
  });
224
223
  });
225
- const reset = () => chunk2C4L4ZUQ_cjs.__async(this, null, function* () {
224
+ const reset = () => chunkNEEKTCEQ_cjs.__async(this, null, function* () {
226
225
  setData([]);
227
226
  setInitialLoading(true);
228
227
  setEnd(false);
@@ -433,6 +432,10 @@ function useUncontrolledState(props) {
433
432
  return [uncontrolledValue, setUncontrolledValue];
434
433
  }
435
434
 
435
+ // src/ui/helpers/constants.ts
436
+ var DEFAULT_TARGET = "_blank";
437
+ var DEFAULT_REFERRER = "noopener noreferrer";
438
+
436
439
  // src/ui/context/AppearanceContext.tsx
437
440
  var AppearanceContext = solidJs.createContext(void 0);
438
441
  var AppearanceProvider = (props) => {
@@ -469,8 +472,8 @@ var AppearanceProvider = (props) => {
469
472
  if (!styleEl) {
470
473
  return;
471
474
  }
472
- const baseVariables = chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, defaultVariables), themes().reduce((acc, obj) => chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, acc), obj.variables || {}), {}));
473
- setVariableRules(parseVariables(chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, baseVariables), ((_a = props.appearance) == null ? void 0 : _a.variables) || {}), props.id));
475
+ const baseVariables = chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, defaultVariables), themes().reduce((acc, obj) => chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, acc), obj.variables || {}), {}));
476
+ setVariableRules(parseVariables(chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, baseVariables), ((_a = props.appearance) == null ? void 0 : _a.variables) || {}), props.id));
474
477
  });
475
478
  solidJs.createEffect(() => {
476
479
  var _a;
@@ -478,9 +481,9 @@ var AppearanceProvider = (props) => {
478
481
  if (!styleEl) {
479
482
  return;
480
483
  }
481
- const baseElements = themes().reduce((acc, obj) => chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, acc), obj.elements || {}), {});
482
- const elementsStyleData = parseElements(chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, baseElements), ((_a = props.appearance) == null ? void 0 : _a.elements) || {}));
483
- setStore("appearanceKeyToCssInJsClass", (obj) => chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, obj), elementsStyleData.reduce((acc, item) => {
484
+ const baseElements = themes().reduce((acc, obj) => chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, acc), obj.elements || {}), {});
485
+ const elementsStyleData = parseElements(chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, baseElements), ((_a = props.appearance) == null ? void 0 : _a.elements) || {}));
486
+ setStore("appearanceKeyToCssInJsClass", (obj) => chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, obj), elementsStyleData.reduce((acc, item) => {
484
487
  acc[item.key] = item.className;
485
488
  return acc;
486
489
  }, {})));
@@ -588,6 +591,41 @@ var useWebSocketEvent = ({
588
591
  });
589
592
  });
590
593
  };
594
+ var LocalizationContext = solidJs.createContext(void 0);
595
+ var LocalizationProvider = (props) => {
596
+ const localization = solidJs.createMemo(() => {
597
+ const _a = props.localization || {}, {
598
+ dynamic
599
+ } = _a, localizationObject = chunkNEEKTCEQ_cjs.__objRest(_a, [
600
+ "dynamic"
601
+ ]);
602
+ return chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, defaultLocalization), dynamicLocalization()), dynamic || {}), localizationObject);
603
+ });
604
+ const t = (key, ...args) => {
605
+ const value = localization()[key];
606
+ if (typeof value === "function") {
607
+ return value(args[0]);
608
+ }
609
+ return value;
610
+ };
611
+ const locale = solidJs.createMemo(() => localization().locale);
612
+ return web.createComponent(LocalizationContext.Provider, {
613
+ value: {
614
+ t,
615
+ locale
616
+ },
617
+ get children() {
618
+ return props.children;
619
+ }
620
+ });
621
+ };
622
+ function useLocalization() {
623
+ const context = solidJs.useContext(LocalizationContext);
624
+ if (!context) {
625
+ throw new Error("useLocalization must be used within an LocalizationProvider");
626
+ }
627
+ return context;
628
+ }
591
629
 
592
630
  // src/ui/types.ts
593
631
  var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
@@ -615,12 +653,12 @@ var InboxProvider = (props) => {
615
653
  const [tabs, setTabs] = solidJs.createSignal(props.tabs);
616
654
  const [activeTab, setActiveTab] = solidJs.createSignal((_a = props.tabs[0] && props.tabs[0].label) != null ? _a : "");
617
655
  const [status, setStatus] = solidJs.createSignal("unreadRead" /* UNREAD_READ */);
618
- const [filter, setFilter] = solidJs.createSignal(chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, STATUS_TO_FILTER["unreadRead" /* UNREAD_READ */]), {
656
+ const [filter, setFilter] = solidJs.createSignal(chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, STATUS_TO_FILTER["unreadRead" /* UNREAD_READ */]), {
619
657
  tags: props.tabs.length > 0 ? props.tabs[0].value : []
620
658
  }));
621
659
  const setNewStatus = (newStatus) => {
622
660
  setStatus(newStatus);
623
- setFilter((old) => chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, STATUS_TO_FILTER[newStatus]), {
661
+ setFilter((old) => chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, STATUS_TO_FILTER[newStatus]), {
624
662
  tags: old.tags
625
663
  }));
626
664
  };
@@ -631,7 +669,7 @@ var InboxProvider = (props) => {
631
669
  return;
632
670
  }
633
671
  setActiveTab(newActiveTab);
634
- setFilter((old) => chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, old), {
672
+ setFilter((old) => chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, old), {
635
673
  tags
636
674
  }));
637
675
  };
@@ -642,7 +680,7 @@ var InboxProvider = (props) => {
642
680
  setActiveTab((_a2 = firstTab == null ? void 0 : firstTab.label) != null ? _a2 : "");
643
681
  setFilter((old) => {
644
682
  var _a3;
645
- return chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, old), {
683
+ return chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, old), {
646
684
  tags: (_a3 = firstTab == null ? void 0 : firstTab.value) != null ? _a3 : []
647
685
  });
648
686
  });
@@ -670,7 +708,7 @@ var useInboxContext = () => {
670
708
  };
671
709
  var NovuContext = solidJs.createContext(void 0);
672
710
  function NovuProvider(props) {
673
- const novu = solidJs.createMemo(() => new chunk2C4L4ZUQ_cjs.Novu(props.options));
711
+ const novu = solidJs.createMemo(() => new chunkNEEKTCEQ_cjs.Novu(props.options));
674
712
  return web.createComponent(NovuContext.Provider, {
675
713
  get value() {
676
714
  return novu();
@@ -698,7 +736,7 @@ var CountProvider = (props) => {
698
736
  const [totalUnreadCount, setTotalUnreadCount] = solidJs.createSignal(0);
699
737
  const [unreadCounts, setUnreadCounts] = solidJs.createSignal(/* @__PURE__ */ new Map());
700
738
  const [newNotificationCounts, setNewNotificationCounts] = solidJs.createSignal(/* @__PURE__ */ new Map());
701
- const updateTabCounts = () => chunk2C4L4ZUQ_cjs.__async(void 0, null, function* () {
739
+ const updateTabCounts = () => chunkNEEKTCEQ_cjs.__async(void 0, null, function* () {
702
740
  if (tabs().length === 0) {
703
741
  return;
704
742
  }
@@ -746,7 +784,7 @@ var CountProvider = (props) => {
746
784
  });
747
785
  useWebSocketEvent({
748
786
  event: "notifications.notification_received",
749
- eventHandler: (data) => chunk2C4L4ZUQ_cjs.__async(void 0, null, function* () {
787
+ eventHandler: (data) => chunkNEEKTCEQ_cjs.__async(void 0, null, function* () {
750
788
  var _a;
751
789
  const notification = data.result;
752
790
  const allTabs = tabs();
@@ -917,44 +955,16 @@ function useFocusManager() {
917
955
  }
918
956
  return context;
919
957
  }
920
- var LocalizationContext = solidJs.createContext(void 0);
921
- var LocalizationProvider = (props) => {
922
- const localization = solidJs.createMemo(() => chunk2C4L4ZUQ_cjs.__spreadValues(chunk2C4L4ZUQ_cjs.__spreadValues({}, defaultLocalization), props.localization || {}));
923
- const t = (key, ...args) => {
924
- const value = localization()[key];
925
- if (typeof value === "function") {
926
- return value(args[0]);
927
- }
928
- return value;
929
- };
930
- const locale = solidJs.createMemo(() => localization().locale);
931
- return web.createComponent(LocalizationContext.Provider, {
932
- value: {
933
- t,
934
- locale
935
- },
936
- get children() {
937
- return props.children;
938
- }
939
- });
940
- };
941
- function useLocalization() {
942
- const context = solidJs.useContext(LocalizationContext);
943
- if (!context) {
944
- throw new Error("useLocalization must be used within an LocalizationProvider");
945
- }
946
- return context;
947
- }
948
958
  var _tmpl$ = /* @__PURE__ */ web.template(`<div>`);
949
- var ExternalElementMounter = (_a) => {
959
+ var ExternalElementRenderer = (_a) => {
950
960
  var _b = _a, {
951
- mount
952
- } = _b, rest = chunk2C4L4ZUQ_cjs.__objRest(_b, [
953
- "mount"
961
+ render: render2
962
+ } = _b, rest = chunkNEEKTCEQ_cjs.__objRest(_b, [
963
+ "render"
954
964
  ]);
955
965
  let ref;
956
- solidJs.onMount(() => {
957
- const unmount = mount(ref);
966
+ solidJs.createEffect(() => {
967
+ const unmount = render2(ref);
958
968
  solidJs.onCleanup(() => {
959
969
  unmount();
960
970
  });
@@ -1150,7 +1160,7 @@ var Bell = (props) => {
1150
1160
  } = useTotalUnreadCount();
1151
1161
  return web.createComponent(solidJs.Show, {
1152
1162
  get when() {
1153
- return props.mountBell;
1163
+ return props.renderBell;
1154
1164
  },
1155
1165
  get fallback() {
1156
1166
  return web.createComponent(BellContainer, {
@@ -1160,8 +1170,8 @@ var Bell = (props) => {
1160
1170
  });
1161
1171
  },
1162
1172
  get children() {
1163
- return web.createComponent(ExternalElementMounter, {
1164
- mount: (el) => props.mountBell(el, totalUnreadCount())
1173
+ return web.createComponent(ExternalElementRenderer, {
1174
+ render: (el) => props.renderBell(el, totalUnreadCount())
1165
1175
  });
1166
1176
  }
1167
1177
  });
@@ -1727,14 +1737,14 @@ var Tabs = {
1727
1737
 
1728
1738
  // src/ui/components/elements/InboxStatus/constants.ts
1729
1739
  var notificationStatusOptionsLocalizationKeys = {
1730
- unreadRead: "inbox.status.options.unreadRead",
1731
- unread: "inbox.status.options.unread",
1732
- archived: "inbox.status.options.archived"
1740
+ unreadRead: "inbox.filters.dropdownOptions.default",
1741
+ unread: "inbox.filters.dropdownOptions.unread",
1742
+ archived: "inbox.filters.dropdownOptions.archived"
1733
1743
  };
1734
- var inboxStatusLocalizationKeys = {
1735
- unreadRead: "inbox.status.unreadRead",
1736
- unread: "inbox.status.unread",
1737
- archived: "inbox.status.archived"
1744
+ var inboxFilterLocalizationKeys = {
1745
+ unreadRead: "inbox.filters.labels.default",
1746
+ unread: "inbox.filters.labels.unread",
1747
+ archived: "inbox.filters.labels.archived"
1738
1748
  };
1739
1749
  var _tmpl$31 = /* @__PURE__ */ web.template(`<span><span></span><span>`);
1740
1750
  var _tmpl$210 = /* @__PURE__ */ web.template(`<span>`);
@@ -1749,14 +1759,11 @@ var cases = [{
1749
1759
  icon: Archive
1750
1760
  }];
1751
1761
  var StatusOptions = (props) => {
1752
- const {
1753
- t
1754
- } = useLocalization();
1755
1762
  return web.createComponent(solidJs.For, {
1756
1763
  each: cases,
1757
1764
  children: (c) => web.createComponent(StatusItem, {
1758
- get label() {
1759
- return t(notificationStatusOptionsLocalizationKeys[c.status]);
1765
+ get localizationKey() {
1766
+ return notificationStatusOptionsLocalizationKeys[c.status];
1760
1767
  },
1761
1768
  onClick: () => {
1762
1769
  props.setStatus(c.status);
@@ -1772,6 +1779,9 @@ var StatusOptions = (props) => {
1772
1779
  };
1773
1780
  var StatusItem = (props) => {
1774
1781
  const style = useStyle();
1782
+ const {
1783
+ t
1784
+ } = useLocalization();
1775
1785
  return web.createComponent(Dropdown.Item, {
1776
1786
  get ["class"]() {
1777
1787
  return style("inboxStatus__dropdownItem", cn(dropdownItemVariants(), "nt-flex nt-gap-8 nt-justify-between"));
@@ -1783,17 +1793,19 @@ var StatusItem = (props) => {
1783
1793
  return [(() => {
1784
1794
  var _el$ = _tmpl$31(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
1785
1795
  web.insert(_el$2, () => props.icon());
1786
- web.insert(_el$3, () => props.label);
1796
+ web.insert(_el$3, () => t(props.localizationKey));
1787
1797
  web.effect((_p$) => {
1788
- var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = style("inboxStatus__dropdownItemLeft__icon"), _v$3 = style("inboxStatus__dropdownItemLabel");
1798
+ var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = style("inboxStatus__dropdownItemLeft__icon"), _v$3 = props.localizationKey, _v$4 = style("inboxStatus__dropdownItemLabel");
1789
1799
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
1790
1800
  _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
1791
- _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
1801
+ _v$3 !== _p$.a && web.setAttribute(_el$3, "data-localization", _p$.a = _v$3);
1802
+ _v$4 !== _p$.o && web.className(_el$3, _p$.o = _v$4);
1792
1803
  return _p$;
1793
1804
  }, {
1794
1805
  e: void 0,
1795
1806
  t: void 0,
1796
- a: void 0
1807
+ a: void 0,
1808
+ o: void 0
1797
1809
  });
1798
1810
  return _el$;
1799
1811
  })(), web.createComponent(solidJs.Show, {
@@ -1838,8 +1850,16 @@ var StatusDropdown = () => {
1838
1850
  get children() {
1839
1851
  return [(() => {
1840
1852
  var _el$ = _tmpl$32();
1841
- web.insert(_el$, () => t(inboxStatusLocalizationKeys[status()]));
1842
- web.effect(() => web.className(_el$, style("inboxStatus__title", "nt-text-xl nt-font-semibold")));
1853
+ web.insert(_el$, () => t(inboxFilterLocalizationKeys[status()]));
1854
+ web.effect((_p$) => {
1855
+ var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-xl nt-font-semibold");
1856
+ _v$ !== _p$.e && web.setAttribute(_el$, "data-localization", _p$.e = _v$);
1857
+ _v$2 !== _p$.t && web.className(_el$, _p$.t = _v$2);
1858
+ return _p$;
1859
+ }, {
1860
+ e: void 0,
1861
+ t: void 0
1862
+ });
1843
1863
  return _el$;
1844
1864
  })(), (() => {
1845
1865
  var _el$2 = _tmpl$32();
@@ -1865,15 +1885,15 @@ var StatusDropdown = () => {
1865
1885
  };
1866
1886
  var useNotificationsInfiniteScroll = (props) => {
1867
1887
  const novu = useNovu();
1868
- let filter = chunk2C4L4ZUQ_cjs.__spreadValues({}, props.options());
1869
- const [data, { initialLoading, setEl, end, mutate, reset }] = createInfiniteScroll((offset3) => chunk2C4L4ZUQ_cjs.__async(void 0, null, function* () {
1888
+ let filter = chunkNEEKTCEQ_cjs.__spreadValues({}, props.options());
1889
+ const [data, { initialLoading, setEl, end, mutate, reset }] = createInfiniteScroll((offset3) => chunkNEEKTCEQ_cjs.__async(void 0, null, function* () {
1870
1890
  var _a, _b;
1871
- const { data: data2 } = yield novu.notifications.list(chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, props.options() || {}), { offset: offset3 }));
1891
+ const { data: data2 } = yield novu.notifications.list(chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, props.options() || {}), { offset: offset3 }));
1872
1892
  return { data: (_a = data2 == null ? void 0 : data2.notifications) != null ? _a : [], hasMore: (_b = data2 == null ? void 0 : data2.hasMore) != null ? _b : false };
1873
1893
  }));
1874
1894
  solidJs.onMount(() => {
1875
1895
  const listener = ({ data: data2 }) => {
1876
- if (!data2 || !chunk2C4L4ZUQ_cjs.isSameFilter(filter, data2.filter)) {
1896
+ if (!data2 || !chunkNEEKTCEQ_cjs.isSameFilter(filter, data2.filter)) {
1877
1897
  return;
1878
1898
  }
1879
1899
  mutate({ data: data2.notifications, hasMore: data2.hasMore });
@@ -1882,8 +1902,8 @@ var useNotificationsInfiniteScroll = (props) => {
1882
1902
  solidJs.onCleanup(() => novu.off("notifications.list.updated", listener));
1883
1903
  });
1884
1904
  solidJs.createEffect(() => {
1885
- const newFilter = chunk2C4L4ZUQ_cjs.__spreadValues({}, props.options());
1886
- if (chunk2C4L4ZUQ_cjs.isSameFilter(filter, newFilter)) {
1905
+ const newFilter = chunkNEEKTCEQ_cjs.__spreadValues({}, props.options());
1906
+ if (chunkNEEKTCEQ_cjs.isSameFilter(filter, newFilter)) {
1887
1907
  return;
1888
1908
  }
1889
1909
  novu.notifications.clearCache();
@@ -1899,7 +1919,7 @@ var useNotificationsInfiniteScroll = (props) => {
1899
1919
  var usePreferences = (options) => {
1900
1920
  const novu = useNovu();
1901
1921
  const [loading, setLoading] = createDelayedLoading(true, 300);
1902
- const [preferences, { mutate, refetch }] = solidJs.createResource(options || {}, () => chunk2C4L4ZUQ_cjs.__async(void 0, null, function* () {
1922
+ const [preferences, { mutate, refetch }] = solidJs.createResource(options || {}, () => chunkNEEKTCEQ_cjs.__async(void 0, null, function* () {
1903
1923
  try {
1904
1924
  const response = yield novu.preferences.list();
1905
1925
  return response.data;
@@ -1917,7 +1937,7 @@ var usePreferences = (options) => {
1917
1937
  // src/ui/api/hooks/useReadAll.ts
1918
1938
  var useReadAll = (props) => {
1919
1939
  const novu = useNovu();
1920
- const readAll = (..._0) => chunk2C4L4ZUQ_cjs.__async(void 0, [..._0], function* ({ tags } = {}) {
1940
+ const readAll = (..._0) => chunkNEEKTCEQ_cjs.__async(void 0, [..._0], function* ({ tags } = {}) {
1921
1941
  var _a, _b;
1922
1942
  try {
1923
1943
  yield novu.notifications.readAll({ tags });
@@ -1932,7 +1952,7 @@ var useReadAll = (props) => {
1932
1952
  // src/ui/api/hooks/useArchiveAll.ts
1933
1953
  var useArchiveAll = (props) => {
1934
1954
  const novu = useNovu();
1935
- const archiveAll = (..._0) => chunk2C4L4ZUQ_cjs.__async(void 0, [..._0], function* ({ tags } = {}) {
1955
+ const archiveAll = (..._0) => chunkNEEKTCEQ_cjs.__async(void 0, [..._0], function* ({ tags } = {}) {
1936
1956
  var _a, _b;
1937
1957
  try {
1938
1958
  yield novu.notifications.archiveAll({ tags });
@@ -1947,7 +1967,7 @@ var useArchiveAll = (props) => {
1947
1967
  // src/ui/api/hooks/useArchiveAllRead.ts
1948
1968
  var useArchiveAllRead = (props) => {
1949
1969
  const novu = useNovu();
1950
- const archiveAllRead = (..._0) => chunk2C4L4ZUQ_cjs.__async(void 0, [..._0], function* ({ tags } = {}) {
1970
+ const archiveAllRead = (..._0) => chunkNEEKTCEQ_cjs.__async(void 0, [..._0], function* ({ tags } = {}) {
1951
1971
  var _a, _b;
1952
1972
  try {
1953
1973
  yield novu.notifications.archiveAllRead({ tags });
@@ -1962,9 +1982,6 @@ var useArchiveAllRead = (props) => {
1962
1982
  // src/ui/components/elements/Header/MoreActionsOptions.tsx
1963
1983
  var _tmpl$33 = /* @__PURE__ */ web.template(`<span>`);
1964
1984
  var MoreActionsOptions = () => {
1965
- const {
1966
- t
1967
- } = useLocalization();
1968
1985
  const {
1969
1986
  filter
1970
1987
  } = useInboxContext();
@@ -1978,25 +1995,19 @@ var MoreActionsOptions = () => {
1978
1995
  archiveAllRead
1979
1996
  } = useArchiveAllRead();
1980
1997
  return [web.createComponent(ActionsItem, {
1981
- get label() {
1982
- return t("notifications.actions.readAll");
1983
- },
1998
+ localizationKey: "notifications.actions.readAll",
1984
1999
  onClick: () => readAll({
1985
2000
  tags: filter().tags
1986
2001
  }),
1987
2002
  icon: ReadAll
1988
2003
  }), web.createComponent(ActionsItem, {
1989
- get label() {
1990
- return t("notifications.actions.archiveAll");
1991
- },
2004
+ localizationKey: "notifications.actions.archiveAll",
1992
2005
  onClick: () => archiveAll({
1993
2006
  tags: filter().tags
1994
2007
  }),
1995
2008
  icon: Archive
1996
2009
  }), web.createComponent(ActionsItem, {
1997
- get label() {
1998
- return t("notifications.actions.archiveRead");
1999
- },
2010
+ localizationKey: "notifications.actions.archiveRead",
2000
2011
  onClick: () => archiveAllRead({
2001
2012
  tags: filter().tags
2002
2013
  }),
@@ -2005,6 +2016,9 @@ var MoreActionsOptions = () => {
2005
2016
  };
2006
2017
  var ActionsItem = (props) => {
2007
2018
  const style = useStyle();
2019
+ const {
2020
+ t
2021
+ } = useLocalization();
2008
2022
  return web.createComponent(Dropdown.Item, {
2009
2023
  get ["class"]() {
2010
2024
  return style("moreActions__dropdownItem", cn(dropdownItemVariants(), "nt-flex nt-gap-2"));
@@ -2020,8 +2034,16 @@ var ActionsItem = (props) => {
2020
2034
  return _el$;
2021
2035
  })(), (() => {
2022
2036
  var _el$2 = _tmpl$33();
2023
- web.insert(_el$2, () => props.label);
2024
- web.effect(() => web.className(_el$2, style("moreActions__dropdownItemLabel")));
2037
+ web.insert(_el$2, () => t(props.localizationKey));
2038
+ web.effect((_p$) => {
2039
+ var _v$ = props.localizationKey, _v$2 = style("moreActions__dropdownItemLabel");
2040
+ _v$ !== _p$.e && web.setAttribute(_el$2, "data-localization", _p$.e = _v$);
2041
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
2042
+ return _p$;
2043
+ }, {
2044
+ e: void 0,
2045
+ t: void 0
2046
+ });
2025
2047
  return _el$2;
2026
2048
  })()];
2027
2049
  }
@@ -2113,7 +2135,7 @@ var Header = (props) => {
2113
2135
  return _el$;
2114
2136
  })();
2115
2137
  };
2116
- var _tmpl$36 = /* @__PURE__ */ web.template(`<div><div>`);
2138
+ var _tmpl$36 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
2117
2139
  var _tmpl$211 = /* @__PURE__ */ web.template(`<button>`);
2118
2140
  var PreferencesHeader = (props) => {
2119
2141
  const style = useStyle();
@@ -2367,7 +2389,7 @@ var _tmpl$41 = /* @__PURE__ */ web.template(`<div><div><div></div><span></span><
2367
2389
  var ChannelRow = (props) => {
2368
2390
  const novu = useNovu();
2369
2391
  const style = useStyle();
2370
- const updatePreference = (enabled) => chunk2C4L4ZUQ_cjs.__async(void 0, null, function* () {
2392
+ const updatePreference = (enabled) => chunkNEEKTCEQ_cjs.__async(void 0, null, function* () {
2371
2393
  if (props.isCritical) {
2372
2394
  return;
2373
2395
  }
@@ -2508,12 +2530,10 @@ var LoadingSkeleton = () => {
2508
2530
  // src/ui/components/elements/Preferences/Preferences.tsx
2509
2531
  var _tmpl$44 = /* @__PURE__ */ web.template(`<div>`);
2510
2532
  var _tmpl$212 = /* @__PURE__ */ web.template(`<span>`);
2511
- var _tmpl$310 = /* @__PURE__ */ web.template(`<div><div><div><div></div></div><span>`);
2533
+ var _tmpl$310 = /* @__PURE__ */ web.template(`<span data-localization=preferences.workflow.disabled.notice>`);
2534
+ var _tmpl$45 = /* @__PURE__ */ web.template(`<div><div><div><div></div></div><span>`);
2512
2535
  var Preferences = () => {
2513
2536
  const style = useStyle();
2514
- const {
2515
- t
2516
- } = useLocalization();
2517
2537
  const {
2518
2538
  preferences,
2519
2539
  loading,
@@ -2528,6 +2548,15 @@ var Preferences = () => {
2528
2548
  workflowPreferences
2529
2549
  };
2530
2550
  });
2551
+ solidJs.createEffect(() => {
2552
+ setDynamicLocalization((prev) => {
2553
+ var _a;
2554
+ return chunkNEEKTCEQ_cjs.__spreadValues(chunkNEEKTCEQ_cjs.__spreadValues({}, prev), (_a = allPreferences().workflowPreferences) == null ? void 0 : _a.reduce((acc, preference) => {
2555
+ acc[preference.workflow.identifier] = preference.workflow.name;
2556
+ return acc;
2557
+ }, {}));
2558
+ });
2559
+ });
2531
2560
  const optimisticUpdate = ({
2532
2561
  channel,
2533
2562
  enabled,
@@ -2557,9 +2586,7 @@ var Preferences = () => {
2557
2586
  },
2558
2587
  get children() {
2559
2588
  return [web.createComponent(PreferencesRow, {
2560
- get label() {
2561
- return t("preferences.global");
2562
- },
2589
+ localizationKey: "preferences.global",
2563
2590
  get channels() {
2564
2591
  var _a;
2565
2592
  return ((_a = allPreferences().globalPreference) == null ? void 0 : _a.channels) || {};
@@ -2570,9 +2597,8 @@ var Preferences = () => {
2570
2597
  return allPreferences().workflowPreferences;
2571
2598
  },
2572
2599
  children: (preference) => web.createComponent(PreferencesRow, {
2573
- get label() {
2574
- var _a;
2575
- return (_a = preference.workflow) == null ? void 0 : _a.name;
2600
+ get localizationKey() {
2601
+ return preference.workflow.identifier;
2576
2602
  },
2577
2603
  get channels() {
2578
2604
  return preference.channels;
@@ -2632,7 +2658,7 @@ var PreferencesRow = (props) => {
2632
2658
  return channels().length > 0;
2633
2659
  },
2634
2660
  get children() {
2635
- var _el$4 = _tmpl$310(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$8 = _el$6.nextSibling;
2661
+ var _el$4 = _tmpl$45(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$8 = _el$6.nextSibling;
2636
2662
  _el$5.$$click = () => setIsOpen((prev) => !prev);
2637
2663
  web.insert(_el$7, web.createComponent(solidJs.Show, {
2638
2664
  get when() {
@@ -2653,6 +2679,7 @@ var PreferencesRow = (props) => {
2653
2679
  return _el$11;
2654
2680
  })()
2655
2681
  }), web.createComponent(Tooltip.Content, {
2682
+ "data-localization": "preferences.workflow.disabled.tooltip",
2656
2683
  get children() {
2657
2684
  return t("preferences.workflow.disabled.tooltip");
2658
2685
  }
@@ -2661,7 +2688,7 @@ var PreferencesRow = (props) => {
2661
2688
  });
2662
2689
  }
2663
2690
  }), null);
2664
- web.insert(_el$7, () => props.label, null);
2691
+ web.insert(_el$7, () => t(props.localizationKey), null);
2665
2692
  web.insert(_el$6, web.createComponent(ChannelsLabel, {
2666
2693
  get channels() {
2667
2694
  return props.channels;
@@ -2683,7 +2710,7 @@ var PreferencesRow = (props) => {
2683
2710
  return props.isCritical;
2684
2711
  },
2685
2712
  get children() {
2686
- var _el$10 = _tmpl$212();
2713
+ var _el$10 = _tmpl$310();
2687
2714
  web.insert(_el$10, () => t("preferences.workflow.disabled.notice"));
2688
2715
  web.effect(() => web.className(_el$10, style("workflowContainerDisabledNotice", "nt-text-sm nt-text-foreground-alpha-600 nt-text-start")));
2689
2716
  return _el$10;
@@ -2715,7 +2742,7 @@ var PreferencesRow = (props) => {
2715
2742
  }), null);
2716
2743
  web.effect((_p$) => {
2717
2744
  var _v$ = style("workflowContainer", `nt-p-4 nt-flex nt-flex-col nt-gap-1 nt-items-start nt-self-stretch
2718
- hover:nt-bg-neutral-100 nt-rounded-lg data-[disabled=true]:nt-bg-neutral-alpha-50`), _v$2 = props.isCritical, _v$3 = isOpen(), _v$4 = style("workflowLabelContainer", "nt-flex nt-justify-between nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center"), _v$5 = props.isCritical, _v$6 = isOpen(), _v$7 = style("workflowLabel", "nt-text-base nt-font-semibold nt-text-start nt-flex nt-items-center nt-gap-1"), _v$8 = props.isCritical, _v$9 = isOpen(), _v$10 = style("workflowContainerRight__icon", `nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180`), _v$11 = props.isCritical, _v$12 = isOpen();
2745
+ hover:nt-bg-neutral-100 nt-rounded-lg data-[disabled=true]:nt-bg-neutral-alpha-50`), _v$2 = props.isCritical, _v$3 = isOpen(), _v$4 = style("workflowLabelContainer", "nt-flex nt-justify-between nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center"), _v$5 = props.isCritical, _v$6 = isOpen(), _v$7 = style("workflowLabel", "nt-text-base nt-font-semibold nt-text-start nt-flex nt-items-center nt-gap-1"), _v$8 = props.isCritical, _v$9 = props.localizationKey, _v$10 = isOpen(), _v$11 = style("workflowContainerRight__icon", `nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180`), _v$12 = props.isCritical, _v$13 = isOpen();
2719
2746
  _v$ !== _p$.e && web.className(_el$4, _p$.e = _v$);
2720
2747
  _v$2 !== _p$.t && web.setAttribute(_el$4, "data-disabled", _p$.t = _v$2);
2721
2748
  _v$3 !== _p$.a && web.setAttribute(_el$4, "data-open", _p$.a = _v$3);
@@ -2724,10 +2751,11 @@ var PreferencesRow = (props) => {
2724
2751
  _v$6 !== _p$.n && web.setAttribute(_el$5, "data-open", _p$.n = _v$6);
2725
2752
  _v$7 !== _p$.s && web.className(_el$7, _p$.s = _v$7);
2726
2753
  _v$8 !== _p$.h && web.setAttribute(_el$7, "data-disabled", _p$.h = _v$8);
2727
- _v$9 !== _p$.r && web.setAttribute(_el$7, "data-open", _p$.r = _v$9);
2728
- _v$10 !== _p$.d && web.className(_el$8, _p$.d = _v$10);
2729
- _v$11 !== _p$.l && web.setAttribute(_el$8, "data-disabled", _p$.l = _v$11);
2730
- _v$12 !== _p$.u && web.setAttribute(_el$8, "data-open", _p$.u = _v$12);
2754
+ _v$9 !== _p$.r && web.setAttribute(_el$7, "data-localization", _p$.r = _v$9);
2755
+ _v$10 !== _p$.d && web.setAttribute(_el$7, "data-open", _p$.d = _v$10);
2756
+ _v$11 !== _p$.l && web.className(_el$8, _p$.l = _v$11);
2757
+ _v$12 !== _p$.u && web.setAttribute(_el$8, "data-disabled", _p$.u = _v$12);
2758
+ _v$13 !== _p$.c && web.setAttribute(_el$8, "data-open", _p$.c = _v$13);
2731
2759
  return _p$;
2732
2760
  }, {
2733
2761
  e: void 0,
@@ -2741,17 +2769,18 @@ var PreferencesRow = (props) => {
2741
2769
  r: void 0,
2742
2770
  d: void 0,
2743
2771
  l: void 0,
2744
- u: void 0
2772
+ u: void 0,
2773
+ c: void 0
2745
2774
  });
2746
2775
  return _el$4;
2747
2776
  }
2748
2777
  });
2749
2778
  };
2750
2779
  web.delegateEvents(["click"]);
2751
- var _tmpl$45 = /* @__PURE__ */ web.template(`<span>`);
2780
+ var _tmpl$46 = /* @__PURE__ */ web.template(`<span>`);
2752
2781
  var _tmpl$213 = /* @__PURE__ */ web.template(`<img>`);
2753
2782
  var _tmpl$311 = /* @__PURE__ */ web.template(`<p>`);
2754
- var _tmpl$46 = /* @__PURE__ */ web.template(`<a><div><div class="nt-relative nt-shrink-0 nt-float-right"><p></p><div></div></div><p></p><div>`);
2783
+ var _tmpl$47 = /* @__PURE__ */ web.template(`<a><div><div class="nt-relative nt-shrink-0 nt-float-right"><p></p><div></div></div><p></p><div>`);
2755
2784
  var DefaultNotification = (props) => {
2756
2785
  const style = useStyle();
2757
2786
  const {
@@ -2776,7 +2805,7 @@ var DefaultNotification = (props) => {
2776
2805
  return () => clearInterval(interval);
2777
2806
  });
2778
2807
  const handleNotificationClick = (e) => {
2779
- var _a, _b, _c;
2808
+ var _a, _b, _c, _d;
2780
2809
  e.stopPropagation();
2781
2810
  e.preventDefault();
2782
2811
  if (!props.notification.isRead) {
@@ -2784,29 +2813,38 @@ var DefaultNotification = (props) => {
2784
2813
  }
2785
2814
  (_a = props.onNotificationClick) == null ? void 0 : _a.call(props, props.notification);
2786
2815
  if ((_b = props.notification.redirect) == null ? void 0 : _b.url) {
2787
- window.open((_c = props.notification.redirect) == null ? void 0 : _c.url, "_blank", "noreferrer noopener");
2816
+ const target = ((_c = props.notification.redirect) == null ? void 0 : _c.target) || DEFAULT_TARGET;
2817
+ window.open((_d = props.notification.redirect) == null ? void 0 : _d.url, target, DEFAULT_REFERRER);
2788
2818
  }
2789
2819
  };
2790
2820
  const handleActionButtonClick = (action, e) => {
2791
- var _a, _b;
2821
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
2792
2822
  e.stopPropagation();
2793
2823
  if (action === "primary" /* PRIMARY */) {
2794
2824
  props.notification.completePrimary();
2795
2825
  (_a = props.onPrimaryActionClick) == null ? void 0 : _a.call(props, props.notification);
2826
+ if ((_c = (_b = props.notification.primaryAction) == null ? void 0 : _b.redirect) == null ? void 0 : _c.url) {
2827
+ const target = ((_e = (_d = props.notification.primaryAction) == null ? void 0 : _d.redirect) == null ? void 0 : _e.target) || DEFAULT_TARGET;
2828
+ window.open((_g = (_f = props.notification.primaryAction) == null ? void 0 : _f.redirect) == null ? void 0 : _g.url, target, DEFAULT_REFERRER);
2829
+ }
2796
2830
  } else {
2797
2831
  props.notification.completeSecondary();
2798
- (_b = props.onSecondaryActionClick) == null ? void 0 : _b.call(props, props.notification);
2832
+ (_h = props.onSecondaryActionClick) == null ? void 0 : _h.call(props, props.notification);
2833
+ if ((_j = (_i = props.notification.secondaryAction) == null ? void 0 : _i.redirect) == null ? void 0 : _j.url) {
2834
+ const target = ((_l = (_k = props.notification.secondaryAction) == null ? void 0 : _k.redirect) == null ? void 0 : _l.target) || DEFAULT_TARGET;
2835
+ window.open((_n = (_m = props.notification.secondaryAction) == null ? void 0 : _m.redirect) == null ? void 0 : _n.url, target, DEFAULT_REFERRER);
2836
+ }
2799
2837
  }
2800
2838
  };
2801
2839
  return (() => {
2802
- var _el$ = _tmpl$46(), _el$4 = _el$.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$9 = _el$5.nextSibling, _el$10 = _el$9.nextSibling;
2840
+ var _el$ = _tmpl$47(), _el$4 = _el$.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$9 = _el$5.nextSibling, _el$10 = _el$9.nextSibling;
2803
2841
  _el$.$$click = handleNotificationClick;
2804
2842
  web.insert(_el$, web.createComponent(solidJs.Show, {
2805
2843
  get when() {
2806
2844
  return !props.notification.isRead;
2807
2845
  },
2808
2846
  get children() {
2809
- var _el$2 = _tmpl$45();
2847
+ var _el$2 = _tmpl$46();
2810
2848
  web.effect(() => web.className(_el$2, style("notificationDot", "nt-absolute -nt-translate-x-[1.0625rem] nt-translate-y-1/2 nt-size-2.5 nt-bg-primary nt-rounded-full nt-border")));
2811
2849
  return _el$2;
2812
2850
  }
@@ -2858,8 +2896,9 @@ var DefaultNotification = (props) => {
2858
2896
  }
2859
2897
  }))
2860
2898
  }), web.createComponent(Tooltip.Content, {
2899
+ "data-localization": "notification.actions.read.tooltip",
2861
2900
  get children() {
2862
- return t("notification.actions.read.toolTip");
2901
+ return t("notification.actions.read.tooltip");
2863
2902
  }
2864
2903
  })];
2865
2904
  }
@@ -2884,8 +2923,9 @@ var DefaultNotification = (props) => {
2884
2923
  }
2885
2924
  }))
2886
2925
  }), web.createComponent(Tooltip.Content, {
2926
+ "data-localization": "notification.actions.unread.tooltip",
2887
2927
  get children() {
2888
- return t("notification.actions.unread.toolTip");
2928
+ return t("notification.actions.unread.tooltip");
2889
2929
  }
2890
2930
  })];
2891
2931
  }
@@ -2917,8 +2957,9 @@ var DefaultNotification = (props) => {
2917
2957
  }
2918
2958
  }))
2919
2959
  }), web.createComponent(Tooltip.Content, {
2960
+ "data-localization": "notification.actions.archive.tooltip",
2920
2961
  get children() {
2921
- return t("notification.actions.archive.toolTip");
2962
+ return t("notification.actions.archive.tooltip");
2922
2963
  }
2923
2964
  })];
2924
2965
  }
@@ -2943,8 +2984,9 @@ var DefaultNotification = (props) => {
2943
2984
  }
2944
2985
  }))
2945
2986
  }), web.createComponent(Tooltip.Content, {
2987
+ "data-localization": "notification.actions.unarchive.tooltip",
2946
2988
  get children() {
2947
- return t("notification.actions.unarchive.toolTip");
2989
+ return t("notification.actions.unarchive.tooltip");
2948
2990
  }
2949
2991
  })];
2950
2992
  }
@@ -2958,7 +3000,7 @@ var DefaultNotification = (props) => {
2958
3000
  get children() {
2959
3001
  var _el$8 = _tmpl$311();
2960
3002
  web.insert(_el$8, () => props.notification.subject);
2961
- web.effect(() => web.className(_el$8, style("notificationSubject", "nt-font-semibold")));
3003
+ web.effect(() => web.className(_el$8, style("notificationSubject", "nt-text-start nt-font-semibold")));
2962
3004
  return _el$8;
2963
3005
  }
2964
3006
  }), _el$9);
@@ -2998,7 +3040,7 @@ var DefaultNotification = (props) => {
2998
3040
  })), _v$4 = style("notificationBody", "nt-overflow-hidden nt-w-full"), _v$5 = style("notificationDate", `nt-transition nt-duration-100 nt-ease-out nt-text-foreground-alpha-400 nt-shrink-0
2999
3041
  nt-float-right nt-text-right group-hover:nt-opacity-0`), _v$6 = style("notificationDefaultActions", `nt-transition nt-duration-100 nt-ease-out nt-gap-2 nt-flex nt-shrink-0
3000
3042
  nt-opacity-0 group-hover:nt-opacity-100 nt-justify-center nt-items-center
3001
- nt-absolute nt-top-0 nt-right-0 nt-bg-neutral-100 nt-p-0.5 nt-rounded nt-z-50`), _v$7 = style("notificationBody"), _v$8 = style("notificationCustomActions", "nt-flex nt-gap-4 nt-mt-4");
3043
+ nt-absolute nt-top-0 nt-right-0 nt-bg-neutral-100 nt-p-0.5 nt-rounded nt-z-50`), _v$7 = style("notificationBody", "nt-text-start"), _v$8 = style("notificationCustomActions", "nt-flex nt-gap-4 nt-mt-4");
3002
3044
  _v$3 !== _p$.e && web.className(_el$, _p$.e = _v$3);
3003
3045
  _v$4 !== _p$.t && web.className(_el$4, _p$.t = _v$4);
3004
3046
  _v$5 !== _p$.a && web.className(_el$6, _p$.a = _v$5);
@@ -3023,7 +3065,7 @@ web.delegateEvents(["click"]);
3023
3065
  var Notification = (props) => {
3024
3066
  return web.createComponent(solidJs.Show, {
3025
3067
  get when() {
3026
- return props.mountNotification;
3068
+ return props.renderNotification;
3027
3069
  },
3028
3070
  get fallback() {
3029
3071
  return web.createComponent(DefaultNotification, {
@@ -3042,25 +3084,25 @@ var Notification = (props) => {
3042
3084
  });
3043
3085
  },
3044
3086
  get children() {
3045
- return web.createComponent(ExternalElementMounter, {
3046
- mount: (el) => props.mountNotification(el, props.notification)
3087
+ return web.createComponent(ExternalElementRenderer, {
3088
+ render: (el) => props.renderNotification(el, props.notification)
3047
3089
  });
3048
3090
  }
3049
3091
  });
3050
3092
  };
3051
- var _tmpl$47 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=48 height=48 viewBox="0 0 48 48"fill=none><path fill=currentColor d="M35.2 21.62L32.38 18.8L39.5 11.7L42.32 14.52C42.1 14.58 35.2 21.62 35.2 21.62ZM26 6H22V16H26V6ZM12.8 21.62L15.62 18.8L8.52 11.68L5.68 14.52C5.9 14.58 12.8 21.62 12.8 21.62ZM40 28H33.16C31.62 31.52 28.08 34 24 34C19.92 34 16.38 31.52 14.84 28H8V38H40V28ZM40 24C42.2 24 44 25.8 44 28V38C44 40.2 42.2 42 40 42H8C5.8 42 4 40.2 4 38V28C4 25.8 5.8 24 8 24H18C18 27.32 20.68 30 24 30C27.32 30 30 27.32 30 24H40Z">`);
3093
+ var _tmpl$48 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=48 height=48 viewBox="0 0 48 48"fill=none><path fill=currentColor d="M35.2 21.62L32.38 18.8L39.5 11.7L42.32 14.52C42.1 14.58 35.2 21.62 35.2 21.62ZM26 6H22V16H26V6ZM12.8 21.62L15.62 18.8L8.52 11.68L5.68 14.52C5.9 14.58 12.8 21.62 12.8 21.62ZM40 28H33.16C31.62 31.52 28.08 34 24 34C19.92 34 16.38 31.52 14.84 28H8V38H40V28ZM40 24C42.2 24 44 25.8 44 28V38C44 40.2 42.2 42 40 42H8C5.8 42 4 40.2 4 38V28C4 25.8 5.8 24 8 24H18C18 27.32 20.68 30 24 30C27.32 30 30 27.32 30 24H40Z">`);
3052
3094
  function EmptyIcon(props) {
3053
3095
  return (() => {
3054
- var _el$ = _tmpl$47();
3096
+ var _el$ = _tmpl$48();
3055
3097
  web.spread(_el$, props, true, true);
3056
3098
  return _el$;
3057
3099
  })();
3058
3100
  }
3059
3101
  var NewMessagesCta = (props) => {
3102
+ const shouldRender = solidJs.createMemo(() => !!props.count);
3060
3103
  const {
3061
3104
  t
3062
3105
  } = useLocalization();
3063
- const shouldRender = solidJs.createMemo(() => !!props.count);
3064
3106
  return web.createComponent(solidJs.Show, {
3065
3107
  get when() {
3066
3108
  return shouldRender();
@@ -3072,6 +3114,7 @@ var NewMessagesCta = (props) => {
3072
3114
  get onClick() {
3073
3115
  return props.onClick;
3074
3116
  },
3117
+ "data-localization": "notifications.newNotifications",
3075
3118
  get children() {
3076
3119
  return t("notifications.newNotifications", {
3077
3120
  notificationCount: props.count
@@ -3081,10 +3124,10 @@ var NewMessagesCta = (props) => {
3081
3124
  }
3082
3125
  });
3083
3126
  };
3084
- var _tmpl$48 = /* @__PURE__ */ web.template(`<div class="nt-flex nt-gap-2 nt-p-4 nt-w-full"><div class="nt-flex nt-flex-col nt-self-stretch nt-gap-3 nt-flex-1"><div class="nt-flex nt-gap-1"></div><div class="nt-flex nt-gap-1">`);
3127
+ var _tmpl$49 = /* @__PURE__ */ web.template(`<div class="nt-flex nt-gap-2 nt-p-4 nt-w-full"><div class="nt-flex nt-flex-col nt-self-stretch nt-gap-3 nt-flex-1"><div class="nt-flex nt-gap-1"></div><div class="nt-flex nt-gap-1">`);
3085
3128
  var NotificationSkeleton = () => {
3086
3129
  return (() => {
3087
- var _el$ = _tmpl$48(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
3130
+ var _el$ = _tmpl$49(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
3088
3131
  web.insert(_el$, web.createComponent(SkeletonAvatar, {
3089
3132
  appearanceKey: "skeletonAvatar"
3090
3133
  }), _el$2);
@@ -3121,7 +3164,7 @@ var NotificationListSkeleton = (props) => {
3121
3164
  };
3122
3165
 
3123
3166
  // src/ui/components/Notification/NotificationList.tsx
3124
- var _tmpl$49 = /* @__PURE__ */ web.template(`<div><p>`);
3167
+ var _tmpl$50 = /* @__PURE__ */ web.template(`<div><p data-localization=notifications.emptyNotice>`);
3125
3168
  var _tmpl$214 = /* @__PURE__ */ web.template(`<div>`);
3126
3169
  var _tmpl$312 = /* @__PURE__ */ web.template(`<div><div>`);
3127
3170
  var EmptyNotificationList = () => {
@@ -3130,7 +3173,7 @@ var EmptyNotificationList = () => {
3130
3173
  t
3131
3174
  } = useLocalization();
3132
3175
  return (() => {
3133
- var _el$ = _tmpl$49(), _el$2 = _el$.firstChild;
3176
+ var _el$ = _tmpl$50(), _el$2 = _el$.firstChild;
3134
3177
  web.insert(_el$, web.createComponent(EmptyIcon, {
3135
3178
  get ["class"]() {
3136
3179
  return style("notificationListEmptyNoticeIcon");
@@ -3151,7 +3194,7 @@ var EmptyNotificationList = () => {
3151
3194
  };
3152
3195
  var NotificationList = (props) => {
3153
3196
  var _a, _b;
3154
- const options = solidJs.createMemo(() => chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, props.filter), {
3197
+ const options = solidJs.createMemo(() => chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, props.filter), {
3155
3198
  limit: props.limit
3156
3199
  }));
3157
3200
  const style = useStyle();
@@ -3173,7 +3216,7 @@ var NotificationList = (props) => {
3173
3216
  }
3174
3217
  });
3175
3218
  let notificationListElement;
3176
- const handleOnNewMessagesClick = (e) => chunk2C4L4ZUQ_cjs.__async(void 0, null, function* () {
3219
+ const handleOnNewMessagesClick = (e) => chunkNEEKTCEQ_cjs.__async(void 0, null, function* () {
3177
3220
  e.stopPropagation();
3178
3221
  resetNewMessagesCount();
3179
3222
  refetch({
@@ -3218,8 +3261,8 @@ var NotificationList = (props) => {
3218
3261
  },
3219
3262
  children: (notification) => web.createComponent(Notification, {
3220
3263
  notification,
3221
- get mountNotification() {
3222
- return props.mountNotification;
3264
+ get renderNotification() {
3265
+ return props.renderNotification;
3223
3266
  },
3224
3267
  get onNotificationClick() {
3225
3268
  return props.onNotificationClick;
@@ -3265,13 +3308,13 @@ var NotificationList = (props) => {
3265
3308
  return _el$3;
3266
3309
  })();
3267
3310
  };
3268
- var _tmpl$50 = /* @__PURE__ */ web.template(`<span>`);
3311
+ var _tmpl$51 = /* @__PURE__ */ web.template(`<span>`);
3269
3312
  var getDisplayCount = (count) => count >= 100 ? "99+" : count;
3270
3313
  var InboxTabUnreadNotificationsCount = (props) => {
3271
3314
  const style = useStyle();
3272
3315
  const displayCount = solidJs.createMemo(() => getDisplayCount(props.count));
3273
3316
  return (() => {
3274
- var _el$ = _tmpl$50();
3317
+ var _el$ = _tmpl$51();
3275
3318
  web.insert(_el$, displayCount);
3276
3319
  web.effect(() => web.className(_el$, style("notificationsTabsTriggerCount", "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm")));
3277
3320
  return _el$;
@@ -3296,7 +3339,7 @@ var InboxTab = (props) => {
3296
3339
  },
3297
3340
  get children() {
3298
3341
  return [(() => {
3299
- var _el$2 = _tmpl$50();
3342
+ var _el$2 = _tmpl$51();
3300
3343
  web.insert(_el$2, () => props.label);
3301
3344
  web.effect(() => web.className(_el$2, style("notificationsTabsTriggerLabel", "nt-text-sm nt-font-medium")));
3302
3345
  return _el$2;
@@ -3331,7 +3374,7 @@ var InboxDropdownTab = (props) => {
3331
3374
  },
3332
3375
  get children() {
3333
3376
  return [(() => {
3334
- var _el$3 = _tmpl$50();
3377
+ var _el$3 = _tmpl$51();
3335
3378
  web.insert(_el$3, () => props.label);
3336
3379
  web.effect(() => web.className(_el$3, style("moreTabs__dropdownItemLabel", "nt-mr-auto")));
3337
3380
  return _el$3;
@@ -3402,7 +3445,7 @@ var InboxTabs = (props) => {
3402
3445
  tags: tab.value
3403
3446
  }))
3404
3447
  });
3405
- const options = solidJs.createMemo(() => dropdownTabs().map((tab) => chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, tab), {
3448
+ const options = solidJs.createMemo(() => dropdownTabs().map((tab) => chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, tab), {
3406
3449
  rightIcon: tab.label === activeTab() ? web.createComponent(Check, {
3407
3450
  get ["class"]() {
3408
3451
  return style("moreTabs__dropdownItemRight__icon");
@@ -3506,8 +3549,20 @@ var InboxTabs = (props) => {
3506
3549
  },
3507
3550
  get children() {
3508
3551
  return web.createComponent(NotificationList, {
3552
+ get renderNotification() {
3553
+ return props.renderNotification;
3554
+ },
3555
+ get onNotificationClick() {
3556
+ return props.onNotificationClick;
3557
+ },
3558
+ get onPrimaryActionClick() {
3559
+ return props.onPrimaryActionClick;
3560
+ },
3561
+ get onSecondaryActionClick() {
3562
+ return props.onSecondaryActionClick;
3563
+ },
3509
3564
  get filter() {
3510
- return chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, filter()), {
3565
+ return chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, filter()), {
3511
3566
  tags: tab.value
3512
3567
  });
3513
3568
  }
@@ -3519,7 +3574,7 @@ var InboxTabs = (props) => {
3519
3574
  };
3520
3575
 
3521
3576
  // src/ui/components/Inbox.tsx
3522
- var _tmpl$51 = /* @__PURE__ */ web.template(`<div>`);
3577
+ var _tmpl$52 = /* @__PURE__ */ web.template(`<div>`);
3523
3578
  var InboxPage = /* @__PURE__ */ function(InboxPage2) {
3524
3579
  InboxPage2["Notifications"] = "notifications";
3525
3580
  InboxPage2["Preferences"] = "preferences";
@@ -3541,7 +3596,7 @@ var InboxContent = (props) => {
3541
3596
  };
3542
3597
  });
3543
3598
  return (() => {
3544
- var _el$ = _tmpl$51();
3599
+ var _el$ = _tmpl$52();
3545
3600
  web.insert(_el$, web.createComponent(solidJs.Switch, {
3546
3601
  get children() {
3547
3602
  return [web.createComponent(solidJs.Match, {
@@ -3560,8 +3615,8 @@ var InboxContent = (props) => {
3560
3615
  },
3561
3616
  get fallback() {
3562
3617
  return web.createComponent(NotificationList, {
3563
- get mountNotification() {
3564
- return props.mountNotification;
3618
+ get renderNotification() {
3619
+ return props.renderNotification;
3565
3620
  },
3566
3621
  get onNotificationClick() {
3567
3622
  return props.onNotificationClick;
@@ -3579,6 +3634,18 @@ var InboxContent = (props) => {
3579
3634
  },
3580
3635
  get children() {
3581
3636
  return web.createComponent(InboxTabs, {
3637
+ get renderNotification() {
3638
+ return props.renderNotification;
3639
+ },
3640
+ get onNotificationClick() {
3641
+ return props.onNotificationClick;
3642
+ },
3643
+ get onPrimaryActionClick() {
3644
+ return props.onPrimaryActionClick;
3645
+ },
3646
+ get onSecondaryActionClick() {
3647
+ return props.onSecondaryActionClick;
3648
+ },
3582
3649
  get tabs() {
3583
3650
  return tabs();
3584
3651
  }
@@ -3622,8 +3689,8 @@ var Inbox2 = (props) => {
3622
3689
  }, triggerProps, {
3623
3690
  get children() {
3624
3691
  return web.createComponent(Bell, {
3625
- get mountBell() {
3626
- return props.mountBell;
3692
+ get renderBell() {
3693
+ return props.renderBell;
3627
3694
  }
3628
3695
  });
3629
3696
  }
@@ -3632,8 +3699,8 @@ var Inbox2 = (props) => {
3632
3699
  appearanceKey: "inbox__popoverContent",
3633
3700
  get children() {
3634
3701
  return web.createComponent(InboxContent, {
3635
- get mountNotification() {
3636
- return props.mountNotification;
3702
+ get renderNotification() {
3703
+ return props.renderNotification;
3637
3704
  },
3638
3705
  get onNotificationClick() {
3639
3706
  return props.onNotificationClick;
@@ -3755,24 +3822,24 @@ var Renderer = (props) => {
3755
3822
  }
3756
3823
  });
3757
3824
  };
3758
- var version = "2.0.0-canary.1";
3825
+ var version = "2.0.0-canary.2";
3759
3826
  var cssHref = `https://cdn.jsdelivr.net/npm/@novu/js@${version}/dist/index.css`;
3760
3827
  var _dispose, _rootElement, _mountedElements, _setMountedElements, _appearance, _setAppearance, _localization, _setLocalization, _options, _setOptions, _tabs, _setTabs, _NovuUI_instances, mountComponentRenderer_fn, updateComponentProps_fn;
3761
3828
  var NovuUI = class {
3762
3829
  constructor(props) {
3763
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _NovuUI_instances);
3764
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _dispose, null);
3765
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _rootElement);
3766
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _mountedElements);
3767
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _setMountedElements);
3768
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _appearance);
3769
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _setAppearance);
3770
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _localization);
3771
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _setLocalization);
3772
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _options);
3773
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _setOptions);
3774
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _tabs);
3775
- chunk2C4L4ZUQ_cjs.__privateAdd(this, _setTabs);
3830
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _NovuUI_instances);
3831
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _dispose, null);
3832
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _rootElement);
3833
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _mountedElements);
3834
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _setMountedElements);
3835
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _appearance);
3836
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _setAppearance);
3837
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _localization);
3838
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _setLocalization);
3839
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _options);
3840
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _setOptions);
3841
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _tabs);
3842
+ chunkNEEKTCEQ_cjs.__privateAdd(this, _setTabs);
3776
3843
  var _a;
3777
3844
  this.id = generateRandomString(16);
3778
3845
  const [appearance, setAppearance] = solidJs.createSignal(props.appearance);
@@ -3780,27 +3847,27 @@ var NovuUI = class {
3780
3847
  const [options, setOptions] = solidJs.createSignal(props.options);
3781
3848
  const [mountedElements, setMountedElements] = solidJs.createSignal(/* @__PURE__ */ new Map());
3782
3849
  const [tabs, setTabs] = solidJs.createSignal((_a = props.tabs) != null ? _a : []);
3783
- chunk2C4L4ZUQ_cjs.__privateSet(this, _mountedElements, mountedElements);
3784
- chunk2C4L4ZUQ_cjs.__privateSet(this, _setMountedElements, setMountedElements);
3785
- chunk2C4L4ZUQ_cjs.__privateSet(this, _appearance, appearance);
3786
- chunk2C4L4ZUQ_cjs.__privateSet(this, _setAppearance, setAppearance);
3787
- chunk2C4L4ZUQ_cjs.__privateSet(this, _localization, localization);
3788
- chunk2C4L4ZUQ_cjs.__privateSet(this, _setLocalization, setLocalization);
3789
- chunk2C4L4ZUQ_cjs.__privateSet(this, _options, options);
3790
- chunk2C4L4ZUQ_cjs.__privateSet(this, _setOptions, setOptions);
3791
- chunk2C4L4ZUQ_cjs.__privateSet(this, _tabs, tabs);
3792
- chunk2C4L4ZUQ_cjs.__privateSet(this, _setTabs, setTabs);
3793
- chunk2C4L4ZUQ_cjs.__privateMethod(this, _NovuUI_instances, mountComponentRenderer_fn).call(this);
3850
+ chunkNEEKTCEQ_cjs.__privateSet(this, _mountedElements, mountedElements);
3851
+ chunkNEEKTCEQ_cjs.__privateSet(this, _setMountedElements, setMountedElements);
3852
+ chunkNEEKTCEQ_cjs.__privateSet(this, _appearance, appearance);
3853
+ chunkNEEKTCEQ_cjs.__privateSet(this, _setAppearance, setAppearance);
3854
+ chunkNEEKTCEQ_cjs.__privateSet(this, _localization, localization);
3855
+ chunkNEEKTCEQ_cjs.__privateSet(this, _setLocalization, setLocalization);
3856
+ chunkNEEKTCEQ_cjs.__privateSet(this, _options, options);
3857
+ chunkNEEKTCEQ_cjs.__privateSet(this, _setOptions, setOptions);
3858
+ chunkNEEKTCEQ_cjs.__privateSet(this, _tabs, tabs);
3859
+ chunkNEEKTCEQ_cjs.__privateSet(this, _setTabs, setTabs);
3860
+ chunkNEEKTCEQ_cjs.__privateMethod(this, _NovuUI_instances, mountComponentRenderer_fn).call(this);
3794
3861
  }
3795
3862
  mountComponent({
3796
3863
  name,
3797
3864
  element,
3798
3865
  props: componentProps
3799
3866
  }) {
3800
- if (chunk2C4L4ZUQ_cjs.__privateGet(this, _mountedElements).call(this).has(element)) {
3801
- return chunk2C4L4ZUQ_cjs.__privateMethod(this, _NovuUI_instances, updateComponentProps_fn).call(this, element, componentProps);
3867
+ if (chunkNEEKTCEQ_cjs.__privateGet(this, _mountedElements).call(this).has(element)) {
3868
+ return chunkNEEKTCEQ_cjs.__privateMethod(this, _NovuUI_instances, updateComponentProps_fn).call(this, element, componentProps);
3802
3869
  }
3803
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setMountedElements).call(this, (oldNodes) => {
3870
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setMountedElements).call(this, (oldNodes) => {
3804
3871
  const newNodes = new Map(oldNodes);
3805
3872
  newNodes.set(element, {
3806
3873
  name,
@@ -3810,29 +3877,29 @@ var NovuUI = class {
3810
3877
  });
3811
3878
  }
3812
3879
  unmountComponent(element) {
3813
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setMountedElements).call(this, (oldMountedElements) => {
3880
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setMountedElements).call(this, (oldMountedElements) => {
3814
3881
  const newMountedElements = new Map(oldMountedElements);
3815
3882
  newMountedElements.delete(element);
3816
3883
  return newMountedElements;
3817
3884
  });
3818
3885
  }
3819
3886
  updateAppearance(appearance) {
3820
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setAppearance).call(this, appearance);
3887
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setAppearance).call(this, appearance);
3821
3888
  }
3822
3889
  updateLocalization(localization) {
3823
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setLocalization).call(this, localization);
3890
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setLocalization).call(this, localization);
3824
3891
  }
3825
3892
  updateOptions(options) {
3826
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setOptions).call(this, options);
3893
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setOptions).call(this, options);
3827
3894
  }
3828
3895
  updateTabs(tabs) {
3829
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setTabs).call(this, tabs != null ? tabs : []);
3896
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setTabs).call(this, tabs != null ? tabs : []);
3830
3897
  }
3831
3898
  unmount() {
3832
3899
  var _a, _b;
3833
- (_a = chunk2C4L4ZUQ_cjs.__privateGet(this, _dispose)) == null ? void 0 : _a.call(this);
3834
- chunk2C4L4ZUQ_cjs.__privateSet(this, _dispose, null);
3835
- (_b = chunk2C4L4ZUQ_cjs.__privateGet(this, _rootElement)) == null ? void 0 : _b.remove();
3900
+ (_a = chunkNEEKTCEQ_cjs.__privateGet(this, _dispose)) == null ? void 0 : _a.call(this);
3901
+ chunkNEEKTCEQ_cjs.__privateSet(this, _dispose, null);
3902
+ (_b = chunkNEEKTCEQ_cjs.__privateGet(this, _rootElement)) == null ? void 0 : _b.remove();
3836
3903
  }
3837
3904
  };
3838
3905
  _dispose = new WeakMap();
@@ -3849,12 +3916,12 @@ _tabs = new WeakMap();
3849
3916
  _setTabs = new WeakMap();
3850
3917
  _NovuUI_instances = new WeakSet();
3851
3918
  mountComponentRenderer_fn = function() {
3852
- if (chunk2C4L4ZUQ_cjs.__privateGet(this, _dispose) !== null) {
3919
+ if (chunkNEEKTCEQ_cjs.__privateGet(this, _dispose) !== null) {
3853
3920
  return;
3854
3921
  }
3855
- chunk2C4L4ZUQ_cjs.__privateSet(this, _rootElement, document.createElement("div"));
3856
- chunk2C4L4ZUQ_cjs.__privateGet(this, _rootElement).setAttribute("id", `novu-ui-${this.id}`);
3857
- document.body.appendChild(chunk2C4L4ZUQ_cjs.__privateGet(this, _rootElement));
3922
+ chunkNEEKTCEQ_cjs.__privateSet(this, _rootElement, document.createElement("div"));
3923
+ chunkNEEKTCEQ_cjs.__privateGet(this, _rootElement).setAttribute("id", `novu-ui-${this.id}`);
3924
+ document.body.appendChild(chunkNEEKTCEQ_cjs.__privateGet(this, _rootElement));
3858
3925
  const dispose = web.render(() => {
3859
3926
  const _self$ = this;
3860
3927
  return web.createComponent(Renderer, {
@@ -3862,34 +3929,34 @@ mountComponentRenderer_fn = function() {
3862
3929
  novuUI: _self$,
3863
3930
  get nodes() {
3864
3931
  var _a;
3865
- return chunk2C4L4ZUQ_cjs.__privateGet(_a = _self$, _mountedElements).call(_a);
3932
+ return chunkNEEKTCEQ_cjs.__privateGet(_a = _self$, _mountedElements).call(_a);
3866
3933
  },
3867
3934
  get options() {
3868
3935
  var _a;
3869
- return chunk2C4L4ZUQ_cjs.__privateGet(_a = _self$, _options).call(_a);
3936
+ return chunkNEEKTCEQ_cjs.__privateGet(_a = _self$, _options).call(_a);
3870
3937
  },
3871
3938
  get appearance() {
3872
3939
  var _a;
3873
- return chunk2C4L4ZUQ_cjs.__privateGet(_a = _self$, _appearance).call(_a);
3940
+ return chunkNEEKTCEQ_cjs.__privateGet(_a = _self$, _appearance).call(_a);
3874
3941
  },
3875
3942
  get localization() {
3876
3943
  var _a;
3877
- return chunk2C4L4ZUQ_cjs.__privateGet(_a = _self$, _localization).call(_a);
3944
+ return chunkNEEKTCEQ_cjs.__privateGet(_a = _self$, _localization).call(_a);
3878
3945
  },
3879
3946
  get tabs() {
3880
3947
  var _a;
3881
- return chunk2C4L4ZUQ_cjs.__privateGet(_a = _self$, _tabs).call(_a);
3948
+ return chunkNEEKTCEQ_cjs.__privateGet(_a = _self$, _tabs).call(_a);
3882
3949
  }
3883
3950
  });
3884
- }, chunk2C4L4ZUQ_cjs.__privateGet(this, _rootElement));
3885
- chunk2C4L4ZUQ_cjs.__privateSet(this, _dispose, dispose);
3951
+ }, chunkNEEKTCEQ_cjs.__privateGet(this, _rootElement));
3952
+ chunkNEEKTCEQ_cjs.__privateSet(this, _dispose, dispose);
3886
3953
  };
3887
3954
  updateComponentProps_fn = function(element, props) {
3888
- chunk2C4L4ZUQ_cjs.__privateGet(this, _setMountedElements).call(this, (oldMountedElements) => {
3955
+ chunkNEEKTCEQ_cjs.__privateGet(this, _setMountedElements).call(this, (oldMountedElements) => {
3889
3956
  const newMountedElements = new Map(oldMountedElements);
3890
3957
  const mountedElement = newMountedElements.get(element);
3891
3958
  if (mountedElement) {
3892
- newMountedElements.set(element, chunk2C4L4ZUQ_cjs.__spreadProps(chunk2C4L4ZUQ_cjs.__spreadValues({}, mountedElement), {
3959
+ newMountedElements.set(element, chunkNEEKTCEQ_cjs.__spreadProps(chunkNEEKTCEQ_cjs.__spreadValues({}, mountedElement), {
3893
3960
  props
3894
3961
  }));
3895
3962
  }