@novu/js 3.11.0 → 3.12.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/{chunk-VWSQDNZX.js → chunk-OZV3TKWX.js} +6 -0
  2. package/dist/cjs/{chunk-QQNKEWGC.js → chunk-SZEUW4CB.js} +1070 -309
  3. package/dist/cjs/index.d.ts +5 -4
  4. package/dist/cjs/index.js +26 -14
  5. package/dist/cjs/internal/index.d.ts +8 -2
  6. package/dist/cjs/internal/index.js +8 -4
  7. package/dist/{esm/novu-DY-mm8Og.d.mts → cjs/novu-BVtCFUxa.d.ts} +398 -203
  8. package/dist/cjs/themes/index.d.ts +11 -5
  9. package/dist/cjs/themes/index.js +17 -1
  10. package/dist/{esm/types-BM_9Xx5Z.d.mts → cjs/types-D-9ozWeQ.d.ts} +20 -1
  11. package/dist/cjs/types-Rjzg7eo3.d.ts +836 -0
  12. package/dist/cjs/ui/index.d.ts +74 -7
  13. package/dist/cjs/ui/index.js +1785 -260
  14. package/dist/esm/{chunk-UM35OVAD.mjs → chunk-IA6ISHOP.mjs} +1068 -310
  15. package/dist/esm/{chunk-RZWQYM3H.mjs → chunk-RO3GDYAG.mjs} +6 -1
  16. package/dist/esm/index.d.mts +5 -4
  17. package/dist/esm/index.mjs +2 -2
  18. package/dist/esm/internal/index.d.mts +8 -2
  19. package/dist/esm/internal/index.mjs +1 -1
  20. package/dist/{cjs/novu-ThMWeiRt.d.ts → esm/novu-YP3PwsQR.d.mts} +398 -203
  21. package/dist/esm/themes/index.d.mts +11 -5
  22. package/dist/esm/themes/index.mjs +16 -2
  23. package/dist/{cjs/types-BM_9Xx5Z.d.ts → esm/types-D-9ozWeQ.d.mts} +20 -1
  24. package/dist/esm/types-DmMJ1GiR.d.mts +836 -0
  25. package/dist/esm/ui/index.d.mts +74 -7
  26. package/dist/esm/ui/index.mjs +1782 -256
  27. package/dist/index.css +1 -1
  28. package/dist/novu.min.js +12 -12
  29. package/dist/novu.min.js.gz +0 -0
  30. package/package.json +18 -17
  31. package/dist/cjs/types-BjANCN3c.d.ts +0 -537
  32. package/dist/esm/types-C5eX1GmB.d.mts +0 -537
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkQQNKEWGC_js = require('../chunk-QQNKEWGC.js');
4
- var chunkVWSQDNZX_js = require('../chunk-VWSQDNZX.js');
3
+ var chunkSZEUW4CB_js = require('../chunk-SZEUW4CB.js');
4
+ var chunkOZV3TKWX_js = require('../chunk-OZV3TKWX.js');
5
5
  var chunk7B52C2XE_js = require('../chunk-7B52C2XE.js');
6
6
  var web = require('solid-js/web');
7
7
  var solidJs = require('solid-js');
