@novu/js 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWONVNOTK_js = require('../chunk-WONVNOTK.js');
3
+ var chunkKIOGWIKT_js = require('../chunk-KIOGWIKT.js');
4
4
  var chunkERC62PGI_js = require('../chunk-ERC62PGI.js');
5
5
  var chunk7B52C2XE_js = require('../chunk-7B52C2XE.js');
6
6
  var web = require('solid-js/web');
@@ -17,16 +17,19 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
17
 
18
18
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
19
19
 
20
- // _ocwnno0ue:/Users/sokratisvidros/Workspace/novu/packages/js/src/ui/index.directcss
21
- var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}}.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-left-0{left:0}.nt-left-0\\.5{left:.125rem}.nt-right-0{right:0}.nt-right-3{right:.75rem}.nt-top-0{top:0}.nt-top-0\\.5{top:.125rem}.nt-top-3{top:.75rem}.nt-z-10{z-index:10}.nt-z-\\[-1\\]{z-index:-1}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-auto{margin-left:auto}.nt-mr-auto{margin-right:auto}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.nt-size-1{height:.25rem;width:.25rem}.nt-size-1\\.5{height:.375rem;width:.375rem}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\\.5{height:.625rem;width:.625rem}.nt-size-3{height:.75rem;width:.75rem}.nt-size-4{height:1rem;width:1rem}.nt-size-5{height:1.25rem;width:1.25rem}.nt-size-8{height:2rem;width:2rem}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-4{height:1rem}.nt-h-8{height:2rem}.nt-h-\\[600px\\]{height:600px}.nt-h-fit{height:-moz-fit-content;height:fit-content}.nt-h-full{height:100%}.nt-min-h-0{min-height:0}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[400px\\]{width:400px}.nt-w-fit{width:-moz-fit-content;width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.nt-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-cursor-default{cursor:default}.nt-cursor-pointer{cursor:pointer}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0{gap:0}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-auto{overflow:auto}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-truncate{overflow:hidden;text-overflow:ellipsis}.nt-truncate,.nt-whitespace-nowrap{white-space:nowrap}.nt-whitespace-pre-wrap{white-space:pre-wrap}.nt-rounded{border-radius:var(--nv-radius-base)}.nt-rounded-full{border-radius:var(--nv-radius-full)}.nt-rounded-lg{border-radius:var(--nv-radius-lg)}.nt-rounded-md{border-radius:var(--nv-radius-md)}.nt-rounded-xl{border-radius:var(--nv-radius-xl)}.nt-border{border-width:1px}.nt-border-b{border-bottom-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-border,.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-50{border-color:var(--nv-color-neutral-alpha-50)}.nt-border-t-neutral-alpha-200{border-top-color:var(--nv-color-neutral-alpha-200)}.nt-bg-\\[oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.1\\)\\]{background-color:oklch(from var(--nv-color-stripes) l c h/.1)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-neutral-alpha-100{background-color:var(--nv-color-neutral-alpha-100)}.nt-bg-neutral-alpha-25{background-color:var(--nv-color-neutral-alpha-25)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.nt-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.nt-from-foreground-alpha-50{--tw-gradient-from:var(--nv-color-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-primary-foreground-alpha-200{--tw-gradient-from:var(--nv-color-primary-foreground-alpha-200) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-20\\%{--tw-gradient-from-position:20%}.nt-to-background{--tw-gradient-to:var(--nv-color-background) var(--tw-gradient-to-position)}.nt-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.nt-object-cover{object-fit:cover}.nt-p-0{padding:0}.nt-p-0\\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-2\\.5{padding:.625rem}.nt-p-3{padding:.75rem}.nt-p-4{padding:1rem}.nt-px-1{padding-left:.25rem;padding-right:.25rem}.nt-px-2{padding-left:.5rem;padding-right:.5rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-4{padding-left:1rem;padding-right:1rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\\[6px\\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-2{padding-bottom:.5rem;padding-top:.5rem}.nt-py-3{padding-bottom:.75rem;padding-top:.75rem}.nt-py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-px{padding-bottom:1px;padding-top:1px}.nt-pb-2{padding-bottom:.5rem}.nt-pb-\\[0\\.625rem\\]{padding-bottom:.625rem}.nt-pt-2{padding-top:.5rem}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-text-base{font-size:var(--nv-font-size-base);line-height:var(--nv-line-height-base)}.nt-text-sm{font-size:var(--nv-font-size-sm);line-height:var(--nv-line-height-sm)}.nt-text-xs{font-size:var(--nv-font-size-xs);line-height:var(--nv-line-height-xs)}.nt-font-medium{font-weight:500}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-opacity-0{opacity:0}.nt-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-primary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-primary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-secondary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\],.nt-shadow-dropdown{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-dropdown{--tw-shadow:0px 12px 16px -4px oklch(from var(--nv-color-shadow) l c h/0.08),0px 4px 6px -2px oklch(from var(--nv-color-shadow) l c h/0.03);--tw-shadow-colored:0px 12px 16px -4px var(--tw-shadow-color),0px 4px 6px -2px var(--tw-shadow-color)}.nt-shadow-popover{--tw-shadow:0px 8px 26px 0px oklch(from var(--nv-color-shadow) l c h/0.08),0px 2px 6px 0px oklch(from var(--nv-color-shadow) l c h/0.12);--tw-shadow-colored:0px 8px 26px 0px var(--tw-shadow-color),0px 2px 6px 0px var(--tw-shadow-color)}.nt-shadow-popover,.nt-shadow-tooltip{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 oklch(from var(--nv-color-shadow) l c h/0.08);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-backdrop-blur-lg{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nt-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.before\\:nt-absolute:before{content:var(--tw-content);position:absolute}.before\\:nt-inset-0:before{content:var(--tw-content);inset:0}.before\\:-nt-right-\\[calc\\(0\\+var\\(--stripes-size\\)\\)\\]:before{content:var(--tw-content);right:calc(var(--stripes-size)*-1)}@keyframes nt-stripes{0%{content:var(--tw-content);transform:translateX(0)}to{content:var(--tw-content);transform:translateX(calc(var(--stripes-size)*-1))}}.before\\:nt-animate-stripes:before{animation:nt-stripes 1s linear infinite paused;content:var(--tw-content)}.before\\:nt-rounded-lg:before{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.before\\:nt-rounded-md:before{border-radius:var(--nv-radius-md);content:var(--tw-content)}.before\\:nt-rounded-xl:before{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.before\\:nt-border:before{border-width:1px;content:var(--tw-content)}.before\\:nt-border-primary-foreground-alpha-100:before{border-color:var(--nv-color-primary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-border-secondary-foreground-alpha-100:before{border-color:var(--nv-color-secondary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-bg-dev-stripes-gradient:before{background-image:repeating-linear-gradient(135deg,oklch(from var(--nv-color-stripes) l c h/.1) 25%,oklch(from var(--nv-color-stripes) l c h/.1) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 75%);content:var(--tw-content)}.before\\:nt-bg-\\[length\\:var\\(--stripes-size\\)_var\\(--stripes-size\\)\\]:before{background-size:var(--stripes-size) var(--stripes-size);content:var(--tw-content)}.before\\:nt-content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.before\\:\\[mask-image\\:linear-gradient\\(transparent_0\\%\\2c black\\)\\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.after\\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\\:nt-inset-0:after{content:var(--tw-content);inset:0}.after\\:-nt-top-12:after{content:var(--tw-content);top:-3rem}.after\\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:nt-left-0:after{content:var(--tw-content);left:0}.after\\:nt-left-0\\.5:after{content:var(--tw-content);left:.125rem}.after\\:nt-top-0:after{content:var(--tw-content);top:0}.after\\:nt-top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:nt-size-3:after{content:var(--tw-content);height:.75rem;width:.75rem}.after\\:nt-h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:nt-w-full:after{content:var(--tw-content);width:100%}.after\\:nt-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-lg:after{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-text-foreground-alpha-800:hover{color:var(--nv-color-foreground-alpha-800)}.before\\:hover\\:\\[animation-play-state\\:running\\]:hover:before{animation-play-state:running;content:var(--tw-content)}.hover\\:after\\:nt-opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus\\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-rounded-lg:focus-visible{border-radius:var(--nv-radius-lg)}.focus-visible\\:nt-rounded-md:focus-visible{border-radius:var(--nv-radius-md)}.focus-visible\\:nt-rounded-xl:focus-visible{border-radius:var(--nv-radius-xl)}.focus-visible\\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\\:nt-ring-ring:focus-visible{--tw-ring-color:var(--nv-color-ring)}.focus-visible\\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100,.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.nt-peer:checked~.peer-checked\\:nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-peer:checked~.peer-checked\\:nt-bg-primary{background-color:var(--nv-color-primary)}.nt-peer:checked~.peer-checked\\:nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-peer:checked~.peer-checked\\:after\\:nt-translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-peer:checked~.peer-checked\\:after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true],.data-\\[open\\=true\\]\\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
20
+ // _qrqgolsn3:/Users/sokratisvidros/Workspace/novu/packages/js/src/ui/index.directcss
21
+ var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}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-mb-2{margin-bottom:.5rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.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-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-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-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-cursor-default{cursor:default}.nt-cursor-pointer{cursor:pointer}.nt-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-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-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/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-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-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-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.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-popover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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-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)}.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-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-lg:after{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-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}.nt-peer:checked~.peer-checked\\:nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-peer:checked~.peer-checked\\:nt-bg-primary{background-color:var(--nv-color-primary)}.nt-peer:checked~.peer-checked\\:nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-peer:checked~.peer-checked\\:after\\:nt-translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-peer:checked~.peer-checked\\:after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true],.data-\\[open\\=true\\]\\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
22
22
 
23
23
  // src/ui/config/appearanceKeys.ts
24
24
  var appearanceKeys = [
25
25
  // Primitives
26
26
  "button",
27
+ "input",
27
28
  "icon",
29
+ "badge",
28
30
  "popoverContent",
29
31
  "popoverTrigger",
32
+ "popoverClose",
30
33
  "dropdownContent",
31
34
  "dropdownTrigger",
32
35
  "dropdownItem",
@@ -38,6 +41,34 @@ var appearanceKeys = [
38
41
  "collapsible",
39
42
  "tooltipContent",
40
43
  "tooltipTrigger",
44
+ "datePicker",
45
+ "datePickerGrid",
46
+ "datePickerGridRow",
47
+ "datePickerGridCell",
48
+ "datePickerGridCellTrigger",
49
+ "datePickerTrigger",
50
+ "datePickerGridHeader",
51
+ "datePickerControl",
52
+ "datePickerControlPrevTrigger",
53
+ "datePickerControlNextTrigger",
54
+ "datePickerControlPrevTrigger__icon",
55
+ "datePickerControlNextTrigger__icon",
56
+ "datePickerCalendar",
57
+ "datePickerHeaderMonth",
58
+ "datePickerCalendarDay__button",
59
+ "timePicker",
60
+ "timePicker__hourSelect",
61
+ "timePicker__minuteSelect",
62
+ "timePicker__periodSelect",
63
+ "timePicker__separator",
64
+ "timePickerHour__input",
65
+ "timePickerMinute__input",
66
+ "snoozeDatePicker",
67
+ "snoozeDatePicker__actions",
68
+ "snoozeDatePickerCancel__button",
69
+ "snoozeDatePickerApply__button",
70
+ "snoozeDatePicker__timePickerContainer",
71
+ "snoozeDatePicker__timePickerLabel",
41
72
  "back__button",
42
73
  "skeletonText",
43
74
  "skeletonAvatar",
@@ -95,10 +126,14 @@ var appearanceKeys = [
95
126
  "notificationUnread__button",
96
127
  "notificationArchive__button",
97
128
  "notificationUnarchive__button",
129
+ "notificationSnooze__button",
130
+ "notificationUnsnooze__button",
98
131
  "notificationRead__icon",
99
132
  "notificationUnread__icon",
100
133
  "notificationArchive__icon",
101
134
  "notificationUnarchive__icon",
135
+ "notificationSnooze__icon",
136
+ "notificationUnsnooze__icon",
102
137
  // Notifications tabs
103
138
  "notificationsTabs__tabsRoot",
104
139
  "notificationsTabs__tabsList",
@@ -171,6 +206,15 @@ var appearanceKeys = [
171
206
  "preferencesList__skeletonSwitch",
172
207
  "preferencesList__skeletonSwitchThumb",
173
208
  "preferencesList__skeletonText",
209
+ // Notification Snooze
210
+ "notificationSnooze__dropdownContent",
211
+ "notificationSnooze__dropdownItem",
212
+ "notificationSnooze__dropdownItem__icon",
213
+ "notificationSnoozeCustomTime_popoverContent",
214
+ // Notification Delivered At
215
+ "notificationDeliveredAt__badge",
216
+ "notificationDeliveredAt__icon",
217
+ "notificationSnoozedUntil__icon",
174
218
  // Text formatting
175
219
  "strong"
176
220
  ];
@@ -179,9 +223,11 @@ var defaultLocalization = {
179
223
  "inbox.filters.dropdownOptions.unread": "Unread only",
180
224
  "inbox.filters.dropdownOptions.default": "Unread & read",
181
225
  "inbox.filters.dropdownOptions.archived": "Archived",
226
+ "inbox.filters.dropdownOptions.snoozed": "Snoozed",
182
227
  "inbox.filters.labels.unread": "Unread",
183
228
  "inbox.filters.labels.default": "Inbox",
184
229
  "inbox.filters.labels.archived": "Archived",
230
+ "inbox.filters.labels.snoozed": "Snoozed",
185
231
  "notifications.emptyNotice": "Quiet for now. Check back later.",
186
232
  "notifications.actions.readAll": "Mark all as read",
187
233
  "notifications.actions.archiveAll": "Archive all",
@@ -191,11 +237,24 @@ var defaultLocalization = {
191
237
  "notification.actions.unread.tooltip": "Mark as unread",
192
238
  "notification.actions.archive.tooltip": "Archive",
193
239
  "notification.actions.unarchive.tooltip": "Unarchive",
240
+ "notification.actions.snooze.tooltip": "Snooze",
241
+ "notification.actions.unsnooze.tooltip": "Unsnooze",
242
+ "notification.snoozedUntil": "Snoozed until",
194
243
  "preferences.title": "Preferences",
195
244
  "preferences.emptyNotice": "No notification specific preferences yet.",
196
245
  "preferences.global": "Global Preferences",
197
246
  "preferences.workflow.disabled.notice": "Contact admin to enable subscription management for this critical notification.",
198
- "preferences.workflow.disabled.tooltip": "Contact admin to edit"
247
+ "preferences.workflow.disabled.tooltip": "Contact admin to edit",
248
+ "snooze.datePicker.timePickerLabel": "Time",
249
+ "snooze.datePicker.apply": "Apply",
250
+ "snooze.datePicker.cancel": "Cancel",
251
+ "snooze.options.anHourFromNow": "An hour from now",
252
+ "snooze.datePicker.pastDateTooltip": "Selected time must be at least 3 minutes in the future",
253
+ "snooze.datePicker.noDateSelectedTooltip": "Please select a date",
254
+ "snooze.datePicker.exceedingLimitTooltip": ({ days }) => `Selected time cannot exceed ${days === 1 ? "24 hours" : `${days} days`} from now`,
255
+ "snooze.options.customTime": "Custom time...",
256
+ "snooze.options.inOneDay": "Tomorrow",
257
+ "snooze.options.inOneWeek": "Next week"
199
258
  };
200
259
  var [dynamicLocalization, setDynamicLocalization] = solidJs.createSignal({});
201
260
 
@@ -344,18 +403,39 @@ function formatToRelativeTime({
344
403
  const elapsed = toDate.getTime() - fromDate.getTime();
345
404
  const formatter = new Intl.RelativeTimeFormat(locale, { style: "narrow" });
346
405
  const diffInSeconds = Math.floor(elapsed / 1e3);
347
- if (diffInSeconds < SECONDS.inMinute) {
406
+ if (Math.abs(diffInSeconds) < SECONDS.inMinute) {
348
407
  return "Just now";
349
- } else if (diffInSeconds < SECONDS.inHour) {
408
+ } else if (Math.abs(diffInSeconds) < SECONDS.inHour) {
350
409
  return formatter.format(Math.floor(-diffInSeconds / SECONDS.inMinute), "minute");
351
- } else if (diffInSeconds < SECONDS.inDay) {
410
+ } else if (Math.abs(diffInSeconds) < SECONDS.inDay) {
352
411
  return formatter.format(Math.floor(-diffInSeconds / SECONDS.inHour), "hour");
353
- } else if (diffInSeconds < SECONDS.inMonth) {
412
+ } else if (Math.abs(diffInSeconds) < SECONDS.inMonth) {
354
413
  return formatter.format(Math.floor(-diffInSeconds / SECONDS.inDay), "day");
355
414
  } else {
356
415
  return new Intl.DateTimeFormat(locale, { month: "short", day: "numeric" }).format(fromDate);
357
416
  }
358
417
  }
418
+ function formatSnoozedUntil({ untilDate, locale = DEFAULT_LOCALE }) {
419
+ const remaining = untilDate.getTime() - (/* @__PURE__ */ new Date()).getTime();
420
+ const diffInSeconds = Math.floor(remaining / 1e3);
421
+ if (diffInSeconds < 0) {
422
+ return "soon";
423
+ }
424
+ if (diffInSeconds < SECONDS.inMinute) {
425
+ return "a moment";
426
+ } else if (diffInSeconds < SECONDS.inHour) {
427
+ const minutes = Math.floor(diffInSeconds / SECONDS.inMinute);
428
+ return `${minutes} ${minutes === 1 ? "minute" : "minutes"}`;
429
+ } else if (diffInSeconds < SECONDS.inDay) {
430
+ const hours = Math.floor(diffInSeconds / SECONDS.inHour);
431
+ return `${hours} ${hours === 1 ? "hour" : "hours"}`;
432
+ } else if (diffInSeconds < SECONDS.inWeek) {
433
+ const days = Math.floor(diffInSeconds / SECONDS.inDay);
434
+ return `${days} ${days === 1 ? "day" : "days"}`;
435
+ } else {
436
+ return new Intl.DateTimeFormat(locale, { month: "short", day: "numeric" }).format(untilDate);
437
+ }
438
+ }
359
439
  var twMerge = tailwindMerge.extendTailwindMerge({
360
440
  prefix: "nt-"
361
441
  });
@@ -556,7 +636,6 @@ var useStyle = () => {
556
636
  setIsServer(false);
557
637
  });
558
638
  const styleFuncMemo = solidJs.createMemo(() => (appearanceKey, className) => {
559
- var _a, _b;
560
639
  const appearanceKeyParts = appearanceKey.split("__");
561
640
  let finalAppearanceKeys = [];
562
641
  for (let i = 0; i < appearanceKeyParts.length; i += 1) {
@@ -579,9 +658,10 @@ var useStyle = () => {
579
658
  });
580
659
  const finalClassName = classes.filter((className2) => !finalAppearanceKeys.includes(className2)).join(" ");
581
660
  let appearanceClassnames = [];
582
- for (let i = 0; i < finalAppearanceKeys.reverse().length; i += 1) {
583
- if (typeof ((_a = appearance.elements()) == null ? void 0 : _a[finalAppearanceKeys[i]]) === "string") {
584
- appearanceClassnames.push((_b = appearance.elements()) == null ? void 0 : _b[finalAppearanceKeys[i]]);
661
+ const reversedFinalAppearanceKeys = finalAppearanceKeys.reverse();
662
+ for (let i = 0; i < reversedFinalAppearanceKeys.length; i += 1) {
663
+ if (typeof appearance.elements()[reversedFinalAppearanceKeys[i]] === "string") {
664
+ appearanceClassnames.push(appearance.elements()[reversedFinalAppearanceKeys[i]]);
585
665
  }
586
666
  }
587
667
  appearanceClassnames = [publicFacingTwMerge(appearanceClassnames)];
@@ -820,6 +900,7 @@ var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
820
900
  NotificationStatus2["UNREAD_READ"] = "unreadRead";
821
901
  NotificationStatus2["UNREAD"] = "unread";
822
902
  NotificationStatus2["ARCHIVED"] = "archived";
903
+ NotificationStatus2["SNOOZED"] = "snoozed";
823
904
  return NotificationStatus2;
824
905
  })(NotificationStatus || {});
825
906
 
@@ -827,13 +908,18 @@ var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
827
908
  var InboxContext = solidJs.createContext(void 0);
828
909
  var STATUS_TO_FILTER = {
829
910
  ["unreadRead" /* UNREAD_READ */]: {
830
- archived: false
911
+ archived: false,
912
+ snoozed: false
831
913
  },
832
914
  ["unread" /* UNREAD */]: {
833
- read: false
915
+ read: false,
916
+ snoozed: false
834
917
  },
835
918
  ["archived" /* ARCHIVED */]: {
836
919
  archived: true
920
+ },
921
+ ["snoozed" /* SNOOZED */]: {
922
+ snoozed: true
837
923
  }
838
924
  };
839
925
  var DEFAULT_LIMIT = 10;
@@ -849,6 +935,8 @@ var InboxProvider = (props) => {
849
935
  }));
850
936
  const [hideBranding, setHideBranding] = solidJs.createSignal(false);
851
937
  const [isDevelopmentMode, setIsDevelopmentMode] = solidJs.createSignal(false);
938
+ const [maxSnoozeDurationHours, setMaxSnoozeDurationHours] = solidJs.createSignal(0);
939
+ const isSnoozeEnabled = solidJs.createMemo(() => maxSnoozeDurationHours() > 0);
852
940
  const [preferencesFilter, setPreferencesFilter] = solidJs.createSignal(props.preferencesFilter);
853
941
  const setNewStatus = (newStatus) => {
854
942
  setStatus(newStatus);
@@ -905,6 +993,7 @@ var InboxProvider = (props) => {
905
993
  }
906
994
  setHideBranding(data.removeNovuBranding);
907
995
  setIsDevelopmentMode(data.isDevelopmentMode);
996
+ setMaxSnoozeDurationHours(data.maxSnoozeDurationHours);
908
997
  }
909
998
  });
910
999
  return web.createComponent(InboxContext.Provider, {
@@ -922,7 +1011,9 @@ var InboxProvider = (props) => {
922
1011
  navigate,
923
1012
  hideBranding,
924
1013
  preferencesFilter,
925
- isDevelopmentMode
1014
+ isDevelopmentMode,
1015
+ maxSnoozeDurationHours,
1016
+ isSnoozeEnabled
926
1017
  },
927
1018
  get children() {
928
1019
  return props.children;
@@ -938,7 +1029,7 @@ var useInboxContext = () => {
938
1029
  };
939
1030
  var NovuContext = solidJs.createContext(void 0);
940
1031
  function NovuProvider(props) {
941
- const novu = solidJs.createMemo(() => props.novu || new chunkWONVNOTK_js.Novu(props.options));
1032
+ const novu = solidJs.createMemo(() => props.novu || new chunkKIOGWIKT_js.Novu(props.options));
942
1033
  return web.createComponent(NovuContext.Provider, {
943
1034
  get value() {
944
1035
  return novu();
@@ -977,7 +1068,8 @@ var CountProvider = (props) => {
977
1068
  const filters = tabs().map((tab) => ({
978
1069
  tags: getTagsFromTab(tab),
979
1070
  read: false,
980
- archived: false
1071
+ archived: false,
1072
+ snoozed: false
981
1073
  }));
982
1074
  const {
983
1075
  data
@@ -1054,7 +1146,7 @@ var CountProvider = (props) => {
1054
1146
  eventHandler: (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({
1055
1147
  result: notification
1056
1148
  }) {
1057
- if (filter().archived) {
1149
+ if (filter().archived || filter().snoozed) {
1058
1150
  return;
1059
1151
  }
1060
1152
  const tagsMap = tabs().reduce((acc, tab) => {
@@ -1306,7 +1398,7 @@ var InApp = (props) => {
1306
1398
  return _el$;
1307
1399
  })();
1308
1400
  };
1309
- var _tmpl$10 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><path fill=currentColor d="M5.297 13c-.51 0-.899-.143-1.168-.428-.266-.286-.4-.706-.4-1.26V5.647h.966v5.65c0 .226.055.399.163.52.112.118.271.177.478.177h5.328c.204 0 .36-.059.468-.177.112-.121.168-.294.168-.52v-5.65h.97v5.667c0 .55-.134.967-.403 1.253-.27.29-.658.434-1.164.434H5.297ZM6.41 8.345a.372.372 0 0 1-.286-.123.456.456 0 0 1-.114-.321v-.172c0-.132.036-.237.109-.316a.386.386 0 0 1 .29-.117h3.184a.37.37 0 0 1 .286.117.437.437 0 0 1 .114.316v.172c0 .132-.038.24-.114.321a.372.372 0 0 1-.286.123H6.411ZM4.06 6.16c-.335 0-.597-.107-.784-.321C3.092 5.62 3 5.332 3 4.97V4.19c0-.364.095-.653.286-.868.19-.214.448-.321.774-.321h7.885c.332 0 .59.107.774.321.187.215.281.504.281.868v.782c0 .36-.094.65-.28.868-.185.214-.443.321-.775.321H4.06Zm.187-.97h7.511c.115 0 .197-.028.247-.085.049-.06.073-.152.073-.273v-.504c0-.125-.024-.216-.073-.273-.05-.057-.132-.086-.247-.086H4.247c-.115 0-.199.029-.251.086-.05.057-.074.148-.074.273v.504c0 .121.024.212.074.273.052.057.136.086.25.086Z">`);
1401
+ var _tmpl$10 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M2.29671 10C1.78742 10 1.39807 9.85716 1.12864 9.57149C0.862497 9.28581 0.729426 8.86623 0.729426 8.31274V2.64594H1.69543V8.29668C1.69543 8.52163 1.74964 8.69487 1.85806 8.81624C1.96978 8.93408 2.12914 8.99301 2.33614 8.99301H7.66389C7.86764 8.99301 8.02366 8.93408 8.13209 8.81624C8.24385 8.69487 8.29965 8.52163 8.29965 8.29668V2.64594H9.27059V8.31274C9.27059 8.8627 9.13591 9.28048 8.86648 9.56608C8.59705 9.85536 8.20931 10 7.70333 10H2.29671ZM3.41056 5.34543C3.29556 5.34543 3.20028 5.30438 3.1247 5.22226C3.04913 5.14015 3.01134 5.03304 3.01134 4.90089V4.72949C3.01134 4.59737 3.04749 4.49204 3.11977 4.41348C3.19535 4.33492 3.29227 4.29564 3.41056 4.29564H6.5944C6.71271 4.29564 6.80795 4.33492 6.88026 4.41348C6.95582 4.49204 6.9936 4.59737 6.9936 4.72949V4.90089C6.9936 5.03304 6.95582 5.14015 6.88026 5.22226C6.8047 5.30438 6.70939 5.34543 6.5944 5.34543H3.41056ZM1.05964 3.16014C0.724502 3.16014 0.463285 3.05301 0.276004 2.83877C0.0920037 2.62095 0 2.33172 0 1.97107V1.18907C0 0.824846 0.0952841 0.535614 0.28586 0.321373C0.476428 0.107124 0.734358 0 1.05964 0H8.94536C9.27715 0 9.53511 0.107124 9.71911 0.321373C9.90642 0.535614 10 0.824846 10 1.18907V1.97107C10 2.33172 9.90642 2.62095 9.71911 2.83877C9.53511 3.05301 9.27715 3.16014 8.94536 3.16014H1.05964ZM1.24693 2.19067H8.75805C8.87304 2.19067 8.95516 2.16211 9.00448 2.10497C9.05372 2.04427 9.07838 1.95322 9.07838 1.83181V1.32833C9.07838 1.20335 9.05372 1.1123 9.00448 1.05517C8.95516 0.99803 8.87304 0.969462 8.75805 0.969462H1.24693C1.13193 0.969462 1.04814 0.99803 0.995567 1.05517C0.946281 1.1123 0.921638 1.20335 0.921638 1.32833V1.83181C0.921638 1.95322 0.946281 2.04427 0.995567 2.10497C1.04814 2.16211 1.13193 2.19067 1.24693 2.19067Z"fill=currentColor>`);
1310
1402
  var MarkAsArchived = (props) => {
1311
1403
  return (() => {
1312
1404
  var _el$ = _tmpl$10();
@@ -1314,7 +1406,7 @@ var MarkAsArchived = (props) => {
1314
1406
  return _el$;
1315
1407
  })();
1316
1408
  };
1317
- var _tmpl$11 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><path fill=currentColor d="M5.297 13c-.51 0-.899-.143-1.168-.428-.266-.286-.4-.706-.4-1.26V5.647h.966v5.65c0 .226.055.399.163.52.112.118.271.177.478.177h5.328c.204 0 .36-.059.468-.177.112-.121.168-.294.168-.52v-5.65h.97v5.667c0 .55-.134.967-.403 1.253-.27.29-.658.434-1.164.434H5.297ZM4.06 6.16c-.335 0-.597-.107-.784-.321C3.092 5.62 3 5.332 3 4.97V4.19c0-.364.095-.653.286-.868.19-.214.448-.321.774-.321h7.885c.332 0 .59.107.774.321.187.215.281.504.281.868v.782c0 .36-.094.65-.28.868-.185.214-.443.321-.775.321H4.06Zm.187-.97h7.511c.115 0 .197-.028.247-.085.049-.06.073-.152.073-.273v-.504c0-.125-.024-.216-.073-.273-.05-.057-.132-.086-.247-.086H4.247c-.115 0-.199.029-.251.086-.05.057-.074.148-.074.273v.504c0 .121.024.212.074.273.052.057.136.086.25.086Z"></path><path fill=currentColor stroke=#fff d="M10.408 7.5a.845.845 0 0 1-.61-.256l-.002-.001-1.052-1.088a.872.872 0 0 1-.216-.825c.076-.292.3-.53.6-.614a.844.844 0 0 1 .833.229l.408.422 2.193-2.55M10.408 7.5h-.003V7l.003.5Zm0 0h.023a.846.846 0 0 0 .617-.298m0 0 2.8-3.257m-2.8 3.257V7.2l-.38-.323m.38.325h-.001l-.38-.325m3.18-2.932a.867.867 0 0 0-.059-1.225.843.843 0 0 0-.641-.217.847.847 0 0 0-.585.313m1.286 1.13.005-.006-.38-.326.367.34a.45.45 0 0 0 .008-.009Zm-1.286-1.13a.656.656 0 0 0-.009.012l.394.307-.379-.326-.006.007Zm-1.894 4.06a.347.347 0 0 1-.253.124l.253-.123Z">`);
1409
+ var _tmpl$11 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 11 11"fill=none xmlns=http://www.w3.org/2000/svg><path d="M2.17256 10.999C1.69081 10.999 1.3225 10.8562 1.06763 10.5705C0.815875 10.2848 0.689997 9.86525 0.689997 9.31177V3.64497H1.60378V9.2957C1.60378 9.52066 1.65506 9.6939 1.75763 9.81526C1.8633 9.93311 2.01405 9.99203 2.20986 9.99203H7.24963C7.44236 9.99203 7.58995 9.93311 7.69252 9.81526C7.79823 9.6939 7.85102 9.52066 7.85102 9.2957V3.64497H8.76947V9.31177C8.76947 9.86173 8.64208 10.2795 8.38721 10.5651C8.13235 10.8544 7.76556 10.999 7.28693 10.999H2.17256ZM1.00236 4.15916C0.68534 4.15916 0.438242 4.05204 0.261085 3.83779C0.0870305 3.61997 0 3.33074 0 2.97009V2.18809C0 1.82387 0.0901336 1.53464 0.270408 1.3204C0.450675 1.10615 0.694663 0.999023 1.00236 0.999023H8.46182C8.77568 0.999023 9.0197 1.10615 9.19375 1.3204C9.37094 1.53464 9.45946 1.82387 9.45946 2.18809V2.97009C9.45946 3.33074 9.37094 3.61997 9.19375 3.83779C9.0197 4.05204 8.77568 4.15916 8.46182 4.15916H1.00236ZM1.17953 3.1897H8.28464C8.39342 3.1897 8.4711 3.16113 8.51775 3.10399C8.56433 3.04329 8.58765 2.95224 8.58765 2.83083V2.32735C8.58765 2.20238 8.56433 2.11132 8.51775 2.05419C8.4711 1.99705 7.51461 1.96849 7.40583 1.96849H1.17953C1.07074 1.96849 0.991485 1.99705 0.941753 2.05419C0.895131 2.11132 0.87182 2.20238 0.87182 2.32735V2.83083C0.87182 2.95224 0.895131 3.04329 0.941753 3.10399C0.991485 3.16113 1.07074 3.1897 1.17953 3.1897Z"fill=currentColor></path><path d="M9.67298 0.553711C9.84703 0.556646 10.0146 0.614475 10.1535 0.716797L10.2208 0.771484L10.2814 0.833008C10.3958 0.960612 10.4679 1.11928 10.4913 1.28711L10.4992 1.37109L10.4982 1.45605C10.4872 1.64689 10.4124 1.8301 10.2833 1.97559L10.2843 1.97656L7.55482 5.15039L7.55384 5.14941C7.40234 5.3265 7.18382 5.43557 6.94642 5.44336L6.93861 5.44434H6.92005V5.44336C6.69203 5.44397 6.47619 5.35201 6.31947 5.19141L6.31849 5.18945L5.29505 4.13184C5.08531 3.91498 5.00658 3.60427 5.08118 3.31641L5.11634 3.21094C5.2129 2.97124 5.41476 2.78187 5.67396 2.70996L5.78626 2.68652C6.01138 2.65637 6.23763 2.72008 6.41419 2.85938L6.49818 2.93555L6.8849 3.33496L9.0138 0.859375V0.860352C9.15512 0.688807 9.35911 0.576792 9.58509 0.556641L9.67298 0.553711Z"fill=currentColor stroke=white>`);
1318
1410
  var MarkAsArchivedRead = (props) => {
1319
1411
  return (() => {
1320
1412
  var _el$ = _tmpl$11();
@@ -1322,7 +1414,7 @@ var MarkAsArchivedRead = (props) => {
1322
1414
  return _el$;
1323
1415
  })();
1324
1416
  };
1325
- var _tmpl$12 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><g fill=currentColor clip-path=url(#a)><path d="M12 13H4a.5.5 0 0 1-.5-.5v-9A.5.5 0 0 1 4 3h5.25a.5.5 0 0 1 0 1H4.5v8h7V7.5a.5.5 0 1 1 1 0v5a.5.5 0 0 1-.5.5Z"></path><path d="M10.5 11.25h-5a.5.5 0 1 1 0-1h5a.5.5 0 1 1 0 1ZM7.75 9.5a.5.5 0 0 1-.355-.145l-1.5-1.5a.502.502 0 0 1 .71-.71L7.73 8.27l3.645-4.1a.5.5 0 1 1 .75.66l-4 4.5a.5.5 0 0 1-.36.17H7.75Z"></path></g><defs><clipPath id=a><path fill=#fff d="M3 3h10v10H3z">`);
1417
+ var _tmpl$12 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><g clip-path=url(#clip0_3445_1172)><path d="M9 9.99902H1C0.867383 9.99902 0.7402 9.94635 0.64645 9.85257C0.552667 9.75882 0.5 9.63164 0.5 9.49902V0.499023C0.5 0.366407 0.552669 0.239223 0.64645 0.145473C0.7402 0.0516901 0.867383 -0.000976562 1 -0.000976562H6.25C6.42865 -0.000976562 6.59368 0.0943401 6.68301 0.249023C6.77233 0.403707 6.77233 0.59434 6.68301 0.749023C6.59368 0.903707 6.42865 0.999023 6.25 0.999023H1.5V8.99902H8.5V4.49902C8.5 4.32037 8.59532 4.15534 8.75 4.06602C8.90468 3.97669 9.09532 3.97669 9.25 4.06602C9.40468 4.15534 9.5 4.32037 9.5 4.49902V9.49902C9.5 9.63164 9.44733 9.75882 9.35355 9.85257C9.2598 9.94636 9.13262 9.99902 9 9.99902Z"fill=currentColor></path><path d="M7.5 8.24902H2.5C2.32135 8.24902 2.15632 8.15371 2.06699 7.99902C1.97767 7.84434 1.97767 7.65371 2.06699 7.49902C2.15632 7.34434 2.32135 7.24902 2.5 7.24902H7.5C7.67865 7.24902 7.84368 7.34434 7.93301 7.49902C8.02233 7.65371 8.02233 7.84434 7.93301 7.99902C7.84368 8.15371 7.67865 8.24902 7.5 8.24902Z"fill=currentColor></path><path d="M4.75 6.49901C4.61709 6.49979 4.48936 6.44761 4.39498 6.35403L2.89498 4.85403C2.76816 4.72717 2.71865 4.54235 2.76507 4.36907C2.81149 4.19583 2.94681 4.06051 3.12005 4.01409C3.29332 3.96767 3.47816 4.01718 3.60501 4.14401L4.73001 5.269L8.37501 1.16901C8.46056 1.06279 8.58578 0.996155 8.72169 0.984497C8.8576 0.972843 8.99233 1.01718 9.09474 1.10728C9.19712 1.19738 9.25825 1.32541 9.26398 1.46167C9.26968 1.59796 9.21948 1.73065 9.12502 1.82902L5.12502 6.32902C5.03371 6.43306 4.90337 6.49461 4.76502 6.49901L4.75 6.49901Z"fill=currentColor></path></g><defs><clipPath id=clip0_3445_1172><rect width=10 height=10 fill=white transform="translate(0 -0.000976562)">`);
1326
1418
  var MarkAsRead = (props) => {
1327
1419
  return (() => {
1328
1420
  var _el$ = _tmpl$12();
@@ -1338,7 +1430,7 @@ var MarkAsUnarchived = (props) => {
1338
1430
  return _el$;
1339
1431
  })();
1340
1432
  };
1341
- var _tmpl$14 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><path stroke=currentColor stroke-linecap=round stroke-miterlimit=1 d="M9.8 3.5H4.5a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V6.2"></path><circle cx=12.25 cy=3.75 r=1.25 fill=currentColor>`);
1433
+ var _tmpl$14 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 11 11"fill=none xmlns=http://www.w3.org/2000/svg><path d="M6.8 1.49902H1.5C0.947715 1.49902 0.5 1.94674 0.5 2.49902V9.49902C0.5 10.0513 0.947715 10.499 1.5 10.499H8.5C9.05228 10.499 9.5 10.0513 9.5 9.49902V4.19902"stroke=currentColor stroke-miterlimit=1 stroke-linecap=round></path><circle cx=9.25 cy=1.74902 r=1.25 fill=currentColor>`);
1342
1434
  var MarkAsUnread = (props) => {
1343
1435
  return (() => {
1344
1436
  var _el$ = _tmpl$14();
@@ -1378,7 +1470,7 @@ var Sms = (props) => {
1378
1470
  return _el$;
1379
1471
  })();
1380
1472
  };
1381
- var _tmpl$19 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><path fill=currentColor d="M4.012 4.348C4.062 4.145 4.266 4 4.5 4h7c.234 0 .437.145.488.348l1 4a.398.398 0 0 1 .012.096v3.112c0 .245-.224.444-.5.444h-9c-.276 0-.5-.199-.5-.444V8.444c0-.032.004-.064.012-.096l1-4Zm.89.54L4.122 8H6.5c0 .736.672 1.333 1.5 1.333S9.5 8.736 9.5 8h2.377l-.778-3.111H4.9Zm5.39 4c-.386.786-1.267 1.334-2.292 1.334S6.094 9.674 5.708 8.89H4v2.222h8V8.89h-1.708Z">`);
1473
+ var _tmpl$19 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 8"fill=none xmlns=http://www.w3.org/2000/svg><path d="M1.0119 0.347055C1.06274 0.143703 1.26565 -0.000976562 1.5 -0.000976562H8.5C8.73435 -0.000976562 8.93725 0.143703 8.9881 0.347055L9.9881 4.34707C9.996 4.37871 10 4.41102 10 4.44347V7.55458C10 7.80005 9.77615 7.99902 9.5 7.99902H0.5C0.22386 7.99902 0 7.80005 0 7.55458V4.44347C0 4.41102 0.00399495 4.37871 0.011905 4.34707L1.0119 0.347055ZM1.90108 0.887912L1.12331 3.99902H3.5C3.5 4.73542 4.17155 5.33236 5 5.33236C5.82845 5.33236 6.5 4.73542 6.5 3.99902H8.8767L8.0989 0.887912H1.90108ZM7.292 4.88791C6.9062 5.67276 6.02515 6.22125 5 6.22125C3.97484 6.22125 3.0938 5.67276 2.70802 4.88791H1V7.11013H9V4.88791H7.292Z"fill=currentColor>`);
1382
1474
  var UnreadRead = (props) => {
1383
1475
  return (() => {
1384
1476
  var _el$ = _tmpl$19();
@@ -1558,7 +1650,8 @@ var PopoverClose = (props) => {
1558
1650
  const {
1559
1651
  onClose
1560
1652
  } = usePopover();
1561
- const [local, rest] = solidJs.splitProps(props, ["onClick", "asChild"]);
1653
+ const style = useStyle();
1654
+ const [local, rest] = solidJs.splitProps(props, ["onClick", "asChild", "appearanceKey", "class"]);
1562
1655
  const handleClick = (e) => {
1563
1656
  if (typeof local.onClick === "function") {
1564
1657
  local.onClick(e);
@@ -1576,38 +1669,41 @@ var PopoverClose = (props) => {
1576
1669
  return (() => {
1577
1670
  var _el$ = _tmpl$24();
1578
1671
  _el$.$$click = handleClick;
1579
- web.spread(_el$, rest, false, false);
1672
+ web.spread(_el$, web.mergeProps({
1673
+ get ["class"]() {
1674
+ return style(local.appearanceKey || "popoverClose", local.class);
1675
+ }
1676
+ }, rest), false, false);
1580
1677
  return _el$;
1581
1678
  })();
1582
1679
  };
1583
1680
  web.delegateEvents(["click"]);
1584
1681
  var _tmpl$25 = /* @__PURE__ */ web.template(`<div>`);
1585
- var Root = (props) => {
1586
- const [_, rest] = solidJs.splitProps(props, ["class"]);
1587
- const {
1588
- id
1589
- } = useAppearance();
1590
- const style = useStyle();
1591
- const {
1592
- hideBranding
1593
- } = useInboxContext();
1594
- return [web.createComponent(solidJs.Show, {
1595
- get when() {
1596
- return !hideBranding();
1597
- },
1598
- children: new Comment(" Powered by Novu - https://novu.co ")
1599
- }), (() => {
1682
+ var Portal = (props) => {
1683
+ const appearance = useAppearance();
1684
+ let currentElement;
1685
+ return [(() => {
1600
1686
  var _el$ = _tmpl$25();
1601
- web.spread(_el$, web.mergeProps({
1602
- get id() {
1603
- return `novu-root-${id()}`;
1604
- },
1605
- get ["class"]() {
1606
- return style("root"), cn("novu", id(), "nt-text-foreground nt-h-full");
1607
- }
1608
- }, rest), false, false);
1687
+ web.use((el) => {
1688
+ currentElement = el;
1689
+ }, _el$);
1690
+ _el$.style.setProperty("display", "none");
1609
1691
  return _el$;
1610
- })()];
1692
+ })(), web.createComponent(web.Portal, web.mergeProps({
1693
+ get mount() {
1694
+ return closestNovuRootParent(currentElement, appearance.id());
1695
+ }
1696
+ }, props))];
1697
+ };
1698
+ var closestNovuRootParent = (el, id) => {
1699
+ let element = el;
1700
+ while (element && element.id !== `novu-root-${id}`) {
1701
+ element = element.parentElement;
1702
+ }
1703
+ if (element && element.id === `novu-root-${id}`) {
1704
+ return element;
1705
+ }
1706
+ return void 0;
1611
1707
  };
1612
1708
  var PopoverContext = solidJs.createContext(void 0);
1613
1709
  function PopoverRoot(props) {
@@ -1624,7 +1720,7 @@ function PopoverRoot(props) {
1624
1720
  const [reference, setReference] = solidJs.createSignal(null);
1625
1721
  const [floating, setFloating] = solidJs.createSignal(null);
1626
1722
  const position = solidFloatingUi.useFloating(reference, floating, {
1627
- strategy: "fixed",
1723
+ strategy: "absolute",
1628
1724
  placement: props.placement,
1629
1725
  whileElementsMounted: dom.autoUpdate,
1630
1726
  middleware: [dom.offset(10), dom.flip({
@@ -1671,7 +1767,7 @@ function usePopover() {
1671
1767
 
1672
1768
  // src/ui/components/primitives/Popover/PopoverContent.tsx
1673
1769
  var _tmpl$26 = /* @__PURE__ */ web.template(`<div>`);
1674
- var popoverContentVariants = () => cn("nt-w-[400px] nt-h-[600px] nt-rounded-xl nt-bg-background", "nt-shadow-popover nt-animate-in nt-slide-in-from-top-2 nt-fade-in nt-z-10 nt-cursor-default nt-flex nt-flex-col nt-overflow-hidden nt-border nt-border-border");
1770
+ var popoverContentVariants = () => cn("nt-w-[400px] nt-h-[600px] nt-rounded-xl nt-bg-background", "nt-shadow-popover nt-animate-in nt-slide-in-from-top-2 nt-fade-in nt-cursor-default nt-flex nt-flex-col nt-overflow-hidden nt-border nt-border-border nt-z-10");
1675
1771
  var PopoverContentBody = (props) => {
1676
1772
  const {
1677
1773
  open,
@@ -1697,7 +1793,7 @@ var PopoverContentBody = (props) => {
1697
1793
  web.use(setFloating, _el$);
1698
1794
  web.spread(_el$, web.mergeProps({
1699
1795
  get ["class"]() {
1700
- return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "popoverContent", popoverContentVariants());
1796
+ return style(local.appearanceKey || "popoverContent", cn(popoverContentVariants(), local.class));
1701
1797
  },
1702
1798
  get style() {
1703
1799
  return floatingStyles();
@@ -1710,7 +1806,6 @@ var PopoverContentBody = (props) => {
1710
1806
  })();
1711
1807
  };
1712
1808
  var PopoverContent = (props) => {
1713
- const [local, rest] = solidJs.splitProps(props, ["portal"]);
1714
1809
  const {
1715
1810
  open,
1716
1811
  onClose,
@@ -1751,28 +1846,26 @@ var PopoverContent = (props) => {
1751
1846
  return open();
1752
1847
  },
1753
1848
  get children() {
1754
- return web.createComponent(solidJs.Show, {
1755
- get when() {
1756
- return local.portal;
1757
- },
1758
- get fallback() {
1759
- return web.createComponent(PopoverContentBody, rest);
1760
- },
1849
+ return web.createComponent(Portal, {
1761
1850
  get children() {
1762
- return web.createComponent(web.Portal, {
1763
- get children() {
1764
- return web.createComponent(Root, {
1765
- get children() {
1766
- return web.createComponent(PopoverContentBody, rest);
1767
- }
1768
- });
1769
- }
1770
- });
1851
+ return web.createComponent(PopoverContentBody, props);
1771
1852
  }
1772
1853
  });
1773
1854
  }
1774
1855
  });
1775
1856
  };
1857
+
1858
+ // src/ui/helpers/mergeRefs.ts
1859
+ function chain(callbacks) {
1860
+ return (...args) => {
1861
+ for (const callback of callbacks) callback && callback(...args);
1862
+ };
1863
+ }
1864
+ function mergeRefs(...refs) {
1865
+ return chain(refs);
1866
+ }
1867
+
1868
+ // src/ui/components/primitives/Popover/PopoverTrigger.tsx
1776
1869
  var _tmpl$27 = /* @__PURE__ */ web.template(`<button>`);
1777
1870
  var PopoverTrigger = (props) => {
1778
1871
  const {
@@ -1780,26 +1873,31 @@ var PopoverTrigger = (props) => {
1780
1873
  onToggle
1781
1874
  } = usePopover();
1782
1875
  const style = useStyle();
1783
- const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick"]);
1876
+ const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "ref"]);
1784
1877
  const handleClick = (e) => {
1785
1878
  if (typeof local.onClick === "function") {
1786
1879
  local.onClick(e);
1787
1880
  }
1788
1881
  onToggle();
1789
1882
  };
1883
+ const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
1790
1884
  if (local.asChild) {
1791
1885
  return web.createComponent(web.Dynamic, web.mergeProps({
1792
1886
  get component() {
1793
1887
  return local.asChild;
1794
1888
  },
1795
- ref: setReference,
1889
+ ref(r$) {
1890
+ var _ref$ = ref();
1891
+ typeof _ref$ === "function" && _ref$(r$);
1892
+ },
1796
1893
  onClick: handleClick
1797
1894
  }, rest));
1798
1895
  }
1799
1896
  return (() => {
1800
1897
  var _el$ = _tmpl$27();
1801
1898
  _el$.$$click = handleClick;
1802
- web.use(setReference, _el$);
1899
+ var _ref$2 = ref();
1900
+ typeof _ref$2 === "function" && web.use(_ref$2, _el$);
1803
1901
  web.spread(_el$, web.mergeProps({
1804
1902
  get ["class"]() {
1805
1903
  return style(local.appearanceKey || "dropdownTrigger");
@@ -1829,26 +1927,44 @@ var Popover = {
1829
1927
  */
1830
1928
  Close: PopoverClose
1831
1929
  };
1832
- var dropdownContentVariants = () => "nt-w-max nt-rounded-xl nt-border nt-border-border nt-p-1 nt-text-sm nt-overflow-hidden nt-flex nt-flex-col nt-min-w-52 nt-shadow-dropdown nt-z-10 nt-bg-background nt-animate-in nt-slide-in-from-top-2 nt-fade-in";
1930
+ var dropdownContentVariants = () => "nt-p-1 nt-text-sm nt-min-w-52 nt-shadow-dropdown nt-h-fit nt-min-w-52 nt-w-max";
1833
1931
  var DropdownContent = (props) => {
1834
- const style = useStyle();
1835
- const [local, rest] = solidJs.splitProps(props, ["appearanceKey"]);
1932
+ const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "class"]);
1836
1933
  return web.createComponent(Popover.Content, web.mergeProps({
1934
+ get appearanceKey() {
1935
+ return local.appearanceKey || "dropdownContent";
1936
+ },
1837
1937
  get ["class"]() {
1838
- return style(local.appearanceKey || "dropdownContent", dropdownContentVariants());
1938
+ return cn(dropdownContentVariants(), local.class);
1839
1939
  }
1840
1940
  }, rest));
1841
1941
  };
1842
- var dropdownItemVariants = () => "focus:nt-outline-none nt-text-sm nt-rounded-lg nt-items-center hover:nt-bg-neutral-alpha-50 focus-visible:nt-bg-neutral-alpha-50 nt-py-1 nt-px-2";
1942
+ var dropdownItemVariants = () => "focus:nt-outline-none nt-flex nt-items-center nt-gap-1.5 nt-text-sm nt-rounded-lg nt-items-center hover:nt-bg-neutral-alpha-50 focus-visible:nt-bg-neutral-alpha-50 nt-py-1 nt-px-2";
1843
1943
  var DropdownItem = (props) => {
1844
- const style = useStyle();
1845
- const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "onClick", "class"]);
1944
+ const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "onClick", "class", "asChild"]);
1846
1945
  const {
1847
1946
  onClose
1848
1947
  } = usePopover();
1948
+ const handleClick = (e) => {
1949
+ if (typeof local.onClick === "function") {
1950
+ local.onClick(e);
1951
+ }
1952
+ onClose();
1953
+ };
1954
+ if (local.asChild) {
1955
+ return web.createComponent(web.Dynamic, web.mergeProps({
1956
+ get component() {
1957
+ return local.asChild;
1958
+ },
1959
+ onClick: handleClick
1960
+ }, rest));
1961
+ }
1849
1962
  return web.createComponent(Popover.Close, web.mergeProps({
1963
+ get appearanceKey() {
1964
+ return local.appearanceKey || "dropdownItem";
1965
+ },
1850
1966
  get ["class"]() {
1851
- return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "dropdownItem", dropdownItemVariants());
1967
+ return cn(dropdownItemVariants(), local.class);
1852
1968
  },
1853
1969
  onClick: (e) => {
1854
1970
  if (typeof local.onClick === "function") {
@@ -1867,10 +1983,10 @@ var DropdownRoot = (props) => {
1867
1983
  var dropdownTriggerButtonVariants = () => `nt-relative nt-transition nt-outline-none focus-visible:nt-outline-nonefocus-visible:nt-ring-2 focus-visible:nt-ring-primary focus-visible:nt-ring-offset-2`;
1868
1984
  var DropdownTrigger = (props) => {
1869
1985
  const style = useStyle();
1870
- const [local, rest] = solidJs.splitProps(props, ["appearanceKey"]);
1986
+ const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "class"]);
1871
1987
  return web.createComponent(Popover.Trigger, web.mergeProps({
1872
1988
  get ["class"]() {
1873
- return style(local.appearanceKey || "dropdownTrigger", dropdownTriggerButtonVariants());
1989
+ return style(local.appearanceKey || "dropdownTrigger", cn(dropdownTriggerButtonVariants(), local.class));
1874
1990
  }
1875
1991
  }, rest));
1876
1992
  };
@@ -2125,27 +2241,50 @@ var Tabs = {
2125
2241
  var notificationStatusOptionsLocalizationKeys = {
2126
2242
  unreadRead: "inbox.filters.dropdownOptions.default",
2127
2243
  unread: "inbox.filters.dropdownOptions.unread",
2128
- archived: "inbox.filters.dropdownOptions.archived"
2244
+ archived: "inbox.filters.dropdownOptions.archived",
2245
+ snoozed: "inbox.filters.dropdownOptions.snoozed"
2129
2246
  };
2130
2247
  var inboxFilterLocalizationKeys = {
2131
2248
  unreadRead: "inbox.filters.labels.default",
2132
2249
  unread: "inbox.filters.labels.unread",
2133
- archived: "inbox.filters.labels.archived"
2250
+ archived: "inbox.filters.labels.archived",
2251
+ snoozed: "inbox.filters.labels.snoozed"
2252
+ };
2253
+ var _tmpl$31 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 12 12"fill=none xmlns=http://www.w3.org/2000/svg><path d="M6 2.99902V5.99902H8.25M11 5.99902C11 8.76045 8.76142 10.999 6 10.999C3.23858 10.999 1 8.76045 1 5.99902C1 3.2376 3.23858 0.999023 6 0.999023C8.76142 0.999023 11 3.2376 11 5.99902Z"stroke=currentColor stroke-linecap=round stroke-linejoin=round>`);
2254
+ var Snooze = (props) => {
2255
+ return (() => {
2256
+ var _el$ = _tmpl$31();
2257
+ web.spread(_el$, props, true, true);
2258
+ return _el$;
2259
+ })();
2134
2260
  };
2135
- var _tmpl$31 = /* @__PURE__ */ web.template(`<span><span></span><span>`);
2261
+
2262
+ // src/ui/components/elements/InboxStatus/InboxStatusOptions.tsx
2263
+ var _tmpl$33 = /* @__PURE__ */ web.template(`<span><span></span><span>`);
2136
2264
  var cases = [{
2137
2265
  status: "unreadRead" /* UNREAD_READ */,
2138
2266
  icon: UnreadRead
2139
2267
  }, {
2140
2268
  status: "unread" /* UNREAD */,
2141
2269
  icon: MarkAsUnread
2270
+ }, {
2271
+ status: "snoozed" /* SNOOZED */,
2272
+ icon: Snooze
2142
2273
  }, {
2143
2274
  status: "archived" /* ARCHIVED */,
2144
2275
  icon: MarkAsArchived
2145
2276
  }];
2146
2277
  var StatusOptions = (props) => {
2278
+ const {
2279
+ isSnoozeEnabled
2280
+ } = useInboxContext();
2281
+ const filteredCases = () => {
2282
+ return cases.filter((c) => c.status !== "snoozed" /* SNOOZED */ || isSnoozeEnabled());
2283
+ };
2147
2284
  return web.createComponent(solidJs.For, {
2148
- each: cases,
2285
+ get each() {
2286
+ return filteredCases();
2287
+ },
2149
2288
  children: (c) => web.createComponent(StatusItem, {
2150
2289
  get localizationKey() {
2151
2290
  return notificationStatusOptionsLocalizationKeys[c.status];
@@ -2176,11 +2315,11 @@ var StatusItem = (props) => {
2176
2315
  },
2177
2316
  get children() {
2178
2317
  return [(() => {
2179
- var _el$ = _tmpl$31(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
2318
+ var _el$ = _tmpl$33(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
2180
2319
  web.insert(_el$2, () => props.icon());
2181
2320
  web.insert(_el$3, () => t(props.localizationKey));
2182
2321
  web.effect((_p$) => {
2183
- var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = style("inboxStatus__dropdownItemLeft__icon", "nt-size-4"), _v$3 = props.localizationKey, _v$4 = style("inboxStatus__dropdownItemLabel", "nt-leading-none");
2322
+ var _v$ = style("inboxStatus__dropdownItemLabelContainer", "nt-flex nt-gap-2 nt-items-center"), _v$2 = style("inboxStatus__dropdownItemLeft__icon", "nt-size-3"), _v$3 = props.localizationKey, _v$4 = style("inboxStatus__dropdownItemLabel", "nt-leading-none");
2184
2323
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
2185
2324
  _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
2186
2325
  _v$3 !== _p$.a && web.setAttribute(_el$3, "data-localization", _p$.a = _v$3);
@@ -2210,7 +2349,7 @@ var StatusItem = (props) => {
2210
2349
  };
2211
2350
 
2212
2351
  // src/ui/components/elements/InboxStatus/InboxStatusDropdown.tsx
2213
- var _tmpl$33 = /* @__PURE__ */ web.template(`<span>`);
2352
+ var _tmpl$34 = /* @__PURE__ */ web.template(`<span>`);
2214
2353
  var StatusDropdown = () => {
2215
2354
  const style = useStyle();
2216
2355
  const {
@@ -2235,7 +2374,7 @@ var StatusDropdown = () => {
2235
2374
  }, triggerProps, {
2236
2375
  get children() {
2237
2376
  return [(() => {
2238
- var _el$ = _tmpl$33();
2377
+ var _el$ = _tmpl$34();
2239
2378
  web.insert(_el$, () => t(inboxFilterLocalizationKeys[status()]));
2240
2379
  web.effect((_p$) => {
2241
2380
  var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-base");
@@ -2313,7 +2452,7 @@ var useNotificationsInfiniteScroll = (props) => {
2313
2452
  );
2314
2453
  solidJs.onMount(() => {
2315
2454
  const listener = ({ data: data2 }) => {
2316
- if (!data2 || !chunkWONVNOTK_js.isSameFilter(filter, data2.filter)) {
2455
+ if (!data2 || !chunkKIOGWIKT_js.isSameFilter(filter, data2.filter)) {
2317
2456
  return;
2318
2457
  }
2319
2458
  mutate({ data: data2.notifications, hasMore: data2.hasMore });
@@ -2323,7 +2462,7 @@ var useNotificationsInfiniteScroll = (props) => {
2323
2462
  });
2324
2463
  solidJs.createEffect(() => chunk7B52C2XE_js.__async(void 0, null, function* () {
2325
2464
  const newFilter = chunk7B52C2XE_js.__spreadValues({}, props.options());
2326
- if (chunkWONVNOTK_js.isSameFilter(filter, newFilter)) {
2465
+ if (chunkKIOGWIKT_js.isSameFilter(filter, newFilter)) {
2327
2466
  return;
2328
2467
  }
2329
2468
  novu.notifications.clearCache();
@@ -2380,7 +2519,7 @@ var useReadAll = (props) => {
2380
2519
  };
2381
2520
 
2382
2521
  // src/ui/components/elements/Header/MoreActionsOptions.tsx
2383
- var _tmpl$34 = /* @__PURE__ */ web.template(`<span>`);
2522
+ var _tmpl$35 = /* @__PURE__ */ web.template(`<span>`);
2384
2523
  var MoreActionsOptions = () => {
2385
2524
  const {
2386
2525
  filter
@@ -2428,12 +2567,12 @@ var ActionsItem = (props) => {
2428
2567
  },
2429
2568
  get children() {
2430
2569
  return [(() => {
2431
- var _el$ = _tmpl$34();
2570
+ var _el$ = _tmpl$35();
2432
2571
  web.insert(_el$, () => props.icon());
2433
- web.effect(() => web.className(_el$, style("moreActions__dropdownItemLeft__icon", "nt-size-4")));
2572
+ web.effect(() => web.className(_el$, style("moreActions__dropdownItemLeft__icon", "nt-size-3")));
2434
2573
  return _el$;
2435
2574
  })(), (() => {
2436
- var _el$2 = _tmpl$34();
2575
+ var _el$2 = _tmpl$35();
2437
2576
  web.insert(_el$2, () => t(props.localizationKey));
2438
2577
  web.effect((_p$) => {
2439
2578
  var _v$ = props.localizationKey, _v$2 = style("moreActions__dropdownItemLabel", "nt-leading-none");
@@ -2458,7 +2597,7 @@ var MoreActionsDropdown = () => {
2458
2597
  } = useInboxContext();
2459
2598
  return web.createComponent(solidJs.Show, {
2460
2599
  get when() {
2461
- return status() !== "archived" /* ARCHIVED */;
2600
+ return web.memo(() => status() !== "archived" /* ARCHIVED */)() && status() !== "snoozed" /* SNOOZED */;
2462
2601
  },
2463
2602
  get children() {
2464
2603
  return web.createComponent(Dropdown.Root, {
@@ -2492,11 +2631,11 @@ var MoreActionsDropdown = () => {
2492
2631
  };
2493
2632
 
2494
2633
  // src/ui/components/elements/Header/ActionsContainer.tsx
2495
- var _tmpl$35 = /* @__PURE__ */ web.template(`<div>`);
2634
+ var _tmpl$36 = /* @__PURE__ */ web.template(`<div>`);
2496
2635
  var ActionsContainer = (props) => {
2497
2636
  const style = useStyle();
2498
2637
  return (() => {
2499
- var _el$ = _tmpl$35();
2638
+ var _el$ = _tmpl$36();
2500
2639
  web.insert(_el$, web.createComponent(MoreActionsDropdown, {}), null);
2501
2640
  web.insert(_el$, web.createComponent(solidJs.Show, {
2502
2641
  get when() {
@@ -2524,11 +2663,11 @@ var ActionsContainer = (props) => {
2524
2663
  };
2525
2664
 
2526
2665
  // src/ui/components/elements/Header/Header.tsx
2527
- var _tmpl$36 = /* @__PURE__ */ web.template(`<div>`);
2666
+ var _tmpl$37 = /* @__PURE__ */ web.template(`<div>`);
2528
2667
  var Header = (props) => {
2529
2668
  const style = useStyle();
2530
2669
  return (() => {
2531
- var _el$ = _tmpl$36();
2670
+ var _el$ = _tmpl$37();
2532
2671
  web.insert(_el$, web.createComponent(StatusDropdown, {}), null);
2533
2672
  web.insert(_el$, web.createComponent(ActionsContainer, {
2534
2673
  get showPreferences() {
@@ -2539,7 +2678,35 @@ var Header = (props) => {
2539
2678
  return _el$;
2540
2679
  })();
2541
2680
  };
2542
- var _tmpl$37 = /* @__PURE__ */ web.template(`<div>`);
2681
+ var _tmpl$38 = /* @__PURE__ */ web.template(`<div>`);
2682
+ var Root = (props) => {
2683
+ const [_, rest] = solidJs.splitProps(props, ["class"]);
2684
+ const {
2685
+ id
2686
+ } = useAppearance();
2687
+ const style = useStyle();
2688
+ const {
2689
+ hideBranding
2690
+ } = useInboxContext();
2691
+ return [web.createComponent(solidJs.Show, {
2692
+ get when() {
2693
+ return !hideBranding();
2694
+ },
2695
+ children: new Comment(" Powered by Novu - https://novu.co ")
2696
+ }), (() => {
2697
+ var _el$ = _tmpl$38();
2698
+ web.spread(_el$, web.mergeProps({
2699
+ get id() {
2700
+ return `novu-root-${id()}`;
2701
+ },
2702
+ get ["class"]() {
2703
+ return style("root"), cn("novu", id(), "nt-text-foreground nt-h-full");
2704
+ }
2705
+ }, rest), false, false);
2706
+ return _el$;
2707
+ })()];
2708
+ };
2709
+ var _tmpl$39 = /* @__PURE__ */ web.template(`<div>`);
2543
2710
  var Collapsible = (props) => {
2544
2711
  const style = useStyle();
2545
2712
  let contentRef;
@@ -2548,7 +2715,7 @@ var Collapsible = (props) => {
2548
2715
  requestAnimationFrame(() => setEnableTransition(true));
2549
2716
  });
2550
2717
  return (() => {
2551
- var _el$ = _tmpl$37();
2718
+ var _el$ = _tmpl$39();
2552
2719
  var _ref$ = contentRef;
2553
2720
  typeof _ref$ === "function" ? web.use(_ref$, _el$) : contentRef = _el$;
2554
2721
  web.spread(_el$, web.mergeProps({
@@ -2567,11 +2734,11 @@ var Collapsible = (props) => {
2567
2734
  return _el$;
2568
2735
  })();
2569
2736
  };
2570
- var _tmpl$38 = /* @__PURE__ */ web.template(`<label><input type=checkbox class="nt-peer nt-sr-only"><div>`);
2737
+ var _tmpl$40 = /* @__PURE__ */ web.template(`<label><input type=checkbox class="nt-peer nt-sr-only"><div>`);
2571
2738
  var Switch = (props) => {
2572
2739
  const style = useStyle();
2573
2740
  return (() => {
2574
- var _el$ = _tmpl$38(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
2741
+ var _el$ = _tmpl$40(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
2575
2742
  _el$2.addEventListener("change", (e) => {
2576
2743
  props.onChange(e.target.checked);
2577
2744
  });
@@ -2592,7 +2759,7 @@ var Switch = (props) => {
2592
2759
  };
2593
2760
 
2594
2761
  // src/ui/components/elements/Preferences/ChannelRow.tsx
2595
- var _tmpl$39 = /* @__PURE__ */ web.template(`<div><div><div></div><span></span></div><div>`);
2762
+ var _tmpl$41 = /* @__PURE__ */ web.template(`<div><div><div></div><span></span></div><div>`);
2596
2763
  var ChannelRow = (props) => {
2597
2764
  const style = useStyle();
2598
2765
  const updatePreference = (enabled) => chunk7B52C2XE_js.__async(void 0, null, function* () {
@@ -2606,7 +2773,7 @@ var ChannelRow = (props) => {
2606
2773
  yield updatePreference(checked);
2607
2774
  });
2608
2775
  return (() => {
2609
- var _el$ = _tmpl$39(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
2776
+ var _el$ = _tmpl$41(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
2610
2777
  web.insert(_el$3, web.createComponent(ChannelIcon, {
2611
2778
  appearanceKey: "channel__icon",
2612
2779
  get channel() {
@@ -2692,12 +2859,12 @@ var getLabel = (channel) => {
2692
2859
  return "";
2693
2860
  }
2694
2861
  };
2695
- var _tmpl$40 = /* @__PURE__ */ web.template(`<div>`);
2862
+ var _tmpl$43 = /* @__PURE__ */ web.template(`<div>`);
2696
2863
  var _tmpl$211 = /* @__PURE__ */ web.template(`<div><div></div><div>`);
2697
2864
  var SkeletonText = (props) => {
2698
2865
  const style = useStyle();
2699
2866
  return (() => {
2700
- var _el$ = _tmpl$40();
2867
+ var _el$ = _tmpl$43();
2701
2868
  web.effect(() => web.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))));
2702
2869
  return _el$;
2703
2870
  })();
@@ -2705,7 +2872,7 @@ var SkeletonText = (props) => {
2705
2872
  var SkeletonAvatar = (props) => {
2706
2873
  const style = useStyle();
2707
2874
  return (() => {
2708
- var _el$2 = _tmpl$40();
2875
+ var _el$2 = _tmpl$43();
2709
2876
  web.effect(() => web.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))));
2710
2877
  return _el$2;
2711
2878
  })();
@@ -2730,7 +2897,7 @@ var SkeletonSwitch = (props) => {
2730
2897
  };
2731
2898
 
2732
2899
  // src/ui/components/elements/Preferences/PreferencesListSkeleton.tsx
2733
- var _tmpl$41 = /* @__PURE__ */ web.template(`<div>`);
2900
+ var _tmpl$44 = /* @__PURE__ */ web.template(`<div>`);
2734
2901
  var channelIcons = [InApp, Email, Sms, Push, Chat];
2735
2902
  var PreferencesListSkeleton = (props) => {
2736
2903
  const style = useStyle();
@@ -2738,7 +2905,7 @@ var PreferencesListSkeleton = (props) => {
2738
2905
  t
2739
2906
  } = useLocalization();
2740
2907
  return (() => {
2741
- var _el$ = _tmpl$41();
2908
+ var _el$ = _tmpl$44();
2742
2909
  web.insert(_el$, web.createComponent(Motion.div, {
2743
2910
  get animate() {
2744
2911
  return {
@@ -2780,7 +2947,7 @@ var PreferencesListSkeleton = (props) => {
2780
2947
  return style("preferencesList__skeletonIcon", "nt-size-8 nt-p-2 nt-rounded-lg nt-bg-neutral-alpha-100");
2781
2948
  }
2782
2949
  }), (() => {
2783
- var _el$3 = _tmpl$41();
2950
+ var _el$3 = _tmpl$44();
2784
2951
  web.insert(_el$3, web.createComponent(SkeletonText, {
2785
2952
  appearanceKey: "notificationList__skeletonText",
2786
2953
  "class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
@@ -2798,7 +2965,7 @@ var PreferencesListSkeleton = (props) => {
2798
2965
  }
2799
2966
  });
2800
2967
  })), (() => {
2801
- var _el$2 = _tmpl$41();
2968
+ var _el$2 = _tmpl$44();
2802
2969
  web.effect(() => web.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")));
2803
2970
  return _el$2;
2804
2971
  })()];
@@ -2843,7 +3010,7 @@ var PreferencesListSkeleton = (props) => {
2843
3010
  };
2844
3011
 
2845
3012
  // src/ui/components/elements/Preferences/Preferences.tsx
2846
- var _tmpl$43 = /* @__PURE__ */ web.template(`<div>`);
3013
+ var _tmpl$45 = /* @__PURE__ */ web.template(`<div>`);
2847
3014
  var _tmpl$212 = /* @__PURE__ */ web.template(`<span>`);
2848
3015
  var _tmpl$310 = /* @__PURE__ */ web.template(`<div><div><div><div></div></div><span>`);
2849
3016
  var Preferences = () => {
@@ -2892,7 +3059,7 @@ var Preferences = () => {
2892
3059
  });
2893
3060
  });
2894
3061
  return (() => {
2895
- var _el$ = _tmpl$43();
3062
+ var _el$ = _tmpl$45();
2896
3063
  web.insert(_el$, web.createComponent(PreferencesRow, {
2897
3064
  localizationKey: "preferences.global",
2898
3065
  get channels() {
@@ -2971,7 +3138,7 @@ var WorkflowDescription = (props) => {
2971
3138
  return channels.map((c, index) => [c, web.memo(() => index < channels.length - 1 && ", ")]);
2972
3139
  };
2973
3140
  return (() => {
2974
- var _el$3 = _tmpl$43();
3141
+ var _el$3 = _tmpl$45();
2975
3142
  web.insert(_el$3, channelNames);
2976
3143
  web.effect(() => web.className(_el$3, style(props.appearanceKey, cn("nt-text-sm nt-text-foreground-alpha-600 nt-text-start", props.class))));
2977
3144
  return _el$3;
@@ -3020,7 +3187,7 @@ var PreferencesRow = (props) => {
3020
3187
  return isOpenChannels();
3021
3188
  },
3022
3189
  get children() {
3023
- var _el$9 = _tmpl$43();
3190
+ var _el$9 = _tmpl$45();
3024
3191
  web.insert(_el$9, web.createComponent(solidJs.For, {
3025
3192
  get each() {
3026
3193
  return channels();
@@ -3070,14 +3237,14 @@ var PreferencesRow = (props) => {
3070
3237
  });
3071
3238
  };
3072
3239
  web.delegateEvents(["click"]);
3073
- var _tmpl$44 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
3240
+ var _tmpl$46 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
3074
3241
  var PreferencesHeader = (props) => {
3075
3242
  const style = useStyle();
3076
3243
  const {
3077
3244
  t
3078
3245
  } = useLocalization();
3079
3246
  return (() => {
3080
- var _el$ = _tmpl$44(), _el$2 = _el$.firstChild;
3247
+ var _el$ = _tmpl$46(), _el$2 = _el$.firstChild;
3081
3248
  web.insert(_el$, web.createComponent(solidJs.Show, {
3082
3249
  get when() {
3083
3250
  return props.navigateToNotifications;
@@ -3141,20 +3308,28 @@ var useTabsDropdown = ({ tabs }) => {
3141
3308
  });
3142
3309
  return { dropdownTabs, setTabsList, visibleTabs };
3143
3310
  };
3144
- var _tmpl$45 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 20 20"fill=none xmlns=http://www.w3.org/2000/svg><path d="M10.0001 10.879L13.7126 7.1665L14.7731 8.227L10.0001 13L5.22705 8.227L6.28755 7.1665L10.0001 10.879Z"fill=currentColor>`);
3311
+ var _tmpl$47 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 20 20"fill=none xmlns=http://www.w3.org/2000/svg><path d="M10.0001 10.879L13.7126 7.1665L14.7731 8.227L10.0001 13L5.22705 8.227L6.28755 7.1665L10.0001 10.879Z"fill=currentColor>`);
3145
3312
  var ArrowDown = (props) => {
3146
3313
  return (() => {
3147
- var _el$ = _tmpl$45();
3314
+ var _el$ = _tmpl$47();
3315
+ web.spread(_el$, props, true, true);
3316
+ return _el$;
3317
+ })();
3318
+ };
3319
+ var _tmpl$48 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 12 12"fill=none xmlns=http://www.w3.org/2000/svg><g clip-path=url(#clip0_3188_15050)><path d="M6 3V6L8 7M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z"stroke=currentColor stroke-linecap=round stroke-linejoin=round>`);
3320
+ var Clock = (props) => {
3321
+ return (() => {
3322
+ var _el$ = _tmpl$48();
3148
3323
  web.spread(_el$, props, true, true);
3149
3324
  return _el$;
3150
3325
  })();
3151
3326
  };
3152
- var _tmpl$46 = /* @__PURE__ */ web.template(`<strong>`);
3327
+ var _tmpl$49 = /* @__PURE__ */ web.template(`<strong>`);
3153
3328
  var _tmpl$213 = /* @__PURE__ */ web.template(`<p>`);
3154
3329
  var Bold = (props) => {
3155
3330
  const style = useStyle();
3156
3331
  return (() => {
3157
- var _el$ = _tmpl$46();
3332
+ var _el$ = _tmpl$49();
3158
3333
  web.insert(_el$, () => props.children);
3159
3334
  web.effect(() => web.className(_el$, style(props.appearanceKey || "strong", "nt-font-semibold")));
3160
3335
  return _el$;
@@ -3199,12 +3374,58 @@ var Markdown = (props) => {
3199
3374
  })();
3200
3375
  };
3201
3376
  var Markdown_default = Markdown;
3377
+ var _tmpl$50 = /* @__PURE__ */ web.template(`<span>`);
3378
+ var badgeVariants = classVarianceAuthority.cva(cn("nt-inline-flex nt-flex-row nt-gap-1 nt-items-center"), {
3379
+ variants: {
3380
+ variant: {
3381
+ secondary: "nt-bg-neutral-alpha-50"
3382
+ },
3383
+ size: {
3384
+ default: "nt-px-1 nt-py-px nt-rounded-sm nt-text-xs nt-px-1"
3385
+ }
3386
+ },
3387
+ defaultVariants: {
3388
+ variant: "secondary",
3389
+ size: "default"
3390
+ }
3391
+ });
3392
+ var Badge = (props) => {
3393
+ const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
3394
+ const style = useStyle();
3395
+ return (() => {
3396
+ var _el$ = _tmpl$50();
3397
+ web.spread(_el$, web.mergeProps({
3398
+ get ["data-variant"]() {
3399
+ return props.variant;
3400
+ },
3401
+ get ["data-size"]() {
3402
+ return props.size;
3403
+ },
3404
+ get ["class"]() {
3405
+ return style(local.appearanceKey || "badge", cn(badgeVariants({
3406
+ variant: props.variant,
3407
+ size: props.size
3408
+ }), local.class));
3409
+ }
3410
+ }, rest), false, false);
3411
+ return _el$;
3412
+ })();
3413
+ };
3414
+ var _tmpl$51 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 10 10"fill=none xmlns=http://www.w3.org/2000/svg><path d="M4.99992 2.91634V4.99967M4.79992 5.39616L3.27392 6.46553M1.66659 1.66634L8.33325 8.33301M9.16658 4.99967C9.16658 7.30086 7.30111 9.16634 4.99992 9.16634C2.69873 9.16634 0.833252 7.30086 0.833252 4.99967C0.833252 2.69849 2.69873 0.833008 4.99992 0.833008C7.30111 0.833008 9.16658 2.69849 9.16658 4.99967Z"stroke=currentColor stroke-linecap=round stroke-linejoin=round>`);
3415
+ var Unsnooze = (props) => {
3416
+ return (() => {
3417
+ var _el$ = _tmpl$51();
3418
+ web.spread(_el$, props, true, true);
3419
+ return _el$;
3420
+ })();
3421
+ };
3202
3422
  var TooltipContext = solidJs.createContext(void 0);
3203
3423
  function TooltipRoot(props) {
3204
3424
  const [reference, setReference] = solidJs.createSignal(null);
3205
3425
  const [floating, setFloating] = solidJs.createSignal(null);
3206
3426
  const position = solidFloatingUi.useFloating(reference, floating, {
3207
3427
  placement: props.placement || "top",
3428
+ strategy: "absolute",
3208
3429
  whileElementsMounted: dom.autoUpdate,
3209
3430
  middleware: [dom.offset(10), dom.flip({
3210
3431
  fallbackPlacements: props.fallbackPlacements || ["bottom"]
@@ -3245,7 +3466,7 @@ function useTooltip() {
3245
3466
  }
3246
3467
 
3247
3468
  // src/ui/components/primitives/Tooltip/TooltipContent.tsx
3248
- var _tmpl$47 = /* @__PURE__ */ web.template(`<div>`);
3469
+ var _tmpl$52 = /* @__PURE__ */ web.template(`<div>`);
3249
3470
  var tooltipContentVariants = () => "nt-bg-foreground nt-p-2 nt-shadow-tooltip nt-rounded-lg nt-text-background nt-text-xs";
3250
3471
  var TooltipContentBody = (props) => {
3251
3472
  const {
@@ -3268,7 +3489,7 @@ var TooltipContentBody = (props) => {
3268
3489
  });
3269
3490
  });
3270
3491
  return (() => {
3271
- var _el$ = _tmpl$47();
3492
+ var _el$ = _tmpl$52();
3272
3493
  web.use(setFloating, _el$);
3273
3494
  web.spread(_el$, web.mergeProps({
3274
3495
  get ["class"]() {
@@ -3307,37 +3528,50 @@ var TooltipContent = (props) => {
3307
3528
  }
3308
3529
  });
3309
3530
  };
3310
- var _tmpl$48 = /* @__PURE__ */ web.template(`<button>`);
3531
+ var _tmpl$53 = /* @__PURE__ */ web.template(`<button>`);
3311
3532
  var TooltipTrigger = (props) => {
3312
3533
  const {
3313
3534
  setReference,
3314
3535
  setOpen
3315
3536
  } = useTooltip();
3316
3537
  const style = useStyle();
3317
- const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick"]);
3538
+ const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "onMouseEnter", "onMouseLeave", "ref"]);
3539
+ const handleMouseEnter = (e) => {
3540
+ if (typeof local.onMouseEnter === "function") {
3541
+ local.onMouseEnter(e);
3542
+ }
3543
+ setOpen(true);
3544
+ };
3545
+ const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
3546
+ const handleMouseLeave = (e) => {
3547
+ if (typeof local.onMouseLeave === "function") {
3548
+ local.onMouseLeave(e);
3549
+ }
3550
+ setOpen(false);
3551
+ };
3318
3552
  if (local.asChild) {
3319
3553
  return web.createComponent(web.Dynamic, web.mergeProps({
3320
3554
  get component() {
3321
3555
  return local.asChild;
3322
3556
  },
3323
- ref: setReference,
3324
- onMouseEnter: () => {
3325
- setOpen(true);
3557
+ ref(r$) {
3558
+ var _ref$ = ref();
3559
+ typeof _ref$ === "function" && _ref$(r$);
3326
3560
  },
3327
- onMouseLeave: () => {
3328
- setOpen(false);
3329
- }
3561
+ onMouseEnter: handleMouseEnter,
3562
+ onMouseLeave: handleMouseLeave
3330
3563
  }, rest));
3331
3564
  }
3332
3565
  return (() => {
3333
- var _el$ = _tmpl$48();
3566
+ var _el$ = _tmpl$53();
3334
3567
  _el$.addEventListener("mouseleave", () => {
3335
3568
  setOpen(false);
3336
3569
  });
3337
3570
  _el$.addEventListener("mouseenter", () => {
3338
3571
  setOpen(true);
3339
3572
  });
3340
- web.use(setReference, _el$);
3573
+ var _ref$2 = ref();
3574
+ typeof _ref$2 === "function" && web.use(_ref$2, _el$);
3341
3575
  web.spread(_el$, web.mergeProps({
3342
3576
  get ["class"]() {
3343
3577
  return style(local.appearanceKey || "tooltipTrigger");
@@ -3360,75 +3594,1108 @@ var Tooltip = {
3360
3594
  */
3361
3595
  Content: TooltipContent
3362
3596
  };
3597
+ var _tmpl$54 = /* @__PURE__ */ web.template(`<svg viewBox="0 0 20 20"fill=none xmlns=http://www.w3.org/2000/svg><path d="M10.7957 10.0009L7.08325 6.2884L8.14375 5.2279L12.9168 10.0009L8.14375 14.7739L7.08325 13.7134L10.7957 10.0009Z"fill=currentColor>`);
3598
+ var ArrowRight = (props) => {
3599
+ return (() => {
3600
+ var _el$ = _tmpl$54();
3601
+ web.spread(_el$, props, true, true);
3602
+ return _el$;
3603
+ })();
3604
+ };
3363
3605
 
3364
- // src/ui/components/Notification/DefaultNotification.tsx
3365
- var _tmpl$49 = /* @__PURE__ */ web.template(`<img>`);
3366
- var _tmpl$214 = /* @__PURE__ */ web.template(`<div>`);
3367
- var _tmpl$311 = /* @__PURE__ */ web.template(`<span>`);
3368
- var _tmpl$410 = /* @__PURE__ */ web.template(`<a><div><div></div><div></div><p>`);
3369
- var DefaultNotification = (props) => {
3606
+ // src/ui/components/primitives/DatePicker.tsx
3607
+ var _tmpl$55 = /* @__PURE__ */ web.template(`<div>`);
3608
+ var _tmpl$214 = /* @__PURE__ */ web.template(`<div><span>`);
3609
+ var DatePickerContext = solidJs.createContext({
3610
+ currentDate: () => /* @__PURE__ */ new Date(),
3611
+ setCurrentDate: () => {
3612
+ },
3613
+ viewMonth: () => /* @__PURE__ */ new Date(),
3614
+ setViewMonth: () => {
3615
+ },
3616
+ selectedDate: () => null,
3617
+ setSelectedDate: () => {
3618
+ },
3619
+ maxDays: () => 0
3620
+ });
3621
+ var useDatePicker = () => solidJs.useContext(DatePickerContext);
3622
+ var DatePicker = (props) => {
3623
+ const [local, rest] = solidJs.splitProps(props, ["children", "value", "onDateChange", "class", "maxDays"]);
3370
3624
  const style = useStyle();
3371
- const {
3372
- t,
3373
- locale
3374
- } = useLocalization();
3375
- const {
3376
- navigate,
3377
- status
3378
- } = useInboxContext();
3379
- const [minutesPassed, setMinutesPassed] = solidJs.createSignal(0);
3380
- const date = solidJs.createMemo(() => {
3381
- minutesPassed();
3382
- return formatToRelativeTime({
3383
- fromDate: new Date(props.notification.createdAt),
3384
- locale: locale()
3385
- });
3386
- });
3387
- solidJs.createEffect(() => {
3388
- const interval = setInterval(() => {
3389
- setMinutesPassed((prev) => prev + 1);
3390
- }, 1e3 * 60);
3391
- return () => clearInterval(interval);
3392
- });
3393
- const handleNotificationClick = (e) => chunk7B52C2XE_js.__async(void 0, null, function* () {
3394
- var _a, _b, _c;
3395
- e.stopPropagation();
3396
- e.preventDefault();
3397
- if (!props.notification.isRead) {
3398
- yield props.notification.read();
3625
+ const today = /* @__PURE__ */ new Date();
3626
+ today.setHours(0, 0, 0, 0);
3627
+ const [currentDate, setCurrentDate] = solidJs.createSignal(today);
3628
+ const [viewMonth, setViewMonth] = solidJs.createSignal(today);
3629
+ const [selectedDate, setSelectedDate] = solidJs.createSignal(local.value ? new Date(local.value) : null);
3630
+ const handleDateSelect = (date) => {
3631
+ setSelectedDate(date);
3632
+ if (local.onDateChange) {
3633
+ local.onDateChange(date);
3399
3634
  }
3400
- (_a = props.onNotificationClick) == null ? void 0 : _a.call(props, props.notification);
3401
- navigate((_b = props.notification.redirect) == null ? void 0 : _b.url, (_c = props.notification.redirect) == null ? void 0 : _c.target);
3402
- });
3403
- const handleActionButtonClick = (action, e) => chunk7B52C2XE_js.__async(void 0, null, function* () {
3404
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
3405
- e.stopPropagation();
3406
- if (action === "primary" /* PRIMARY */) {
3407
- yield props.notification.completePrimary();
3408
- (_a = props.onPrimaryActionClick) == null ? void 0 : _a.call(props, props.notification);
3409
- navigate((_c = (_b = props.notification.primaryAction) == null ? void 0 : _b.redirect) == null ? void 0 : _c.url, (_e = (_d = props.notification.primaryAction) == null ? void 0 : _d.redirect) == null ? void 0 : _e.target);
3410
- } else {
3411
- yield props.notification.completeSecondary();
3412
- (_f = props.onSecondaryActionClick) == null ? void 0 : _f.call(props, props.notification);
3413
- navigate((_h = (_g = props.notification.secondaryAction) == null ? void 0 : _g.redirect) == null ? void 0 : _h.url, (_j = (_i = props.notification.secondaryAction) == null ? void 0 : _i.redirect) == null ? void 0 : _j.target);
3635
+ };
3636
+ return web.createComponent(DatePickerContext.Provider, {
3637
+ value: {
3638
+ currentDate,
3639
+ setCurrentDate,
3640
+ viewMonth,
3641
+ setViewMonth,
3642
+ selectedDate,
3643
+ setSelectedDate: handleDateSelect,
3644
+ maxDays: () => props.maxDays
3645
+ },
3646
+ get children() {
3647
+ var _el$ = _tmpl$55();
3648
+ web.spread(_el$, web.mergeProps({
3649
+ get ["class"]() {
3650
+ return style("datePicker", cn("nt-p-2", local.class));
3651
+ }
3652
+ }, rest), false, true);
3653
+ web.insert(_el$, () => local.children);
3654
+ return _el$;
3414
3655
  }
3415
3656
  });
3416
- return (() => {
3417
- var _el$ = _tmpl$410(), _el$3 = _el$.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$7 = _el$5.nextSibling;
3418
- _el$.$$click = handleNotificationClick;
3657
+ };
3658
+ var DatePickerHeader = (props) => {
3659
+ const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "children"]);
3660
+ const style = useStyle();
3661
+ const {
3662
+ viewMonth,
3663
+ setViewMonth,
3664
+ currentDate,
3665
+ maxDays
3666
+ } = useDatePicker();
3667
+ const handlePrevMonth = () => {
3668
+ const date = new Date(viewMonth());
3669
+ date.setMonth(date.getMonth() - 1);
3670
+ const currentMonth = currentDate();
3671
+ if (date.getFullYear() < currentMonth.getFullYear() || date.getFullYear() === currentMonth.getFullYear() && date.getMonth() < currentMonth.getMonth()) {
3672
+ return;
3673
+ }
3674
+ setViewMonth(date);
3675
+ };
3676
+ const handleNextMonth = () => {
3677
+ const date = new Date(viewMonth());
3678
+ date.setMonth(date.getMonth() + 1);
3679
+ const maxDaysValue = maxDays();
3680
+ if (maxDaysValue > 0) {
3681
+ const maxDate = new Date(currentDate());
3682
+ maxDate.setDate(maxDate.getDate() + maxDaysValue);
3683
+ if (date.getFullYear() > maxDate.getFullYear() || date.getFullYear() === maxDate.getFullYear() && date.getMonth() > maxDate.getMonth()) {
3684
+ return;
3685
+ }
3686
+ }
3687
+ setViewMonth(date);
3688
+ };
3689
+ const isPrevDisabled = () => {
3690
+ const current = currentDate();
3691
+ const view = viewMonth();
3692
+ return view.getFullYear() === current.getFullYear() && view.getMonth() === current.getMonth();
3693
+ };
3694
+ const isNextDisabled = () => {
3695
+ const maxDaysValue = maxDays();
3696
+ if (maxDaysValue === 0) return false;
3697
+ const view = viewMonth();
3698
+ const maxDate = new Date(currentDate());
3699
+ maxDate.setDate(maxDate.getDate() + maxDaysValue);
3700
+ return view.getFullYear() === maxDate.getFullYear() && view.getMonth() === maxDate.getMonth();
3701
+ };
3702
+ return (() => {
3703
+ var _el$2 = _tmpl$214(), _el$3 = _el$2.firstChild;
3704
+ web.spread(_el$2, web.mergeProps({
3705
+ get ["class"]() {
3706
+ 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-neutral-50", local.class));
3707
+ }
3708
+ }, rest), false, true);
3709
+ web.insert(_el$2, web.createComponent(Button, {
3710
+ appearanceKey: "datePickerControlPrevTrigger",
3711
+ variant: "ghost",
3712
+ onClick: (e) => {
3713
+ e.stopPropagation();
3714
+ handlePrevMonth();
3715
+ },
3716
+ get disabled() {
3717
+ return isPrevDisabled();
3718
+ },
3719
+ "class": "nt-flex nt-justify-center nt-items-center nt-gap-0.5 nt-w-5 nt-h-5 nt-p-0 nt-rounded-md nt-bg-white nt-shadow-[0px_1px_2px_0px_rgba(10,13,20,0.03)]",
3720
+ get children() {
3721
+ return web.createComponent(ArrowLeft, {
3722
+ get ["class"]() {
3723
+ return style("datePickerControlPrevTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700");
3724
+ }
3725
+ });
3726
+ }
3727
+ }), _el$3);
3728
+ web.insert(_el$3, () => viewMonth().toLocaleDateString("en-US", {
3729
+ month: "long",
3730
+ year: "numeric"
3731
+ }));
3732
+ web.insert(_el$2, web.createComponent(Button, {
3733
+ appearanceKey: "datePickerControlNextTrigger",
3734
+ variant: "ghost",
3735
+ onClick: (e) => {
3736
+ e.stopPropagation();
3737
+ handleNextMonth();
3738
+ },
3739
+ get disabled() {
3740
+ return isNextDisabled();
3741
+ },
3742
+ "class": "nt-flex nt-justify-center nt-items-center nt-gap-0.5 nt-w-5 nt-h-5 nt-p-0 nt-rounded-md nt-bg-white nt-shadow-[0px_1px_2px_0px_rgba(10,13,20,0.03)]",
3743
+ get children() {
3744
+ return web.createComponent(ArrowRight, {
3745
+ get ["class"]() {
3746
+ return style("datePickerControlNextTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700");
3747
+ }
3748
+ });
3749
+ }
3750
+ }), null);
3751
+ web.effect(() => web.className(_el$3, style("datePickerHeaderMonth", "nt-text-sm nt-font-medium nt-text-foreground-alpha-700")));
3752
+ return _el$2;
3753
+ })();
3754
+ };
3755
+ var DatePickerGridCellTrigger = (props) => {
3756
+ const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "date"]);
3757
+ const {
3758
+ selectedDate,
3759
+ viewMonth,
3760
+ setSelectedDate,
3761
+ currentDate,
3762
+ maxDays
3763
+ } = useDatePicker();
3764
+ const {
3765
+ t
3766
+ } = useLocalization();
3767
+ const isCurrentMonth = props.date.getMonth() === viewMonth().getMonth();
3768
+ const isPastDate = () => {
3769
+ const today = currentDate();
3770
+ return props.date < today;
3771
+ };
3772
+ const isFutureDate = () => {
3773
+ const maxDaysValue = maxDays();
3774
+ if (maxDaysValue === 0) return false;
3775
+ const maxDate = new Date(currentDate());
3776
+ maxDate.setDate(maxDate.getDate() + maxDaysValue);
3777
+ return props.date > maxDate;
3778
+ };
3779
+ const isDisabled = !isCurrentMonth || isPastDate() || isFutureDate();
3780
+ const isExceedingLimit = () => {
3781
+ return isCurrentMonth && isFutureDate();
3782
+ };
3783
+ const buttonElement = web.createComponent(Button, web.mergeProps({
3784
+ appearanceKey: "datePickerCalendarDay__button",
3785
+ variant: "ghost",
3786
+ disabled: isDisabled,
3787
+ onClick: (e) => {
3788
+ e.stopPropagation();
3789
+ setSelectedDate(local.date);
3790
+ },
3791
+ get ["class"]() {
3792
+ var _a;
3793
+ return cn("nt-size-8 nt-w-full nt-rounded-md nt-flex nt-items-center nt-justify-center", {
3794
+ "nt-text-muted-foreground disabled:nt-opacity-20": !isCurrentMonth || isPastDate(),
3795
+ "nt-text-foreground-alpha-700": isCurrentMonth && !isPastDate() && !isFutureDate()
3796
+ }, {
3797
+ "nt-bg-primary-alpha-300 hover:nt-bg-primary-alpha-400": ((_a = selectedDate()) == null ? void 0 : _a.toDateString()) === local.date.toDateString()
3798
+ });
3799
+ }
3800
+ }, rest, {
3801
+ get children() {
3802
+ return local.date.getDate();
3803
+ }
3804
+ }));
3805
+ if (isExceedingLimit()) {
3806
+ return web.createComponent(Tooltip.Root, {
3807
+ get children() {
3808
+ return [web.createComponent(Tooltip.Trigger, {
3809
+ children: buttonElement
3810
+ }), web.createComponent(Tooltip.Content, {
3811
+ get children() {
3812
+ return t("snooze.datePicker.exceedingLimitTooltip", {
3813
+ days: maxDays()
3814
+ });
3815
+ }
3816
+ })];
3817
+ }
3818
+ });
3819
+ }
3820
+ return buttonElement;
3821
+ };
3822
+ var DatePickerCalendar = (props) => {
3823
+ const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
3824
+ const style = useStyle();
3825
+ const {
3826
+ viewMonth
3827
+ } = useDatePicker();
3828
+ const getDaysInMonth = () => {
3829
+ const year = viewMonth().getFullYear();
3830
+ const month = viewMonth().getMonth();
3831
+ const firstDay = new Date(year, month, 1);
3832
+ const daysInMonth = new Date(year, month + 1, 0).getDate();
3833
+ const startingDay = firstDay.getDay();
3834
+ const days = [];
3835
+ for (let i = 0; i < startingDay; i += 1) {
3836
+ const prevMonthDay = new Date(year, month, -i);
3837
+ days.unshift(prevMonthDay);
3838
+ }
3839
+ for (let i = 1; i <= daysInMonth; i += 1) {
3840
+ days.push(new Date(year, month, i));
3841
+ }
3842
+ const remainingCells = 7 - days.length % 7;
3843
+ if (remainingCells < 7) {
3844
+ for (let i = 1; i <= remainingCells; i += 1) {
3845
+ days.push(new Date(year, month + 1, i));
3846
+ }
3847
+ }
3848
+ return days;
3849
+ };
3850
+ return (() => {
3851
+ var _el$8 = _tmpl$55();
3852
+ _el$8.$$click = (e) => e.stopPropagation();
3853
+ web.spread(_el$8, web.mergeProps({
3854
+ get ["class"]() {
3855
+ return style(local.appearanceKey || "datePickerCalendar", cn("nt-grid nt-grid-cols-7 nt-gap-1", local.class));
3856
+ }
3857
+ }, rest), false, true);
3858
+ web.insert(_el$8, () => getDaysInMonth().map((date) => {
3859
+ return web.createComponent(DatePickerGridCellTrigger, {
3860
+ date
3861
+ });
3862
+ }));
3863
+ return _el$8;
3864
+ })();
3865
+ };
3866
+ web.delegateEvents(["click"]);
3867
+ var _tmpl$56 = /* @__PURE__ */ web.template(`<input>`);
3868
+ var inputVariants = classVarianceAuthority.cva(cn(`focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-rounded-md focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2`), {
3869
+ variants: {
3870
+ variant: {
3871
+ default: "nt-border nt-border-neutral-200 nt-rounded-md nt-p-1 nt-bg-background"
3872
+ },
3873
+ size: {
3874
+ default: "nt-h-9",
3875
+ sm: "nt-h-8 nt-text-sm"
3876
+ }
3877
+ },
3878
+ defaultVariants: {
3879
+ variant: "default",
3880
+ size: "default"
3881
+ }
3882
+ });
3883
+ var Input = (props) => {
3884
+ const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
3885
+ const style = useStyle();
3886
+ return (() => {
3887
+ var _el$ = _tmpl$56();
3888
+ web.spread(_el$, web.mergeProps({
3889
+ get ["data-variant"]() {
3890
+ return props.variant;
3891
+ },
3892
+ get ["data-size"]() {
3893
+ return props.size;
3894
+ },
3895
+ get ["class"]() {
3896
+ return style(local.appearanceKey || "input", cn(inputVariants({
3897
+ variant: props.variant,
3898
+ size: props.size
3899
+ }), local.class));
3900
+ }
3901
+ }, rest), false, false);
3902
+ return _el$;
3903
+ })();
3904
+ };
3905
+
3906
+ // src/ui/components/primitives/TimePicker.tsx
3907
+ var _tmpl$57 = /* @__PURE__ */ web.template(`<div><span>:</span><select><option value=AM>AM</option><option value=PM>PM`);
3908
+ var TimePicker = (props) => {
3909
+ const [local, rest] = solidJs.splitProps(props, ["value", "onChange", "class", "appearanceKey"]);
3910
+ const style = useStyle();
3911
+ const initialValue = local.value || {
3912
+ hour: 12,
3913
+ minute: 0,
3914
+ isPM: true
3915
+ };
3916
+ const [hour, setHour] = solidJs.createSignal(initialValue.hour);
3917
+ const [minute, setMinute] = solidJs.createSignal(initialValue.minute);
3918
+ const [isPM, setIsPM] = solidJs.createSignal(initialValue.isPM);
3919
+ const notifyChange = () => {
3920
+ if (local.onChange) {
3921
+ local.onChange({
3922
+ hour: hour(),
3923
+ minute: minute(),
3924
+ isPM: isPM()
3925
+ });
3926
+ }
3927
+ };
3928
+ const handleHourChange = (newHour) => {
3929
+ setHour(newHour);
3930
+ notifyChange();
3931
+ };
3932
+ const handleMinuteChange = (newMinute) => {
3933
+ setMinute(newMinute);
3934
+ notifyChange();
3935
+ };
3936
+ const handlePeriodChange = (newIsPM) => {
3937
+ setIsPM(newIsPM);
3938
+ notifyChange();
3939
+ };
3940
+ const handleKeyDown = (e) => {
3941
+ const allowedKeys = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Backspace", "Delete", "Tab"];
3942
+ if (!allowedKeys.includes(e.key)) {
3943
+ e.preventDefault();
3944
+ }
3945
+ };
3946
+ return (() => {
3947
+ var _el$ = _tmpl$57(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
3948
+ _el$.$$click = (e) => e.stopPropagation();
3949
+ web.spread(_el$, web.mergeProps({
3950
+ get ["class"]() {
3951
+ return style(local.appearanceKey || "timePicker", cn("nt-flex nt-items-center nt-gap-1", local.class));
3952
+ }
3953
+ }, rest), false, true);
3954
+ web.insert(_el$, web.createComponent(Input, {
3955
+ size: "sm",
3956
+ type: "number",
3957
+ min: "1",
3958
+ max: "12",
3959
+ onKeyDown: (e) => {
3960
+ e.stopPropagation();
3961
+ handleKeyDown(e);
3962
+ },
3963
+ get value() {
3964
+ return hour().toString();
3965
+ },
3966
+ onInput: (e) => {
3967
+ e.stopPropagation();
3968
+ enforceMinMax(e.currentTarget);
3969
+ handleHourChange(Number(e.currentTarget.value));
3970
+ },
3971
+ get ["class"]() {
3972
+ 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");
3973
+ }
3974
+ }), _el$2);
3975
+ web.insert(_el$, web.createComponent(Input, {
3976
+ size: "sm",
3977
+ type: "number",
3978
+ min: "0",
3979
+ max: "59",
3980
+ onKeyDown: (e) => {
3981
+ e.stopPropagation();
3982
+ handleKeyDown(e);
3983
+ },
3984
+ get value() {
3985
+ return minute().toString().padStart(2, "0");
3986
+ },
3987
+ onInput: (e) => {
3988
+ e.stopPropagation();
3989
+ enforceMinMax(e.currentTarget);
3990
+ handleMinuteChange(Number(e.currentTarget.value));
3991
+ },
3992
+ get ["class"]() {
3993
+ 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");
3994
+ }
3995
+ }), _el$3);
3996
+ _el$3.addEventListener("change", (e) => {
3997
+ e.stopPropagation();
3998
+ handlePeriodChange(e.target.value === "PM");
3999
+ });
4000
+ _el$3.$$click = (e) => e.stopPropagation();
4001
+ web.effect((_p$) => {
4002
+ var _v$ = style("timePicker__separator", "nt-text-xl"), _v$2 = style("timePicker__periodSelect", `${inputVariants({
4003
+ size: "sm"
4004
+ })} nt-h-7 nt-font-mono`);
4005
+ _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
4006
+ _v$2 !== _p$.t && web.className(_el$3, _p$.t = _v$2);
4007
+ return _p$;
4008
+ }, {
4009
+ e: void 0,
4010
+ t: void 0
4011
+ });
4012
+ web.effect(() => _el$3.value = isPM() ? "PM" : "AM");
4013
+ return _el$;
4014
+ })();
4015
+ };
4016
+ var enforceMinMax = (el) => {
4017
+ if (el.value !== "") {
4018
+ const value = parseInt(el.value, 10);
4019
+ const min = parseInt(el.min, 10);
4020
+ const max = parseInt(el.max, 10);
4021
+ if (value < min || value > max) {
4022
+ el.value = el.value.slice(0, -1);
4023
+ const newValue = parseInt(el.value, 10);
4024
+ if (Number.isNaN(newValue) || newValue < min) {
4025
+ el.value = el.min;
4026
+ } else if (newValue > max) {
4027
+ el.value = el.max;
4028
+ }
4029
+ }
4030
+ }
4031
+ };
4032
+ web.delegateEvents(["click"]);
4033
+
4034
+ // src/ui/components/Notification/SnoozeDateTimePicker.tsx
4035
+ var _tmpl$58 = /* @__PURE__ */ web.template(`<div><div><p></p></div><div>`);
4036
+ var fiveMinutesFromNow = () => {
4037
+ const futureTime = new Date(Date.now() + 5 * 60 * 1e3);
4038
+ const hours = futureTime.getHours();
4039
+ const isPM = hours >= 12;
4040
+ let hour;
4041
+ if (hours === 0) {
4042
+ hour = 12;
4043
+ } else if (hours === 12) {
4044
+ hour = 12;
4045
+ } else {
4046
+ hour = hours % 12;
4047
+ }
4048
+ return {
4049
+ hour,
4050
+ minute: futureTime.getMinutes(),
4051
+ isPM
4052
+ };
4053
+ };
4054
+ var convertTo24Hour = (time) => {
4055
+ if (time.isPM) {
4056
+ return time.hour === 12 ? 12 : time.hour + 12;
4057
+ } else {
4058
+ return time.hour === 12 ? 0 : time.hour;
4059
+ }
4060
+ };
4061
+ var REFRESH_INTERVAL = 5e3;
4062
+ var SnoozeDateTimePicker = (props) => {
4063
+ const style = useStyle();
4064
+ const {
4065
+ t
4066
+ } = useLocalization();
4067
+ const [selectedDate, setSelectedDate] = solidJs.createSignal(null);
4068
+ const [timeValue, setTimeValue] = solidJs.createSignal(fiveMinutesFromNow());
4069
+ const [currentTime, setCurrentTime] = solidJs.createSignal(/* @__PURE__ */ new Date());
4070
+ solidJs.createEffect(() => {
4071
+ const interval = setInterval(() => {
4072
+ setCurrentTime(/* @__PURE__ */ new Date());
4073
+ }, REFRESH_INTERVAL);
4074
+ solidJs.onCleanup(() => clearInterval(interval));
4075
+ });
4076
+ const onDateTimeSelect = () => {
4077
+ var _a;
4078
+ if (selectedDate() && timeValue()) {
4079
+ const date = new Date(selectedDate());
4080
+ const hours = convertTo24Hour(timeValue());
4081
+ date.setHours(hours, timeValue().minute, 0, 0);
4082
+ (_a = props.onSelect) == null ? void 0 : _a.call(props, date);
4083
+ }
4084
+ };
4085
+ const maxDays = () => {
4086
+ if (!props.maxDurationHours) return 0;
4087
+ return Math.ceil(props.maxDurationHours / 24);
4088
+ };
4089
+ const getSelectedDateTime = () => {
4090
+ if (!selectedDate() || !timeValue()) return null;
4091
+ const date = new Date(selectedDate());
4092
+ const hours = convertTo24Hour(timeValue());
4093
+ date.setHours(hours, timeValue().minute, 0, 0);
4094
+ return date;
4095
+ };
4096
+ const isTimeInPast = solidJs.createMemo(() => {
4097
+ const dateTime = getSelectedDateTime();
4098
+ if (!dateTime) return false;
4099
+ const minAllowedDateTime = new Date(currentTime().getTime() + 3 * 60 * 1e3);
4100
+ return dateTime < minAllowedDateTime;
4101
+ });
4102
+ const isTimeExceedingMaxDuration = solidJs.createMemo(() => {
4103
+ const dateTime = getSelectedDateTime();
4104
+ if (!dateTime || !props.maxDurationHours) return false;
4105
+ const maxAllowedDateTime = new Date(currentTime().getTime() + props.maxDurationHours * 60 * 60 * 1e3);
4106
+ return dateTime > maxAllowedDateTime;
4107
+ });
4108
+ const applyButtonEnabled = solidJs.createMemo(() => {
4109
+ if (!selectedDate() || !timeValue()) {
4110
+ return false;
4111
+ }
4112
+ if (isTimeInPast()) {
4113
+ return false;
4114
+ }
4115
+ if (props.maxDurationHours && isTimeExceedingMaxDuration()) {
4116
+ return false;
4117
+ }
4118
+ return true;
4119
+ });
4120
+ const getTooltipMessage = solidJs.createMemo(() => {
4121
+ if (isTimeInPast()) {
4122
+ return t("snooze.datePicker.pastDateTooltip");
4123
+ }
4124
+ if (isTimeExceedingMaxDuration()) {
4125
+ return t("snooze.datePicker.exceedingLimitTooltip", {
4126
+ days: maxDays()
4127
+ });
4128
+ }
4129
+ return t("snooze.datePicker.noDateSelectedTooltip");
4130
+ });
4131
+ return (() => {
4132
+ var _el$ = _tmpl$58(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$2.nextSibling;
4133
+ _el$.$$click = (e) => e.stopPropagation();
4134
+ web.insert(_el$, web.createComponent(DatePicker, {
4135
+ onDateChange: (date) => setSelectedDate(date),
4136
+ get maxDays() {
4137
+ return maxDays();
4138
+ },
4139
+ get children() {
4140
+ return [web.createComponent(DatePickerHeader, {}), web.createComponent(DatePickerCalendar, {})];
4141
+ }
4142
+ }), _el$2);
4143
+ web.insert(_el$3, () => t("snooze.datePicker.timePickerLabel"));
4144
+ web.insert(_el$2, web.createComponent(TimePicker, {
4145
+ get value() {
4146
+ return timeValue();
4147
+ },
4148
+ onChange: setTimeValue
4149
+ }), null);
4150
+ web.insert(_el$4, web.createComponent(Button, {
4151
+ appearanceKey: "snoozeDatePickerCancel__button",
4152
+ variant: "secondary",
4153
+ "class": "nt-h-7 nt-w-[60px] nt-px-2",
4154
+ get onClick() {
4155
+ return props.onCancel;
4156
+ },
4157
+ get children() {
4158
+ return t("snooze.datePicker.cancel");
4159
+ }
4160
+ }), null);
4161
+ web.insert(_el$4, web.createComponent(solidJs.Show, {
4162
+ get when() {
4163
+ return applyButtonEnabled();
4164
+ },
4165
+ get fallback() {
4166
+ return web.createComponent(Tooltip.Root, {
4167
+ get children() {
4168
+ return [web.createComponent(Tooltip.Trigger, {
4169
+ asChild: (props2) => web.createComponent(Button, web.mergeProps({
4170
+ appearanceKey: "snoozeDatePickerApply__button",
4171
+ "class": "nt-h-7 nt-w-[60px] nt-px-2 !nt-pointer-events-auto",
4172
+ onClick: onDateTimeSelect,
4173
+ disabled: true
4174
+ }, props2, {
4175
+ get children() {
4176
+ return t("snooze.datePicker.apply");
4177
+ }
4178
+ }))
4179
+ }), web.createComponent(Tooltip.Content, {
4180
+ get children() {
4181
+ return getTooltipMessage();
4182
+ }
4183
+ })];
4184
+ }
4185
+ });
4186
+ },
4187
+ get children() {
4188
+ return web.createComponent(Button, {
4189
+ appearanceKey: "snoozeDatePickerApply__button",
4190
+ "class": "nt-h-7 nt-w-[60px] nt-px-2",
4191
+ onClick: onDateTimeSelect,
4192
+ get children() {
4193
+ return t("snooze.datePicker.apply");
4194
+ }
4195
+ });
4196
+ }
4197
+ }), null);
4198
+ web.effect((_p$) => {
4199
+ var _v$ = style("snoozeDatePicker", "nt-bg-white 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");
4200
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
4201
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
4202
+ _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
4203
+ _v$4 !== _p$.o && web.className(_el$4, _p$.o = _v$4);
4204
+ return _p$;
4205
+ }, {
4206
+ e: void 0,
4207
+ t: void 0,
4208
+ a: void 0,
4209
+ o: void 0
4210
+ });
4211
+ return _el$;
4212
+ })();
4213
+ };
4214
+ web.delegateEvents(["click"]);
4215
+
4216
+ // src/ui/components/Notification/NotificationActions.tsx
4217
+ var _tmpl$59 = /* @__PURE__ */ web.template(`<div><span>`);
4218
+ var _tmpl$215 = /* @__PURE__ */ web.template(`<span>`);
4219
+ var SNOOZE_PRESETS = [{
4220
+ key: "snooze.options.anHourFromNow",
4221
+ hours: 1,
4222
+ getDate: () => new Date(Date.now() + 1 * 60 * 60 * 1e3)
4223
+ }, {
4224
+ key: "snooze.options.inOneDay",
4225
+ hours: 24,
4226
+ getDate: () => {
4227
+ const date = new Date(Date.now() + 1 * 24 * 60 * 60 * 1e3);
4228
+ date.setHours(9, 0, 0, 0);
4229
+ return date;
4230
+ }
4231
+ }, {
4232
+ key: "snooze.options.inOneWeek",
4233
+ hours: 168,
4234
+ getDate: () => {
4235
+ const date = new Date(Date.now() + 7 * 24 * 60 * 60 * 1e3);
4236
+ date.setHours(9, 0, 0, 0);
4237
+ return date;
4238
+ }
4239
+ }];
4240
+ var formatSnoozeOption = (preset, t, locale) => {
4241
+ const date = preset.getDate();
4242
+ const dayName = new Intl.DateTimeFormat(locale, {
4243
+ weekday: "short"
4244
+ }).format(date);
4245
+ const dateMonth = new Intl.DateTimeFormat(locale, {
4246
+ day: "numeric",
4247
+ month: "short"
4248
+ }).format(date);
4249
+ const timeString = new Intl.DateTimeFormat(locale, {
4250
+ hour: "numeric",
4251
+ minute: "numeric"
4252
+ }).format(date);
4253
+ return {
4254
+ label: t(preset.key),
4255
+ time: `${dayName}, ${dateMonth}, ${timeString}`
4256
+ };
4257
+ };
4258
+ var SnoozeDropdownItem = (props) => {
4259
+ const style = useStyle();
4260
+ const content = [(() => {
4261
+ var _el$ = _tmpl$59(), _el$2 = _el$.firstChild;
4262
+ web.insert(_el$, web.createComponent(Clock, {
4263
+ get ["class"]() {
4264
+ return style("notificationSnooze__dropdownItem__icon", "nt-size-3 nt-text-foreground-alpha-400 nt-mr-2");
4265
+ }
4266
+ }), _el$2);
4267
+ web.insert(_el$2, () => props.label);
4268
+ web.effect((_p$) => {
4269
+ var _v$ = style("dropdownItem", "nt-flex nt-items-center nt-flex-1"), _v$2 = style("dropdownItemLabel");
4270
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
4271
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
4272
+ return _p$;
4273
+ }, {
4274
+ e: void 0,
4275
+ t: void 0
4276
+ });
4277
+ return _el$;
4278
+ })(), (() => {
4279
+ var _el$3 = _tmpl$215();
4280
+ web.insert(_el$3, () => props.time);
4281
+ web.effect(() => web.className(_el$3, style("dropdownItemRight__icon", "nt-text-foreground-alpha-300 nt-ml-2 nt-text-xs")));
4282
+ return _el$3;
4283
+ })()];
4284
+ if (props.asChild) {
4285
+ return props.asChild({
4286
+ class: style("notificationSnooze__dropdownItem", dropdownItemVariants()),
4287
+ onClick: props.onClick,
4288
+ children: content
4289
+ });
4290
+ }
4291
+ return web.createComponent(Dropdown.Item, {
4292
+ appearanceKey: "notificationSnooze__dropdownItem",
4293
+ get onClick() {
4294
+ return props.onClick;
4295
+ },
4296
+ get ["class"]() {
4297
+ return style("dropdownItem", "nt-justify-between");
4298
+ },
4299
+ children: content
4300
+ });
4301
+ };
4302
+ var ReadButton = (props) => {
4303
+ const style = useStyle();
4304
+ const {
4305
+ t
4306
+ } = useLocalization();
4307
+ return web.createComponent(Tooltip.Root, {
4308
+ get children() {
4309
+ return [web.createComponent(Tooltip.Trigger, {
4310
+ asChild: (childProps) => web.createComponent(Button, web.mergeProps({
4311
+ appearanceKey: "notificationRead__button",
4312
+ size: "iconSm",
4313
+ variant: "ghost"
4314
+ }, childProps, {
4315
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
4316
+ e.stopPropagation();
4317
+ yield props.notification.read();
4318
+ }),
4319
+ get children() {
4320
+ return web.createComponent(MarkAsRead, {
4321
+ get ["class"]() {
4322
+ return style("notificationRead__icon", "nt-size-3");
4323
+ }
4324
+ });
4325
+ }
4326
+ }))
4327
+ }), web.createComponent(Tooltip.Content, {
4328
+ "data-localization": "notification.actions.read.tooltip",
4329
+ get children() {
4330
+ return t("notification.actions.read.tooltip");
4331
+ }
4332
+ })];
4333
+ }
4334
+ });
4335
+ };
4336
+ var UnreadButton = (props) => {
4337
+ const style = useStyle();
4338
+ const {
4339
+ t
4340
+ } = useLocalization();
4341
+ return web.createComponent(Tooltip.Root, {
4342
+ get children() {
4343
+ return [web.createComponent(Tooltip.Trigger, {
4344
+ asChild: (childProps) => web.createComponent(Button, web.mergeProps({
4345
+ appearanceKey: "notificationUnread__button",
4346
+ size: "iconSm",
4347
+ variant: "ghost"
4348
+ }, childProps, {
4349
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
4350
+ e.stopPropagation();
4351
+ yield props.notification.unread();
4352
+ }),
4353
+ get children() {
4354
+ return web.createComponent(MarkAsUnread, {
4355
+ get ["class"]() {
4356
+ return style("notificationUnread__icon", "nt-size-3");
4357
+ }
4358
+ });
4359
+ }
4360
+ }))
4361
+ }), web.createComponent(Tooltip.Content, {
4362
+ "data-localization": "notification.actions.unread.tooltip",
4363
+ get children() {
4364
+ return t("notification.actions.unread.tooltip");
4365
+ }
4366
+ })];
4367
+ }
4368
+ });
4369
+ };
4370
+ var ArchiveButton = (props) => {
4371
+ const style = useStyle();
4372
+ const {
4373
+ t
4374
+ } = useLocalization();
4375
+ return web.createComponent(Tooltip.Root, {
4376
+ get children() {
4377
+ return [web.createComponent(Tooltip.Trigger, {
4378
+ asChild: (childProps) => web.createComponent(Button, web.mergeProps({
4379
+ appearanceKey: "notificationArchive__button",
4380
+ size: "iconSm",
4381
+ variant: "ghost"
4382
+ }, childProps, {
4383
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
4384
+ e.stopPropagation();
4385
+ yield props.notification.archive();
4386
+ }),
4387
+ get children() {
4388
+ return web.createComponent(MarkAsArchived, {
4389
+ get ["class"]() {
4390
+ return style("notificationArchive__icon", "nt-size-3");
4391
+ }
4392
+ });
4393
+ }
4394
+ }))
4395
+ }), web.createComponent(Tooltip.Content, {
4396
+ "data-localization": "notification.actions.archive.tooltip",
4397
+ get children() {
4398
+ return t("notification.actions.archive.tooltip");
4399
+ }
4400
+ })];
4401
+ }
4402
+ });
4403
+ };
4404
+ var UnarchiveButton = (props) => {
4405
+ const style = useStyle();
4406
+ const {
4407
+ t
4408
+ } = useLocalization();
4409
+ return web.createComponent(Tooltip.Root, {
4410
+ get children() {
4411
+ return [web.createComponent(Tooltip.Trigger, {
4412
+ asChild: (childProps) => web.createComponent(Button, web.mergeProps({
4413
+ appearanceKey: "notificationUnarchive__button",
4414
+ size: "iconSm",
4415
+ variant: "ghost"
4416
+ }, childProps, {
4417
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
4418
+ e.stopPropagation();
4419
+ yield props.notification.unarchive();
4420
+ }),
4421
+ get children() {
4422
+ return web.createComponent(MarkAsUnarchived, {
4423
+ get ["class"]() {
4424
+ return style("notificationArchive__icon", "nt-size-3");
4425
+ }
4426
+ });
4427
+ }
4428
+ }))
4429
+ }), web.createComponent(Tooltip.Content, {
4430
+ "data-localization": "notification.actions.unarchive.tooltip",
4431
+ get children() {
4432
+ return t("notification.actions.unarchive.tooltip");
4433
+ }
4434
+ })];
4435
+ }
4436
+ });
4437
+ };
4438
+ var UnsnoozeButton = (props) => {
4439
+ const style = useStyle();
4440
+ const {
4441
+ t
4442
+ } = useLocalization();
4443
+ return web.createComponent(Tooltip.Root, {
4444
+ get children() {
4445
+ return [web.createComponent(Tooltip.Trigger, {
4446
+ asChild: (childProps) => web.createComponent(Button, web.mergeProps({
4447
+ appearanceKey: "notificationUnsnooze__button",
4448
+ size: "iconSm",
4449
+ variant: "ghost"
4450
+ }, childProps, {
4451
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
4452
+ e.stopPropagation();
4453
+ yield props.notification.unsnooze();
4454
+ }),
4455
+ get children() {
4456
+ return web.createComponent(Unsnooze, {
4457
+ get ["class"]() {
4458
+ return style("notificationUnsnooze__icon", "nt-size-3");
4459
+ }
4460
+ });
4461
+ }
4462
+ }))
4463
+ }), web.createComponent(Tooltip.Content, {
4464
+ "data-localization": "notification.actions.unsnooze.tooltip",
4465
+ get children() {
4466
+ return t("notification.actions.unsnooze.tooltip");
4467
+ }
4468
+ })];
4469
+ }
4470
+ });
4471
+ };
4472
+ var SnoozeButton = (props) => {
4473
+ const style = useStyle();
4474
+ const {
4475
+ t,
4476
+ locale
4477
+ } = useLocalization();
4478
+ const {
4479
+ maxSnoozeDurationHours
4480
+ } = useInboxContext();
4481
+ const [isSnoozeDateTimePickerOpen, setIsSnoozeDateTimePickerOpen] = solidJs.createSignal(false);
4482
+ const availableSnoozePresets = solidJs.createMemo(() => {
4483
+ if (!maxSnoozeDurationHours()) return SNOOZE_PRESETS;
4484
+ return SNOOZE_PRESETS.filter((preset) => preset.hours <= maxSnoozeDurationHours());
4485
+ });
4486
+ return web.createComponent(Tooltip.Root, {
4487
+ get children() {
4488
+ return [web.createComponent(Tooltip.Trigger, {
4489
+ asChild: (tooltipProps) => web.createComponent(Dropdown.Root, {
4490
+ get children() {
4491
+ return [web.createComponent(Dropdown.Trigger, web.mergeProps(tooltipProps, {
4492
+ asChild: (popoverProps) => web.createComponent(Button, web.mergeProps({
4493
+ appearanceKey: "notificationSnooze__button",
4494
+ size: "iconSm",
4495
+ variant: "ghost"
4496
+ }, popoverProps, {
4497
+ onClick: (e) => {
4498
+ var _a;
4499
+ e.stopPropagation();
4500
+ (_a = popoverProps.onClick) == null ? void 0 : _a.call(popoverProps, e);
4501
+ },
4502
+ get children() {
4503
+ return web.createComponent(Snooze, {
4504
+ get ["class"]() {
4505
+ return style("notificationSnooze__icon", "nt-size-3");
4506
+ }
4507
+ });
4508
+ }
4509
+ }))
4510
+ })), web.createComponent(Dropdown.Content, {
4511
+ portal: true,
4512
+ appearanceKey: "notificationSnooze__dropdownContent",
4513
+ get children() {
4514
+ return [web.createComponent(solidJs.For, {
4515
+ get each() {
4516
+ return availableSnoozePresets();
4517
+ },
4518
+ children: (preset) => {
4519
+ const option = formatSnoozeOption(preset, t, locale());
4520
+ return web.createComponent(SnoozeDropdownItem, {
4521
+ get label() {
4522
+ return option.label;
4523
+ },
4524
+ get time() {
4525
+ return option.time;
4526
+ },
4527
+ onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
4528
+ e.stopPropagation();
4529
+ yield props.notification.snooze(preset.getDate().toISOString());
4530
+ })
4531
+ });
4532
+ }
4533
+ }), web.createComponent(Popover.Root, {
4534
+ get open() {
4535
+ return isSnoozeDateTimePickerOpen();
4536
+ },
4537
+ onOpenChange: setIsSnoozeDateTimePickerOpen,
4538
+ placement: "bottom-start",
4539
+ get children() {
4540
+ return [web.createComponent(SnoozeDropdownItem, {
4541
+ get label() {
4542
+ return t("snooze.options.customTime");
4543
+ },
4544
+ time: "",
4545
+ asChild: (childProps) => web.createComponent(Popover.Trigger, web.mergeProps(childProps, {
4546
+ onClick: (e) => {
4547
+ var _a;
4548
+ e.stopPropagation();
4549
+ (_a = childProps.onClick) == null ? void 0 : _a.call(childProps, e);
4550
+ }
4551
+ }))
4552
+ }), web.createComponent(Popover.Content, {
4553
+ portal: true,
4554
+ get ["class"]() {
4555
+ return style("notificationSnoozeCustomTime_popoverContent", "nt-size-fit nt-w-[260px]");
4556
+ },
4557
+ get children() {
4558
+ return web.createComponent(SnoozeDateTimePicker, {
4559
+ get maxDurationHours() {
4560
+ return maxSnoozeDurationHours();
4561
+ },
4562
+ onSelect: (date) => chunk7B52C2XE_js.__async(this, null, function* () {
4563
+ yield props.notification.snooze(date.toISOString());
4564
+ }),
4565
+ onCancel: () => {
4566
+ setIsSnoozeDateTimePickerOpen(false);
4567
+ }
4568
+ });
4569
+ }
4570
+ })];
4571
+ }
4572
+ })];
4573
+ }
4574
+ })];
4575
+ }
4576
+ })
4577
+ }), web.createComponent(Tooltip.Content, {
4578
+ "data-localization": "notification.actions.snooze.tooltip",
4579
+ get children() {
4580
+ return t("notification.actions.snooze.tooltip");
4581
+ }
4582
+ })];
4583
+ }
4584
+ });
4585
+ };
4586
+ var renderNotificationActions = (notification, status) => {
4587
+ const {
4588
+ isSnoozeEnabled
4589
+ } = useInboxContext();
4590
+ if (notification.isSnoozed) {
4591
+ return web.createComponent(UnsnoozeButton, {
4592
+ notification
4593
+ });
4594
+ }
4595
+ if (notification.isArchived) {
4596
+ return web.createComponent(UnarchiveButton, {
4597
+ notification
4598
+ });
4599
+ }
4600
+ return [web.memo(() => web.memo(() => status() !== "archived" /* ARCHIVED */)() && (notification.isRead ? web.createComponent(UnreadButton, {
4601
+ notification
4602
+ }) : web.createComponent(ReadButton, {
4603
+ notification
4604
+ }))), web.memo(() => web.memo(() => !!isSnoozeEnabled())() && web.createComponent(SnoozeButton, {
4605
+ notification
4606
+ })), web.createComponent(ArchiveButton, {
4607
+ notification
4608
+ })];
4609
+ };
4610
+
4611
+ // src/ui/components/Notification/DefaultNotification.tsx
4612
+ var _tmpl$60 = /* @__PURE__ */ web.template(`<img>`);
4613
+ var _tmpl$216 = /* @__PURE__ */ web.template(`<div>`);
4614
+ var _tmpl$311 = /* @__PURE__ */ web.template(`<span>`);
4615
+ var _tmpl$410 = /* @__PURE__ */ web.template(`<a><div><div></div><div></div><div>`);
4616
+ var DefaultNotification = (props) => {
4617
+ const style = useStyle();
4618
+ const {
4619
+ t,
4620
+ locale
4621
+ } = useLocalization();
4622
+ const {
4623
+ navigate,
4624
+ status
4625
+ } = useInboxContext();
4626
+ const [minutesPassed, setMinutesPassed] = solidJs.createSignal(0);
4627
+ const createdAt = solidJs.createMemo(() => {
4628
+ minutesPassed();
4629
+ return formatToRelativeTime({
4630
+ fromDate: new Date(props.notification.createdAt),
4631
+ locale: locale()
4632
+ });
4633
+ });
4634
+ const snoozedUntil = solidJs.createMemo(() => {
4635
+ minutesPassed();
4636
+ if (!props.notification.snoozedUntil) {
4637
+ return null;
4638
+ }
4639
+ return formatSnoozedUntil({
4640
+ untilDate: new Date(props.notification.snoozedUntil),
4641
+ locale: locale()
4642
+ });
4643
+ });
4644
+ const deliveredAt = solidJs.createMemo(() => {
4645
+ minutesPassed();
4646
+ if (!props.notification.deliveredAt || !Array.isArray(props.notification.deliveredAt)) {
4647
+ return null;
4648
+ }
4649
+ return props.notification.deliveredAt.map((date) => formatToRelativeTime({
4650
+ fromDate: new Date(date),
4651
+ locale: locale()
4652
+ }));
4653
+ });
4654
+ solidJs.createEffect(() => {
4655
+ const interval = setInterval(() => {
4656
+ setMinutesPassed((prev) => prev + 1);
4657
+ }, 1e3 * 60);
4658
+ return () => clearInterval(interval);
4659
+ });
4660
+ const handleNotificationClick = (e) => chunk7B52C2XE_js.__async(void 0, null, function* () {
4661
+ var _a, _b, _c;
4662
+ e.stopPropagation();
4663
+ e.preventDefault();
4664
+ if (!props.notification.isRead) {
4665
+ yield props.notification.read();
4666
+ }
4667
+ (_a = props.onNotificationClick) == null ? void 0 : _a.call(props, props.notification);
4668
+ navigate((_b = props.notification.redirect) == null ? void 0 : _b.url, (_c = props.notification.redirect) == null ? void 0 : _c.target);
4669
+ });
4670
+ const handleActionButtonClick = (action, e) => chunk7B52C2XE_js.__async(void 0, null, function* () {
4671
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
4672
+ e.stopPropagation();
4673
+ if (action === "primary" /* PRIMARY */) {
4674
+ yield props.notification.completePrimary();
4675
+ (_a = props.onPrimaryActionClick) == null ? void 0 : _a.call(props, props.notification);
4676
+ navigate((_c = (_b = props.notification.primaryAction) == null ? void 0 : _b.redirect) == null ? void 0 : _c.url, (_e = (_d = props.notification.primaryAction) == null ? void 0 : _d.redirect) == null ? void 0 : _e.target);
4677
+ } else {
4678
+ yield props.notification.completeSecondary();
4679
+ (_f = props.onSecondaryActionClick) == null ? void 0 : _f.call(props, props.notification);
4680
+ navigate((_h = (_g = props.notification.secondaryAction) == null ? void 0 : _g.redirect) == null ? void 0 : _h.url, (_j = (_i = props.notification.secondaryAction) == null ? void 0 : _i.redirect) == null ? void 0 : _j.target);
4681
+ }
4682
+ });
4683
+ return (() => {
4684
+ var _el$ = _tmpl$410(), _el$3 = _el$.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$7 = _el$5.nextSibling;
4685
+ _el$.$$click = handleNotificationClick;
3419
4686
  web.insert(_el$, web.createComponent(solidJs.Show, {
3420
4687
  get when() {
3421
4688
  return props.notification.avatar;
3422
4689
  },
3423
4690
  get fallback() {
3424
4691
  return (() => {
3425
- var _el$9 = _tmpl$214();
4692
+ var _el$9 = _tmpl$216();
3426
4693
  web.effect(() => web.className(_el$9, style("notificationImageLoadingFallback", "nt-size-8 nt-rounded-lg nt-shrink-0 nt-aspect-square")));
3427
4694
  return _el$9;
3428
4695
  })();
3429
4696
  },
3430
4697
  get children() {
3431
- var _el$2 = _tmpl$49();
4698
+ var _el$2 = _tmpl$60();
3432
4699
  web.effect((_p$) => {
3433
4700
  var _v$ = style("notificationImage", "nt-size-8 nt-rounded-lg nt-object-cover nt-aspect-square"), _v$2 = props.notification.avatar;
3434
4701
  _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
@@ -3482,149 +4749,13 @@ var DefaultNotification = (props) => {
3482
4749
  render: (el) => renderBody()(el, props.notification)
3483
4750
  })
3484
4751
  }), null);
3485
- web.insert(_el$5, web.createComponent(solidJs.Show, {
3486
- get when() {
3487
- return status() !== "archived" /* ARCHIVED */;
3488
- },
3489
- get children() {
3490
- return web.createComponent(solidJs.Show, {
3491
- get when() {
3492
- return props.notification.isRead;
3493
- },
3494
- get fallback() {
3495
- return web.createComponent(Tooltip.Root, {
3496
- get children() {
3497
- return [web.createComponent(Tooltip.Trigger, {
3498
- asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3499
- appearanceKey: "notificationRead__button",
3500
- size: "iconSm",
3501
- variant: "ghost"
3502
- }, childProps, {
3503
- onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3504
- e.stopPropagation();
3505
- yield props.notification.read();
3506
- }),
3507
- get children() {
3508
- return web.createComponent(MarkAsRead, {
3509
- get ["class"]() {
3510
- return style("notificationRead__icon", "nt-size-3");
3511
- }
3512
- });
3513
- }
3514
- }))
3515
- }), web.createComponent(Tooltip.Content, {
3516
- "data-localization": "notification.actions.read.tooltip",
3517
- get children() {
3518
- return t("notification.actions.read.tooltip");
3519
- }
3520
- })];
3521
- }
3522
- });
3523
- },
3524
- get children() {
3525
- return web.createComponent(Tooltip.Root, {
3526
- get children() {
3527
- return [web.createComponent(Tooltip.Trigger, {
3528
- asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3529
- appearanceKey: "notificationUnread__button",
3530
- size: "iconSm",
3531
- variant: "ghost"
3532
- }, childProps, {
3533
- onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3534
- e.stopPropagation();
3535
- yield props.notification.unread();
3536
- }),
3537
- get children() {
3538
- return web.createComponent(MarkAsUnread, {
3539
- get ["class"]() {
3540
- return style("notificationUnread__icon", "nt-size-3");
3541
- }
3542
- });
3543
- }
3544
- }))
3545
- }), web.createComponent(Tooltip.Content, {
3546
- "data-localization": "notification.actions.unread.tooltip",
3547
- get children() {
3548
- return t("notification.actions.unread.tooltip");
3549
- }
3550
- })];
3551
- }
3552
- });
3553
- }
3554
- });
3555
- }
3556
- }), null);
3557
- web.insert(_el$5, web.createComponent(solidJs.Show, {
3558
- get when() {
3559
- return props.notification.isArchived;
3560
- },
3561
- get fallback() {
3562
- return web.createComponent(Tooltip.Root, {
3563
- get children() {
3564
- return [web.createComponent(Tooltip.Trigger, {
3565
- asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3566
- appearanceKey: "notificationArchive__button",
3567
- size: "iconSm",
3568
- variant: "ghost"
3569
- }, childProps, {
3570
- onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3571
- e.stopPropagation();
3572
- yield props.notification.archive();
3573
- }),
3574
- get children() {
3575
- return web.createComponent(MarkAsArchived, {
3576
- get ["class"]() {
3577
- return style("notificationArchive__icon", "nt-size-3");
3578
- }
3579
- });
3580
- }
3581
- }))
3582
- }), web.createComponent(Tooltip.Content, {
3583
- "data-localization": "notification.actions.archive.tooltip",
3584
- get children() {
3585
- return t("notification.actions.archive.tooltip");
3586
- }
3587
- })];
3588
- }
3589
- });
3590
- },
3591
- get children() {
3592
- return web.createComponent(Tooltip.Root, {
3593
- get children() {
3594
- return [web.createComponent(Tooltip.Trigger, {
3595
- asChild: (childProps) => web.createComponent(Button, web.mergeProps({
3596
- appearanceKey: "notificationUnarchive__button",
3597
- size: "iconSm",
3598
- variant: "ghost"
3599
- }, childProps, {
3600
- onClick: (e) => chunk7B52C2XE_js.__async(this, null, function* () {
3601
- e.stopPropagation();
3602
- yield props.notification.unarchive();
3603
- }),
3604
- get children() {
3605
- return web.createComponent(MarkAsUnarchived, {
3606
- get ["class"]() {
3607
- return style("notificationArchive__icon", "nt-size-3");
3608
- }
3609
- });
3610
- }
3611
- }))
3612
- }), web.createComponent(Tooltip.Content, {
3613
- "data-localization": "notification.actions.unarchive.tooltip",
3614
- get children() {
3615
- return t("notification.actions.unarchive.tooltip");
3616
- }
3617
- })];
3618
- }
3619
- });
3620
- }
3621
- }), null);
4752
+ web.insert(_el$5, () => renderNotificationActions(props.notification, status));
3622
4753
  web.insert(_el$3, web.createComponent(solidJs.Show, {
3623
4754
  get when() {
3624
4755
  return props.notification.primaryAction || props.notification.secondaryAction;
3625
4756
  },
3626
4757
  get children() {
3627
- var _el$6 = _tmpl$214();
4758
+ var _el$6 = _tmpl$216();
3628
4759
  web.insert(_el$6, web.createComponent(solidJs.Show, {
3629
4760
  get when() {
3630
4761
  return props.notification.primaryAction;
@@ -3657,7 +4788,62 @@ var DefaultNotification = (props) => {
3657
4788
  return _el$6;
3658
4789
  }
3659
4790
  }), _el$7);
3660
- web.insert(_el$7, date);
4791
+ web.insert(_el$7, web.createComponent(solidJs.Show, {
4792
+ get when() {
4793
+ return snoozedUntil();
4794
+ },
4795
+ get fallback() {
4796
+ return web.createComponent(solidJs.Show, {
4797
+ get when() {
4798
+ return deliveredAt();
4799
+ },
4800
+ get fallback() {
4801
+ return web.memo(createdAt);
4802
+ },
4803
+ children: (deliveredAt2) => web.createComponent(solidJs.Show, {
4804
+ get when() {
4805
+ return deliveredAt2().length >= 2;
4806
+ },
4807
+ get children() {
4808
+ return [" ", web.createComponent(solidJs.For, {
4809
+ get each() {
4810
+ return deliveredAt2().slice(-2);
4811
+ },
4812
+ children: (date, index) => [web.createComponent(solidJs.Show, {
4813
+ get when() {
4814
+ return index() === 0;
4815
+ },
4816
+ get children() {
4817
+ return [date, " \xB7"];
4818
+ }
4819
+ }), web.createComponent(solidJs.Show, {
4820
+ get when() {
4821
+ return index() === 1;
4822
+ },
4823
+ get children() {
4824
+ return web.createComponent(Badge, {
4825
+ appearanceKey: "notificationDeliveredAt__badge",
4826
+ get children() {
4827
+ return [web.createComponent(Clock, {
4828
+ get ["class"]() {
4829
+ return style("notificationDeliveredAt__icon", "nt-size-3");
4830
+ }
4831
+ }), date];
4832
+ }
4833
+ });
4834
+ }
4835
+ })]
4836
+ })];
4837
+ }
4838
+ })
4839
+ });
4840
+ },
4841
+ children: (snoozedUntil2) => [web.createComponent(Clock, {
4842
+ get ["class"]() {
4843
+ return style("notificationSnoozedUntil__icon", "nt-size-3");
4844
+ }
4845
+ }), web.memo(() => t("notification.snoozedUntil")), " \xB7 ", web.memo(snoozedUntil2)]
4846
+ }));
3661
4847
  web.insert(_el$, web.createComponent(solidJs.Show, {
3662
4848
  get when() {
3663
4849
  return !props.notification.isRead;
@@ -3672,7 +4858,7 @@ var DefaultNotification = (props) => {
3672
4858
  var _a;
3673
4859
  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", {
3674
4860
  "nt-cursor-pointer": !props.notification.isRead || !!((_a = props.notification.redirect) == null ? void 0 : _a.url)
3675
- })), _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");
4861
+ })), _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");
3676
4862
  _v$3 !== _p$.e && web.className(_el$, _p$.e = _v$3);
3677
4863
  _v$4 !== _p$.t && web.className(_el$3, _p$.t = _v$4);
3678
4864
  _v$5 !== _p$.a && web.className(_el$4, _p$.a = _v$5);
@@ -3752,14 +4938,14 @@ var NewMessagesCta = (props) => {
3752
4938
  }
3753
4939
  });
3754
4940
  };
3755
- var _tmpl$50 = /* @__PURE__ */ web.template(`<div>`);
4941
+ var _tmpl$61 = /* @__PURE__ */ web.template(`<div>`);
3756
4942
  var NotificationListSkeleton = (props) => {
3757
4943
  const style = useStyle();
3758
4944
  const {
3759
4945
  t
3760
4946
  } = useLocalization();
3761
4947
  return (() => {
3762
- var _el$ = _tmpl$50();
4948
+ var _el$ = _tmpl$61();
3763
4949
  web.insert(_el$, web.createComponent(Motion.div, {
3764
4950
  get animate() {
3765
4951
  return {
@@ -3798,7 +4984,7 @@ var NotificationListSkeleton = (props) => {
3798
4984
  appearanceKey: "notificationList__skeletonAvatar",
3799
4985
  "class": "nt-w-8 nt-h-8 nt-rounded-full nt-bg-neutral-alpha-100"
3800
4986
  }), (() => {
3801
- var _el$3 = _tmpl$50();
4987
+ var _el$3 = _tmpl$61();
3802
4988
  web.insert(_el$3, web.createComponent(SkeletonText, {
3803
4989
  appearanceKey: "notificationList__skeletonText",
3804
4990
  "class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
@@ -3812,7 +4998,7 @@ var NotificationListSkeleton = (props) => {
3812
4998
  })()];
3813
4999
  }
3814
5000
  }))), (() => {
3815
- var _el$2 = _tmpl$50();
5001
+ var _el$2 = _tmpl$61();
3816
5002
  web.effect(() => web.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")));
3817
5003
  return _el$2;
3818
5004
  })()];
@@ -3857,8 +5043,8 @@ var NotificationListSkeleton = (props) => {
3857
5043
  };
3858
5044
 
3859
5045
  // src/ui/components/Notification/NotificationList.tsx
3860
- var _tmpl$51 = /* @__PURE__ */ web.template(`<div>`);
3861
- var _tmpl$215 = /* @__PURE__ */ web.template(`<div><div>`);
5046
+ var _tmpl$62 = /* @__PURE__ */ web.template(`<div>`);
5047
+ var _tmpl$217 = /* @__PURE__ */ web.template(`<div><div>`);
3862
5048
  var NotificationList = (props) => {
3863
5049
  var _a, _b;
3864
5050
  const options = solidJs.createMemo(() => chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.filter), {
@@ -3901,7 +5087,7 @@ var NotificationList = (props) => {
3901
5087
  });
3902
5088
  });
3903
5089
  return (() => {
3904
- var _el$ = _tmpl$215(), _el$2 = _el$.firstChild;
5090
+ var _el$ = _tmpl$217(), _el$2 = _el$.firstChild;
3905
5091
  web.insert(_el$, web.createComponent(NewMessagesCta, {
3906
5092
  get count() {
3907
5093
  return count();
@@ -3958,7 +5144,7 @@ var NotificationList = (props) => {
3958
5144
  return !end();
3959
5145
  },
3960
5146
  get children() {
3961
- var _el$3 = _tmpl$51();
5147
+ var _el$3 = _tmpl$62();
3962
5148
  web.use(setEl, _el$3);
3963
5149
  web.insert(_el$3, web.createComponent(NotificationListSkeleton, {
3964
5150
  loading: true
@@ -3980,13 +5166,13 @@ var NotificationList = (props) => {
3980
5166
  return _el$;
3981
5167
  })();
3982
5168
  };
3983
- var _tmpl$52 = /* @__PURE__ */ web.template(`<span>`);
5169
+ var _tmpl$63 = /* @__PURE__ */ web.template(`<span>`);
3984
5170
  var getDisplayCount = (count) => count >= 100 ? "99+" : count;
3985
5171
  var InboxTabUnreadNotificationsCount = (props) => {
3986
5172
  const style = useStyle();
3987
5173
  const displayCount = solidJs.createMemo(() => getDisplayCount(props.count));
3988
5174
  return (() => {
3989
- var _el$ = _tmpl$52();
5175
+ var _el$ = _tmpl$63();
3990
5176
  web.insert(_el$, displayCount);
3991
5177
  web.effect(() => web.className(_el$, style("notificationsTabsTriggerCount", "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm")));
3992
5178
  return _el$;
@@ -4011,7 +5197,7 @@ var InboxTab = (props) => {
4011
5197
  },
4012
5198
  get children() {
4013
5199
  return [(() => {
4014
- var _el$2 = _tmpl$52();
5200
+ var _el$2 = _tmpl$63();
4015
5201
  web.insert(_el$2, () => props.label);
4016
5202
  web.effect(() => web.className(_el$2, style("notificationsTabsTriggerLabel", "nt-text-sm nt-font-medium")));
4017
5203
  return _el$2;
@@ -4049,7 +5235,7 @@ var InboxDropdownTab = (props) => {
4049
5235
  },
4050
5236
  get children() {
4051
5237
  return [(() => {
4052
- var _el$3 = _tmpl$52();
5238
+ var _el$3 = _tmpl$63();
4053
5239
  web.insert(_el$3, () => props.label);
4054
5240
  web.effect(() => web.className(_el$3, style("moreTabs__dropdownItemLabel", "nt-mr-auto")));
4055
5241
  return _el$3;
@@ -4230,7 +5416,7 @@ var InboxTabs = (props) => {
4230
5416
  };
4231
5417
 
4232
5418
  // src/ui/components/Inbox.tsx
4233
- var _tmpl$53 = /* @__PURE__ */ web.template(`<div>`);
5419
+ var _tmpl$64 = /* @__PURE__ */ web.template(`<div>`);
4234
5420
  var InboxPage = /* @__PURE__ */ function(InboxPage2) {
4235
5421
  InboxPage2["Notifications"] = "notifications";
4236
5422
  InboxPage2["Preferences"] = "preferences";
@@ -4252,7 +5438,7 @@ var InboxContent = (props) => {
4252
5438
  };
4253
5439
  });
4254
5440
  return (() => {
4255
- var _el$ = _tmpl$53();
5441
+ var _el$ = _tmpl$64();
4256
5442
  web.insert(_el$, web.createComponent(solidJs.Switch, {
4257
5443
  get children() {
4258
5444
  return [web.createComponent(solidJs.Match, {