@novu/react 3.19.2-rc.dc9caee828 → 3.20.0-rc.569d407fd0

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 (250) hide show
  1. package/dist/cjs/components/Bell.cjs +6 -21
  2. package/dist/cjs/components/Bell.cjs.map +1 -1
  3. package/dist/cjs/components/Bell.d.cts +2 -3
  4. package/dist/cjs/components/Inbox.cjs +100 -138
  5. package/dist/cjs/components/Inbox.cjs.map +1 -1
  6. package/dist/cjs/components/InboxContent.cjs +9 -65
  7. package/dist/cjs/components/InboxContent.cjs.map +1 -1
  8. package/dist/cjs/components/InboxContent.d.cts +2 -3
  9. package/dist/cjs/components/Mounter.cjs +20 -13
  10. package/dist/cjs/components/Mounter.cjs.map +1 -1
  11. package/dist/cjs/components/Mounter.d.cts +12 -4
  12. package/dist/cjs/components/Notifications.cjs +9 -59
  13. package/dist/cjs/components/Notifications.cjs.map +1 -1
  14. package/dist/cjs/components/Notifications.d.cts +2 -3
  15. package/dist/cjs/components/NovuUI.cjs +17 -6
  16. package/dist/cjs/components/NovuUI.cjs.map +1 -1
  17. package/dist/cjs/components/NovuUI.d.cts +4 -0
  18. package/dist/cjs/{context/RendererContext.cjs → components/OutletHost.cjs} +15 -15
  19. package/dist/cjs/components/OutletHost.cjs.map +1 -0
  20. package/dist/cjs/components/OutletHost.d.cts +14 -0
  21. package/dist/cjs/components/Preferences.cjs +1 -20
  22. package/dist/cjs/components/Preferences.cjs.map +1 -1
  23. package/dist/cjs/components/connect-chat/ConnectChat.cjs +2 -3
  24. package/dist/cjs/components/connect-chat/ConnectChat.cjs.map +1 -1
  25. package/dist/cjs/components/connect-chat/DefaultConnectChat.cjs +14 -23
  26. package/dist/cjs/components/connect-chat/DefaultConnectChat.cjs.map +1 -1
  27. package/dist/cjs/components/index.cjs +2 -0
  28. package/dist/cjs/components/index.cjs.map +1 -1
  29. package/dist/cjs/components/index.d.cts +6 -0
  30. package/dist/cjs/components/msteams-connect-button/DefaultMsTeamsConnectButton.cjs +17 -26
  31. package/dist/cjs/components/msteams-connect-button/DefaultMsTeamsConnectButton.cjs.map +1 -1
  32. package/dist/cjs/components/msteams-connect-button/MsTeamsConnectButton.cjs +2 -3
  33. package/dist/cjs/components/msteams-connect-button/MsTeamsConnectButton.cjs.map +1 -1
  34. package/dist/cjs/components/msteams-link-user/DefaultMsTeamsLinkUser.cjs +13 -22
  35. package/dist/cjs/components/msteams-link-user/DefaultMsTeamsLinkUser.cjs.map +1 -1
  36. package/dist/cjs/components/msteams-link-user/MsTeamsLinkUser.cjs +2 -3
  37. package/dist/cjs/components/msteams-link-user/MsTeamsLinkUser.cjs.map +1 -1
  38. package/dist/cjs/components/notification-item/ClockIcon.cjs +43 -0
  39. package/dist/cjs/components/notification-item/ClockIcon.cjs.map +1 -0
  40. package/dist/cjs/components/notification-item/ClockIcon.d.cts +7 -0
  41. package/dist/cjs/components/notification-item/Markdown.cjs +53 -0
  42. package/dist/cjs/components/notification-item/Markdown.cjs.map +1 -0
  43. package/dist/cjs/components/notification-item/Markdown.d.cts +12 -0
  44. package/dist/cjs/components/notification-item/NotificationItem.cjs +146 -0
  45. package/dist/cjs/components/notification-item/NotificationItem.cjs.map +1 -0
  46. package/dist/cjs/components/notification-item/NotificationItem.d.cts +40 -0
  47. package/dist/cjs/components/notification-item/context.cjs +49 -0
  48. package/dist/cjs/components/notification-item/context.cjs.map +1 -0
  49. package/dist/cjs/components/notification-item/context.d.cts +23 -0
  50. package/dist/cjs/components/notification-item/parts/Actions.cjs +56 -0
  51. package/dist/cjs/components/notification-item/parts/Actions.cjs.map +1 -0
  52. package/dist/cjs/components/notification-item/parts/Actions.d.cts +11 -0
  53. package/dist/cjs/components/notification-item/parts/Avatar.cjs +65 -0
  54. package/dist/cjs/components/notification-item/parts/Avatar.cjs.map +1 -0
  55. package/dist/cjs/components/notification-item/parts/Avatar.d.cts +8 -0
  56. package/dist/cjs/components/notification-item/parts/Content.cjs +66 -0
  57. package/dist/cjs/components/notification-item/parts/Content.cjs.map +1 -0
  58. package/dist/cjs/components/notification-item/parts/Content.d.cts +17 -0
  59. package/dist/cjs/components/notification-item/parts/Date.cjs +114 -0
  60. package/dist/cjs/components/notification-item/parts/Date.cjs.map +1 -0
  61. package/dist/cjs/components/notification-item/parts/Date.d.cts +11 -0
  62. package/dist/cjs/components/notification-item/parts/Dot.cjs +48 -0
  63. package/dist/cjs/components/notification-item/parts/Dot.cjs.map +1 -0
  64. package/dist/cjs/components/notification-item/parts/Dot.d.cts +9 -0
  65. package/dist/cjs/components/notification-item/parts/Subject.cjs +92 -0
  66. package/dist/cjs/components/notification-item/parts/Subject.cjs.map +1 -0
  67. package/dist/cjs/components/notification-item/parts/Subject.d.cts +15 -0
  68. package/dist/cjs/components/slack-connect-button/DefaultSlackConnectButton.cjs +18 -27
  69. package/dist/cjs/components/slack-connect-button/DefaultSlackConnectButton.cjs.map +1 -1
  70. package/dist/cjs/components/slack-connect-button/SlackConnectButton.cjs +2 -3
  71. package/dist/cjs/components/slack-connect-button/SlackConnectButton.cjs.map +1 -1
  72. package/dist/cjs/components/slack-link-user/DefaultSlackLinkUser.cjs +13 -22
  73. package/dist/cjs/components/slack-link-user/DefaultSlackLinkUser.cjs.map +1 -1
  74. package/dist/cjs/components/slack-link-user/SlackLinkUser.cjs +2 -3
  75. package/dist/cjs/components/slack-link-user/SlackLinkUser.cjs.map +1 -1
  76. package/dist/cjs/components/subscription/DefaultSubscription.cjs +14 -22
  77. package/dist/cjs/components/subscription/DefaultSubscription.cjs.map +1 -1
  78. package/dist/cjs/components/subscription/Subscription.cjs +2 -3
  79. package/dist/cjs/components/subscription/Subscription.cjs.map +1 -1
  80. package/dist/cjs/components/subscription/SubscriptionButton.cjs +9 -26
  81. package/dist/cjs/components/subscription/SubscriptionButton.cjs.map +1 -1
  82. package/dist/cjs/components/subscription/SubscriptionButton.d.cts +1 -1
  83. package/dist/cjs/components/subscription/SubscriptionPreferences.cjs +9 -26
  84. package/dist/cjs/components/subscription/SubscriptionPreferences.cjs.map +1 -1
  85. package/dist/cjs/components/subscription/SubscriptionPreferences.d.cts +1 -1
  86. package/dist/cjs/components/telegram-connect-button/DefaultTelegramConnectButton.cjs +14 -23
  87. package/dist/cjs/components/telegram-connect-button/DefaultTelegramConnectButton.cjs.map +1 -1
  88. package/dist/cjs/components/telegram-connect-button/TelegramConnectButton.cjs +2 -3
  89. package/dist/cjs/components/telegram-connect-button/TelegramConnectButton.cjs.map +1 -1
  90. package/dist/cjs/context/NovuUIContext.cjs +3 -0
  91. package/dist/cjs/context/NovuUIContext.cjs.map +1 -1
  92. package/dist/cjs/context/NovuUIContext.d.cts +8 -1
  93. package/dist/cjs/context/OutletStore.cjs +97 -0
  94. package/dist/cjs/context/OutletStore.cjs.map +1 -0
  95. package/dist/cjs/context/OutletStore.d.cts +31 -0
  96. package/dist/cjs/hooks/internal/useEngineAccessor.cjs +36 -0
  97. package/dist/cjs/hooks/internal/useEngineAccessor.cjs.map +1 -0
  98. package/dist/cjs/hooks/internal/useEngineAccessor.d.cts +4 -0
  99. package/dist/cjs/hooks/internal/useEngineStores.cjs +54 -0
  100. package/dist/cjs/hooks/internal/useEngineStores.cjs.map +1 -0
  101. package/dist/cjs/hooks/internal/useEngineStores.d.cts +13 -0
  102. package/dist/cjs/hooks/internal/useIsomorphicLayoutEffect.cjs +32 -0
  103. package/dist/cjs/hooks/internal/useIsomorphicLayoutEffect.cjs.map +1 -0
  104. package/dist/cjs/hooks/internal/useIsomorphicLayoutEffect.d.cts +5 -0
  105. package/dist/cjs/hooks/internal/useNotificationOutlets.cjs +57 -0
  106. package/dist/cjs/hooks/internal/useNotificationOutlets.cjs.map +1 -0
  107. package/dist/cjs/hooks/internal/useNotificationOutlets.d.cts +33 -0
  108. package/dist/cjs/hooks/internal/useOutletRenderer.cjs +53 -0
  109. package/dist/cjs/hooks/internal/useOutletRenderer.cjs.map +1 -0
  110. package/dist/cjs/hooks/internal/useOutletRenderer.d.cts +14 -0
  111. package/dist/cjs/index.cjs +2 -0
  112. package/dist/cjs/index.cjs.map +1 -1
  113. package/dist/cjs/index.d.cts +6 -0
  114. package/dist/cjs/server/index.cjs +14 -0
  115. package/dist/cjs/server/index.cjs.map +1 -1
  116. package/dist/cjs/server/index.d.cts +15 -1
  117. package/dist/cjs/utils/appearance.cjs +2 -2
  118. package/dist/cjs/utils/appearance.cjs.map +1 -1
  119. package/dist/cjs/utils/appearance.d.cts +2 -3
  120. package/dist/esm/components/Bell.d.ts +2 -3
  121. package/dist/esm/components/Bell.js +7 -22
  122. package/dist/esm/components/Bell.js.map +1 -1
  123. package/dist/esm/components/Inbox.js +100 -138
  124. package/dist/esm/components/Inbox.js.map +1 -1
  125. package/dist/esm/components/InboxContent.d.ts +2 -3
  126. package/dist/esm/components/InboxContent.js +10 -66
  127. package/dist/esm/components/InboxContent.js.map +1 -1
  128. package/dist/esm/components/Mounter.d.ts +12 -4
  129. package/dist/esm/components/Mounter.js +19 -14
  130. package/dist/esm/components/Mounter.js.map +1 -1
  131. package/dist/esm/components/Notifications.d.ts +2 -3
  132. package/dist/esm/components/Notifications.js +10 -60
  133. package/dist/esm/components/Notifications.js.map +1 -1
  134. package/dist/esm/components/NovuUI.d.ts +4 -0
  135. package/dist/esm/components/NovuUI.js +16 -6
  136. package/dist/esm/components/NovuUI.js.map +1 -1
  137. package/dist/esm/components/OutletHost.d.ts +14 -0
  138. package/dist/esm/components/OutletHost.js +15 -0
  139. package/dist/esm/components/OutletHost.js.map +1 -0
  140. package/dist/esm/components/Preferences.js +1 -10
  141. package/dist/esm/components/Preferences.js.map +1 -1
  142. package/dist/esm/components/connect-chat/ConnectChat.js +2 -3
  143. package/dist/esm/components/connect-chat/ConnectChat.js.map +1 -1
  144. package/dist/esm/components/connect-chat/DefaultConnectChat.js +15 -24
  145. package/dist/esm/components/connect-chat/DefaultConnectChat.js.map +1 -1
  146. package/dist/esm/components/index.d.ts +6 -0
  147. package/dist/esm/components/index.js +1 -0
  148. package/dist/esm/components/index.js.map +1 -1
  149. package/dist/esm/components/msteams-connect-button/DefaultMsTeamsConnectButton.js +18 -27
  150. package/dist/esm/components/msteams-connect-button/DefaultMsTeamsConnectButton.js.map +1 -1
  151. package/dist/esm/components/msteams-connect-button/MsTeamsConnectButton.js +2 -3
  152. package/dist/esm/components/msteams-connect-button/MsTeamsConnectButton.js.map +1 -1
  153. package/dist/esm/components/msteams-link-user/DefaultMsTeamsLinkUser.js +14 -23
  154. package/dist/esm/components/msteams-link-user/DefaultMsTeamsLinkUser.js.map +1 -1
  155. package/dist/esm/components/msteams-link-user/MsTeamsLinkUser.js +2 -3
  156. package/dist/esm/components/msteams-link-user/MsTeamsLinkUser.js.map +1 -1
  157. package/dist/esm/components/notification-item/ClockIcon.d.ts +7 -0
  158. package/dist/esm/components/notification-item/ClockIcon.js +18 -0
  159. package/dist/esm/components/notification-item/ClockIcon.js.map +1 -0
  160. package/dist/esm/components/notification-item/Markdown.d.ts +12 -0
  161. package/dist/esm/components/notification-item/Markdown.js +28 -0
  162. package/dist/esm/components/notification-item/Markdown.js.map +1 -0
  163. package/dist/esm/components/notification-item/NotificationItem.d.ts +40 -0
  164. package/dist/esm/components/notification-item/NotificationItem.js +131 -0
  165. package/dist/esm/components/notification-item/NotificationItem.js.map +1 -0
  166. package/dist/esm/components/notification-item/context.d.ts +23 -0
  167. package/dist/esm/components/notification-item/context.js +21 -0
  168. package/dist/esm/components/notification-item/context.js.map +1 -0
  169. package/dist/esm/components/notification-item/parts/Actions.d.ts +11 -0
  170. package/dist/esm/components/notification-item/parts/Actions.js +30 -0
  171. package/dist/esm/components/notification-item/parts/Actions.js.map +1 -0
  172. package/dist/esm/components/notification-item/parts/Avatar.d.ts +8 -0
  173. package/dist/esm/components/notification-item/parts/Avatar.js +40 -0
  174. package/dist/esm/components/notification-item/parts/Avatar.js.map +1 -0
  175. package/dist/esm/components/notification-item/parts/Content.d.ts +17 -0
  176. package/dist/esm/components/notification-item/parts/Content.js +40 -0
  177. package/dist/esm/components/notification-item/parts/Content.js.map +1 -0
  178. package/dist/esm/components/notification-item/parts/Date.d.ts +11 -0
  179. package/dist/esm/components/notification-item/parts/Date.js +89 -0
  180. package/dist/esm/components/notification-item/parts/Date.js.map +1 -0
  181. package/dist/esm/components/notification-item/parts/Dot.d.ts +9 -0
  182. package/dist/esm/components/notification-item/parts/Dot.js +23 -0
  183. package/dist/esm/components/notification-item/parts/Dot.js.map +1 -0
  184. package/dist/esm/components/notification-item/parts/Subject.d.ts +15 -0
  185. package/dist/esm/components/notification-item/parts/Subject.js +66 -0
  186. package/dist/esm/components/notification-item/parts/Subject.js.map +1 -0
  187. package/dist/esm/components/slack-connect-button/DefaultSlackConnectButton.js +19 -28
  188. package/dist/esm/components/slack-connect-button/DefaultSlackConnectButton.js.map +1 -1
  189. package/dist/esm/components/slack-connect-button/SlackConnectButton.js +2 -3
  190. package/dist/esm/components/slack-connect-button/SlackConnectButton.js.map +1 -1
  191. package/dist/esm/components/slack-link-user/DefaultSlackLinkUser.js +14 -23
  192. package/dist/esm/components/slack-link-user/DefaultSlackLinkUser.js.map +1 -1
  193. package/dist/esm/components/slack-link-user/SlackLinkUser.js +2 -3
  194. package/dist/esm/components/slack-link-user/SlackLinkUser.js.map +1 -1
  195. package/dist/esm/components/subscription/DefaultSubscription.js +15 -23
  196. package/dist/esm/components/subscription/DefaultSubscription.js.map +1 -1
  197. package/dist/esm/components/subscription/Subscription.js +2 -3
  198. package/dist/esm/components/subscription/Subscription.js.map +1 -1
  199. package/dist/esm/components/subscription/SubscriptionButton.d.ts +1 -1
  200. package/dist/esm/components/subscription/SubscriptionButton.js +10 -27
  201. package/dist/esm/components/subscription/SubscriptionButton.js.map +1 -1
  202. package/dist/esm/components/subscription/SubscriptionPreferences.d.ts +1 -1
  203. package/dist/esm/components/subscription/SubscriptionPreferences.js +10 -27
  204. package/dist/esm/components/subscription/SubscriptionPreferences.js.map +1 -1
  205. package/dist/esm/components/telegram-connect-button/DefaultTelegramConnectButton.js +15 -24
  206. package/dist/esm/components/telegram-connect-button/DefaultTelegramConnectButton.js.map +1 -1
  207. package/dist/esm/components/telegram-connect-button/TelegramConnectButton.js +2 -3
  208. package/dist/esm/components/telegram-connect-button/TelegramConnectButton.js.map +1 -1
  209. package/dist/esm/context/NovuUIContext.d.ts +8 -1
  210. package/dist/esm/context/NovuUIContext.js +2 -0
  211. package/dist/esm/context/NovuUIContext.js.map +1 -1
  212. package/dist/esm/context/OutletStore.d.ts +31 -0
  213. package/dist/esm/context/OutletStore.js +61 -0
  214. package/dist/esm/context/OutletStore.js.map +1 -0
  215. package/dist/esm/hooks/internal/useEngineAccessor.d.ts +4 -0
  216. package/dist/esm/hooks/internal/useEngineAccessor.js +11 -0
  217. package/dist/esm/hooks/internal/useEngineAccessor.js.map +1 -0
  218. package/dist/esm/hooks/internal/useEngineStores.d.ts +13 -0
  219. package/dist/esm/hooks/internal/useEngineStores.js +27 -0
  220. package/dist/esm/hooks/internal/useEngineStores.js.map +1 -0
  221. package/dist/esm/hooks/internal/useIsomorphicLayoutEffect.d.ts +5 -0
  222. package/dist/esm/hooks/internal/useIsomorphicLayoutEffect.js +7 -0
  223. package/dist/esm/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -0
  224. package/dist/esm/hooks/internal/useNotificationOutlets.d.ts +33 -0
  225. package/dist/esm/hooks/internal/useNotificationOutlets.js +32 -0
  226. package/dist/esm/hooks/internal/useNotificationOutlets.js.map +1 -0
  227. package/dist/esm/hooks/internal/useOutletRenderer.d.ts +14 -0
  228. package/dist/esm/hooks/internal/useOutletRenderer.js +25 -0
  229. package/dist/esm/hooks/internal/useOutletRenderer.js.map +1 -0
  230. package/dist/esm/index.d.ts +6 -0
  231. package/dist/esm/index.js +5 -3
  232. package/dist/esm/index.js.map +1 -1
  233. package/dist/esm/server/index.d.ts +15 -1
  234. package/dist/esm/server/index.js +14 -1
  235. package/dist/esm/server/index.js.map +1 -1
  236. package/dist/esm/utils/appearance.d.ts +2 -3
  237. package/dist/esm/utils/appearance.js +2 -2
  238. package/dist/esm/utils/appearance.js.map +1 -1
  239. package/package.json +11 -5
  240. package/dist/cjs/components/Renderer.cjs +0 -70
  241. package/dist/cjs/components/Renderer.cjs.map +0 -1
  242. package/dist/cjs/components/Renderer.d.cts +0 -8
  243. package/dist/cjs/context/RendererContext.cjs.map +0 -1
  244. package/dist/cjs/context/RendererContext.d.cts +0 -15
  245. package/dist/esm/components/Renderer.d.ts +0 -8
  246. package/dist/esm/components/Renderer.js +0 -44
  247. package/dist/esm/components/Renderer.js.map +0 -1
  248. package/dist/esm/context/RendererContext.d.ts +0 -15
  249. package/dist/esm/context/RendererContext.js +0 -13
  250. package/dist/esm/context/RendererContext.js.map +0 -1