@@ -37,12 +37,13 @@ function _interopNamespace(e) {
37
37
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
38
38
  var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
39
39
 
40
- // _v71190j6q:/home/runner/_work/novu/novu/packages/js/src/ui/index.directcss
41
- var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}}.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.\\!nt-pointer-events-auto{pointer-events:auto!important}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-bottom-0{bottom:0}.nt-left-0{left:0}.nt-left-0\\.5{left:.125rem}.nt-right-0{right:0}.nt-right-3{right:.75rem}.nt-top-0{top:0}.nt-top-0\\.5{top:.125rem}.nt-top-3{top:.75rem}.nt-z-10{z-index:10}.nt-z-\\[-1\\]{z-index:-1}.-nt-m-1{margin:-.25rem}.nt-mx-auto{margin-left:auto;margin-right:auto}.-nt-mt-2{margin-top:-.5rem}.-nt-mt-\\[2px\\]{margin-top:-2px}.nt--mt-\\[50px\\]{margin-top:-50px}.nt-mb-1{margin-bottom:.25rem}.nt-mb-2{margin-bottom:.5rem}.nt-mb-3{margin-bottom:.75rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-1{margin-left:.25rem}.nt-ml-2{margin-left:.5rem}.nt-ml-auto{margin-left:auto}.nt-mr-2{margin-right:.5rem}.nt-mr-auto{margin-right:auto}.nt-mt-1{margin-top:.25rem}.nt-mt-1\\.5{margin-top:.375rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.nt-size-1\\.5{height:.375rem;width:.375rem}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\\.5{height:.625rem;width:.625rem}.nt-size-3{height:.75rem;width:.75rem}.nt-size-3\\.5{height:.875rem;width:.875rem}.nt-size-4{height:1rem;width:1rem}.nt-size-5{height:1.25rem;width:1.25rem}.nt-size-8{height:2rem;width:2rem}.nt-size-fit{height:fit-content;width:fit-content}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-3\\.5{height:.875rem}.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-max-h-\\[160px\\]{max-height:160px}.nt-min-h-0{min-height:0}.nt-w-1\\.5{width:.375rem}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-5{width:1.25rem}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[260px\\]{width:260px}.nt-w-\\[3px\\]{width:3px}.nt-w-\\[400px\\]{width:400px}.nt-w-\\[60px\\]{width:60px}.nt-w-\\[calc\\(2ch\\+2rem\\)\\]{width:calc(2ch + 2rem)}.nt-w-fit{width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-min-w-\\[120px\\]{min-width:120px}.nt-min-w-\\[220px\\]{min-width:220px}.nt-min-w-\\[74px\\]{min-width:74px}.nt-max-w-56{max-width:14rem}.nt-max-w-\\[120px\\]{max-width:120px}.nt-max-w-\\[220px\\]{max-width:220px}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.nt-translate-x-1\\/2{--tw-translate-x:50%}.nt-transform,.nt-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-cursor-default{cursor:default}.nt-cursor-not-allowed{cursor:not-allowed}.nt-cursor-pointer{cursor:pointer}.nt-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.nt-flex-row{flex-direction:row}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-end{justify-content:flex-end}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-1\\.5{gap:.375rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-auto{overflow:auto}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-truncate{overflow:hidden;text-overflow:ellipsis}.nt-truncate,.nt-whitespace-nowrap{white-space:nowrap}.nt-whitespace-pre-wrap{white-space:pre-wrap}.nt-rounded{border-radius:var(--nv-radius-base)}.nt-rounded-full{border-radius:var(--nv-radius-full)}.nt-rounded-lg{border-radius:var(--nv-radius-lg)}.nt-rounded-md{border-radius:var(--nv-radius-md)}.nt-rounded-sm{border-radius:var(--nv-radius-sm)}.nt-rounded-xl{border-radius:var(--nv-radius-xl)}.nt-border{border-width:1px}.nt-border-b{border-bottom-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-border{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-border-neutral-alpha-50{border-color:var(--nv-color-neutral-alpha-50)}.nt-border-primary{border-color:var(--nv-color-primary)}.nt-border-t-neutral-alpha-200{border-top-color:var(--nv-color-neutral-alpha-200)}.nt-bg-\\[oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.1\\)\\]{background-color:oklch(from var(--nv-color-stripes) l c h/.1)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.nt-bg-neutral-alpha-100{background-color:var(--nv-color-neutral-alpha-100)}.nt-bg-neutral-alpha-25{background-color:var(--nv-color-neutral-alpha-25)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-primary-alpha-300{background-color:var(--nv-color-primary-alpha-300)}.nt-bg-primary-alpha-400{background-color:var(--nv-color-primary-alpha-400)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-severity-high{background-color:var(--nv-color-severity-high)}.nt-bg-severity-high-alpha-100{background-color:var(--nv-color-severity-high-alpha-100)}.nt-bg-severity-high-alpha-200{background-color:var(--nv-color-severity-high-alpha-200)}.nt-bg-severity-high-alpha-300{background-color:var(--nv-color-severity-high-alpha-300)}.nt-bg-severity-high-alpha-50{background-color:var(--nv-color-severity-high-alpha-50)}.nt-bg-severity-low{background-color:var(--nv-color-severity-low)}.nt-bg-severity-low-alpha-100{background-color:var(--nv-color-severity-low-alpha-100)}.nt-bg-severity-low-alpha-200{background-color:var(--nv-color-severity-low-alpha-200)}.nt-bg-severity-low-alpha-300{background-color:var(--nv-color-severity-low-alpha-300)}.nt-bg-severity-low-alpha-50{background-color:var(--nv-color-severity-low-alpha-50)}.nt-bg-severity-medium{background-color:var(--nv-color-severity-medium)}.nt-bg-severity-medium-alpha-100{background-color:var(--nv-color-severity-medium-alpha-100)}.nt-bg-severity-medium-alpha-200{background-color:var(--nv-color-severity-medium-alpha-200)}.nt-bg-severity-medium-alpha-300{background-color:var(--nv-color-severity-medium-alpha-300)}.nt-bg-severity-medium-alpha-50{background-color:var(--nv-color-severity-medium-alpha-50)}.nt-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.nt-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.nt-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.nt-from-foreground-alpha-50{--tw-gradient-from:var(--nv-color-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-primary-foreground-alpha-200{--tw-gradient-from:var(--nv-color-primary-foreground-alpha-200) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-20\\%{--tw-gradient-from-position:20%}.nt-to-background{--tw-gradient-to:var(--nv-color-background) var(--tw-gradient-to-position)}.nt-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.nt-object-cover{object-fit:cover}.nt-p-0{padding:0}.nt-p-0\\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-2\\.5{padding:.625rem}.nt-p-3{padding:.75rem}.nt-p-4{padding:1rem}.nt-px-1{padding-left:.25rem;padding-right:.25rem}.nt-px-2{padding-left:.5rem;padding-right:.5rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-4{padding-left:1rem;padding-right:1rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\\[6px\\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.nt-py-2{padding-bottom:.5rem;padding-top:.5rem}.nt-py-3{padding-bottom:.75rem;padding-top:.75rem}.nt-py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-px{padding-bottom:1px;padding-top:1px}.nt-pb-2{padding-bottom:.5rem}.nt-pb-\\[0\\.625rem\\]{padding-bottom:.625rem}.nt-pr-0{padding-right:0}.nt-pt-2{padding-top:.5rem}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-left{text-align:left}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.nt-text-\\[0\\.8rem\\]{font-size:.8rem}.nt-text-\\[12px\\]{font-size:12px}.nt-text-base{font-size:var(--nv-font-size-base);line-height:var(--nv-line-height-base)}.nt-text-sm{font-size:var(--nv-font-size-sm);line-height:var(--nv-line-height-sm)}.nt-text-xl{font-size:var(--nv-font-size-xl);line-height:var(--nv-line-height-xl)}.nt-text-xs{font-size:var(--nv-font-size-xs);line-height:var(--nv-line-height-xs)}.nt-font-medium{font-weight:500}.nt-font-normal{font-weight:400}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-\\[\\#000000\\]{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.nt-text-neutral-alpha-500{color:var(--nv-color-neutral-alpha-500)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nt-underline{text-decoration-line:underline}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.nt-opacity-50{opacity:.5}.nt-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-primary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-primary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-secondary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\]{--tw-shadow:0px 1px 2px 0px #0a0d1408;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\],.nt-shadow-dropdown{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-dropdown{--tw-shadow:0px 12px 16px -4px oklch(from var(--nv-color-shadow) l c h/0.08),0px 4px 6px -2px oklch(from var(--nv-color-shadow) l c h/0.03);--tw-shadow-colored:0px 12px 16px -4px var(--tw-shadow-color),0px 4px 6px -2px var(--tw-shadow-color)}.nt-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.nt-shadow-lg,.nt-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.nt-shadow-popover{--tw-shadow:0px 8px 26px 0px oklch(from var(--nv-color-shadow) l c h/0.08),0px 2px 6px 0px oklch(from var(--nv-color-shadow) l c h/0.12);--tw-shadow-colored:0px 8px 26px 0px var(--tw-shadow-color),0px 2px 6px 0px var(--tw-shadow-color)}.nt-shadow-popover,.nt-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 oklch(from var(--nv-color-shadow) l c h/0.08);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-ring-offset-background{--tw-ring-offset-color:var(--nv-color-background)}.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-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-foreground\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-foreground) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-high\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-high) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-high\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-high) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-low\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-low) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-low\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-low) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-medium\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-medium) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-medium\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-medium) 80% c h)}.\\[--bell-gradient-start\\:var\\(--nv-color-foreground\\)\\]{--bell-gradient-start:var(--nv-color-foreground)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-high\\)\\]{--bell-gradient-start:var(--nv-color-severity-high)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-low\\)\\]{--bell-gradient-start:var(--nv-color-severity-low)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-medium\\)\\]{--bell-gradient-start:var(--nv-color-severity-medium)}.\\[interpolate-size\\:allow-keywords\\]{interpolate-size:allow-keywords}.\\[scrollbar-gutter\\:stable\\]{scrollbar-gutter:stable}.\\[word-break\\:break-word\\]{word-break:break-word}.before\\:nt-absolute:before{content:var(--tw-content);position:absolute}.before\\:nt-inset-0:before{content:var(--tw-content);inset:0}.before\\:-nt-right-\\[calc\\(0\\+var\\(--stripes-size\\)\\)\\]:before{content:var(--tw-content);right:calc(var(--stripes-size)*-1)}.before\\:nt-m-1:before{content:var(--tw-content);margin:.25rem}@keyframes nt-stripes{0%{content:var(--tw-content);transform:translateX(0)}to{content:var(--tw-content);transform:translateX(calc(var(--stripes-size)*-1))}}.before\\:nt-animate-stripes:before{animation:nt-stripes 1s linear infinite paused;content:var(--tw-content)}.before\\:nt-rounded-full:before{border-radius:var(--nv-radius-full);content:var(--tw-content)}.before\\:nt-rounded-lg:before{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.before\\:nt-rounded-md:before{border-radius:var(--nv-radius-md);content:var(--tw-content)}.before\\:nt-rounded-xl:before{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.before\\:nt-border:before{border-width:1px;content:var(--tw-content)}.before\\:nt-border-primary-foreground-alpha-100:before{border-color:var(--nv-color-primary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-border-secondary-foreground-alpha-100:before{border-color:var(--nv-color-secondary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-bg-severity-high-alpha-200:before{background-color:var(--nv-color-severity-high-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-high-alpha-300:before{background-color:var(--nv-color-severity-high-alpha-300);content:var(--tw-content)}.before\\:nt-bg-severity-low-alpha-200:before{background-color:var(--nv-color-severity-low-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-low-alpha-300:before{background-color:var(--nv-color-severity-low-alpha-300);content:var(--tw-content)}.before\\:nt-bg-severity-medium-alpha-200:before{background-color:var(--nv-color-severity-medium-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-medium-alpha-300:before{background-color:var(--nv-color-severity-medium-alpha-300);content:var(--tw-content)}.before\\:nt-bg-dev-stripes-gradient:before{background-image:repeating-linear-gradient(135deg,oklch(from var(--nv-color-stripes) l c h/.1) 25%,oklch(from var(--nv-color-stripes) l c h/.1) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 75%);content:var(--tw-content)}.before\\:nt-bg-\\[length\\:var\\(--stripes-size\\)_var\\(--stripes-size\\)\\]:before{background-size:var(--stripes-size) var(--stripes-size);content:var(--tw-content)}.before\\:nt-content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.before\\:\\[mask-image\\:linear-gradient\\(transparent_0\\%\\2c black\\)\\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.after\\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\\:nt-inset-0:after{content:var(--tw-content);inset:0}.after\\:-nt-top-12:after{content:var(--tw-content);top:-3rem}.after\\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:nt-left-0:after{content:var(--tw-content);left:0}.after\\:nt-left-0\\.5:after{content:var(--tw-content);left:.125rem}.after\\:nt-top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:nt-size-3:after{content:var(--tw-content);height:.75rem;width:.75rem}.after\\:nt-h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:nt-w-full:after{content:var(--tw-content);width:100%}.after\\:nt-translate-x-1\\/2:after{--tw-translate-x:50%}.after\\:nt-translate-x-1\\/2:after,.after\\:nt-translate-x-full:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\\:nt-translate-x-full:after{--tw-translate-x:100%}.after\\:nt-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-lg:after{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-bg-primary-alpha-400:hover{background-color:var(--nv-color-primary-alpha-400)}.hover\\:nt-bg-severity-high-alpha-50:hover{background-color:var(--nv-color-severity-high-alpha-50)}.hover\\:nt-bg-severity-low-alpha-50:hover{background-color:var(--nv-color-severity-low-alpha-50)}.hover\\:nt-bg-severity-medium-alpha-50:hover{background-color:var(--nv-color-severity-medium-alpha-50)}.hover\\:nt-text-foreground-alpha-800:hover{color:var(--nv-color-foreground-alpha-800)}.before\\:hover\\:\\[animation-play-state\\:running\\]:hover:before{animation-play-state:running;content:var(--tw-content)}.hover\\:after\\:nt-opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus\\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-rounded-lg:focus-visible{border-radius:var(--nv-radius-lg)}.focus-visible\\:nt-rounded-md:focus-visible{border-radius:var(--nv-radius-md)}.focus-visible\\:nt-rounded-xl:focus-visible{border-radius:var(--nv-radius-xl)}.focus-visible\\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\\:nt-ring-ring:focus-visible{--tw-ring-color:var(--nv-color-ring)}.focus-visible\\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\\:nt-opacity-20:disabled{opacity:.2}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100{opacity:1}.nt-group:hover .group-hover\\:nt-bg-severity-high-alpha-500{background-color:var(--nv-color-severity-high-alpha-500)}.nt-group:hover .group-hover\\:nt-bg-severity-low-alpha-500{background-color:var(--nv-color-severity-low-alpha-500)}.nt-group:hover .group-hover\\:nt-bg-severity-medium-alpha-500{background-color:var(--nv-color-severity-medium-alpha-500)}.nt-group:hover .group-hover\\:nt-opacity-0{opacity:0}.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.nt-peer:focus-visible~.peer-focus-visible\\:nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-peer:focus-visible~.peer-focus-visible\\:nt-ring-2{--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)}.nt-peer:focus-visible~.peer-focus-visible\\:nt-ring-offset-2{--tw-ring-offset-width:2px}.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\\]\\:nt-cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\\[checked\\]\\:nt-border-none[data-checked],.data-\\[indeterminate\\]\\:nt-border-none[data-indeterminate]{border-style:none}.data-\\[checked\\]\\:nt-bg-primary[data-checked],.data-\\[indeterminate\\]\\:nt-bg-primary[data-indeterminate]{background-color:var(--nv-color-primary)}.data-\\[checked\\]\\:nt-text-primary-foreground[data-checked]{color:var(--nv-color-primary-foreground)}.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-\\[indeterminate\\]\\:nt-text-primary-foreground[data-indeterminate]{color:var(--nv-color-primary-foreground)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[disabled\\]\\:nt-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-12 .nv-notificationList{padding-bottom:3rem}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-8 .nv-notificationList{padding-bottom:2rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-12 .nv-preferencesContainer{padding-bottom:3rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-8 .nv-preferencesContainer{padding-bottom:2rem}.\\[\\&_stop\\]\\:nt-transition-\\[stop-color\\] stop{transition-duration:.15s;transition-property:stop-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
40
+ // _e80bchi7b:/Users/pavlotymchuk/projects/js/novu-2/packages/js/src/ui/index.directcss
41
+ var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}}.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.\\!nt-pointer-events-auto{pointer-events:auto!important}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-bottom-0{bottom:0}.nt-left-0{left:0}.nt-left-0\\.5{left:.125rem}.nt-right-0{right:0}.nt-right-3{right:.75rem}.nt-top-0{top:0}.nt-top-0\\.5{top:.125rem}.nt-top-3{top:.75rem}.nt-z-10{z-index:10}.nt-z-\\[-1\\]{z-index:-1}.-nt-m-1{margin:-.25rem}.nt-mx-auto{margin-left:auto;margin-right:auto}.-nt-mt-2{margin-top:-.5rem}.-nt-mt-\\[2px\\]{margin-top:-2px}.nt--mt-\\[50px\\]{margin-top:-50px}.nt-mb-1{margin-bottom:.25rem}.nt-mb-2{margin-bottom:.5rem}.nt-mb-3{margin-bottom:.75rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-1{margin-left:.25rem}.nt-ml-2{margin-left:.5rem}.nt-ml-auto{margin-left:auto}.nt-mr-2{margin-right:.5rem}.nt-mr-auto{margin-right:auto}.nt-mt-1{margin-top:.25rem}.nt-mt-1\\.5{margin-top:.375rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.nt-size-1\\.5{height:.375rem;width:.375rem}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\\.5{height:.625rem;width:.625rem}.nt-size-3{height:.75rem;width:.75rem}.nt-size-3\\.5{height:.875rem;width:.875rem}.nt-size-4{height:1rem;width:1rem}.nt-size-5{height:1.25rem;width:1.25rem}.nt-size-6{height:1.5rem;width:1.5rem}.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-3\\.5{height:.875rem}.nt-h-4{height:1rem}.nt-h-5{height:1.25rem}.nt-h-6{height:1.5rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-9{height:2.25rem}.nt-h-\\[600px\\]{height:600px}.nt-h-auto{height:auto}.nt-h-fit{height:fit-content}.nt-h-full{height:100%}.nt-max-h-\\[160px\\]{max-height:160px}.nt-min-h-0{min-height:0}.nt-min-h-\\[272px\\]{min-height:272px}.nt-w-1\\.5{width:.375rem}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-5{width:1.25rem}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[260px\\]{width:260px}.nt-w-\\[350px\\]{width:350px}.nt-w-\\[3px\\]{width:3px}.nt-w-\\[400px\\]{width:400px}.nt-w-\\[60px\\]{width:60px}.nt-w-\\[calc\\(2ch\\+2rem\\)\\]{width:calc(2ch + 2rem)}.nt-w-fit{width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-min-w-\\[120px\\]{min-width:120px}.nt-min-w-\\[220px\\]{min-width:220px}.nt-min-w-\\[74px\\]{min-width:74px}.nt-max-w-56{max-width:14rem}.nt-max-w-\\[120px\\]{max-width:120px}.nt-max-w-\\[220px\\]{max-width:220px}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.nt-translate-x-1\\/2{--tw-translate-x:50%}.nt-transform,.nt-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes nt-shimmer{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.nt-animate-shimmer{animation:nt-shimmer 1.5s ease-in-out infinite}@keyframes nt-spin{to{transform:rotate(1turn)}}.nt-animate-spin{animation:nt-spin 1s linear infinite}.nt-cursor-default{cursor:default}.nt-cursor-not-allowed{cursor:not-allowed}.nt-cursor-pointer{cursor:pointer}.nt-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.nt-flex-row{flex-direction:row}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-end{justify-content:flex-end}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-1\\.5{gap:.375rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-auto{overflow:auto}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-overflow-x-hidden{overflow-x:hidden}.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-rounded-b-lg{border-bottom-left-radius:var(--nv-radius-lg);border-bottom-right-radius:var(--nv-radius-lg)}.nt-border{border-width:1px}.nt-border-b{border-bottom-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-border{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-border-neutral-alpha-50{border-color:var(--nv-color-neutral-alpha-50)}.nt-border-primary{border-color:var(--nv-color-primary)}.nt-border-t-neutral-alpha-200{border-top-color:var(--nv-color-neutral-alpha-200)}.nt-bg-\\[oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.1\\)\\]{background-color:oklch(from var(--nv-color-stripes) l c h/.1)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.nt-bg-neutral-alpha-100{background-color:var(--nv-color-neutral-alpha-100)}.nt-bg-neutral-alpha-25{background-color:var(--nv-color-neutral-alpha-25)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-primary-alpha-300{background-color:var(--nv-color-primary-alpha-300)}.nt-bg-primary-alpha-400{background-color:var(--nv-color-primary-alpha-400)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-severity-high{background-color:var(--nv-color-severity-high)}.nt-bg-severity-high-alpha-100{background-color:var(--nv-color-severity-high-alpha-100)}.nt-bg-severity-high-alpha-200{background-color:var(--nv-color-severity-high-alpha-200)}.nt-bg-severity-high-alpha-300{background-color:var(--nv-color-severity-high-alpha-300)}.nt-bg-severity-high-alpha-50{background-color:var(--nv-color-severity-high-alpha-50)}.nt-bg-severity-low{background-color:var(--nv-color-severity-low)}.nt-bg-severity-low-alpha-100{background-color:var(--nv-color-severity-low-alpha-100)}.nt-bg-severity-low-alpha-200{background-color:var(--nv-color-severity-low-alpha-200)}.nt-bg-severity-low-alpha-300{background-color:var(--nv-color-severity-low-alpha-300)}.nt-bg-severity-low-alpha-50{background-color:var(--nv-color-severity-low-alpha-50)}.nt-bg-severity-medium{background-color:var(--nv-color-severity-medium)}.nt-bg-severity-medium-alpha-100{background-color:var(--nv-color-severity-medium-alpha-100)}.nt-bg-severity-medium-alpha-200{background-color:var(--nv-color-severity-medium-alpha-200)}.nt-bg-severity-medium-alpha-300{background-color:var(--nv-color-severity-medium-alpha-300)}.nt-bg-severity-medium-alpha-50{background-color:var(--nv-color-severity-medium-alpha-50)}.nt-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.nt-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.nt-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.nt-from-foreground-alpha-50{--tw-gradient-from:var(--nv-color-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-primary-foreground-alpha-200{--tw-gradient-from:var(--nv-color-primary-foreground-alpha-200) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-20\\%{--tw-gradient-from-position:20%}.nt-to-background{--tw-gradient-to:var(--nv-color-background) var(--tw-gradient-to-position)}.nt-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.nt-object-cover{object-fit:cover}.nt-p-0{padding:0}.nt-p-0\\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-2\\.5{padding:.625rem}.nt-p-3{padding:.75rem}.nt-p-4{padding:1rem}.nt-px-1{padding-left:.25rem;padding-right:.25rem}.nt-px-2{padding-left:.5rem;padding-right:.5rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-4{padding-left:1rem;padding-right:1rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\\[6px\\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.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-12{padding-bottom:3rem}.nt-pb-2{padding-bottom:.5rem}.nt-pb-\\[0\\.625rem\\]{padding-bottom:.625rem}.nt-pr-0{padding-right:0}.nt-pt-2{padding-top:.5rem}.nt-pt-2\\.5{padding-top:.625rem}.nt-pt-8{padding-top:2rem}.nt-text-left{text-align:left}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.nt-text-\\[0\\.8rem\\]{font-size:.8rem}.nt-text-\\[12px\\]{font-size:12px}.nt-text-base{font-size:var(--nv-font-size-base);line-height:var(--nv-line-height-base)}.nt-text-sm{font-size:var(--nv-font-size-sm);line-height:var(--nv-line-height-sm)}.nt-text-xl{font-size:var(--nv-font-size-xl);line-height:var(--nv-line-height-xl)}.nt-text-xs{font-size:var(--nv-font-size-xs);line-height:var(--nv-line-height-xs)}.nt-font-medium{font-weight:500}.nt-font-normal{font-weight:400}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-\\[\\#000000\\]{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.nt-text-neutral-alpha-500{color:var(--nv-color-neutral-alpha-500)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nt-underline{text-decoration-line:underline}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.nt-opacity-50{opacity:.5}.nt-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-primary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-primary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-secondary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\]{--tw-shadow:0px 1px 2px 0px #0a0d1408;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\],.nt-shadow-dropdown{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-dropdown{--tw-shadow:0px 12px 16px -4px oklch(from var(--nv-color-shadow) l c h/0.08),0px 4px 6px -2px oklch(from var(--nv-color-shadow) l c h/0.03);--tw-shadow-colored:0px 12px 16px -4px var(--tw-shadow-color),0px 4px 6px -2px var(--tw-shadow-color)}.nt-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.nt-shadow-lg,.nt-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.nt-shadow-popover{--tw-shadow:0px 8px 26px 0px oklch(from var(--nv-color-shadow) l c h/0.08),0px 2px 6px 0px oklch(from var(--nv-color-shadow) l c h/0.12);--tw-shadow-colored:0px 8px 26px 0px var(--tw-shadow-color),0px 2px 6px 0px var(--tw-shadow-color)}.nt-shadow-popover,.nt-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 oklch(from var(--nv-color-shadow) l c h/0.08);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-ring-offset-background{--tw-ring-offset-color:var(--nv-color-background)}.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-\\[width\\]{transition-duration:.15s;transition-property:width;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-transition-opacity{transition-duration:.15s;transition-property:opacity;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)}.nt-will-change-\\[width\\]{will-change:width}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-foreground\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-foreground) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-high\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-high) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-high\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-high) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-low\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-low) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-low\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-low) 80% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-medium\\)_45\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-medium) 45% c h)}.\\[--bell-gradient-end\\:oklch\\(from_var\\(--nv-color-severity-medium\\)_80\\%_c_h\\)\\]{--bell-gradient-end:oklch(from var(--nv-color-severity-medium) 80% c h)}.\\[--bell-gradient-start\\:var\\(--nv-color-foreground\\)\\]{--bell-gradient-start:var(--nv-color-foreground)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-high\\)\\]{--bell-gradient-start:var(--nv-color-severity-high)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-low\\)\\]{--bell-gradient-start:var(--nv-color-severity-low)}.\\[--bell-gradient-start\\:var\\(--nv-color-severity-medium\\)\\]{--bell-gradient-start:var(--nv-color-severity-medium)}.\\[interpolate-size\\:allow-keywords\\]{interpolate-size:allow-keywords}.\\[line-height\\:16px\\]{line-height:16px}.\\[scrollbar-gutter\\:stable\\]{scrollbar-gutter:stable}.\\[word-break\\:break-word\\]{word-break:break-word}.before\\:nt-absolute:before{content:var(--tw-content);position:absolute}.before\\:nt-inset-0:before{content:var(--tw-content);inset:0}.before\\:-nt-right-\\[calc\\(0\\+var\\(--stripes-size\\)\\)\\]:before{content:var(--tw-content);right:calc(var(--stripes-size)*-1)}.before\\:nt-m-1:before{content:var(--tw-content);margin:.25rem}@keyframes nt-stripes{0%{content:var(--tw-content);transform:translateX(0)}to{content:var(--tw-content);transform:translateX(calc(var(--stripes-size)*-1))}}.before\\:nt-animate-stripes:before{animation:nt-stripes 1s linear infinite paused;content:var(--tw-content)}.before\\:nt-rounded-full:before{border-radius:var(--nv-radius-full);content:var(--tw-content)}.before\\:nt-rounded-md:before{border-radius:var(--nv-radius-md);content:var(--tw-content)}.before\\:nt-rounded-xl:before{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.before\\:nt-border:before{border-width:1px;content:var(--tw-content)}.before\\:nt-border-primary-foreground-alpha-100:before{border-color:var(--nv-color-primary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-border-secondary-foreground-alpha-100:before{border-color:var(--nv-color-secondary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-bg-severity-high-alpha-200:before{background-color:var(--nv-color-severity-high-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-high-alpha-300:before{background-color:var(--nv-color-severity-high-alpha-300);content:var(--tw-content)}.before\\:nt-bg-severity-low-alpha-200:before{background-color:var(--nv-color-severity-low-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-low-alpha-300:before{background-color:var(--nv-color-severity-low-alpha-300);content:var(--tw-content)}.before\\:nt-bg-severity-medium-alpha-200:before{background-color:var(--nv-color-severity-medium-alpha-200);content:var(--tw-content)}.before\\:nt-bg-severity-medium-alpha-300:before{background-color:var(--nv-color-severity-medium-alpha-300);content:var(--tw-content)}.before\\:nt-bg-dev-stripes-gradient:before{background-image:repeating-linear-gradient(135deg,oklch(from var(--nv-color-stripes) l c h/.1) 25%,oklch(from var(--nv-color-stripes) l c h/.1) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 75%);content:var(--tw-content)}.before\\:nt-bg-\\[length\\:var\\(--stripes-size\\)_var\\(--stripes-size\\)\\]:before{background-size:var(--stripes-size) var(--stripes-size);content:var(--tw-content)}.before\\:nt-content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.before\\:\\[mask-image\\:linear-gradient\\(transparent_0\\%\\2c black\\)\\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.after\\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\\:nt-inset-0:after{content:var(--tw-content);inset:0}.after\\:-nt-top-12:after{content:var(--tw-content);top:-3rem}.after\\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:nt-left-0:after{content:var(--tw-content);left:0}.after\\:nt-left-0\\.5:after{content:var(--tw-content);left:.125rem}.after\\:nt-top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:nt-size-3:after{content:var(--tw-content);height:.75rem;width:.75rem}.after\\:nt-h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:nt-w-full:after{content:var(--tw-content);width:100%}.after\\:nt-translate-x-1\\/2:after{--tw-translate-x:50%}.after\\:nt-translate-x-1\\/2:after,.after\\:nt-translate-x-full:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\\:nt-translate-x-full:after{--tw-translate-x:100%}.after\\:nt-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-bg-primary-alpha-400:hover{background-color:var(--nv-color-primary-alpha-400)}.hover\\:nt-bg-severity-high-alpha-50:hover{background-color:var(--nv-color-severity-high-alpha-50)}.hover\\:nt-bg-severity-low-alpha-50:hover{background-color:var(--nv-color-severity-low-alpha-50)}.hover\\:nt-bg-severity-medium-alpha-50:hover{background-color:var(--nv-color-severity-medium-alpha-50)}.hover\\:nt-text-foreground-alpha-800:hover{color:var(--nv-color-foreground-alpha-800)}.before\\:hover\\:\\[animation-play-state\\:running\\]:hover:before{animation-play-state:running;content:var(--tw-content)}.hover\\:after\\:nt-opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus\\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-rounded-lg:focus-visible{border-radius:var(--nv-radius-lg)}.focus-visible\\:nt-rounded-md:focus-visible{border-radius:var(--nv-radius-md)}.focus-visible\\:nt-rounded-xl:focus-visible{border-radius:var(--nv-radius-xl)}.focus-visible\\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\\:nt-ring-ring:focus-visible{--tw-ring-color:var(--nv-color-ring)}.focus-visible\\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\\:nt-opacity-20:disabled{opacity:.2}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100{opacity:1}.nt-group:hover .group-hover\\:nt-bg-severity-high-alpha-500{background-color:var(--nv-color-severity-high-alpha-500)}.nt-group:hover .group-hover\\:nt-bg-severity-low-alpha-500{background-color:var(--nv-color-severity-low-alpha-500)}.nt-group:hover .group-hover\\:nt-bg-severity-medium-alpha-500{background-color:var(--nv-color-severity-medium-alpha-500)}.nt-group:hover .group-hover\\:nt-opacity-0{opacity:0}.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.nt-peer:focus-visible~.peer-focus-visible\\:nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-peer:focus-visible~.peer-focus-visible\\:nt-ring-2{--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)}.nt-peer:focus-visible~.peer-focus-visible\\:nt-ring-offset-2{--tw-ring-offset-width:2px}.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\\]\\:nt-cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\\[checked\\]\\:nt-border-none[data-checked],.data-\\[indeterminate\\]\\:nt-border-none[data-indeterminate]{border-style:none}.data-\\[checked\\]\\:nt-bg-primary[data-checked],.data-\\[indeterminate\\]\\:nt-bg-primary[data-indeterminate]{background-color:var(--nv-color-primary)}.data-\\[checked\\]\\:nt-text-primary-foreground[data-checked]{color:var(--nv-color-primary-foreground)}.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-\\[indeterminate\\]\\:nt-text-primary-foreground[data-indeterminate]{color:var(--nv-color-primary-foreground)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[disabled\\]\\:nt-opacity-50[data-disabled]{opacity:.5}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-12 .nv-notificationList{padding-bottom:3rem}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-8 .nv-notificationList{padding-bottom:2rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-12 .nv-preferencesContainer{padding-bottom:3rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-8 .nv-preferencesContainer{padding-bottom:2rem}.\\[\\&_stop\\]\\:nt-transition-\\[stop-color\\] stop{transition-duration:.15s;transition-property:stop-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
42
42
 
43
43
  // src/ui/config/appearanceKeys.ts
44
- var appearanceKeys = [
44
+ var commonAppearanceKeys = [
45
45
  // Primitives
46
+ "root",
46
47
  "button",
47
48
  "input",
48
49
  "icon",
@@ -50,6 +51,27 @@ var appearanceKeys = [
50
51
  "popoverContent",
51
52
  "popoverTrigger",
52
53
  "popoverClose",
54
+ "collapsible",
55
+ "tooltipContent",
56
+ "tooltipTrigger"
57
+ ];
58
+ var inboxAppearanceKeys = [
59
+ // General
60
+ "bellIcon",
61
+ "lockIcon",
62
+ "bellContainer",
63
+ "severityHigh__bellContainer",
64
+ "severityMedium__bellContainer",
65
+ "severityLow__bellContainer",
66
+ "bellSeverityGlow",
67
+ "severityGlowHigh__bellSeverityGlow",
68
+ "severityGlowMedium__bellSeverityGlow",
69
+ "severityGlowLow__bellSeverityGlow",
70
+ "bellDot",
71
+ "preferences__button",
72
+ "preferencesContainer",
73
+ "inboxHeader",
74
+ "loading",
53
75
  "dropdownContent",
54
76
  "dropdownTrigger",
55
77
  "dropdownItem",
@@ -58,9 +80,6 @@ var appearanceKeys = [
58
80
  "dropdownItemLeft__icon",
59
81
  "dropdownItemRight__icon",
60
82
  "dropdownItem__icon",
61
- "collapsible",
62
- "tooltipContent",
63
- "tooltipTrigger",
64
83
  "datePicker",
65
84
  "datePickerGrid",
66
85
  "datePickerGridRow",
@@ -99,23 +118,6 @@ var appearanceKeys = [
99
118
  "tabsContent",
100
119
  "tabsTrigger",
101
120
  "dots",
102
- // General
103
- "root",
104
- "bellIcon",
105
- "lockIcon",
106
- "bellContainer",
107
- "severityHigh__bellContainer",
108
- "severityMedium__bellContainer",
109
- "severityLow__bellContainer",
110
- "bellSeverityGlow",
111
- "severityGlowHigh__bellSeverityGlow",
112
- "severityGlowMedium__bellSeverityGlow",
113
- "severityGlowLow__bellSeverityGlow",
114
- "bellDot",
115
- "preferences__button",
116
- "preferencesContainer",
117
- "inboxHeader",
118
- "loading",
119
121
  // Inbox
120
122
  "inboxContent",
121
123
  "inbox__popoverTrigger",
@@ -304,8 +306,51 @@ var appearanceKeys = [
304
306
  // Text formatting
305
307
  "strong"
306
308
  ];
307
- var defaultLocalization = {
308
- locale: "en-US",
309
+ var subscriptionAppearanceKeys = [
310
+ // Subscription
311
+ "subscriptionContainer",
312
+ // Subscription Button
313
+ "subscriptionButton__button",
314
+ "subscriptionButtonContainer",
315
+ "subscriptionButtonIcon",
316
+ "subscriptionButtonLabel",
317
+ // Subscription Popover
318
+ "subscription__popoverTriggerContainer",
319
+ "subscription__popoverTrigger",
320
+ "subscriptionTriggerIcon",
321
+ "subscription__popoverContent",
322
+ // Subscription Preferences
323
+ "subscriptionPreferencesContainer",
324
+ "subscriptionPreferencesHeaderContainer",
325
+ "subscriptionPreferencesHeader",
326
+ "subscriptionPreferencesInfoIcon",
327
+ "subscriptionPreferencesContent",
328
+ "subscriptionPreferencesGroupsContainer",
329
+ // Subscription Preferences Fallback
330
+ "subscriptionPreferencesFallback",
331
+ "subscriptionPreferencesFallbackTexts",
332
+ "subscriptionPreferencesFallbackHeader",
333
+ "subscriptionPreferencesFallbackDescription",
334
+ // Subscription Preference Row
335
+ "subscriptionPreferenceRow",
336
+ "subscriptionPreferenceLabel",
337
+ // Subscription Preference Group Row
338
+ "subscriptionPreferenceGroupContainer",
339
+ "subscriptionPreferenceGroupHeader",
340
+ "subscriptionPreferenceGroupLabelContainer",
341
+ "subscriptionPreferenceGroupLabelIcon",
342
+ "subscriptionPreferenceGroupLabel",
343
+ "subscriptionPreferenceGroupActionsContainer",
344
+ "subscriptionPreferenceGroupActionsContainerRight__icon",
345
+ "subscriptionPreferenceGroupBody",
346
+ "subscriptionPreferenceGroupWorkflowRow",
347
+ "subscriptionPreferenceGroupWorkflowLabel"
348
+ ];
349
+ var appearanceKeys = [...commonAppearanceKeys, ...inboxAppearanceKeys, ...subscriptionAppearanceKeys];
350
+ var commonLocalization = {
351
+ locale: "en-US"
352
+ };
353
+ var defaultInboxLocalization = chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, commonLocalization), {
309
354
  "inbox.filters.dropdownOptions.unread": "Unread only",
310
355
  "inbox.filters.dropdownOptions.default": "Unread & read",
311
356
  "inbox.filters.dropdownOptions.archived": "Archived",
@@ -360,7 +405,18 @@ var defaultLocalization = {
360
405
  "snooze.options.customTime": "Custom time...",
361
406
  "snooze.options.inOneDay": "Tomorrow",
362
407
  "snooze.options.inOneWeek": "Next week"
363
- };
408
+ });
409
+ var defaultSubscriptionLocalization = chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, commonLocalization), {
410
+ "subscription.subscribe": "Subscribe",
411
+ "subscription.unsubscribe": "Unsubscribe",
412
+ "subscription.preferences.header": "Manage subscription",
413
+ "subscription.preferences.headerInfo": "Manage which updates you\u2019d like to receive. Note: Workflow and global settings control delivery and take precedence when disabled.",
414
+ "subscription.preferences.notSubscribed.header": "You\u2019re not subscribed.",
415
+ "subscription.preferences.notSubscribed.description": "Subscribe to receive updates on new activity.",
416
+ "subscription.preferences.empty.header": "You\u2019re subscribed.",
417
+ "subscription.preferences.empty.description": "Nothing to manage right now."
418
+ });
419
+ var defaultLocalization = chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, defaultInboxLocalization), defaultSubscriptionLocalization);
364
420
  var [dynamicLocalization, setDynamicLocalization] = solidJs.createSignal({});
365
421
 
366
422
  // src/ui/config/defaultVariables.ts
@@ -393,7 +449,10 @@ function createInfiniteScroll(fetcher, options) {
393
449
  const [after, setAfter] = solidJs.createSignal(void 0);
394
450
  const [end, setEnd] = solidJs.createSignal(false);
395
451
  const [contents, { mutate, refetch }] = solidJs.createResource(
396
- () => ({ trigger: true, after: after() }),
452
+ () => {
453
+ var _a;
454
+ return { trigger: true, after: after(), dependency: (_a = options.dependency) == null ? void 0 : _a.call(options) };
455
+ },
397
456
  (params) => fetcher(params.after)
398
457
  );
399
458
  let observedElement = null;
@@ -747,10 +806,10 @@ var NotificationVisibilityTracker = class {
747
806
 
748
807
  // src/ui/helpers/useNotificationVisibility.ts
749
808
  function useNotificationVisibility() {
750
- const novu = useNovu();
809
+ const novuAccessor = useNovu();
751
810
  let tracker = null;
752
- solidJs.onMount(() => {
753
- tracker = new NotificationVisibilityTracker(novu.notifications.inboxService);
811
+ solidJs.createEffect(() => {
812
+ tracker = new NotificationVisibilityTracker(novuAccessor().notifications.inboxService);
754
813
  solidJs.onCleanup(() => {
755
814
  if (tracker) {
756
815
  tracker.destroy();
@@ -990,6 +1049,9 @@ var useStyle = () => {
990
1049
  iconKey,
991
1050
  context
992
1051
  }) => {
1052
+ if (!key) {
1053
+ return cn(className);
1054
+ }
993
1055
  const appearanceKeyParts = key.split("__");
994
1056
  let finalAppearanceKeys = [];
995
1057
  for (let i = 0; i < appearanceKeyParts.length; i += 1) {
@@ -1084,46 +1146,32 @@ function requestLock(id, cb) {
1084
1146
  promiseResolve();
1085
1147
  };
1086
1148
  }
1087
- var useBrowserTabsChannel = ({
1088
- channelName,
1089
- onMessage
1090
- }) => {
1091
- const [tabsChannel] = solidJs.createSignal(new BroadcastChannel(channelName));
1092
- const postMessage = (args) => {
1093
- const channel = tabsChannel();
1094
- channel.postMessage(args);
1095
- };
1096
- solidJs.onMount(() => {
1097
- const listener = (event) => {
1098
- onMessage(event.data);
1099
- };
1100
- const channel = tabsChannel();
1101
- channel.addEventListener("message", listener);
1102
- solidJs.onCleanup(() => {
1103
- channel.removeEventListener("message", listener);
1104
- });
1105
- });
1106
- return { postMessage };
1107
- };
1108
1149
 
1109
1150
  // src/ui/helpers/useWebSocketEvent.ts
1110
1151
  var useWebSocketEvent = ({
1111
1152
  event: webSocketEvent,
1112
1153
  eventHandler: onMessage
1113
1154
  }) => {
1114
- const novu = useNovu();
1115
- const channelName = `nv_ws_connection:a=${novu.applicationIdentifier}:s=${novu.subscriberId}:c=${novu.contextKey}:e=${webSocketEvent}`;
1116
- const { postMessage } = useBrowserTabsChannel({ channelName, onMessage });
1117
- const updateReadCount = (data) => {
1118
- onMessage(data);
1119
- postMessage(data);
1120
- };
1121
- solidJs.onMount(() => {
1155
+ const novuAccessor = useNovu();
1156
+ solidJs.createEffect(() => {
1157
+ const currentNovu = novuAccessor();
1158
+ const channelName = `nv_ws_connection:a=${currentNovu.applicationIdentifier}:s=${currentNovu.subscriberId}:c=${currentNovu.contextKey}:e=${webSocketEvent}`;
1159
+ const tabsChannel = new BroadcastChannel(channelName);
1160
+ const listener = (event) => {
1161
+ onMessage(event.data);
1162
+ };
1163
+ tabsChannel.addEventListener("message", listener);
1164
+ const updateReadCount = (data) => {
1165
+ onMessage(data);
1166
+ tabsChannel.postMessage(data);
1167
+ };
1122
1168
  let cleanup;
1123
1169
  const resolveLock = requestLock(channelName, () => {
1124
- cleanup = novu.on(webSocketEvent, updateReadCount);
1170
+ cleanup = currentNovu.on(webSocketEvent, updateReadCount);
1125
1171
  });
1126
1172
  solidJs.onCleanup(() => {
1173
+ tabsChannel.removeEventListener("message", listener);
1174
+ tabsChannel.close();
1127
1175
  if (cleanup) {
1128
1176
  cleanup();
1129
1177
  }
@@ -1243,9 +1291,10 @@ var useNovuEvent = ({
1243
1291
  event,
1244
1292
  eventHandler
1245
1293
  }) => {
1246
- const novu = useNovu();
1247
- solidJs.onMount(() => {
1248
- const cleanup = novu.on(event, eventHandler);
1294
+ const novuAccessor = useNovu();
1295
+ solidJs.createEffect(() => {
1296
+ const currentNovu = novuAccessor();
1297
+ const cleanup = currentNovu.on(event, eventHandler);
1249
1298
  solidJs.onCleanup(() => {
1250
1299
  cleanup();
1251
1300
  });
@@ -1287,15 +1336,6 @@ function useLocalization() {
1287
1336
  return context;
1288
1337
  }
1289
1338
 
1290
- // src/ui/types.ts
1291
- var NotificationStatus = /* @__PURE__ */ ((NotificationStatus2) => {
1292
- NotificationStatus2["UNREAD_READ"] = "unreadRead";
1293
- NotificationStatus2["UNREAD"] = "unread";
1294
- NotificationStatus2["ARCHIVED"] = "archived";
1295
- NotificationStatus2["SNOOZED"] = "snoozed";
1296
- return NotificationStatus2;
1297
- })(NotificationStatus || {});
1298
-
1299
1339
  // src/ui/context/InboxContext.tsx
1300
1340
  var InboxContext = solidJs.createContext(void 0);
1301
1341
  var STATUS_TO_FILTER = {
@@ -1455,11 +1495,12 @@ var useInboxContext = () => {
1455
1495
  };
1456
1496
  var NovuContext = solidJs.createContext(void 0);
1457
1497
  function NovuProvider(props) {
1458
- const novu = solidJs.createMemo(() => props.novu || new chunkQQNKEWGC_js.Novu(props.options));
1498
+ const novu = solidJs.createMemo(() => {
1499
+ const novuValue = typeof props.novu === "function" ? props.novu() : props.novu;
1500
+ return novuValue || new chunkSZEUW4CB_js.Novu(props.options);
1501
+ });
1459
1502
  return web.createComponent(NovuContext.Provider, {
1460
- get value() {
1461
- return novu();
1462
- },
1503
+ value: novu,
1463
1504
  get children() {
1464
1505
  return props.children;
1465
1506
  }
@@ -1477,7 +1518,7 @@ function useNovu() {
1477
1518
  var MIN_AMOUNT_OF_NOTIFICATIONS = 1;
1478
1519
  var CountContext = solidJs.createContext(void 0);
1479
1520
  var CountProvider = (props) => {
1480
- const novu = useNovu();
1521
+ const novuAccessor = useNovu();
1481
1522
  const {
1482
1523
  isOpened,
1483
1524
  tabs,
@@ -1513,7 +1554,7 @@ var CountProvider = (props) => {
1513
1554
  });
1514
1555
  const {
1515
1556
  data
1516
- } = yield novu.notifications.count({
1557
+ } = yield novuAccessor().notifications.count({
1517
1558
  filters
1518
1559
  });
1519
1560
  if (!data) {
@@ -1533,7 +1574,8 @@ var CountProvider = (props) => {
1533
1574
  }
1534
1575
  setUnreadCounts(newMap);
1535
1576
  });
1536
- solidJs.onMount(() => {
1577
+ solidJs.createEffect(() => {
1578
+ novuAccessor();
1537
1579
  updateTabCounts();
1538
1580
  });
1539
1581
  useWebSocketEvent({
@@ -1555,7 +1597,7 @@ var CountProvider = (props) => {
1555
1597
  }
1556
1598
  });
1557
1599
  const updateNewNotificationCountsOrCache = (tabLabel, notification, tags, data, severity) => {
1558
- const notificationsCache = novu.notifications.cache;
1600
+ const notificationsCache = novuAccessor().notifications.cache;
1559
1601
  const limitValue = limit();
1560
1602
  const tabSpecificFilterForCache = chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, filter()), {
1561
1603
  tags,
@@ -1607,8 +1649,8 @@ var CountProvider = (props) => {
1607
1649
  const tabTags = getTagsFromTab(tab);
1608
1650
  const tabDataFilterCriteria = (_a = tab.filter) == null ? void 0 : _a.data;
1609
1651
  const tabSeverityFilterCriteria = (_b = tab.filter) == null ? void 0 : _b.severity;
1610
- const matchesTagFilter = chunkQQNKEWGC_js.checkNotificationTagFilter(notification.tags, tabTags);
1611
- const matchesDataFilterCriteria = chunkQQNKEWGC_js.checkNotificationDataFilter(notification.data, tabDataFilterCriteria);
1652
+ const matchesTagFilter = chunkSZEUW4CB_js.checkNotificationTagFilter(notification.tags, tabTags);
1653
+ const matchesDataFilterCriteria = chunkSZEUW4CB_js.checkNotificationDataFilter(notification.data, tabDataFilterCriteria);
1612
1654
  const matchesSeverityFilterCriteria = !tabSeverityFilterCriteria || Array.isArray(tabSeverityFilterCriteria) && tabSeverityFilterCriteria.length === 0 || Array.isArray(tabSeverityFilterCriteria) && tabSeverityFilterCriteria.includes(notification.severity) || !Array.isArray(tabSeverityFilterCriteria) && tabSeverityFilterCriteria === notification.severity;
1613
1655
  if (matchesTagFilter && matchesDataFilterCriteria && matchesSeverityFilterCriteria) {
1614
1656
  const filterKey = createKey({
@@ -2507,7 +2549,7 @@ function CopyToClipboard(props) {
2507
2549
  // src/ui/components/elements/Footer.tsx
2508
2550
  var _tmpl$31 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs nt-text-stripes">`);
2509
2551
  var _tmpl$210 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs">\u2022`);
2510
- var _tmpl$32 = /* @__PURE__ */ web.template(`<a target=_blank class="nt-z-10 nt-flex nt-items-center nt-gap-1 nt-justify-center"><span class=nt-text-xs>Inbox by</span><span class=nt-text-xs>Novu`);
2552
+ var _tmpl$32 = /* @__PURE__ */ web.template(`<a target=_blank class="nt-z-10 nt-flex nt-items-center nt-gap-1 nt-justify-center"><span class=nt-text-xs></span><span class=nt-text-xs>Novu`);
2511
2553
  var _tmpl$42 = /* @__PURE__ */ web.template(`<span class=nt-underline>Copy cURL`);
2512
2554
  var _tmpl$52 = /* @__PURE__ */ web.template(`<div class="nt-z-10 nt-flex nt-items-center nt-gap-1 nt-text-xs nt-text-secondary-foreground"><a href=https://go.novu.co/keyless class="nt-underline nt-flex nt-items-center nt-gap-0.5"target=_blank rel="noopener noreferrer">Get API key</a><span>\u2022</span><span>\u2022</span><button type=button class=nt-underline>Send notification`);
2513
2555
  var _tmpl$62 = /* @__PURE__ */ web.template(`<div><div class="nt-flex nt-items-center nt-gap-1">`);
@@ -2517,17 +2559,17 @@ var stripes = `before:nt-content-[""] before:nt-absolute before:nt-inset-0 befor
2517
2559
  var commonAfter = 'after:nt-content-[""] after:nt-absolute after:nt-inset-0 after:-nt-top-12';
2518
2560
  var devModeGradient = `${commonAfter} after:nt-bg-[linear-gradient(180deg,transparent,oklch(from_var(--nv-color-stripes)_l_c_h_/_0.07)_55%,transparent),linear-gradient(180deg,transparent,oklch(from_var(--nv-color-background)_l_c_h_/_0.9)_55%,transparent)]`;
2519
2561
  var prodModeGradient = `${commonAfter} after:nt-bg-[linear-gradient(180deg,transparent,oklch(from_var(--nv-color-background)_l_c_h_/_0.9)_55%,transparent)]`;
2520
- var Footer = () => {
2562
+ var Footer = (props) => {
2521
2563
  const {
2522
2564
  hideBranding,
2523
2565
  isDevelopmentMode,
2524
2566
  isKeyless
2525
2567
  } = useInboxContext();
2526
- const novu = useNovu();
2568
+ const novuAccessor = useNovu();
2527
2569
  function handleTriggerHelloWorld() {
2528
2570
  return chunk7B52C2XE_js.__async(this, null, function* () {
2529
2571
  try {
2530
- yield novu.notifications.triggerHelloWorldEvent();
2572
+ yield novuAccessor().notifications.triggerHelloWorldEvent();
2531
2573
  } catch (error) {
2532
2574
  console.error("Failed to send Hello World from UI via novu.notifications:", error);
2533
2575
  }
@@ -2580,6 +2622,7 @@ var Footer = () => {
2580
2622
  },
2581
2623
  get children() {
2582
2624
  var _el$5 = _tmpl$32(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
2625
+ web.insert(_el$6, () => props.name ? `${props.name} by` : "Inbox by");
2583
2626
  web.insert(_el$5, web.createComponent(Novu2, {
2584
2627
  "class": "nt-size-2.5"
2585
2628
  }), _el$7);
@@ -2622,7 +2665,7 @@ var Footer = () => {
2622
2665
  });
2623
2666
  };
2624
2667
  function getCurrentDomain() {
2625
- if (chunkQQNKEWGC_js.isBrowser()) {
2668
+ if (chunkSZEUW4CB_js.isBrowser()) {
2626
2669
  return window.location.hostname;
2627
2670
  }
2628
2671
  return "";
@@ -2634,7 +2677,7 @@ function getCurlCommand() {
2634
2677
  return "";
2635
2678
  }
2636
2679
  const DEFAULT_BACKEND_URL = typeof window !== "undefined" && window.NOVU_LOCAL_BACKEND_URL || "https://api.novu.co";
2637
- return `curl -X POST ${DEFAULT_BACKEND_URL}/${chunkQQNKEWGC_js.DEFAULT_API_VERSION}/events/trigger -H 'Authorization: Keyless ${identifier}' -H 'Content-Type: application/json' -d '{
2680
+ return `curl -X POST ${DEFAULT_BACKEND_URL}/${chunkSZEUW4CB_js.DEFAULT_API_VERSION}/events/trigger -H 'Authorization: Keyless ${identifier}' -H 'Content-Type: application/json' -d '{
2638
2681
  "name": "hello-world",
2639
2682
  "to": {
2640
2683
  "subscriberId": "keyless-subscriber-id"
@@ -2659,9 +2702,9 @@ var buttonVariants = classVarianceAuthority.cva(cn('nt-inline-flex nt-gap-4 nt-i
2659
2702
  none: "",
2660
2703
  iconSm: "nt-p-1 nt-rounded-md after:nt-rounded-md before:nt-rounded-md focus-visible:nt-rounded-md",
2661
2704
  icon: "nt-p-2.5 nt-rounded-xl before:nt-rounded-xl after:nt-rounded-xl focus-visible:nt-rounded-xl",
2662
- default: "nt-px-2 nt-py-1 nt-rounded-lg focus-visible:nt-rounded-lg before:nt-rounded-lg after:nt-rounded-lg",
2705
+ default: "nt-h-6 nt-px-2 nt-py-1 nt-rounded-md focus-visible:nt-rounded-md before:nt-rounded-md after:nt-rounded-md",
2663
2706
  sm: "nt-px-1 nt-py-px nt-rounded-md nt-text-xs nt-px-1 before:nt-rounded-md focus-visible:nt-rounded-md after:nt-rounded-md",
2664
- lg: "nt-px-8 nt-py-2 nt-text-base before:nt-rounded-lg after:nt-rounded-lg focus-visible:nt-rounded-lg"
2707
+ lg: "nt-px-8 nt-py-2 nt-text-base before:nt-rounded-md after:nt-rounded-md focus-visible:nt-rounded-md"
2665
2708
  }
2666
2709
  },
2667
2710
  defaultVariants: {
@@ -2698,7 +2741,7 @@ var Button = (props) => {
2698
2741
  var _tmpl$34 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round class=size-4><path d="M5 12l5 5l10 -10">`);
2699
2742
  var _tmpl$211 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round class=size-4><path d="M5 12l14 0">`);
2700
2743
  var Checkbox = (props) => {
2701
- const [local, others] = solidJs.splitProps(props, ["class"]);
2744
+ const [local, others] = solidJs.splitProps(props, ["id", "class"]);
2702
2745
  return web.createComponent(CheckboxPrimitive__namespace.Root, web.mergeProps({
2703
2746
  get ["class"]() {
2704
2747
  return cn("nt-items-top nt-group nt-relative nt-flex", local.class);
@@ -2706,7 +2749,10 @@ var Checkbox = (props) => {
2706
2749
  }, others, {
2707
2750
  get children() {
2708
2751
  return [web.createComponent(CheckboxPrimitive__namespace.Input, {
2709
- "class": "nt-peer"
2752
+ "class": "nt-peer",
2753
+ get id() {
2754
+ return local.id;
2755
+ }
2710
2756
  }), web.createComponent(CheckboxPrimitive__namespace.Control, {
2711
2757
  "class": "nt-size-4 nt-shrink-0 nt-rounded-sm nt-border nt-border-primary nt-ring-offset-background data-[disabled]:nt-cursor-not-allowed data-[disabled]:nt-opacity-50 peer-focus-visible:nt-outline-none peer-focus-visible:nt-ring-2 peer-focus-visible:ntring-ring peer-focus-visible:nt-ring-offset-2 data-[checked]:nt-border-none data-[indeterminate]:nt-border-none data-[checked]:nt-bg-primary data-[indeterminate]:nt-bg-primary data-[checked]:nt-text-primary-foreground data-[indeterminate]:nt-text-primary-foreground",
2712
2758
  get children() {
@@ -3168,7 +3214,17 @@ function usePopover() {
3168
3214
 
3169
3215
  // src/ui/components/primitives/Popover/PopoverContent.tsx
3170
3216
  var _tmpl$38 = /* @__PURE__ */ web.template(`<div>`);
3171
- 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");
3217
+ var popoverContentVariants = classVarianceAuthority.cva(cn("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"), {
3218
+ variants: {
3219
+ size: {
3220
+ inbox: "nt-w-[400px] nt-h-[600px]",
3221
+ subscription: "nt-w-[350px] nt-h-auto"
3222
+ }
3223
+ },
3224
+ defaultVariants: {
3225
+ size: "inbox"
3226
+ }
3227
+ });
3172
3228
  var PopoverContentBody = (props) => {
3173
3229
  const {
3174
3230
  open,
@@ -3196,7 +3252,10 @@ var PopoverContentBody = (props) => {
3196
3252
  get ["class"]() {
3197
3253
  return style({
3198
3254
  key: local.appearanceKey || "popoverContent",
3199
- className: cn(popoverContentVariants(), local.class)
3255
+ className: cn(popoverContentVariants({
3256
+ size: props.size
3257
+ }), local.class),
3258
+ context: props.context
3200
3259
  });
3201
3260
  },
3202
3261
  get style() {
@@ -4032,14 +4091,14 @@ var StatusDropdown = () => {
4032
4091
 
4033
4092
  // src/ui/api/hooks/useArchiveAll.ts
4034
4093
  var useArchiveAll = (props) => {
4035
- const novu = useNovu();
4094
+ const novuAccessor = useNovu();
4036
4095
  const archiveAll = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({
4037
4096
  tags,
4038
4097
  data
4039
4098
  } = {}) {
4040
4099
  var _a, _b;
4041
4100
  try {
4042
- yield novu.notifications.archiveAll({ tags, data });
4101
+ yield novuAccessor().notifications.archiveAll({ tags, data });
4043
4102
  (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
4044
4103
  } catch (error) {
4045
4104
  (_b = void 0 ) == null ? void 0 : _b.call(props, error);
@@ -4050,14 +4109,14 @@ var useArchiveAll = (props) => {
4050
4109
 
4051
4110
  // src/ui/api/hooks/useArchiveAllRead.ts
4052
4111
  var useArchiveAllRead = (props) => {
4053
- const novu = useNovu();
4112
+ const novuAccessor = useNovu();
4054
4113
  const archiveAllRead = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({
4055
4114
  tags,
4056
4115
  data
4057
4116
  } = {}) {
4058
4117
  var _a, _b;
4059
4118
  try {
4060
- yield novu.notifications.archiveAllRead({ tags, data });
4119
+ yield novuAccessor().notifications.archiveAllRead({ tags, data });
4061
4120
  (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
4062
4121
  } catch (error) {
4063
4122
  (_b = void 0 ) == null ? void 0 : _b.call(props, error);
@@ -4066,63 +4125,67 @@ var useArchiveAllRead = (props) => {
4066
4125
  return { archiveAllRead };
4067
4126
  };
4068
4127
  var useNotificationsInfiniteScroll = (props) => {
4069
- const novu = useNovu();
4128
+ const novuAccessor = useNovu();
4070
4129
  let filter = chunk7B52C2XE_js.__spreadValues({}, props.options());
4071
4130
  const [data, { initialLoading, setEl, end, mutate, reset }] = createInfiniteScroll(
4072
4131
  (after) => chunk7B52C2XE_js.__async(void 0, null, function* () {
4073
4132
  var _a, _b;
4074
- const { data: data2 } = yield novu.notifications.list(chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.options() || {}), { after }));
4133
+ const { data: data2 } = yield novuAccessor().notifications.list(chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.options() || {}), { after }));
4075
4134
  return { data: (_a = data2 == null ? void 0 : data2.notifications) != null ? _a : [], hasMore: (_b = data2 == null ? void 0 : data2.hasMore) != null ? _b : false };
4076
4135
  }),
4077
4136
  {
4078
- paginationField: "id"
4137
+ paginationField: "id",
4138
+ dependency: novuAccessor
4079
4139
  }
4080
4140
  );
4081
- solidJs.onMount(() => {
4141
+ solidJs.createEffect(() => {
4082
4142
  const listener = ({ data: data2 }) => {
4083
- if (!data2 || !chunkQQNKEWGC_js.isSameFilter(filter, data2.filter)) {
4143
+ if (!data2 || !chunkSZEUW4CB_js.isSameFilter(filter, data2.filter)) {
4084
4144
  return;
4085
4145
  }
4086
4146
  mutate({ data: data2.notifications, hasMore: data2.hasMore });
4087
4147
  };
4088
- const cleanup = novu.on("notifications.list.updated", listener);
4148
+ const cleanup = novuAccessor().on("notifications.list.updated", listener);
4089
4149
  solidJs.onCleanup(() => cleanup());
4090
4150
  });
4091
4151
  solidJs.createEffect(() => chunk7B52C2XE_js.__async(void 0, null, function* () {
4092
4152
  const newFilter = chunk7B52C2XE_js.__spreadValues({}, props.options());
4093
- if (chunkQQNKEWGC_js.isSameFilter(filter, newFilter)) {
4153
+ if (chunkSZEUW4CB_js.isSameFilter(filter, newFilter)) {
4094
4154
  return;
4095
4155
  }
4096
- novu.notifications.clearCache();
4156
+ novuAccessor().notifications.clearCache();
4097
4157
  yield reset();
4098
4158
  filter = newFilter;
4099
4159
  }));
4100
4160
  const refetch = (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({ filter: filter2 }) {
4101
- novu.notifications.clearCache({ filter: filter2 });
4161
+ novuAccessor().notifications.clearCache({ filter: filter2 });
4102
4162
  yield reset();
4103
4163
  });
4104
4164
  return { data, initialLoading, setEl, end, refetch };
4105
4165
  };
4106
4166
  var usePreferences = (options) => {
4107
- const novu = useNovu();
4167
+ const novuAccessor = useNovu();
4108
4168
  const [loading, setLoading] = solidJs.createSignal(true);
4109
- const [preferences, { mutate, refetch }] = solidJs.createResource(options || {}, (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({ tags, severity, criticality }) {
4110
- try {
4111
- const response = yield novu.preferences.list({ tags, severity, criticality });
4112
- return response.data;
4113
- } catch (error) {
4114
- console.error("Error fetching preferences:", error);
4115
- throw error;
4116
- }
4117
- }));
4118
- solidJs.onMount(() => {
4169
+ const [preferences, { mutate, refetch }] = solidJs.createResource(
4170
+ () => chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, options), { dependency: novuAccessor() }),
4171
+ (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({ tags, severity, criticality }) {
4172
+ try {
4173
+ const response = yield novuAccessor().preferences.list({ tags, severity, criticality });
4174
+ return response.data;
4175
+ } catch (error) {
4176
+ console.error("Error fetching preferences:", error);
4177
+ throw error;
4178
+ }
4179
+ })
4180
+ );
4181
+ solidJs.createEffect(() => {
4119
4182
  const listener = ({ data }) => {
4120
4183
  if (!data) {
4121
4184
  return;
4122
4185
  }
4123
4186
  mutate(data);
4124
4187
  };
4125
- const cleanup = novu.on("preferences.list.updated", listener);
4188
+ const cleanup = novuAccessor().on("preferences.list.updated", listener);
4126
4189
  solidJs.onCleanup(() => cleanup());
4127
4190
  });
4128
4191
  solidJs.createEffect(() => {
@@ -4133,14 +4196,14 @@ var usePreferences = (options) => {
4133
4196
 
4134
4197
  // src/ui/api/hooks/useReadAll.ts
4135
4198
  var useReadAll = (props) => {
4136
- const novu = useNovu();
4199
+ const novuAccessor = useNovu();
4137
4200
  const readAll = (..._0) => chunk7B52C2XE_js.__async(void 0, [..._0], function* ({
4138
4201
  tags,
4139
4202
  data
4140
4203
  } = {}) {
4141
4204
  var _a, _b;
4142
4205
  try {
4143
- yield novu.notifications.readAll({ tags, data });
4206
+ yield novuAccessor().notifications.readAll({ tags, data });
4144
4207
  (_a = props == null ? void 0 : props.onSuccess) == null ? void 0 : _a.call(props);
4145
4208
  } catch (error) {
4146
4209
  (_b = void 0 ) == null ? void 0 : _b.call(props, error);
@@ -4643,23 +4706,25 @@ var Switch2 = (props) => {
4643
4706
  className: cn("nt-relative nt-inline-flex nt-cursor-pointer nt-items-center", {
4644
4707
  "nt-opacity-50 nt-cursor-not-allowed": disabled()
4645
4708
  })
4646
- }), _v$2 = disabled(), _v$3 = style({
4709
+ }), _v$2 = props.id, _v$3 = disabled(), _v$4 = style({
4647
4710
  key: "channelSwitchThumb",
4648
4711
  className: cn(`nt-h-4 nt-w-7 nt-rounded-full nt-bg-neutral-alpha-300 after:nt-absolute after:nt-top-0.5 after:nt-size-3 after:nt-left-0.5 after:nt-rounded-full after:nt-bg-background after:nt-transition-all after:nt-content-[''] nt-transition-all nt-duration-200 after:nt-duration-200 shadow-sm`, {
4649
4712
  "nt-bg-primary nt-shadow-none nt-border-neutral-alpha-400 after:nt-translate-x-full after:nt-border-background": isChecked(),
4650
4713
  "after:nt-translate-x-1/2": isIndeterminate()
4651
4714
  })
4652
- }), _v$4 = state();
4715
+ }), _v$5 = state();
4653
4716
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
4654
- _v$2 !== _p$.t && (_el$2.disabled = _p$.t = _v$2);
4655
- _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
4656
- _v$4 !== _p$.o && web.setAttribute(_el$3, "data-state", _p$.o = _v$4);
4717
+ _v$2 !== _p$.t && web.setAttribute(_el$2, "id", _p$.t = _v$2);
4718
+ _v$3 !== _p$.a && (_el$2.disabled = _p$.a = _v$3);
4719
+ _v$4 !== _p$.o && web.className(_el$3, _p$.o = _v$4);
4720
+ _v$5 !== _p$.i && web.setAttribute(_el$3, "data-state", _p$.i = _v$5);
4657
4721
  return _p$;
4658
4722
  }, {
4659
4723
  e: void 0,
4660
4724
  t: void 0,
4661
4725
  a: void 0,
4662
- o: void 0
4726
+ o: void 0,
4727
+ i: void 0
4663
4728
  });
4664
4729
  web.effect(() => _el$2.checked = isChecked());
4665
4730
  return _el$;
@@ -4667,7 +4732,7 @@ var Switch2 = (props) => {
4667
4732
  };
4668
4733
 
4669
4734
  // src/ui/components/elements/Preferences/ChannelRow.tsx
4670
- var _tmpl$57 = /* @__PURE__ */ web.template(`<div><div><div></div><span></span></div><div>`);
4735
+ var _tmpl$57 = /* @__PURE__ */ web.template(`<div><div><div></div><label></label></div><div>`);
4671
4736
  var ChannelRow = (props) => {
4672
4737
  const style = useStyle();
4673
4738
  const updatePreference = (enabled) => chunk7B52C2XE_js.__async(void 0, null, function* () {
@@ -4680,6 +4745,10 @@ var ChannelRow = (props) => {
4680
4745
  });
4681
4746
  const state = () => props.channel.state;
4682
4747
  const channel = () => props.channel.channel;
4748
+ const channelId = () => {
4749
+ var _a;
4750
+ return `channel-${(_a = props.workflowId) != null ? _a : ""}-${channel()}`;
4751
+ };
4683
4752
  return (() => {
4684
4753
  var _el$ = _tmpl$57(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
4685
4754
  web.insert(_el$3, web.createComponent(ChannelIcon, {
@@ -4697,6 +4766,9 @@ var ChannelRow = (props) => {
4697
4766
  }));
4698
4767
  web.insert(_el$4, () => getLabel(channel()));
4699
4768
  web.insert(_el$5, web.createComponent(Switch2, {
4769
+ get id() {
4770
+ return channelId();
4771
+ },
4700
4772
  get state() {
4701
4773
  return state();
4702
4774
  },
@@ -4716,7 +4788,7 @@ var ChannelRow = (props) => {
4716
4788
  }
4717
4789
  }), _v$2 = style({
4718
4790
  key: "channelLabelContainer",
4719
- className: "nt-flex nt-items-center nt-gap-2 nt-text-foreground",
4791
+ className: "nt-flex nt-items-center nt-gap-2 nt-text-foreground nt-w-full",
4720
4792
  context: {
4721
4793
  preference: props.preference,
4722
4794
  preferenceGroup: props.preferenceGroup
@@ -4728,14 +4800,14 @@ var ChannelRow = (props) => {
4728
4800
  preference: props.preference,
4729
4801
  preferenceGroup: props.preferenceGroup
4730
4802
  }
4731
- }), _v$4 = style({
4803
+ }), _v$4 = channelId(), _v$5 = style({
4732
4804
  key: "channelLabel",
4733
- className: "nt-text-sm nt-font-semibold",
4805
+ className: "nt-text-sm nt-font-semibold nt-w-full nt-cursor-pointer",
4734
4806
  context: {
4735
4807
  preference: props.preference,
4736
4808
  preferenceGroup: props.preferenceGroup
4737
4809
  }
4738
- }), _v$5 = style({
4810
+ }), _v$6 = style({
4739
4811
  key: "channelSwitchContainer",
4740
4812
  className: "nt-flex nt-items-center",
4741
4813
  context: {
@@ -4746,15 +4818,17 @@ var ChannelRow = (props) => {
4746
4818
  _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
4747
4819
  _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
4748
4820
  _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
4749
- _v$4 !== _p$.o && web.className(_el$4, _p$.o = _v$4);
4750
- _v$5 !== _p$.i && web.className(_el$5, _p$.i = _v$5);
4821
+ _v$4 !== _p$.o && web.setAttribute(_el$4, "for", _p$.o = _v$4);
4822
+ _v$5 !== _p$.i && web.className(_el$4, _p$.i = _v$5);
4823
+ _v$6 !== _p$.n && web.className(_el$5, _p$.n = _v$6);
4751
4824
  return _p$;
4752
4825
  }, {
4753
4826
  e: void 0,
4754
4827
  t: void 0,
4755
4828
  a: void 0,
4756
4829
  o: void 0,
4757
- i: void 0
4830
+ i: void 0,
4831
+ n: void 0
4758
4832
  });
4759
4833
  return _el$;
4760
4834
  })();
@@ -6330,7 +6404,7 @@ web.delegateEvents(["click"]);
6330
6404
  var _tmpl$67 = /* @__PURE__ */ web.template(`<div>`);
6331
6405
  var Preferences = () => {
6332
6406
  var _a, _b, _c;
6333
- const novu = useNovu();
6407
+ const novuAccessor = useNovu();
6334
6408
  const style = useStyle();
6335
6409
  const {
6336
6410
  preferencesFilter,
@@ -6375,7 +6449,7 @@ var Preferences = () => {
6375
6449
  });
6376
6450
  });
6377
6451
  const bulkUpdatePreferences = (preferences2) => (channels) => chunk7B52C2XE_js.__async(void 0, null, function* () {
6378
- yield novu.preferences.bulkUpdate(preferences2.map((el) => {
6452
+ yield novuAccessor().preferences.bulkUpdate(preferences2.map((el) => {
6379
6453
  const oldChannels = Object.keys(el.channels);
6380
6454
  const channelsToUpdate = Object.keys(channels).filter((channel) => oldChannels.includes(channel)).reduce((acc, channel) => {
6381
6455
  acc[channel] = channels[channel];
@@ -6617,7 +6691,7 @@ var Text = (props) => props.children;
6617
6691
  var Markdown = (props) => {
6618
6692
  const [local, rest] = solidJs.splitProps(props, ["class", "children", "appearanceKey", "strongAppearanceKey", "context"]);
6619
6693
  const style = useStyle();
6620
- const tokens = solidJs.createMemo(() => chunkVWSQDNZX_js.parseMarkdownIntoTokens(local.children));
6694
+ const tokens = solidJs.createMemo(() => chunkOZV3TKWX_js.parseMarkdownIntoTokens(local.children));
6621
6695
  return (() => {
6622
6696
  var _el$2 = _tmpl$222();
6623
6697
  web.spread(_el$2, web.mergeProps({
@@ -7536,6 +7610,10 @@ var DefaultNotification = (props) => {
7536
7610
  status
7537
7611
  } = useInboxContext();
7538
7612
  const [minutesPassed, setMinutesPassed] = solidJs.createSignal(0);
7613
+ const severity = solidJs.createMemo(() => {
7614
+ var _a;
7615
+ return (_a = props.notification.severity) != null ? _a : "none" /* NONE */;
7616
+ });
7539
7617
  const createdAt = solidJs.createMemo(() => {
7540
7618
  minutesPassed();
7541
7619
  return formatToRelativeTime({
@@ -7906,22 +7984,22 @@ var DefaultNotification = (props) => {
7906
7984
  web.effect((_p$) => {
7907
7985
  var _a;
7908
7986
  var _v$ = style({
7909
- key: SEVERITY_TO_NOTIFICATION_KEYS[props.notification.severity],
7987
+ key: SEVERITY_TO_NOTIFICATION_KEYS[severity()],
7910
7988
  className: cn("nt-transition nt-w-full nt-text-sm hover:nt-bg-primary-alpha-25 nt-group nt-relative nt-flex nt-items-start nt-p-4 nt-gap-2", "[&:not(:first-child)]:nt-border-t nt-border-neutral-alpha-100", {
7911
7989
  "nt-cursor-pointer": !props.notification.isRead || !!((_a = props.notification.redirect) == null ? void 0 : _a.url),
7912
- "nt-bg-severity-high-alpha-100 hover:nt-bg-severity-high-alpha-50": props.notification.severity === "high" /* HIGH */,
7913
- "nt-bg-severity-medium-alpha-100 hover:nt-bg-severity-medium-alpha-50": props.notification.severity === "medium" /* MEDIUM */,
7914
- "nt-bg-severity-low-alpha-100 hover:nt-bg-severity-low-alpha-50": props.notification.severity === "low" /* LOW */
7990
+ "nt-bg-severity-high-alpha-100 hover:nt-bg-severity-high-alpha-50": severity() === "high" /* HIGH */,
7991
+ "nt-bg-severity-medium-alpha-100 hover:nt-bg-severity-medium-alpha-50": severity() === "medium" /* MEDIUM */,
7992
+ "nt-bg-severity-low-alpha-100 hover:nt-bg-severity-low-alpha-50": severity() === "low" /* LOW */
7915
7993
  }),
7916
7994
  context: {
7917
7995
  notification: props.notification
7918
7996
  }
7919
7997
  }), _v$2 = style({
7920
- key: SEVERITY_TO_BAR_KEYS[props.notification.severity],
7998
+ key: SEVERITY_TO_BAR_KEYS[severity()],
7921
7999
  className: cn("nt-transition nt-absolute nt-left-0 nt-top-0 nt-bottom-0 nt-w-[3px]", {
7922
- "nt-bg-severity-high group-hover:nt-bg-severity-high-alpha-500": props.notification.severity === "high" /* HIGH */,
7923
- "nt-bg-severity-medium group-hover:nt-bg-severity-medium-alpha-500": props.notification.severity === "medium" /* MEDIUM */,
7924
- "nt-bg-severity-low group-hover:nt-bg-severity-low-alpha-500": props.notification.severity === "low" /* LOW */
8000
+ "nt-bg-severity-high group-hover:nt-bg-severity-high-alpha-500": severity() === "high" /* HIGH */,
8001
+ "nt-bg-severity-medium group-hover:nt-bg-severity-medium-alpha-500": severity() === "medium" /* MEDIUM */,
8002
+ "nt-bg-severity-low group-hover:nt-bg-severity-low-alpha-500": severity() === "low" /* LOW */
7925
8003
  }),
7926
8004
  context: {
7927
8005
  notification: props.notification
@@ -8174,7 +8252,7 @@ var NotificationListSkeleton = (props) => {
8174
8252
  };
8175
8253
  function KeylessEmptyState() {
8176
8254
  const style = useStyle();
8177
- const novu = useNovu();
8255
+ const novuAccessor = useNovu();
8178
8256
  return (() => {
8179
8257
  var _el$5 = _tmpl$315(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.firstChild;
8180
8258
  web.insert(_el$8, web.createComponent(Button, {
@@ -8207,7 +8285,7 @@ function KeylessEmptyState() {
8207
8285
  className: "nt-h-8 nt-px-4 nt-flex nt-items-center nt-justify-center nt-gap-2 nt-bg-neutral-900 nt-text-white nt-shadow-sm nt-text-[12px] nt-font-medium"
8208
8286
  });
8209
8287
  },
8210
- onClick: () => novu.notifications.triggerHelloWorldEvent(),
8288
+ onClick: () => novuAccessor().notifications.triggerHelloWorldEvent(),
8211
8289
  get children() {
8212
8290
  return [web.createComponent(Bell, {
8213
8291
  get ["class"]() {
@@ -8968,97 +9046,1512 @@ var Inbox = (props) => {
8968
9046
  }
8969
9047
  });
8970
9048
  };
8971
-
8972
- // src/ui/components/Renderer.tsx
8973
- var novuComponents = {
8974
- Inbox,
8975
- InboxContent,
8976
- Bell: Bell2,
8977
- Notifications: (props) => {
8978
- if (props.renderNotification) {
8979
- const _a = props, otherProps = chunk7B52C2XE_js.__objRest(_a, [
8980
- "renderBody",
8981
- "renderSubject",
8982
- "renderAvatar",
8983
- "renderDefaultActions",
8984
- "renderCustomActions"
8985
- ]);
8986
- return web.createComponent(InboxContent, web.mergeProps(otherProps, {
8987
- hideNav: true,
8988
- get initialPage() {
8989
- return InboxPage.Notifications;
8990
- }
8991
- }));
9049
+ var useSubscription = (options) => {
9050
+ const novuAccessor = useNovu();
9051
+ const identifier = () => {
9052
+ var _a;
9053
+ const subscriberId = novuAccessor().subscriberId;
9054
+ return (_a = options.identifier) != null ? _a : chunkOZV3TKWX_js.buildSubscriptionIdentifier({ topicKey: options.topicKey, subscriberId });
9055
+ };
9056
+ const [loading, setLoading] = solidJs.createSignal(true);
9057
+ const [subscription, { mutate, refetch }] = solidJs.createResource(options || {}, (_0) => chunk7B52C2XE_js.__async(void 0, [_0], function* ({ topicKey }) {
9058
+ try {
9059
+ const response = yield novuAccessor().subscriptions.get({ topicKey, identifier: identifier() });
9060
+ return response.data;
9061
+ } catch (error) {
9062
+ console.error("Error fetching subscription:", error);
9063
+ throw error;
8992
9064
  }
8993
- const _b = props, propsWithoutRenderNotification = chunk7B52C2XE_js.__objRest(_b, [
8994
- "renderNotification"
8995
- ]);
8996
- return web.createComponent(InboxContent, web.mergeProps(propsWithoutRenderNotification, {
8997
- hideNav: true,
8998
- get initialPage() {
8999
- return InboxPage.Notifications;
9065
+ }));
9066
+ const create = (args) => chunk7B52C2XE_js.__async(void 0, null, function* () {
9067
+ setLoading(true);
9068
+ const response = yield novuAccessor().subscriptions.create(args);
9069
+ if (response.data) {
9070
+ mutate(response.data);
9071
+ }
9072
+ setLoading(false);
9073
+ return response;
9074
+ });
9075
+ const remove = (args) => chunk7B52C2XE_js.__async(void 0, null, function* () {
9076
+ setLoading(true);
9077
+ const response = "subscription" in args ? yield novuAccessor().subscriptions.delete({ subscription: args.subscription }) : yield novuAccessor().subscriptions.delete({ topicKey: args.topicKey, subscriptionId: args.subscriptionId });
9078
+ mutate(null);
9079
+ setLoading(false);
9080
+ return response;
9081
+ });
9082
+ solidJs.onMount(() => {
9083
+ const listener = ({ data }) => {
9084
+ if (!data || data.topicKey !== options.topicKey || data.identifier !== identifier()) {
9085
+ return;
9000
9086
  }
9001
- }));
9002
- },
9003
- Preferences: (props) => {
9004
- if (props.renderNotification) {
9005
- const _a = props, otherProps = chunk7B52C2XE_js.__objRest(_a, [
9006
- "renderBody",
9007
- "renderSubject",
9008
- "renderAvatar",
9009
- "renderDefaultActions",
9010
- "renderCustomActions"
9011
- ]);
9012
- return web.createComponent(InboxContent, web.mergeProps(otherProps, {
9013
- hideNav: true,
9014
- get initialPage() {
9015
- return InboxPage.Preferences;
9016
- }
9017
- }));
9018
- }
9019
- const _b = props, propsWithoutRenderNotification = chunk7B52C2XE_js.__objRest(_b, [
9020
- "renderNotification"
9021
- ]);
9022
- return web.createComponent(InboxContent, web.mergeProps(propsWithoutRenderNotification, {
9023
- hideNav: true,
9024
- get initialPage() {
9025
- return InboxPage.Preferences;
9087
+ mutate(data);
9088
+ setLoading(false);
9089
+ };
9090
+ const currentNovu = novuAccessor();
9091
+ const cleanupCreatePending = currentNovu.on("subscription.create.pending", ({ args }) => {
9092
+ if (!args || args.topicKey !== options.topicKey || args.identifier !== identifier()) {
9093
+ return;
9026
9094
  }
9027
- }));
9028
- }
9029
- };
9030
- var Renderer = (props) => {
9031
- const nodes = () => [...props.nodes.keys()];
9032
- solidJs.onMount(() => {
9033
- var _a;
9034
- const id = NOVU_DEFAULT_CSS_ID;
9035
- const root = props.container instanceof ShadowRoot ? props.container : document;
9036
- const el = root.getElementById(id);
9037
- if (el) {
9038
- return;
9039
- }
9040
- const styleEl = document.createElement("style");
9041
- styleEl.id = id;
9042
- styleEl.innerHTML = ui_default;
9043
- const stylesContainer = (_a = props.container) != null ? _a : document.head;
9044
- stylesContainer.insertBefore(styleEl, stylesContainer.firstChild);
9095
+ setLoading(true);
9096
+ });
9097
+ const cleanupCreate = currentNovu.on("subscription.create.resolved", listener);
9098
+ const cleanupUpdate = currentNovu.on("subscription.update.resolved", listener);
9099
+ const cleanupDeletePending = currentNovu.on("subscription.delete.pending", ({ args }) => {
9100
+ var _a, _b;
9101
+ const subscriptionId = (_a = subscription()) == null ? void 0 : _a.id;
9102
+ const subscriptionIdentifier = (_b = subscription()) == null ? void 0 : _b.identifier;
9103
+ if (!args || "subscriptionId" in args && args.subscriptionId !== subscriptionId && args.subscriptionId !== subscriptionIdentifier || "subscription" in args && args.subscription.id !== subscriptionId && args.subscription.identifier !== subscriptionIdentifier) {
9104
+ return;
9105
+ }
9106
+ setLoading(true);
9107
+ });
9108
+ const cleanupDelete = currentNovu.on("subscription.delete.resolved", ({ args }) => {
9109
+ var _a, _b;
9110
+ const subscriptionId = (_a = subscription()) == null ? void 0 : _a.id;
9111
+ const subscriptionIdentifier = (_b = subscription()) == null ? void 0 : _b.identifier;
9112
+ if (!args || "subscriptionId" in args && args.subscriptionId !== subscriptionId && args.subscriptionId !== subscriptionIdentifier || "subscription" in args && args.subscription.id !== subscriptionId && args.subscription.identifier !== subscriptionIdentifier) {
9113
+ return;
9114
+ }
9115
+ mutate(null);
9116
+ setLoading(false);
9117
+ });
9045
9118
  solidJs.onCleanup(() => {
9046
- styleEl.remove();
9119
+ cleanupCreatePending();
9120
+ cleanupCreate();
9121
+ cleanupDeletePending();
9122
+ cleanupUpdate();
9123
+ cleanupDelete();
9047
9124
  });
9048
9125
  });
9049
- return web.createComponent(NovuProvider, {
9050
- get options() {
9051
- return props.options;
9126
+ solidJs.createEffect(() => {
9127
+ setLoading(subscription.loading);
9128
+ });
9129
+ return { subscription, loading, mutate, refetch, create, remove };
9130
+ };
9131
+ var _tmpl$84 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><path fill=currentColor d="M9.237 12.088c0 .362-.128.71-.357.965-.23.255-.541.398-.866.398s-.637-.143-.866-.398a1.45 1.45 0 0 1-.357-.965zM11.23 4.373a.39.39 0 0 1 .53.57l-7.402 6.903a.39.39 0 0 1-.531-.57zM11.058 6.652q.015.162.015.327v.4A4.37 4.37 0 0 0 12 10.097l.142.177c.16.2.2.487.1.732a.61.61 0 0 1-.557.402H5.96zM8.014 2.55c.338 0 .612.305.612.682v.41c.53.119 1.011.392 1.404.775L4.215 9.84c.478-.707.74-1.57.74-2.46v-.4c0-1.648 1.052-3.023 2.448-3.338v-.409c0-.377.273-.681.61-.681">`);
9132
+ function BellCross(props) {
9133
+ return (() => {
9134
+ var _el$ = _tmpl$84();
9135
+ web.spread(_el$, props, true, true);
9136
+ return _el$;
9137
+ })();
9138
+ }
9139
+ var _tmpl$85 = /* @__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-linejoin=round stroke-width=1.1 d="M7.206 12.5c.08.152.196.278.336.366a.86.86 0 0 0 .916 0 .96.96 0 0 0 .336-.366m.58-6.5h2.75M10.75 4.5v3m.918 1.732q.156.227.338.431.091.11.113.257a.54.54 0 0 1-.033.282.5.5 0 0 1-.17.217.43.43 0 0 1-.25.08H4.334a.43.43 0 0 1-.25-.08.5.5 0 0 1-.17-.217.54.54 0 0 1 .081-.539C4.604 8.978 5.25 8.25 5.25 6c0-.515.121-1.02.352-1.47.231-.448.564-.824.967-1.092a2.6 2.6 0 0 1 1.333-.436c.471-.018.94.096 1.358.332">`);
9140
+ function BellPlus(props) {
9141
+ return (() => {
9142
+ var _el$ = _tmpl$85();
9143
+ web.spread(_el$, props, true, true);
9144
+ return _el$;
9145
+ })();
9146
+ }
9147
+ var _tmpl$86 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=currentColor viewBox="0 0 24 24"><path d="M18.364 5.636 16.95 7.05A7 7 0 1 0 19 12h2a9 9 0 1 1-2.636-6.364">`);
9148
+ function Loader(props) {
9149
+ return (() => {
9150
+ var _el$ = _tmpl$86();
9151
+ web.spread(_el$, props, true, true);
9152
+ return _el$;
9153
+ })();
9154
+ }
9155
+
9156
+ // src/ui/components/subscription/SubscriptionButton.tsx
9157
+ var _tmpl$87 = /* @__PURE__ */ web.template(`<span><span>`);
9158
+ var iconKeyToComponentMap3 = {
9159
+ bellCross: BellCross,
9160
+ bellPlus: BellPlus
9161
+ };
9162
+ var SubscriptionButton = (props) => {
9163
+ const style = useStyle();
9164
+ const {
9165
+ t
9166
+ } = useLocalization();
9167
+ const subscription = solidJs.createMemo(() => {
9168
+ var _a;
9169
+ return (_a = props.subscription) != null ? _a : void 0;
9170
+ });
9171
+ const iconKey = solidJs.createMemo(() => props.subscription ? "bellCross" : "bellPlus");
9172
+ const IconComponent = solidJs.createMemo(() => iconKeyToComponentMap3[iconKey()]);
9173
+ return web.createComponent(Button, {
9174
+ get ["class"]() {
9175
+ return style({
9176
+ key: "subscriptionButton__button",
9177
+ className: "nt-transition-[width] nt-duration-800 nt-will-change-[width]",
9178
+ context: {
9179
+ subscription: subscription()
9180
+ }
9181
+ });
9052
9182
  },
9053
- get novu() {
9054
- return props.novu;
9183
+ variant: "secondary",
9184
+ get onClick() {
9185
+ return props.onClick;
9186
+ },
9187
+ get disabled() {
9188
+ return props.loading;
9055
9189
  },
9056
9190
  get children() {
9057
- return web.createComponent(LocalizationProvider, {
9058
- get localization() {
9059
- return props.localization;
9191
+ var _el$ = _tmpl$87(), _el$2 = _el$.firstChild;
9192
+ web.insert(_el$, web.createComponent(Motion.span, {
9193
+ initial: {
9194
+ opacity: 1
9060
9195
  },
9061
- get children() {
9196
+ get animate() {
9197
+ return {
9198
+ opacity: props.loading ? 0 : 1
9199
+ };
9200
+ },
9201
+ transition: {
9202
+ easing: "ease-in-out",
9203
+ duration: 0.2
9204
+ },
9205
+ "class": "nt-inline-flex nt-items-center",
9206
+ get children() {
9207
+ return web.createComponent(IconRendererWrapper, {
9208
+ get iconKey() {
9209
+ return iconKey();
9210
+ },
9211
+ get ["class"]() {
9212
+ return style({
9213
+ key: "subscriptionButtonIcon",
9214
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
9215
+ iconKey: iconKey(),
9216
+ context: {
9217
+ subscription: subscription()
9218
+ }
9219
+ });
9220
+ },
9221
+ get fallback() {
9222
+ var _a;
9223
+ return web.memo(() => !!IconComponent())() && ((_a = IconComponent()) == null ? void 0 : _a({
9224
+ class: style({
9225
+ key: "subscriptionButtonIcon",
9226
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
9227
+ iconKey: iconKey(),
9228
+ context: {
9229
+ subscription: subscription()
9230
+ }
9231
+ })
9232
+ }));
9233
+ }
9234
+ });
9235
+ }
9236
+ }), _el$2);
9237
+ web.insert(_el$, web.createComponent(Motion.span, {
9238
+ initial: {
9239
+ opacity: 1
9240
+ },
9241
+ get animate() {
9242
+ return {
9243
+ opacity: props.loading ? 1 : 0
9244
+ };
9245
+ },
9246
+ transition: {
9247
+ easing: "ease-in-out",
9248
+ duration: 0.2
9249
+ },
9250
+ "class": "nt-absolute nt-left-0 nt-inline-flex nt-items-center",
9251
+ get children() {
9252
+ return web.createComponent(IconRendererWrapper, {
9253
+ iconKey: "loader",
9254
+ get ["class"]() {
9255
+ return style({
9256
+ key: "subscriptionButtonIcon",
9257
+ className: "nt-text-foreground-alpha-600 nt-size-3.5 nt-animate-spin",
9258
+ iconKey: iconKey(),
9259
+ context: {
9260
+ subscription: subscription()
9261
+ }
9262
+ });
9263
+ },
9264
+ get fallback() {
9265
+ return web.createComponent(Loader, {
9266
+ get ["class"]() {
9267
+ return style({
9268
+ key: "subscriptionButtonIcon",
9269
+ className: "nt-text-foreground-alpha-600 nt-size-3.5 nt-animate-spin",
9270
+ iconKey: iconKey(),
9271
+ context: {
9272
+ subscription: subscription()
9273
+ }
9274
+ });
9275
+ }
9276
+ });
9277
+ }
9278
+ });
9279
+ }
9280
+ }), _el$2);
9281
+ web.insert(_el$2, (() => {
9282
+ var _c$ = web.memo(() => !!props.subscription);
9283
+ return () => _c$() ? t("subscription.unsubscribe") : t("subscription.subscribe");
9284
+ })());
9285
+ web.effect((_p$) => {
9286
+ var _v$ = style({
9287
+ key: "subscriptionButtonContainer",
9288
+ className: "nt-relative nt-overflow-hidden nt-inline-flex nt-items-center nt-justify-center nt-gap-1",
9289
+ context: {
9290
+ subscription: subscription()
9291
+ }
9292
+ }), _v$2 = style({
9293
+ key: "subscriptionButtonLabel",
9294
+ className: "[line-height:16px]",
9295
+ context: {
9296
+ subscription: subscription()
9297
+ }
9298
+ }), _v$3 = props.subscription ? "subscription.unsubscribe" : "subscription.subscribe";
9299
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
9300
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
9301
+ _v$3 !== _p$.a && web.setAttribute(_el$2, "data-localization", _p$.a = _v$3);
9302
+ return _p$;
9303
+ }, {
9304
+ e: void 0,
9305
+ t: void 0,
9306
+ a: void 0
9307
+ });
9308
+ return _el$;
9309
+ }
9310
+ });
9311
+ };
9312
+ var _tmpl$88 = /* @__PURE__ */ web.template(`<div>`);
9313
+ var _tmpl$227 = /* @__PURE__ */ web.template(`<div><div><div><span></span></div><div><span>`);
9314
+ var _tmpl$316 = /* @__PURE__ */ web.template(`<div><label>`);
9315
+ var SubscriptionPreferenceGroupRow = (props) => {
9316
+ const style = useStyle();
9317
+ const {
9318
+ t
9319
+ } = useLocalization();
9320
+ const [isOpened, setIsOpened] = solidJs.createSignal(false);
9321
+ const preferences = solidJs.createMemo(() => props.group.group);
9322
+ const groupState = solidJs.createMemo(() => {
9323
+ const enabledCount = preferences().filter((pref) => {
9324
+ return pref.preference.enabled;
9325
+ }).length;
9326
+ if (enabledCount === 0) {
9327
+ return {
9328
+ checked: false,
9329
+ indeterminate: false
9330
+ };
9331
+ }
9332
+ if (enabledCount === preferences().length) {
9333
+ return {
9334
+ checked: true,
9335
+ indeterminate: false
9336
+ };
9337
+ }
9338
+ return {
9339
+ checked: false,
9340
+ indeterminate: true
9341
+ };
9342
+ });
9343
+ const handleGroupChange = (checked) => chunk7B52C2XE_js.__async(void 0, null, function* () {
9344
+ const updates = props.group.group.map((pref) => ({
9345
+ workflowId: pref.preference.workflow.identifier || pref.preference.workflow.id,
9346
+ value: checked
9347
+ }));
9348
+ yield props.subscription.bulkUpdatePreferences(updates);
9349
+ });
9350
+ const handlePreferenceChange = (preference) => (checked) => chunk7B52C2XE_js.__async(void 0, null, function* () {
9351
+ yield preference.update({
9352
+ value: checked
9353
+ });
9354
+ });
9355
+ const getPreferenceChecked = (preference) => {
9356
+ return preference.enabled;
9357
+ };
9358
+ return (() => {
9359
+ var _el$ = _tmpl$227(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.firstChild;
9360
+ _el$2.$$click = () => {
9361
+ setIsOpened((prev) => !prev);
9362
+ };
9363
+ web.insert(_el$3, web.createComponent(IconRendererWrapper, {
9364
+ iconKey: "nodeTree",
9365
+ get ["class"]() {
9366
+ return style({
9367
+ key: "subscriptionPreferenceGroupLabelIcon",
9368
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
9369
+ context: {
9370
+ group: props.group
9371
+ }
9372
+ });
9373
+ },
9374
+ get fallback() {
9375
+ return web.createComponent(NodeTree, {
9376
+ get ["class"]() {
9377
+ return style({
9378
+ key: "subscriptionPreferenceGroupLabelIcon",
9379
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
9380
+ context: {
9381
+ group: props.group
9382
+ }
9383
+ });
9384
+ }
9385
+ });
9386
+ }
9387
+ }), _el$4);
9388
+ web.insert(_el$4, () => props.group.label);
9389
+ web.insert(_el$5, web.createComponent(Checkbox, {
9390
+ get checked() {
9391
+ return groupState().checked;
9392
+ },
9393
+ get indeterminate() {
9394
+ return groupState().indeterminate;
9395
+ },
9396
+ onChange: handleGroupChange,
9397
+ onClick: (e) => {
9398
+ e.stopPropagation();
9399
+ }
9400
+ }), _el$6);
9401
+ web.insert(_el$6, web.createComponent(IconRendererWrapper, {
9402
+ iconKey: "arrowDropDown",
9403
+ get ["class"]() {
9404
+ return style({
9405
+ key: "moreTabs__icon",
9406
+ className: "nt-size-4"
9407
+ });
9408
+ },
9409
+ get fallback() {
9410
+ return web.createComponent(ArrowDropDown, {
9411
+ get ["class"]() {
9412
+ return style({
9413
+ key: "moreTabs__icon",
9414
+ className: "nt-size-4"
9415
+ });
9416
+ }
9417
+ });
9418
+ }
9419
+ }));
9420
+ web.insert(_el$, web.createComponent(Collapsible, {
9421
+ get open() {
9422
+ return isOpened();
9423
+ },
9424
+ get children() {
9425
+ var _el$7 = _tmpl$88();
9426
+ web.insert(_el$7, web.createComponent(solidJs.For, {
9427
+ get each() {
9428
+ return preferences();
9429
+ },
9430
+ children: (el) => (() => {
9431
+ var _el$8 = _tmpl$316(), _el$9 = _el$8.firstChild;
9432
+ web.insert(_el$9, () => {
9433
+ var _a;
9434
+ return (_a = el.label) != null ? _a : t(el.preference.workflow.identifier);
9435
+ });
9436
+ web.insert(_el$8, web.createComponent(Checkbox, {
9437
+ get id() {
9438
+ return `subscription-preference-${el.preference.workflow.identifier}`;
9439
+ },
9440
+ get checked() {
9441
+ return getPreferenceChecked(el.preference);
9442
+ },
9443
+ get onChange() {
9444
+ return handlePreferenceChange(el.preference);
9445
+ }
9446
+ }), null);
9447
+ web.effect((_p$) => {
9448
+ var _a;
9449
+ var _v$1 = style({
9450
+ key: "subscriptionPreferenceGroupWorkflowRow",
9451
+ className: "nt-flex nt-items-center nt-justify-between nt-p-2 nt-rounded nt-gap-2",
9452
+ context: {
9453
+ preference: el
9454
+ }
9455
+ }), _v$10 = `subscription-preference-${el.preference.workflow.identifier}`, _v$11 = style({
9456
+ key: "subscriptionPreferenceGroupWorkflowLabel",
9457
+ className: "nt-text-sm nt-truncate nt-text-start nt-w-full nt-cursor-pointer",
9458
+ context: {
9459
+ preference: el
9460
+ }
9461
+ }), _v$12 = el.preference.workflow.identifier, _v$13 = (_a = el.label) != null ? _a : t(el.preference.workflow.identifier);
9462
+ _v$1 !== _p$.e && web.className(_el$8, _p$.e = _v$1);
9463
+ _v$10 !== _p$.t && web.setAttribute(_el$9, "for", _p$.t = _v$10);
9464
+ _v$11 !== _p$.a && web.className(_el$9, _p$.a = _v$11);
9465
+ _v$12 !== _p$.o && web.setAttribute(_el$9, "data-localization", _p$.o = _v$12);
9466
+ _v$13 !== _p$.i && web.setAttribute(_el$9, "title", _p$.i = _v$13);
9467
+ return _p$;
9468
+ }, {
9469
+ e: void 0,
9470
+ t: void 0,
9471
+ a: void 0,
9472
+ o: void 0,
9473
+ i: void 0
9474
+ });
9475
+ return _el$8;
9476
+ })()
9477
+ }));
9478
+ web.effect(() => web.className(_el$7, style({
9479
+ key: "subscriptionPreferenceGroupBody",
9480
+ className: "nt-flex nt-p-2 nt-flex-col nt-gap-1 nt-bg-background nt-rounded-b-lg",
9481
+ context: {
9482
+ group: props.group
9483
+ }
9484
+ })));
9485
+ return _el$7;
9486
+ }
9487
+ }), null);
9488
+ web.effect((_p$) => {
9489
+ var _v$ = style({
9490
+ key: "subscriptionPreferenceGroupContainer",
9491
+ className: "nt-bg-neutral-alpha-25 nt-rounded-lg nt-border nt-border-neutral-alpha-50",
9492
+ context: {
9493
+ group: props.group
9494
+ }
9495
+ }), _v$2 = isOpened(), _v$3 = style({
9496
+ key: "subscriptionPreferenceGroupHeader",
9497
+ className: "nt-flex nt-justify-between nt-p-2 nt-flex-nowrap nt-self-stretch nt-cursor-pointer nt-items-center nt-overflow-hidden",
9498
+ context: {
9499
+ group: props.group
9500
+ }
9501
+ }), _v$4 = style({
9502
+ key: "subscriptionPreferenceGroupLabelContainer",
9503
+ className: "nt-overflow-hidden nt-flex nt-items-center nt-gap-1",
9504
+ context: {
9505
+ group: props.group
9506
+ }
9507
+ }), _v$5 = style({
9508
+ key: "subscriptionPreferenceGroupLabel",
9509
+ className: "nt-text-sm nt-font-semibold nt-truncate nt-text-start nt-mr-2",
9510
+ context: {
9511
+ group: props.group
9512
+ }
9513
+ }), _v$6 = isOpened(), _v$7 = props.group.label, _v$8 = style({
9514
+ key: "subscriptionPreferenceGroupActionsContainer",
9515
+ className: "nt-flex nt-items-center nt-gap-1",
9516
+ context: {
9517
+ group: props.group
9518
+ }
9519
+ }), _v$9 = style({
9520
+ key: "subscriptionPreferenceGroupActionsContainerRight__icon",
9521
+ className: "nt-text-foreground-alpha-600 nt-transition-all nt-duration-200 data-[open=true]:nt-transform data-[open=true]:nt-rotate-180",
9522
+ context: {
9523
+ group: props.group
9524
+ }
9525
+ }), _v$0 = isOpened();
9526
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
9527
+ _v$2 !== _p$.t && web.setAttribute(_el$, "data-open", _p$.t = _v$2);
9528
+ _v$3 !== _p$.a && web.className(_el$2, _p$.a = _v$3);
9529
+ _v$4 !== _p$.o && web.className(_el$3, _p$.o = _v$4);
9530
+ _v$5 !== _p$.i && web.className(_el$4, _p$.i = _v$5);
9531
+ _v$6 !== _p$.n && web.setAttribute(_el$4, "data-open", _p$.n = _v$6);
9532
+ _v$7 !== _p$.s && web.setAttribute(_el$4, "title", _p$.s = _v$7);
9533
+ _v$8 !== _p$.h && web.className(_el$5, _p$.h = _v$8);
9534
+ _v$9 !== _p$.r && web.className(_el$6, _p$.r = _v$9);
9535
+ _v$0 !== _p$.d && web.setAttribute(_el$6, "data-open", _p$.d = _v$0);
9536
+ return _p$;
9537
+ }, {
9538
+ e: void 0,
9539
+ t: void 0,
9540
+ a: void 0,
9541
+ o: void 0,
9542
+ i: void 0,
9543
+ n: void 0,
9544
+ s: void 0,
9545
+ h: void 0,
9546
+ r: void 0,
9547
+ d: void 0
9548
+ });
9549
+ return _el$;
9550
+ })();
9551
+ };
9552
+ web.delegateEvents(["click"]);
9553
+ var _tmpl$89 = /* @__PURE__ */ web.template(`<div><label>`);
9554
+ var SubscriptionPreferenceRow = (props) => {
9555
+ const style = useStyle();
9556
+ const {
9557
+ t
9558
+ } = useLocalization();
9559
+ const preference = solidJs.createMemo(() => props.preference.preference);
9560
+ const handleChange = (checked) => chunk7B52C2XE_js.__async(void 0, null, function* () {
9561
+ yield preference().update({
9562
+ value: checked
9563
+ });
9564
+ });
9565
+ const isChecked = () => {
9566
+ return preference().enabled;
9567
+ };
9568
+ return (() => {
9569
+ var _el$ = _tmpl$89(), _el$2 = _el$.firstChild;
9570
+ web.insert(_el$2, () => {
9571
+ var _a;
9572
+ return (_a = props.preference.label) != null ? _a : t(preference().workflow.identifier);
9573
+ });
9574
+ web.insert(_el$, web.createComponent(Checkbox, {
9575
+ get id() {
9576
+ return `subscription-preference-${preference().workflow.identifier}`;
9577
+ },
9578
+ get checked() {
9579
+ return isChecked();
9580
+ },
9581
+ onChange: handleChange
9582
+ }), null);
9583
+ web.effect((_p$) => {
9584
+ var _a;
9585
+ var _v$ = style({
9586
+ key: "subscriptionPreferenceRow",
9587
+ className: "nt-flex nt-items-center nt-justify-between nt-p-2 nt-rounded-lg nt-gap-2",
9588
+ context: {
9589
+ preference: props.preference
9590
+ }
9591
+ }), _v$2 = `subscription-preference-${preference().workflow.identifier}`, _v$3 = style({
9592
+ key: "subscriptionPreferenceLabel",
9593
+ className: "nt-text-sm nt-font-medium nt-truncate nt-text-start nt-w-full nt-cursor-pointer",
9594
+ context: {
9595
+ preference: props.preference
9596
+ }
9597
+ }), _v$4 = preference().workflow.identifier, _v$5 = (_a = props.preference.label) != null ? _a : t(preference().workflow.identifier);
9598
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
9599
+ _v$2 !== _p$.t && web.setAttribute(_el$2, "for", _p$.t = _v$2);
9600
+ _v$3 !== _p$.a && web.className(_el$2, _p$.a = _v$3);
9601
+ _v$4 !== _p$.o && web.setAttribute(_el$2, "data-localization", _p$.o = _v$4);
9602
+ _v$5 !== _p$.i && web.setAttribute(_el$2, "title", _p$.i = _v$5);
9603
+ return _p$;
9604
+ }, {
9605
+ e: void 0,
9606
+ t: void 0,
9607
+ a: void 0,
9608
+ o: void 0,
9609
+ i: void 0
9610
+ });
9611
+ return _el$;
9612
+ })();
9613
+ };
9614
+ var _tmpl$90 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=138 height=100 fill=none viewBox="0 0 138 100"><rect width=131.1 height=33.1 x=3.025 y=.45 stroke=#e1e4ea stroke-dasharray="10 2.7"stroke-width=.9 rx=3.55></rect><rect width=123.1 height=25.1 x=7.025 y=4.45 fill=#fff rx=1.55></rect><rect width=123.1 height=25.1 x=7.025 y=4.45 stroke=#f2f2f2 stroke-width=.9 rx=1.55></rect><g clip-path=url(#a)><path stroke=#cacfd8 stroke-linecap=round stroke-linejoin=round stroke-width=1.08 d="m66.7 17 1.25 1.25 2.5-2.5M72.74 17a4.167 4.167 0 1 1-8.333 0 4.167 4.167 0 0 1 8.334 0"></path></g><g filter=url(#b)><g clip-path=url(#c)><rect width=132 height=29 x=1.724 y=67.207 fill=#fcfcfc rx=4 transform="rotate(-4 1.724 67.207)"></rect><path fill=#f4f4f4 d="M10.402 76.625a4 4 0 0 1 3.711-4.27l9.976-.697a4 4 0 0 1 4.27 3.711l.627 8.978a4 4 0 0 1-3.711 4.27l-9.976.697a4 4 0 0 1-4.27-3.71z"></path><path fill=#e4e4e4 d="M19.345 75.498c-.316.022-.55.319-.527.664l.027.374c-1.28.38-2.172 1.706-2.067 3.214l.026.367a3.97 3.97 0 0 1-.69 2.546l-.12.171a.67.67 0 0 0-.049.677.57.57 0 0 0 .546.332l6.84-.479a.57.57 0 0 0 .495-.404.67.67 0 0 0-.141-.664l-.143-.152a3.96 3.96 0 0 1-1.038-2.426l-.026-.366c-.105-1.508-1.173-2.699-2.493-2.896l-.026-.374c-.025-.345-.299-.606-.614-.584m1.479 9.555c.197-.248.294-.575.271-.906l-1.14.08-1.14.08c.023.331.165.64.395.86.23.218.53.328.832.307.303-.021.584-.172.782-.42"></path><rect width=27 height=3 x=36.373 y=75.311 fill=url(#d) rx=1.5 transform="rotate(-4 36.373 75.31)"></rect><rect width=59 height=3 x=36.722 y=80.299 fill=url(#e) rx=1.5 transform="rotate(-4 36.722 80.299)"></rect><rect width=59 height=3 x=36.722 y=80.299 fill=url(#f) rx=1.5 transform="rotate(-4 36.722 80.299)"></rect></g><rect width=132 height=29 x=1.724 y=67.207 stroke=#e6e6e6 stroke-opacity=.5 stroke-width=.6 rx=4 transform="rotate(-4 1.724 67.207)"></rect></g><path stroke=#e1e4ea stroke-linejoin=bevel d="M68.596 37v23.614"></path><defs><linearGradient id=d x1=29.846 x2=67.676 y1=76.586 y2=76.586 gradientUnits=userSpaceOnUse><stop stop-color=#e4e4e4></stop><stop offset=.48 stop-color=#f1f1f1></stop><stop offset=.992 stop-color=#fcfcfc stop-opacity=.75></stop></linearGradient><linearGradient id=e x1=22.458 x2=105.123 y1=81.574 y2=81.574 gradientUnits=userSpaceOnUse><stop stop-color=#e4e4e4></stop><stop offset=.48 stop-color=#f1f1f1></stop><stop offset=.992 stop-color=#fcfcfc stop-opacity=.75></stop></linearGradient><linearGradient id=f x1=22.458 x2=105.123 y1=81.574 y2=81.574 gradientUnits=userSpaceOnUse><stop stop-color=#e4e4e4></stop><stop offset=.48 stop-color=#f1f1f1></stop><stop offset=.992 stop-color=#fcfcfc stop-opacity=.75></stop></linearGradient><clipPath id=a><path fill=#fff d="M63.575 12h10v10h-10z"></path></clipPath><clipPath id=c><rect width=132 height=29 x=1.724 y=67.207 fill=#fff rx=4 transform="rotate(-4 1.724 67.207)"></rect></clipPath><filter id=b width=137.15 height=41.586 x=0 y=57.969 color-interpolation-filters=sRGB filterUnits=userSpaceOnUse><feFlood flood-opacity=0 result=BackgroundImageFix></feFlood><feColorMatrix in=SourceAlpha result=hardAlpha values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></feColorMatrix><feOffset dy=1.693></feOffset><feGaussianBlur stdDeviation=.847></feGaussianBlur><feColorMatrix values="0 0 0 0 0.917008 0 0 0 0 0.917008 0 0 0 0 0.917008 0 0 0 0.02 0"></feColorMatrix><feBlend in2=BackgroundImageFix result=effect1_dropShadow_4908_18899></feBlend><feBlend in=SourceGraphic in2=effect1_dropShadow_4908_18899 result=shape></feBlend><feColorMatrix in=SourceAlpha result=hardAlpha values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></feColorMatrix><feOffset dy=-2></feOffset><feComposite in2=hardAlpha k2=-1 k3=1 operator=arithmetic></feComposite><feColorMatrix values="0 0 0 0 0.975488 0 0 0 0 0.975488 0 0 0 0 0.975488 0 0 0 1 0"></feColorMatrix><feBlend in2=shape result=effect2_innerShadow_4908_18899>`);
9615
+ var EmptyState = () => {
9616
+ return _tmpl$90();
9617
+ };
9618
+ var _tmpl$91 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg width=136 height=88 fill=none viewBox="0 0 136 88"><g filter=url(#a)><g clip-path=url(#b)><rect width=132 height=29 x=1.993 y=.301 fill=#fcfcfc rx=4></rect><path fill=#f4f4f4 d="M9.993 10.3a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v9a4 4 0 0 1-4 4h-10a4 4 0 0 1-4-4z"></path><path fill=#e4e4e4 d="M18.993 9.8c-.316 0-.572.28-.572.626v.375c-1.303.289-2.285 1.55-2.285 3.062v.367c0 .918-.31 1.805-.866 2.493l-.133.162a.67.67 0 0 0-.094.672.57.57 0 0 0 .521.369h6.857a.57.57 0 0 0 .522-.37.67.67 0 0 0-.095-.671l-.132-.162a3.96 3.96 0 0 1-.866-2.492v-.368c0-1.511-.982-2.773-2.286-3.062v-.375c0-.346-.255-.625-.571-.625m.809 9.636c.214-.235.334-.553.334-.885H17.85c0 .332.12.65.334.885s.505.365.809.365c.303 0 .594-.131.809-.365"></path><rect width=27 height=3 x=35.993 y=10.801 fill=url(#c) rx=1.5></rect><rect width=59 height=3 x=35.993 y=15.801 fill=url(#d) rx=1.5></rect><rect width=59 height=3 x=35.993 y=15.801 fill=url(#e) rx=1.5></rect></g><rect width=132 height=29 x=1.993 y=.301 stroke=#e6e6e6 stroke-opacity=.5 stroke-width=.6 rx=4></rect></g><rect width=131.1 height=33.1 x=2.443 y=53.751 stroke=#e1e4ea stroke-dasharray="10 2.7"stroke-width=.9 rx=3.55></rect><rect width=123.1 height=25.1 x=6.443 y=57.751 fill=#fff rx=1.55></rect><rect width=123.1 height=25.1 x=6.443 y=57.751 stroke=#f2f2f2 stroke-width=.9 rx=1.55></rect><path fill=#cacfd8 d="M68.743 71.145v.784a2.25 2.25 0 0 0-3 2.122h-.75a3 3 0 0 1 3.75-2.906m-.75-.47a2.25 2.25 0 1 1-.001-4.498 2.25 2.25 0 0 1 .001 4.499m0-.75a1.5 1.5 0 1 0 0-2.999 1.5 1.5 0 0 0 0 3m2.47 2.25-.686-.685.53-.53 1.591 1.59-1.59 1.592-.531-.53.686-.686h-1.345v-.75z"></path><path stroke=#e1e4ea stroke-linejoin=bevel d="M67.993 50.3v-18"></path><defs><linearGradient id=c x1=29.466 x2=67.295 y1=12.076 y2=12.076 gradientUnits=userSpaceOnUse><stop stop-color=#e4e4e4></stop><stop offset=.48 stop-color=#f1f1f1></stop><stop offset=.992 stop-color=#fcfcfc stop-opacity=.75></stop></linearGradient><linearGradient id=d x1=21.729 x2=104.394 y1=17.076 y2=17.076 gradientUnits=userSpaceOnUse><stop stop-color=#e4e4e4></stop><stop offset=.48 stop-color=#f1f1f1></stop><stop offset=.992 stop-color=#fcfcfc stop-opacity=.75></stop></linearGradient><linearGradient id=e x1=21.729 x2=104.394 y1=17.076 y2=17.076 gradientUnits=userSpaceOnUse><stop stop-color=#e4e4e4></stop><stop offset=.48 stop-color=#f1f1f1></stop><stop offset=.992 stop-color=#fcfcfc stop-opacity=.75></stop></linearGradient><clipPath id=b><rect width=132 height=29 x=1.993 y=.301 fill=#fff rx=4></rect></clipPath><filter id=a width=135.986 height=32.988 x=0 y=0 color-interpolation-filters=sRGB filterUnits=userSpaceOnUse><feFlood flood-opacity=0 result=BackgroundImageFix></feFlood><feColorMatrix in=SourceAlpha result=hardAlpha values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></feColorMatrix><feOffset dy=1.693></feOffset><feGaussianBlur stdDeviation=.847></feGaussianBlur><feColorMatrix values="0 0 0 0 0.917008 0 0 0 0 0.917008 0 0 0 0 0.917008 0 0 0 0.02 0"></feColorMatrix><feBlend in2=BackgroundImageFix result=effect1_dropShadow_4850_12317></feBlend><feBlend in=SourceGraphic in2=effect1_dropShadow_4850_12317 result=shape></feBlend><feColorMatrix in=SourceAlpha result=hardAlpha values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"></feColorMatrix><feOffset dy=-2></feOffset><feComposite in2=hardAlpha k2=-1 k3=1 operator=arithmetic></feComposite><feColorMatrix values="0 0 0 0 0.975488 0 0 0 0 0.975488 0 0 0 0 0.975488 0 0 0 1 0"></feColorMatrix><feBlend in2=shape result=effect2_innerShadow_4850_12317>`);
9619
+ var NotSubscribedState = () => {
9620
+ return _tmpl$91();
9621
+ };
9622
+ var _tmpl$92 = /* @__PURE__ */ web.template(`<div><div></div><div></div><div>`);
9623
+ var SubscriptionPreferencesListSkeleton = () => {
9624
+ const style = useStyle();
9625
+ return (() => {
9626
+ var _el$ = _tmpl$92(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling;
9627
+ web.insert(_el$2, web.createComponent(SkeletonText, {
9628
+ appearanceKey: "notificationList__skeletonText",
9629
+ "class": "nt-h-3.5 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded-sm nt-animate-shimmer"
9630
+ }), null);
9631
+ web.insert(_el$2, web.createComponent(SkeletonText, {
9632
+ appearanceKey: "preferencesList__skeletonText",
9633
+ "class": "nt-size-4 nt-bg-neutral-alpha-50 nt-rounded-sm nt-animate-shimmer"
9634
+ }), null);
9635
+ web.insert(_el$3, web.createComponent(SkeletonText, {
9636
+ appearanceKey: "notificationList__skeletonText",
9637
+ "class": "nt-h-3.5 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded-sm nt-animate-shimmer"
9638
+ }), null);
9639
+ web.insert(_el$3, web.createComponent(SkeletonText, {
9640
+ appearanceKey: "preferencesList__skeletonText",
9641
+ "class": "nt-size-4 nt-bg-neutral-alpha-50 nt-rounded-sm nt-animate-shimmer"
9642
+ }), null);
9643
+ web.insert(_el$4, web.createComponent(SkeletonText, {
9644
+ appearanceKey: "notificationList__skeletonText",
9645
+ "class": "nt-h-3.5 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded-sm nt-animate-shimmer"
9646
+ }), null);
9647
+ web.insert(_el$4, web.createComponent(SkeletonText, {
9648
+ appearanceKey: "preferencesList__skeletonText",
9649
+ "class": "nt-size-4 nt-bg-neutral-alpha-50 nt-rounded-sm nt-animate-shimmer"
9650
+ }), null);
9651
+ web.effect((_p$) => {
9652
+ var _v$ = style({
9653
+ key: "preferencesList__skeletonContent",
9654
+ className: "nt-flex nt-flex-col nt-w-full nt-gap-3 nt-py-2"
9655
+ }), _v$2 = style({
9656
+ key: "preferencesList__skeletonItem",
9657
+ className: "nt-flex nt-items-center nt-justify-between"
9658
+ }), _v$3 = style({
9659
+ key: "preferencesList__skeletonItem",
9660
+ className: "nt-flex nt-items-center nt-justify-between"
9661
+ }), _v$4 = style({
9662
+ key: "preferencesList__skeletonItem",
9663
+ className: "nt-flex nt-items-center nt-justify-between"
9664
+ });
9665
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
9666
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
9667
+ _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
9668
+ _v$4 !== _p$.o && web.className(_el$4, _p$.o = _v$4);
9669
+ return _p$;
9670
+ }, {
9671
+ e: void 0,
9672
+ t: void 0,
9673
+ a: void 0,
9674
+ o: void 0
9675
+ });
9676
+ return _el$;
9677
+ })();
9678
+ };
9679
+
9680
+ // src/ui/components/subscription/SubscriptionPreferencesFallback.tsx
9681
+ var _tmpl$93 = /* @__PURE__ */ web.template(`<div><div><span></span><span>`);
9682
+ var SubscriptionPreferencesFallback = (props) => {
9683
+ const style = useStyle();
9684
+ const {
9685
+ t
9686
+ } = useLocalization();
9687
+ return web.createComponent(solidJs.Show, {
9688
+ get when() {
9689
+ return !props.loading;
9690
+ },
9691
+ get fallback() {
9692
+ return web.createComponent(SubscriptionPreferencesListSkeleton, {});
9693
+ },
9694
+ get children() {
9695
+ var _el$ = _tmpl$93(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
9696
+ web.insert(_el$, web.createComponent(solidJs.Show, {
9697
+ get when() {
9698
+ var _a;
9699
+ return ((_a = props.subscription) == null ? void 0 : _a.preferences.length) === 0;
9700
+ },
9701
+ get fallback() {
9702
+ return web.createComponent(NotSubscribedState, {});
9703
+ },
9704
+ get children() {
9705
+ return web.createComponent(EmptyState, {});
9706
+ }
9707
+ }), _el$2);
9708
+ web.insert(_el$3, (() => {
9709
+ var _c$ = web.memo(() => {
9710
+ var _a;
9711
+ return ((_a = props.subscription) == null ? void 0 : _a.preferences.length) === 0;
9712
+ });
9713
+ return () => _c$() ? t("subscription.preferences.empty.header") : t("subscription.preferences.notSubscribed.header");
9714
+ })());
9715
+ web.insert(_el$4, (() => {
9716
+ var _c$2 = web.memo(() => {
9717
+ var _a;
9718
+ return ((_a = props.subscription) == null ? void 0 : _a.preferences.length) === 0;
9719
+ });
9720
+ return () => _c$2() ? t("subscription.preferences.empty.description") : t("subscription.preferences.notSubscribed.description");
9721
+ })());
9722
+ web.insert(_el$, web.createComponent(SubscriptionButton, {
9723
+ get subscription() {
9724
+ return props.subscription;
9725
+ },
9726
+ get loading() {
9727
+ return props.loading;
9728
+ },
9729
+ get onClick() {
9730
+ return props.onSubscribeClick;
9731
+ }
9732
+ }), null);
9733
+ web.effect((_p$) => {
9734
+ var _a, _b, _c, _d, _e, _f;
9735
+ var _v$ = style({
9736
+ key: "subscriptionPreferencesFallback",
9737
+ className: "nt-flex nt-flex-col nt-items-center nt-justify-center nt-pt-8 nt-pb-12 nt-gap-6",
9738
+ context: {
9739
+ subscription: (_a = props.subscription) != null ? _a : void 0
9740
+ }
9741
+ }), _v$2 = style({
9742
+ key: "subscriptionPreferencesFallbackTexts",
9743
+ className: "nt-flex nt-flex-col nt-items-center nt-justify-center nt-gap-1",
9744
+ context: {
9745
+ subscription: (_b = props.subscription) != null ? _b : void 0
9746
+ }
9747
+ }), _v$3 = style({
9748
+ key: "subscriptionPreferencesFallbackHeader",
9749
+ className: "nt-text-xs nt-font-medium",
9750
+ context: {
9751
+ subscription: (_c = props.subscription) != null ? _c : void 0
9752
+ }
9753
+ }), _v$4 = ((_d = props.subscription) == null ? void 0 : _d.preferences.length) === 0 ? "subscription.preferences.empty.header" : "subscription.preferences.notSubscribed.header", _v$5 = style({
9754
+ key: "subscriptionPreferencesFallbackDescription",
9755
+ className: "nt-text-xs nt-font-medium nt-text-foreground-alpha-400",
9756
+ context: {
9757
+ subscription: (_e = props.subscription) != null ? _e : void 0
9758
+ }
9759
+ }), _v$6 = ((_f = props.subscription) == null ? void 0 : _f.preferences.length) === 0 ? "subscription.preferences.empty.description" : "subscription.preferences.notSubscribed.description";
9760
+ _v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
9761
+ _v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
9762
+ _v$3 !== _p$.a && web.className(_el$3, _p$.a = _v$3);
9763
+ _v$4 !== _p$.o && web.setAttribute(_el$3, "data-localization", _p$.o = _v$4);
9764
+ _v$5 !== _p$.i && web.className(_el$4, _p$.i = _v$5);
9765
+ _v$6 !== _p$.n && web.setAttribute(_el$4, "data-localization", _p$.n = _v$6);
9766
+ return _p$;
9767
+ }, {
9768
+ e: void 0,
9769
+ t: void 0,
9770
+ a: void 0,
9771
+ o: void 0,
9772
+ i: void 0,
9773
+ n: void 0
9774
+ });
9775
+ return _el$;
9776
+ }
9777
+ });
9778
+ };
9779
+
9780
+ // src/ui/components/subscription/SubscriptionPreferences.tsx
9781
+ var _tmpl$94 = /* @__PURE__ */ web.template(`<div class=nt-max-w-56>`);
9782
+ var _tmpl$228 = /* @__PURE__ */ web.template(`<div><p>`);
9783
+ var _tmpl$317 = /* @__PURE__ */ web.template(`<div>`);
9784
+ var SubscriptionPreferences = (props) => {
9785
+ const style = useStyle();
9786
+ const {
9787
+ isDevelopmentMode
9788
+ } = useInboxContext();
9789
+ const {
9790
+ t
9791
+ } = useLocalization();
9792
+ const groupedPreferences = solidJs.createMemo(() => {
9793
+ var _a, _b, _c;
9794
+ const subscriptionPreferences = (_b = (_a = props.subscription) == null ? void 0 : _a.preferences) != null ? _b : [];
9795
+ return (_c = props.preferences.map((preferenceFilter) => {
9796
+ var _a2;
9797
+ if (typeof preferenceFilter === "string") {
9798
+ const foundPreference = subscriptionPreferences.find((el) => {
9799
+ var _a3, _b2;
9800
+ return ((_a3 = el.workflow) == null ? void 0 : _a3.id) === preferenceFilter || ((_b2 = el.workflow) == null ? void 0 : _b2.identifier) === preferenceFilter;
9801
+ });
9802
+ if (foundPreference) {
9803
+ return {
9804
+ label: foundPreference.workflow.name,
9805
+ preference: foundPreference
9806
+ };
9807
+ }
9808
+ }
9809
+ if (typeof preferenceFilter === "object" && "workflowId" in preferenceFilter) {
9810
+ const foundPreference = subscriptionPreferences.find((pref) => {
9811
+ var _a3, _b2;
9812
+ return ((_a3 = pref.workflow) == null ? void 0 : _a3.id) === preferenceFilter.workflowId || ((_b2 = pref.workflow) == null ? void 0 : _b2.identifier) === preferenceFilter.workflowId;
9813
+ });
9814
+ if (foundPreference) {
9815
+ return {
9816
+ label: (_a2 = preferenceFilter.label) != null ? _a2 : foundPreference.workflow.name,
9817
+ preference: foundPreference
9818
+ };
9819
+ }
9820
+ }
9821
+ if (typeof preferenceFilter === "object" && "filter" in preferenceFilter) {
9822
+ let foundPreferences = [];
9823
+ if (typeof preferenceFilter.filter === "object" && "workflows" in preferenceFilter.filter) {
9824
+ const {
9825
+ workflows
9826
+ } = preferenceFilter.filter;
9827
+ foundPreferences = subscriptionPreferences.filter((pref) => {
9828
+ return workflows == null ? void 0 : workflows.some((workflow) => {
9829
+ var _a3, _b2;
9830
+ return workflow.workflowId === ((_a3 = pref.workflow) == null ? void 0 : _a3.id) || workflow.workflowId === ((_b2 = pref.workflow) == null ? void 0 : _b2.identifier);
9831
+ });
9832
+ }).map((pref) => {
9833
+ var _a3;
9834
+ const workflow = workflows == null ? void 0 : workflows.find((workflow2) => {
9835
+ var _a4, _b2;
9836
+ return workflow2.workflowId === ((_a4 = pref.workflow) == null ? void 0 : _a4.id) || workflow2.workflowId === ((_b2 = pref.workflow) == null ? void 0 : _b2.identifier);
9837
+ });
9838
+ return {
9839
+ label: (_a3 = workflow == null ? void 0 : workflow.label) != null ? _a3 : pref.workflow.name,
9840
+ preference: pref
9841
+ };
9842
+ });
9843
+ } else if (typeof preferenceFilter.filter === "object" && ("workflowIds" in preferenceFilter.filter || "tags" in preferenceFilter.filter)) {
9844
+ const {
9845
+ workflowIds,
9846
+ tags
9847
+ } = preferenceFilter.filter;
9848
+ foundPreferences = subscriptionPreferences.filter((pref) => {
9849
+ var _a3, _b2, _c2, _d;
9850
+ return (workflowIds == null ? void 0 : workflowIds.includes((_b2 = (_a3 = pref.workflow) == null ? void 0 : _a3.id) != null ? _b2 : "")) || (workflowIds == null ? void 0 : workflowIds.includes((_d = (_c2 = pref.workflow) == null ? void 0 : _c2.identifier) != null ? _d : "")) || (tags == null ? void 0 : tags.some((tag) => {
9851
+ var _a4, _b3;
9852
+ return (_b3 = (_a4 = pref.workflow) == null ? void 0 : _a4.tags) == null ? void 0 : _b3.includes(tag);
9853
+ }));
9854
+ }).map((pref) => ({
9855
+ label: pref.workflow.name,
9856
+ preference: pref
9857
+ }));
9858
+ }
9859
+ return {
9860
+ label: preferenceFilter.label,
9861
+ group: foundPreferences
9862
+ };
9863
+ }
9864
+ return void 0;
9865
+ }).filter((el) => el !== void 0)) != null ? _c : [];
9866
+ });
9867
+ solidJs.createEffect(() => {
9868
+ setDynamicLocalization((prev) => {
9869
+ var _a;
9870
+ return chunk7B52C2XE_js.__spreadValues(chunk7B52C2XE_js.__spreadValues({}, prev), (_a = props.subscription) == null ? void 0 : _a.preferences.reduce((acc, preference) => {
9871
+ var _a2, _b;
9872
+ if (((_a2 = preference.workflow) == null ? void 0 : _a2.identifier) && ((_b = preference.workflow) == null ? void 0 : _b.name)) {
9873
+ acc[preference.workflow.identifier] = preference.workflow.name;
9874
+ }
9875
+ return acc;
9876
+ }, {}));
9877
+ });
9878
+ });
9879
+ return (() => {
9880
+ var _el$ = _tmpl$317();
9881
+ web.insert(_el$, web.createComponent(solidJs.Show, {
9882
+ get when() {
9883
+ return !props.renderPreferences;
9884
+ },
9885
+ get fallback() {
9886
+ return web.createComponent(ExternalElementRenderer, {
9887
+ render: (el) => {
9888
+ var _a;
9889
+ if (props.renderPreferences) {
9890
+ return props.renderPreferences(el, (_a = props.subscription) != null ? _a : void 0, props.loading);
9891
+ }
9892
+ return () => {
9893
+ };
9894
+ }
9895
+ });
9896
+ },
9897
+ get children() {
9898
+ return [(() => {
9899
+ var _el$2 = _tmpl$228(), _el$3 = _el$2.firstChild;
9900
+ web.insert(_el$3, () => t("subscription.preferences.header"));
9901
+ web.insert(_el$2, web.createComponent(Tooltip.Root, {
9902
+ get children() {
9903
+ return [web.createComponent(Tooltip.Trigger, {
9904
+ get children() {
9905
+ return web.createComponent(IconRenderer, {
9906
+ iconKey: "info",
9907
+ get ["class"]() {
9908
+ var _a;
9909
+ return style({
9910
+ key: "subscriptionPreferencesInfoIcon",
9911
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
9912
+ context: {
9913
+ subscription: (_a = props.subscription) != null ? _a : void 0
9914
+ }
9915
+ });
9916
+ },
9917
+ fallback: Info
9918
+ });
9919
+ }
9920
+ }), web.createComponent(Tooltip.Content, {
9921
+ "data-localization": "subscription.preferences.headerInfo",
9922
+ get children() {
9923
+ var _el$4 = _tmpl$94();
9924
+ web.insert(_el$4, () => t("subscription.preferences.headerInfo"));
9925
+ return _el$4;
9926
+ }
9927
+ })];
9928
+ }
9929
+ }), null);
9930
+ web.effect((_p$) => {
9931
+ var _a, _b;
9932
+ var _v$ = style({
9933
+ key: "subscriptionPreferencesHeaderContainer",
9934
+ className: "nt-px-3 nt-py-2 nt-border-b nt-border-neutral-alpha-100 nt-flex nt-items-center nt-gap-1",
9935
+ context: {
9936
+ subscription: (_a = props.subscription) != null ? _a : void 0
9937
+ }
9938
+ }), _v$2 = style({
9939
+ key: "subscriptionPreferencesHeader",
9940
+ className: "nt-text-base nt-font-medium",
9941
+ context: {
9942
+ subscription: (_b = props.subscription) != null ? _b : void 0
9943
+ }
9944
+ });
9945
+ _v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
9946
+ _v$2 !== _p$.t && web.className(_el$3, _p$.t = _v$2);
9947
+ return _p$;
9948
+ }, {
9949
+ e: void 0,
9950
+ t: void 0
9951
+ });
9952
+ return _el$2;
9953
+ })(), (() => {
9954
+ var _el$5 = _tmpl$317();
9955
+ web.insert(_el$5, web.createComponent(solidJs.Show, {
9956
+ get when() {
9957
+ var _a, _b, _c, _d;
9958
+ return !props.loading && ((_b = (_a = props.subscription) == null ? void 0 : _a.preferences) == null ? void 0 : _b.length) && ((_d = (_c = props.subscription) == null ? void 0 : _c.preferences) == null ? void 0 : _d.length) > 0;
9959
+ },
9960
+ get fallback() {
9961
+ return web.createComponent(SubscriptionPreferencesFallback, {
9962
+ get subscription() {
9963
+ var _a;
9964
+ return (_a = props.subscription) != null ? _a : void 0;
9965
+ },
9966
+ get loading() {
9967
+ return props.loading;
9968
+ },
9969
+ get onSubscribeClick() {
9970
+ return props.onSubscribeClick;
9971
+ }
9972
+ });
9973
+ },
9974
+ get children() {
9975
+ var _el$6 = _tmpl$317();
9976
+ web.insert(_el$6, web.createComponent(solidJs.Index, {
9977
+ get each() {
9978
+ return groupedPreferences();
9979
+ },
9980
+ children: (preference) => web.createComponent(solidJs.Show, {
9981
+ get when() {
9982
+ return preference().group;
9983
+ },
9984
+ get fallback() {
9985
+ return web.createComponent(SubscriptionPreferenceRow, {
9986
+ get preference() {
9987
+ return preference();
9988
+ }
9989
+ });
9990
+ },
9991
+ get children() {
9992
+ return web.createComponent(solidJs.Show, {
9993
+ get when() {
9994
+ var _a;
9995
+ return (_a = preference().group) == null ? void 0 : _a.length;
9996
+ },
9997
+ get children() {
9998
+ return web.createComponent(SubscriptionPreferenceGroupRow, {
9999
+ get group() {
10000
+ return preference();
10001
+ },
10002
+ get subscription() {
10003
+ return props.subscription;
10004
+ }
10005
+ });
10006
+ }
10007
+ });
10008
+ }
10009
+ })
10010
+ }));
10011
+ web.effect(() => {
10012
+ var _a;
10013
+ return web.className(_el$6, style({
10014
+ key: "subscriptionPreferencesGroupsContainer",
10015
+ className: "nt-flex nt-flex-col nt-gap-2 nt-p-3 nt-pb-12",
10016
+ context: {
10017
+ subscription: (_a = props.subscription) != null ? _a : void 0
10018
+ }
10019
+ }));
10020
+ });
10021
+ return _el$6;
10022
+ }
10023
+ }));
10024
+ web.effect(() => {
10025
+ var _a;
10026
+ return web.className(_el$5, style({
10027
+ key: "subscriptionPreferencesContent",
10028
+ // the height is set here to ensure that the content is not jumping when the preferences are loaded or when the empty state is shown
10029
+ className: "nt-min-h-[272px]",
10030
+ context: {
10031
+ subscription: (_a = props.subscription) != null ? _a : void 0
10032
+ }
10033
+ }));
10034
+ });
10035
+ return _el$5;
10036
+ })(), web.createComponent(Footer, {
10037
+ name: "Subscriptions"
10038
+ })];
10039
+ }
10040
+ }));
10041
+ web.effect(() => {
10042
+ var _a;
10043
+ return web.className(_el$, style({
10044
+ key: "subscriptionPreferencesContainer",
10045
+ className: cn("nt-w-full nt-h-full nt-flex nt-flex-col [&_.nv-preferencesContainer]:nt-pb-8 [&_.nv-notificationList]:nt-pb-8 nt-overflow-x-hidden", {
10046
+ "[&_.nv-preferencesContainer]:nt-pb-12 [&_.nv-notificationList]:nt-pb-12": isDevelopmentMode(),
10047
+ "[&_.nv-preferencesContainer]:nt-pb-8 [&_.nv-notificationList]:nt-pb-8": !isDevelopmentMode()
10048
+ }),
10049
+ context: {
10050
+ subscription: (_a = props.subscription) != null ? _a : void 0
10051
+ }
10052
+ }));
10053
+ });
10054
+ return _el$;
10055
+ })();
10056
+ };
10057
+
10058
+ // src/ui/components/subscription/SubscriptionCog.tsx
10059
+ var ANIMATION_CONFIG = {
10060
+ initial: {
10061
+ opacity: 0,
10062
+ x: 20,
10063
+ width: 0,
10064
+ marginLeft: 0
10065
+ },
10066
+ animate: {
10067
+ opacity: 1,
10068
+ x: 0,
10069
+ width: "auto",
10070
+ marginLeft: "6px"
10071
+ },
10072
+ exit: {
10073
+ opacity: 0,
10074
+ x: 20,
10075
+ width: 0,
10076
+ marginLeft: 0
10077
+ },
10078
+ transition: {
10079
+ duration: 0.3,
10080
+ easing: [0, 0, 0.2, 1]
10081
+ }
10082
+ };
10083
+ var SubscriptionCog = (props) => {
10084
+ const style = useStyle();
10085
+ const subscription = solidJs.createMemo(() => {
10086
+ var _a;
10087
+ return (_a = props.subscription) != null ? _a : void 0;
10088
+ });
10089
+ const hasSubscription = solidJs.createMemo(() => !!subscription());
10090
+ const containerClass = solidJs.createMemo(() => style({
10091
+ key: "subscription__popoverTriggerContainer",
10092
+ className: "nt-h-6",
10093
+ context: {
10094
+ subscription: subscription()
10095
+ }
10096
+ }));
10097
+ const triggerClass = solidJs.createMemo(() => style({
10098
+ key: "subscription__popoverTrigger",
10099
+ className: "nt-p-1 nt-size-6",
10100
+ context: {
10101
+ subscription: subscription()
10102
+ }
10103
+ }));
10104
+ const iconClass = solidJs.createMemo(() => style({
10105
+ key: "subscriptionTriggerIcon",
10106
+ className: "nt-text-foreground-alpha-600 nt-size-3.5",
10107
+ context: {
10108
+ subscription: subscription()
10109
+ }
10110
+ }));
10111
+ const renderTrigger = (triggerProps) => web.createComponent(solidMotionone.Presence, {
10112
+ exitBeforeEnter: true,
10113
+ get children() {
10114
+ return web.createComponent(solidJs.Show, {
10115
+ get when() {
10116
+ return hasSubscription();
10117
+ },
10118
+ get children() {
10119
+ return web.createComponent(solidMotionone.Motion.span, {
10120
+ get initial() {
10121
+ return ANIMATION_CONFIG.initial;
10122
+ },
10123
+ get animate() {
10124
+ return ANIMATION_CONFIG.animate;
10125
+ },
10126
+ get exit() {
10127
+ return ANIMATION_CONFIG.exit;
10128
+ },
10129
+ get transition() {
10130
+ return ANIMATION_CONFIG.transition;
10131
+ },
10132
+ style: {
10133
+ opacity: 1,
10134
+ transform: "translateX(0px)",
10135
+ width: "auto",
10136
+ "margin-left": "6px"
10137
+ },
10138
+ get ["class"]() {
10139
+ return containerClass();
10140
+ },
10141
+ get children() {
10142
+ return web.createComponent(Button, web.mergeProps({
10143
+ get ["class"]() {
10144
+ return triggerClass();
10145
+ },
10146
+ variant: "secondary"
10147
+ }, triggerProps, {
10148
+ get disabled() {
10149
+ return !subscription() || props.loading;
10150
+ },
10151
+ get children() {
10152
+ return web.createComponent(Cogs, {
10153
+ get ["class"]() {
10154
+ return iconClass();
10155
+ }
10156
+ });
10157
+ }
10158
+ }));
10159
+ }
10160
+ });
10161
+ }
10162
+ });
10163
+ }
10164
+ });
10165
+ return web.createComponent(Popover.Root, {
10166
+ get open() {
10167
+ return props.isOpen;
10168
+ },
10169
+ get onOpenChange() {
10170
+ return props.onOpenChange;
10171
+ },
10172
+ get placement() {
10173
+ var _a;
10174
+ return (_a = props.placement) != null ? _a : "bottom-end";
10175
+ },
10176
+ get offset() {
10177
+ return props.placementOffset;
10178
+ },
10179
+ get children() {
10180
+ return [web.createComponent(Popover.Trigger, {
10181
+ asChild: renderTrigger
10182
+ }), web.createComponent(solidJs.Show, {
10183
+ get when() {
10184
+ return subscription();
10185
+ },
10186
+ children: (subscription2) => web.createComponent(Popover.Content, {
10187
+ portal: true,
10188
+ appearanceKey: "subscription__popoverContent",
10189
+ size: "subscription",
10190
+ get context() {
10191
+ return {
10192
+ subscription: subscription2()
10193
+ };
10194
+ },
10195
+ get children() {
10196
+ return web.createComponent(SubscriptionPreferences, {
10197
+ get preferences() {
10198
+ return props.preferences;
10199
+ },
10200
+ get renderPreferences() {
10201
+ return props.renderPreferences;
10202
+ },
10203
+ get subscription() {
10204
+ return subscription2();
10205
+ },
10206
+ get loading() {
10207
+ return props.loading;
10208
+ },
10209
+ get onSubscribeClick() {
10210
+ return props.onSubscribeClick;
10211
+ }
10212
+ });
10213
+ }
10214
+ })
10215
+ })];
10216
+ }
10217
+ });
10218
+ };
10219
+
10220
+ // src/ui/components/subscription/Subscription.tsx
10221
+ var _tmpl$95 = /* @__PURE__ */ web.template(`<div>`);
10222
+ var Subscription = (props) => {
10223
+ const style = useStyle();
10224
+ const {
10225
+ isOpened,
10226
+ setIsOpened
10227
+ } = useInboxContext();
10228
+ const isOpen = () => {
10229
+ var _a;
10230
+ return (_a = props == null ? void 0 : props.open) != null ? _a : isOpened();
10231
+ };
10232
+ const {
10233
+ subscription,
10234
+ loading,
10235
+ create,
10236
+ remove
10237
+ } = useSubscription({
10238
+ topicKey: props.topicKey,
10239
+ identifier: props.identifier
10240
+ });
10241
+ const onSubscribeClick = () => {
10242
+ const currentSubscription = subscription();
10243
+ if (currentSubscription) {
10244
+ remove({
10245
+ subscription: currentSubscription
10246
+ });
10247
+ } else {
10248
+ const preferences = props.preferences.map((preference) => {
10249
+ if (typeof preference === "object" && "workflowId" in preference && preference.workflowId) {
10250
+ return {
10251
+ workflowId: preference.workflowId,
10252
+ enabled: preference.enabled
10253
+ };
10254
+ } else if (typeof preference === "object" && "filter" in preference && preference.filter) {
10255
+ return {
10256
+ filter: preference.filter,
10257
+ enabled: preference.enabled
10258
+ };
10259
+ }
10260
+ return preference;
10261
+ });
10262
+ create({
10263
+ topicKey: props.topicKey,
10264
+ identifier: props.identifier,
10265
+ preferences
10266
+ });
10267
+ }
10268
+ };
10269
+ return (() => {
10270
+ var _el$ = _tmpl$95();
10271
+ web.insert(_el$, web.createComponent(SubscriptionButton, {
10272
+ get subscription() {
10273
+ return subscription();
10274
+ },
10275
+ get loading() {
10276
+ return loading();
10277
+ },
10278
+ onClick: onSubscribeClick
10279
+ }), null);
10280
+ web.insert(_el$, web.createComponent(SubscriptionCog, {
10281
+ get isOpen() {
10282
+ return isOpen();
10283
+ },
10284
+ onOpenChange: setIsOpened,
10285
+ get subscription() {
10286
+ return subscription();
10287
+ },
10288
+ get loading() {
10289
+ return loading();
10290
+ },
10291
+ get placement() {
10292
+ var _a;
10293
+ return (_a = props.placement) != null ? _a : "bottom-end";
10294
+ },
10295
+ get placementOffset() {
10296
+ return props.placementOffset;
10297
+ },
10298
+ get preferences() {
10299
+ return props.preferences;
10300
+ },
10301
+ get renderPreferences() {
10302
+ return props.renderPreferences;
10303
+ },
10304
+ onSubscribeClick
10305
+ }), null);
10306
+ web.effect(() => {
10307
+ var _a;
10308
+ return web.className(_el$, style({
10309
+ key: "subscriptionContainer",
10310
+ className: cn("nt-flex nt-items-center"),
10311
+ context: {
10312
+ subscription: (_a = subscription()) != null ? _a : void 0
10313
+ }
10314
+ }));
10315
+ });
10316
+ return _el$;
10317
+ })();
10318
+ };
10319
+ var SubscriptionButtonWrapper = (props) => {
10320
+ const {
10321
+ subscription,
10322
+ loading,
10323
+ create,
10324
+ remove
10325
+ } = useSubscription({
10326
+ topicKey: props.topicKey,
10327
+ identifier: props.identifier
10328
+ });
10329
+ const onSubscribeClick = () => chunk7B52C2XE_js.__async(void 0, null, function* () {
10330
+ var _a, _b, _c, _d, _e;
10331
+ const currentSubscription = subscription();
10332
+ (_a = props.onClick) == null ? void 0 : _a.call(props, {
10333
+ subscription: currentSubscription != null ? currentSubscription : void 0
10334
+ });
10335
+ if (currentSubscription) {
10336
+ const {
10337
+ error
10338
+ } = yield remove({
10339
+ subscription: currentSubscription
10340
+ });
10341
+ if (error) {
10342
+ (_b = props.onDeleteError) == null ? void 0 : _b.call(props, error);
10343
+ return;
10344
+ }
10345
+ (_c = props.onDeleteSuccess) == null ? void 0 : _c.call(props);
10346
+ } else {
10347
+ const preferences = props.preferences.map((preference) => {
10348
+ if (typeof preference === "object" && "workflowId" in preference && preference.workflowId) {
10349
+ return {
10350
+ workflowId: preference.workflowId,
10351
+ enabled: preference.enabled
10352
+ };
10353
+ } else if (typeof preference === "object" && "filter" in preference && preference.filter) {
10354
+ return {
10355
+ filter: preference.filter,
10356
+ enabled: preference.enabled
10357
+ };
10358
+ }
10359
+ return preference;
10360
+ });
10361
+ const {
10362
+ data,
10363
+ error
10364
+ } = yield create({
10365
+ topicKey: props.topicKey,
10366
+ identifier: props.identifier,
10367
+ preferences
10368
+ });
10369
+ if (data) {
10370
+ (_d = props.onCreateSuccess) == null ? void 0 : _d.call(props, {
10371
+ subscription: data
10372
+ });
10373
+ return;
10374
+ }
10375
+ (_e = props.onCreateError) == null ? void 0 : _e.call(props, error);
10376
+ }
10377
+ });
10378
+ return web.createComponent(SubscriptionButton, {
10379
+ get subscription() {
10380
+ return subscription();
10381
+ },
10382
+ get loading() {
10383
+ return loading();
10384
+ },
10385
+ onClick: onSubscribeClick
10386
+ });
10387
+ };
10388
+ var SubscriptionPreferencesWrapper = (props) => {
10389
+ const {
10390
+ subscription,
10391
+ loading,
10392
+ create,
10393
+ remove
10394
+ } = useSubscription({
10395
+ topicKey: props.topicKey,
10396
+ identifier: props.identifier
10397
+ });
10398
+ const onSubscribeClick = () => chunk7B52C2XE_js.__async(void 0, null, function* () {
10399
+ var _a, _b, _c, _d, _e;
10400
+ const currentSubscription = subscription();
10401
+ (_a = props.onClick) == null ? void 0 : _a.call(props, {
10402
+ subscription: currentSubscription != null ? currentSubscription : void 0
10403
+ });
10404
+ if (currentSubscription) {
10405
+ const {
10406
+ error
10407
+ } = yield remove({
10408
+ subscription: currentSubscription
10409
+ });
10410
+ if (error) {
10411
+ (_b = props.onDeleteError) == null ? void 0 : _b.call(props, error);
10412
+ return;
10413
+ }
10414
+ (_c = props.onDeleteSuccess) == null ? void 0 : _c.call(props);
10415
+ } else {
10416
+ const preferences = props.preferences.map((preference) => {
10417
+ if (typeof preference === "object" && "workflowId" in preference && preference.workflowId) {
10418
+ return {
10419
+ workflowId: preference.workflowId,
10420
+ enabled: preference.enabled
10421
+ };
10422
+ } else if (typeof preference === "object" && "filter" in preference && preference.filter) {
10423
+ return {
10424
+ filter: preference.filter,
10425
+ enabled: preference.enabled
10426
+ };
10427
+ }
10428
+ return preference;
10429
+ });
10430
+ const {
10431
+ data,
10432
+ error
10433
+ } = yield create({
10434
+ topicKey: props.topicKey,
10435
+ identifier: props.identifier,
10436
+ preferences
10437
+ });
10438
+ if (data) {
10439
+ (_d = props.onCreateSuccess) == null ? void 0 : _d.call(props, {
10440
+ subscription: data
10441
+ });
10442
+ return;
10443
+ }
10444
+ (_e = props.onCreateError) == null ? void 0 : _e.call(props, error);
10445
+ }
10446
+ });
10447
+ return web.createComponent(SubscriptionPreferences, {
10448
+ get preferences() {
10449
+ return props.preferences;
10450
+ },
10451
+ get subscription() {
10452
+ return subscription();
10453
+ },
10454
+ get loading() {
10455
+ return loading();
10456
+ },
10457
+ onSubscribeClick
10458
+ });
10459
+ };
10460
+
10461
+ // src/ui/components/Renderer.tsx
10462
+ var novuComponents = {
10463
+ Inbox,
10464
+ InboxContent,
10465
+ Bell: Bell2,
10466
+ Notifications: (props) => {
10467
+ if (props.renderNotification) {
10468
+ const _a = props, otherProps = chunk7B52C2XE_js.__objRest(_a, [
10469
+ "renderBody",
10470
+ "renderSubject",
10471
+ "renderAvatar",
10472
+ "renderDefaultActions",
10473
+ "renderCustomActions"
10474
+ ]);
10475
+ return web.createComponent(InboxContent, web.mergeProps(otherProps, {
10476
+ hideNav: true,
10477
+ get initialPage() {
10478
+ return InboxPage.Notifications;
10479
+ }
10480
+ }));
10481
+ }
10482
+ const _b = props, propsWithoutRenderNotification = chunk7B52C2XE_js.__objRest(_b, [
10483
+ "renderNotification"
10484
+ ]);
10485
+ return web.createComponent(InboxContent, web.mergeProps(propsWithoutRenderNotification, {
10486
+ hideNav: true,
10487
+ get initialPage() {
10488
+ return InboxPage.Notifications;
10489
+ }
10490
+ }));
10491
+ },
10492
+ Preferences: (props) => {
10493
+ if (props.renderNotification) {
10494
+ const _a = props, otherProps = chunk7B52C2XE_js.__objRest(_a, [
10495
+ "renderBody",
10496
+ "renderSubject",
10497
+ "renderAvatar",
10498
+ "renderDefaultActions",
10499
+ "renderCustomActions"
10500
+ ]);
10501
+ return web.createComponent(InboxContent, web.mergeProps(otherProps, {
10502
+ hideNav: true,
10503
+ get initialPage() {
10504
+ return InboxPage.Preferences;
10505
+ }
10506
+ }));
10507
+ }
10508
+ const _b = props, propsWithoutRenderNotification = chunk7B52C2XE_js.__objRest(_b, [
10509
+ "renderNotification"
10510
+ ]);
10511
+ return web.createComponent(InboxContent, web.mergeProps(propsWithoutRenderNotification, {
10512
+ hideNav: true,
10513
+ get initialPage() {
10514
+ return InboxPage.Preferences;
10515
+ }
10516
+ }));
10517
+ },
10518
+ Subscription,
10519
+ SubscriptionButton: SubscriptionButtonWrapper,
10520
+ SubscriptionPreferences: SubscriptionPreferencesWrapper
10521
+ };
10522
+ var SUBSCRIPTION_COMPONENTS = ["Subscription", "SubscriptionButton", "SubscriptionPreferences"];
10523
+ var Renderer = (props) => {
10524
+ const nodes = () => [...props.nodes.keys()];
10525
+ solidJs.onMount(() => {
10526
+ var _a;
10527
+ const id = NOVU_DEFAULT_CSS_ID;
10528
+ const root = props.container instanceof ShadowRoot ? props.container : document;
10529
+ const el = root.getElementById(id);
10530
+ if (el) {
10531
+ return;
10532
+ }
10533
+ const styleEl = document.createElement("style");
10534
+ styleEl.id = id;
10535
+ styleEl.innerHTML = ui_default;
10536
+ const stylesContainer = (_a = props.container) != null ? _a : document.head;
10537
+ stylesContainer.insertBefore(styleEl, stylesContainer.firstChild);
10538
+ solidJs.onCleanup(() => {
10539
+ styleEl.remove();
10540
+ });
10541
+ });
10542
+ return web.createComponent(NovuProvider, {
10543
+ get options() {
10544
+ return props.options;
10545
+ },
10546
+ get novu() {
10547
+ return props.novu;
10548
+ },
10549
+ get children() {
10550
+ return web.createComponent(LocalizationProvider, {
10551
+ get localization() {
10552
+ return props.localization;
10553
+ },
10554
+ get children() {
9062
10555
  return web.createComponent(AppearanceProvider, {
9063
10556
  get id() {
9064
10557
  return props.novuUI.id;
@@ -9093,34 +10586,60 @@ var Renderer = (props) => {
9093
10586
  return props.routerPush;
9094
10587
  },
9095
10588
  get children() {
9096
- return web.createComponent(CountProvider, {
9097
- get children() {
9098
- return web.createComponent(solidJs.For, {
9099
- get each() {
9100
- return nodes();
9101
- },
9102
- children: (node) => {
9103
- const novuComponent = () => props.nodes.get(node);
9104
- let portalDivElement;
9105
- const Component = novuComponents[novuComponent().name];
9106
- solidJs.onMount(() => {
9107
- if (!["Notifications", "Preferences", "InboxContent"].includes(novuComponent().name)) return;
9108
- if (node instanceof HTMLElement) {
9109
- node.style.height = "100%";
9110
- }
9111
- if (portalDivElement) {
9112
- portalDivElement.style.height = "100%";
10589
+ return web.createComponent(solidJs.For, {
10590
+ get each() {
10591
+ return nodes();
10592
+ },
10593
+ children: (node) => {
10594
+ const novuComponent = () => props.nodes.get(node);
10595
+ let portalDivElement;
10596
+ const Component = novuComponents[novuComponent().name];
10597
+ solidJs.onMount(() => {
10598
+ if (!["Notifications", "Preferences", "InboxContent"].includes(novuComponent().name)) return;
10599
+ if (node instanceof HTMLElement) {
10600
+ node.style.height = "100%";
10601
+ }
10602
+ if (portalDivElement) {
10603
+ portalDivElement.style.height = "100%";
10604
+ }
10605
+ });
10606
+ return web.createComponent(solidJs.Switch, {
10607
+ get fallback() {
10608
+ return web.createComponent(CountProvider, {
10609
+ get children() {
10610
+ return web.createComponent(web.Portal, {
10611
+ mount: node,
10612
+ ref: (el) => {
10613
+ portalDivElement = el;
10614
+ },
10615
+ get children() {
10616
+ return web.createComponent(Root, {
10617
+ get children() {
10618
+ return web.createComponent(Component, web.mergeProps(() => novuComponent().props));
10619
+ }
10620
+ });
10621
+ }
10622
+ });
9113
10623
  }
9114
10624
  });
9115
- return web.createComponent(web.Portal, {
9116
- mount: node,
9117
- ref: (el) => {
9118
- portalDivElement = el;
10625
+ },
10626
+ get children() {
10627
+ return web.createComponent(solidJs.Match, {
10628
+ get when() {
10629
+ return SUBSCRIPTION_COMPONENTS.includes(novuComponent().name);
9119
10630
  },
9120
10631
  get children() {
9121
- return web.createComponent(Root, {
10632
+ return web.createComponent(web.Portal, {
10633
+ mount: node,
10634
+ ref: (el) => {
10635
+ portalDivElement = el;
10636
+ },
9122
10637
  get children() {
9123
- return web.createComponent(Component, web.mergeProps(() => novuComponent().props));
10638
+ return web.createComponent(Root, {
10639
+ get children() {
10640
+ return web.createComponent(Component, web.mergeProps(() => novuComponent().props));
10641
+ }
10642
+ });
9124
10643
  }
9125
10644
  });
9126
10645
  }
@@ -9142,7 +10661,7 @@ var Renderer = (props) => {
9142
10661
  };
9143
10662
 
9144
10663
  // src/ui/novuUI.tsx
9145
- var _dispose, _container, _setContainer, _rootElement, _mountedElements, _setMountedElements, _appearance, _setAppearance, _localization, _setLocalization, _options, _setOptions, _tabs, _setTabs, _routerPush, _setRouterPush, _preferencesFilter, _setPreferencesFilter, _preferenceGroups, _setPreferenceGroups, _preferencesSort, _setPreferencesSort, _predefinedNovu, _NovuUI_instances, getContainerElement_fn, mountComponentRenderer_fn, updateComponentProps_fn;
10664
+ var _dispose, _container, _setContainer, _rootElement, _mountedElements, _setMountedElements, _appearance, _setAppearance, _localization, _setLocalization, _options, _setOptions, _tabs, _setTabs, _routerPush, _setRouterPush, _preferencesFilter, _setPreferencesFilter, _preferenceGroups, _setPreferenceGroups, _preferencesSort, _setPreferencesSort, _novu, _setNovu, _NovuUI_instances, getContainerElement_fn, mountComponentRenderer_fn, updateComponentProps_fn;
9146
10665
  var NovuUI = class {
9147
10666
  constructor(props) {
9148
10667
  chunk7B52C2XE_js.__privateAdd(this, _NovuUI_instances);
@@ -9168,7 +10687,8 @@ var NovuUI = class {
9168
10687
  chunk7B52C2XE_js.__privateAdd(this, _setPreferenceGroups);
9169
10688
  chunk7B52C2XE_js.__privateAdd(this, _preferencesSort);
9170
10689
  chunk7B52C2XE_js.__privateAdd(this, _setPreferencesSort);
9171
- chunk7B52C2XE_js.__privateAdd(this, _predefinedNovu);
10690
+ chunk7B52C2XE_js.__privateAdd(this, _novu);
10691
+ chunk7B52C2XE_js.__privateAdd(this, _setNovu);
9172
10692
  var _a;
9173
10693
  this.id = generateRandomString(16);
9174
10694
  const [appearance, setAppearance] = solidJs.createSignal(props.appearance);
@@ -9181,6 +10701,7 @@ var NovuUI = class {
9181
10701
  const [preferencesSort, setPreferencesSort] = solidJs.createSignal(props.preferencesSort);
9182
10702
  const [routerPush, setRouterPush] = solidJs.createSignal(props.routerPush);
9183
10703
  const [container, setContainer] = solidJs.createSignal(chunk7B52C2XE_js.__privateMethod(this, _NovuUI_instances, getContainerElement_fn).call(this, props.container));
10704
+ const [novu, setNovu] = solidJs.createSignal(props.novu);
9184
10705
  chunk7B52C2XE_js.__privateSet(this, _mountedElements, mountedElements);
9185
10706
  chunk7B52C2XE_js.__privateSet(this, _setMountedElements, setMountedElements);
9186
10707
  chunk7B52C2XE_js.__privateSet(this, _appearance, appearance);
@@ -9193,7 +10714,8 @@ var NovuUI = class {
9193
10714
  chunk7B52C2XE_js.__privateSet(this, _setTabs, setTabs);
9194
10715
  chunk7B52C2XE_js.__privateSet(this, _routerPush, routerPush);
9195
10716
  chunk7B52C2XE_js.__privateSet(this, _setRouterPush, setRouterPush);
9196
- chunk7B52C2XE_js.__privateSet(this, _predefinedNovu, props.novu);
10717
+ chunk7B52C2XE_js.__privateSet(this, _novu, novu);
10718
+ chunk7B52C2XE_js.__privateSet(this, _setNovu, setNovu);
9197
10719
  chunk7B52C2XE_js.__privateSet(this, _preferencesFilter, preferencesFilter);
9198
10720
  chunk7B52C2XE_js.__privateSet(this, _setPreferencesFilter, setPreferencesFilter);
9199
10721
  chunk7B52C2XE_js.__privateSet(this, _preferenceGroups, preferenceGroups);
@@ -9228,6 +10750,9 @@ var NovuUI = class {
9228
10750
  return newMountedElements;
9229
10751
  });
9230
10752
  }
10753
+ updateNovu(novu) {
10754
+ chunk7B52C2XE_js.__privateGet(this, _setNovu).call(this, novu);
10755
+ }
9231
10756
  updateAppearance(appearance) {
9232
10757
  chunk7B52C2XE_js.__privateGet(this, _setAppearance).call(this, appearance);
9233
10758
  }
@@ -9284,7 +10809,8 @@ _preferenceGroups = new WeakMap();
9284
10809
  _setPreferenceGroups = new WeakMap();
9285
10810
  _preferencesSort = new WeakMap();
9286
10811
  _setPreferencesSort = new WeakMap();
9287
- _predefinedNovu = new WeakMap();
10812
+ _novu = new WeakMap();
10813
+ _setNovu = new WeakMap();
9288
10814
  _NovuUI_instances = new WeakSet();
9289
10815
  getContainerElement_fn = function(container) {
9290
10816
  var _a;
@@ -9345,7 +10871,7 @@ mountComponentRenderer_fn = function() {
9345
10871
  return chunk7B52C2XE_js.__privateGet(_a = _self$, _routerPush).call(_a);
9346
10872
  },
9347
10873
  get novu() {
9348
- return chunk7B52C2XE_js.__privateGet(_self$, _predefinedNovu);
10874
+ return chunk7B52C2XE_js.__privateGet(_self$, _novu);
9349
10875
  },
9350
10876
  get container() {
9351
10877
  var _a;
@@ -9368,5 +10894,4 @@ updateComponentProps_fn = function(element, props) {
9368
10894
  });
9369
10895
  };
9370
10896
 
9371
- exports.NotificationStatus = NotificationStatus;
9372
10897
  exports.NovuUI = NovuUI;