@novu/js 3.0.1 → 3.1.0

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkBD5JCEYL_js = require('../chunk-BD5JCEYL.js');
3
+ var chunkWONVNOTK_js = require('../chunk-WONVNOTK.js');
4
4
  var chunkERC62PGI_js = require('../chunk-ERC62PGI.js');
5
5
  var chunk7B52C2XE_js = require('../chunk-7B52C2XE.js');
6
6
  var web = require('solid-js/web');
@@ -17,75 +17,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
17
 
18
18
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
19
19
 
20
- var defaultLocalization = {
21
- locale: "en-US",
22
- "inbox.filters.dropdownOptions.unread": "Unread only",
23
- "inbox.filters.dropdownOptions.default": "Unread & read",
24
- "inbox.filters.dropdownOptions.archived": "Archived",
25
- "inbox.filters.labels.unread": "Unread",
26
- "inbox.filters.labels.default": "Inbox",
27
- "inbox.filters.labels.archived": "Archived",
28
- "notifications.emptyNotice": "Quiet for now. Check back later.",
29
- "notifications.actions.readAll": "Mark all as read",
30
- "notifications.actions.archiveAll": "Archive all",
31
- "notifications.actions.archiveRead": "Archive read",
32
- "notifications.newNotifications": ({ notificationCount }) => `${notificationCount > 99 ? "99+" : notificationCount} new ${notificationCount === 1 ? "notification" : "notifications"}`,
33
- "notification.actions.read.tooltip": "Mark as read",
34
- "notification.actions.unread.tooltip": "Mark as unread",
35
- "notification.actions.archive.tooltip": "Archive",
36
- "notification.actions.unarchive.tooltip": "Unarchive",
37
- "preferences.title": "Preferences",
38
- "preferences.emptyNotice": "No notification specific preferences yet.",
39
- "preferences.global": "Global Preferences",
40
- "preferences.workflow.disabled.notice": "Contact admin to enable subscription management for this critical notification.",
41
- "preferences.workflow.disabled.tooltip": "Contact admin to edit"
42
- };
43
- var [dynamicLocalization, setDynamicLocalization] = solidJs.createSignal({});
44
-
45
- // src/ui/context/LocalizationContext.tsx
46
- var LocalizationContext = solidJs.createContext(void 0);
47
- var LocalizationProvider = (props) => {
48
- const localization = solidJs.createMemo(() => {
49
- const _a = props.localization || {}, {
50
- dynamic
51
- } = _a, localizationObject = chunk7B52C2XE_js.__objRest(_a, [
52
- "dynamic"
53
- ]);
54
- return chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, defaultLocalization), dynamicLocalization()), dynamic || {}), localizationObject);
55
- });
56
- const t = (key, ...args) => {
57
- const value = localization()[key];
58
- if (typeof value === "function") {
59
- return value(args[0]);
60
- }
61
- return value;
62
- };
63
- const locale = solidJs.createMemo(() => localization().locale);
64
- return web.createComponent(LocalizationContext.Provider, {
65
- value: {
66
- t,
67
- locale
68
- },
69
- get children() {
70
- return props.children;
71
- }
72
- });
73
- };
74
- function useLocalization() {
75
- const context = solidJs.useContext(LocalizationContext);
76
- if (!context) {
77
- throw new Error("useLocalization must be used within an LocalizationProvider");
78
- }
79
- return context;
80
- }
81
-
82
- // src/ui/types.ts
83
- var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
84
- NotificationStatus2["UNREAD_READ"] = "unreadRead";
85
- NotificationStatus2["UNREAD"] = "unread";
86
- NotificationStatus2["ARCHIVED"] = "archived";
87
- return NotificationStatus2;
88
- })(NotificationStatus || {});
20
+ // _ocwnno0ue:/Users/sokratisvidros/Workspace/novu/packages/js/src/ui/index.directcss
21
+ var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}}.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-left-0{left:0}.nt-left-0\\.5{left:.125rem}.nt-right-0{right:0}.nt-right-3{right:.75rem}.nt-top-0{top:0}.nt-top-0\\.5{top:.125rem}.nt-top-3{top:.75rem}.nt-z-10{z-index:10}.nt-z-\\[-1\\]{z-index:-1}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-auto{margin-left:auto}.nt-mr-auto{margin-right:auto}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.nt-size-1{height:.25rem;width:.25rem}.nt-size-1\\.5{height:.375rem;width:.375rem}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\\.5{height:.625rem;width:.625rem}.nt-size-3{height:.75rem;width:.75rem}.nt-size-4{height:1rem;width:1rem}.nt-size-5{height:1.25rem;width:1.25rem}.nt-size-8{height:2rem;width:2rem}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-4{height:1rem}.nt-h-8{height:2rem}.nt-h-\\[600px\\]{height:600px}.nt-h-fit{height:-moz-fit-content;height:fit-content}.nt-h-full{height:100%}.nt-min-h-0{min-height:0}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[400px\\]{width:400px}.nt-w-fit{width:-moz-fit-content;width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.nt-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-cursor-default{cursor:default}.nt-cursor-pointer{cursor:pointer}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0{gap:0}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-auto{overflow:auto}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-truncate{overflow:hidden;text-overflow:ellipsis}.nt-truncate,.nt-whitespace-nowrap{white-space:nowrap}.nt-whitespace-pre-wrap{white-space:pre-wrap}.nt-rounded{border-radius:var(--nv-radius-base)}.nt-rounded-full{border-radius:var(--nv-radius-full)}.nt-rounded-lg{border-radius:var(--nv-radius-lg)}.nt-rounded-md{border-radius:var(--nv-radius-md)}.nt-rounded-xl{border-radius:var(--nv-radius-xl)}.nt-border{border-width:1px}.nt-border-b{border-bottom-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-border,.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-50{border-color:var(--nv-color-neutral-alpha-50)}.nt-border-t-neutral-alpha-200{border-top-color:var(--nv-color-neutral-alpha-200)}.nt-bg-\\[oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.1\\)\\]{background-color:oklch(from var(--nv-color-stripes) l c h/.1)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-neutral-alpha-100{background-color:var(--nv-color-neutral-alpha-100)}.nt-bg-neutral-alpha-25{background-color:var(--nv-color-neutral-alpha-25)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.nt-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.nt-from-foreground-alpha-50{--tw-gradient-from:var(--nv-color-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-primary-foreground-alpha-200{--tw-gradient-from:var(--nv-color-primary-foreground-alpha-200) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-20\\%{--tw-gradient-from-position:20%}.nt-to-background{--tw-gradient-to:var(--nv-color-background) var(--tw-gradient-to-position)}.nt-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.nt-object-cover{object-fit:cover}.nt-p-0{padding:0}.nt-p-0\\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-2\\.5{padding:.625rem}.nt-p-3{padding:.75rem}.nt-p-4{padding:1rem}.nt-px-1{padding-left:.25rem;padding-right:.25rem}.nt-px-2{padding-left:.5rem;padding-right:.5rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-4{padding-left:1rem;padding-right:1rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\\[6px\\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-2{padding-bottom:.5rem;padding-top:.5rem}.nt-py-3{padding-bottom:.75rem;padding-top:.75rem}.nt-py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-px{padding-bottom:1px;padding-top:1px}.nt-pb-2{padding-bottom:.5rem}.nt-pb-\\[0\\.625rem\\]{padding-bottom:.625rem}.nt-pt-2{padding-top:.5rem}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-text-base{font-size:var(--nv-font-size-base);line-height:var(--nv-line-height-base)}.nt-text-sm{font-size:var(--nv-font-size-sm);line-height:var(--nv-line-height-sm)}.nt-text-xs{font-size:var(--nv-font-size-xs);line-height:var(--nv-line-height-xs)}.nt-font-medium{font-weight:500}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-opacity-0{opacity:0}.nt-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-primary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-primary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-secondary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\],.nt-shadow-dropdown{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-dropdown{--tw-shadow:0px 12px 16px -4px oklch(from var(--nv-color-shadow) l c h/0.08),0px 4px 6px -2px oklch(from var(--nv-color-shadow) l c h/0.03);--tw-shadow-colored:0px 12px 16px -4px var(--tw-shadow-color),0px 4px 6px -2px var(--tw-shadow-color)}.nt-shadow-popover{--tw-shadow:0px 8px 26px 0px oklch(from var(--nv-color-shadow) l c h/0.08),0px 2px 6px 0px oklch(from var(--nv-color-shadow) l c h/0.12);--tw-shadow-colored:0px 8px 26px 0px var(--tw-shadow-color),0px 2px 6px 0px var(--tw-shadow-color)}.nt-shadow-popover,.nt-shadow-tooltip{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 oklch(from var(--nv-color-shadow) l c h/0.08);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-backdrop-blur-lg{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nt-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.before\\:nt-absolute:before{content:var(--tw-content);position:absolute}.before\\:nt-inset-0:before{content:var(--tw-content);inset:0}.before\\:-nt-right-\\[calc\\(0\\+var\\(--stripes-size\\)\\)\\]:before{content:var(--tw-content);right:calc(var(--stripes-size)*-1)}@keyframes nt-stripes{0%{content:var(--tw-content);transform:translateX(0)}to{content:var(--tw-content);transform:translateX(calc(var(--stripes-size)*-1))}}.before\\:nt-animate-stripes:before{animation:nt-stripes 1s linear infinite paused;content:var(--tw-content)}.before\\:nt-rounded-lg:before{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.before\\:nt-rounded-md:before{border-radius:var(--nv-radius-md);content:var(--tw-content)}.before\\:nt-rounded-xl:before{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.before\\:nt-border:before{border-width:1px;content:var(--tw-content)}.before\\:nt-border-primary-foreground-alpha-100:before{border-color:var(--nv-color-primary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-border-secondary-foreground-alpha-100:before{border-color:var(--nv-color-secondary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-bg-dev-stripes-gradient:before{background-image:repeating-linear-gradient(135deg,oklch(from var(--nv-color-stripes) l c h/.1) 25%,oklch(from var(--nv-color-stripes) l c h/.1) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 75%);content:var(--tw-content)}.before\\:nt-bg-\\[length\\:var\\(--stripes-size\\)_var\\(--stripes-size\\)\\]:before{background-size:var(--stripes-size) var(--stripes-size);content:var(--tw-content)}.before\\:nt-content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.before\\:\\[mask-image\\:linear-gradient\\(transparent_0\\%\\2c black\\)\\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.after\\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\\:nt-inset-0:after{content:var(--tw-content);inset:0}.after\\:-nt-top-12:after{content:var(--tw-content);top:-3rem}.after\\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:nt-left-0:after{content:var(--tw-content);left:0}.after\\:nt-left-0\\.5:after{content:var(--tw-content);left:.125rem}.after\\:nt-top-0:after{content:var(--tw-content);top:0}.after\\:nt-top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:nt-size-3:after{content:var(--tw-content);height:.75rem;width:.75rem}.after\\:nt-h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:nt-w-full:after{content:var(--tw-content);width:100%}.after\\:nt-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-lg:after{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-text-foreground-alpha-800:hover{color:var(--nv-color-foreground-alpha-800)}.before\\:hover\\:\\[animation-play-state\\:running\\]:hover:before{animation-play-state:running;content:var(--tw-content)}.hover\\:after\\:nt-opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus\\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-rounded-lg:focus-visible{border-radius:var(--nv-radius-lg)}.focus-visible\\:nt-rounded-md:focus-visible{border-radius:var(--nv-radius-md)}.focus-visible\\:nt-rounded-xl:focus-visible{border-radius:var(--nv-radius-xl)}.focus-visible\\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\\:nt-ring-ring:focus-visible{--tw-ring-color:var(--nv-color-ring)}.focus-visible\\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100,.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.nt-peer:checked~.peer-checked\\:nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-peer:checked~.peer-checked\\:nt-bg-primary{background-color:var(--nv-color-primary)}.nt-peer:checked~.peer-checked\\:nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-peer:checked~.peer-checked\\:after\\:nt-translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-peer:checked~.peer-checked\\:after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true],.data-\\[open\\=true\\]\\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
89
22
 
90
23
  // src/ui/config/appearanceKeys.ts
91
24
  var appearanceKeys = [
@@ -241,6 +174,30 @@ var appearanceKeys = [
241
174
  // Text formatting
242
175
  "strong"
243
176
  ];
177
+ var defaultLocalization = {
178
+ locale: "en-US",
179
+ "inbox.filters.dropdownOptions.unread": "Unread only",
180
+ "inbox.filters.dropdownOptions.default": "Unread & read",
181
+ "inbox.filters.dropdownOptions.archived": "Archived",
182
+ "inbox.filters.labels.unread": "Unread",
183
+ "inbox.filters.labels.default": "Inbox",
184
+ "inbox.filters.labels.archived": "Archived",
185
+ "notifications.emptyNotice": "Quiet for now. Check back later.",
186
+ "notifications.actions.readAll": "Mark all as read",
187
+ "notifications.actions.archiveAll": "Archive all",
188
+ "notifications.actions.archiveRead": "Archive read",
189
+ "notifications.newNotifications": ({ notificationCount }) => `${notificationCount > 99 ? "99+" : notificationCount} new ${notificationCount === 1 ? "notification" : "notifications"}`,
190
+ "notification.actions.read.tooltip": "Mark as read",
191
+ "notification.actions.unread.tooltip": "Mark as unread",
192
+ "notification.actions.archive.tooltip": "Archive",
193
+ "notification.actions.unarchive.tooltip": "Unarchive",
194
+ "preferences.title": "Preferences",
195
+ "preferences.emptyNotice": "No notification specific preferences yet.",
196
+ "preferences.global": "Global Preferences",
197
+ "preferences.workflow.disabled.notice": "Contact admin to enable subscription management for this critical notification.",
198
+ "preferences.workflow.disabled.tooltip": "Contact admin to edit"
199
+ };
200
+ var [dynamicLocalization, setDynamicLocalization] = solidJs.createSignal({});
244
201
 
245
202
  // src/ui/config/defaultVariables.ts
246
203
  var defaultVariables = {
@@ -780,9 +737,9 @@ var useBrowserTabsChannel = ({
780
737
  onMessage
781
738
  }) => {
782
739
  const [tabsChannel] = solidJs.createSignal(new BroadcastChannel(channelName));
783
- const postMessage = (data) => {
740
+ const postMessage = (args) => {
784
741
  const channel = tabsChannel();
785
- channel.postMessage(data);
742
+ channel.postMessage(args);
786
743
  };
787
744
  solidJs.onMount(() => {
788
745
  const listener = (event) => {
@@ -803,7 +760,7 @@ var useWebSocketEvent = ({
803
760
  eventHandler: onMessage
804
761
  }) => {
805
762
  const novu = useNovu();
806
- const channelName = `nv_ws_connection:a=${novu.applicationIdentifier}:s=${novu.subscriberId}`;
763
+ const channelName = `nv_ws_connection:a=${novu.applicationIdentifier}:s=${novu.subscriberId}:e=${webSocketEvent}`;
807
764
  const { postMessage } = useBrowserTabsChannel({ channelName, onMessage });
808
765
  const updateReadCount = (data) => {
809
766
  onMessage(data);
@@ -822,6 +779,51 @@ var useWebSocketEvent = ({
822
779
  });
823
780
  });
824
781
  };
782
+ var LocalizationContext = solidJs.createContext(void 0);
783
+ var LocalizationProvider = (props) => {
784
+ const localization = solidJs.createMemo(() => {
785
+ const _a = props.localization || {}, {
786
+ dynamic
787
+ } = _a, localizationObject = chunk7B52C2XE_js.__objRest(_a, [
788
+ "dynamic"
789
+ ]);
790
+ return chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, defaultLocalization), dynamicLocalization()), dynamic || {}), localizationObject);
791
+ });
792
+ const t = (key, ...args) => {
793
+ const value = localization()[key];
794
+ if (typeof value === "function") {
795
+ return value(args[0]);
796
+ }
797
+ return value;
798
+ };
799
+ const locale = solidJs.createMemo(() => localization().locale);
800
+ return web.createComponent(LocalizationContext.Provider, {
801
+ value: {
802
+ t,
803
+ locale
804
+ },
805
+ get children() {
806
+ return props.children;
807
+ }
808
+ });
809
+ };
810
+ function useLocalization() {
811
+ const context = solidJs.useContext(LocalizationContext);
812
+ if (!context) {
813
+ throw new Error("useLocalization must be used within an LocalizationProvider");
814
+ }
815
+ return context;
816
+ }
817
+
818
+ // src/ui/types.ts
819
+ var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
820
+ NotificationStatus2["UNREAD_READ"] = "unreadRead";
821
+ NotificationStatus2["UNREAD"] = "unread";
822
+ NotificationStatus2["ARCHIVED"] = "archived";
823
+ return NotificationStatus2;
824
+ })(NotificationStatus || {});
825
+
826
+ // src/ui/context/InboxContext.tsx
825
827
  var InboxContext = solidJs.createContext(void 0);
826
828
  var STATUS_TO_FILTER = {
827
829
  ["unreadRead" /* UNREAD_READ */]: {
@@ -936,7 +938,7 @@ var useInboxContext = () => {
936
938
  };
937
939
  var NovuContext = solidJs.createContext(void 0);
938
940
  function NovuProvider(props) {
939
- const novu = solidJs.createMemo(() => props.novu || new chunkBD5JCEYL_js.Novu(props.options));
941
+ const novu = solidJs.createMemo(() => props.novu || new chunkWONVNOTK_js.Novu(props.options));
940
942
  return web.createComponent(NovuContext.Provider, {
941
943
  get value() {
942
944
  return novu();
@@ -2311,7 +2313,7 @@ var useNotificationsInfiniteScroll = (props) => {
2311
2313
  );
2312
2314
  solidJs.onMount(() => {
2313
2315
  const listener = ({ data: data2 }) => {
2314
- if (!data2 || !chunkBD5JCEYL_js.isSameFilter(filter, data2.filter)) {
2316
+ if (!data2 || !chunkWONVNOTK_js.isSameFilter(filter, data2.filter)) {
2315
2317
  return;
2316
2318
  }
2317
2319
  mutate({ data: data2.notifications, hasMore: data2.hasMore });
@@ -2321,7 +2323,7 @@ var useNotificationsInfiniteScroll = (props) => {
2321
2323
  });
2322
2324
  solidJs.createEffect(() => chunk7B52C2XE_js.__async(void 0, null, function* () {
2323
2325
  const newFilter = chunk7B52C2XE_js.__spreadValues({}, props.options());
2324
- if (chunkBD5JCEYL_js.isSameFilter(filter, newFilter)) {
2326
+ if (chunkWONVNOTK_js.isSameFilter(filter, newFilter)) {
2325
2327
  return;
2326
2328
  }
2327
2329
  novu.notifications.clearCache();
@@ -4486,11 +4488,10 @@ var Renderer = (props) => {
4486
4488
  if (el) {
4487
4489
  return;
4488
4490
  }
4489
- const link = document.createElement("link");
4490
- link.id = id;
4491
- link.rel = "stylesheet";
4492
- link.href = props.cssHref;
4493
- document.head.insertBefore(link, document.head.firstChild);
4491
+ const styleEl = document.createElement("style");
4492
+ styleEl.id = id;
4493
+ document.head.insertBefore(styleEl, document.head.firstChild);
4494
+ styleEl.innerHTML = ui_default;
4494
4495
  solidJs.onCleanup(() => {
4495
4496
  const element = document.getElementById(id);
4496
4497
  element == null ? void 0 : element.remove();
@@ -4577,8 +4578,8 @@ var Renderer = (props) => {
4577
4578
  }
4578
4579
  });
4579
4580
  };
4580
- var version = "3.0.1";
4581
- var cssHref = `https://cdn.jsdelivr.net/npm/@novu/js@${version}/dist/index.css`;
4581
+
4582
+ // src/ui/novuUI.tsx
4582
4583
  var _dispose, _rootElement, _mountedElements, _setMountedElements, _appearance, _setAppearance, _localization, _setLocalization, _options, _setOptions, _tabs, _setTabs, _routerPush, _setRouterPush, _preferencesFilter, _setPreferencesFilter, _predefinedNovu, _NovuUI_instances, mountComponentRenderer_fn, updateComponentProps_fn;
4583
4584
  var NovuUI = class {
4584
4585
  constructor(props) {
@@ -4703,7 +4704,6 @@ mountComponentRenderer_fn = function() {
4703
4704
  const dispose = web.render(() => {
4704
4705
  const _self$ = this;
4705
4706
  return web.createComponent(Renderer, {
4706
- cssHref,
4707
4707
  novuUI: _self$,
4708
4708
  get nodes() {
4709
4709
  var _a;
@@ -10,20 +10,6 @@ var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
10
10
  NotificationStatus2["UNSEEN"] = "unseen";
11
11
  return NotificationStatus2;
12
12
  })(NotificationStatus || {});
13
- var NotificationButton = /* @__PURE__ */ ((NotificationButton2) => {
14
- NotificationButton2["PRIMARY"] = "primary";
15
- NotificationButton2["SECONDARY"] = "secondary";
16
- return NotificationButton2;
17
- })(NotificationButton || {});
18
- var NotificationActionStatus = /* @__PURE__ */ ((NotificationActionStatus2) => {
19
- NotificationActionStatus2["PENDING"] = "pending";
20
- NotificationActionStatus2["DONE"] = "done";
21
- return NotificationActionStatus2;
22
- })(NotificationActionStatus || {});
23
- var CtaType = /* @__PURE__ */ ((CtaType2) => {
24
- CtaType2["REDIRECT"] = "redirect";
25
- return CtaType2;
26
- })(CtaType || {});
27
13
  var PreferenceLevel = /* @__PURE__ */ ((PreferenceLevel2) => {
28
14
  PreferenceLevel2["GLOBAL"] = "global";
29
15
  PreferenceLevel2["TEMPLATE"] = "template";
@@ -37,29 +23,12 @@ var ChannelType = /* @__PURE__ */ ((ChannelType2) => {
37
23
  ChannelType2["PUSH"] = "push";
38
24
  return ChannelType2;
39
25
  })(ChannelType || {});
40
- var PreferenceOverrideSource = /* @__PURE__ */ ((PreferenceOverrideSource2) => {
41
- PreferenceOverrideSource2["SUBSCRIBER"] = "subscriber";
42
- PreferenceOverrideSource2["TEMPLATE"] = "template";
43
- PreferenceOverrideSource2["WORKFLOW_OVERRIDE"] = "workflowOverride";
44
- return PreferenceOverrideSource2;
45
- })(PreferenceOverrideSource || {});
46
26
  var WebSocketEvent = /* @__PURE__ */ ((WebSocketEvent2) => {
47
27
  WebSocketEvent2["RECEIVED"] = "notification_received";
48
28
  WebSocketEvent2["UNREAD"] = "unread_count_changed";
49
29
  WebSocketEvent2["UNSEEN"] = "unseen_count_changed";
50
30
  return WebSocketEvent2;
51
31
  })(WebSocketEvent || {});
52
- var ActionTypeEnum = /* @__PURE__ */ ((ActionTypeEnum2) => {
53
- ActionTypeEnum2["PRIMARY"] = "primary";
54
- ActionTypeEnum2["SECONDARY"] = "secondary";
55
- return ActionTypeEnum2;
56
- })(ActionTypeEnum || {});
57
- var PreferenceOverrideSourceEnum = /* @__PURE__ */ ((PreferenceOverrideSourceEnum2) => {
58
- PreferenceOverrideSourceEnum2["SUBSCRIBER"] = "subscriber";
59
- PreferenceOverrideSourceEnum2["TEMPLATE"] = "template";
60
- PreferenceOverrideSourceEnum2["WORKFLOW_OVERRIDE"] = "workflowOverride";
61
- return PreferenceOverrideSourceEnum2;
62
- })(PreferenceOverrideSourceEnum || {});
63
32
 
64
33
  // src/utils/arrays.ts
65
34
  var arrayValuesEqual = (arr1, arr2) => {
@@ -84,7 +53,7 @@ var isSameFilter = (filter1, filter2) => {
84
53
  // src/api/http-client.ts
85
54
  var DEFAULT_API_VERSION = "v1";
86
55
  var DEFAULT_BACKEND_URL = "https://api.novu.co";
87
- var DEFAULT_USER_AGENT = `${"@novu/js"}@${"3.0.1"}`;
56
+ var DEFAULT_USER_AGENT = `${"@novu/js"}@${"3.1.0"}`;
88
57
  var HttpClient = class {
89
58
  constructor(options = {}) {
90
59
  const {
@@ -407,6 +376,7 @@ var Notification = class {
407
376
  this.tags = notification.tags;
408
377
  this.redirect = notification.redirect;
409
378
  this.data = notification.data;
379
+ this.workflow = notification.workflow;
410
380
  }
411
381
  read() {
412
382
  return read({
@@ -1559,7 +1529,8 @@ var mapToNotification = ({
1559
1529
  avatar,
1560
1530
  cta,
1561
1531
  tags,
1562
- data
1532
+ data,
1533
+ workflow
1563
1534
  }) => {
1564
1535
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
1565
1536
  const to = {
@@ -1606,7 +1577,8 @@ var mapToNotification = ({
1606
1577
  url: cta.data.url,
1607
1578
  target: cta.data.target
1608
1579
  } : void 0,
1609
- data
1580
+ data,
1581
+ workflow
1610
1582
  };
1611
1583
  };
1612
1584
  var _token, _emitter6, _socketIo, _socketUrl, _notificationReceived, _unseenCountChanged, _unreadCountChanged, _Socket_instances, initializeSocket_fn, handleConnectSocket_fn, handleDisconnectSocket_fn;
@@ -1785,4 +1757,4 @@ _emitter7 = new WeakMap();
1785
1757
  _session = new WeakMap();
1786
1758
  _inboxService3 = new WeakMap();
1787
1759
 
1788
- export { ActionTypeEnum, ChannelType, CtaType, NotificationActionStatus, NotificationButton, NotificationStatus, Novu, PreferenceLevel, PreferenceOverrideSource, PreferenceOverrideSourceEnum, WebSocketEvent, areTagsEqual, isSameFilter };
1760
+ export { ChannelType, NotificationStatus, Novu, PreferenceLevel, WebSocketEvent, areTagsEqual, isSameFilter };
@@ -1,5 +1,5 @@
1
- import { N as NotificationFilter } from './novu-CalZFixf.mjs';
2
- export { k as Action, A as ActionTypeEnum, m as ChannelPreference, f as ChannelType, C as CtaType, E as EventHandler, a as Events, F as FiltersCountResponse, q as IPreferenceOverride, I as InboxNotification, L as ListNotificationsResponse, i as MessageAction, M as MessageButton, u as Notification, e as NotificationActionStatus, d as NotificationButton, c as NotificationStatus, b as Novu, w as NovuError, s as NovuOptions, n as PaginatedResponse, v as Preference, P as PreferenceLevel, g as PreferenceOverrideSource, p as PreferenceOverrideSourceEnum, o as PreferencesResponse, t as Prettify, R as Redirect, r as Result, h as Session, S as SocketEventNames, j as Subscriber, T as TODO, W as WebSocketEvent, l as Workflow } from './novu-CalZFixf.mjs';
1
+ import { N as NotificationFilter } from './novu-DDPQzl99.mjs';
2
+ export { C as ChannelPreference, c as ChannelType, E as EventHandler, a as Events, F as FiltersCountResponse, I as InboxNotification, L as ListNotificationsResponse, d as Notification, e as NotificationStatus, b as Novu, f as NovuError, g as NovuOptions, P as Preference, h as PreferenceLevel, i as PreferencesResponse, S as SocketEventNames, W as WebSocketEvent } from './novu-DDPQzl99.mjs';
3
3
 
4
4
  declare const areTagsEqual: (tags1?: string[], tags2?: string[]) => boolean;
5
5
  declare const isSameFilter: (filter1: NotificationFilter, filter2: NotificationFilter) => boolean;
@@ -1,2 +1,2 @@
1
- export { ActionTypeEnum, ChannelType, CtaType, NotificationActionStatus, NotificationButton, NotificationStatus, Novu, PreferenceLevel, PreferenceOverrideSource, PreferenceOverrideSourceEnum, WebSocketEvent, areTagsEqual, isSameFilter } from './chunk-MT6EQHGN.mjs';
1
+ export { ChannelType, NotificationStatus, Novu, PreferenceLevel, WebSocketEvent, areTagsEqual, isSameFilter } from './chunk-WQDFFXIB.mjs';
2
2
  import './chunk-STZMOEWR.mjs';
@@ -50,23 +50,22 @@ declare class Preference {
50
50
  channelPreferences, }: Prettify<Pick<UpdatePreferencesArgs, 'channels' | 'channelPreferences'>>): Result<Preference>;
51
51
  }
52
52
 
53
+ declare global {
54
+ /**
55
+ * If you want to provide custom types for the notification.data object,
56
+ * simply redeclare this rule in the global namespace.
57
+ * Every notification object will use the provided type.
58
+ */
59
+ interface NotificationData {
60
+ [k: string]: unknown;
61
+ }
62
+ }
53
63
  declare enum NotificationStatus {
54
64
  READ = "read",
55
65
  SEEN = "seen",
56
66
  UNREAD = "unread",
57
67
  UNSEEN = "unseen"
58
68
  }
59
- declare enum NotificationButton {
60
- PRIMARY = "primary",
61
- SECONDARY = "secondary"
62
- }
63
- declare enum NotificationActionStatus {
64
- PENDING = "pending",
65
- DONE = "done"
66
- }
67
- declare enum CtaType {
68
- REDIRECT = "redirect"
69
- }
70
69
  declare enum PreferenceLevel {
71
70
  GLOBAL = "global",
72
71
  TEMPLATE = "template"
@@ -78,39 +77,17 @@ declare enum ChannelType {
78
77
  CHAT = "chat",
79
78
  PUSH = "push"
80
79
  }
81
- declare enum PreferenceOverrideSource {
82
- SUBSCRIBER = "subscriber",
83
- TEMPLATE = "template",
84
- WORKFLOW_OVERRIDE = "workflowOverride"
85
- }
86
80
  declare enum WebSocketEvent {
87
81
  RECEIVED = "notification_received",
88
82
  UNREAD = "unread_count_changed",
89
83
  UNSEEN = "unseen_count_changed"
90
84
  }
91
- declare enum ActionTypeEnum {
92
- PRIMARY = "primary",
93
- SECONDARY = "secondary"
94
- }
95
85
  type Session = {
96
86
  token: string;
97
87
  totalUnreadCount: number;
98
88
  removeNovuBranding: boolean;
99
89
  isDevelopmentMode: boolean;
100
90
  };
101
- type MessageButton = {
102
- type: NotificationButton;
103
- content: string;
104
- resultContent?: string;
105
- };
106
- type MessageAction = {
107
- status?: NotificationActionStatus;
108
- buttons?: MessageButton[];
109
- result: {
110
- payload?: Record<string, unknown>;
111
- type?: NotificationButton;
112
- };
113
- };
114
91
  type Subscriber = {
115
92
  id: string;
116
93
  firstName?: string;
@@ -122,11 +99,22 @@ type Redirect = {
122
99
  url: string;
123
100
  target?: '_self' | '_blank' | '_parent' | '_top' | '_unfencedTop';
124
101
  };
102
+ declare enum ActionTypeEnum {
103
+ PRIMARY = "primary",
104
+ SECONDARY = "secondary"
105
+ }
125
106
  type Action = {
126
107
  label: string;
127
108
  isCompleted: boolean;
128
109
  redirect?: Redirect;
129
110
  };
111
+ type Workflow = {
112
+ id: string;
113
+ identifier: string;
114
+ name: string;
115
+ critical: boolean;
116
+ tags?: string[];
117
+ };
130
118
  type InboxNotification = {
131
119
  id: string;
132
120
  subject?: string;
@@ -142,21 +130,15 @@ type InboxNotification = {
142
130
  secondaryAction?: Action;
143
131
  channelType: ChannelType;
144
132
  tags?: string[];
145
- data?: Record<string, unknown>;
133
+ data?: NotificationData;
146
134
  redirect?: Redirect;
135
+ workflow?: Workflow;
147
136
  };
148
137
  type NotificationFilter = {
149
138
  tags?: string[];
150
139
  read?: boolean;
151
140
  archived?: boolean;
152
141
  };
153
- type Workflow = {
154
- id: string;
155
- identifier: string;
156
- name: string;
157
- critical: boolean;
158
- tags?: string[];
159
- };
160
142
  type ChannelPreference = {
161
143
  email?: boolean;
162
144
  sms?: boolean;
@@ -164,13 +146,6 @@ type ChannelPreference = {
164
146
  chat?: boolean;
165
147
  push?: boolean;
166
148
  };
167
- type PaginatedResponse<T = unknown> = {
168
- data: T[];
169
- hasMore: boolean;
170
- totalCount: number;
171
- pageSize: number;
172
- page: number;
173
- };
174
149
  type PreferencesResponse = {
175
150
  level: PreferenceLevel;
176
151
  enabled: boolean;
@@ -187,7 +162,6 @@ type IPreferenceOverride = {
187
162
  channel: ChannelType;
188
163
  source: PreferenceOverrideSourceEnum;
189
164
  };
190
- type TODO = any;
191
165
  type Result<D = undefined, E = NovuError> = Promise<{
192
166
  data?: D;
193
167
  error?: E;
@@ -308,6 +282,7 @@ declare class Notification implements Pick<NovuEventEmitter, 'on'>, InboxNotific
308
282
  readonly tags: InboxNotification['tags'];
309
283
  readonly redirect: InboxNotification['redirect'];
310
284
  readonly data?: InboxNotification['data'];
285
+ readonly workflow?: InboxNotification['workflow'];
311
286
  constructor(notification: InboxNotification, emitter: NovuEventEmitter, inboxService: InboxService);
312
287
  read(): Result<Notification>;
313
288
  unread(): Result<Notification>;
@@ -570,4 +545,4 @@ declare class Novu implements Pick<NovuEventEmitter, 'on'> {
570
545
  constructor(options: NovuOptions);
571
546
  }
572
547
 
573
- export { ActionTypeEnum as A, CtaType as C, type EventHandler as E, type FiltersCountResponse as F, type InboxNotification as I, type ListNotificationsResponse as L, type MessageButton as M, type NotificationFilter as N, PreferenceLevel as P, type Redirect as R, type SocketEventNames as S, type TODO as T, WebSocketEvent as W, type Events as a, Novu as b, NotificationStatus as c, NotificationButton as d, NotificationActionStatus as e, ChannelType as f, PreferenceOverrideSource as g, type Session as h, type MessageAction as i, type Subscriber as j, type Action as k, type Workflow as l, type ChannelPreference as m, type PaginatedResponse as n, type PreferencesResponse as o, PreferenceOverrideSourceEnum as p, type IPreferenceOverride as q, type Result as r, type NovuOptions as s, type Prettify as t, Notification as u, Preference as v, NovuError as w };
548
+ export { type ChannelPreference as C, type EventHandler as E, type FiltersCountResponse as F, type InboxNotification as I, type ListNotificationsResponse as L, type NotificationFilter as N, Preference as P, type SocketEventNames as S, WebSocketEvent as W, type Events as a, Novu as b, ChannelType as c, Notification as d, NotificationStatus as e, NovuError as f, type NovuOptions as g, PreferenceLevel as h, type PreferencesResponse as i };
@@ -1,5 +1,5 @@
1
- import { h as Theme } from '../types-DC-kqier.mjs';
2
- import '../novu-CalZFixf.mjs';
1
+ import { j as Theme } from '../types-DFXwHejb.mjs';
2
+ import '../novu-DDPQzl99.mjs';
3
3
 
4
4
  declare const dark: Theme;
5
5
 
@@ -1,4 +1,4 @@
1
- import { u as Notification, N as NotificationFilter, s as NovuOptions, b as Novu } from './novu-CalZFixf.mjs';
1
+ import { d as Notification, N as NotificationFilter, g as NovuOptions, b as Novu } from './novu-DDPQzl99.mjs';
2
2
 
3
3
  declare const appearanceKeys: readonly ["button", "icon", "popoverContent", "popoverTrigger", "dropdownContent", "dropdownTrigger", "dropdownItem", "dropdownItemLabel", "dropdownItemLabelContainer", "dropdownItemLeft__icon", "dropdownItemRight__icon", "dropdownItem__icon", "collapsible", "tooltipContent", "tooltipTrigger", "back__button", "skeletonText", "skeletonAvatar", "skeletonSwitch", "skeletonSwitchThumb", "tabsRoot", "tabsList", "tabsContent", "tabsTrigger", "dots", "root", "bellIcon", "bellContainer", "bellDot", "preferences__button", "preferencesContainer", "inboxHeader", "loading", "inboxContent", "inbox__popoverTrigger", "inbox__popoverContent", "notificationListContainer", "notificationList", "notificationListEmptyNoticeContainer", "notificationListEmptyNoticeOverlay", "notificationListEmptyNoticeIcon", "notificationListEmptyNotice", "notificationList__skeleton", "notificationList__skeletonContent", "notificationList__skeletonItem", "notificationList__skeletonAvatar", "notificationList__skeletonText", "notificationListNewNotificationsNotice__button", "notification", "notificationContent", "notificationTextContainer", "notificationDot", "notificationSubject", "notificationSubject__strong", "notificationBody", "notificationBody__strong", "notificationBodyContainer", "notificationImage", "notificationImageLoadingFallback", "notificationDate", "notificationDateActionsContainer", "notificationDefaultActions", "notificationCustomActions", "notificationPrimaryAction__button", "notificationSecondaryAction__button", "notificationRead__button", "notificationUnread__button", "notificationArchive__button", "notificationUnarchive__button", "notificationRead__icon", "notificationUnread__icon", "notificationArchive__icon", "notificationUnarchive__icon", "notificationsTabs__tabsRoot", "notificationsTabs__tabsList", "notificationsTabs__tabsContent", "notificationsTabs__tabsTrigger", "notificationsTabsTriggerLabel", "notificationsTabsTriggerCount", "inboxStatus__title", "inboxStatus__dropdownTrigger", "inboxStatus__dropdownContent", "inboxStatus__dropdownItem", "inboxStatus__dropdownItemLabel", "inboxStatus__dropdownItemLabelContainer", "inboxStatus__dropdownItemLeft__icon", "inboxStatus__dropdownItemRight__icon", "inboxStatus__dropdownItem__icon", "inboxStatus__dropdownItemCheck__icon", "moreActionsContainer", "moreActions__dropdownTrigger", "moreActions__dropdownContent", "moreActions__dropdownItem", "moreActions__dropdownItemLabel", "moreActions__dropdownItemLeft__icon", "moreActions__dots", "moreTabs__button", "moreTabs__icon", "moreTabs__dropdownTrigger", "moreTabs__dropdownContent", "moreTabs__dropdownItem", "moreTabs__dropdownItemLabel", "moreTabs__dropdownItemRight__icon", "workflowContainer", "workflowLabel", "workflowLabelHeader", "workflowLabelContainer", "workflowContainerDisabledNotice", "workflowLabelDisabled__icon", "workflowContainerRight__icon", "workflowArrow__icon", "workflowDescription", "channelContainer", "channelIconContainer", "channel__icon", "channelsContainerCollapsible", "channelsContainer", "channelLabel", "channelLabelContainer", "channelName", "channelSwitchContainer", "channelSwitch", "channelSwitchThumb", "preferencesHeader", "preferencesHeader__back__button", "preferencesHeader__back__button__icon", "preferencesHeader__title", "preferencesHeader__icon", "preferencesListEmptyNoticeContainer", "preferencesListEmptyNotice", "preferencesList__skeleton", "preferencesList__skeletonContent", "preferencesList__skeletonItem", "preferencesList__skeletonIcon", "preferencesList__skeletonSwitch", "preferencesList__skeletonSwitchThumb", "preferencesList__skeletonText", "strong"];
4
4
 
@@ -100,4 +100,4 @@ declare enum NotificationStatus {
100
100
  }
101
101
  type PreferencesFilter = Pick<NotificationFilter, 'tags'>;
102
102
 
103
- export { type Appearance as A, type BellRenderer as B, type CSSProperties as C, type ElementStyles as E, type Localization as L, type NotificationClickHandler as N, type PreferencesFilter as P, type RouterPush as R, type SubjectRenderer as S, type Tab as T, type Variables as V, type NotificationActionClickHandler as a, type NotificationRenderer as b, type BodyRenderer as c, type NovuProviderProps as d, type BaseNovuProviderProps as e, type AppearanceKey as f, type Elements as g, type Theme as h, NotificationStatus as i, type LocalizationKey as j };
103
+ export { type Appearance as A, type BellRenderer as B, type Elements as E, type Localization as L, type NotificationClickHandler as N, type PreferencesFilter as P, type RouterPush as R, type SubjectRenderer as S, type Tab as T, type Variables as V, type NotificationActionClickHandler as a, type NotificationRenderer as b, type BodyRenderer as c, type NovuProviderProps as d, type BaseNovuProviderProps as e, type AppearanceKey as f, type ElementStyles as g, type LocalizationKey as h, NotificationStatus as i, type Theme as j };
@@ -1,7 +1,7 @@
1
- import { s as NovuOptions } from '../novu-CalZFixf.mjs';
2
- export { u as Notification } from '../novu-CalZFixf.mjs';
3
- import { B as BellRenderer, N as NotificationClickHandler, a as NotificationActionClickHandler, b as NotificationRenderer, S as SubjectRenderer, c as BodyRenderer, d as NovuProviderProps, e as BaseNovuProviderProps, A as Appearance, L as Localization, T as Tab, P as PreferencesFilter, R as RouterPush } from '../types-DC-kqier.mjs';
4
- export { f as AppearanceKey, C as CSSProperties, E as ElementStyles, g as Elements, j as LocalizationKey, i as NotificationStatus, h as Theme, V as Variables } from '../types-DC-kqier.mjs';
1
+ import { g as NovuOptions } from '../novu-DDPQzl99.mjs';
2
+ export { d as Notification } from '../novu-DDPQzl99.mjs';
3
+ import { B as BellRenderer, N as NotificationClickHandler, a as NotificationActionClickHandler, b as NotificationRenderer, S as SubjectRenderer, c as BodyRenderer, d as NovuProviderProps, e as BaseNovuProviderProps, A as Appearance, L as Localization, T as Tab, P as PreferencesFilter, R as RouterPush } from '../types-DFXwHejb.mjs';
4
+ export { f as AppearanceKey, g as ElementStyles, E as Elements, h as LocalizationKey, i as NotificationStatus, V as Variables } from '../types-DFXwHejb.mjs';
5
5
  import { Placement, OffsetOptions } from '@floating-ui/dom';
6
6
  import * as solid_js from 'solid-js';
7
7
  import { ComponentProps } from 'solid-js';
@@ -75,4 +75,4 @@ declare class NovuUI {
75
75
  unmount(): void;
76
76
  }
77
77
 
78
- export { Appearance, BaseNovuProviderProps, type BaseNovuUIOptions, BellRenderer, BodyRenderer, InboxPage, type InboxProps, Localization, NotificationActionClickHandler, NotificationClickHandler, NotificationRenderer, NovuProviderProps, NovuUI, type NovuUIOptions, PreferencesFilter, RouterPush, SubjectRenderer, Tab };
78
+ export { Appearance, type BaseNovuUIOptions, BellRenderer, BodyRenderer, InboxPage, type InboxProps, Localization, NotificationActionClickHandler, NotificationClickHandler, NotificationRenderer, NovuProviderProps, NovuUI, type NovuUIOptions, PreferencesFilter, RouterPush, SubjectRenderer, Tab };