@@ -34,69 +34,19 @@ __export(Notifications_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(Notifications_exports);
36
36
  var import_react = __toESM(require("react"), 1);
37
- var import_NovuUIContext = require("../context/NovuUIContext.cjs");
38
- var import_RendererContext = require("../context/RendererContext.cjs");
37
+ var import_useNotificationOutlets = require("../hooks/internal/useNotificationOutlets.cjs");
39
38
  var import_Mounter = require("./Mounter.cjs");
40
- var import_Renderer = require("./Renderer.cjs");
41
39
  var import_jsx_runtime = require("react/jsx-runtime");
42
- var _Notifications = import_react.default.memo((props) => {
43
- const {
44
- renderNotification,
45
- renderAvatar,
46
- renderSubject,
47
- renderBody,
48
- renderDefaultActions,
49
- renderCustomActions,
50
- onNotificationClick,
51
- onPrimaryActionClick,
52
- onSecondaryActionClick
53
- } = props;
54
- const { novuUI } = (0, import_NovuUIContext.useNovuUI)();
55
- const { mountElement } = (0, import_RendererContext.useRenderer)();
56
- const mount = import_react.default.useCallback(
57
- (element) => {
58
- if (renderNotification) {
59
- return novuUI.mountComponent({
60
- name: "Notifications",
61
- element,
62
- props: {
63
- renderNotification: renderNotification ? (el, notification) => mountElement(el, renderNotification(notification)) : void 0,
64
- onNotificationClick,
65
- onPrimaryActionClick,
66
- onSecondaryActionClick
67
- }
68
- });
69
- }
70
- return novuUI.mountComponent({
71
- name: "Notifications",
72
- element,
73
- props: {
74
- renderAvatar: renderAvatar ? (el, notification) => mountElement(el, renderAvatar(notification)) : void 0,
75
- renderSubject: renderSubject ? (el, notification) => mountElement(el, renderSubject(notification)) : void 0,
76
- renderBody: renderBody ? (el, notification) => mountElement(el, renderBody(notification)) : void 0,
77
- renderDefaultActions: renderDefaultActions ? (el, notification) => mountElement(el, renderDefaultActions(notification)) : void 0,
78
- renderCustomActions: renderCustomActions ? (el, notification) => mountElement(el, renderCustomActions(notification)) : void 0,
79
- onNotificationClick,
80
- onPrimaryActionClick,
81
- onSecondaryActionClick
82
- }
83
- });
84
- },
85
- [
86
- renderNotification,
87
- renderAvatar,
88
- renderSubject,
89
- renderBody,
90
- renderDefaultActions,
91
- renderCustomActions,
92
- onNotificationClick,
93
- onPrimaryActionClick,
94
- onSecondaryActionClick
95
- ]
40
+ var Notifications = import_react.default.memo((props) => {
41
+ const { onNotificationClick, onPrimaryActionClick, onSecondaryActionClick } = props;
42
+ const outlets = (0, import_useNotificationOutlets.useNotificationOutlets)(props);
43
+ const mountProps = (0, import_react.useMemo)(
44
+ () => ({ ...outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick }),
45
+ [outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick]
96
46
  );
97
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { mount });
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { name: "Notifications", props: mountProps });
98
48
  });
99
- var Notifications = (0, import_Renderer.withRenderer)(_Notifications);
49
+ Notifications.displayName = "Notifications";
100
50
  // Annotate the CommonJS export names for ESM import in node:
101
51
  0 && (module.exports = {
102
52
  Notifications
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Notifications.tsx"],"sourcesContent":["import type { NotificationActionClickHandler, NotificationClickHandler } from '@novu/js/ui';\nimport React from 'react';\nimport { useNovuUI } from '../context/NovuUIContext';\nimport { useRenderer } from '../context/RendererContext';\nimport { NoRendererProps, NotificationRendererProps, SubjectBodyRendererProps } from '../utils/types';\nimport { Mounter } from './Mounter';\nimport { withRenderer } from './Renderer';\n\nexport type NotificationProps = {\n onNotificationClick?: NotificationClickHandler;\n onPrimaryActionClick?: NotificationActionClickHandler;\n onSecondaryActionClick?: NotificationActionClickHandler;\n} & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);\n\nconst _Notifications = React.memo((props: NotificationProps) => {\n const {\n renderNotification,\n renderAvatar,\n renderSubject,\n renderBody,\n renderDefaultActions,\n renderCustomActions,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n } = props;\n const { novuUI } = useNovuUI();\n const { mountElement } = useRenderer();\n\n const mount = React.useCallback(\n (element: HTMLElement) => {\n if (renderNotification) {\n return novuUI.mountComponent({\n name: 'Notifications',\n element,\n props: {\n renderNotification: renderNotification\n ? (el, notification) => mountElement(el, renderNotification(notification))\n : undefined,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n },\n });\n }\n\n return novuUI.mountComponent({\n name: 'Notifications',\n element,\n props: {\n renderAvatar: renderAvatar ? (el, notification) => mountElement(el, renderAvatar(notification)) : undefined,\n renderSubject: renderSubject\n ? (el, notification) => mountElement(el, renderSubject(notification))\n : undefined,\n renderBody: renderBody ? (el, notification) => mountElement(el, renderBody(notification)) : undefined,\n renderDefaultActions: renderDefaultActions\n ? (el, notification) => mountElement(el, renderDefaultActions(notification))\n : undefined,\n renderCustomActions: renderCustomActions\n ? (el, notification) => mountElement(el, renderCustomActions(notification))\n : undefined,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n },\n });\n },\n [\n renderNotification,\n renderAvatar,\n renderSubject,\n renderBody,\n renderDefaultActions,\n renderCustomActions,\n onNotificationClick,\n onPrimaryActionClick,\n onSecondaryActionClick,\n ]\n );\n\n return <Mounter mount={mount} />;\n});\n\nexport const Notifications = withRenderer(_Notifications);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAkB;AAClB,2BAA0B;AAC1B,6BAA4B;AAE5B,qBAAwB;AACxB,sBAA6B;AA0EpB;AAlET,IAAM,iBAAiB,aAAAA,QAAM,KAAK,CAAC,UAA6B;AAC9D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,EAAE,OAAO,QAAI,gCAAU;AAC7B,QAAM,EAAE,aAAa,QAAI,oCAAY;AAErC,QAAM,QAAQ,aAAAA,QAAM;AAAA,IAClB,CAAC,YAAyB;AACxB,UAAI,oBAAoB;AACtB,eAAO,OAAO,eAAe;AAAA,UAC3B,MAAM;AAAA,UACN;AAAA,UACA,OAAO;AAAA,YACL,oBAAoB,qBAChB,CAAC,IAAI,iBAAiB,aAAa,IAAI,mBAAmB,YAAY,CAAC,IACvE;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAEA,aAAO,OAAO,eAAe;AAAA,QAC3B,MAAM;AAAA,QACN;AAAA,QACA,OAAO;AAAA,UACL,cAAc,eAAe,CAAC,IAAI,iBAAiB,aAAa,IAAI,aAAa,YAAY,CAAC,IAAI;AAAA,UAClG,eAAe,gBACX,CAAC,IAAI,iBAAiB,aAAa,IAAI,cAAc,YAAY,CAAC,IAClE;AAAA,UACJ,YAAY,aAAa,CAAC,IAAI,iBAAiB,aAAa,IAAI,WAAW,YAAY,CAAC,IAAI;AAAA,UAC5F,sBAAsB,uBAClB,CAAC,IAAI,iBAAiB,aAAa,IAAI,qBAAqB,YAAY,CAAC,IACzE;AAAA,UACJ,qBAAqB,sBACjB,CAAC,IAAI,iBAAiB,aAAa,IAAI,oBAAoB,YAAY,CAAC,IACxE;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,0BAAQ,OAAc;AAChC,CAAC;AAEM,IAAM,oBAAgB,8BAAa,cAAc;","names":["React"]}
1
+ {"version":3,"sources":["../../../src/components/Notifications.tsx"],"sourcesContent":["import type { NotificationActionClickHandler, NotificationClickHandler } from '@novu/js/ui';\nimport React, { useMemo } from 'react';\nimport { useNotificationOutlets } from '../hooks/internal/useNotificationOutlets';\nimport { NoRendererProps, NotificationRendererProps, SubjectBodyRendererProps } from '../utils/types';\nimport { Mounter } from './Mounter';\n\nexport type NotificationProps = {\n onNotificationClick?: NotificationClickHandler;\n onPrimaryActionClick?: NotificationActionClickHandler;\n onSecondaryActionClick?: NotificationActionClickHandler;\n} & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);\n\nexport const Notifications = React.memo((props: NotificationProps) => {\n const { onNotificationClick, onPrimaryActionClick, onSecondaryActionClick } = props;\n const outlets = useNotificationOutlets(props);\n\n const mountProps = useMemo(\n () => ({ ...outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick }),\n [outlets, onNotificationClick, onPrimaryActionClick, onSecondaryActionClick]\n );\n\n return <Mounter name=\"Notifications\" props={mountProps} />;\n});\n\nNotifications.displayName = 'Notifications';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA+B;AAC/B,oCAAuC;AAEvC,qBAAwB;AAiBf;AATF,IAAM,gBAAgB,aAAAA,QAAM,KAAK,CAAC,UAA6B;AACpE,QAAM,EAAE,qBAAqB,sBAAsB,uBAAuB,IAAI;AAC9E,QAAM,cAAU,sDAAuB,KAAK;AAE5C,QAAM,iBAAa;AAAA,IACjB,OAAO,EAAE,GAAG,SAAS,qBAAqB,sBAAsB,uBAAuB;AAAA,IACvF,CAAC,SAAS,qBAAqB,sBAAsB,sBAAsB;AAAA,EAC7E;AAEA,SAAO,4CAAC,0BAAQ,MAAK,iBAAgB,OAAO,YAAY;AAC1D,CAAC;AAED,cAAc,cAAc;","names":["React"]}
@@ -1,3 +1,4 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
1
2
  import { NotificationClickHandler, NotificationActionClickHandler } from '@novu/js/ui';
2
3
  import React__default from 'react';
3
4
  import { NotificationRendererProps, SubjectBodyRendererProps, NoRendererProps } from '../utils/types.cjs';
@@ -8,8 +9,6 @@ type NotificationProps = {
8
9
  onPrimaryActionClick?: NotificationActionClickHandler;
9
10
  onSecondaryActionClick?: NotificationActionClickHandler;
10
11
  } & (NotificationRendererProps | SubjectBodyRendererProps | NoRendererProps);
11
- declare const Notifications: React__default.ComponentType<NotificationProps & {
12
- children?: React__default.ReactNode | undefined;
13
- }>;
12
+ declare const Notifications: React__default.MemoExoticComponent<(props: NotificationProps) => react_jsx_runtime.JSX.Element>;
14
13
 
15
14
  export { type NotificationProps, Notifications };
@@ -26,9 +26,11 @@ module.exports = __toCommonJS(NovuUI_exports);
26
26
  var import_ui = require("@novu/js/ui");
27
27
  var import_react = require("react");
28
28
  var import_NovuUIContext = require("../context/NovuUIContext.cjs");
29
- var import_RendererContext = require("../context/RendererContext.cjs");
29
+ var import_OutletStore = require("../context/OutletStore.cjs");
30
30
  var import_useDataRef = require("../hooks/internal/useDataRef.cjs");
31
+ var import_useIsomorphicLayoutEffect = require("../hooks/internal/useIsomorphicLayoutEffect.cjs");
31
32
  var import_appearance = require("../utils/appearance.cjs");
33
+ var import_OutletHost = require("./OutletHost.cjs");
32
34
  var import_ShadowRootDetector = require("./ShadowRootDetector.cjs");
33
35
  var import_jsx_runtime = require("react/jsx-runtime");
34
36
  var findParentShadowRoot = (child) => {
@@ -51,11 +53,12 @@ var findParentShadowRoot = (child) => {
51
53
  return null;
52
54
  };
53
55
  var NovuUI = ({ options, novu, children }) => {
56
+ var _a;
54
57
  const shadowRootDetector = (0, import_react.useRef)(null);
55
- const { mountElement } = (0, import_RendererContext.useRenderer)();
58
+ const outlets = (0, import_react.useMemo)(() => new import_OutletStore.OutletStore(), []);
56
59
  const adaptedAppearanceForUpdate = (0, import_react.useMemo)(
57
- () => (0, import_appearance.adaptAppearanceForJs)(options.appearance || {}, mountElement),
58
- [options.appearance, mountElement]
60
+ () => (0, import_appearance.adaptAppearanceForJs)(options.appearance || {}, outlets),
61
+ [options.appearance, outlets]
59
62
  );
60
63
  const adaptedOptions = (0, import_react.useMemo)(() => {
61
64
  return {
@@ -66,7 +69,7 @@ var NovuUI = ({ options, novu, children }) => {
66
69
  }, [options, novu, adaptedAppearanceForUpdate]);
67
70
  const optionsRef = (0, import_useDataRef.useDataRef)(adaptedOptions);
68
71
  const [novuUI, setNovuUI] = (0, import_react.useState)();
69
- (0, import_react.useEffect)(() => {
72
+ (0, import_useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
70
73
  const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);
71
74
  const instance = new import_ui.NovuUI({
72
75
  ...optionsRef.current,
@@ -99,9 +102,17 @@ var NovuUI = ({ options, novu, children }) => {
99
102
  options.routerPush,
100
103
  novu
101
104
  ]);
105
+ const icons = (_a = options.appearance) == null ? void 0 : _a.icons;
106
+ const contextValue = (0, import_react.useMemo)(
107
+ () => novuUI ? { novuUI, outlets, icons: icons ?? {} } : void 0,
108
+ [novuUI, outlets, icons]
109
+ );
102
110
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
103
111
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ShadowRootDetector.ShadowRootDetector, { ref: shadowRootDetector }),
104
- novuUI && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NovuUIContext.NovuUIProvider, { value: { novuUI }, children })
112
+ contextValue && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_NovuUIContext.NovuUIProvider, { value: contextValue, children: [
113
+ children,
114
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_OutletHost.OutletHost, { store: outlets })
115
+ ] })
105
116
  ] });
106
117
  };
107
118
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NovuUI.tsx"],"sourcesContent":["import { Novu } from '@novu/js';\nimport type { NovuUIOptions as JsNovuUIOptions } from '@novu/js/ui';\nimport { NovuUI as NovuUIClass } from '@novu/js/ui';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { NovuUIProvider } from '../context/NovuUIContext';\nimport { useRenderer } from '../context/RendererContext';\nimport { useDataRef } from '../hooks/internal/useDataRef';\nimport { adaptAppearanceForJs } from '../utils/appearance';\nimport type { ReactAllAppearance, ReactInboxAppearance, ReactSubscriptionAppearance } from '../utils/types';\nimport { ShadowRootDetector } from './ShadowRootDetector';\n\nexport type NovuUIOptions = Omit<JsNovuUIOptions, 'appearance'> & {\n appearance?: ReactInboxAppearance | ReactSubscriptionAppearance | ReactAllAppearance;\n};\n\ntype NovuUIProps = React.PropsWithChildren<{\n options: NovuUIOptions;\n novu: Novu;\n}>;\n\nconst findParentShadowRoot = (child?: HTMLDivElement | null): Node | null => {\n if (!child) {\n return null;\n }\n\n let node: Node | null = child;\n\n while (node) {\n if (node instanceof Element && node.shadowRoot) {\n return node.shadowRoot;\n }\n\n if (node instanceof ShadowRoot) {\n return node;\n }\n\n node = node.parentNode;\n\n if (!node || node === document) {\n break;\n }\n }\n\n return null;\n};\n\nexport const NovuUI = ({ options, novu, children }: NovuUIProps) => {\n const shadowRootDetector = useRef<HTMLDivElement>(null);\n const { mountElement } = useRenderer();\n\n const adaptedAppearanceForUpdate = useMemo(\n () => adaptAppearanceForJs(options.appearance || {}, mountElement),\n [options.appearance, mountElement]\n );\n\n const adaptedOptions = useMemo(() => {\n return {\n ...options,\n appearance: adaptedAppearanceForUpdate,\n novu,\n };\n }, [options, novu, adaptedAppearanceForUpdate]);\n\n const optionsRef = useDataRef(adaptedOptions);\n const [novuUI, setNovuUI] = useState<NovuUIClass | undefined>();\n\n useEffect(() => {\n const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);\n const instance = new NovuUIClass({\n ...optionsRef.current,\n container: optionsRef.current.container ?? parentShadowRoot,\n });\n setNovuUI(instance);\n\n return () => {\n instance.unmount();\n };\n }, []);\n\n useEffect(() => {\n if (!novuUI) {\n return;\n }\n\n const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);\n novuUI.updateContainer(options.container ?? parentShadowRoot);\n novuUI.updateAppearance(adaptedAppearanceForUpdate);\n novuUI.updateLocalization(options.localization);\n novuUI.updateTabs(options.tabs);\n novuUI.updateOptions(options.options);\n novuUI.updateRouterPush(options.routerPush);\n novuUI.updateNovu(novu);\n }, [\n shadowRootDetector,\n novuUI,\n adaptedAppearanceForUpdate,\n options.localization,\n options.tabs,\n options.options,\n options.routerPush,\n novu,\n ]);\n\n return (\n <>\n <ShadowRootDetector ref={shadowRootDetector} />\n {novuUI && <NovuUIProvider value={{ novuUI }}>{children}</NovuUIProvider>}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gBAAsC;AACtC,mBAA4D;AAC5D,2BAA+B;AAC/B,6BAA4B;AAC5B,wBAA2B;AAC3B,wBAAqC;AAErC,gCAAmC;AA+F/B;AApFJ,IAAM,uBAAuB,CAAC,UAA+C;AAC3E,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,MAAI,OAAoB;AAExB,SAAO,MAAM;AACX,QAAI,gBAAgB,WAAW,KAAK,YAAY;AAC9C,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,gBAAgB,YAAY;AAC9B,aAAO;AAAA,IACT;AAEA,WAAO,KAAK;AAEZ,QAAI,CAAC,QAAQ,SAAS,UAAU;AAC9B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,SAAS,CAAC,EAAE,SAAS,MAAM,SAAS,MAAmB;AAClE,QAAM,yBAAqB,qBAAuB,IAAI;AACtD,QAAM,EAAE,aAAa,QAAI,oCAAY;AAErC,QAAM,iCAA6B;AAAA,IACjC,UAAM,wCAAqB,QAAQ,cAAc,CAAC,GAAG,YAAY;AAAA,IACjE,CAAC,QAAQ,YAAY,YAAY;AAAA,EACnC;AAEA,QAAM,qBAAiB,sBAAQ,MAAM;AACnC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,MAAM,0BAA0B,CAAC;AAE9C,QAAM,iBAAa,8BAAW,cAAc;AAC5C,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAkC;AAE9D,8BAAU,MAAM;AACd,UAAM,mBAAmB,qBAAqB,mBAAmB,OAAO;AACxE,UAAM,WAAW,IAAI,UAAAA,OAAY;AAAA,MAC/B,GAAG,WAAW;AAAA,MACd,WAAW,WAAW,QAAQ,aAAa;AAAA,IAC7C,CAAC;AACD,cAAU,QAAQ;AAElB,WAAO,MAAM;AACX,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,8BAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,UAAM,mBAAmB,qBAAqB,mBAAmB,OAAO;AACxE,WAAO,gBAAgB,QAAQ,aAAa,gBAAgB;AAC5D,WAAO,iBAAiB,0BAA0B;AAClD,WAAO,mBAAmB,QAAQ,YAAY;AAC9C,WAAO,WAAW,QAAQ,IAAI;AAC9B,WAAO,cAAc,QAAQ,OAAO;AACpC,WAAO,iBAAiB,QAAQ,UAAU;AAC1C,WAAO,WAAW,IAAI;AAAA,EACxB,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AAED,SACE,4EACE;AAAA,gDAAC,gDAAmB,KAAK,oBAAoB;AAAA,IAC5C,UAAU,4CAAC,uCAAe,OAAO,EAAE,OAAO,GAAI,UAAS;AAAA,KAC1D;AAEJ;","names":["NovuUIClass"]}
1
+ {"version":3,"sources":["../../../src/components/NovuUI.tsx"],"sourcesContent":["import { Novu } from '@novu/js';\nimport type { NovuUIOptions as JsNovuUIOptions } from '@novu/js/ui';\nimport { NovuUI as NovuUIClass } from '@novu/js/ui';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { NovuUIProvider } from '../context/NovuUIContext';\nimport { OutletStore } from '../context/OutletStore';\nimport { useDataRef } from '../hooks/internal/useDataRef';\nimport { useIsomorphicLayoutEffect } from '../hooks/internal/useIsomorphicLayoutEffect';\nimport { adaptAppearanceForJs } from '../utils/appearance';\nimport type {\n ReactAllAppearance,\n ReactAllIconOverrides,\n ReactInboxAppearance,\n ReactSubscriptionAppearance,\n} from '../utils/types';\nimport { OutletHost } from './OutletHost';\nimport { ShadowRootDetector } from './ShadowRootDetector';\n\nexport type NovuUIOptions = Omit<JsNovuUIOptions, 'appearance'> & {\n appearance?: ReactInboxAppearance | ReactSubscriptionAppearance | ReactAllAppearance;\n};\n\ntype NovuUIProps = React.PropsWithChildren<{\n options: NovuUIOptions;\n novu: Novu;\n}>;\n\nconst findParentShadowRoot = (child?: HTMLDivElement | null): Node | null => {\n if (!child) {\n return null;\n }\n\n let node: Node | null = child;\n\n while (node) {\n if (node instanceof Element && node.shadowRoot) {\n return node.shadowRoot;\n }\n\n if (node instanceof ShadowRoot) {\n return node;\n }\n\n node = node.parentNode;\n\n if (!node || node === document) {\n break;\n }\n }\n\n return null;\n};\n\n/**\n * Owns one engine instance and the outlet store that goes with it. Everything rendered below, portals into\n * outlets included, can reach both through `useNovuUI()`.\n */\nexport const NovuUI = ({ options, novu, children }: NovuUIProps) => {\n const shadowRootDetector = useRef<HTMLDivElement>(null);\n const outlets = useMemo(() => new OutletStore(), []);\n\n const adaptedAppearanceForUpdate = useMemo(\n () => adaptAppearanceForJs(options.appearance || {}, outlets),\n [options.appearance, outlets]\n );\n\n const adaptedOptions = useMemo(() => {\n return {\n ...options,\n appearance: adaptedAppearanceForUpdate,\n novu,\n };\n }, [options, novu, adaptedAppearanceForUpdate]);\n\n const optionsRef = useDataRef(adaptedOptions);\n const [novuUI, setNovuUI] = useState<NovuUIClass | undefined>();\n\n useIsomorphicLayoutEffect(() => {\n const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);\n const instance = new NovuUIClass({\n ...optionsRef.current,\n container: optionsRef.current.container ?? parentShadowRoot,\n });\n setNovuUI(instance);\n\n return () => {\n instance.unmount();\n };\n }, []);\n\n useEffect(() => {\n if (!novuUI) {\n return;\n }\n\n const parentShadowRoot = findParentShadowRoot(shadowRootDetector.current);\n novuUI.updateContainer(options.container ?? parentShadowRoot);\n novuUI.updateAppearance(adaptedAppearanceForUpdate);\n novuUI.updateLocalization(options.localization);\n novuUI.updateTabs(options.tabs);\n novuUI.updateOptions(options.options);\n novuUI.updateRouterPush(options.routerPush);\n novuUI.updateNovu(novu);\n }, [\n shadowRootDetector,\n novuUI,\n adaptedAppearanceForUpdate,\n options.localization,\n options.tabs,\n options.options,\n options.routerPush,\n novu,\n ]);\n\n const icons = options.appearance?.icons;\n const contextValue = useMemo(\n () => (novuUI ? { novuUI, outlets, icons: (icons ?? {}) as ReactAllIconOverrides } : undefined),\n [novuUI, outlets, icons]\n );\n\n return (\n <>\n <ShadowRootDetector ref={shadowRootDetector} />\n {contextValue && (\n <NovuUIProvider value={contextValue}>\n {children}\n {/* after the children on purpose: their render props update refs during render, the outlets read them */}\n <OutletHost store={outlets} />\n </NovuUIProvider>\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gBAAsC;AACtC,mBAA4D;AAC5D,2BAA+B;AAC/B,yBAA4B;AAC5B,wBAA2B;AAC3B,uCAA0C;AAC1C,wBAAqC;AAOrC,wBAA2B;AAC3B,gCAAmC;AAyG/B;AA9FJ,IAAM,uBAAuB,CAAC,UAA+C;AAC3E,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,MAAI,OAAoB;AAExB,SAAO,MAAM;AACX,QAAI,gBAAgB,WAAW,KAAK,YAAY;AAC9C,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,gBAAgB,YAAY;AAC9B,aAAO;AAAA,IACT;AAEA,WAAO,KAAK;AAEZ,QAAI,CAAC,QAAQ,SAAS,UAAU;AAC9B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAMO,IAAM,SAAS,CAAC,EAAE,SAAS,MAAM,SAAS,MAAmB;AAzDpE;AA0DE,QAAM,yBAAqB,qBAAuB,IAAI;AACtD,QAAM,cAAU,sBAAQ,MAAM,IAAI,+BAAY,GAAG,CAAC,CAAC;AAEnD,QAAM,iCAA6B;AAAA,IACjC,UAAM,wCAAqB,QAAQ,cAAc,CAAC,GAAG,OAAO;AAAA,IAC5D,CAAC,QAAQ,YAAY,OAAO;AAAA,EAC9B;AAEA,QAAM,qBAAiB,sBAAQ,MAAM;AACnC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY;AAAA,MACZ;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,MAAM,0BAA0B,CAAC;AAE9C,QAAM,iBAAa,8BAAW,cAAc;AAC5C,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAkC;AAE9D,kEAA0B,MAAM;AAC9B,UAAM,mBAAmB,qBAAqB,mBAAmB,OAAO;AACxE,UAAM,WAAW,IAAI,UAAAA,OAAY;AAAA,MAC/B,GAAG,WAAW;AAAA,MACd,WAAW,WAAW,QAAQ,aAAa;AAAA,IAC7C,CAAC;AACD,cAAU,QAAQ;AAElB,WAAO,MAAM;AACX,eAAS,QAAQ;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,8BAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,UAAM,mBAAmB,qBAAqB,mBAAmB,OAAO;AACxE,WAAO,gBAAgB,QAAQ,aAAa,gBAAgB;AAC5D,WAAO,iBAAiB,0BAA0B;AAClD,WAAO,mBAAmB,QAAQ,YAAY;AAC9C,WAAO,WAAW,QAAQ,IAAI;AAC9B,WAAO,cAAc,QAAQ,OAAO;AACpC,WAAO,iBAAiB,QAAQ,UAAU;AAC1C,WAAO,WAAW,IAAI;AAAA,EACxB,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AAED,QAAM,SAAQ,aAAQ,eAAR,mBAAoB;AAClC,QAAM,mBAAe;AAAA,IACnB,MAAO,SAAS,EAAE,QAAQ,SAAS,OAAQ,SAAS,CAAC,EAA4B,IAAI;AAAA,IACrF,CAAC,QAAQ,SAAS,KAAK;AAAA,EACzB;AAEA,SACE,4EACE;AAAA,gDAAC,gDAAmB,KAAK,oBAAoB;AAAA,IAC5C,gBACC,6CAAC,uCAAe,OAAO,cACpB;AAAA;AAAA,MAED,4CAAC,gCAAW,OAAO,SAAS;AAAA,OAC9B;AAAA,KAEJ;AAEJ;","names":["NovuUIClass"]}
@@ -11,6 +11,10 @@ type NovuUIProps = React__default.PropsWithChildren<{
11
11
  options: NovuUIOptions;
12
12
  novu: Novu;
13
13
  }>;
14
+ /**
15
+ * Owns one engine instance and the outlet store that goes with it. Everything rendered below, portals into
16
+ * outlets included, can reach both through `useNovuUI()`.
17
+ */
14
18
  declare const NovuUI: ({ options, novu, children }: NovuUIProps) => react_jsx_runtime.JSX.Element;
15
19
 
16
20
  export { NovuUI, type NovuUIOptions };
@@ -17,24 +17,24 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/context/RendererContext.tsx
21
- var RendererContext_exports = {};
22
- __export(RendererContext_exports, {
23
- RendererProvider: () => RendererProvider,
24
- useRenderer: () => useRendererContext,
25
- useUnsafeRenderer: () => useUnsafeRendererContext
20
+ // src/components/OutletHost.tsx
21
+ var OutletHost_exports = {};
22
+ __export(OutletHost_exports, {
23
+ OutletHost: () => OutletHost
26
24
  });
27
- module.exports = __toCommonJS(RendererContext_exports);
28
- var import_createContextAndHook = require("../utils/createContextAndHook.cjs");
25
+ module.exports = __toCommonJS(OutletHost_exports);
26
+ var import_react = require("react");
27
+ var import_react_dom = require("react-dom");
29
28
  var import_jsx_runtime = require("react/jsx-runtime");
30
- var [RendererContext, useRendererContext, useUnsafeRendererContext] = (0, import_createContextAndHook.createContextAndHook)("RendererContext");
31
- var RendererProvider = (props) => {
32
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RendererContext.Provider, { value: { value: props.value }, children: props.children });
29
+ var OutletContent = ({ entry }) => {
30
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: entry.render(...entry.args) });
31
+ };
32
+ var OutletHost = ({ store }) => {
33
+ const { entries } = (0, import_react.useSyncExternalStore)(store.subscribe, store.getSnapshot, store.getSnapshot);
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: Array.from(entries.values(), (entry) => (0, import_react_dom.createPortal)(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(OutletContent, { entry }), entry.el, entry.id)) });
33
35
  };
34
36
  // Annotate the CommonJS export names for ESM import in node:
35
37
  0 && (module.exports = {
36
- RendererProvider,
37
- useRenderer,
38
- useUnsafeRenderer
38
+ OutletHost
39
39
  });
40
- //# sourceMappingURL=RendererContext.cjs.map
40
+ //# sourceMappingURL=OutletHost.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/OutletHost.tsx"],"sourcesContent":["import React, { useSyncExternalStore } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { OutletEntry, OutletStore } from '../context/OutletStore';\n\nconst OutletContent = ({ entry }: { entry: OutletEntry }) => {\n return <>{entry.render(...entry.args)}</>;\n};\n\n/**\n * Renders every outlet of one engine instance as a keyed portal. Keys are outlet ids, so removing one outlet\n * never shifts the others onto a different container, and a data change re-renders the content in place.\n */\nexport const OutletHost = ({ store }: { store: OutletStore }) => {\n const { entries } = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n return (\n <>{Array.from(entries.values(), (entry) => createPortal(<OutletContent entry={entry} />, entry.el, entry.id))}</>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4C;AAC5C,uBAA6B;AAIpB;AADT,IAAM,gBAAgB,CAAC,EAAE,MAAM,MAA8B;AAC3D,SAAO,2EAAG,gBAAM,OAAO,GAAG,MAAM,IAAI,GAAE;AACxC;AAMO,IAAM,aAAa,CAAC,EAAE,MAAM,MAA8B;AAC/D,QAAM,EAAE,QAAQ,QAAI,mCAAqB,MAAM,WAAW,MAAM,aAAa,MAAM,WAAW;AAE9F,SACE,2EAAG,gBAAM,KAAK,QAAQ,OAAO,GAAG,CAAC,cAAU,+BAAa,4CAAC,iBAAc,OAAc,GAAI,MAAM,IAAI,MAAM,EAAE,CAAC,GAAE;AAElH;","names":[]}
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { OutletStore } from '../context/OutletStore.cjs';
3
+ import '@novu/js/ui';
4
+ import 'react';
5
+
6
+ /**
7
+ * Renders every outlet of one engine instance as a keyed portal. Keys are outlet ids, so removing one outlet
8
+ * never shifts the others onto a different container, and a data change re-renders the content in place.
9
+ */
10
+ declare const OutletHost: ({ store }: {
11
+ store: OutletStore;
12
+ }) => react_jsx_runtime.JSX.Element;
13
+
14
+ export { OutletHost };
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
 
30
20
  // src/components/Preferences.tsx
@@ -33,19 +23,10 @@ __export(Preferences_exports, {
33
23
  Preferences: () => Preferences
34
24
  });
35
25
  module.exports = __toCommonJS(Preferences_exports);
36
- var import_react = __toESM(require("react"), 1);
37
- var import_NovuUIContext = require("../context/NovuUIContext.cjs");
38
26
  var import_Mounter = require("./Mounter.cjs");
39
27
  var import_jsx_runtime = require("react/jsx-runtime");
40
28
  var Preferences = () => {
41
- const { novuUI } = (0, import_NovuUIContext.useNovuUI)();
42
- const mount = import_react.default.useCallback((element) => {
43
- return novuUI.mountComponent({
44
- name: "Preferences",
45
- element
46
- });
47
- }, []);
48
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { mount });
29
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { name: "Preferences" });
49
30
  };
