@novu/js 3.8.1 → 3.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Novu, checkNotificationTagFilter, checkNotificationDataFilter, isBrowser, DEFAULT_API_VERSION, isSameFilter } from '../chunk-HL3WZM2B.mjs';
1
+ import { Novu, checkNotificationTagFilter, checkNotificationDataFilter, isBrowser, DEFAULT_API_VERSION, isSameFilter } from '../chunk-3CKXF2I4.mjs';
2
2
  import { parseMarkdownIntoTokens } from '../chunk-QOD7NZ77.mjs';
3
3
  import { __privateAdd, __privateMethod, __privateSet, __privateGet, __spreadProps, __spreadValues, __objRest, __async } from '../chunk-STZMOEWR.mjs';
4
4
  import { createComponent, mergeProps, delegateEvents, render, Portal, spread, template, insert, memo, effect, className, use, setAttribute, Dynamic } from 'solid-js/web';
@@ -11,8 +11,8 @@ import { autoUpdate, offset, flip, shift } from '@floating-ui/dom';
11
11
  import { useFloating } from 'solid-floating-ui';
12
12
  import { cva } from 'class-variance-authority';
13
13
 
14
- // _j9cq3718i:/home/runner/work/novu/novu/packages/js/src/ui/index.directcss
15
- 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}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}}.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-pointer-events-auto{pointer-events:auto!important}.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\\.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--mt-\\[50px\\]{margin-top:-50px}.nt-mb-1{margin-bottom:.25rem}.nt-mb-2{margin-bottom:.5rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-1{margin-left:.25rem}.nt-ml-2{margin-left:.5rem}.nt-ml-auto{margin-left:auto}.nt-mr-2{margin-right:.5rem}.nt-mr-auto{margin-right:auto}.nt-mt-1{margin-top:.25rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.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-3\\.5{height:.875rem;width:.875rem}.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-fit{height:fit-content;width:fit-content}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-4{height:1rem}.nt-h-5{height:1.25rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-9{height:2.25rem}.nt-h-\\[600px\\]{height:600px}.nt-h-fit{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-5{width:1.25rem}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[260px\\]{width:260px}.nt-w-\\[400px\\]{width:400px}.nt-w-\\[60px\\]{width:60px}.nt-w-\\[calc\\(2ch\\+2rem\\)\\]{width:calc(2ch + 2rem)}.nt-w-fit{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-translate-x-1\\/2{--tw-translate-x:50%}.nt-transform,.nt-translate-x-1\\/2{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-not-allowed{cursor:not-allowed}.nt-cursor-pointer{cursor:pointer}.nt-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.nt-flex-row{flex-direction:row}.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-end{justify-content:flex-end}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-1\\.5{gap:.375rem}.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-sm{border-radius:var(--nv-radius-sm)}.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{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.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-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.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-primary-alpha-300{background-color:var(--nv-color-primary-alpha-300)}.nt-bg-primary-alpha-400{background-color:var(--nv-color-primary-alpha-400)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.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-pr-0{padding-right:0}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.nt-text-\\[0\\.8rem\\]{font-size:.8rem}.nt-text-\\[12px\\]{font-size:12px}.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-xl{font-size:var(--nv-font-size-xl);line-height:var(--nv-line-height-xl)}.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-normal{font-weight:400}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-\\[\\#000000\\]{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,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-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nt-underline{text-decoration-line:underline}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.nt-opacity-50{opacity:.5}.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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\]{--tw-shadow:0px 1px 2px 0px #0a0d1408;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\],.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-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.nt-shadow-lg,.nt-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.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-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.\\[interpolate-size\\:allow-keywords\\]{interpolate-size:allow-keywords}.\\[scrollbar-gutter\\:stable\\]{scrollbar-gutter:stable}.\\[word-break\\:break-word\\]{word-break:break-word}.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\\.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-translate-x-1\\/2:after{--tw-translate-x:50%}.after\\:nt-translate-x-1\\/2:after,.after\\:nt-translate-x-full:after{content:var(--tw-content);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))}.after\\:nt-translate-x-full:after{--tw-translate-x: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-background:after{border-color:var(--nv-color-background);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-bg-primary-alpha-400:hover{background-color:var(--nv-color-primary-alpha-400)}.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-20:disabled{opacity:.2}.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}.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}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-12 .nv-notificationList{padding-bottom:3rem}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-8 .nv-notificationList{padding-bottom:2rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-12 .nv-preferencesContainer{padding-bottom:3rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-8 .nv-preferencesContainer{padding-bottom:2rem}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
14
+ // _vxjvi57ta:/home/runner/work/novu/novu/packages/js/src/ui/index.directcss
15
+ 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}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}}.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-pointer-events-auto{pointer-events:auto!important}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-bottom-0{bottom:0}.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-m-1{margin:-.25rem}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt--mt-\\[50px\\]{margin-top:-50px}.nt-mb-1{margin-bottom:.25rem}.nt-mb-2{margin-bottom:.5rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-1{margin-left:.25rem}.nt-ml-2{margin-left:.5rem}.nt-ml-auto{margin-left:auto}.nt-mr-2{margin-right:.5rem}.nt-mr-auto{margin-right:auto}.nt-mt-1{margin-top:.25rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.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-3\\.5{height:.875rem;width:.875rem}.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-fit{height:fit-content;width:fit-content}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-4{height:1rem}.nt-h-5{height:1.25rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-9{height:2.25rem}.nt-h-\\[600px\\]{height:600px}.nt-h-fit{height:fit-content}.nt-h-full{height:100%}.nt-min-h-0{min-height:0}.nt-w-1\\.5{width:.375rem}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-5{width:1.25rem}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[260px\\]{width:260px}.nt-w-\\[3px\\]{width:3px}.nt-w-\\[400px\\]{width:400px}.nt-w-\\[60px\\]{width:60px}.nt-w-\\[calc\\(2ch\\+2rem\\)\\]{width:calc(2ch + 2rem)}.nt-w-fit{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-translate-x-1\\/2{--tw-translate-x:50%}.nt-transform,.nt-translate-x-1\\/2{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-not-allowed{cursor:not-allowed}.nt-cursor-pointer{cursor:pointer}.nt-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.nt-flex-row{flex-direction:row}.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-end{justify-content:flex-end}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-1\\.5{gap:.375rem}.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-sm{border-radius:var(--nv-radius-sm)}.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{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.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-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.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-primary-alpha-300{background-color:var(--nv-color-primary-alpha-300)}.nt-bg-primary-alpha-400{background-color:var(--nv-color-primary-alpha-400)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-severity-high{background-color:var(--nv-color-severity-high)}.nt-bg-severity-high-alpha-100{background-color:var(--nv-color-severity-high-alpha-100)}.nt-bg-severity-high-alpha-200{background-color:var(--nv-color-severity-high-alpha-200)}.nt-bg-severity-high-alpha-300{background-color:var(--nv-color-severity-high-alpha-300)}.nt-bg-severity-high-alpha-50{background-color:var(--nv-color-severity-high-alpha-50)}.nt-bg-severity-low{background-color:var(--nv-color-severity-low)}.nt-bg-severity-low-alpha-100{background-color:var(--nv-color-severity-low-alpha-100)}.nt-bg-severity-low-alpha-200{background-color:var(--nv-color-severity-low-alpha-200)}.nt-bg-severity-low-alpha-300{background-color:var(--nv-color-severity-low-alpha-300)}.nt-bg-severity-low-alpha-50{background-color:var(--nv-color-severity-low-alpha-50)}.nt-bg-severity-medium{background-color:var(--nv-color-severity-medium)}.nt-bg-severity-medium-alpha-100{background-color:var(--nv-color-severity-medium-alpha-100)}.nt-bg-severity-medium-alpha-200{background-color:var(--nv-color-severity-medium-alpha-200)}.nt-bg-severity-medium-alpha-300{background-color:var(--nv-color-severity-medium-alpha-300)}.nt-bg-severity-medium-alpha-50{background-color:var(--nv-color-severity-medium-alpha-50)}.nt-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.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-pr-0{padding-right:0}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.nt-text-\\[0\\.8rem\\]{font-size:.8rem}.nt-text-\\[12px\\]{font-size:12px}.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-xl{font-size:var(--nv-font-size-xl);line-height:var(--nv-line-height-xl)}.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-normal{font-weight:400}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-\\[\\#000000\\]{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,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-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nt-underline{text-decoration-line:underline}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.nt-opacity-50{opacity:.5}.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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\]{--tw-shadow:0px 1px 2px 0px #0a0d1408;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\],.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-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.nt-shadow-lg,.nt-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.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-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-foreground\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-foreground) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-high\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-high) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-high\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-high) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-low\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-low) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-low\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-low) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-medium\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-medium) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-medium\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-medium) 80% c h)}.\\[--bell-gradient-start\\:var\\(--nv-color-foreground\\)\\]{--bell-gradient-start:var(--nv-color-foreground)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-high\\)\\]{--bell-gradient-start:var(--nv-color-severity-high)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-low\\)\\]{--bell-gradient-start:var(--nv-color-severity-low)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-medium\\)\\]{--bell-gradient-start:var(--nv-color-severity-medium)}.\\[interpolate-size\\:allow-keywords\\]{interpolate-size:allow-keywords}.\\[scrollbar-gutter\\:stable\\]{scrollbar-gutter:stable}.\\[word-break\\:break-word\\]{word-break:break-word}.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)}.before\\:nt-m-1:before{content:var(--tw-content);margin:.25rem}@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-full:before{border-radius:var(--nv-radius-full);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-severity-high-alpha-200:before{background-color:var(--nv-color-severity-high-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-high-alpha-300:before{background-color:var(--nv-color-severity-high-alpha-300);content:var(--tw-content)}.before\\:nt-bg-severity-low-alpha-200:before{background-color:var(--nv-color-severity-low-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-low-alpha-300:before{background-color:var(--nv-color-severity-low-alpha-300);content:var(--tw-content)}.before\\:nt-bg-severity-medium-alpha-200:before{background-color:var(--nv-color-severity-medium-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-medium-alpha-300:before{background-color:var(--nv-color-severity-medium-alpha-300);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\\.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-translate-x-1\\/2:after{--tw-translate-x:50%}.after\\:nt-translate-x-1\\/2:after,.after\\:nt-translate-x-full:after{content:var(--tw-content);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))}.after\\:nt-translate-x-full:after{--tw-translate-x: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-background:after{border-color:var(--nv-color-background);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-bg-primary-alpha-400:hover{background-color:var(--nv-color-primary-alpha-400)}.hover\\:nt-bg-severity-high-alpha-50:hover{background-color:var(--nv-color-severity-high-alpha-50)}.hover\\:nt-bg-severity-low-alpha-50:hover{background-color:var(--nv-color-severity-low-alpha-50)}.hover\\:nt-bg-severity-medium-alpha-50:hover{background-color:var(--nv-color-severity-medium-alpha-50)}.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-20:disabled{opacity:.2}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100{opacity:1}.nt-group:hover .group-hover\\:nt-bg-severity-high-alpha-500{background-color:var(--nv-color-severity-high-alpha-500)}.nt-group:hover .group-hover\\:nt-bg-severity-low-alpha-500{background-color:var(--nv-color-severity-low-alpha-500)}.nt-group:hover .group-hover\\:nt-bg-severity-medium-alpha-500{background-color:var(--nv-color-severity-medium-alpha-500)}.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.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}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-12 .nv-notificationList{padding-bottom:3rem}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-8 .nv-notificationList{padding-bottom:2rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-12 .nv-preferencesContainer{padding-bottom:3rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-8 .nv-preferencesContainer{padding-bottom:2rem}.\\[\\&_stop\\]\\:nt-transition-\\[stop-color\\] stop{transition-duration:.15s;transition-property:stop-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
16
16
 
17
17
  // src/ui/config/appearanceKeys.ts
18
18
  var appearanceKeys = [
@@ -78,6 +78,13 @@ var appearanceKeys = [
78
78
  "bellIcon",
79
79
  "lockIcon",
80
80
  "bellContainer",
81
+ "severityHigh__bellContainer",
82
+ "severityMedium__bellContainer",
83
+ "severityLow__bellContainer",
84
+ "bellSeverityGlow",
85
+ "severityGlowHigh__bellSeverityGlow",
86
+ "severityGlowMedium__bellSeverityGlow",
87
+ "severityGlowLow__bellSeverityGlow",
81
88
  "bellDot",
82
89
  "preferences__button",
83
90
  "preferencesContainer",
@@ -101,6 +108,13 @@ var appearanceKeys = [
101
108
  "notificationList__skeletonText",
102
109
  "notificationListNewNotificationsNotice__button",
103
110
  "notification",
111
+ "severityHigh__notification",
112
+ "severityMedium__notification",
113
+ "severityLow__notification",
114
+ "notificationBar",
115
+ "severityHigh__notificationBar",
116
+ "severityMedium__notificationBar",
117
+ "severityLow__notificationBar",
104
118
  "notificationContent",
105
119
  "notificationTextContainer",
106
120
  "notificationDot",
@@ -284,7 +298,10 @@ var defaultVariables = {
284
298
  colorShadow: "rgb(0,0,0)",
285
299
  fontSize: "1rem",
286
300
  borderRadius: "0.375rem",
287
- colorStripes: "#FF9A68"
301
+ colorStripes: "#FF9A68",
302
+ colorSeverityHigh: "#FB3748",
303
+ colorSeverityMedium: "#FF8447",
304
+ colorSeverityLow: "transparent"
288
305
  };
289
306
 
290
307
  // src/ui/helpers/constants.ts
@@ -821,6 +838,16 @@ var parseVariables = (variables, id) => {
821
838
  generateDefaultColor({ color: variables.colorShadow, key: "color-shadow", id }),
822
839
  generateDefaultColor({ color: variables.colorRing, key: "color-ring", id }),
823
840
  generateDefaultColor({ color: variables.colorStripes, key: "color-stripes", id }),
841
+ generateDefaultColor({ color: variables.colorSeverityHigh, key: "color-severity-high", id }),
842
+ generateDefaultColor({ color: variables.colorSeverityMedium, key: "color-severity-medium", id }),
843
+ generateDefaultColor({ color: variables.colorSeverityLow, key: "color-severity-low", id }),
844
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorSeverityHigh, key: "color-severity-high-alpha", id }),
845
+ ...generateAlphaShadeRulesFromColor({
846
+ color: variables.colorSeverityMedium,
847
+ key: "color-severity-medium-alpha",
848
+ id
849
+ }),
850
+ ...generateAlphaShadeRulesFromColor({ color: variables.colorSeverityLow, key: "color-severity-low-alpha", id }),
824
851
  ...generateAlphaShadeRulesFromColor({ color: variables.colorBackground, key: "color-background-alpha", id }),
825
852
  ...generateAlphaShadeRulesFromColor({ color: variables.colorForeground, key: "color-foreground-alpha", id }),
826
853
  ...generateSolidShadeRulesFromColor({ color: variables.colorPrimary, key: "color-primary", id }),
@@ -877,10 +904,13 @@ var useStyle = () => {
877
904
  setIsServer(false);
878
905
  });
879
906
  const styleFuncMemo = createMemo(
880
- () => (appearanceKey, className, {
881
- iconKey
882
- } = {}) => {
883
- const appearanceKeyParts = appearanceKey.split("__");
907
+ () => ({
908
+ key,
909
+ className,
910
+ iconKey,
911
+ context
912
+ }) => {
913
+ const appearanceKeyParts = key.split("__");
884
914
  let finalAppearanceKeys = [];
885
915
  for (let i = 0; i < appearanceKeyParts.length; i += 1) {
886
916
  const accumulated = appearanceKeyParts.slice(i).join("__");
@@ -904,14 +934,17 @@ var useStyle = () => {
904
934
  let appearanceClassnames = [];
905
935
  const reversedFinalAppearanceKeys = finalAppearanceKeys.reverse();
906
936
  for (let i = 0; i < reversedFinalAppearanceKeys.length; i += 1) {
907
- if (typeof appearance.elements()[reversedFinalAppearanceKeys[i]] === "string") {
908
- appearanceClassnames.push(appearance.elements()[reversedFinalAppearanceKeys[i]]);
937
+ const elementStyles = appearance.elements()[reversedFinalAppearanceKeys[i]];
938
+ if (typeof elementStyles === "string") {
939
+ appearanceClassnames.push(elementStyles);
940
+ } else if (typeof elementStyles === "function") {
941
+ appearanceClassnames.push(elementStyles(context));
909
942
  }
910
943
  }
911
944
  appearanceClassnames = [publicFacingTwMerge(appearanceClassnames)];
912
945
  const cssInJsClasses = !!finalAppearanceKeys.length && !isServer() ? finalAppearanceKeys.map((appKey) => appearance.appearanceKeyToCssInJsClass[appKey]) : [];
913
946
  return cn(
914
- ...finalAppearanceKeys.map((key) => `nv-${key}`),
947
+ ...finalAppearanceKeys.map((key2) => `nv-${key2}`),
915
948
  "\u{1F514}",
916
949
  iconKey ? `nv-${iconKey} \u{1F5BC}\uFE0F` : "",
917
950
  finalClassName,
@@ -1203,7 +1236,7 @@ var STATUS_TO_FILTER = {
1203
1236
  };
1204
1237
  var DEFAULT_LIMIT = 10;
1205
1238
  var InboxProvider = (props) => {
1206
- var _a, _b;
1239
+ var _a, _b, _c;
1207
1240
  const [isOpened, setIsOpened] = createSignal(false);
1208
1241
  const [tabs, setTabs] = createSignal(props.tabs);
1209
1242
  const [activeTab, setActiveTab] = createSignal((_a = props.tabs[0] && props.tabs[0].label) != null ? _a : "");
@@ -1211,7 +1244,8 @@ var InboxProvider = (props) => {
1211
1244
  const [limit, setLimit] = createSignal(DEFAULT_LIMIT);
1212
1245
  const [filter, setFilter] = createSignal(__spreadProps(__spreadValues({}, STATUS_TO_FILTER["unreadRead" /* UNREAD_READ */]), {
1213
1246
  tags: props.tabs.length > 0 ? getTagsFromTab(props.tabs[0]) : [],
1214
- data: props.tabs.length > 0 ? (_b = props.tabs[0].filter) == null ? void 0 : _b.data : {}
1247
+ data: props.tabs.length > 0 ? (_b = props.tabs[0].filter) == null ? void 0 : _b.data : {},
1248
+ severity: props.tabs.length > 0 ? (_c = props.tabs[0].filter) == null ? void 0 : _c.severity : void 0
1215
1249
  }));
1216
1250
  const [hideBranding, setHideBranding] = createSignal(false);
1217
1251
  const [isDevelopmentMode, setIsDevelopmentMode] = createSignal(false);
@@ -1225,7 +1259,8 @@ var InboxProvider = (props) => {
1225
1259
  setStatus(newStatus);
1226
1260
  setFilter((old) => __spreadProps(__spreadValues({}, STATUS_TO_FILTER[newStatus]), {
1227
1261
  tags: old.tags,
1228
- data: old.data
1262
+ data: old.data,
1263
+ severity: old.severity
1229
1264
  }));
1230
1265
  };
1231
1266
  const setNewActiveTab = (newActiveTab) => {
@@ -1236,10 +1271,11 @@ var InboxProvider = (props) => {
1236
1271
  }
1237
1272
  setActiveTab(newActiveTab);
1238
1273
  setFilter((old) => {
1239
- var _a2;
1274
+ var _a2, _b2;
1240
1275
  return __spreadProps(__spreadValues({}, old), {
1241
1276
  tags,
1242
- data: (_a2 = tab == null ? void 0 : tab.filter) == null ? void 0 : _a2.data
1277
+ data: (_a2 = tab == null ? void 0 : tab.filter) == null ? void 0 : _a2.data,
1278
+ severity: (_b2 = tab == null ? void 0 : tab.filter) == null ? void 0 : _b2.severity
1243
1279
  });
1244
1280
  });
1245
1281
  };
@@ -1267,10 +1303,11 @@ var InboxProvider = (props) => {
1267
1303
  const tags = getTagsFromTab(firstTab);
1268
1304
  setActiveTab((_a2 = firstTab == null ? void 0 : firstTab.label) != null ? _a2 : "");
1269
1305
  setFilter((old) => {
1270
- var _a3;
1306
+ var _a3, _b2;
1271
1307
  return __spreadProps(__spreadValues({}, old), {
1272
1308
  tags,
1273
- data: (_a3 = firstTab == null ? void 0 : firstTab.filter) == null ? void 0 : _a3.data
1309
+ data: (_a3 = firstTab == null ? void 0 : firstTab.filter) == null ? void 0 : _a3.data,
1310
+ severity: (_b2 = firstTab == null ? void 0 : firstTab.filter) == null ? void 0 : _b2.severity
1274
1311
  });
1275
1312
  });
1276
1313
  setPreferencesFilter(props.preferencesFilter);
@@ -1360,9 +1397,18 @@ var CountProvider = (props) => {
1360
1397
  isOpened,
1361
1398
  tabs,
1362
1399
  filter,
1363
- limit
1400
+ limit,
1401
+ activeTab
1364
1402
  } = useInboxContext();
1365
- const [totalUnreadCount, setTotalUnreadCount] = createSignal(0);
1403
+ const [unreadCount, setUnreadCount] = createSignal({
1404
+ total: 0,
1405
+ severity: {
1406
+ ["high" /* HIGH */]: 0,
1407
+ ["medium" /* MEDIUM */]: 0,
1408
+ ["low" /* LOW */]: 0,
1409
+ ["none" /* NONE */]: 0
1410
+ }
1411
+ });
1366
1412
  const [unreadCounts, setUnreadCounts] = createSignal(/* @__PURE__ */ new Map());
1367
1413
  const [newNotificationCounts, setNewNotificationCounts] = createSignal(/* @__PURE__ */ new Map());
1368
1414
  const updateTabCounts = () => __async(void 0, null, function* () {
@@ -1370,13 +1416,14 @@ var CountProvider = (props) => {
1370
1416
  return;
1371
1417
  }
1372
1418
  const filters = tabs().map((tab) => {
1373
- var _a;
1419
+ var _a, _b;
1374
1420
  return {
1375
1421
  tags: getTagsFromTab(tab),
1376
1422
  read: false,
1377
1423
  archived: false,
1378
1424
  snoozed: false,
1379
- data: (_a = tab.filter) == null ? void 0 : _a.data
1425
+ data: (_a = tab.filter) == null ? void 0 : _a.data,
1426
+ severity: (_b = tab.filter) == null ? void 0 : _b.severity
1380
1427
  };
1381
1428
  });
1382
1429
  const {
@@ -1392,7 +1439,11 @@ var CountProvider = (props) => {
1392
1439
  counts
1393
1440
  } = data;
1394
1441
  for (let i = 0; i < counts.length; i += 1) {
1395
- const tagsKey = createKey(counts[i].filter.tags, counts[i].filter.data);
1442
+ const tagsKey = createKey({
1443
+ tags: counts[i].filter.tags,
1444
+ data: counts[i].filter.data,
1445
+ severity: counts[i].filter.severity
1446
+ });
1396
1447
  newMap.set(tagsKey, data == null ? void 0 : data.counts[i].count);
1397
1448
  }
1398
1449
  setUnreadCounts(newMap);
@@ -1403,7 +1454,7 @@ var CountProvider = (props) => {
1403
1454
  useWebSocketEvent({
1404
1455
  event: "notifications.unread_count_changed",
1405
1456
  eventHandler: (data) => {
1406
- setTotalUnreadCount(data.result);
1457
+ setUnreadCount(data.result);
1407
1458
  updateTabCounts();
1408
1459
  }
1409
1460
  });
@@ -1415,20 +1466,21 @@ var CountProvider = (props) => {
1415
1466
  if (!data) {
1416
1467
  return;
1417
1468
  }
1418
- setTotalUnreadCount(data.totalUnreadCount);
1469
+ setUnreadCount(data.unreadCount);
1419
1470
  }
1420
1471
  });
1421
- const updateNewNotificationCountsOrCache = (notification, tags, data) => {
1472
+ const updateNewNotificationCountsOrCache = (tabLabel, notification, tags, data, severity) => {
1422
1473
  const notificationsCache = novu.notifications.cache;
1423
1474
  const limitValue = limit();
1424
1475
  const tabSpecificFilterForCache = __spreadProps(__spreadValues({}, filter()), {
1425
1476
  tags,
1426
1477
  data,
1478
+ severity,
1427
1479
  after: void 0,
1428
1480
  limit: limitValue
1429
1481
  });
1430
1482
  const hasEmptyCache = !notificationsCache.has(tabSpecificFilterForCache);
1431
- if (!isOpened() && hasEmptyCache) {
1483
+ if (hasEmptyCache && (!isOpened() || activeTab() !== tabLabel)) {
1432
1484
  return;
1433
1485
  }
1434
1486
  const cachedData = notificationsCache.getAll(tabSpecificFilterForCache) || {
@@ -1437,14 +1489,18 @@ var CountProvider = (props) => {
1437
1489
  notifications: []
1438
1490
  };
1439
1491
  const hasLessThenMinAmount = ((cachedData == null ? void 0 : cachedData.notifications.length) || 0) < MIN_AMOUNT_OF_NOTIFICATIONS;
1440
- if (hasLessThenMinAmount) {
1492
+ if (hasLessThenMinAmount || !isOpened()) {
1441
1493
  notificationsCache.update(tabSpecificFilterForCache, __spreadProps(__spreadValues({}, cachedData), {
1442
1494
  notifications: [notification, ...cachedData.notifications]
1443
1495
  }));
1444
1496
  return;
1445
1497
  }
1446
1498
  setNewNotificationCounts((oldMap) => {
1447
- const key = createKey(tags, data);
1499
+ const key = createKey({
1500
+ tags,
1501
+ data,
1502
+ severity
1503
+ });
1448
1504
  const newMap = new Map(oldMap);
1449
1505
  newMap.set(key, (oldMap.get(key) || 0) + 1);
1450
1506
  return newMap;
@@ -1455,23 +1511,34 @@ var CountProvider = (props) => {
1455
1511
  eventHandler: (_0) => __async(void 0, [_0], function* ({
1456
1512
  result: notification
1457
1513
  }) {
1458
- var _a;
1514
+ var _a, _b;
1459
1515
  if (filter().archived || filter().snoozed) {
1460
1516
  return;
1461
1517
  }
1462
1518
  const currentTabs = tabs();
1519
+ const processedFilters = /* @__PURE__ */ new Set();
1463
1520
  if (currentTabs.length > 0) {
1464
1521
  for (const tab of currentTabs) {
1465
1522
  const tabTags = getTagsFromTab(tab);
1466
1523
  const tabDataFilterCriteria = (_a = tab.filter) == null ? void 0 : _a.data;
1524
+ const tabSeverityFilterCriteria = (_b = tab.filter) == null ? void 0 : _b.severity;
1467
1525
  const matchesTagFilter = checkNotificationTagFilter(notification.tags, tabTags);
1468
1526
  const matchesDataFilterCriteria = checkNotificationDataFilter(notification.data, tabDataFilterCriteria);
1469
- if (matchesTagFilter && matchesDataFilterCriteria) {
1470
- updateNewNotificationCountsOrCache(notification, tabTags, tabDataFilterCriteria);
1527
+ const matchesSeverityFilterCriteria = !tabSeverityFilterCriteria || Array.isArray(tabSeverityFilterCriteria) && tabSeverityFilterCriteria.length === 0 || Array.isArray(tabSeverityFilterCriteria) && tabSeverityFilterCriteria.includes(notification.severity) || !Array.isArray(tabSeverityFilterCriteria) && tabSeverityFilterCriteria === notification.severity;
1528
+ if (matchesTagFilter && matchesDataFilterCriteria && matchesSeverityFilterCriteria) {
1529
+ const filterKey = createKey({
1530
+ tags: tabTags,
1531
+ data: tabDataFilterCriteria,
1532
+ severity: tabSeverityFilterCriteria
1533
+ });
1534
+ if (!processedFilters.has(filterKey)) {
1535
+ processedFilters.add(filterKey);
1536
+ updateNewNotificationCountsOrCache(tab.label, notification, tabTags, tabDataFilterCriteria, tabSeverityFilterCriteria);
1537
+ }
1471
1538
  }
1472
1539
  }
1473
1540
  } else {
1474
- updateNewNotificationCountsOrCache(notification, [], void 0);
1541
+ updateNewNotificationCountsOrCache("", notification, [], void 0, void 0);
1475
1542
  }
1476
1543
  })
1477
1544
  });
@@ -1488,7 +1555,7 @@ var CountProvider = (props) => {
1488
1555
  };
1489
1556
  return createComponent(CountContext.Provider, {
1490
1557
  value: {
1491
- totalUnreadCount,
1558
+ unreadCount,
1492
1559
  unreadCounts,
1493
1560
  newNotificationCounts,
1494
1561
  resetNewNotificationCounts
@@ -1498,19 +1565,21 @@ var CountProvider = (props) => {
1498
1565
  }
1499
1566
  });
1500
1567
  };
1501
- var createKey = (tags, data) => {
1568
+ var createKey = (filter) => {
1569
+ var _a, _b;
1502
1570
  return JSON.stringify({
1503
- tags: tags != null ? tags : [],
1504
- data: data != null ? data : {}
1571
+ tags: (_a = filter.tags) != null ? _a : [],
1572
+ data: (_b = filter.data) != null ? _b : {},
1573
+ severity: filter.severity
1505
1574
  });
1506
1575
  };
1507
- var useTotalUnreadCount = () => {
1576
+ var useUnreadCount = () => {
1508
1577
  const context = useContext(CountContext);
1509
1578
  if (!context) {
1510
- throw new Error("useTotalUnreadCount must be used within a CountProvider");
1579
+ throw new Error("useUnreadCount must be used within a CountProvider");
1511
1580
  }
1512
1581
  return {
1513
- totalUnreadCount: context.totalUnreadCount
1582
+ unreadCount: context.unreadCount
1514
1583
  };
1515
1584
  };
1516
1585
  var useNewMessagesCount = (props) => {
@@ -1518,7 +1587,7 @@ var useNewMessagesCount = (props) => {
1518
1587
  if (!context) {
1519
1588
  throw new Error("useNewMessagesCount must be used within a CountProvider");
1520
1589
  }
1521
- const key = createMemo(() => createKey(props.filter.tags, props.filter.data));
1590
+ const key = createMemo(() => createKey(props.filter));
1522
1591
  const count = createMemo(() => context.newNotificationCounts().get(key()) || 0);
1523
1592
  const reset = () => context.resetNewNotificationCounts(key());
1524
1593
  return {
@@ -1526,12 +1595,12 @@ var useNewMessagesCount = (props) => {
1526
1595
  reset
1527
1596
  };
1528
1597
  };
1529
- var useUnreadCount = (props) => {
1598
+ var useFilteredUnreadCount = (props) => {
1530
1599
  const context = useContext(CountContext);
1531
1600
  if (!context) {
1532
- throw new Error("useUnreadCount must be used within a CountProvider");
1601
+ throw new Error("useFilteredUnreadCount must be used within a CountProvider");
1533
1602
  }
1534
- const count = createMemo(() => context.unreadCounts().get(createKey(props.filter.tags, props.filter.data)) || 0);
1603
+ const count = createMemo(() => context.unreadCounts().get(createKey(props.filter)) || 0);
1535
1604
  return count;
1536
1605
  };
1537
1606
  var useUnreadCounts = (props) => {
@@ -1540,7 +1609,7 @@ var useUnreadCounts = (props) => {
1540
1609
  throw new Error("useUnreadCounts must be used within a CountProvider");
1541
1610
  }
1542
1611
  const counts = createMemo(() => props.filters.map((filter) => {
1543
- return context.unreadCounts().get(createKey(filter.tags, filter.data)) || 0;
1612
+ return context.unreadCounts().get(createKey(filter)) || 0;
1544
1613
  }));
1545
1614
  return counts;
1546
1615
  };
@@ -1671,7 +1740,7 @@ var ArrowRight = (props) => {
1671
1740
  return _el$;
1672
1741
  })();
1673
1742
  };
1674
- var _tmpl$6 = /* @__PURE__ */ template(`<svg viewBox="0 0 10 12"fill=none xmlns=http://www.w3.org/2000/svg><path d="M5 12C5.6875 12 6.25 11.4462 6.25 10.7692H3.75C3.75 11.4462 4.3125 12 5 12ZM8.75 8.30769V5.23077C8.75 3.34154 7.73125 1.76 5.9375 1.34154V0.923077C5.9375 0.412308 5.51875 0 5 0C4.48125 0 4.0625 0.412308 4.0625 0.923077V1.34154C2.275 1.76 1.25 3.33538 1.25 5.23077V8.30769L0 9.53846V10.1538H10V9.53846L8.75 8.30769ZM7.5 8.92308H2.5V5.23077C2.5 3.70462 3.44375 2.46154 5 2.46154C6.55625 2.46154 7.5 3.70462 7.5 5.23077V8.92308Z"fill=currentColor>`);
1743
+ var _tmpl$6 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 12 14"><path fill=url(#nv_bell_gradient) d="M6 0c-.435 0-.786.391-.786.875V1.4C3.42 1.805 2.07 3.571 2.07 5.687v.515c0 1.285-.425 2.526-1.19 3.489l-.183.227a.957.957 0 0 0-.13.94c.126.315.408.517.717.517h9.429c.31 0 .589-.202.717-.517a.95.95 0 0 0-.13-.94l-.182-.227c-.766-.963-1.191-2.202-1.191-3.49v-.513c0-2.117-1.35-3.883-3.143-4.288V.875C6.785.391 6.434 0 6 0Zm1.112 13.489c.294-.329.459-.774.459-1.239H4.429c-.001.465.164.91.458 1.239.295.328.695.511 1.112.511.418 0 .818-.183 1.113-.511Z"></path><defs><linearGradient id=nv_bell_gradient x1=6 y1=0 x2=6 y2=14 gradientUnits=userSpaceOnUse><stop stop-color="var(--bell-gradient-start, currentColor)"></stop><stop offset=1 stop-color="var(--bell-gradient-end, currentColor)">`);
1675
1744
  function Bell(props) {
1676
1745
  return (() => {
1677
1746
  var _el$ = _tmpl$6();
@@ -1840,31 +1909,104 @@ var IconRendererWrapper = (props) => {
1840
1909
 
1841
1910
  // src/ui/components/elements/Bell/DefaultBellContainer.tsx
1842
1911
  var _tmpl$24 = /* @__PURE__ */ template(`<span>`);
1912
+ var _tmpl$25 = /* @__PURE__ */ template(`<span><div>`);
1913
+ var SEVERITY_GLOW_KEYS = {
1914
+ ["none" /* NONE */]: "bellSeverityGlow",
1915
+ ["high" /* HIGH */]: "severityGlowHigh__bellSeverityGlow",
1916
+ ["medium" /* MEDIUM */]: "severityGlowMedium__bellSeverityGlow",
1917
+ ["low" /* LOW */]: "severityGlowLow__bellSeverityGlow"
1918
+ };
1919
+ var SEVERITY_TO_CONTAINER_KEYS = {
1920
+ ["none" /* NONE */]: "bellContainer",
1921
+ ["high" /* HIGH */]: "severityHigh__bellContainer",
1922
+ ["medium" /* MEDIUM */]: "severityMedium__bellContainer",
1923
+ ["low" /* LOW */]: "severityLow__bellContainer"
1924
+ };
1843
1925
  var BellContainer = (props) => {
1844
1926
  const style = useStyle();
1845
- const bellIconStyle = style("bellIcon", "nt-size-4");
1927
+ const severity = createMemo(() => {
1928
+ if (props.unreadCount.severity["high" /* HIGH */] > 0) {
1929
+ return "high" /* HIGH */;
1930
+ } else if (props.unreadCount.severity["medium" /* MEDIUM */] > 0) {
1931
+ return "medium" /* MEDIUM */;
1932
+ } else if (props.unreadCount.severity["low" /* LOW */] > 0) {
1933
+ return "low" /* LOW */;
1934
+ }
1935
+ return "none" /* NONE */;
1936
+ });
1937
+ const unreadCount = createMemo(() => props.unreadCount);
1846
1938
  return (() => {
1847
- var _el$ = _tmpl$24();
1939
+ var _el$ = _tmpl$25(), _el$2 = _el$.firstChild;
1848
1940
  insert(_el$, createComponent(IconRendererWrapper, {
1849
1941
  iconKey: "bell",
1850
- "class": bellIconStyle,
1942
+ get ["class"]() {
1943
+ return style({
1944
+ key: "bellIcon",
1945
+ className: "nt-size-4",
1946
+ context: {
1947
+ unreadCount: unreadCount()
1948
+ }
1949
+ });
1950
+ },
1851
1951
  get fallback() {
1852
1952
  return createComponent(Bell, {
1853
- "class": bellIconStyle
1953
+ get ["class"]() {
1954
+ return style({
1955
+ key: "bellIcon",
1956
+ className: "nt-size-4",
1957
+ context: {
1958
+ unreadCount: unreadCount()
1959
+ }
1960
+ });
1961
+ }
1854
1962
  });
1855
1963
  }
1856
1964
  }), null);
1857
1965
  insert(_el$, createComponent(Show, {
1858
1966
  get when() {
1859
- return props.unreadCount > 0;
1967
+ return props.unreadCount.total > 0;
1860
1968
  },
1861
1969
  get children() {
1862
- var _el$2 = _tmpl$24();
1863
- effect(() => className(_el$2, style("bellDot", "nt-absolute nt-top-0 nt-right-0 nt-block nt-size-2 nt-transform nt-bg-counter nt-rounded-full nt-border nt-border-background")));
1864
- return _el$2;
1970
+ var _el$3 = _tmpl$24();
1971
+ effect(() => className(_el$3, style({
1972
+ key: "bellDot",
1973
+ className: "nt-absolute nt-top-0 nt-right-0 nt-block nt-size-2 nt-transform nt-bg-counter nt-rounded-full nt-border nt-border-background",
1974
+ context: {
1975
+ unreadCount: unreadCount()
1976
+ }
1977
+ })));
1978
+ return _el$3;
1865
1979
  }
1866
1980
  }), null);
1867
- effect(() => className(_el$, style("bellContainer", `nt-size-4 nt-flex nt-justify-center nt-items-center nt-relative nt-text-foreground nt-cursor-pointer`)));
1981
+ effect((_p$) => {
1982
+ var _v$ = style({
1983
+ key: SEVERITY_TO_CONTAINER_KEYS[severity()],
1984
+ className: cn("nt-size-4 nt-flex nt-justify-center nt-items-center nt-relative nt-text-foreground nt-cursor-pointer [&_stop]:nt-transition-[stop-color]", {
1985
+ "[--bell-gradient-start:var(--nv-color-severity-high)] [--bell-gradient-end:oklch(from_var(--nv-color-severity-high)_45%_c_h)]": severity() === "high" /* HIGH */,
1986
+ "[--bell-gradient-start:var(--nv-color-severity-medium)] [--bell-gradient-end:oklch(from_var(--nv-color-severity-medium)_45%_c_h)]": severity() === "medium" /* MEDIUM */,
1987
+ "[--bell-gradient-start:var(--nv-color-severity-low)] [--bell-gradient-end:oklch(from_var(--nv-color-severity-low)_45%_c_h)]": severity() === "low" /* LOW */
1988
+ }),
1989
+ context: {
1990
+ unreadCount: unreadCount()
1991
+ }
1992
+ }), _v$2 = style({
1993
+ key: SEVERITY_GLOW_KEYS[severity()],
1994
+ className: cn('nt-transition nt-absolute nt-inset-0 -nt-m-1 nt-rounded-full before:nt-content-[""] before:nt-absolute before:nt-inset-0 before:nt-rounded-full before:nt-m-1', {
1995
+ "nt-bg-severity-high-alpha-100 before:nt-bg-severity-high-alpha-200": severity() === "high" /* HIGH */,
1996
+ "nt-bg-severity-medium-alpha-100 before:nt-bg-severity-medium-alpha-200": severity() === "medium" /* MEDIUM */,
1997
+ "nt-bg-severity-low-alpha-100 before:nt-bg-severity-low-alpha-200": severity() === "low" /* LOW */
1998
+ }),
1999
+ context: {
2000
+ unreadCount: unreadCount()
2001
+ }
2002
+ });
2003
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
2004
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
2005
+ return _p$;
2006
+ }, {
2007
+ e: void 0,
2008
+ t: void 0
2009
+ });
1868
2010
  return _el$;
1869
2011
  })();
1870
2012
  };
@@ -1872,8 +2014,8 @@ var BellContainer = (props) => {
1872
2014
  // src/ui/components/elements/Bell/Bell.tsx
1873
2015
  var Bell2 = (props) => {
1874
2016
  const {
1875
- totalUnreadCount
1876
- } = useTotalUnreadCount();
2017
+ unreadCount
2018
+ } = useUnreadCount();
1877
2019
  return createComponent(Show, {
1878
2020
  get when() {
1879
2021
  return props.renderBell;
@@ -1881,21 +2023,22 @@ var Bell2 = (props) => {
1881
2023
  get fallback() {
1882
2024
  return createComponent(BellContainer, {
1883
2025
  get unreadCount() {
1884
- return totalUnreadCount();
2026
+ return unreadCount();
1885
2027
  }
1886
2028
  });
1887
2029
  },
1888
2030
  get children() {
1889
2031
  return createComponent(ExternalElementRenderer, {
1890
- render: (el) => props.renderBell(el, totalUnreadCount())
2032
+ render: (el) => props.renderBell ? props.renderBell(el, unreadCount()) : () => {
2033
+ }
1891
2034
  });
1892
2035
  }
1893
2036
  });
1894
2037
  };
1895
- var _tmpl$25 = /* @__PURE__ */ template(`<svg width=6 height=6 viewBox="0 0 6 6"fill=none xmlns=http://www.w3.org/2000/svg><path d="M5.00175 1.70402L0.705765 6L0 5.29424L4.29548 0.998253H0.509608V0H6V5.49039H5.00175V1.70402Z"fill=currentColor>`);
2038
+ var _tmpl$26 = /* @__PURE__ */ template(`<svg width=6 height=6 viewBox="0 0 6 6"fill=none xmlns=http://www.w3.org/2000/svg><path d="M5.00175 1.70402L0.705765 6L0 5.29424L4.29548 0.998253H0.509608V0H6V5.49039H5.00175V1.70402Z"fill=currentColor>`);
1896
2039
  var ArrowUpRight = (props) => {
1897
2040
  return (() => {
1898
- var _el$ = _tmpl$25();
2041
+ var _el$ = _tmpl$26();
1899
2042
  spread(_el$, props, true, true);
1900
2043
  return _el$;
1901
2044
  })();
@@ -2046,7 +2189,10 @@ var TooltipContentBody = (props) => {
2046
2189
  },
2047
2190
  ref: setFloating,
2048
2191
  get ["class"]() {
2049
- return memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tooltipContent", tooltipContentVariants());
2192
+ return memo(() => !!local.class)() ? local.class : style({
2193
+ key: local.appearanceKey || "tooltipContent",
2194
+ className: tooltipContentVariants()
2195
+ });
2050
2196
  },
2051
2197
  get style() {
2052
2198
  return __spreadProps(__spreadValues({}, floatingStyles()), {
@@ -2102,7 +2248,7 @@ function mergeRefs(...refs) {
2102
2248
  }
2103
2249
 
2104
2250
  // src/ui/components/primitives/Tooltip/TooltipTrigger.tsx
2105
- var _tmpl$26 = /* @__PURE__ */ template(`<button>`);
2251
+ var _tmpl$27 = /* @__PURE__ */ template(`<button>`);
2106
2252
  var TooltipTrigger = (props) => {
2107
2253
  const {
2108
2254
  setReference,
@@ -2137,7 +2283,7 @@ var TooltipTrigger = (props) => {
2137
2283
  }, rest));
2138
2284
  }
2139
2285
  return (() => {
2140
- var _el$ = _tmpl$26();
2286
+ var _el$ = _tmpl$27();
2141
2287
  _el$.addEventListener("mouseleave", () => {
2142
2288
  setOpen(false);
2143
2289
  });
@@ -2148,7 +2294,9 @@ var TooltipTrigger = (props) => {
2148
2294
  typeof _ref$2 === "function" && use(_ref$2, _el$);
2149
2295
  spread(_el$, mergeProps({
2150
2296
  get ["class"]() {
2151
- return style(local.appearanceKey || "tooltipTrigger");
2297
+ return style({
2298
+ key: local.appearanceKey || "tooltipTrigger"
2299
+ });
2152
2300
  }
2153
2301
  }, rest), false, true);
2154
2302
  insert(_el$, () => props.children);
@@ -2170,7 +2318,7 @@ var Tooltip = {
2170
2318
  };
2171
2319
 
2172
2320
  // src/ui/components/primitives/CopyToClipboard.tsx
2173
- var _tmpl$27 = /* @__PURE__ */ template(`<button type=button>`);
2321
+ var _tmpl$28 = /* @__PURE__ */ template(`<button type=button>`);
2174
2322
  function CopyToClipboard(props) {
2175
2323
  const [isCopied, setIsCopied] = createSignal(false);
2176
2324
  const style = useStyle();
@@ -2204,11 +2352,14 @@ function CopyToClipboard(props) {
2204
2352
  get children() {
2205
2353
  return [createComponent(Tooltip.Trigger, {
2206
2354
  asChild: (triggerProps) => (() => {
2207
- var _el$ = _tmpl$27();
2355
+ var _el$ = _tmpl$28();
2208
2356
  spread(_el$, mergeProps(triggerProps, {
2209
2357
  "onClick": handleCopy,
2210
2358
  get ["class"]() {
2211
- return style("button", "nt-cursor-pointer");
2359
+ return style({
2360
+ key: "button",
2361
+ className: "nt-cursor-pointer"
2362
+ });
2212
2363
  }
2213
2364
  }), false, true);
2214
2365
  insert(_el$, () => props.children);
@@ -2225,8 +2376,8 @@ function CopyToClipboard(props) {
2225
2376
  }
2226
2377
 
2227
2378
  // src/ui/components/elements/Footer.tsx
2228
- var _tmpl$28 = /* @__PURE__ */ template(`<span class="nt-z-10 nt-text-xs nt-text-stripes">`);
2229
- var _tmpl$29 = /* @__PURE__ */ template(`<span class="nt-z-10 nt-text-xs">\u2022`);
2379
+ var _tmpl$29 = /* @__PURE__ */ template(`<span class="nt-z-10 nt-text-xs nt-text-stripes">`);
2380
+ var _tmpl$210 = /* @__PURE__ */ template(`<span class="nt-z-10 nt-text-xs">\u2022`);
2230
2381
  var _tmpl$32 = /* @__PURE__ */ template(`<a target=_blank class="nt-z-10 nt-flex nt-items-center nt-gap-1 nt-justify-center"><span class=nt-text-xs>Inbox by</span><span class=nt-text-xs>Novu`);
2231
2382
  var _tmpl$42 = /* @__PURE__ */ template(`<span class=nt-underline>Copy cURL`);
2232
2383
  var _tmpl$52 = /* @__PURE__ */ template(`<div class="nt-z-10 nt-flex nt-items-center nt-gap-1 nt-text-xs nt-text-secondary-foreground"><a href=https://go.novu.co/keyless class="nt-underline nt-flex nt-items-center nt-gap-0.5"target=_blank rel="noopener noreferrer">Get API key</a><span>\u2022</span><span>\u2022</span><button type=button class=nt-underline>Send notification`);
@@ -2265,7 +2416,7 @@ var Footer = () => {
2265
2416
  return isDevelopmentMode();
2266
2417
  },
2267
2418
  get children() {
2268
- var _el$3 = _tmpl$28();
2419
+ var _el$3 = _tmpl$29();
2269
2420
  insert(_el$3, (() => {
2270
2421
  var _c$ = memo(() => !!isKeyless());
2271
2422
  return () => _c$() ? createComponent(Tooltip.Root, {
@@ -2291,7 +2442,7 @@ var Footer = () => {
2291
2442
  return memo(() => !!isDevelopmentMode())() && !hideBranding();
2292
2443
  },
2293
2444
  get children() {
2294
- return _tmpl$29();
2445
+ return _tmpl$210();
2295
2446
  }
2296
2447
  }), null);
2297
2448
  insert(_el$2, createComponent(Show, {
@@ -2390,7 +2541,7 @@ var buttonVariants = cva(cn('nt-inline-flex nt-gap-4 nt-items-center nt-justify-
2390
2541
  }
2391
2542
  });
2392
2543
  var Button = (props) => {
2393
- const [local, rest] = splitProps(props, ["class", "appearanceKey"]);
2544
+ const [local, rest] = splitProps(props, ["class", "appearanceKey", "context"]);
2394
2545
  const style = useStyle();
2395
2546
  return (() => {
2396
2547
  var _el$ = _tmpl$30();
@@ -2402,17 +2553,21 @@ var Button = (props) => {
2402
2553
  return props.size;
2403
2554
  },
2404
2555
  get ["class"]() {
2405
- return style(local.appearanceKey || "button", cn(buttonVariants({
2406
- variant: props.variant,
2407
- size: props.size
2408
- }), local.class));
2556
+ return style({
2557
+ key: local.appearanceKey || "button",
2558
+ className: cn(buttonVariants({
2559
+ variant: props.variant,
2560
+ size: props.size
2561
+ }), local.class),
2562
+ context: local.context
2563
+ });
2409
2564
  }
2410
2565
  }, rest), false, false);
2411
2566
  return _el$;
2412
2567
  })();
2413
2568
  };
2414
2569
  var _tmpl$31 = /* @__PURE__ */ template(`<div>`);
2415
- var _tmpl$210 = /* @__PURE__ */ template(`<div><span>`);
2570
+ var _tmpl$211 = /* @__PURE__ */ template(`<div><span>`);
2416
2571
  var DatePickerContext = createContext({
2417
2572
  currentDate: () => /* @__PURE__ */ new Date(),
2418
2573
  setCurrentDate: () => {
@@ -2454,7 +2609,10 @@ var DatePicker = (props) => {
2454
2609
  var _el$ = _tmpl$31();
2455
2610
  spread(_el$, mergeProps({
2456
2611
  get ["class"]() {
2457
- return style("datePicker", cn("nt-p-2", local.class));
2612
+ return style({
2613
+ key: "datePicker",
2614
+ className: cn("nt-p-2", local.class)
2615
+ });
2458
2616
  }
2459
2617
  }, rest), false, true);
2460
2618
  insert(_el$, () => local.children);
@@ -2471,11 +2629,14 @@ var DatePickerHeader = (props) => {
2471
2629
  currentDate,
2472
2630
  maxDays
2473
2631
  } = useDatePicker();
2474
- useAppearance();
2475
- const prevIconClass = style("datePickerControlPrevTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700", {
2632
+ const prevIconClass = style({
2633
+ key: "datePickerControlPrevTrigger__icon",
2634
+ className: "nt-size-4 nt-text-foreground-alpha-700",
2476
2635
  iconKey: "arrowLeft"
2477
2636
  });
2478
- const nextIconClass = style("datePickerControlNextTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700", {
2637
+ const nextIconClass = style({
2638
+ key: "datePickerControlNextTrigger__icon",
2639
+ className: "nt-size-4 nt-text-foreground-alpha-700",
2479
2640
  iconKey: "arrowRight"
2480
2641
  });
2481
2642
  const handlePrevMonth = () => {
@@ -2514,10 +2675,13 @@ var DatePickerHeader = (props) => {
2514
2675
  return view.getFullYear() === maxDate.getFullYear() && view.getMonth() === maxDate.getMonth();
2515
2676
  };
2516
2677
  return (() => {
2517
- var _el$2 = _tmpl$210(), _el$3 = _el$2.firstChild;
2678
+ var _el$2 = _tmpl$211(), _el$3 = _el$2.firstChild;
2518
2679
  spread(_el$2, mergeProps({
2519
2680
  get ["class"]() {
2520
- return style(local.appearanceKey || "datePickerControl", cn("nt-flex nt-items-center nt-justify-between nt-gap-1.5 nt-h-7 nt-p-1 nt-mb-2 nt-rounded-lg nt-bg-background", local.class));
2681
+ return style({
2682
+ key: local.appearanceKey || "datePickerControl",
2683
+ className: cn("nt-flex nt-items-center nt-justify-between nt-gap-1.5 nt-h-7 nt-p-1 nt-mb-2 nt-rounded-lg nt-bg-background", local.class)
2684
+ });
2521
2685
  }
2522
2686
  }, rest), false, true);
2523
2687
  insert(_el$2, createComponent(Button, {
@@ -2570,7 +2734,10 @@ var DatePickerHeader = (props) => {
2570
2734
  });
2571
2735
  }
2572
2736
  }), null);
2573
- effect(() => className(_el$3, style("datePickerHeaderMonth", "nt-text-sm nt-font-medium nt-text-foreground-alpha-700")));
2737
+ effect(() => className(_el$3, style({
2738
+ key: "datePickerHeaderMonth",
2739
+ className: "nt-text-sm nt-font-medium nt-text-foreground-alpha-700"
2740
+ })));
2574
2741
  return _el$2;
2575
2742
  })();
2576
2743
  };
@@ -2674,7 +2841,10 @@ var DatePickerCalendar = (props) => {
2674
2841
  _el$8.$$click = (e) => e.stopPropagation();
2675
2842
  spread(_el$8, mergeProps({
2676
2843
  get ["class"]() {
2677
- return style(local.appearanceKey || "datePickerCalendar", cn("nt-grid nt-grid-cols-7 nt-gap-1", local.class));
2844
+ return style({
2845
+ key: local.appearanceKey || "datePickerCalendar",
2846
+ className: cn("nt-grid nt-grid-cols-7 nt-gap-1", local.class)
2847
+ });
2678
2848
  }
2679
2849
  }, rest), false, true);
2680
2850
  insert(_el$8, () => getDaysInMonth().map((date) => {
@@ -2712,7 +2882,10 @@ var PopoverClose = (props) => {
2712
2882
  _el$.$$click = handleClick;
2713
2883
  spread(_el$, mergeProps({
2714
2884
  get ["class"]() {
2715
- return style(local.appearanceKey || "popoverClose", local.class);
2885
+ return style({
2886
+ key: local.appearanceKey || "popoverClose",
2887
+ className: local.class
2888
+ });
2716
2889
  }
2717
2890
  }, rest), false, false);
2718
2891
  return _el$;
@@ -2834,7 +3007,10 @@ var PopoverContentBody = (props) => {
2834
3007
  use(setFloating, _el$);
2835
3008
  spread(_el$, mergeProps({
2836
3009
  get ["class"]() {
2837
- return style(local.appearanceKey || "popoverContent", cn(popoverContentVariants(), local.class));
3010
+ return style({
3011
+ key: local.appearanceKey || "popoverContent",
3012
+ className: cn(popoverContentVariants(), local.class)
3013
+ });
2838
3014
  },
2839
3015
  get style() {
2840
3016
  return floatingStyles();
@@ -2937,7 +3113,9 @@ var PopoverTrigger = (props) => {
2937
3113
  typeof _ref$2 === "function" && use(_ref$2, _el$);
2938
3114
  spread(_el$, mergeProps({
2939
3115
  get ["class"]() {
2940
- return style(local.appearanceKey || "dropdownTrigger");
3116
+ return style({
3117
+ key: local.appearanceKey || "dropdownTrigger"
3118
+ });
2941
3119
  }
2942
3120
  }, rest), false, true);
2943
3121
  insert(_el$, () => props.children);
@@ -3023,7 +3201,10 @@ var DropdownTrigger = (props) => {
3023
3201
  const [local, rest] = splitProps(props, ["appearanceKey", "class"]);
3024
3202
  return createComponent(Popover.Trigger, mergeProps({
3025
3203
  get ["class"]() {
3026
- return style(local.appearanceKey || "dropdownTrigger", cn(dropdownTriggerButtonVariants(), local.class));
3204
+ return style({
3205
+ key: local.appearanceKey || "dropdownTrigger",
3206
+ className: cn(dropdownTriggerButtonVariants(), local.class)
3207
+ });
3027
3208
  }
3028
3209
  }, rest));
3029
3210
  };
@@ -3149,7 +3330,10 @@ var TabsRoot = (props) => {
3149
3330
  use(setTabsContainer, _el$);
3150
3331
  spread(_el$, mergeProps({
3151
3332
  get ["class"]() {
3152
- return style(local.appearanceKey || "tabsRoot", cn(tabsRootVariants(), local.class));
3333
+ return style({
3334
+ key: local.appearanceKey || "tabsRoot",
3335
+ className: cn(tabsRootVariants(), local.class)
3336
+ });
3153
3337
  }
3154
3338
  }, rest), false, true);
3155
3339
  insert(_el$, () => local.children);
@@ -3174,7 +3358,10 @@ var TabsContent = (props) => {
3174
3358
  var _el$ = _tmpl$38();
3175
3359
  spread(_el$, mergeProps({
3176
3360
  get ["class"]() {
3177
- return memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tabsContent", activeTab() === local.value ? "nt-block" : "nt-hidden");
3361
+ return style({
3362
+ key: local.appearanceKey || "tabsContent",
3363
+ className: cn(local.class, activeTab() === local.value ? "nt-block" : "nt-hidden")
3364
+ });
3178
3365
  },
3179
3366
  get id() {
3180
3367
  return `tabpanel-${local.value}`;
@@ -3192,7 +3379,7 @@ var TabsContent = (props) => {
3192
3379
  });
3193
3380
  };
3194
3381
  var _tmpl$39 = /* @__PURE__ */ template(`<div role=tablist>`);
3195
- var _tmpl$211 = /* @__PURE__ */ template(`<div class="nt-relative nt-z-[-1]">`);
3382
+ var _tmpl$212 = /* @__PURE__ */ template(`<div class="nt-relative nt-z-[-1]">`);
3196
3383
  var tabsListVariants = () => "nt-flex nt-gap-6";
3197
3384
  var TabsList = (props) => {
3198
3385
  const [local, rest] = splitProps(props, ["class", "appearanceKey", "ref", "children"]);
@@ -3203,12 +3390,15 @@ var TabsList = (props) => {
3203
3390
  typeof _ref$ === "function" ? use(_ref$, _el$) : local.ref = _el$;
3204
3391
  spread(_el$, mergeProps({
3205
3392
  get ["class"]() {
3206
- return style(local.appearanceKey || "tabsList", cn(tabsListVariants(), local.class));
3393
+ return style({
3394
+ key: local.appearanceKey || "tabsList",
3395
+ className: cn(tabsListVariants(), local.class)
3396
+ });
3207
3397
  }
3208
3398
  }, rest), false, true);
3209
3399
  insert(_el$, () => local.children);
3210
3400
  return _el$;
3211
- })(), _tmpl$211()];
3401
+ })(), _tmpl$212()];
3212
3402
  };
3213
3403
  var tabsTriggerVariants = () => cn("nt-relative nt-transition nt-outline-none nt-text-foreground-alpha-600 nt-pb-[0.625rem]", `after:nt-absolute after:nt-content-[''] after:nt-bottom-0 after:nt-left-0 after:nt-w-full after:nt-h-[2px]`, "after:nt-transition-opacity after:nt-duration-200", "data-[state=active]:after:nt-border-b-2 data-[state=active]:after:nt-border-primary data-[state=active]:after:nt-opacity-100", "data-[state=active]:nt-text-foreground after:nt-border-b-transparent after:nt-opacity-0", "focus-visible:nt-outline-none focus-visible:nt-rounded-lg focus-visible:nt-ring-2 focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2");
3214
3404
  var TabsTrigger = (props) => {
@@ -3234,7 +3424,10 @@ var TabsTrigger = (props) => {
3234
3424
  return (_a = local.appearanceKey) != null ? _a : "tabsTrigger";
3235
3425
  },
3236
3426
  get ["class"]() {
3237
- return memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tabsTrigger", tabsTriggerVariants());
3427
+ return style({
3428
+ key: local.appearanceKey || "tabsTrigger",
3429
+ className: cn(tabsTriggerVariants(), local.class)
3430
+ });
3238
3431
  },
3239
3432
  get onClick() {
3240
3433
  var _a;
@@ -3280,7 +3473,7 @@ var inboxFilterLocalizationKeys = {
3280
3473
  snoozed: "inbox.filters.labels.snoozed"
3281
3474
  };
3282
3475
  var _tmpl$40 = /* @__PURE__ */ template(`<span><span>`);
3283
- var _tmpl$212 = /* @__PURE__ */ template(`<span>`);
3476
+ var _tmpl$213 = /* @__PURE__ */ template(`<span>`);
3284
3477
  var cases = [{
3285
3478
  status: "unreadRead" /* UNREAD_READ */,
3286
3479
  iconKey: "unread",
@@ -3333,15 +3526,22 @@ var StatusItem = (props) => {
3333
3526
  const {
3334
3527
  t
3335
3528
  } = useLocalization();
3336
- const itemIconClass = style("inboxStatus__dropdownItemLeft__icon", "nt-size-3", {
3529
+ const itemIconClass = style({
3530
+ key: "inboxStatus__dropdownItemLeft__icon",
3531
+ className: "nt-size-3",
3337
3532
  iconKey: props.iconKey
3338
3533
  });
3339
- const checkIconClass = style("inboxStatus__dropdownItemCheck__icon", "nt-size-3", {
3534
+ const checkIconClass = style({
3535
+ key: "inboxStatus__dropdownItemCheck__icon",
3536
+ className: "nt-size-3",
3340
3537
  iconKey: "check"
3341
3538
  });
3342
3539
  return createComponent(Dropdown.Item, {
3343
3540
  get ["class"]() {
3344
- return style("inboxStatus__dropdownItem", cn(dropdownItemVariants(), "nt-flex nt-gap-8 nt-justify-between"));
3541
+ return style({
3542
+ key: "inboxStatus__dropdownItem",
3543
+ className: cn(dropdownItemVariants(), "nt-flex nt-gap-8 nt-justify-between")
3544
+ });
3345
3545
  },
3346
3546
  get onClick() {
3347
3547
  return props.onClick;
@@ -3356,7 +3556,7 @@ var StatusItem = (props) => {
3356
3556
  "class": itemIconClass,
3357
3557
  get fallback() {
3358
3558
  return (() => {
3359
- var _el$3 = _tmpl$212();
3559
+ var _el$3 = _tmpl$213();
3360
3560
  className(_el$3, itemIconClass);
3361
3561
  insert(_el$3, () => props.icon());
3362
3562
  return _el$3;
@@ -3365,7 +3565,13 @@ var StatusItem = (props) => {
3365
3565
  }), _el$2);
3366
3566
  insert(_el$2, () => t(props.localizationKey));
3367
3567
  effect((_p$) => {
3368
- var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = props.localizationKey, _v$3 = style("inboxStatus__dropdownItemLabel", "nt-leading-none");
3568
+ var _v$ = style({
3569
+ key: "inboxStatus__dropdownItemLabelContainer",
3570
+ className: "nt-flex nt-gap-2 nt-items-center"
3571
+ }), _v$2 = props.localizationKey, _v$3 = style({
3572
+ key: "inboxStatus__dropdownItemLabel",
3573
+ className: "nt-leading-none"
3574
+ });
3369
3575
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
3370
3576
  _v$2 !== _p$.t && setAttribute(_el$2, "data-localization", _p$.t = _v$2);
3371
3577
  _v$3 !== _p$.a && className(_el$2, _p$.a = _v$3);
@@ -3407,17 +3613,22 @@ var StatusDropdown = () => {
3407
3613
  const {
3408
3614
  t
3409
3615
  } = useLocalization();
3410
- const arrowDropDownIconClass = style("inboxStatus__dropdownItemRight__icon", "nt-text-foreground-alpha-600 nt-size-4", {
3616
+ const arrowDropDownIconClass = style({
3617
+ key: "inboxStatus__dropdownItemRight__icon",
3618
+ className: "nt-text-foreground-alpha-600 nt-size-4",
3411
3619
  iconKey: "arrowDropDown"
3412
3620
  });
3413
3621
  return createComponent(Dropdown.Root, {
3414
3622
  get children() {
3415
3623
  return [createComponent(Dropdown.Trigger, {
3416
3624
  get ["class"]() {
3417
- return style("inboxStatus__dropdownTrigger", cn(buttonVariants({
3418
- variant: "unstyled",
3419
- size: "none"
3420
- }), "nt-gap-0.5"));
3625
+ return style({
3626
+ key: "inboxStatus__dropdownTrigger",
3627
+ className: cn(buttonVariants({
3628
+ variant: "unstyled",
3629
+ size: "none"
3630
+ }), "nt-gap-0.5")
3631
+ });
3421
3632
  },
3422
3633
  asChild: (triggerProps) => createComponent(Button, mergeProps({
3423
3634
  variant: "unstyled",
@@ -3428,7 +3639,10 @@ var StatusDropdown = () => {
3428
3639
  var _el$ = _tmpl$41();
3429
3640
  insert(_el$, () => t(inboxFilterLocalizationKeys[status()]));
3430
3641
  effect((_p$) => {
3431
- var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-base");
3642
+ var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style({
3643
+ key: "inboxStatus__title",
3644
+ className: "nt-text-base"
3645
+ });
3432
3646
  _v$ !== _p$.e && setAttribute(_el$, "data-localization", _p$.e = _v$);
3433
3647
  _v$2 !== _p$.t && className(_el$, _p$.t = _v$2);
3434
3648
  return _p$;
@@ -3539,9 +3753,9 @@ var useNotificationsInfiniteScroll = (props) => {
3539
3753
  var usePreferences = (options) => {
3540
3754
  const novu = useNovu();
3541
3755
  const [loading, setLoading] = createSignal(true);
3542
- const [preferences, { mutate, refetch }] = createResource(options || {}, (_0) => __async(void 0, [_0], function* ({ tags }) {
3756
+ const [preferences, { mutate, refetch }] = createResource(options || {}, (_0) => __async(void 0, [_0], function* ({ tags, severity, criticality }) {
3543
3757
  try {
3544
- const response = yield novu.preferences.list({ tags });
3758
+ const response = yield novu.preferences.list({ tags, severity, criticality });
3545
3759
  return response.data;
3546
3760
  } catch (error) {
3547
3761
  console.error("Error fetching preferences:", error);
@@ -3631,12 +3845,17 @@ var ActionsItem = (props) => {
3631
3845
  t
3632
3846
  } = useLocalization();
3633
3847
  const DefaultIconComponent = iconKeyToComponentMap[props.iconKey];
3634
- const moreActionsIconClass = style("moreActions__dropdownItemLeft__icon", "nt-size-3", {
3848
+ const moreActionsIconClass = style({
3849
+ key: "moreActions__dropdownItemLeft__icon",
3850
+ className: "nt-size-3",
3635
3851
  iconKey: props.iconKey
3636
3852
  });
3637
3853
  return createComponent(Dropdown.Item, {
3638
3854
  get ["class"]() {
3639
- return style("moreActions__dropdownItem", cn(dropdownItemVariants(), "nt-flex nt-gap-2"));
3855
+ return style({
3856
+ key: "moreActions__dropdownItem",
3857
+ className: cn(dropdownItemVariants(), "nt-flex nt-gap-2")
3858
+ });
3640
3859
  },
3641
3860
  get onClick() {
3642
3861
  return props.onClick;
@@ -3656,7 +3875,10 @@ var ActionsItem = (props) => {
3656
3875
  var _el$ = _tmpl$43();
3657
3876
  insert(_el$, () => t(props.localizationKey));
3658
3877
  effect((_p$) => {
3659
- var _v$ = props.localizationKey, _v$2 = style("moreActions__dropdownItemLabel", "nt-leading-none");
3878
+ var _v$ = props.localizationKey, _v$2 = style({
3879
+ key: "moreActions__dropdownItemLabel",
3880
+ className: "nt-leading-none"
3881
+ });
3660
3882
  _v$ !== _p$.e && setAttribute(_el$, "data-localization", _p$.e = _v$);
3661
3883
  _v$2 !== _p$.t && className(_el$, _p$.t = _v$2);
3662
3884
  return _p$;
@@ -3676,7 +3898,9 @@ var MoreActionsDropdown = () => {
3676
3898
  const {
3677
3899
  status
3678
3900
  } = useInboxContext();
3679
- const dotsIconClass = style("moreActions__dots", "nt-size-5", {
3901
+ const dotsIconClass = style({
3902
+ key: "moreActions__dots",
3903
+ className: "nt-size-5",
3680
3904
  iconKey: "dots"
3681
3905
  });
3682
3906
  return createComponent(Show, {
@@ -3688,7 +3912,9 @@ var MoreActionsDropdown = () => {
3688
3912
  get children() {
3689
3913
  return [createComponent(Dropdown.Trigger, {
3690
3914
  get ["class"]() {
3691
- return style("moreActions__dropdownTrigger");
3915
+ return style({
3916
+ key: "moreActions__dropdownTrigger"
3917
+ });
3692
3918
  },
3693
3919
  asChild: (triggerProps) => createComponent(Button, mergeProps({
3694
3920
  variant: "ghost",
@@ -3722,7 +3948,9 @@ var MoreActionsDropdown = () => {
3722
3948
  var _tmpl$44 = /* @__PURE__ */ template(`<div>`);
3723
3949
  var ActionsContainer = (props) => {
3724
3950
  const style = useStyle();
3725
- const cogsIconClass = style("icon", "nt-size-5", {
3951
+ const cogsIconClass = style({
3952
+ key: "icon",
3953
+ className: "nt-size-5",
3726
3954
  iconKey: "cogs"
3727
3955
  });
3728
3956
  return (() => {
@@ -3752,7 +3980,10 @@ var ActionsContainer = (props) => {
3752
3980
  }
3753
3981
  })
3754
3982
  }), null);
3755
- effect(() => className(_el$, style("moreActionsContainer", "nt-flex nt-gap-3")));
3983
+ effect(() => className(_el$, style({
3984
+ key: "moreActionsContainer",
3985
+ className: "nt-flex nt-gap-3"
3986
+ })));
3756
3987
  return _el$;
3757
3988
  })();
3758
3989
  };
@@ -3769,17 +4000,23 @@ var Header = (props) => {
3769
4000
  return props.navigateToPreferences;
3770
4001
  }
3771
4002
  }), null);
3772
- effect(() => className(_el$, style("inboxHeader", cn("nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-justify-between nt-items-center nt-w-full nt-pb-2 nt-pt-2.5 nt-px-4"))));
4003
+ effect(() => className(_el$, style({
4004
+ key: "inboxHeader",
4005
+ className: "nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-justify-between nt-items-center nt-w-full nt-pb-2 nt-pt-2.5 nt-px-4"
4006
+ })));
3773
4007
  return _el$;
3774
4008
  })();
3775
4009
  };
3776
4010
  var _tmpl$46 = /* @__PURE__ */ template(`<div>`);
3777
- var _tmpl$213 = /* @__PURE__ */ template(`<div><div></div><div>`);
4011
+ var _tmpl$214 = /* @__PURE__ */ template(`<div><div></div><div>`);
3778
4012
  var SkeletonText = (props) => {
3779
4013
  const style = useStyle();
3780
4014
  return (() => {
3781
4015
  var _el$ = _tmpl$46();
3782
- effect(() => className(_el$, style(props.appearanceKey, cn("nt-w-full nt-h-3 nt-rounded nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class))));
4016
+ effect(() => className(_el$, style({
4017
+ key: props.appearanceKey,
4018
+ className: cn("nt-w-full nt-h-3 nt-rounded nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class)
4019
+ })));
3783
4020
  return _el$;
3784
4021
  })();
3785
4022
  };
@@ -3787,16 +4024,28 @@ var SkeletonAvatar = (props) => {
3787
4024
  const style = useStyle();
3788
4025
  return (() => {
3789
4026
  var _el$2 = _tmpl$46();
3790
- effect(() => className(_el$2, style(props.appearanceKey, cn("nt-size-8 nt-rounded-lg nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class))));
4027
+ effect(() => className(_el$2, style({
4028
+ key: props.appearanceKey,
4029
+ className: cn("nt-size-8 nt-rounded-lg nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class)
4030
+ })));
3791
4031
  return _el$2;
3792
4032
  })();
3793
4033
  };
3794
4034
  var SkeletonSwitch = (props) => {
3795
4035
  const style = useStyle();
3796
4036
  return (() => {
3797
- var _el$3 = _tmpl$213(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
4037
+ var _el$3 = _tmpl$214(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
3798
4038
  effect((_p$) => {
3799
- var _v$ = style(props.appearanceKey, cn("nt-relative nt-inline-flex nt-items-center", props.class)), _v$2 = style(props.appearanceKey, "nt-h-4 nt-w-7 nt-rounded-full nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent"), _v$3 = style(props.thumbAppearanceKey, "nt-absolute nt-top-0.5 nt-left-0.5 nt-size-3 nt-rounded-full nt-bg-background nt-shadow");
4039
+ var _v$ = style({
4040
+ key: props.appearanceKey,
4041
+ className: cn("nt-relative nt-inline-flex nt-items-center", props.class)
4042
+ }), _v$2 = style({
4043
+ key: props.appearanceKey,
4044
+ className: "nt-h-4 nt-w-7 nt-rounded-full nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent"
4045
+ }), _v$3 = style({
4046
+ key: props.thumbAppearanceKey,
4047
+ className: "nt-absolute nt-top-0.5 nt-left-0.5 nt-size-3 nt-rounded-full nt-bg-background nt-shadow"
4048
+ });
3800
4049
  _v$ !== _p$.e && className(_el$3, _p$.e = _v$);
3801
4050
  _v$2 !== _p$.t && className(_el$4, _p$.t = _v$2);
3802
4051
  _v$3 !== _p$.a && className(_el$5, _p$.a = _v$3);
@@ -3832,7 +4081,10 @@ var PreferencesListSkeleton = (props) => {
3832
4081
  delay: 0.3
3833
4082
  },
3834
4083
  get ["class"]() {
3835
- return style("preferencesList__skeleton", "nt-flex nt-relative nt-mx-auto nt-flex-col nt-w-full nt-mb-4");
4084
+ return style({
4085
+ key: "preferencesList__skeleton",
4086
+ className: "nt-flex nt-relative nt-mx-auto nt-flex-col nt-w-full nt-mb-4"
4087
+ });
3836
4088
  },
3837
4089
  get children() {
3838
4090
  return [memo(() => Array.from({
@@ -3853,12 +4105,18 @@ var PreferencesListSkeleton = (props) => {
3853
4105
  easing: "ease-in-out"
3854
4106
  },
3855
4107
  get ["class"]() {
3856
- return style("preferencesList__skeletonContent", "nt-flex nt-border-neutral-alpha-50 nt-items-center nt-gap-3 nt-p-3 nt-bg-neutral-alpha-25");
4108
+ return style({
4109
+ key: "preferencesList__skeletonContent",
4110
+ className: "nt-flex nt-border-neutral-alpha-50 nt-items-center nt-gap-3 nt-p-3 nt-bg-neutral-alpha-25"
4111
+ });
3857
4112
  },
3858
4113
  get children() {
3859
4114
  return [createComponent(Icon, {
3860
4115
  get ["class"]() {
3861
- return style("preferencesList__skeletonIcon", "nt-size-8 nt-p-2 nt-rounded-lg nt-bg-neutral-alpha-100");
4116
+ return style({
4117
+ key: "preferencesList__skeletonIcon",
4118
+ className: "nt-size-8 nt-p-2 nt-rounded-lg nt-bg-neutral-alpha-100"
4119
+ });
3862
4120
  }
3863
4121
  }), (() => {
3864
4122
  var _el$3 = _tmpl$47();
@@ -3870,7 +4128,10 @@ var PreferencesListSkeleton = (props) => {
3870
4128
  appearanceKey: "preferencesList__skeletonText",
3871
4129
  "class": "nt-h-2 nt-w-2/3 nt-bg-neutral-alpha-50 nt-rounded"
3872
4130
  }), null);
3873
- effect(() => className(_el$3, style("preferencesList__skeletonItem", "nt-flex nt-flex-col nt-gap-2 nt-flex-1")));
4131
+ effect(() => className(_el$3, style({
4132
+ key: "preferencesList__skeletonItem",
4133
+ className: "nt-flex nt-flex-col nt-gap-2 nt-flex-1"
4134
+ })));
3874
4135
  return _el$3;
3875
4136
  })(), createComponent(SkeletonSwitch, {
3876
4137
  appearanceKey: "preferencesList__skeletonSwitch",
@@ -3880,7 +4141,10 @@ var PreferencesListSkeleton = (props) => {
3880
4141
  });
3881
4142
  })), (() => {
3882
4143
  var _el$2 = _tmpl$47();
3883
- effect(() => className(_el$2, style("notificationListEmptyNoticeOverlay", "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background")));
4144
+ effect(() => className(_el$2, style({
4145
+ key: "notificationListEmptyNoticeOverlay",
4146
+ className: "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background"
4147
+ })));
3884
4148
  return _el$2;
3885
4149
  })()];
3886
4150
  }
@@ -3909,7 +4173,10 @@ var PreferencesListSkeleton = (props) => {
3909
4173
  delay: 0.6
3910
4174
  },
3911
4175
  get ["class"]() {
3912
- return style("preferencesListEmptyNotice"), "nt-text-center";
4176
+ return style({
4177
+ key: "preferencesListEmptyNotice",
4178
+ className: "nt-text-center"
4179
+ });
3913
4180
  },
3914
4181
  "data-localization": "preferences.emptyNotice",
3915
4182
  get children() {
@@ -3918,7 +4185,10 @@ var PreferencesListSkeleton = (props) => {
3918
4185
  });
3919
4186
  }
3920
4187
  }), null);
3921
- effect(() => className(_el$, style("preferencesListEmptyNoticeContainer", "nt-flex nt-flex-col nt-items-center nt-h-fit nt-w-full nt-text-sm nt-text-foreground-alpha-400 nt-text-center")));
4188
+ effect(() => className(_el$, style({
4189
+ key: "preferencesListEmptyNoticeContainer",
4190
+ className: "nt-flex nt-flex-col nt-items-center nt-h-fit nt-w-full nt-text-sm nt-text-foreground-alpha-400 nt-text-center"
4191
+ })));
3922
4192
  return _el$;
3923
4193
  })();
3924
4194
  };
@@ -3966,7 +4236,10 @@ var Collapsible = (props) => {
3966
4236
  var _el$ = _tmpl$49(), _el$2 = _el$.firstChild;
3967
4237
  spread(_el$, mergeProps({
3968
4238
  get ["class"]() {
3969
- return style("collapsible", props.class);
4239
+ return style({
4240
+ key: "collapsible",
4241
+ className: props.class
4242
+ });
3970
4243
  },
3971
4244
  get style() {
3972
4245
  return {
@@ -4012,12 +4285,18 @@ var Switch = (props) => {
4012
4285
  var _el$ = _tmpl$50(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
4013
4286
  _el$2.addEventListener("change", handleChange);
4014
4287
  effect((_p$) => {
4015
- var _v$ = style("channelSwitch", cn("nt-relative nt-inline-flex nt-cursor-pointer nt-items-center", {
4016
- "nt-opacity-50 nt-cursor-not-allowed": disabled()
4017
- })), _v$2 = disabled(), _v$3 = style("channelSwitchThumb", cn(`nt-h-4 nt-w-7 nt-rounded-full nt-bg-neutral-alpha-300 after:nt-absolute after:nt-top-0.5 after:nt-size-3 after:nt-left-0.5 after:nt-rounded-full after:nt-bg-background after:nt-transition-all after:nt-content-[''] nt-transition-all nt-duration-200 after:nt-duration-200 shadow-sm`, {
4018
- "nt-bg-primary nt-shadow-none nt-border-neutral-alpha-400 after:nt-translate-x-full after:nt-border-background": isChecked(),
4019
- "after:nt-translate-x-1/2": isIndeterminate()
4020
- })), _v$4 = state();
4288
+ var _v$ = style({
4289
+ key: "channelSwitch",
4290
+ className: cn("nt-relative nt-inline-flex nt-cursor-pointer nt-items-center", {
4291
+ "nt-opacity-50 nt-cursor-not-allowed": disabled()
4292
+ })
4293
+ }), _v$2 = disabled(), _v$3 = style({
4294
+ key: "channelSwitchThumb",
4295
+ className: cn(`nt-h-4 nt-w-7 nt-rounded-full nt-bg-neutral-alpha-300 after:nt-absolute after:nt-top-0.5 after:nt-size-3 after:nt-left-0.5 after:nt-rounded-full after:nt-bg-background after:nt-transition-all after:nt-content-[''] nt-transition-all nt-duration-200 after:nt-duration-200 shadow-sm`, {
4296
+ "nt-bg-primary nt-shadow-none nt-border-neutral-alpha-400 after:nt-translate-x-full after:nt-border-background": isChecked(),
4297
+ "after:nt-translate-x-1/2": isIndeterminate()
4298
+ })
4299
+ }), _v$4 = state();
4021
4300
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
4022
4301
  _v$2 !== _p$.t && (_el$2.disabled = _p$.t = _v$2);
4023
4302
  _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
@@ -4055,17 +4334,62 @@ var ChannelRow = (props) => {
4055
4334
  get channel() {
4056
4335
  return channel();
4057
4336
  },
4058
- "class": "nt-size-3"
4337
+ "class": "nt-size-3",
4338
+ get preference() {
4339
+ return props.preference;
4340
+ },
4341
+ get preferenceGroup() {
4342
+ return props.preferenceGroup;
4343
+ }
4059
4344
  }));
4060
4345
  insert(_el$4, () => getLabel(channel()));
4061
4346
  insert(_el$5, createComponent(Switch, {
4062
4347
  get state() {
4063
4348
  return state();
4064
4349
  },
4065
- onChange: (newState) => onChange(newState === "enabled")
4350
+ onChange: (newState) => onChange(newState === "enabled"),
4351
+ get disabled() {
4352
+ var _a, _b;
4353
+ return (_b = (_a = props.preference) == null ? void 0 : _a.workflow) == null ? void 0 : _b.critical;
4354
+ }
4066
4355
  }));
4067
4356
  effect((_p$) => {
4068
- var _v$ = style("channelContainer", "nt-flex nt-justify-between nt-items-center nt-gap-2 data-[disabled=true]:nt-text-foreground-alpha-600"), _v$2 = style("channelLabelContainer", "nt-flex nt-items-center nt-gap-2 nt-text-foreground"), _v$3 = style("channelIconContainer", "nt-p-1 nt-rounded-md nt-bg-neutral-alpha-25 nt-text-foreground-alpha-300"), _v$4 = style("channelLabel", "nt-text-sm nt-font-semibold"), _v$5 = style("channelSwitchContainer", "nt-flex nt-items-center");
4357
+ var _v$ = style({
4358
+ key: "channelContainer",
4359
+ className: "nt-flex nt-justify-between nt-items-center nt-gap-2 data-[disabled=true]:nt-text-foreground-alpha-600",
4360
+ context: {
4361
+ preference: props.preference,
4362
+ preferenceGroup: props.preferenceGroup
4363
+ }
4364
+ }), _v$2 = style({
4365
+ key: "channelLabelContainer",
4366
+ className: "nt-flex nt-items-center nt-gap-2 nt-text-foreground",
4367
+ context: {
4368
+ preference: props.preference,
4369
+ preferenceGroup: props.preferenceGroup
4370
+ }
4371
+ }), _v$3 = style({
4372
+ key: "channelIconContainer",
4373
+ className: "nt-p-1 nt-rounded-md nt-bg-neutral-alpha-25 nt-text-foreground-alpha-300",
4374
+ context: {
4375
+ preference: props.preference,
4376
+ preferenceGroup: props.preferenceGroup
4377
+ }
4378
+ }), _v$4 = style({
4379
+ key: "channelLabel",
4380
+ className: "nt-text-sm nt-font-semibold",
4381
+ context: {
4382
+ preference: props.preference,
4383
+ preferenceGroup: props.preferenceGroup
4384
+ }
4385
+ }), _v$5 = style({
4386
+ key: "channelSwitchContainer",
4387
+ className: "nt-flex nt-items-center",
4388
+ context: {
4389
+ preference: props.preference,
4390
+ preferenceGroup: props.preferenceGroup
4391
+ }
4392
+ });
4069
4393
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
4070
4394
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
4071
4395
  _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
@@ -4089,8 +4413,14 @@ var ChannelIcon = (props) => {
4089
4413
  key: "inApp",
4090
4414
  component: createComponent(InApp, {
4091
4415
  get ["class"]() {
4092
- return style(props.appearanceKey, props.class, {
4093
- iconKey: "inApp"
4416
+ return style({
4417
+ key: props.appearanceKey,
4418
+ className: props.class,
4419
+ iconKey: "inApp",
4420
+ context: {
4421
+ preference: props.preference,
4422
+ preferenceGroup: props.preferenceGroup
4423
+ }
4094
4424
  });
4095
4425
  }
4096
4426
  })
@@ -4099,8 +4429,14 @@ var ChannelIcon = (props) => {
4099
4429
  key: "email",
4100
4430
  component: createComponent(Email, {
4101
4431
  get ["class"]() {
4102
- return style(props.appearanceKey, props.class, {
4103
- iconKey: "email"
4432
+ return style({
4433
+ key: props.appearanceKey,
4434
+ className: props.class,
4435
+ iconKey: "email",
4436
+ context: {
4437
+ preference: props.preference,
4438
+ preferenceGroup: props.preferenceGroup
4439
+ }
4104
4440
  });
4105
4441
  }
4106
4442
  })
@@ -4109,8 +4445,14 @@ var ChannelIcon = (props) => {
4109
4445
  key: "push",
4110
4446
  component: createComponent(Push, {
4111
4447
  get ["class"]() {
4112
- return style(props.appearanceKey, props.class, {
4113
- iconKey: "push"
4448
+ return style({
4449
+ key: props.appearanceKey,
4450
+ className: props.class,
4451
+ iconKey: "push",
4452
+ context: {
4453
+ preference: props.preference,
4454
+ preferenceGroup: props.preferenceGroup
4455
+ }
4114
4456
  });
4115
4457
  }
4116
4458
  })
@@ -4119,8 +4461,14 @@ var ChannelIcon = (props) => {
4119
4461
  key: "sms",
4120
4462
  component: createComponent(Sms, {
4121
4463
  get ["class"]() {
4122
- return style(props.appearanceKey, props.class, {
4123
- iconKey: "sms"
4464
+ return style({
4465
+ key: props.appearanceKey,
4466
+ className: props.class,
4467
+ iconKey: "sms",
4468
+ context: {
4469
+ preference: props.preference,
4470
+ preferenceGroup: props.preferenceGroup
4471
+ }
4124
4472
  });
4125
4473
  }
4126
4474
  })
@@ -4129,8 +4477,14 @@ var ChannelIcon = (props) => {
4129
4477
  key: "chat",
4130
4478
  component: createComponent(Chat, {
4131
4479
  get ["class"]() {
4132
- return style(props.appearanceKey, props.class, {
4133
- iconKey: "chat"
4480
+ return style({
4481
+ key: props.appearanceKey,
4482
+ className: props.class,
4483
+ iconKey: "chat",
4484
+ context: {
4485
+ preference: props.preference,
4486
+ preferenceGroup: props.preferenceGroup
4487
+ }
4134
4488
  });
4135
4489
  }
4136
4490
  })
@@ -4148,8 +4502,13 @@ var ChannelIcon = (props) => {
4148
4502
  return iconData.component;
4149
4503
  },
4150
4504
  get ["class"]() {
4151
- return style(props.appearanceKey, props.class, {
4152
- iconKey: iconData.key
4505
+ return style({
4506
+ key: props.appearanceKey,
4507
+ className: props.class,
4508
+ iconKey: iconData.key,
4509
+ context: {
4510
+ preference: props.preference
4511
+ }
4153
4512
  });
4154
4513
  }
4155
4514
  });
@@ -4173,7 +4532,7 @@ var getLabel = (channel) => {
4173
4532
 
4174
4533
  // src/ui/components/elements/Preferences/PreferencesRow.tsx
4175
4534
  var _tmpl$53 = /* @__PURE__ */ template(`<div>`);
4176
- var _tmpl$214 = /* @__PURE__ */ template(`<div><div><div><div><span></span></div></div><span>`);
4535
+ var _tmpl$215 = /* @__PURE__ */ template(`<div><div><div><div><span></span></div></div><span>`);
4177
4536
  var _tmpl$310 = /* @__PURE__ */ template(`<span>`);
4178
4537
  var iconKeyToComponentMap2 = {
4179
4538
  cogs: Cogs,
@@ -4195,19 +4554,13 @@ var PreferencesRow = (props) => {
4195
4554
  };
4196
4555
  });
4197
4556
  });
4198
- const iconClass = style("workflowLabelIcon", "nt-text-foreground-alpha-600 nt-size-3.5", {
4199
- iconKey: "cogs"
4200
- });
4201
- const arrowDropDownIconClass = style("workflowArrow__icon", "nt-text-foreground-alpha-600 nt-size-4", {
4202
- iconKey: "arrowDropDown"
4203
- });
4204
4557
  const DefaultIconComponent = iconKeyToComponentMap2[props.iconKey];
4205
4558
  return createComponent(Show, {
4206
4559
  get when() {
4207
4560
  return channels().length > 0;
4208
4561
  },
4209
4562
  get children() {
4210
- var _el$ = _tmpl$214(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$3.nextSibling;
4563
+ var _el$ = _tmpl$215(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$3.nextSibling;
4211
4564
  _el$2.$$click = () => {
4212
4565
  setIsOpenChannels((prev) => !prev);
4213
4566
  };
@@ -4215,10 +4568,26 @@ var PreferencesRow = (props) => {
4215
4568
  get iconKey() {
4216
4569
  return props.iconKey;
4217
4570
  },
4218
- "class": iconClass,
4571
+ get ["class"]() {
4572
+ return style({
4573
+ key: "workflowLabelIcon",
4574
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
4575
+ iconKey: "cogs",
4576
+ context: {
4577
+ preference: props.preference
4578
+ }
4579
+ });
4580
+ },
4219
4581
  get fallback() {
4220
4582
  return DefaultIconComponent && DefaultIconComponent({
4221
- class: iconClass
4583
+ class: style({
4584
+ key: "workflowLabelIcon",
4585
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
4586
+ iconKey: "cogs",
4587
+ context: {
4588
+ preference: props.preference
4589
+ }
4590
+ })
4222
4591
  });
4223
4592
  }
4224
4593
  }), _el$5);
@@ -4237,16 +4606,37 @@ var PreferencesRow = (props) => {
4237
4606
  return (_b = (_a = props.preference) == null ? void 0 : _a.channels) != null ? _b : {};
4238
4607
  },
4239
4608
  appearanceKey: "workflowDescription",
4240
- "class": "nt-overflow-hidden"
4609
+ "class": "nt-overflow-hidden",
4610
+ get preference() {
4611
+ return props.preference;
4612
+ }
4241
4613
  });
4242
4614
  }
4243
4615
  }), null);
4244
4616
  insert(_el$6, createComponent(IconRendererWrapper, {
4245
4617
  iconKey: "arrowDropDown",
4246
- "class": arrowDropDownIconClass,
4618
+ get ["class"]() {
4619
+ return style({
4620
+ key: "workflowArrow__icon",
4621
+ className: "nt-text-foreground-alpha-600 nt-size-4",
4622
+ iconKey: "arrowDropDown",
4623
+ context: {
4624
+ preference: props.preference
4625
+ }
4626
+ });
4627
+ },
4247
4628
  get fallback() {
4248
4629
  return createComponent(ArrowDropDown, {
4249
- "class": arrowDropDownIconClass
4630
+ get ["class"]() {
4631
+ return style({
4632
+ key: "workflowArrow__icon",
4633
+ className: "nt-text-foreground-alpha-600 nt-size-4",
4634
+ iconKey: "arrowDropDown",
4635
+ context: {
4636
+ preference: props.preference
4637
+ }
4638
+ });
4639
+ }
4250
4640
  });
4251
4641
  }
4252
4642
  }));
@@ -4271,16 +4661,61 @@ var PreferencesRow = (props) => {
4271
4661
  get onChange() {
4272
4662
  var _a, _b;
4273
4663
  return props.onChange((_b = (_a = props.preference) == null ? void 0 : _a.workflow) == null ? void 0 : _b.identifier);
4664
+ },
4665
+ get preference() {
4666
+ return props.preference;
4274
4667
  }
4275
4668
  })
4276
4669
  }));
4277
- effect(() => className(_el$7, style("channelsContainer", "nt-flex nt-bg-background nt-border nt-border-neutral-alpha-200 nt-rounded-lg nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden")));
4670
+ effect(() => className(_el$7, style({
4671
+ key: "channelsContainer",
4672
+ className: "nt-flex nt-bg-background nt-border nt-border-neutral-alpha-200 nt-rounded-lg nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden",
4673
+ context: {
4674
+ preference: props.preference
4675
+ }
4676
+ })));
4278
4677
  return _el$7;
4279
4678
  }
4280
4679
  }), null);
4281
4680
  effect((_p$) => {
4282
4681
  var _a, _b, _c;
4283
- var _v$ = style("workflowContainer", `nt-p-1 nt-bg-neutral-alpha-25 nt-rounded-lg nt-border nt-border-neutral-alpha-50`), _v$2 = isOpenChannels(), _v$3 = style("workflowLabelContainer", "nt-flex nt-justify-between nt-p-1 nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden"), _v$4 = style("workflowLabelHeader", "nt-overflow-hidden"), _v$5 = style("workflowLabelHeaderContainer", "nt-flex nt-items-center nt-gap-1"), _v$6 = style("workflowLabel", "nt-text-sm nt-font-semibold nt-truncate nt-text-start"), _v$7 = (_c = (_b = (_a = props.preference) == null ? void 0 : _a.workflow) == null ? void 0 : _b.identifier) != null ? _c : "preferences.global", _v$8 = isOpenChannels(), _v$9 = style("workflowContainerRight__icon", `nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180`), _v$10 = isOpenChannels();
4682
+ var _v$ = style({
4683
+ key: "workflowContainer",
4684
+ className: "nt-p-1 nt-bg-neutral-alpha-25 nt-rounded-lg nt-border nt-border-neutral-alpha-50",
4685
+ context: {
4686
+ preference: props.preference
4687
+ }
4688
+ }), _v$2 = isOpenChannels(), _v$3 = style({
4689
+ key: "workflowLabelContainer",
4690
+ className: "nt-flex nt-justify-between nt-p-1 nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden",
4691
+ context: {
4692
+ preference: props.preference
4693
+ }
4694
+ }), _v$4 = style({
4695
+ key: "workflowLabelHeader",
4696
+ className: "nt-overflow-hidden",
4697
+ context: {
4698
+ preference: props.preference
4699
+ }
4700
+ }), _v$5 = style({
4701
+ key: "workflowLabelHeaderContainer",
4702
+ className: "nt-flex nt-items-center nt-gap-1",
4703
+ context: {
4704
+ preference: props.preference
4705
+ }
4706
+ }), _v$6 = style({
4707
+ key: "workflowLabel",
4708
+ className: "nt-text-sm nt-font-semibold nt-truncate nt-text-start",
4709
+ context: {
4710
+ preference: props.preference
4711
+ }
4712
+ }), _v$7 = (_c = (_b = (_a = props.preference) == null ? void 0 : _a.workflow) == null ? void 0 : _b.identifier) != null ? _c : "preferences.global", _v$8 = isOpenChannels(), _v$9 = style({
4713
+ key: "workflowContainerRight__icon",
4714
+ className: "nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180",
4715
+ context: {
4716
+ preference: props.preference
4717
+ }
4718
+ }), _v$10 = isOpenChannels();
4284
4719
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
4285
4720
  _v$2 !== _p$.t && setAttribute(_el$, "data-open", _p$.t = _v$2);
4286
4721
  _v$3 !== _p$.a && className(_el$2, _p$.a = _v$3);
@@ -4319,7 +4754,13 @@ var WorkflowDescription = (props) => {
4319
4754
  var _el$8 = _tmpl$310();
4320
4755
  setAttribute(_el$8, "data-disabled", isDisabled);
4321
4756
  insert(_el$8, () => getLabel(key));
4322
- effect(() => className(_el$8, style("channelName", "data-[disabled=true]:nt-text-foreground-alpha-400")));
4757
+ effect(() => className(_el$8, style({
4758
+ key: "channelName",
4759
+ className: "data-[disabled=true]:nt-text-foreground-alpha-400",
4760
+ context: {
4761
+ preference: props.preference
4762
+ }
4763
+ })));
4323
4764
  return _el$8;
4324
4765
  })();
4325
4766
  channels.push(element);
@@ -4330,7 +4771,10 @@ var WorkflowDescription = (props) => {
4330
4771
  return (() => {
4331
4772
  var _el$9 = _tmpl$53();
4332
4773
  insert(_el$9, channelNames);
4333
- effect(() => className(_el$9, style(props.appearanceKey, cn("nt-text-sm nt-text-foreground-alpha-600 nt-text-start", props.class))));
4774
+ effect(() => className(_el$9, style({
4775
+ key: props.appearanceKey,
4776
+ className: cn("nt-text-sm nt-text-foreground-alpha-600 nt-text-start", props.class)
4777
+ })));
4334
4778
  return _el$9;
4335
4779
  })();
4336
4780
  };
@@ -4397,7 +4841,7 @@ var NodeTree = (props) => {
4397
4841
 
4398
4842
  // src/ui/components/elements/Preferences/GroupedPreferencesRow.tsx
4399
4843
  var _tmpl$56 = /* @__PURE__ */ template(`<div><div><span data-localization=preferences.group.info></span></div><div>`);
4400
- var _tmpl$215 = /* @__PURE__ */ template(`<div><div><div><span></span></div><div><span>`);
4844
+ var _tmpl$216 = /* @__PURE__ */ template(`<div><div><div><span></span></div><div><span>`);
4401
4845
  var GroupedPreferencesRow = (props) => {
4402
4846
  const style = useStyle();
4403
4847
  const {
@@ -4454,24 +4898,37 @@ var GroupedPreferencesRow = (props) => {
4454
4898
  props.bulkUpdatePreferences(filteredPreferences)(channels);
4455
4899
  };
4456
4900
  const preferences = createMemo(() => props.group.preferences);
4457
- const nodeTreeIconClass = style("preferencesGroupLabelIcon", "nt-text-foreground-alpha-600 nt-size-3.5");
4458
- const infoIconClass = style("preferencesGroupInfoIcon", "nt-size-4");
4459
- const dropdownIconClass = style("moreTabs__icon", "nt-size-4");
4460
4901
  return createComponent(Show, {
4461
4902
  get when() {
4462
4903
  return Object.keys(uniqueChannels()).length > 0;
4463
4904
  },
4464
4905
  get children() {
4465
- var _el$ = _tmpl$215(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.firstChild;
4906
+ var _el$ = _tmpl$216(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.firstChild;
4466
4907
  _el$2.$$click = () => {
4467
4908
  setIsOpened((prev) => !prev);
4468
4909
  };
4469
4910
  insert(_el$3, createComponent(IconRendererWrapper, {
4470
4911
  iconKey: "nodeTree",
4471
- "class": nodeTreeIconClass,
4912
+ get ["class"]() {
4913
+ return style({
4914
+ key: "preferencesGroupLabelIcon",
4915
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
4916
+ context: {
4917
+ preferenceGroup: props.group
4918
+ }
4919
+ });
4920
+ },
4472
4921
  get fallback() {
4473
4922
  return createComponent(NodeTree, {
4474
- "class": nodeTreeIconClass
4923
+ get ["class"]() {
4924
+ return style({
4925
+ key: "preferencesGroupLabelIcon",
4926
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
4927
+ context: {
4928
+ preferenceGroup: props.group
4929
+ }
4930
+ });
4931
+ }
4475
4932
  });
4476
4933
  }
4477
4934
  }), _el$4);
@@ -4484,10 +4941,20 @@ var GroupedPreferencesRow = (props) => {
4484
4941
  }), _el$6);
4485
4942
  insert(_el$6, createComponent(IconRendererWrapper, {
4486
4943
  iconKey: "arrowDropDown",
4487
- "class": dropdownIconClass,
4944
+ get ["class"]() {
4945
+ return style({
4946
+ key: "moreTabs__icon",
4947
+ className: "nt-size-4"
4948
+ });
4949
+ },
4488
4950
  get fallback() {
4489
4951
  return createComponent(ArrowDropDown, {
4490
- "class": dropdownIconClass
4952
+ get ["class"]() {
4953
+ return style({
4954
+ key: "moreTabs__icon",
4955
+ className: "nt-size-4"
4956
+ });
4957
+ }
4491
4958
  });
4492
4959
  }
4493
4960
  }));
@@ -4511,16 +4978,35 @@ var GroupedPreferencesRow = (props) => {
4511
4978
  },
4512
4979
  get onChange() {
4513
4980
  return updatePreferencesForChannel(channel());
4981
+ },
4982
+ get preferenceGroup() {
4983
+ return props.group;
4514
4984
  }
4515
4985
  });
4516
4986
  }
4517
4987
  }), _el$9);
4518
4988
  insert(_el$9, createComponent(IconRendererWrapper, {
4519
4989
  iconKey: "info",
4520
- "class": infoIconClass,
4990
+ get ["class"]() {
4991
+ return style({
4992
+ key: "preferencesGroupInfoIcon",
4993
+ className: "nt-size-4",
4994
+ context: {
4995
+ preferenceGroup: props.group
4996
+ }
4997
+ });
4998
+ },
4521
4999
  get fallback() {
4522
5000
  return createComponent(Info, {
4523
- "class": infoIconClass
5001
+ get ["class"]() {
5002
+ return style({
5003
+ key: "preferencesGroupInfoIcon",
5004
+ className: "nt-size-4",
5005
+ context: {
5006
+ preferenceGroup: props.group
5007
+ }
5008
+ });
5009
+ }
4524
5010
  });
4525
5011
  }
4526
5012
  }), null);
@@ -4538,7 +5024,31 @@ var GroupedPreferencesRow = (props) => {
4538
5024
  })
4539
5025
  }));
4540
5026
  effect((_p$) => {
4541
- var _v$ = style("preferencesGroupBody", "nt-flex nt-flex-col nt-gap-1 nt-overflow-hidden"), _v$2 = style("preferencesGroupChannels", "nt-flex nt-bg-background nt-border-t nt-border-b nt-border-neutral-alpha-50 nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden"), _v$3 = style("preferencesGroupInfo", "nt-text-sm nt-text-start nt-text-foreground-alpha-400 nt-mt-1 nt-flex nt-items-center nt-gap-1"), _v$4 = style("preferencesGroupWorkflows", "nt-flex nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden");
5027
+ var _v$ = style({
5028
+ key: "preferencesGroupBody",
5029
+ className: "nt-flex nt-flex-col nt-gap-1 nt-overflow-hidden",
5030
+ context: {
5031
+ preferenceGroup: props.group
5032
+ }
5033
+ }), _v$2 = style({
5034
+ key: "preferencesGroupChannels",
5035
+ className: "nt-flex nt-bg-background nt-border-t nt-border-b nt-border-neutral-alpha-50 nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden",
5036
+ context: {
5037
+ preferenceGroup: props.group
5038
+ }
5039
+ }), _v$3 = style({
5040
+ key: "preferencesGroupInfo",
5041
+ className: "nt-text-sm nt-text-start nt-text-foreground-alpha-400 nt-mt-1 nt-flex nt-items-center nt-gap-1",
5042
+ context: {
5043
+ preferenceGroup: props.group
5044
+ }
5045
+ }), _v$4 = style({
5046
+ key: "preferencesGroupWorkflows",
5047
+ className: "nt-flex nt-p-2 nt-flex-col nt-gap-1 nt-overflow-hidden",
5048
+ context: {
5049
+ preferenceGroup: props.group
5050
+ }
5051
+ });
4542
5052
  _v$ !== _p$.e && className(_el$7, _p$.e = _v$);
4543
5053
  _v$2 !== _p$.t && className(_el$8, _p$.t = _v$2);
4544
5054
  _v$3 !== _p$.a && className(_el$9, _p$.a = _v$3);
@@ -4554,7 +5064,43 @@ var GroupedPreferencesRow = (props) => {
4554
5064
  }
4555
5065
  }), null);
4556
5066
  effect((_p$) => {
4557
- var _v$5 = style("preferencesGroupContainer", `nt-bg-neutral-alpha-25 nt-rounded-lg nt-border nt-border-neutral-alpha-50`), _v$6 = isOpened(), _v$7 = style("preferencesGroupHeader", "nt-flex nt-justify-between nt-p-2 nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden"), _v$8 = style("preferencesGroupLabelContainer", "nt-overflow-hidden nt-flex nt-items-center nt-gap-1"), _v$9 = style("preferencesGroupLabel", "nt-text-sm nt-font-semibold nt-truncate nt-text-start"), _v$10 = isOpened(), _v$11 = style("preferencesGroupActionsContainer", "nt-flex nt-items-center nt-gap-1"), _v$12 = style("preferencesGroupActionsContainerRight__icon", `nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180`), _v$13 = isOpened();
5067
+ var _v$5 = style({
5068
+ key: "preferencesGroupContainer",
5069
+ className: "nt-bg-neutral-alpha-25 nt-rounded-lg nt-border nt-border-neutral-alpha-50",
5070
+ context: {
5071
+ preferenceGroup: props.group
5072
+ }
5073
+ }), _v$6 = isOpened(), _v$7 = style({
5074
+ key: "preferencesGroupHeader",
5075
+ className: "nt-flex nt-justify-between nt-p-2 nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden",
5076
+ context: {
5077
+ preferenceGroup: props.group
5078
+ }
5079
+ }), _v$8 = style({
5080
+ key: "preferencesGroupLabelContainer",
5081
+ className: "nt-overflow-hidden nt-flex nt-items-center nt-gap-1",
5082
+ context: {
5083
+ preferenceGroup: props.group
5084
+ }
5085
+ }), _v$9 = style({
5086
+ key: "preferencesGroupLabel",
5087
+ className: "nt-text-sm nt-font-semibold nt-truncate nt-text-start",
5088
+ context: {
5089
+ preferenceGroup: props.group
5090
+ }
5091
+ }), _v$10 = isOpened(), _v$11 = style({
5092
+ key: "preferencesGroupActionsContainer",
5093
+ className: "nt-flex nt-items-center nt-gap-1",
5094
+ context: {
5095
+ preferenceGroup: props.group
5096
+ }
5097
+ }), _v$12 = style({
5098
+ key: "preferencesGroupActionsContainerRight__icon",
5099
+ className: "nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180",
5100
+ context: {
5101
+ preferenceGroup: props.group
5102
+ }
5103
+ }), _v$13 = isOpened();
4558
5104
  _v$5 !== _p$.e && className(_el$, _p$.e = _v$5);
4559
5105
  _v$6 !== _p$.t && setAttribute(_el$, "data-open", _p$.t = _v$6);
4560
5106
  _v$7 !== _p$.a && className(_el$2, _p$.a = _v$7);
@@ -4622,7 +5168,7 @@ var GroupedPreferences = (props) => {
4622
5168
  // src/ui/components/elements/Preferences/Preferences.tsx
4623
5169
  var _tmpl$57 = /* @__PURE__ */ template(`<div>`);
4624
5170
  var Preferences = () => {
4625
- var _a;
5171
+ var _a, _b, _c;
4626
5172
  const novu = useNovu();
4627
5173
  const style = useStyle();
4628
5174
  const {
@@ -4633,12 +5179,14 @@ var Preferences = () => {
4633
5179
  preferences,
4634
5180
  loading
4635
5181
  } = usePreferences({
4636
- tags: (_a = preferencesFilter()) == null ? void 0 : _a.tags
5182
+ tags: (_a = preferencesFilter()) == null ? void 0 : _a.tags,
5183
+ severity: (_b = preferencesFilter()) == null ? void 0 : _b.severity,
5184
+ criticality: (_c = preferencesFilter()) == null ? void 0 : _c.criticality
4637
5185
  });
4638
5186
  const allPreferences = createMemo(() => {
4639
- var _a2, _b;
5187
+ var _a2, _b2;
4640
5188
  const globalPreference = (_a2 = preferences()) == null ? void 0 : _a2.find((preference) => preference.level === "global" /* GLOBAL */);
4641
- const workflowPreferences = (_b = preferences()) == null ? void 0 : _b.filter((preference) => preference.level === "template" /* TEMPLATE */);
5189
+ const workflowPreferences = (_b2 = preferences()) == null ? void 0 : _b2.filter((preference) => preference.level === "template" /* TEMPLATE */);
4642
5190
  return {
4643
5191
  globalPreference,
4644
5192
  workflowPreferences
@@ -4672,9 +5220,9 @@ var Preferences = () => {
4672
5220
  }));
4673
5221
  });
4674
5222
  const groupedPreferences = createMemo(() => {
4675
- var _a2, _b, _c;
5223
+ var _a2, _b2, _c2;
4676
5224
  const workflowPreferences = (_a2 = allPreferences().workflowPreferences) != null ? _a2 : [];
4677
- return (_c = (_b = preferenceGroups()) == null ? void 0 : _b.map((group) => {
5225
+ return (_c2 = (_b2 = preferenceGroups()) == null ? void 0 : _b2.map((group) => {
4678
5226
  const {
4679
5227
  filter
4680
5228
  } = group;
@@ -4691,12 +5239,15 @@ var Preferences = () => {
4691
5239
  return {
4692
5240
  name: group.name,
4693
5241
  preferences: workflowPreferences.filter((preference) => {
4694
- var _a3, _b2, _c2, _d;
4695
- const workflowId = ((_a3 = preference.workflow) == null ? void 0 : _a3.id) || ((_b2 = preference.workflow) == null ? void 0 : _b2.identifier);
4696
- return ((_c2 = filter.workflowIds) == null ? void 0 : _c2.includes(workflowId != null ? workflowId : "")) || ((_d = filter.tags) == null ? void 0 : _d.some((tag) => {
4697
- var _a4, _b3;
4698
- return (_b3 = (_a4 = preference.workflow) == null ? void 0 : _a4.tags) == null ? void 0 : _b3.includes(tag);
4699
- }));
5242
+ var _a3, _b3, _c3, _d, _e;
5243
+ const workflowId = ((_a3 = preference.workflow) == null ? void 0 : _a3.id) || ((_b3 = preference.workflow) == null ? void 0 : _b3.identifier);
5244
+ return ((_c3 = filter.workflowIds) == null ? void 0 : _c3.includes(workflowId != null ? workflowId : "")) || ((_d = filter.tags) == null ? void 0 : _d.some((tag) => {
5245
+ var _a4, _b4;
5246
+ return (_b4 = (_a4 = preference.workflow) == null ? void 0 : _a4.tags) == null ? void 0 : _b4.includes(tag);
5247
+ })) || Array.isArray(filter.severity) && filter.severity.some((severity) => {
5248
+ var _a4;
5249
+ return ((_a4 = preference.workflow) == null ? void 0 : _a4.severity) === severity;
5250
+ }) || !Array.isArray(filter.severity) && filter.severity === ((_e = preference.workflow) == null ? void 0 : _e.severity);
4700
5251
  })
4701
5252
  };
4702
5253
  }
@@ -4704,7 +5255,7 @@ var Preferences = () => {
4704
5255
  name: group.name,
4705
5256
  preferences: []
4706
5257
  };
4707
- })) != null ? _c : [];
5258
+ })) != null ? _c2 : [];
4708
5259
  });
4709
5260
  return (() => {
4710
5261
  var _el$ = _tmpl$57();
@@ -4758,7 +5309,14 @@ var Preferences = () => {
4758
5309
  });
4759
5310
  }
4760
5311
  }), null);
4761
- effect(() => className(_el$, style("preferencesContainer", "nt-px-3 nt-py-4 nt-flex nt-flex-col nt-gap-1 nt-overflow-y-auto nt-h-full nt-pr-0 [scrollbar-gutter:stable]")));
5312
+ effect(() => className(_el$, style({
5313
+ key: "preferencesContainer",
5314
+ className: "nt-px-3 nt-py-4 nt-flex nt-flex-col nt-gap-1 nt-overflow-y-auto nt-h-full nt-pr-0 [scrollbar-gutter:stable]",
5315
+ context: {
5316
+ preferences: preferences(),
5317
+ groups: groupedPreferences()
5318
+ }
5319
+ })));
4762
5320
  return _el$;
4763
5321
  })();
4764
5322
  };
@@ -4784,7 +5342,10 @@ var Root = (props) => {
4784
5342
  return `novu-root-${id()}`;
4785
5343
  },
4786
5344
  get ["class"]() {
4787
- return style("root"), cn("novu", id(), "nt-text-foreground nt-h-full [interpolate-size:allow-keywords]");
5345
+ return style({
5346
+ key: "root",
5347
+ className: cn("novu", id(), "nt-text-foreground nt-h-full [interpolate-size:allow-keywords]")
5348
+ });
4788
5349
  }
4789
5350
  }, rest), false, false);
4790
5351
  return _el$;
@@ -4796,7 +5357,9 @@ var PreferencesHeader = (props) => {
4796
5357
  const {
4797
5358
  t
4798
5359
  } = useLocalization();
4799
- const arrowLeftIconClass = style("preferencesHeader__back__button__icon", "nt-size-4", {
5360
+ const arrowLeftIconClass = style({
5361
+ key: "preferencesHeader__back__button__icon",
5362
+ className: "nt-size-4",
4800
5363
  iconKey: "arrowLeft"
4801
5364
  });
4802
5365
  return (() => {
@@ -4828,7 +5391,13 @@ var PreferencesHeader = (props) => {
4828
5391
  }), _el$2);
4829
5392
  insert(_el$2, () => t("preferences.title"));
4830
5393
  effect((_p$) => {
4831
- var _v$ = style("preferencesHeader", "nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-border-b nt-border-border nt-items-center nt-py-3.5 nt-px-4 nt-gap-2"), _v$2 = style("preferencesHeader__title", "nt-text-base nt-font-medium");
5394
+ var _v$ = style({
5395
+ key: "preferencesHeader",
5396
+ className: "nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-border-b nt-border-border nt-items-center nt-py-3.5 nt-px-4 nt-gap-2"
5397
+ }), _v$2 = style({
5398
+ key: "preferencesHeader__title",
5399
+ className: "nt-text-base nt-font-medium"
5400
+ });
4832
5401
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
4833
5402
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
4834
5403
  return _p$;
@@ -4840,26 +5409,33 @@ var PreferencesHeader = (props) => {
4840
5409
  })();
4841
5410
  };
4842
5411
  var _tmpl$60 = /* @__PURE__ */ template(`<strong>`);
4843
- var _tmpl$216 = /* @__PURE__ */ template(`<p>`);
5412
+ var _tmpl$217 = /* @__PURE__ */ template(`<p>`);
4844
5413
  var Bold = (props) => {
4845
5414
  const style = useStyle();
4846
5415
  return (() => {
4847
5416
  var _el$ = _tmpl$60();
4848
5417
  insert(_el$, () => props.children);
4849
- effect(() => className(_el$, style(props.appearanceKey || "strong", "nt-font-semibold")));
5418
+ effect(() => className(_el$, style({
5419
+ key: props.appearanceKey || "strong",
5420
+ className: "nt-font-semibold"
5421
+ })));
4850
5422
  return _el$;
4851
5423
  })();
4852
5424
  };
4853
5425
  var Text = (props) => props.children;
4854
5426
  var Markdown = (props) => {
4855
- const [local, rest] = splitProps(props, ["class", "children", "appearanceKey", "strongAppearanceKey"]);
5427
+ const [local, rest] = splitProps(props, ["class", "children", "appearanceKey", "strongAppearanceKey", "context"]);
4856
5428
  const style = useStyle();
4857
5429
  const tokens = createMemo(() => parseMarkdownIntoTokens(local.children));
4858
5430
  return (() => {
4859
- var _el$2 = _tmpl$216();
5431
+ var _el$2 = _tmpl$217();
4860
5432
  spread(_el$2, mergeProps({
4861
5433
  get ["class"]() {
4862
- return style(local.appearanceKey, cn(local.class));
5434
+ return style({
5435
+ key: local.appearanceKey,
5436
+ className: cn(local.class),
5437
+ context: local.context
5438
+ });
4863
5439
  }
4864
5440
  }, rest), false, true);
4865
5441
  insert(_el$2, createComponent(For, {
@@ -4905,7 +5481,7 @@ var badgeVariants = cva(cn("nt-inline-flex nt-flex-row nt-gap-1 nt-items-center"
4905
5481
  }
4906
5482
  });
4907
5483
  var Badge = (props) => {
4908
- const [local, rest] = splitProps(props, ["class", "appearanceKey"]);
5484
+ const [local, rest] = splitProps(props, ["class", "appearanceKey", "context"]);
4909
5485
  const style = useStyle();
4910
5486
  return (() => {
4911
5487
  var _el$ = _tmpl$61();
@@ -4917,10 +5493,14 @@ var Badge = (props) => {
4917
5493
  return props.size;
4918
5494
  },
4919
5495
  get ["class"]() {
4920
- return style(local.appearanceKey || "badge", cn(badgeVariants({
4921
- variant: props.variant,
4922
- size: props.size
4923
- }), local.class));
5496
+ return style({
5497
+ key: local.appearanceKey || "badge",
5498
+ className: cn(badgeVariants({
5499
+ variant: props.variant,
5500
+ size: props.size
5501
+ }), local.class),
5502
+ context: local.context
5503
+ });
4924
5504
  }
4925
5505
  }, rest), false, false);
4926
5506
  return _el$;
@@ -4955,10 +5535,13 @@ var Input = (props) => {
4955
5535
  return props.size;
4956
5536
  },
4957
5537
  get ["class"]() {
4958
- return style(local.appearanceKey || "input", cn(inputVariants({
4959
- variant: props.variant,
4960
- size: props.size
4961
- }), local.class));
5538
+ return style({
5539
+ key: local.appearanceKey || "input",
5540
+ className: cn(inputVariants({
5541
+ variant: props.variant,
5542
+ size: props.size
5543
+ }), local.class)
5544
+ });
4962
5545
  }
4963
5546
  }, rest), false, false);
4964
5547
  return _el$;
@@ -5010,7 +5593,10 @@ var TimePicker = (props) => {
5010
5593
  _el$.$$click = (e) => e.stopPropagation();
5011
5594
  spread(_el$, mergeProps({
5012
5595
  get ["class"]() {
5013
- return style(local.appearanceKey || "timePicker", cn("nt-flex nt-items-center nt-gap-1", local.class));
5596
+ return style({
5597
+ key: local.appearanceKey || "timePicker",
5598
+ className: cn("nt-flex nt-items-center nt-gap-1", local.class)
5599
+ });
5014
5600
  }
5015
5601
  }, rest), false, true);
5016
5602
  insert(_el$, createComponent(Input, {
@@ -5031,7 +5617,10 @@ var TimePicker = (props) => {
5031
5617
  handleHourChange(Number(e.currentTarget.value));
5032
5618
  },
5033
5619
  get ["class"]() {
5034
- return style("timePickerHour__input", "nt-flex nt-font-mono nt-justify-center nt-items-center nt-text-center nt-h-7 nt-w-[calc(2ch+2rem)] nt-px-2");
5620
+ return style({
5621
+ key: "timePickerHour__input",
5622
+ className: "nt-flex nt-font-mono nt-justify-center nt-items-center nt-text-center nt-h-7 nt-w-[calc(2ch+2rem)] nt-px-2"
5623
+ });
5035
5624
  }
5036
5625
  }), _el$2);
5037
5626
  insert(_el$, createComponent(Input, {
@@ -5052,7 +5641,10 @@ var TimePicker = (props) => {
5052
5641
  handleMinuteChange(Number(e.currentTarget.value));
5053
5642
  },
5054
5643
  get ["class"]() {
5055
- return style("timePickerHour__input", "nt-flex nt-font-mono nt-justify-center nt-items-center nt-text-center nt-h-7 nt-w-[calc(2ch+2rem)] nt-px-2");
5644
+ return style({
5645
+ key: "timePickerHour__input",
5646
+ className: "nt-flex nt-font-mono nt-justify-center nt-items-center nt-text-center nt-h-7 nt-w-[calc(2ch+2rem)] nt-px-2"
5647
+ });
5056
5648
  }
5057
5649
  }), _el$3);
5058
5650
  _el$3.addEventListener("change", (e) => {
@@ -5061,9 +5653,15 @@ var TimePicker = (props) => {
5061
5653
  });
5062
5654
  _el$3.$$click = (e) => e.stopPropagation();
5063
5655
  effect((_p$) => {
5064
- var _v$ = style("timePicker__separator", "nt-text-xl"), _v$2 = style("timePicker__periodSelect", `${inputVariants({
5065
- size: "sm"
5066
- })} nt-h-7 nt-font-mono`);
5656
+ var _v$ = style({
5657
+ key: "timePicker__separator",
5658
+ className: "nt-text-xl"
5659
+ }), _v$2 = style({
5660
+ key: "timePicker__periodSelect",
5661
+ className: cn(inputVariants({
5662
+ size: "sm"
5663
+ }), "nt-h-7 nt-font-mono")
5664
+ });
5067
5665
  _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
5068
5666
  _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);
5069
5667
  return _p$;
@@ -5258,7 +5856,19 @@ var SnoozeDateTimePicker = (props) => {
5258
5856
  }
5259
5857
  }), null);
5260
5858
  effect((_p$) => {
5261
- var _v$ = style("snoozeDatePicker", "nt-bg-background nt-rounded-md nt-shadow-lg nt-w-[260px]"), _v$2 = style("snoozeDatePicker__timePickerContainer", "nt-flex nt-flex-row nt-justify-between nt-p-2 nt-items-center nt-border-t nt-border-neutral-200 nt-border-b"), _v$3 = style("snoozeDatePicker__timePickerLabel", "nt-text-sm nt-font-medium nt-text-foreground-alpha-700 nt-p-2"), _v$4 = style("snoozeDatePicker__actions", "nt-flex nt-flex-row nt-justify-end nt-gap-2 nt-p-2");
5859
+ var _v$ = style({
5860
+ key: "snoozeDatePicker",
5861
+ className: "nt-bg-background nt-rounded-md nt-shadow-lg nt-w-[260px]"
5862
+ }), _v$2 = style({
5863
+ key: "snoozeDatePicker__timePickerContainer",
5864
+ className: "nt-flex nt-flex-row nt-justify-between nt-p-2 nt-items-center nt-border-t nt-border-neutral-200 nt-border-b"
5865
+ }), _v$3 = style({
5866
+ key: "snoozeDatePicker__timePickerLabel",
5867
+ className: "nt-text-sm nt-font-medium nt-text-foreground-alpha-700 nt-p-2"
5868
+ }), _v$4 = style({
5869
+ key: "snoozeDatePicker__actions",
5870
+ className: "nt-flex nt-flex-row nt-justify-end nt-gap-2 nt-p-2"
5871
+ });
5262
5872
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
5263
5873
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
5264
5874
  _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
@@ -5277,7 +5887,7 @@ delegateEvents(["click"]);
5277
5887
 
5278
5888
  // src/ui/components/Notification/NotificationActions.tsx
5279
5889
  var _tmpl$66 = /* @__PURE__ */ template(`<div><span>`);
5280
- var _tmpl$217 = /* @__PURE__ */ template(`<span>`);
5890
+ var _tmpl$218 = /* @__PURE__ */ template(`<span>`);
5281
5891
  var SNOOZE_PRESETS = [{
5282
5892
  key: "snooze.options.anHourFromNow",
5283
5893
  hours: 1,
@@ -5319,7 +5929,9 @@ var formatSnoozeOption = (preset, t, locale) => {
5319
5929
  };
5320
5930
  var SnoozeDropdownItem = (props) => {
5321
5931
  const style = useStyle();
5322
- const snoozeItemIconClass = style("notificationSnooze__dropdownItem__icon", "nt-size-3 nt-text-foreground-alpha-400 nt-mr-2", {
5932
+ const snoozeItemIconClass = style({
5933
+ key: "notificationSnooze__dropdownItem__icon",
5934
+ className: "nt-size-3 nt-text-foreground-alpha-400 nt-mr-2",
5323
5935
  iconKey: "clock"
5324
5936
  });
5325
5937
  const content = [(() => {
@@ -5335,7 +5947,12 @@ var SnoozeDropdownItem = (props) => {
5335
5947
  }), _el$2);
5336
5948
  insert(_el$2, () => props.label);
5337
5949
  effect((_p$) => {
5338
- var _v$ = style("dropdownItem", "nt-flex nt-items-center nt-flex-1"), _v$2 = style("dropdownItemLabel");
5950
+ var _v$ = style({
5951
+ key: "dropdownItem",
5952
+ className: "nt-flex nt-items-center nt-flex-1"
5953
+ }), _v$2 = style({
5954
+ key: "dropdownItemLabel"
5955
+ });
5339
5956
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
5340
5957
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
5341
5958
  return _p$;
@@ -5345,14 +5962,20 @@ var SnoozeDropdownItem = (props) => {
5345
5962
  });
5346
5963
  return _el$;
5347
5964
  })(), (() => {
5348
- var _el$3 = _tmpl$217();
5965
+ var _el$3 = _tmpl$218();
5349
5966
  insert(_el$3, () => props.time);
5350
- effect(() => className(_el$3, style("dropdownItemRight__icon", "nt-text-foreground-alpha-300 nt-ml-2 nt-text-xs")));
5967
+ effect(() => className(_el$3, style({
5968
+ key: "dropdownItemRight__icon",
5969
+ className: "nt-text-foreground-alpha-300 nt-ml-2 nt-text-xs"
5970
+ })));
5351
5971
  return _el$3;
5352
5972
  })()];
5353
5973
  if (props.asChild) {
5354
5974
  return props.asChild({
5355
- class: style("notificationSnooze__dropdownItem", dropdownItemVariants()),
5975
+ class: style({
5976
+ key: "notificationSnooze__dropdownItem",
5977
+ className: dropdownItemVariants()
5978
+ }),
5356
5979
  onClick: props.onClick,
5357
5980
  children: content
5358
5981
  });
@@ -5363,7 +5986,10 @@ var SnoozeDropdownItem = (props) => {
5363
5986
  return props.onClick;
5364
5987
  },
5365
5988
  get ["class"]() {
5366
- return style("dropdownItem", "nt-justify-between");
5989
+ return style({
5990
+ key: "dropdownItem",
5991
+ className: "nt-justify-between"
5992
+ });
5367
5993
  },
5368
5994
  children: content
5369
5995
  });
@@ -5373,7 +5999,9 @@ var ReadButton = (props) => {
5373
5999
  const {
5374
6000
  t
5375
6001
  } = useLocalization();
5376
- const readIconClass = style("notificationRead__icon", "nt-size-3", {
6002
+ const readIconClass = style({
6003
+ key: "notificationRead__icon",
6004
+ className: "nt-size-3",
5377
6005
  iconKey: "markAsRead"
5378
6006
  });
5379
6007
  return createComponent(Tooltip.Root, {
@@ -5414,7 +6042,9 @@ var UnreadButton = (props) => {
5414
6042
  const {
5415
6043
  t
5416
6044
  } = useLocalization();
5417
- const unreadIconClass = style("notificationUnread__icon", "nt-size-3", {
6045
+ const unreadIconClass = style({
6046
+ key: "notificationUnread__icon",
6047
+ className: "nt-size-3",
5418
6048
  iconKey: "markAsUnread"
5419
6049
  });
5420
6050
  return createComponent(Tooltip.Root, {
@@ -5455,7 +6085,9 @@ var ArchiveButton = (props) => {
5455
6085
  const {
5456
6086
  t
5457
6087
  } = useLocalization();
5458
- const archiveIconClass = style("notificationArchive__icon", "nt-size-3", {
6088
+ const archiveIconClass = style({
6089
+ key: "notificationArchive__icon",
6090
+ className: "nt-size-3",
5459
6091
  iconKey: "markAsArchived"
5460
6092
  });
5461
6093
  return createComponent(Tooltip.Root, {
@@ -5496,7 +6128,9 @@ var UnarchiveButton = (props) => {
5496
6128
  const {
5497
6129
  t
5498
6130
  } = useLocalization();
5499
- const unarchiveIconClass = style("notificationArchive__icon", "nt-size-3", {
6131
+ const unarchiveIconClass = style({
6132
+ key: "notificationArchive__icon",
6133
+ className: "nt-size-3",
5500
6134
  iconKey: "markAsUnarchived"
5501
6135
  });
5502
6136
  return createComponent(Tooltip.Root, {
@@ -5537,7 +6171,9 @@ var UnsnoozeButton = (props) => {
5537
6171
  const {
5538
6172
  t
5539
6173
  } = useLocalization();
5540
- const unsnoozeIconClass = style("notificationUnsnooze__icon", "nt-size-3", {
6174
+ const unsnoozeIconClass = style({
6175
+ key: "notificationUnsnooze__icon",
6176
+ className: "nt-size-3",
5541
6177
  iconKey: "unsnooze"
5542
6178
  });
5543
6179
  return createComponent(Tooltip.Root, {
@@ -5583,7 +6219,9 @@ var SnoozeButton = (props) => {
5583
6219
  maxSnoozeDurationHours
5584
6220
  } = useInboxContext();
5585
6221
  const [isSnoozeDateTimePickerOpen, setIsSnoozeDateTimePickerOpen] = createSignal(false);
5586
- const snoozeButtonIconClass = style("notificationSnooze__icon", "nt-size-3", {
6222
+ const snoozeButtonIconClass = style({
6223
+ key: "notificationSnooze__icon",
6224
+ className: "nt-size-3",
5587
6225
  iconKey: "clock"
5588
6226
  });
5589
6227
  const availableSnoozePresets = createMemo(() => {
@@ -5663,7 +6301,10 @@ var SnoozeButton = (props) => {
5663
6301
  }), createComponent(Popover.Content, {
5664
6302
  portal: true,
5665
6303
  get ["class"]() {
5666
- return style("notificationSnoozeCustomTime_popoverContent", "nt-size-fit nt-w-[260px]");
6304
+ return style({
6305
+ key: "notificationSnoozeCustomTime_popoverContent",
6306
+ className: "nt-size-fit nt-w-[260px]"
6307
+ });
5667
6308
  },
5668
6309
  get children() {
5669
6310
  return createComponent(SnoozeDateTimePicker, {
@@ -5720,10 +6361,22 @@ var renderNotificationActions = (notification, status) => {
5720
6361
  };
5721
6362
 
5722
6363
  // src/ui/components/Notification/DefaultNotification.tsx
5723
- var _tmpl$67 = /* @__PURE__ */ template(`<img>`);
5724
- var _tmpl$218 = /* @__PURE__ */ template(`<div>`);
5725
- var _tmpl$311 = /* @__PURE__ */ template(`<span>`);
5726
- var _tmpl$410 = /* @__PURE__ */ template(`<a><div><div></div><div></div><div>`);
6364
+ var _tmpl$67 = /* @__PURE__ */ template(`<span>`);
6365
+ var _tmpl$219 = /* @__PURE__ */ template(`<a><div></div><div><div></div><div></div></div><div class="nt-w-1.5 nt-flex nt-justify-center nt-shrink-0">`);
6366
+ var _tmpl$311 = /* @__PURE__ */ template(`<img>`);
6367
+ var _tmpl$410 = /* @__PURE__ */ template(`<div>`);
6368
+ var SEVERITY_TO_BAR_KEYS = {
6369
+ ["none" /* NONE */]: "notificationBar",
6370
+ ["high" /* HIGH */]: "severityHigh__notificationBar",
6371
+ ["medium" /* MEDIUM */]: "severityMedium__notificationBar",
6372
+ ["low" /* LOW */]: "severityLow__notificationBar"
6373
+ };
6374
+ var SEVERITY_TO_NOTIFICATION_KEYS = {
6375
+ ["none" /* NONE */]: "notification",
6376
+ ["high" /* HIGH */]: "severityHigh__notification",
6377
+ ["medium" /* MEDIUM */]: "severityMedium__notification",
6378
+ ["low" /* LOW */]: "severityLow__notification"
6379
+ };
5727
6380
  var DefaultNotification = (props) => {
5728
6381
  const style = useStyle();
5729
6382
  const {
@@ -5735,12 +6388,6 @@ var DefaultNotification = (props) => {
5735
6388
  status
5736
6389
  } = useInboxContext();
5737
6390
  const [minutesPassed, setMinutesPassed] = createSignal(0);
5738
- const deliveredAtIconClass = style("notificationDeliveredAt__icon", "nt-size-3", {
5739
- iconKey: "clock"
5740
- });
5741
- const snoozedUntilIconClass = style("notificationSnoozedUntil__icon", "nt-size-3", {
5742
- iconKey: "clock"
5743
- });
5744
6391
  const createdAt = createMemo(() => {
5745
6392
  minutesPassed();
5746
6393
  return formatToRelativeTime({
@@ -5798,32 +6445,54 @@ var DefaultNotification = (props) => {
5798
6445
  }
5799
6446
  });
5800
6447
  return (() => {
5801
- var _el$ = _tmpl$410(), _el$3 = _el$.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$7 = _el$5.nextSibling;
6448
+ var _el$ = _tmpl$219(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
5802
6449
  _el$.$$click = handleNotificationClick;
5803
6450
  insert(_el$, createComponent(Show, {
5804
6451
  get when() {
5805
- return props.notification.avatar;
6452
+ return props.renderAvatar;
5806
6453
  },
5807
6454
  get fallback() {
5808
- return (() => {
5809
- var _el$9 = _tmpl$218();
5810
- effect(() => className(_el$9, style("notificationImageLoadingFallback", "nt-size-8 nt-rounded-lg nt-shrink-0 nt-aspect-square")));
5811
- return _el$9;
5812
- })();
5813
- },
5814
- get children() {
5815
- var _el$2 = _tmpl$67();
5816
- effect((_p$) => {
5817
- var _v$ = style("notificationImage", "nt-size-8 nt-rounded-lg nt-object-cover nt-aspect-square"), _v$2 = props.notification.avatar;
5818
- _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
5819
- _v$2 !== _p$.t && setAttribute(_el$2, "src", _p$.t = _v$2);
5820
- return _p$;
5821
- }, {
5822
- e: void 0,
5823
- t: void 0
6455
+ return createComponent(Show, {
6456
+ get when() {
6457
+ return props.notification.avatar;
6458
+ },
6459
+ get fallback() {
6460
+ return (() => {
6461
+ var _el$9 = _tmpl$410();
6462
+ effect(() => className(_el$9, style({
6463
+ key: "notificationImageLoadingFallback",
6464
+ className: "nt-size-8 nt-rounded-lg nt-shrink-0 nt-aspect-square",
6465
+ context: {
6466
+ notification: props.notification
6467
+ }
6468
+ })));
6469
+ return _el$9;
6470
+ })();
6471
+ },
6472
+ get children() {
6473
+ var _el$8 = _tmpl$311();
6474
+ effect((_p$) => {
6475
+ var _v$6 = style({
6476
+ key: "notificationImage",
6477
+ className: "nt-size-8 nt-rounded-lg nt-object-cover nt-aspect-square",
6478
+ context: {
6479
+ notification: props.notification
6480
+ }
6481
+ }), _v$7 = props.notification.avatar;
6482
+ _v$6 !== _p$.e && className(_el$8, _p$.e = _v$6);
6483
+ _v$7 !== _p$.t && setAttribute(_el$8, "src", _p$.t = _v$7);
6484
+ return _p$;
6485
+ }, {
6486
+ e: void 0,
6487
+ t: void 0
6488
+ });
6489
+ return _el$8;
6490
+ }
5824
6491
  });
5825
- return _el$2;
5826
- }
6492
+ },
6493
+ children: (renderAvatar) => createComponent(ExternalElementRenderer, {
6494
+ render: (el) => renderAvatar()(el, props.notification)
6495
+ })
5827
6496
  }), _el$3);
5828
6497
  insert(_el$4, createComponent(Show, {
5829
6498
  get when() {
@@ -5838,6 +6507,11 @@ var DefaultNotification = (props) => {
5838
6507
  appearanceKey: "notificationSubject",
5839
6508
  "class": "nt-text-start nt-font-medium nt-whitespace-pre-wrap [word-break:break-word]",
5840
6509
  strongAppearanceKey: "notificationSubject__strong",
6510
+ get context() {
6511
+ return {
6512
+ notification: props.notification
6513
+ };
6514
+ },
5841
6515
  get children() {
5842
6516
  return subject();
5843
6517
  }
@@ -5857,6 +6531,11 @@ var DefaultNotification = (props) => {
5857
6531
  appearanceKey: "notificationBody",
5858
6532
  strongAppearanceKey: "notificationBody__strong",
5859
6533
  "class": "nt-text-start nt-whitespace-pre-wrap nt-text-foreground-alpha-600 [word-break:break-word]",
6534
+ get context() {
6535
+ return {
6536
+ notification: props.notification
6537
+ };
6538
+ },
5860
6539
  get children() {
5861
6540
  return props.notification.body;
5862
6541
  }
@@ -5866,46 +6545,93 @@ var DefaultNotification = (props) => {
5866
6545
  render: (el) => renderBody()(el, props.notification)
5867
6546
  })
5868
6547
  }), null);
5869
- insert(_el$5, () => renderNotificationActions(props.notification, status));
5870
6548
  insert(_el$3, createComponent(Show, {
5871
6549
  get when() {
5872
- return props.notification.primaryAction || props.notification.secondaryAction;
6550
+ return props.renderDefaultActions;
5873
6551
  },
5874
- get children() {
5875
- var _el$6 = _tmpl$218();
5876
- insert(_el$6, createComponent(Show, {
5877
- get when() {
5878
- return props.notification.primaryAction;
5879
- },
5880
- keyed: true,
5881
- children: (primaryAction) => createComponent(Button, {
5882
- appearanceKey: "notificationPrimaryAction__button",
5883
- variant: "default",
5884
- onClick: (e) => handleActionButtonClick("primary" /* PRIMARY */, e),
5885
- get children() {
5886
- return primaryAction.label;
6552
+ get fallback() {
6553
+ return (() => {
6554
+ var _el$10 = _tmpl$410();
6555
+ insert(_el$10, () => renderNotificationActions(props.notification, status));
6556
+ effect(() => className(_el$10, style({
6557
+ key: "notificationDefaultActions",
6558
+ className: `nt-absolute nt-transition nt-duration-100 nt-ease-out nt-gap-0.5 nt-flex nt-shrink-0 nt-opacity-0 group-hover:nt-opacity-100 group-focus-within:nt-opacity-100 nt-justify-center nt-items-center nt-bg-background/90 nt-right-3 nt-top-3 nt-border nt-border-neutral-alpha-100 nt-rounded-lg nt-backdrop-blur-lg nt-p-0.5`,
6559
+ context: {
6560
+ notification: props.notification
5887
6561
  }
5888
- })
5889
- }), null);
5890
- insert(_el$6, createComponent(Show, {
6562
+ })));
6563
+ return _el$10;
6564
+ })();
6565
+ },
6566
+ children: (renderDefaultActions) => createComponent(ExternalElementRenderer, {
6567
+ render: (el) => renderDefaultActions()(el, props.notification)
6568
+ })
6569
+ }), _el$5);
6570
+ insert(_el$3, createComponent(Show, {
6571
+ get when() {
6572
+ return props.renderCustomActions;
6573
+ },
6574
+ get fallback() {
6575
+ return createComponent(Show, {
5891
6576
  get when() {
5892
- return props.notification.secondaryAction;
6577
+ return props.notification.primaryAction || props.notification.secondaryAction;
5893
6578
  },
5894
- keyed: true,
5895
- children: (secondaryAction) => createComponent(Button, {
5896
- appearanceKey: "notificationSecondaryAction__button",
5897
- variant: "secondary",
5898
- onClick: (e) => handleActionButtonClick("secondary" /* SECONDARY */, e),
5899
- get children() {
5900
- return secondaryAction.label;
5901
- }
5902
- })
5903
- }), null);
5904
- effect(() => className(_el$6, style("notificationCustomActions", "nt-flex nt-flex-wrap nt-gap-2")));
5905
- return _el$6;
5906
- }
5907
- }), _el$7);
5908
- insert(_el$7, createComponent(Show, {
6579
+ get children() {
6580
+ var _el$11 = _tmpl$410();
6581
+ insert(_el$11, createComponent(Show, {
6582
+ get when() {
6583
+ return props.notification.primaryAction;
6584
+ },
6585
+ keyed: true,
6586
+ children: (primaryAction) => createComponent(Button, {
6587
+ appearanceKey: "notificationPrimaryAction__button",
6588
+ variant: "default",
6589
+ onClick: (e) => handleActionButtonClick("primary" /* PRIMARY */, e),
6590
+ get context() {
6591
+ return {
6592
+ notification: props.notification
6593
+ };
6594
+ },
6595
+ get children() {
6596
+ return primaryAction.label;
6597
+ }
6598
+ })
6599
+ }), null);
6600
+ insert(_el$11, createComponent(Show, {
6601
+ get when() {
6602
+ return props.notification.secondaryAction;
6603
+ },
6604
+ keyed: true,
6605
+ children: (secondaryAction) => createComponent(Button, {
6606
+ appearanceKey: "notificationSecondaryAction__button",
6607
+ variant: "secondary",
6608
+ onClick: (e) => handleActionButtonClick("secondary" /* SECONDARY */, e),
6609
+ get context() {
6610
+ return {
6611
+ notification: props.notification
6612
+ };
6613
+ },
6614
+ get children() {
6615
+ return secondaryAction.label;
6616
+ }
6617
+ })
6618
+ }), null);
6619
+ effect(() => className(_el$11, style({
6620
+ key: "notificationCustomActions",
6621
+ className: "nt-flex nt-flex-wrap nt-gap-2",
6622
+ context: {
6623
+ notification: props.notification
6624
+ }
6625
+ })));
6626
+ return _el$11;
6627
+ }
6628
+ });
6629
+ },
6630
+ children: (renderCustomActions) => createComponent(ExternalElementRenderer, {
6631
+ render: (el) => renderCustomActions()(el, props.notification)
6632
+ })
6633
+ }), _el$5);
6634
+ insert(_el$5, createComponent(Show, {
5909
6635
  get when() {
5910
6636
  return snoozedUntil();
5911
6637
  },
@@ -5915,7 +6641,7 @@ var DefaultNotification = (props) => {
5915
6641
  return deliveredAt();
5916
6642
  },
5917
6643
  get fallback() {
5918
- return memo(createdAt);
6644
+ return createdAt();
5919
6645
  },
5920
6646
  children: (deliveredAt2) => createComponent(Show, {
5921
6647
  get when() {
@@ -5940,13 +6666,36 @@ var DefaultNotification = (props) => {
5940
6666
  get children() {
5941
6667
  return createComponent(Badge, {
5942
6668
  appearanceKey: "notificationDeliveredAt__badge",
6669
+ get context() {
6670
+ return {
6671
+ notification: props.notification
6672
+ };
6673
+ },
5943
6674
  get children() {
5944
6675
  return [createComponent(IconRendererWrapper, {
5945
6676
  iconKey: "clock",
5946
- "class": deliveredAtIconClass,
6677
+ get ["class"]() {
6678
+ return style({
6679
+ key: "notificationDeliveredAt__icon",
6680
+ className: "nt-size-3",
6681
+ iconKey: "clock",
6682
+ context: {
6683
+ notification: props.notification
6684
+ }
6685
+ });
6686
+ },
5947
6687
  get fallback() {
5948
6688
  return createComponent(Clock, {
5949
- "class": deliveredAtIconClass
6689
+ get ["class"]() {
6690
+ return style({
6691
+ key: "notificationDeliveredAt__icon",
6692
+ className: "nt-size-3",
6693
+ iconKey: "clock",
6694
+ context: {
6695
+ notification: props.notification
6696
+ }
6697
+ });
6698
+ }
5950
6699
  });
5951
6700
  }
5952
6701
  }), date];
@@ -5961,34 +6710,94 @@ var DefaultNotification = (props) => {
5961
6710
  },
5962
6711
  children: (snoozedUntil2) => [createComponent(IconRendererWrapper, {
5963
6712
  iconKey: "clock",
5964
- "class": snoozedUntilIconClass,
6713
+ get ["class"]() {
6714
+ return style({
6715
+ key: "notificationSnoozedUntil__icon",
6716
+ className: "nt-size-3",
6717
+ iconKey: "clock",
6718
+ context: {
6719
+ notification: props.notification
6720
+ }
6721
+ });
6722
+ },
5965
6723
  get fallback() {
5966
6724
  return createComponent(Clock, {
5967
- "class": snoozedUntilIconClass
6725
+ get ["class"]() {
6726
+ return style({
6727
+ key: "notificationSnoozedUntil__icon",
6728
+ className: "nt-size-3",
6729
+ iconKey: "clock",
6730
+ context: {
6731
+ notification: props.notification
6732
+ }
6733
+ });
6734
+ }
5968
6735
  });
5969
6736
  }
5970
6737
  }), memo(() => t("notification.snoozedUntil")), " \xB7 ", memo(snoozedUntil2)]
5971
6738
  }));
5972
- insert(_el$, createComponent(Show, {
6739
+ insert(_el$6, createComponent(Show, {
5973
6740
  get when() {
5974
6741
  return !props.notification.isRead;
5975
6742
  },
5976
6743
  get children() {
5977
- var _el$8 = _tmpl$311();
5978
- effect(() => className(_el$8, style("notificationDot", "nt-size-1.5 nt-bg-primary nt-rounded-full nt-shrink-0")));
5979
- return _el$8;
6744
+ var _el$7 = _tmpl$67();
6745
+ effect(() => className(_el$7, style({
6746
+ key: "notificationDot",
6747
+ className: "nt-size-1.5 nt-bg-primary nt-rounded-full",
6748
+ context: {
6749
+ notification: props.notification
6750
+ }
6751
+ })));
6752
+ return _el$7;
5980
6753
  }
5981
- }), null);
6754
+ }));
5982
6755
  effect((_p$) => {
5983
6756
  var _a;
5984
- var _v$3 = style("notification", cn("nt-w-full nt-text-sm hover:nt-bg-primary-alpha-25 nt-group nt-relative nt-flex nt-items-start nt-p-4 nt-gap-2", "[&:not(:first-child)]:nt-border-t nt-border-neutral-alpha-100", {
5985
- "nt-cursor-pointer": !props.notification.isRead || !!((_a = props.notification.redirect) == null ? void 0 : _a.url)
5986
- })), _v$4 = style("notificationContent", "nt-flex nt-flex-col nt-gap-2 nt-w-full"), _v$5 = style("notificationTextContainer"), _v$6 = style("notificationDefaultActions", `nt-absolute nt-transition nt-duration-100 nt-ease-out nt-gap-0.5 nt-flex nt-shrink-0 nt-opacity-0 group-hover:nt-opacity-100 group-focus-within:nt-opacity-100 nt-justify-center nt-items-center nt-bg-background/90 nt-right-3 nt-top-3 nt-border nt-border-neutral-alpha-100 nt-rounded-lg nt-backdrop-blur-lg nt-p-0.5`), _v$7 = style("notificationDate", "nt-text-foreground-alpha-400 nt-flex nt-items-center nt-gap-1");
5987
- _v$3 !== _p$.e && className(_el$, _p$.e = _v$3);
5988
- _v$4 !== _p$.t && className(_el$3, _p$.t = _v$4);
5989
- _v$5 !== _p$.a && className(_el$4, _p$.a = _v$5);
5990
- _v$6 !== _p$.o && className(_el$5, _p$.o = _v$6);
5991
- _v$7 !== _p$.i && className(_el$7, _p$.i = _v$7);
6757
+ var _v$ = style({
6758
+ key: SEVERITY_TO_NOTIFICATION_KEYS[props.notification.severity],
6759
+ className: cn("nt-transition nt-w-full nt-text-sm hover:nt-bg-primary-alpha-25 nt-group nt-relative nt-flex nt-items-start nt-p-4 nt-gap-2", "[&:not(:first-child)]:nt-border-t nt-border-neutral-alpha-100", {
6760
+ "nt-cursor-pointer": !props.notification.isRead || !!((_a = props.notification.redirect) == null ? void 0 : _a.url),
6761
+ "nt-bg-severity-high-alpha-100 hover:nt-bg-severity-high-alpha-50": props.notification.severity === "high" /* HIGH */,
6762
+ "nt-bg-severity-medium-alpha-100 hover:nt-bg-severity-medium-alpha-50": props.notification.severity === "medium" /* MEDIUM */,
6763
+ "nt-bg-severity-low-alpha-100 hover:nt-bg-severity-low-alpha-50": props.notification.severity === "low" /* LOW */
6764
+ }),
6765
+ context: {
6766
+ notification: props.notification
6767
+ }
6768
+ }), _v$2 = style({
6769
+ key: SEVERITY_TO_BAR_KEYS[props.notification.severity],
6770
+ className: cn("nt-transition nt-absolute nt-left-0 nt-top-0 nt-bottom-0 nt-w-[3px]", {
6771
+ "nt-bg-severity-high group-hover:nt-bg-severity-high-alpha-500": props.notification.severity === "high" /* HIGH */,
6772
+ "nt-bg-severity-medium group-hover:nt-bg-severity-medium-alpha-500": props.notification.severity === "medium" /* MEDIUM */,
6773
+ "nt-bg-severity-low group-hover:nt-bg-severity-low-alpha-500": props.notification.severity === "low" /* LOW */
6774
+ }),
6775
+ context: {
6776
+ notification: props.notification
6777
+ }
6778
+ }), _v$3 = style({
6779
+ key: "notificationContent",
6780
+ className: "nt-flex nt-flex-col nt-gap-2 nt-w-full",
6781
+ context: {
6782
+ notification: props.notification
6783
+ }
6784
+ }), _v$4 = style({
6785
+ key: "notificationTextContainer",
6786
+ context: {
6787
+ notification: props.notification
6788
+ }
6789
+ }), _v$5 = style({
6790
+ key: "notificationDate",
6791
+ className: "nt-text-foreground-alpha-400 nt-flex nt-items-center nt-gap-1",
6792
+ context: {
6793
+ notification: props.notification
6794
+ }
6795
+ });
6796
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
6797
+ _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
6798
+ _v$3 !== _p$.a && className(_el$3, _p$.a = _v$3);
6799
+ _v$4 !== _p$.o && className(_el$4, _p$.o = _v$4);
6800
+ _v$5 !== _p$.i && className(_el$5, _p$.i = _v$5);
5992
6801
  return _p$;
5993
6802
  }, {
5994
6803
  e: void 0,
@@ -6013,12 +6822,21 @@ var Notification = (props) => {
6013
6822
  get notification() {
6014
6823
  return props.notification;
6015
6824
  },
6825
+ get renderAvatar() {
6826
+ return props.renderAvatar;
6827
+ },
6016
6828
  get renderSubject() {
6017
6829
  return props.renderSubject;
6018
6830
  },
6019
6831
  get renderBody() {
6020
6832
  return props.renderBody;
6021
6833
  },
6834
+ get renderDefaultActions() {
6835
+ return props.renderDefaultActions;
6836
+ },
6837
+ get renderCustomActions() {
6838
+ return props.renderCustomActions;
6839
+ },
6022
6840
  get onNotificationClick() {
6023
6841
  return props.onNotificationClick;
6024
6842
  },
@@ -6074,7 +6892,7 @@ function Key(props) {
6074
6892
 
6075
6893
  // src/ui/components/Notification/NotificationListSkeleton.tsx
6076
6894
  var _tmpl$69 = /* @__PURE__ */ template(`<div>`);
6077
- var _tmpl$219 = /* @__PURE__ */ template(`<p data-localization=notifications.emptyNotice>`);
6895
+ var _tmpl$220 = /* @__PURE__ */ template(`<p data-localization=notifications.emptyNotice>`);
6078
6896
  var _tmpl$312 = /* @__PURE__ */ template(`<div><p>Trigger your notification. No setup needed.</p><p>Temporary &lt;Inbox />, data will expire in 24h. Connect API key to persists messages, enable
6079
6897
  preferences, and connect email.</p><div><div>`);
6080
6898
  var NotificationListSkeleton = (props) => {
@@ -6099,7 +6917,10 @@ var NotificationListSkeleton = (props) => {
6099
6917
  delay: 0.3
6100
6918
  },
6101
6919
  get ["class"]() {
6102
- return style("notificationList__skeleton", "nt-flex nt-relative nt-mx-auto nt-flex-col nt-w-full nt-mb-4");
6920
+ return style({
6921
+ key: "notificationList__skeleton",
6922
+ className: "nt-flex nt-relative nt-mx-auto nt-flex-col nt-w-full nt-mb-4"
6923
+ });
6103
6924
  },
6104
6925
  get children() {
6105
6926
  return [memo(() => Array.from({
@@ -6118,7 +6939,10 @@ var NotificationListSkeleton = (props) => {
6118
6939
  easing: "ease-in-out"
6119
6940
  },
6120
6941
  get ["class"]() {
6121
- return style("notificationList__skeletonContent", "nt-flex nt-border-neutral-alpha-50 nt-items-center nt-gap-3 nt-p-3 nt-bg-neutral-alpha-25");
6942
+ return style({
6943
+ key: "notificationList__skeletonContent",
6944
+ className: "nt-flex nt-border-neutral-alpha-50 nt-items-center nt-gap-3 nt-p-3 nt-bg-neutral-alpha-25"
6945
+ });
6122
6946
  },
6123
6947
  get children() {
6124
6948
  return [createComponent(SkeletonAvatar, {
@@ -6134,13 +6958,19 @@ var NotificationListSkeleton = (props) => {
6134
6958
  appearanceKey: "notificationList__skeletonText",
6135
6959
  "class": "nt-h-2 nt-w-2/3 nt-bg-neutral-alpha-50 nt-rounded"
6136
6960
  }), null);
6137
- effect(() => className(_el$3, style("notificationList__skeletonItem", "nt-flex nt-flex-col nt-gap-2 nt-flex-1")));
6961
+ effect(() => className(_el$3, style({
6962
+ key: "notificationList__skeletonItem",
6963
+ className: "nt-flex nt-flex-col nt-gap-2 nt-flex-1"
6964
+ })));
6138
6965
  return _el$3;
6139
6966
  })()];
6140
6967
  }
6141
6968
  }))), (() => {
6142
6969
  var _el$2 = _tmpl$69();
6143
- effect(() => className(_el$2, style("notificationListEmptyNoticeOverlay", "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background")));
6970
+ effect(() => className(_el$2, style({
6971
+ key: "notificationListEmptyNoticeOverlay",
6972
+ className: "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background"
6973
+ })));
6144
6974
  return _el$2;
6145
6975
  })()];
6146
6976
  }
@@ -6169,11 +6999,14 @@ var NotificationListSkeleton = (props) => {
6169
6999
  delay: 0.6
6170
7000
  },
6171
7001
  get ["class"]() {
6172
- return style("notificationListEmptyNotice", "nt-text-center");
7002
+ return style({
7003
+ key: "notificationListEmptyNotice",
7004
+ className: "nt-text-center"
7005
+ });
6173
7006
  },
6174
7007
  get children() {
6175
7008
  return memo(() => !!isKeyless())() ? createComponent(KeylessEmptyState, {}) : (() => {
6176
- var _el$4 = _tmpl$219();
7009
+ var _el$4 = _tmpl$220();
6177
7010
  insert(_el$4, () => t("notifications.emptyNotice"));
6178
7011
  return _el$4;
6179
7012
  })();
@@ -6181,7 +7014,10 @@ var NotificationListSkeleton = (props) => {
6181
7014
  });
6182
7015
  }
6183
7016
  }), null);
6184
- effect(() => className(_el$, style("notificationListEmptyNoticeContainer", "nt-flex nt-flex-col nt-items-center nt-h-fit nt-w-full nt-text-sm nt-text-foreground-alpha-400 nt-text-center")));
7017
+ effect(() => className(_el$, style({
7018
+ key: "notificationListEmptyNoticeContainer",
7019
+ className: "nt-flex nt-flex-col nt-items-center nt-h-fit nt-w-full nt-text-sm nt-text-foreground-alpha-400 nt-text-center"
7020
+ })));
6185
7021
  return _el$;
6186
7022
  })();
6187
7023
  };
@@ -6194,13 +7030,19 @@ function KeylessEmptyState() {
6194
7030
  variant: "secondary",
6195
7031
  size: "sm",
6196
7032
  get ["class"]() {
6197
- return style("notificationListEmptyNotice", "nt-h-8 nt-px-4 nt-flex nt-items-center nt-justify-center nt-gap-2 nt-bg-white nt-border nt-border-neutral-alpha-100 nt-shadow-sm nt-text-[12px] nt-font-medium");
7033
+ return style({
7034
+ key: "notificationListEmptyNotice",
7035
+ className: "nt-h-8 nt-px-4 nt-flex nt-items-center nt-justify-center nt-gap-2 nt-bg-white nt-border nt-border-neutral-alpha-100 nt-shadow-sm nt-text-[12px] nt-font-medium"
7036
+ });
6198
7037
  },
6199
7038
  onClick: () => window.open("https://go.novu.co/keyless", "_blank", "noopener noreferrer"),
6200
7039
  get children() {
6201
7040
  return [createComponent(Key, {
6202
7041
  get ["class"]() {
6203
- return style("lockIcon", "nt-size-4 nt-mr-2");
7042
+ return style({
7043
+ key: "lockIcon",
7044
+ className: "nt-size-4 nt-mr-2"
7045
+ });
6204
7046
  }
6205
7047
  }), "Get API key"];
6206
7048
  }
@@ -6209,19 +7051,37 @@ function KeylessEmptyState() {
6209
7051
  variant: "default",
6210
7052
  size: "sm",
6211
7053
  get ["class"]() {
6212
- return style("notificationListEmptyNotice", "nt-h-8 nt-px-4 nt-flex nt-items-center nt-justify-center nt-gap-2 nt-bg-neutral-900 nt-text-white nt-shadow-sm nt-text-[12px] nt-font-medium");
7054
+ return style({
7055
+ key: "notificationListEmptyNotice",
7056
+ className: "nt-h-8 nt-px-4 nt-flex nt-items-center nt-justify-center nt-gap-2 nt-bg-neutral-900 nt-text-white nt-shadow-sm nt-text-[12px] nt-font-medium"
7057
+ });
6213
7058
  },
6214
7059
  onClick: () => novu.notifications.triggerHelloWorldEvent(),
6215
7060
  get children() {
6216
7061
  return [createComponent(Bell, {
6217
7062
  get ["class"]() {
6218
- return style("bellIcon", "nt-size-4 nt-mr-2");
7063
+ return style({
7064
+ key: "bellIcon",
7065
+ className: "nt-size-4 nt-mr-2"
7066
+ });
6219
7067
  }
6220
7068
  }), "Send 'Hello World!'"];
6221
7069
  }
6222
7070
  }));
6223
7071
  effect((_p$) => {
6224
- var _v$ = style("notificationListEmptyNotice", "nt--mt-[50px]"), _v$2 = style("strong", "nt-text-[#000000] nt-mb-1"), _v$3 = style("notificationListEmptyNotice", "nt-mb-4"), _v$4 = style("notificationListEmptyNotice", "nt-flex nt-gap-4 nt-justify-center");
7072
+ var _v$ = style({
7073
+ key: "notificationListEmptyNotice",
7074
+ className: "nt--mt-[50px]"
7075
+ }), _v$2 = style({
7076
+ key: "strong",
7077
+ className: "nt-text-[#000000] nt-mb-1"
7078
+ }), _v$3 = style({
7079
+ key: "notificationListEmptyNotice",
7080
+ className: "nt-mb-4"
7081
+ }), _v$4 = style({
7082
+ key: "notificationListEmptyNotice",
7083
+ className: "nt-flex nt-gap-4 nt-justify-center"
7084
+ });
6225
7085
  _v$ !== _p$.e && className(_el$5, _p$.e = _v$);
6226
7086
  _v$2 !== _p$.t && className(_el$6, _p$.t = _v$2);
6227
7087
  _v$3 !== _p$.a && className(_el$7, _p$.a = _v$3);
@@ -6239,9 +7099,9 @@ function KeylessEmptyState() {
6239
7099
 
6240
7100
  // src/ui/components/Notification/NotificationList.tsx
6241
7101
  var _tmpl$70 = /* @__PURE__ */ template(`<div>`);
6242
- var _tmpl$220 = /* @__PURE__ */ template(`<div><div>`);
7102
+ var _tmpl$221 = /* @__PURE__ */ template(`<div><div>`);
6243
7103
  var NotificationList = (props) => {
6244
- var _a, _b, _c, _d;
7104
+ var _a, _b, _c, _d, _e;
6245
7105
  const options = createMemo(() => __spreadProps(__spreadValues({}, props.filter), {
6246
7106
  limit: props.limit
6247
7107
  }));
@@ -6261,7 +7121,8 @@ var NotificationList = (props) => {
6261
7121
  } = useNewMessagesCount({
6262
7122
  filter: {
6263
7123
  tags: (_b = (_a = props.filter) == null ? void 0 : _a.tags) != null ? _b : [],
6264
- data: (_d = (_c = props.filter) == null ? void 0 : _c.data) != null ? _d : {}
7124
+ data: (_d = (_c = props.filter) == null ? void 0 : _c.data) != null ? _d : {},
7125
+ severity: (_e = props.filter) == null ? void 0 : _e.severity
6265
7126
  }
6266
7127
  });
6267
7128
  const {
@@ -6287,7 +7148,7 @@ var NotificationList = (props) => {
6287
7148
  });
6288
7149
  });
6289
7150
  return (() => {
6290
- var _el$ = _tmpl$220(), _el$2 = _el$.firstChild;
7151
+ var _el$ = _tmpl$221(), _el$2 = _el$.firstChild;
6291
7152
  insert(_el$, createComponent(NewMessagesCta, {
6292
7153
  get count() {
6293
7154
  return count();
@@ -6346,12 +7207,21 @@ var NotificationList = (props) => {
6346
7207
  get renderNotification() {
6347
7208
  return props.renderNotification;
6348
7209
  },
7210
+ get renderAvatar() {
7211
+ return props.renderAvatar;
7212
+ },
6349
7213
  get renderSubject() {
6350
7214
  return props.renderSubject;
6351
7215
  },
6352
7216
  get renderBody() {
6353
7217
  return props.renderBody;
6354
7218
  },
7219
+ get renderDefaultActions() {
7220
+ return props.renderDefaultActions;
7221
+ },
7222
+ get renderCustomActions() {
7223
+ return props.renderCustomActions;
7224
+ },
6355
7225
  get onNotificationClick() {
6356
7226
  return props.onNotificationClick;
6357
7227
  },
@@ -6381,7 +7251,19 @@ var NotificationList = (props) => {
6381
7251
  }
6382
7252
  }));
6383
7253
  effect((_p$) => {
6384
- var _v$ = style("notificationListContainer", "nt-relative nt-border-t nt-border-t-neutral-alpha-200 nt-h-full nt-overflow-hidden"), _v$2 = style("notificationList", "nt-relative nt-h-full nt-flex nt-flex-col nt-overflow-y-auto");
7254
+ var _v$ = style({
7255
+ key: "notificationListContainer",
7256
+ className: "nt-relative nt-border-t nt-border-t-neutral-alpha-200 nt-h-full nt-overflow-hidden",
7257
+ context: {
7258
+ notifications: data()
7259
+ }
7260
+ }), _v$2 = style({
7261
+ key: "notificationList",
7262
+ className: "nt-relative nt-h-full nt-flex nt-flex-col nt-overflow-y-auto",
7263
+ context: {
7264
+ notifications: data()
7265
+ }
7266
+ });
6385
7267
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
6386
7268
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
6387
7269
  return _p$;
@@ -6400,20 +7282,24 @@ var InboxTabUnreadNotificationsCount = (props) => {
6400
7282
  return (() => {
6401
7283
  var _el$ = _tmpl$71();
6402
7284
  insert(_el$, displayCount);
6403
- effect(() => className(_el$, style("notificationsTabsTriggerCount", "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm")));
7285
+ effect(() => className(_el$, style({
7286
+ key: "notificationsTabsTriggerCount",
7287
+ className: "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm"
7288
+ })));
6404
7289
  return _el$;
6405
7290
  })();
6406
7291
  };
6407
7292
  var InboxTab = (props) => {
6408
- var _a;
7293
+ var _a, _b;
6409
7294
  const {
6410
7295
  status
6411
7296
  } = useInboxContext();
6412
7297
  const style = useStyle();
6413
- const unreadCount = useUnreadCount({
7298
+ const unreadCount = useFilteredUnreadCount({
6414
7299
  filter: {
6415
7300
  tags: getTagsFromTab(props),
6416
- data: (_a = props.filter) == null ? void 0 : _a.data
7301
+ data: (_a = props.filter) == null ? void 0 : _a.data,
7302
+ severity: (_b = props.filter) == null ? void 0 : _b.severity
6417
7303
  }
6418
7304
  });
6419
7305
  return createComponent(Tabs.Trigger, {
@@ -6421,13 +7307,19 @@ var InboxTab = (props) => {
6421
7307
  return props.label;
6422
7308
  },
6423
7309
  get ["class"]() {
6424
- return style("notificationsTabs__tabsTrigger", cn(tabsTriggerVariants(), "nt-flex nt-gap-2", props.class));
7310
+ return style({
7311
+ key: "notificationsTabs__tabsTrigger",
7312
+ className: cn(tabsTriggerVariants(), "nt-flex nt-gap-2", props.class)
7313
+ });
6425
7314
  },
6426
7315
  get children() {
6427
7316
  return [(() => {
6428
7317
  var _el$2 = _tmpl$71();
6429
7318
  insert(_el$2, () => props.label);
6430
- effect(() => className(_el$2, style("notificationsTabsTriggerLabel", "nt-text-sm nt-font-medium")));
7319
+ effect(() => className(_el$2, style({
7320
+ key: "notificationsTabsTriggerLabel",
7321
+ className: "nt-text-sm nt-font-medium"
7322
+ })));
6431
7323
  return _el$2;
6432
7324
  })(), createComponent(Show, {
6433
7325
  get when() {
@@ -6445,20 +7337,24 @@ var InboxTab = (props) => {
6445
7337
  });
6446
7338
  };
6447
7339
  var InboxDropdownTab = (props) => {
6448
- var _a;
7340
+ var _a, _b;
6449
7341
  const {
6450
7342
  status
6451
7343
  } = useInboxContext();
6452
7344
  const style = useStyle();
6453
- const unreadCount = useUnreadCount({
7345
+ const unreadCount = useFilteredUnreadCount({
6454
7346
  filter: {
6455
7347
  tags: getTagsFromTab(props),
6456
- data: (_a = props.filter) == null ? void 0 : _a.data
7348
+ data: (_a = props.filter) == null ? void 0 : _a.data,
7349
+ severity: (_b = props.filter) == null ? void 0 : _b.severity
6457
7350
  }
6458
7351
  });
6459
7352
  return createComponent(Dropdown.Item, {
6460
7353
  get ["class"]() {
6461
- return style("moreTabs__dropdownItem", cn(dropdownItemVariants(), "nt-flex nt-justify-between nt-gap-2"));
7354
+ return style({
7355
+ key: "moreTabs__dropdownItem",
7356
+ className: cn(dropdownItemVariants(), "nt-flex nt-justify-between nt-gap-2")
7357
+ });
6462
7358
  },
6463
7359
  get onClick() {
6464
7360
  return props.onClick;
@@ -6467,7 +7363,10 @@ var InboxDropdownTab = (props) => {
6467
7363
  return [(() => {
6468
7364
  var _el$3 = _tmpl$71();
6469
7365
  insert(_el$3, () => props.label);
6470
- effect(() => className(_el$3, style("moreTabs__dropdownItemLabel", "nt-mr-auto")));
7366
+ effect(() => className(_el$3, style({
7367
+ key: "moreTabs__dropdownItemLabel",
7368
+ className: "nt-mr-auto"
7369
+ })));
6471
7370
  return _el$3;
6472
7371
  })(), memo(() => props.rightIcon), createComponent(Show, {
6473
7372
  get when() {
@@ -6511,7 +7410,9 @@ var InboxTabs = (props) => {
6511
7410
  };
6512
7411
  })
6513
7412
  });
6514
- const checkIconClass = style("moreTabs__dropdownItemRight__icon", "nt-size-3", {
7413
+ const checkIconClass = style({
7414
+ key: "moreTabs__dropdownItemRight__icon",
7415
+ className: "nt-size-3",
6515
7416
  iconKey: "check"
6516
7417
  });
6517
7418
  const options = createMemo(() => dropdownTabs().map((tab) => __spreadProps(__spreadValues({}, tab), {
@@ -6527,7 +7428,9 @@ var InboxTabs = (props) => {
6527
7428
  })));
6528
7429
  const dropdownTabsUnreadSum = createMemo(() => dropdownTabsUnreadCounts().reduce((accumulator, currentValue) => accumulator + currentValue, 0));
6529
7430
  const isTabsDropdownActive = createMemo(() => dropdownTabs().map((tab) => tab.label).includes(activeTab()));
6530
- const moreTabsIconClass = style("moreTabs__icon", "nt-size-5", {
7431
+ const moreTabsIconClass = style({
7432
+ key: "moreTabs__icon",
7433
+ className: "nt-size-5",
6531
7434
  iconKey: "arrowDown"
6532
7435
  });
6533
7436
  return createComponent(Tabs.Root, {
@@ -6629,19 +7532,31 @@ var InboxTabs = (props) => {
6629
7532
  return tab.label;
6630
7533
  },
6631
7534
  get ["class"]() {
6632
- return style("notificationsTabs__tabsContent", cn(activeTab() === tab.label ? "nt-block" : "nt-hidden", "nt-overflow-auto nt-flex-1 nt-flex nt-flex-col nt-min-h-0"));
7535
+ return style({
7536
+ key: "notificationsTabs__tabsContent",
7537
+ className: cn(activeTab() === tab.label ? "nt-block" : "nt-hidden", "nt-overflow-auto nt-flex-1 nt-flex nt-flex-col nt-min-h-0")
7538
+ });
6633
7539
  },
6634
7540
  get children() {
6635
7541
  return createComponent(NotificationList, {
6636
7542
  get renderNotification() {
6637
7543
  return props.renderNotification;
6638
7544
  },
7545
+ get renderAvatar() {
7546
+ return props.renderAvatar;
7547
+ },
6639
7548
  get renderSubject() {
6640
7549
  return props.renderSubject;
6641
7550
  },
6642
7551
  get renderBody() {
6643
7552
  return props.renderBody;
6644
7553
  },
7554
+ get renderDefaultActions() {
7555
+ return props.renderDefaultActions;
7556
+ },
7557
+ get renderCustomActions() {
7558
+ return props.renderCustomActions;
7559
+ },
6645
7560
  get onNotificationClick() {
6646
7561
  return props.onNotificationClick;
6647
7562
  },
@@ -6652,10 +7567,11 @@ var InboxTabs = (props) => {
6652
7567
  return props.onSecondaryActionClick;
6653
7568
  },
6654
7569
  get filter() {
6655
- var _a;
7570
+ var _a, _b;
6656
7571
  return __spreadProps(__spreadValues({}, filter()), {
6657
7572
  tags: getTagsFromTab(tab),
6658
- data: (_a = tab.filter) == null ? void 0 : _a.data
7573
+ data: (_a = tab.filter) == null ? void 0 : _a.data,
7574
+ severity: (_b = tab.filter) == null ? void 0 : _b.severity
6659
7575
  });
6660
7576
  }
6661
7577
  });
@@ -6713,12 +7629,21 @@ var InboxContent = (props) => {
6713
7629
  get renderNotification() {
6714
7630
  return props.renderNotification;
6715
7631
  },
7632
+ get renderAvatar() {
7633
+ return props.renderAvatar;
7634
+ },
6716
7635
  get renderSubject() {
6717
7636
  return props.renderSubject;
6718
7637
  },
6719
7638
  get renderBody() {
6720
7639
  return props.renderBody;
6721
7640
  },
7641
+ get renderDefaultActions() {
7642
+ return props.renderDefaultActions;
7643
+ },
7644
+ get renderCustomActions() {
7645
+ return props.renderCustomActions;
7646
+ },
6722
7647
  get onNotificationClick() {
6723
7648
  return props.onNotificationClick;
6724
7649
  },
@@ -6738,12 +7663,21 @@ var InboxContent = (props) => {
6738
7663
  get renderNotification() {
6739
7664
  return props.renderNotification;
6740
7665
  },
7666
+ get renderAvatar() {
7667
+ return props.renderAvatar;
7668
+ },
6741
7669
  get renderSubject() {
6742
7670
  return props.renderSubject;
6743
7671
  },
6744
7672
  get renderBody() {
6745
7673
  return props.renderBody;
6746
7674
  },
7675
+ get renderDefaultActions() {
7676
+ return props.renderDefaultActions;
7677
+ },
7678
+ get renderCustomActions() {
7679
+ return props.renderCustomActions;
7680
+ },
6747
7681
  get onNotificationClick() {
6748
7682
  return props.onNotificationClick;
6749
7683
  },
@@ -6775,10 +7709,13 @@ var InboxContent = (props) => {
6775
7709
  }
6776
7710
  }), null);
6777
7711
  insert(_el$, createComponent(Footer, {}), null);
6778
- effect(() => className(_el$, style("inboxContent", cn("nt-h-full nt-flex nt-flex-col [&_.nv-preferencesContainer]:nt-pb-8 [&_.nv-notificationList]:nt-pb-8", {
6779
- "[&_.nv-preferencesContainer]:nt-pb-12 [&_.nv-notificationList]:nt-pb-12": isDevelopmentMode(),
6780
- "[&_.nv-preferencesContainer]:nt-pb-8 [&_.nv-notificationList]:nt-pb-8": !isDevelopmentMode()
6781
- }))));
7712
+ effect(() => className(_el$, style({
7713
+ key: "inboxContent",
7714
+ className: cn("nt-h-full nt-flex nt-flex-col [&_.nv-preferencesContainer]:nt-pb-8 [&_.nv-notificationList]:nt-pb-8", {
7715
+ "[&_.nv-preferencesContainer]:nt-pb-12 [&_.nv-notificationList]:nt-pb-12": isDevelopmentMode(),
7716
+ "[&_.nv-preferencesContainer]:nt-pb-8 [&_.nv-notificationList]:nt-pb-8": !isDevelopmentMode()
7717
+ })
7718
+ })));
6782
7719
  return _el$;
6783
7720
  })();
6784
7721
  };
@@ -6807,7 +7744,9 @@ var Inbox = (props) => {
6807
7744
  return [createComponent(Popover.Trigger, {
6808
7745
  asChild: (triggerProps) => createComponent(Button, mergeProps({
6809
7746
  get ["class"]() {
6810
- return style("inbox__popoverTrigger");
7747
+ return style({
7748
+ key: "inbox__popoverTrigger"
7749
+ });
6811
7750
  },
6812
7751
  variant: "ghost",
6813
7752
  size: "icon"
@@ -6830,12 +7769,21 @@ var Inbox = (props) => {
6830
7769
  },
6831
7770
  get fallback() {
6832
7771
  return createComponent(InboxContent, {
7772
+ get renderAvatar() {
7773
+ return props.renderAvatar;
7774
+ },
6833
7775
  get renderSubject() {
6834
7776
  return props.renderSubject;
6835
7777
  },
6836
7778
  get renderBody() {
6837
7779
  return props.renderBody;
6838
7780
  },
7781
+ get renderDefaultActions() {
7782
+ return props.renderDefaultActions;
7783
+ },
7784
+ get renderCustomActions() {
7785
+ return props.renderCustomActions;
7786
+ },
6839
7787
  get onNotificationClick() {
6840
7788
  return props.onNotificationClick;
6841
7789
  },
@@ -6877,11 +7825,14 @@ var novuComponents = {
6877
7825
  Bell: Bell2,
6878
7826
  Notifications: (props) => {
6879
7827
  if (props.renderNotification) {
6880
- const _a = props, propsWithoutBodyAndSubject = __objRest(_a, [
7828
+ const _a = props, otherProps = __objRest(_a, [
6881
7829
  "renderBody",
6882
- "renderSubject"
7830
+ "renderSubject",
7831
+ "renderAvatar",
7832
+ "renderDefaultActions",
7833
+ "renderCustomActions"
6883
7834
  ]);
6884
- return createComponent(InboxContent, mergeProps(propsWithoutBodyAndSubject, {
7835
+ return createComponent(InboxContent, mergeProps(otherProps, {
6885
7836
  hideNav: true,
6886
7837
  get initialPage() {
6887
7838
  return InboxPage.Notifications;
@@ -6900,11 +7851,14 @@ var novuComponents = {
6900
7851
  },
6901
7852
  Preferences: (props) => {
6902
7853
  if (props.renderNotification) {
6903
- const _a = props, propsWithoutBodyAndSubject = __objRest(_a, [
7854
+ const _a = props, otherProps = __objRest(_a, [
6904
7855
  "renderBody",
6905
- "renderSubject"
7856
+ "renderSubject",
7857
+ "renderAvatar",
7858
+ "renderDefaultActions",
7859
+ "renderCustomActions"
6906
7860
  ]);
6907
- return createComponent(InboxContent, mergeProps(propsWithoutBodyAndSubject, {
7861
+ return createComponent(InboxContent, mergeProps(otherProps, {
6908
7862
  hideNav: true,
6909
7863
  get initialPage() {
6910
7864
  return InboxPage.Preferences;