@novu/js 3.0.3 → 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.
- package/dist/cjs/{chunk-47NZ3DJQ.js → chunk-WONVNOTK.js} +4 -41
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +8 -32
- package/dist/{esm/novu-BXVPjTIj.d.mts → cjs/novu-DDPQzl99.d.ts} +14 -51
- package/dist/cjs/themes/index.d.ts +2 -2
- package/dist/cjs/{types-BOvaROWQ.d.ts → types-CVvP6EyP.d.ts} +2 -2
- package/dist/cjs/ui/index.d.ts +5 -5
- package/dist/cjs/ui/index.js +84 -84
- package/dist/esm/{chunk-GCPLP2EW.mjs → chunk-WQDFFXIB.mjs} +5 -36
- package/dist/esm/index.d.mts +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/{cjs/novu-BXVPjTIj.d.ts → esm/novu-DDPQzl99.d.mts} +14 -51
- package/dist/esm/themes/index.d.mts +2 -2
- package/dist/esm/{types-Du_GH8TU.d.mts → types-DFXwHejb.d.mts} +2 -2
- package/dist/esm/ui/index.d.mts +5 -5
- package/dist/esm/ui/index.mjs +81 -81
- package/dist/novu.min.js +1 -1
- package/dist/novu.min.js.gz +0 -0
- package/package.json +3 -2
package/dist/cjs/ui/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
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
|
-
|
|
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 = (
|
|
740
|
+
const postMessage = (args) => {
|
|
784
741
|
const channel = tabsChannel();
|
|
785
|
-
channel.postMessage(
|
|
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
|
|
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 || !
|
|
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 (
|
|
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
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
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
|
-
|
|
4581
|
-
|
|
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
|
|
56
|
+
var DEFAULT_USER_AGENT = `${"@novu/js"}@${"3.1.0"}`;
|
|
88
57
|
var HttpClient = class {
|
|
89
58
|
constructor(options = {}) {
|
|
90
59
|
const {
|
|
@@ -407,7 +376,7 @@ var Notification = class {
|
|
|
407
376
|
this.tags = notification.tags;
|
|
408
377
|
this.redirect = notification.redirect;
|
|
409
378
|
this.data = notification.data;
|
|
410
|
-
this.
|
|
379
|
+
this.workflow = notification.workflow;
|
|
411
380
|
}
|
|
412
381
|
read() {
|
|
413
382
|
return read({
|
|
@@ -1561,7 +1530,7 @@ var mapToNotification = ({
|
|
|
1561
1530
|
cta,
|
|
1562
1531
|
tags,
|
|
1563
1532
|
data,
|
|
1564
|
-
|
|
1533
|
+
workflow
|
|
1565
1534
|
}) => {
|
|
1566
1535
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
1567
1536
|
const to = {
|
|
@@ -1609,7 +1578,7 @@ var mapToNotification = ({
|
|
|
1609
1578
|
target: cta.data.target
|
|
1610
1579
|
} : void 0,
|
|
1611
1580
|
data,
|
|
1612
|
-
|
|
1581
|
+
workflow
|
|
1613
1582
|
};
|
|
1614
1583
|
};
|
|
1615
1584
|
var _token, _emitter6, _socketIo, _socketUrl, _notificationReceived, _unseenCountChanged, _unreadCountChanged, _Socket_instances, initializeSocket_fn, handleConnectSocket_fn, handleDisconnectSocket_fn;
|
|
@@ -1788,4 +1757,4 @@ _emitter7 = new WeakMap();
|
|
|
1788
1757
|
_session = new WeakMap();
|
|
1789
1758
|
_inboxService3 = new WeakMap();
|
|
1790
1759
|
|
|
1791
|
-
export {
|
|
1760
|
+
export { ChannelType, NotificationStatus, Novu, PreferenceLevel, WebSocketEvent, areTagsEqual, isSameFilter };
|
package/dist/esm/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NotificationFilter } from './novu-
|
|
2
|
-
export {
|
|
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;
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ChannelType, NotificationStatus, Novu, PreferenceLevel, WebSocketEvent, areTagsEqual, isSameFilter } from './chunk-WQDFFXIB.mjs';
|
|
2
2
|
import './chunk-STZMOEWR.mjs';
|
|
@@ -66,17 +66,6 @@ declare enum NotificationStatus {
|
|
|
66
66
|
UNREAD = "unread",
|
|
67
67
|
UNSEEN = "unseen"
|
|
68
68
|
}
|
|
69
|
-
declare enum NotificationButton {
|
|
70
|
-
PRIMARY = "primary",
|
|
71
|
-
SECONDARY = "secondary"
|
|
72
|
-
}
|
|
73
|
-
declare enum NotificationActionStatus {
|
|
74
|
-
PENDING = "pending",
|
|
75
|
-
DONE = "done"
|
|
76
|
-
}
|
|
77
|
-
declare enum CtaType {
|
|
78
|
-
REDIRECT = "redirect"
|
|
79
|
-
}
|
|
80
69
|
declare enum PreferenceLevel {
|
|
81
70
|
GLOBAL = "global",
|
|
82
71
|
TEMPLATE = "template"
|
|
@@ -88,39 +77,17 @@ declare enum ChannelType {
|
|
|
88
77
|
CHAT = "chat",
|
|
89
78
|
PUSH = "push"
|
|
90
79
|
}
|
|
91
|
-
declare enum PreferenceOverrideSource {
|
|
92
|
-
SUBSCRIBER = "subscriber",
|
|
93
|
-
TEMPLATE = "template",
|
|
94
|
-
WORKFLOW_OVERRIDE = "workflowOverride"
|
|
95
|
-
}
|
|
96
80
|
declare enum WebSocketEvent {
|
|
97
81
|
RECEIVED = "notification_received",
|
|
98
82
|
UNREAD = "unread_count_changed",
|
|
99
83
|
UNSEEN = "unseen_count_changed"
|
|
100
84
|
}
|
|
101
|
-
declare enum ActionTypeEnum {
|
|
102
|
-
PRIMARY = "primary",
|
|
103
|
-
SECONDARY = "secondary"
|
|
104
|
-
}
|
|
105
85
|
type Session = {
|
|
106
86
|
token: string;
|
|
107
87
|
totalUnreadCount: number;
|
|
108
88
|
removeNovuBranding: boolean;
|
|
109
89
|
isDevelopmentMode: boolean;
|
|
110
90
|
};
|
|
111
|
-
type MessageButton = {
|
|
112
|
-
type: NotificationButton;
|
|
113
|
-
content: string;
|
|
114
|
-
resultContent?: string;
|
|
115
|
-
};
|
|
116
|
-
type MessageAction = {
|
|
117
|
-
status?: NotificationActionStatus;
|
|
118
|
-
buttons?: MessageButton[];
|
|
119
|
-
result: {
|
|
120
|
-
payload?: Record<string, unknown>;
|
|
121
|
-
type?: NotificationButton;
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
91
|
type Subscriber = {
|
|
125
92
|
id: string;
|
|
126
93
|
firstName?: string;
|
|
@@ -132,11 +99,22 @@ type Redirect = {
|
|
|
132
99
|
url: string;
|
|
133
100
|
target?: '_self' | '_blank' | '_parent' | '_top' | '_unfencedTop';
|
|
134
101
|
};
|
|
102
|
+
declare enum ActionTypeEnum {
|
|
103
|
+
PRIMARY = "primary",
|
|
104
|
+
SECONDARY = "secondary"
|
|
105
|
+
}
|
|
135
106
|
type Action = {
|
|
136
107
|
label: string;
|
|
137
108
|
isCompleted: boolean;
|
|
138
109
|
redirect?: Redirect;
|
|
139
110
|
};
|
|
111
|
+
type Workflow = {
|
|
112
|
+
id: string;
|
|
113
|
+
identifier: string;
|
|
114
|
+
name: string;
|
|
115
|
+
critical: boolean;
|
|
116
|
+
tags?: string[];
|
|
117
|
+
};
|
|
140
118
|
type InboxNotification = {
|
|
141
119
|
id: string;
|
|
142
120
|
subject?: string;
|
|
@@ -154,20 +132,13 @@ type InboxNotification = {
|
|
|
154
132
|
tags?: string[];
|
|
155
133
|
data?: NotificationData;
|
|
156
134
|
redirect?: Redirect;
|
|
157
|
-
|
|
135
|
+
workflow?: Workflow;
|
|
158
136
|
};
|
|
159
137
|
type NotificationFilter = {
|
|
160
138
|
tags?: string[];
|
|
161
139
|
read?: boolean;
|
|
162
140
|
archived?: boolean;
|
|
163
141
|
};
|
|
164
|
-
type Workflow = {
|
|
165
|
-
id: string;
|
|
166
|
-
identifier: string;
|
|
167
|
-
name: string;
|
|
168
|
-
critical: boolean;
|
|
169
|
-
tags?: string[];
|
|
170
|
-
};
|
|
171
142
|
type ChannelPreference = {
|
|
172
143
|
email?: boolean;
|
|
173
144
|
sms?: boolean;
|
|
@@ -175,13 +146,6 @@ type ChannelPreference = {
|
|
|
175
146
|
chat?: boolean;
|
|
176
147
|
push?: boolean;
|
|
177
148
|
};
|
|
178
|
-
type PaginatedResponse<T = unknown> = {
|
|
179
|
-
data: T[];
|
|
180
|
-
hasMore: boolean;
|
|
181
|
-
totalCount: number;
|
|
182
|
-
pageSize: number;
|
|
183
|
-
page: number;
|
|
184
|
-
};
|
|
185
149
|
type PreferencesResponse = {
|
|
186
150
|
level: PreferenceLevel;
|
|
187
151
|
enabled: boolean;
|
|
@@ -198,7 +162,6 @@ type IPreferenceOverride = {
|
|
|
198
162
|
channel: ChannelType;
|
|
199
163
|
source: PreferenceOverrideSourceEnum;
|
|
200
164
|
};
|
|
201
|
-
type TODO = any;
|
|
202
165
|
type Result<D = undefined, E = NovuError> = Promise<{
|
|
203
166
|
data?: D;
|
|
204
167
|
error?: E;
|
|
@@ -319,7 +282,7 @@ declare class Notification implements Pick<NovuEventEmitter, 'on'>, InboxNotific
|
|
|
319
282
|
readonly tags: InboxNotification['tags'];
|
|
320
283
|
readonly redirect: InboxNotification['redirect'];
|
|
321
284
|
readonly data?: InboxNotification['data'];
|
|
322
|
-
readonly
|
|
285
|
+
readonly workflow?: InboxNotification['workflow'];
|
|
323
286
|
constructor(notification: InboxNotification, emitter: NovuEventEmitter, inboxService: InboxService);
|
|
324
287
|
read(): Result<Notification>;
|
|
325
288
|
unread(): Result<Notification>;
|
|
@@ -582,4 +545,4 @@ declare class Novu implements Pick<NovuEventEmitter, 'on'> {
|
|
|
582
545
|
constructor(options: NovuOptions);
|
|
583
546
|
}
|
|
584
547
|
|
|
585
|
-
export {
|
|
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,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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 };
|
package/dist/esm/ui/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
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-
|
|
4
|
-
export { f as AppearanceKey,
|
|
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,
|
|
78
|
+
export { Appearance, type BaseNovuUIOptions, BellRenderer, BodyRenderer, InboxPage, type InboxProps, Localization, NotificationActionClickHandler, NotificationClickHandler, NotificationRenderer, NovuProviderProps, NovuUI, type NovuUIOptions, PreferencesFilter, RouterPush, SubjectRenderer, Tab };
|