50
31
  // Annotate the CommonJS export names for ESM import in node:
51
32
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Preferences.tsx"],"sourcesContent":["import React from 'react';\nimport { useNovuUI } from '../context/NovuUIContext';\nimport { Mounter } from './Mounter';\n\nexport const Preferences = () => {\n const { novuUI } = useNovuUI();\n\n const mount = React.useCallback((element: HTMLElement) => {\n return novuUI.mountComponent({\n name: 'Preferences',\n element,\n });\n }, []);\n\n return <Mounter mount={mount} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,2BAA0B;AAC1B,qBAAwB;AAYf;AAVF,IAAM,cAAc,MAAM;AAC/B,QAAM,EAAE,OAAO,QAAI,gCAAU;AAE7B,QAAM,QAAQ,aAAAA,QAAM,YAAY,CAAC,YAAyB;AACxD,WAAO,OAAO,eAAe;AAAA,MAC3B,MAAM;AAAA,MACN;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SAAO,4CAAC,0BAAQ,OAAc;AAChC;","names":["React"]}
1
+ {"version":3,"sources":["../../../src/components/Preferences.tsx"],"sourcesContent":["import React from 'react';\nimport { Mounter } from './Mounter';\n\nexport const Preferences = () => {\n return <Mounter name=\"Preferences\" />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAwB;AAGf;AADF,IAAM,cAAc,MAAM;AAC/B,SAAO,4CAAC,0BAAQ,MAAK,eAAc;AACrC;","names":[]}
@@ -36,10 +36,9 @@ module.exports = __toCommonJS(ConnectChat_exports);
36
36
  var import_react = __toESM(require("react"), 1);
37
37
  var import_NovuProvider = require("../../hooks/NovuProvider.cjs");
38
38
  var import_NovuUI = require("../NovuUI.cjs");
39
- var import_Renderer = require("../Renderer.cjs");
40
39
  var import_DefaultConnectChat = require("./DefaultConnectChat.cjs");
41
40
  var import_jsx_runtime = require("react/jsx-runtime");
42
- var ConnectChatInternal = (0, import_Renderer.withRenderer)((props) => {
41
+ var ConnectChatInternal = (props) => {
43
42
  const { container, appearance, ...defaultProps } = props;
44
43
  const novu = (0, import_NovuProvider.useNovu)();
45
44
  const options = (0, import_react.useMemo)(() => {
@@ -50,7 +49,7 @@ var ConnectChatInternal = (0, import_Renderer.withRenderer)((props) => {
50
49
  };
51
50
  }, [container, appearance, novu.options]);
52
51
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NovuUI.NovuUI, { options, novu, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DefaultConnectChat.DefaultConnectChat, { ...defaultProps }) });
53
- });
52
+ };
54
53
  ConnectChatInternal.displayName = "ConnectChatInternal";
55
54
  var ConnectChat = import_react.default.memo((props) => {
56
55
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectChatInternal, { ...props });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/connect-chat/ConnectChat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport { withRenderer } from '../Renderer';\nimport { DefaultConnectChat, DefaultConnectChatProps } from './DefaultConnectChat';\n\nexport type ConnectChatProps = DefaultConnectChatProps & Pick<NovuUIOptions, 'container' | 'appearance'>;\n\nconst ConnectChatInternal = withRenderer<ConnectChatProps>((props) => {\n const { container, appearance, ...defaultProps } = props;\n const novu = useNovu();\n\n const options: NovuUIOptions = useMemo(() => {\n return {\n container,\n appearance,\n options: novu.options,\n };\n }, [container, appearance, novu.options]);\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultConnectChat {...defaultProps} />\n </NovuUI>\n );\n});\n\nConnectChatInternal.displayName = 'ConnectChatInternal';\n\nexport const ConnectChat = React.memo((props: ConnectChatProps) => {\n return <ConnectChatInternal {...props} />;\n});\n\nConnectChat.displayName = 'ConnectChat';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,0BAAwB;AACxB,oBAAsC;AACtC,sBAA6B;AAC7B,gCAA4D;AAkBtD;AAdN,IAAM,0BAAsB,8BAA+B,CAAC,UAAU;AACpE,QAAM,EAAE,WAAW,YAAY,GAAG,aAAa,IAAI;AACnD,QAAM,WAAO,6BAAQ;AAErB,QAAM,cAAyB,sBAAQ,MAAM;AAC3C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,KAAK,OAAO,CAAC;AAExC,SACE,4CAAC,wBAAO,SAAkB,MACxB,sDAAC,gDAAoB,GAAG,cAAc,GACxC;AAEJ,CAAC;AAED,oBAAoB,cAAc;AAE3B,IAAM,cAAc,aAAAA,QAAM,KAAK,CAAC,UAA4B;AACjE,SAAO,4CAAC,uBAAqB,GAAG,OAAO;AACzC,CAAC;AAED,YAAY,cAAc;","names":["React"]}
1
+ {"version":3,"sources":["../../../../src/components/connect-chat/ConnectChat.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport { DefaultConnectChat, DefaultConnectChatProps } from './DefaultConnectChat';\n\nexport type ConnectChatProps = DefaultConnectChatProps & Pick<NovuUIOptions, 'container' | 'appearance'>;\n\nconst ConnectChatInternal = (props: ConnectChatProps) => {\n const { container, appearance, ...defaultProps } = props;\n const novu = useNovu();\n\n const options: NovuUIOptions = useMemo(() => {\n return {\n container,\n appearance,\n options: novu.options,\n };\n }, [container, appearance, novu.options]);\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultConnectChat {...defaultProps} />\n </NovuUI>\n );\n};\n\nConnectChatInternal.displayName = 'ConnectChatInternal';\n\nexport const ConnectChat = React.memo((props: ConnectChatProps) => {\n return <ConnectChatInternal {...props} />;\n});\n\nConnectChat.displayName = 'ConnectChat';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,0BAAwB;AACxB,oBAAsC;AACtC,gCAA4D;AAkBtD;AAdN,IAAM,sBAAsB,CAAC,UAA4B;AACvD,QAAM,EAAE,WAAW,YAAY,GAAG,aAAa,IAAI;AACnD,QAAM,WAAO,6BAAQ;AAErB,QAAM,cAAyB,sBAAQ,MAAM;AAC3C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,KAAK,OAAO,CAAC;AAExC,SACE,4CAAC,wBAAO,SAAkB,MACxB,sDAAC,gDAAoB,GAAG,cAAc,GACxC;AAEJ;AAEA,oBAAoB,cAAc;AAE3B,IAAM,cAAc,aAAAA,QAAM,KAAK,CAAC,UAA4B;AACjE,SAAO,4CAAC,uBAAqB,GAAG,OAAO;AACzC,CAAC;AAED,YAAY,cAAc;","names":["React"]}
@@ -24,7 +24,6 @@ __export(DefaultConnectChat_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(DefaultConnectChat_exports);
26
26
  var import_react = require("react");
27
- var import_NovuUIContext = require("../../context/NovuUIContext.cjs");
28
27
  var import_Mounter = require("../Mounter.cjs");
29
28
  var import_jsx_runtime = require("react/jsx-runtime");
30
29
  var DefaultConnectChat = (props) => {
@@ -40,28 +39,20 @@ var DefaultConnectChat = (props) => {
40
39
  onDisconnectSuccess,
41
40
  onDisconnectError
42
41
  } = props;
43
- const { novuUI } = (0, import_NovuUIContext.useNovuUI)();
44
- const mount = (0, import_react.useCallback)(
45
- (element) => {
46
- return novuUI.mountComponent({
47
- name: "ConnectChat",
48
- props: {
49
- integrationIdentifier,
50
- connectionIdentifier,
51
- subscriberId,
52
- context,
53
- scope,
54
- connectionMode,
55
- onConnectSuccess,
56
- onConnectError,
57
- onDisconnectSuccess,
58
- onDisconnectError
59
- },
60
- element
61
- });
62
- },
42
+ const mountProps = (0, import_react.useMemo)(
43
+ () => ({
44
+ integrationIdentifier,
45
+ connectionIdentifier,
46
+ subscriberId,
47
+ context,
48
+ scope,
49
+ connectionMode,
50
+ onConnectSuccess,
51
+ onConnectError,
52
+ onDisconnectSuccess,
53
+ onDisconnectError
54
+ }),
63
55
  [
64
- novuUI,
65
56
  integrationIdentifier,
66
57
  connectionIdentifier,
67
58
  subscriberId,
@@ -74,7 +65,7 @@ var DefaultConnectChat = (props) => {
74
65
  onDisconnectError
75
66
  ]
76
67
  );
77
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { mount });
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { name: "ConnectChat", props: mountProps });
78
69
  };
79
70
  // Annotate the CommonJS export names for ESM import in node:
80
71
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/connect-chat/DefaultConnectChat.tsx"],"sourcesContent":["import { ConnectChatProps } from '@novu/js/ui';\nimport { useCallback } from 'react';\nimport { useNovuUI } from '../../context/NovuUIContext';\nimport { Mounter } from '../Mounter';\n\nexport type DefaultConnectChatProps = Pick<\n ConnectChatProps,\n | 'integrationIdentifier'\n | 'connectionIdentifier'\n | 'subscriberId'\n | 'context'\n | 'scope'\n | 'connectionMode'\n | 'onConnectSuccess'\n | 'onConnectError'\n | 'onDisconnectSuccess'\n | 'onDisconnectError'\n>;\n\nexport const DefaultConnectChat = (props: DefaultConnectChatProps) => {\n const {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n } = props;\n const { novuUI } = useNovuUI();\n\n const mount = useCallback(\n (element: HTMLElement) => {\n return novuUI.mountComponent({\n name: 'ConnectChat',\n props: {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n },\n element,\n });\n },\n [\n novuUI,\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n ]\n );\n\n return <Mounter mount={mount} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA4B;AAC5B,2BAA0B;AAC1B,qBAAwB;AAiEf;AAjDF,IAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,EAAE,OAAO,QAAI,gCAAU;AAE7B,QAAM,YAAQ;AAAA,IACZ,CAAC,YAAyB;AACxB,aAAO,OAAO,eAAe;AAAA,QAC3B,MAAM;AAAA,QACN,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,0BAAQ,OAAc;AAChC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/connect-chat/DefaultConnectChat.tsx"],"sourcesContent":["import { ConnectChatProps } from '@novu/js/ui';\nimport { useMemo } from 'react';\nimport { Mounter } from '../Mounter';\n\nexport type DefaultConnectChatProps = Pick<\n ConnectChatProps,\n | 'integrationIdentifier'\n | 'connectionIdentifier'\n | 'subscriberId'\n | 'context'\n | 'scope'\n | 'connectionMode'\n | 'onConnectSuccess'\n | 'onConnectError'\n | 'onDisconnectSuccess'\n | 'onDisconnectError'\n>;\n\nexport const DefaultConnectChat = (props: DefaultConnectChatProps) => {\n const {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n } = props;\n\n const mountProps = useMemo(\n () => ({\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n }),\n [\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n ]\n );\n\n return <Mounter name=\"ConnectChat\" props={mountProps} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAwB;AACxB,qBAAwB;AAyDf;AAzCF,IAAM,qBAAqB,CAAC,UAAmC;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,iBAAa;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,0BAAQ,MAAK,eAAc,OAAO,YAAY;AACxD;","names":[]}
@@ -24,6 +24,7 @@ __reExport(components_exports, require("./InboxContent.cjs"), module.exports);
24
24
  __reExport(components_exports, require("./msteams-connect-button/MsTeamsConnectButton.cjs"), module.exports);
25
25
  __reExport(components_exports, require("./msteams-link-user/MsTeamsLinkUser.cjs"), module.exports);
26
26
  __reExport(components_exports, require("./Notifications.cjs"), module.exports);
27
+ __reExport(components_exports, require("./notification-item/NotificationItem.cjs"), module.exports);
27
28
  __reExport(components_exports, require("./Preferences.cjs"), module.exports);
28
29
  __reExport(components_exports, require("./slack-connect-button/SlackConnectButton.cjs"), module.exports);
29
30
  __reExport(components_exports, require("./slack-link-user/SlackLinkUser.cjs"), module.exports);
@@ -40,6 +41,7 @@ __reExport(components_exports, require("./telegram-connect-button/TelegramConnec
40
41
  ...require("./msteams-connect-button/MsTeamsConnectButton.cjs"),
41
42
  ...require("./msteams-link-user/MsTeamsLinkUser.cjs"),
42
43
  ...require("./Notifications.cjs"),
44
+ ...require("./notification-item/NotificationItem.cjs"),
43
45
  ...require("./Preferences.cjs"),
44
46
  ...require("./slack-connect-button/SlackConnectButton.cjs"),
45
47
  ...require("./slack-link-user/SlackLinkUser.cjs"),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from '../hooks/NovuProvider';\nexport * from './Bell';\nexport * from './Inbox';\nexport * from './InboxContent';\nexport * from './msteams-connect-button/MsTeamsConnectButton';\nexport * from './msteams-link-user/MsTeamsLinkUser';\nexport * from './Notifications';\nexport * from './Preferences';\nexport * from './slack-connect-button/SlackConnectButton';\nexport * from './slack-link-user/SlackLinkUser';\nexport * from './subscription/Subscription';\nexport * from './subscription/SubscriptionButton';\nexport * from './subscription/SubscriptionPreferences';\nexport * from './telegram-connect-button/TelegramConnectButton';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,+BAAc,sCAAd;AACA,+BAAc,uBADd;AAEA,+BAAc,wBAFd;AAGA,+BAAc,+BAHd;AAIA,+BAAc,8DAJd;AAKA,+BAAc,oDALd;AAMA,+BAAc,gCANd;AAOA,+BAAc,8BAPd;AAQA,+BAAc,0DARd;AASA,+BAAc,gDATd;AAUA,+BAAc,4CAVd;AAWA,+BAAc,kDAXd;AAYA,+BAAc,uDAZd;AAaA,+BAAc,gEAbd;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from '../hooks/NovuProvider';\nexport * from './Bell';\nexport * from './Inbox';\nexport * from './InboxContent';\nexport * from './msteams-connect-button/MsTeamsConnectButton';\nexport * from './msteams-link-user/MsTeamsLinkUser';\nexport * from './Notifications';\nexport * from './notification-item/NotificationItem';\nexport * from './Preferences';\nexport * from './slack-connect-button/SlackConnectButton';\nexport * from './slack-link-user/SlackLinkUser';\nexport * from './subscription/Subscription';\nexport * from './subscription/SubscriptionButton';\nexport * from './subscription/SubscriptionPreferences';\nexport * from './telegram-connect-button/TelegramConnectButton';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,+BAAc,sCAAd;AACA,+BAAc,uBADd;AAEA,+BAAc,wBAFd;AAGA,+BAAc,+BAHd;AAIA,+BAAc,8DAJd;AAKA,+BAAc,oDALd;AAMA,+BAAc,gCANd;AAOA,+BAAc,qDAPd;AAQA,+BAAc,8BARd;AASA,+BAAc,0DATd;AAUA,+BAAc,gDAVd;AAWA,+BAAc,4CAXd;AAYA,+BAAc,kDAZd;AAaA,+BAAc,uDAbd;AAcA,+BAAc,gEAdd;","names":[]}
@@ -5,6 +5,7 @@ export { InboxContent, InboxContentProps } from './InboxContent.cjs';
5
5
  export { MsTeamsConnectButton, MsTeamsConnectButtonProps } from './msteams-connect-button/MsTeamsConnectButton.cjs';
6
6
  export { MsTeamsLinkUser, MsTeamsLinkUserProps } from './msteams-link-user/MsTeamsLinkUser.cjs';
7
7
  export { NotificationProps, Notifications } from './Notifications.cjs';
8
+ export { NotificationItem, NotificationItemProps } from './notification-item/NotificationItem.cjs';
8
9
  export { Preferences } from './Preferences.cjs';
9
10
  export { SlackConnectButton, SlackConnectButtonProps } from './slack-connect-button/SlackConnectButton.cjs';
10
11
  export { SlackLinkUser, SlackLinkUserProps } from './slack-link-user/SlackLinkUser.cjs';
@@ -20,6 +21,11 @@ import '@novu/js/ui';
20
21
  import './NovuUI.cjs';
21
22
  import './msteams-connect-button/DefaultMsTeamsConnectButton.cjs';
22
23
  import './msteams-link-user/DefaultMsTeamsLinkUser.cjs';
24
+ import './notification-item/parts/Dot.cjs';
25
+ import './notification-item/parts/Date.cjs';
26
+ import './notification-item/parts/Subject.cjs';
27
+ import './notification-item/parts/Content.cjs';
28
+ import './notification-item/parts/Avatar.cjs';
23
29
  import './slack-connect-button/DefaultSlackConnectButton.cjs';
24
30
  import './slack-link-user/DefaultSlackLinkUser.cjs';
25
31
  import './subscription/DefaultSubscription.cjs';
@@ -24,7 +24,6 @@ __export(DefaultMsTeamsConnectButton_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(DefaultMsTeamsConnectButton_exports);
26
26
  var import_react = require("react");
27
- var import_NovuUIContext = require("../../context/NovuUIContext.cjs");
28
27
  var import_Mounter = require("../Mounter.cjs");
29
28
  var import_jsx_runtime = require("react/jsx-runtime");
30
29
  var DefaultMsTeamsConnectButton = (props) => {
@@ -43,31 +42,23 @@ var DefaultMsTeamsConnectButton = (props) => {
43
42
  connectLabel,
44
43
  connectedLabel
45
44
  } = props;
46
- const { novuUI } = (0, import_NovuUIContext.useNovuUI)();
47
- const mount = (0, import_react.useCallback)(
48
- (element) => {
49
- return novuUI.mountComponent({
50
- name: "MsTeamsConnectButton",
51
- props: {
52
- integrationIdentifier,
53
- connectionIdentifier,
54
- subscriberId,
55
- context,
56
- scope,
57
- connectionMode,
58
- autoLinkUser,
59
- onConnectSuccess,
60
- onConnectError,
61
- onDisconnectSuccess,
62
- onDisconnectError,
63
- connectLabel,
64
- connectedLabel
65
- },
66
- element
67
- });
68
- },
45
+ const mountProps = (0, import_react.useMemo)(
46
+ () => ({
47
+ integrationIdentifier,
48
+ connectionIdentifier,
49
+ subscriberId,
50
+ context,
51
+ scope,
52
+ connectionMode,
53
+ autoLinkUser,
54
+ onConnectSuccess,
55
+ onConnectError,
56
+ onDisconnectSuccess,
57
+ onDisconnectError,
58
+ connectLabel,
59
+ connectedLabel
60
+ }),
69
61
  [
70
- novuUI,
71
62
  integrationIdentifier,
72
63
  connectionIdentifier,
73
64
  subscriberId,
@@ -83,7 +74,7 @@ var DefaultMsTeamsConnectButton = (props) => {
83
74
  connectedLabel
84
75
  ]
85
76
  );
86
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { mount });
77
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Mounter.Mounter, { name: "MsTeamsConnectButton", props: mountProps });
87
78
  };
88
79
  // Annotate the CommonJS export names for ESM import in node:
89
80
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/msteams-connect-button/DefaultMsTeamsConnectButton.tsx"],"sourcesContent":["import { MsTeamsConnectButtonProps } from '@novu/js/ui';\nimport { useCallback } from 'react';\nimport { useNovuUI } from '../../context/NovuUIContext';\nimport { Mounter } from '../Mounter';\n\nexport type DefaultMsTeamsConnectButtonProps = Pick<\n MsTeamsConnectButtonProps,\n | 'integrationIdentifier'\n | 'connectionIdentifier'\n | 'subscriberId'\n | 'context'\n | 'scope'\n | 'connectionMode'\n | 'autoLinkUser'\n | 'onConnectSuccess'\n | 'onConnectError'\n | 'onDisconnectSuccess'\n | 'onDisconnectError'\n | 'connectLabel'\n | 'connectedLabel'\n>;\n\nexport const DefaultMsTeamsConnectButton = (props: DefaultMsTeamsConnectButtonProps) => {\n const {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n } = props;\n const { novuUI } = useNovuUI();\n\n const mount = useCallback(\n (element: HTMLElement) => {\n return novuUI.mountComponent({\n name: 'MsTeamsConnectButton',\n props: {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n },\n element,\n });\n },\n [\n novuUI,\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n ]\n );\n\n return <Mounter mount={mount} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA4B;AAC5B,2BAA0B;AAC1B,qBAAwB;AA6Ef;AA1DF,IAAM,8BAA8B,CAAC,UAA4C;AACtF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,EAAE,OAAO,QAAI,gCAAU;AAE7B,QAAM,YAAQ;AAAA,IACZ,CAAC,YAAyB;AACxB,aAAO,OAAO,eAAe;AAAA,QAC3B,MAAM;AAAA,QACN,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,0BAAQ,OAAc;AAChC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/msteams-connect-button/DefaultMsTeamsConnectButton.tsx"],"sourcesContent":["import { MsTeamsConnectButtonProps } from '@novu/js/ui';\nimport { useMemo } from 'react';\nimport { Mounter } from '../Mounter';\n\nexport type DefaultMsTeamsConnectButtonProps = Pick<\n MsTeamsConnectButtonProps,\n | 'integrationIdentifier'\n | 'connectionIdentifier'\n | 'subscriberId'\n | 'context'\n | 'scope'\n | 'connectionMode'\n | 'autoLinkUser'\n | 'onConnectSuccess'\n | 'onConnectError'\n | 'onDisconnectSuccess'\n | 'onDisconnectError'\n | 'connectLabel'\n | 'connectedLabel'\n>;\n\nexport const DefaultMsTeamsConnectButton = (props: DefaultMsTeamsConnectButtonProps) => {\n const {\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n } = props;\n\n const mountProps = useMemo(\n () => ({\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n }),\n [\n integrationIdentifier,\n connectionIdentifier,\n subscriberId,\n context,\n scope,\n connectionMode,\n autoLinkUser,\n onConnectSuccess,\n onConnectError,\n onDisconnectSuccess,\n onDisconnectError,\n connectLabel,\n connectedLabel,\n ]\n );\n\n return <Mounter name=\"MsTeamsConnectButton\" props={mountProps} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAwB;AACxB,qBAAwB;AAqEf;AAlDF,IAAM,8BAA8B,CAAC,UAA4C;AACtF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,iBAAa;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,4CAAC,0BAAQ,MAAK,wBAAuB,OAAO,YAAY;AACjE;","names":[]}
@@ -36,10 +36,9 @@ module.exports = __toCommonJS(MsTeamsConnectButton_exports);
36
36
  var import_react = __toESM(require("react"), 1);
37
37
  var import_NovuProvider = require("../../hooks/NovuProvider.cjs");
38
38
  var import_NovuUI = require("../NovuUI.cjs");
39
- var import_Renderer = require("../Renderer.cjs");
40
39
  var import_DefaultMsTeamsConnectButton = require("./DefaultMsTeamsConnectButton.cjs");
41
40
  var import_jsx_runtime = require("react/jsx-runtime");
42
- var MsTeamsConnectButtonInternal = (0, import_Renderer.withRenderer)((props) => {
41
+ var MsTeamsConnectButtonInternal = (props) => {
43
42
  const { container, appearance, ...defaultProps } = props;
44
43
  const novu = (0, import_NovuProvider.useNovu)();
45
44
  const options = (0, import_react.useMemo)(() => {
@@ -50,7 +49,7 @@ var MsTeamsConnectButtonInternal = (0, import_Renderer.withRenderer)((props) =>
50
49
  };
51
50
  }, [container, appearance, novu.options]);
52
51
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_NovuUI.NovuUI, { options, novu, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DefaultMsTeamsConnectButton.DefaultMsTeamsConnectButton, { ...defaultProps }) });
53
- });
52
+ };
54
53
  MsTeamsConnectButtonInternal.displayName = "MsTeamsConnectButtonInternal";
55
54
  var MsTeamsConnectButton = import_react.default.memo((props) => {
56
55
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MsTeamsConnectButtonInternal, { ...props });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/msteams-connect-button/MsTeamsConnectButton.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport { withRenderer } from '../Renderer';\nimport { DefaultMsTeamsConnectButton, DefaultMsTeamsConnectButtonProps } from './DefaultMsTeamsConnectButton';\n\nexport type MsTeamsConnectButtonProps = DefaultMsTeamsConnectButtonProps &\n Pick<NovuUIOptions, 'container' | 'appearance'>;\n\nconst MsTeamsConnectButtonInternal = withRenderer<MsTeamsConnectButtonProps>((props) => {\n const { container, appearance, ...defaultProps } = props;\n const novu = useNovu();\n\n const options: NovuUIOptions = useMemo(() => {\n return {\n container,\n appearance,\n options: novu.options,\n };\n }, [container, appearance, novu.options]);\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultMsTeamsConnectButton {...defaultProps} />\n </NovuUI>\n );\n});\n\nMsTeamsConnectButtonInternal.displayName = 'MsTeamsConnectButtonInternal';\n\nexport const MsTeamsConnectButton = React.memo((props: MsTeamsConnectButtonProps) => {\n return <MsTeamsConnectButtonInternal {...props} />;\n});\n\nMsTeamsConnectButton.displayName = 'MsTeamsConnectButton';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,0BAAwB;AACxB,oBAAsC;AACtC,sBAA6B;AAC7B,yCAA8E;AAmBxE;AAdN,IAAM,mCAA+B,8BAAwC,CAAC,UAAU;AACtF,QAAM,EAAE,WAAW,YAAY,GAAG,aAAa,IAAI;AACnD,QAAM,WAAO,6BAAQ;AAErB,QAAM,cAAyB,sBAAQ,MAAM;AAC3C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,KAAK,OAAO,CAAC;AAExC,SACE,4CAAC,wBAAO,SAAkB,MACxB,sDAAC,kEAA6B,GAAG,cAAc,GACjD;AAEJ,CAAC;AAED,6BAA6B,cAAc;AAEpC,IAAM,uBAAuB,aAAAA,QAAM,KAAK,CAAC,UAAqC;AACnF,SAAO,4CAAC,gCAA8B,GAAG,OAAO;AAClD,CAAC;AAED,qBAAqB,cAAc;","names":["React"]}
1
+ {"version":3,"sources":["../../../../src/components/msteams-connect-button/MsTeamsConnectButton.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useNovu } from '../../hooks/NovuProvider';\nimport { NovuUI, NovuUIOptions } from '../NovuUI';\nimport { DefaultMsTeamsConnectButton, DefaultMsTeamsConnectButtonProps } from './DefaultMsTeamsConnectButton';\n\nexport type MsTeamsConnectButtonProps = DefaultMsTeamsConnectButtonProps &\n Pick<NovuUIOptions, 'container' | 'appearance'>;\n\nconst MsTeamsConnectButtonInternal = (props: MsTeamsConnectButtonProps) => {\n const { container, appearance, ...defaultProps } = props;\n const novu = useNovu();\n\n const options: NovuUIOptions = useMemo(() => {\n return {\n container,\n appearance,\n options: novu.options,\n };\n }, [container, appearance, novu.options]);\n\n return (\n <NovuUI options={options} novu={novu}>\n <DefaultMsTeamsConnectButton {...defaultProps} />\n </NovuUI>\n );\n};\n\nMsTeamsConnectButtonInternal.displayName = 'MsTeamsConnectButtonInternal';\n\nexport const MsTeamsConnectButton = React.memo((props: MsTeamsConnectButtonProps) => {\n return <MsTeamsConnectButtonInternal {...props} />;\n});\n\nMsTeamsConnectButton.displayName = 'MsTeamsConnectButton';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,0BAAwB;AACxB,oBAAsC;AACtC,yCAA8E;AAmBxE;AAdN,IAAM,+BAA+B,CAAC,UAAqC;AACzE,QAAM,EAAE,WAAW,YAAY,GAAG,aAAa,IAAI;AACnD,QAAM,WAAO,6BAAQ;AAErB,QAAM,cAAyB,sBAAQ,MAAM;AAC3C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,KAAK,OAAO,CAAC;AAExC,SACE,4CAAC,wBAAO,SAAkB,MACxB,sDAAC,kEAA6B,GAAG,cAAc,GACjD;AAEJ;AAEA,6BAA6B,cAAc;AAEpC,IAAM,uBAAuB,aAAAA,QAAM,KAAK,CAAC,UAAqC;AACnF,SAAO,4CAAC,gCAA8B,GAAG,OAAO;AAClD,CAAC;AAED,qBAAqB,cAAc;","names":["React"]}