@novu/js 3.5.0-rc.2 → 3.5.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{chunk-OGEM74YA.js → chunk-MKUNHEMT.js} +93 -18
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +8 -8
- package/dist/{esm/novu-q3jzGeyW.d.mts → cjs/novu-Bocb1dH9.d.ts} +24 -13
- package/dist/cjs/themes/index.d.ts +2 -2
- package/dist/cjs/{types-DdImrpw7.d.ts → types-DeMFGM4g.d.ts} +2 -2
- package/dist/cjs/ui/index.d.ts +4 -4
- package/dist/cjs/ui/index.js +1475 -1201
- package/dist/esm/{chunk-GPGRFVOZ.mjs → chunk-T4OFEC3E.mjs} +93 -19
- package/dist/esm/index.d.mts +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/{cjs/novu-q3jzGeyW.d.ts → esm/novu-Bocb1dH9.d.mts} +24 -13
- package/dist/esm/themes/index.d.mts +2 -2
- package/dist/esm/{types-CTQLJWIf.d.mts → types-CObwRGDC.d.mts} +2 -2
- package/dist/esm/ui/index.d.mts +4 -4
- package/dist/esm/ui/index.mjs +1476 -1202
- package/dist/index.css +1 -1
- package/dist/novu.min.js +10 -10
- package/dist/novu.min.js.gz +0 -0
- package/package.json +3 -2
package/dist/cjs/ui/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkMKUNHEMT_js = require('../chunk-MKUNHEMT.js');
|
|
4
4
|
var chunkERC62PGI_js = require('../chunk-ERC62PGI.js');
|
|
5
5
|
var chunk7B52C2XE_js = require('../chunk-7B52C2XE.js');
|
|
6
6
|
var web = require('solid-js/web');
|
|
@@ -8,17 +8,17 @@ var solidJs = require('solid-js');
|
|
|
8
8
|
var store = require('solid-js/store');
|
|
9
9
|
var clsx = require('clsx');
|
|
10
10
|
var tailwindMerge = require('tailwind-merge');
|
|
11
|
-
var classVarianceAuthority = require('class-variance-authority');
|
|
12
11
|
var dom = require('@floating-ui/dom');
|
|
13
12
|
var solidFloatingUi = require('solid-floating-ui');
|
|
14
13
|
var solidMotionone = require('solid-motionone');
|
|
14
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
15
15
|
|
|
16
16
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
17
|
|
|
18
18
|
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
19
19
|
|
|
20
|
-
//
|
|
21
|
-
var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}}.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.\\!nt-pointer-events-auto{pointer-events:auto!important}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-left-0\\.5{left:.125rem}.nt-right-0{right:0}.nt-right-3{right:.75rem}.nt-top-0{top:0}.nt-top-0\\.5{top:.125rem}.nt-top-3{top:.75rem}.nt-z-10{z-index:10}.nt-z-\\[-1\\]{z-index:-1}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt-mb-2{margin-bottom:.5rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-2{margin-left:.5rem}.nt-ml-auto{margin-left:auto}.nt-mr-2{margin-right:.5rem}.nt-mr-auto{margin-right:auto}.nt-mt-1{margin-top:.25rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.nt-size-1\\.5{height:.375rem;width:.375rem}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\\.5{height:.625rem;width:.625rem}.nt-size-3{height:.75rem;width:.75rem}.nt-size-3\\.5{height:.875rem;width:.875rem}.nt-size-4{height:1rem;width:1rem}.nt-size-5{height:1.25rem;width:1.25rem}.nt-size-8{height:2rem;width:2rem}.nt-size-fit{height:fit-content;width:fit-content}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-4{height:1rem}.nt-h-5{height:1.25rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-9{height:2.25rem}.nt-h-\\[600px\\]{height:600px}.nt-h-fit{height:fit-content}.nt-h-full{height:100%}.nt-min-h-0{min-height:0}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-5{width:1.25rem}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[260px\\]{width:260px}.nt-w-\\[400px\\]{width:400px}.nt-w-\\[60px\\]{width:60px}.nt-w-\\[calc\\(2ch\\+2rem\\)\\]{width:calc(2ch + 2rem)}.nt-w-fit{width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.nt-translate-x-1\\/2{--tw-translate-x:50%}.nt-transform,.nt-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-cursor-default{cursor:default}.nt-cursor-not-allowed{cursor:not-allowed}.nt-cursor-pointer{cursor:pointer}.nt-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.nt-flex-row{flex-direction:row}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-end{justify-content:flex-end}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-1\\.5{gap:.375rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-auto{overflow:auto}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-truncate{overflow:hidden;text-overflow:ellipsis}.nt-truncate,.nt-whitespace-nowrap{white-space:nowrap}.nt-whitespace-pre-wrap{white-space:pre-wrap}.nt-rounded{border-radius:var(--nv-radius-base)}.nt-rounded-full{border-radius:var(--nv-radius-full)}.nt-rounded-lg{border-radius:var(--nv-radius-lg)}.nt-rounded-md{border-radius:var(--nv-radius-md)}.nt-rounded-sm{border-radius:var(--nv-radius-sm)}.nt-rounded-xl{border-radius:var(--nv-radius-xl)}.nt-border{border-width:1px}.nt-border-b{border-bottom-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-border{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-border-neutral-alpha-50{border-color:var(--nv-color-neutral-alpha-50)}.nt-border-t-neutral-alpha-200{border-top-color:var(--nv-color-neutral-alpha-200)}.nt-bg-\\[oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.1\\)\\]{background-color:oklch(from var(--nv-color-stripes) l c h/.1)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-neutral-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-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.nt-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.nt-from-foreground-alpha-50{--tw-gradient-from:var(--nv-color-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-primary-foreground-alpha-200{--tw-gradient-from:var(--nv-color-primary-foreground-alpha-200) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-20\\%{--tw-gradient-from-position:20%}.nt-to-background{--tw-gradient-to:var(--nv-color-background) var(--tw-gradient-to-position)}.nt-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.nt-object-cover{object-fit:cover}.nt-p-0{padding:0}.nt-p-0\\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-2\\.5{padding:.625rem}.nt-p-3{padding:.75rem}.nt-p-4{padding:1rem}.nt-px-1{padding-left:.25rem;padding-right:.25rem}.nt-px-2{padding-left:.5rem;padding-right:.5rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-4{padding-left:1rem;padding-right:1rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\\[6px\\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-2{padding-bottom:.5rem;padding-top:.5rem}.nt-py-3{padding-bottom:.75rem;padding-top:.75rem}.nt-py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-px{padding-bottom:1px;padding-top:1px}.nt-pb-2{padding-bottom:.5rem}.nt-pb-\\[0\\.625rem\\]{padding-bottom:.625rem}.nt-pr-0{padding-right:0}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.nt-text-\\[0\\.8rem\\]{font-size:.8rem}.nt-text-base{font-size:var(--nv-font-size-base);line-height:var(--nv-line-height-base)}.nt-text-sm{font-size:var(--nv-font-size-sm);line-height:var(--nv-line-height-sm)}.nt-text-xl{font-size:var(--nv-font-size-xl);line-height:var(--nv-line-height-xl)}.nt-text-xs{font-size:var(--nv-font-size-xs);line-height:var(--nv-line-height-xs)}.nt-font-medium{font-weight:500}.nt-font-normal{font-weight:400}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.nt-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-tooltip{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 oklch(from var(--nv-color-shadow) l c h/0.08);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-backdrop-blur-lg{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nt-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\\[interpolate-size\\:allow-keywords\\]{interpolate-size:allow-keywords}.\\[scrollbar-gutter\\:stable\\]{scrollbar-gutter:stable}.\\[word-break\\:break-word\\]{word-break:break-word}.before\\:nt-absolute:before{content:var(--tw-content);position:absolute}.before\\:nt-inset-0:before{content:var(--tw-content);inset:0}.before\\:-nt-right-\\[calc\\(0\\+var\\(--stripes-size\\)\\)\\]:before{content:var(--tw-content);right:calc(var(--stripes-size)*-1)}@keyframes nt-stripes{0%{content:var(--tw-content);transform:translateX(0)}to{content:var(--tw-content);transform:translateX(calc(var(--stripes-size)*-1))}}.before\\:nt-animate-stripes:before{animation:nt-stripes 1s linear infinite paused;content:var(--tw-content)}.before\\:nt-rounded-lg:before{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.before\\:nt-rounded-md:before{border-radius:var(--nv-radius-md);content:var(--tw-content)}.before\\:nt-rounded-xl:before{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.before\\:nt-border:before{border-width:1px;content:var(--tw-content)}.before\\:nt-border-primary-foreground-alpha-100:before{border-color:var(--nv-color-primary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-border-secondary-foreground-alpha-100:before{border-color:var(--nv-color-secondary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-bg-dev-stripes-gradient:before{background-image:repeating-linear-gradient(135deg,oklch(from var(--nv-color-stripes) l c h/.1) 25%,oklch(from var(--nv-color-stripes) l c h/.1) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 75%);content:var(--tw-content)}.before\\:nt-bg-\\[length\\:var\\(--stripes-size\\)_var\\(--stripes-size\\)\\]:before{background-size:var(--stripes-size) var(--stripes-size);content:var(--tw-content)}.before\\:nt-content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.before\\:\\[mask-image\\:linear-gradient\\(transparent_0\\%\\2c black\\)\\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.after\\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\\:nt-inset-0:after{content:var(--tw-content);inset:0}.after\\:-nt-top-12:after{content:var(--tw-content);top:-3rem}.after\\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:nt-left-0:after{content:var(--tw-content);left:0}.after\\:nt-left-0\\.5:after{content:var(--tw-content);left:.125rem}.after\\:nt-top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:nt-size-3:after{content:var(--tw-content);height:.75rem;width:.75rem}.after\\:nt-h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:nt-w-full:after{content:var(--tw-content);width:100%}.after\\:nt-translate-x-1\\/2:after{--tw-translate-x:50%}.after\\:nt-translate-x-1\\/2:after,.after\\:nt-translate-x-full:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\\:nt-translate-x-full:after{--tw-translate-x:100%}.after\\:nt-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-lg:after{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-bg-primary-alpha-400:hover{background-color:var(--nv-color-primary-alpha-400)}.hover\\:nt-text-foreground-alpha-800:hover{color:var(--nv-color-foreground-alpha-800)}.before\\:hover\\:\\[animation-play-state\\:running\\]:hover:before{animation-play-state:running;content:var(--tw-content)}.hover\\:after\\:nt-opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus\\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-rounded-lg:focus-visible{border-radius:var(--nv-radius-lg)}.focus-visible\\:nt-rounded-md:focus-visible{border-radius:var(--nv-radius-md)}.focus-visible\\:nt-rounded-xl:focus-visible{border-radius:var(--nv-radius-xl)}.focus-visible\\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\\:nt-ring-ring:focus-visible{--tw-ring-color:var(--nv-color-ring)}.focus-visible\\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\\:nt-opacity-20:disabled{opacity:.2}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100,.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true],.data-\\[open\\=true\\]\\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-4 .nv-notificationList{padding-bottom:1rem}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-8 .nv-notificationList{padding-bottom:2rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-4 .nv-preferencesContainer{padding-bottom:1rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-8 .nv-preferencesContainer{padding-bottom:2rem}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
|
|
20
|
+
// _gl34gdy6p:/Users/dimagrossman/projects/novu/packages/js/src/ui/index.directcss
|
|
21
|
+
var ui_default = `.novu{scrollbar-color:var(--nv-color-secondary-foreground-alpha-300) #0000;:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{border:0 solid #e5e7eb;box-sizing:border-box}:where(html,:host){line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;tab-size:4;-webkit-tap-highlight-color:transparent}:where(body){line-height:inherit;margin:0}:where(hr){border-top-width:1px;color:inherit;height:0}:where(abbr:where([title])){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}:where(a){color:inherit;text-decoration:inherit}:where(b,strong){font-weight:bolder}:where(code,kbd,samp,pre){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}:where(small){font-size:80%}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:initial}:where(sub){bottom:-.25em}:where(sup){top:-.5em}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,optgroup,select,textarea){color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}:where(button,select){text-transform:none}:where(button,input:where([type=button]),input:where([type=reset]),input:where([type=submit])){-webkit-appearance:button;background-color:initial;background-image:none}:where(:-moz-focusring){outline:auto}:where(:-moz-ui-invalid){box-shadow:none}:where(progress){vertical-align:initial}:where(*)::-webkit-inner-spin-button,:where(*)::-webkit-outer-spin-button{height:auto}:where([type=search]){-webkit-appearance:textfield;outline-offset:-2px}:where(*)::-webkit-search-decoration{-webkit-appearance:none}:where(*)::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(summary){display:list-item}:where(blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre){margin:0}:where(fieldset){margin:0;padding:0}:where(legend){padding:0}:where(ol,ul,menu){list-style:none;margin:0;padding:0}:where(dialog){padding:0}:where(textarea){resize:vertical}:where(input)::placeholder,:where(textarea)::placeholder{color:#9ca3af;opacity:1}:where(button,[role=button]){cursor:pointer}:where(:disabled){cursor:default}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block;vertical-align:middle}:where(img,video){height:auto;max-width:100%}:where([hidden]){display:none}:where(*),:where(*) :after,:where(*) :before,:where(*):after,:where(*):before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(*) ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-scrollbar{height:.5rem;width:.5rem}::-webkit-scrollbar-thumb{background-clip:"padding-box";background-color:var(--nv-color-secondary-foreground-alpha-300);border-radius:.25rem}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background-color:initial}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}}.nt-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.\\!nt-pointer-events-auto{pointer-events:auto!important}.nt-invisible{visibility:hidden}.nt-absolute{position:absolute}.nt-relative{position:relative}.nt-inset-0{inset:0}.nt-inset-2{inset:.5rem}.nt-left-0\\.5{left:.125rem}.nt-right-0{right:0}.nt-right-3{right:.75rem}.nt-top-0{top:0}.nt-top-0\\.5{top:.125rem}.nt-top-3{top:.75rem}.nt-z-10{z-index:10}.nt-z-\\[-1\\]{z-index:-1}.nt-mx-auto{margin-left:auto;margin-right:auto}.nt--mt-\\[50px\\]{margin-top:-50px}.nt-mb-1{margin-bottom:.25rem}.nt-mb-2{margin-bottom:.5rem}.nt-mb-4{margin-bottom:1rem}.nt-mb-\\[0\\.625rem\\]{margin-bottom:.625rem}.nt-ml-1{margin-left:.25rem}.nt-ml-2{margin-left:.5rem}.nt-ml-auto{margin-left:auto}.nt-mr-2{margin-right:.5rem}.nt-mr-auto{margin-right:auto}.nt-mt-1{margin-top:.25rem}.nt-mt-auto{margin-top:auto}.nt-block{display:block}.nt-flex{display:flex}.nt-inline-flex{display:inline-flex}.nt-grid{display:grid}.nt-hidden{display:none}.nt-aspect-square{aspect-ratio:1/1}.nt-size-1\\.5{height:.375rem;width:.375rem}.nt-size-2{height:.5rem;width:.5rem}.nt-size-2\\.5{height:.625rem;width:.625rem}.nt-size-3{height:.75rem;width:.75rem}.nt-size-3\\.5{height:.875rem;width:.875rem}.nt-size-4{height:1rem;width:1rem}.nt-size-5{height:1.25rem;width:1.25rem}.nt-size-8{height:2rem;width:2rem}.nt-size-fit{height:fit-content;width:fit-content}.nt-size-full{height:100%;width:100%}.nt-h-2{height:.5rem}.nt-h-3{height:.75rem}.nt-h-4{height:1rem}.nt-h-5{height:1.25rem}.nt-h-7{height:1.75rem}.nt-h-8{height:2rem}.nt-h-9{height:2.25rem}.nt-h-\\[600px\\]{height:600px}.nt-h-fit{height:fit-content}.nt-h-full{height:100%}.nt-min-h-0{min-height:0}.nt-w-1\\/3{width:33.333333%}.nt-w-2\\/3{width:66.666667%}.nt-w-5{width:1.25rem}.nt-w-7{width:1.75rem}.nt-w-8{width:2rem}.nt-w-\\[260px\\]{width:260px}.nt-w-\\[400px\\]{width:400px}.nt-w-\\[60px\\]{width:60px}.nt-w-\\[calc\\(2ch\\+2rem\\)\\]{width:calc(2ch + 2rem)}.nt-w-fit{width:fit-content}.nt-w-full{width:100%}.nt-w-max{width:max-content}.nt-min-w-52{min-width:13rem}.nt-flex-1{flex:1 1 0%}.nt-shrink-0{flex-shrink:0}.nt-translate-x-1\\/2{--tw-translate-x:50%}.nt-transform,.nt-translate-x-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nt-cursor-default{cursor:default}.nt-cursor-not-allowed{cursor:not-allowed}.nt-cursor-pointer{cursor:pointer}.nt-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.nt-flex-row{flex-direction:row}.nt-flex-col{flex-direction:column}.nt-flex-wrap{flex-wrap:wrap}.nt-flex-nowrap{flex-wrap:nowrap}.nt-items-start{align-items:flex-start}.nt-items-center{align-items:center}.nt-justify-end{justify-content:flex-end}.nt-justify-center{justify-content:center}.nt-justify-between{justify-content:space-between}.nt-gap-0\\.5{gap:.125rem}.nt-gap-1{gap:.25rem}.nt-gap-1\\.5{gap:.375rem}.nt-gap-2{gap:.5rem}.nt-gap-3{gap:.75rem}.nt-gap-4{gap:1rem}.nt-gap-6{gap:1.5rem}.nt-gap-8{gap:2rem}.nt-self-stretch{align-self:stretch}.nt-overflow-auto{overflow:auto}.nt-overflow-hidden{overflow:hidden}.nt-overflow-y-auto{overflow-y:auto}.nt-truncate{overflow:hidden;text-overflow:ellipsis}.nt-truncate,.nt-whitespace-nowrap{white-space:nowrap}.nt-whitespace-pre-wrap{white-space:pre-wrap}.nt-rounded{border-radius:var(--nv-radius-base)}.nt-rounded-full{border-radius:var(--nv-radius-full)}.nt-rounded-lg{border-radius:var(--nv-radius-lg)}.nt-rounded-md{border-radius:var(--nv-radius-md)}.nt-rounded-sm{border-radius:var(--nv-radius-sm)}.nt-rounded-xl{border-radius:var(--nv-radius-xl)}.nt-border{border-width:1px}.nt-border-b{border-bottom-width:1px}.nt-border-t{border-top-width:1px}.nt-border-background{border-color:var(--nv-color-background)}.nt-border-border{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.nt-border-neutral-alpha-100{border-color:var(--nv-color-neutral-alpha-100)}.nt-border-neutral-alpha-200{border-color:var(--nv-color-neutral-alpha-200)}.nt-border-neutral-alpha-400{border-color:var(--nv-color-neutral-alpha-400)}.nt-border-neutral-alpha-50{border-color:var(--nv-color-neutral-alpha-50)}.nt-border-t-neutral-alpha-200{border-top-color:var(--nv-color-neutral-alpha-200)}.nt-bg-\\[oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.1\\)\\]{background-color:oklch(from var(--nv-color-stripes) l c h/.1)}.nt-bg-background{background-color:var(--nv-color-background)}.nt-bg-counter{background-color:var(--nv-color-counter)}.nt-bg-foreground{background-color:var(--nv-color-foreground)}.nt-bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.nt-bg-neutral-alpha-100{background-color:var(--nv-color-neutral-alpha-100)}.nt-bg-neutral-alpha-25{background-color:var(--nv-color-neutral-alpha-25)}.nt-bg-neutral-alpha-300{background-color:var(--nv-color-neutral-alpha-300)}.nt-bg-neutral-alpha-50{background-color:var(--nv-color-neutral-alpha-50)}.nt-bg-primary{background-color:var(--nv-color-primary)}.nt-bg-primary-alpha-300{background-color:var(--nv-color-primary-alpha-300)}.nt-bg-primary-alpha-400{background-color:var(--nv-color-primary-alpha-400)}.nt-bg-secondary{background-color:var(--nv-color-secondary)}.nt-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.nt-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.nt-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.nt-from-foreground-alpha-50{--tw-gradient-from:var(--nv-color-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-primary-foreground-alpha-200{--tw-gradient-from:var(--nv-color-primary-foreground-alpha-200) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-transparent{--tw-gradient-from:#0000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.nt-from-20\\%{--tw-gradient-from-position:20%}.nt-to-background{--tw-gradient-to:var(--nv-color-background) var(--tw-gradient-to-position)}.nt-to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.nt-object-cover{object-fit:cover}.nt-p-0{padding:0}.nt-p-0\\.5{padding:.125rem}.nt-p-1{padding:.25rem}.nt-p-2{padding:.5rem}.nt-p-2\\.5{padding:.625rem}.nt-p-3{padding:.75rem}.nt-p-4{padding:1rem}.nt-px-1{padding-left:.25rem;padding-right:.25rem}.nt-px-2{padding-left:.5rem;padding-right:.5rem}.nt-px-3{padding-left:.75rem;padding-right:.75rem}.nt-px-4{padding-left:1rem;padding-right:1rem}.nt-px-8{padding-left:2rem;padding-right:2rem}.nt-px-\\[6px\\]{padding-left:6px;padding-right:6px}.nt-py-1{padding-bottom:.25rem;padding-top:.25rem}.nt-py-2{padding-bottom:.5rem;padding-top:.5rem}.nt-py-3{padding-bottom:.75rem;padding-top:.75rem}.nt-py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.nt-py-4{padding-bottom:1rem;padding-top:1rem}.nt-py-px{padding-bottom:1px;padding-top:1px}.nt-pb-2{padding-bottom:.5rem}.nt-pb-\\[0\\.625rem\\]{padding-bottom:.625rem}.nt-pr-0{padding-right:0}.nt-pt-2\\.5{padding-top:.625rem}.nt-text-center{text-align:center}.nt-text-start{text-align:start}.nt-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.nt-text-\\[0\\.8rem\\]{font-size:.8rem}.nt-text-\\[12px\\]{font-size:12px}.nt-text-base{font-size:var(--nv-font-size-base);line-height:var(--nv-line-height-base)}.nt-text-sm{font-size:var(--nv-font-size-sm);line-height:var(--nv-line-height-sm)}.nt-text-xl{font-size:var(--nv-font-size-xl);line-height:var(--nv-line-height-xl)}.nt-text-xs{font-size:var(--nv-font-size-xs);line-height:var(--nv-line-height-xs)}.nt-font-medium{font-weight:500}.nt-font-normal{font-weight:400}.nt-font-semibold{font-weight:600}.nt-leading-none{line-height:1}.nt-text-\\[\\#000000\\]{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.nt-text-background{color:var(--nv-color-background)}.nt-text-counter-foreground{color:var(--nv-color-counter-foreground)}.nt-text-foreground{color:var(--nv-color-foreground)}.nt-text-foreground-alpha-300{color:var(--nv-color-foreground-alpha-300)}.nt-text-foreground-alpha-400{color:var(--nv-color-foreground-alpha-400)}.nt-text-foreground-alpha-600{color:var(--nv-color-foreground-alpha-600)}.nt-text-foreground-alpha-700{color:var(--nv-color-foreground-alpha-700)}.nt-text-primary-foreground{color:var(--nv-color-primary-foreground)}.nt-text-secondary-foreground{color:var(--nv-color-secondary-foreground)}.nt-text-stripes{color:var(--nv-color-stripes)}.nt-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nt-underline{text-decoration-line:underline}.nt-opacity-0{opacity:0}.nt-opacity-20{opacity:.2}.nt-opacity-50{opacity:.5}.nt-shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-primary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-primary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0_0_0_0\\.5px_var\\(--nv-color-secondary-600\\)\\]{--tw-shadow:0 0 0 0.5px var(--nv-color-secondary-600);--tw-shadow-colored:0 0 0 0.5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\]{--tw-shadow:0px 1px 2px 0px #0a0d1408;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.nt-shadow-\\[0px_1px_2px_0px_rgba\\(10\\,13\\,20\\,0\\.03\\)\\],.nt-shadow-dropdown{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-dropdown{--tw-shadow:0px 12px 16px -4px oklch(from var(--nv-color-shadow) l c h/0.08),0px 4px 6px -2px oklch(from var(--nv-color-shadow) l c h/0.03);--tw-shadow-colored:0px 12px 16px -4px var(--tw-shadow-color),0px 4px 6px -2px var(--tw-shadow-color)}.nt-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.nt-shadow-lg,.nt-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.nt-shadow-popover{--tw-shadow:0px 8px 26px 0px oklch(from var(--nv-color-shadow) l c h/0.08),0px 2px 6px 0px oklch(from var(--nv-color-shadow) l c h/0.12);--tw-shadow-colored:0px 8px 26px 0px var(--tw-shadow-color),0px 2px 6px 0px var(--tw-shadow-color)}.nt-shadow-popover,.nt-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.nt-shadow-tooltip{--tw-shadow:0 5px 20px 0 oklch(from var(--nv-color-shadow) l c h/0.08);--tw-shadow-colored:0 5px 20px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nt-outline-none{outline:2px solid #0000;outline-offset:2px}.nt-backdrop-blur-lg{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.nt-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nt-duration-100{transition-duration:.1s}.nt-duration-200{transition-duration:.2s}.nt-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.nt-animate-in{animation-duration:.15s;animation-name:enter;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.nt-fade-in{--tw-enter-opacity:0}.nt-slide-in-from-top-2{--tw-enter-translate-y:-0.5rem}.nt-duration-100{animation-duration:.1s}.nt-duration-200{animation-duration:.2s}.nt-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\\[interpolate-size\\:allow-keywords\\]{interpolate-size:allow-keywords}.\\[scrollbar-gutter\\:stable\\]{scrollbar-gutter:stable}.\\[word-break\\:break-word\\]{word-break:break-word}.before\\:nt-absolute:before{content:var(--tw-content);position:absolute}.before\\:nt-inset-0:before{content:var(--tw-content);inset:0}.before\\:-nt-right-\\[calc\\(0\\+var\\(--stripes-size\\)\\)\\]:before{content:var(--tw-content);right:calc(var(--stripes-size)*-1)}@keyframes nt-stripes{0%{content:var(--tw-content);transform:translateX(0)}to{content:var(--tw-content);transform:translateX(calc(var(--stripes-size)*-1))}}.before\\:nt-animate-stripes:before{animation:nt-stripes 1s linear infinite paused;content:var(--tw-content)}.before\\:nt-rounded-lg:before{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.before\\:nt-rounded-md:before{border-radius:var(--nv-radius-md);content:var(--tw-content)}.before\\:nt-rounded-xl:before{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.before\\:nt-border:before{border-width:1px;content:var(--tw-content)}.before\\:nt-border-primary-foreground-alpha-100:before{border-color:var(--nv-color-primary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-border-secondary-foreground-alpha-100:before{border-color:var(--nv-color-secondary-foreground-alpha-100);content:var(--tw-content)}.before\\:nt-bg-dev-stripes-gradient:before{background-image:repeating-linear-gradient(135deg,oklch(from var(--nv-color-stripes) l c h/.1) 25%,oklch(from var(--nv-color-stripes) l c h/.1) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 50%,oklch(from var(--nv-color-stripes) l c h/.2) 75%);content:var(--tw-content)}.before\\:nt-bg-\\[length\\:var\\(--stripes-size\\)_var\\(--stripes-size\\)\\]:before{background-size:var(--stripes-size) var(--stripes-size);content:var(--tw-content)}.before\\:nt-content-\\[\\"\\"\\]:before{--tw-content:"";content:var(--tw-content)}.before\\:\\[mask-image\\:linear-gradient\\(transparent_0\\%\\2c black\\)\\]:before{content:var(--tw-content);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.after\\:nt-absolute:after{content:var(--tw-content);position:absolute}.after\\:nt-inset-0:after{content:var(--tw-content);inset:0}.after\\:-nt-top-12:after{content:var(--tw-content);top:-3rem}.after\\:nt-bottom-0:after{bottom:0;content:var(--tw-content)}.after\\:nt-left-0:after{content:var(--tw-content);left:0}.after\\:nt-left-0\\.5:after{content:var(--tw-content);left:.125rem}.after\\:nt-top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:nt-size-3:after{content:var(--tw-content);height:.75rem;width:.75rem}.after\\:nt-h-\\[2px\\]:after{content:var(--tw-content);height:2px}.after\\:nt-w-full:after{content:var(--tw-content);width:100%}.after\\:nt-translate-x-1\\/2:after{--tw-translate-x:50%}.after\\:nt-translate-x-1\\/2:after,.after\\:nt-translate-x-full:after{content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\\:nt-translate-x-full:after{--tw-translate-x:100%}.after\\:nt-rounded-full:after{border-radius:var(--nv-radius-full);content:var(--tw-content)}.after\\:nt-rounded-lg:after{border-radius:var(--nv-radius-lg);content:var(--tw-content)}.after\\:nt-rounded-md:after{border-radius:var(--nv-radius-md);content:var(--tw-content)}.after\\:nt-rounded-xl:after{border-radius:var(--nv-radius-xl);content:var(--tw-content)}.after\\:nt-border-b-2:after{border-bottom-width:2px;content:var(--tw-content)}.after\\:nt-border-background:after{border-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-border-b-primary:after{border-bottom-color:var(--nv-color-primary);content:var(--tw-content)}.after\\:nt-border-b-transparent:after{border-bottom-color:#0000;content:var(--tw-content)}.after\\:nt-bg-background:after{background-color:var(--nv-color-background);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-\\[linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-stripes\\)_l_c_h_\\/_0\\.07\\)_55\\%\\2c transparent\\)\\2c linear-gradient\\(180deg\\2c transparent\\2c oklch\\(from_var\\(--nv-color-background\\)_l_c_h_\\/_0\\.9\\)_55\\%\\2c transparent\\)\\]:after{background-image:linear-gradient(180deg,#0000,oklch(from var(--nv-color-stripes) l c h/.07) 55%,#0000),linear-gradient(180deg,#0000,oklch(from var(--nv-color-background) l c h/.9) 55%,#0000);content:var(--tw-content)}.after\\:nt-bg-gradient-to-b:after{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));content:var(--tw-content)}.after\\:nt-from-primary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-primary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-from-secondary-foreground-alpha-50:after{content:var(--tw-content);--tw-gradient-from:var(--nv-color-secondary-foreground-alpha-50) var(--tw-gradient-from-position);--tw-gradient-to:#fff0 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.after\\:nt-to-transparent:after{content:var(--tw-content);--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.after\\:nt-opacity-0:after{content:var(--tw-content);opacity:0}.after\\:nt-transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-transition-opacity:after{content:var(--tw-content);transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:nt-duration-200:after{transition-duration:.2s}.after\\:nt-content-\\[\\"\\"\\]:after,.after\\:nt-content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.after\\:nt-duration-200:after{animation-duration:.2s;content:var(--tw-content)}.hover\\:nt-bg-neutral-alpha-100:hover{background-color:var(--nv-color-neutral-alpha-100)}.hover\\:nt-bg-neutral-alpha-50:hover{background-color:var(--nv-color-neutral-alpha-50)}.hover\\:nt-bg-primary-600:hover{background-color:var(--nv-color-primary-600)}.hover\\:nt-bg-primary-alpha-25:hover{background-color:var(--nv-color-primary-alpha-25)}.hover\\:nt-bg-primary-alpha-400:hover{background-color:var(--nv-color-primary-alpha-400)}.hover\\:nt-text-foreground-alpha-800:hover{color:var(--nv-color-foreground-alpha-800)}.before\\:hover\\:\\[animation-play-state\\:running\\]:hover:before{animation-play-state:running;content:var(--tw-content)}.hover\\:after\\:nt-opacity-100:hover:after{content:var(--tw-content);opacity:1}.focus\\:nt-outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-rounded-lg:focus-visible{border-radius:var(--nv-radius-lg)}.focus-visible\\:nt-rounded-md:focus-visible{border-radius:var(--nv-radius-md)}.focus-visible\\:nt-rounded-xl:focus-visible{border-radius:var(--nv-radius-xl)}.focus-visible\\:nt-bg-neutral-alpha-50:focus-visible{background-color:var(--nv-color-neutral-alpha-50)}.focus-visible\\:nt-outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\\:nt-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\\:nt-ring-primary:focus-visible{--tw-ring-color:var(--nv-color-primary)}.focus-visible\\:nt-ring-ring:focus-visible{--tw-ring-color:var(--nv-color-ring)}.focus-visible\\:nt-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\\:nt-pointer-events-none:disabled{pointer-events:none}.disabled\\:nt-opacity-20:disabled{opacity:.2}.disabled\\:nt-opacity-50:disabled{opacity:.5}.nt-group:focus-within .group-focus-within\\:nt-opacity-100,.nt-group:hover .group-hover\\:nt-opacity-100{opacity:1}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true]{--tw-rotate:180deg}.data-\\[open\\=true\\]\\:nt-rotate-180[data-open=true],.data-\\[open\\=true\\]\\:nt-transform[data-open=true]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-400[data-disabled=true]{color:var(--nv-color-foreground-alpha-400)}.data-\\[disabled\\=true\\]\\:nt-text-foreground-alpha-600[data-disabled=true]{color:var(--nv-color-foreground-alpha-600)}.data-\\[state\\=active\\]\\:nt-text-foreground[data-state=active]{color:var(--nv-color-foreground)}.data-\\[state\\=active\\]\\:after\\:nt-border-b-2[data-state=active]:after{border-bottom-width:2px;content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-border-primary[data-state=active]:after{border-color:var(--nv-color-primary);content:var(--tw-content)}.data-\\[state\\=active\\]\\:after\\:nt-opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.\\[\\&\\:not\\(\\:first-child\\)\\]\\:nt-border-t:not(:first-child){border-top-width:1px}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-4 .nv-notificationList{padding-bottom:1rem}.\\[\\&_\\.nv-notificationList\\]\\:nt-pb-8 .nv-notificationList{padding-bottom:2rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-4 .nv-preferencesContainer{padding-bottom:1rem}.\\[\\&_\\.nv-preferencesContainer\\]\\:nt-pb-8 .nv-preferencesContainer{padding-bottom:2rem}.\\[\\&_svg\\]\\:nt-pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:nt-shrink-0 svg{flex-shrink:0}`;
|
|
22
22
|
|
|
23
23
|
// src/ui/config/appearanceKeys.ts
|
|
24
24
|
var appearanceKeys = [
|
|
@@ -82,6 +82,7 @@ var appearanceKeys = [
|
|
|
82
82
|
// General
|
|
83
83
|
"root",
|
|
84
84
|
"bellIcon",
|
|
85
|
+
"lockIcon",
|
|
85
86
|
"bellContainer",
|
|
86
87
|
"bellDot",
|
|
87
88
|
"preferences__button",
|
|
@@ -699,14 +700,6 @@ var useStyle = () => {
|
|
|
699
700
|
);
|
|
700
701
|
return styleFuncMemo();
|
|
701
702
|
};
|
|
702
|
-
function useUncontrolledState(props) {
|
|
703
|
-
const [uncontrolledValue, setUncontrolledValue] = solidJs.createSignal(!!props.fallbackValue);
|
|
704
|
-
if (props.value !== void 0) {
|
|
705
|
-
const accessor = () => !!props.value;
|
|
706
|
-
return [accessor, setUncontrolledValue];
|
|
707
|
-
}
|
|
708
|
-
return [uncontrolledValue, setUncontrolledValue];
|
|
709
|
-
}
|
|
710
703
|
|
|
711
704
|
// src/ui/context/AppearanceContext.tsx
|
|
712
705
|
var AppearanceContext = solidJs.createContext(void 0);
|
|
@@ -973,6 +966,8 @@ var InboxProvider = (props) => {
|
|
|
973
966
|
const [maxSnoozeDurationHours, setMaxSnoozeDurationHours] = solidJs.createSignal(0);
|
|
974
967
|
const isSnoozeEnabled = solidJs.createMemo(() => maxSnoozeDurationHours() > 0);
|
|
975
968
|
const [preferencesFilter, setPreferencesFilter] = solidJs.createSignal(props.preferencesFilter);
|
|
969
|
+
const [isKeyless, setIsKeyless] = solidJs.createSignal(false);
|
|
970
|
+
const [applicationIdentifier, setApplicationIdentifier] = solidJs.createSignal(null);
|
|
976
971
|
const [preferenceGroups, setPreferenceGroups] = solidJs.createSignal(props.preferenceGroups);
|
|
977
972
|
const setNewStatus = (newStatus) => {
|
|
978
973
|
setStatus(newStatus);
|
|
@@ -1034,12 +1029,16 @@ var InboxProvider = (props) => {
|
|
|
1034
1029
|
eventHandler: ({
|
|
1035
1030
|
data
|
|
1036
1031
|
}) => {
|
|
1032
|
+
var _a2;
|
|
1037
1033
|
if (!data) {
|
|
1038
1034
|
return;
|
|
1039
1035
|
}
|
|
1036
|
+
const identifier = window.localStorage.getItem("novu_keyless_application_identifier");
|
|
1040
1037
|
setHideBranding(data.removeNovuBranding);
|
|
1041
1038
|
setIsDevelopmentMode(data.isDevelopmentMode);
|
|
1042
1039
|
setMaxSnoozeDurationHours(data.maxSnoozeDurationHours);
|
|
1040
|
+
setIsKeyless(!data.applicationIdentifier || !!(identifier == null ? void 0 : identifier.startsWith("pk_keyless_")));
|
|
1041
|
+
setApplicationIdentifier((_a2 = data.applicationIdentifier) != null ? _a2 : null);
|
|
1043
1042
|
}
|
|
1044
1043
|
});
|
|
1045
1044
|
return web.createComponent(InboxContext.Provider, {
|
|
@@ -1060,7 +1059,9 @@ var InboxProvider = (props) => {
|
|
|
1060
1059
|
preferenceGroups,
|
|
1061
1060
|
isDevelopmentMode,
|
|
1062
1061
|
maxSnoozeDurationHours,
|
|
1063
|
-
isSnoozeEnabled
|
|
1062
|
+
isSnoozeEnabled,
|
|
1063
|
+
isKeyless,
|
|
1064
|
+
applicationIdentifier
|
|
1064
1065
|
},
|
|
1065
1066
|
get children() {
|
|
1066
1067
|
return props.children;
|
|
@@ -1076,7 +1077,7 @@ var useInboxContext = () => {
|
|
|
1076
1077
|
};
|
|
1077
1078
|
var NovuContext = solidJs.createContext(void 0);
|
|
1078
1079
|
function NovuProvider(props) {
|
|
1079
|
-
const novu = solidJs.createMemo(() => props.novu || new
|
|
1080
|
+
const novu = solidJs.createMemo(() => props.novu || new chunkMKUNHEMT_js.Novu(props.options));
|
|
1080
1081
|
return web.createComponent(NovuContext.Provider, {
|
|
1081
1082
|
get value() {
|
|
1082
1083
|
return novu();
|
|
@@ -1666,248 +1667,125 @@ var Bell2 = (props) => {
|
|
|
1666
1667
|
function isBrowser() {
|
|
1667
1668
|
return typeof window !== "undefined";
|
|
1668
1669
|
}
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
var _tmpl$25 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs nt-text-stripes">Development mode`);
|
|
1672
|
-
var _tmpl$26 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs">\u2022`);
|
|
1673
|
-
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`);
|
|
1674
|
-
var _tmpl$42 = /* @__PURE__ */ web.template(`<div>`);
|
|
1675
|
-
var stripes = `before:nt-content-[""] before:nt-absolute before:nt-inset-0 before:-nt-right-[calc(0+var(--stripes-size))] before:[mask-image:linear-gradient(transparent_0%,black)] before:nt-bg-dev-stripes-gradient before:nt-bg-[length:var(--stripes-size)_var(--stripes-size)] before:nt-animate-stripes before:hover:[animation-play-state:running]`;
|
|
1676
|
-
var commonAfter = 'after:nt-content-[""] after:nt-absolute after:nt-inset-0 after:-nt-top-12';
|
|
1677
|
-
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)]`;
|
|
1678
|
-
var prodModeGradient = `${commonAfter} after:nt-bg-[linear-gradient(180deg,transparent,oklch(from_var(--nv-color-background)_l_c_h_/_0.9)_55%,transparent)]`;
|
|
1679
|
-
var Footer = () => {
|
|
1680
|
-
const {
|
|
1681
|
-
hideBranding,
|
|
1682
|
-
isDevelopmentMode
|
|
1683
|
-
} = useInboxContext();
|
|
1684
|
-
return web.createComponent(solidJs.Show, {
|
|
1685
|
-
get when() {
|
|
1686
|
-
return !hideBranding() || isDevelopmentMode();
|
|
1687
|
-
},
|
|
1688
|
-
get children() {
|
|
1689
|
-
var _el$ = _tmpl$42();
|
|
1690
|
-
_el$.style.setProperty("--stripes-size", "15px");
|
|
1691
|
-
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
1692
|
-
get when() {
|
|
1693
|
-
return isDevelopmentMode();
|
|
1694
|
-
},
|
|
1695
|
-
get children() {
|
|
1696
|
-
return _tmpl$25();
|
|
1697
|
-
}
|
|
1698
|
-
}), null);
|
|
1699
|
-
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
1700
|
-
get when() {
|
|
1701
|
-
return web.memo(() => !!isDevelopmentMode())() && !hideBranding();
|
|
1702
|
-
},
|
|
1703
|
-
get children() {
|
|
1704
|
-
return _tmpl$26();
|
|
1705
|
-
}
|
|
1706
|
-
}), null);
|
|
1707
|
-
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
1708
|
-
get when() {
|
|
1709
|
-
return !hideBranding();
|
|
1710
|
-
},
|
|
1711
|
-
get children() {
|
|
1712
|
-
var _el$4 = _tmpl$32(), _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling;
|
|
1713
|
-
web.insert(_el$4, web.createComponent(Novu2, {
|
|
1714
|
-
"class": "nt-size-2.5"
|
|
1715
|
-
}), _el$6);
|
|
1716
|
-
web.effect(() => web.setAttribute(_el$4, "href", `https://go.novu.co/powered?ref=${getCurrentDomain()}`));
|
|
1717
|
-
return _el$4;
|
|
1718
|
-
}
|
|
1719
|
-
}), null);
|
|
1720
|
-
web.effect(() => web.className(_el$, cn(`nt-relative nt-flex nt-shrink-0 nt-justify-center nt-items-center nt-gap-1 nt-mt-auto nt-py-3 nt-text-foreground-alpha-400`, {
|
|
1721
|
-
[stripes]: isDevelopmentMode(),
|
|
1722
|
-
[devModeGradient]: isDevelopmentMode(),
|
|
1723
|
-
"nt-bg-[oklch(from_var(--nv-color-stripes)_l_c_h_/_0.1)]": isDevelopmentMode(),
|
|
1724
|
-
[prodModeGradient]: !isDevelopmentMode()
|
|
1725
|
-
})));
|
|
1726
|
-
return _el$;
|
|
1727
|
-
}
|
|
1728
|
-
});
|
|
1729
|
-
};
|
|
1730
|
-
function getCurrentDomain() {
|
|
1731
|
-
if (isBrowser()) {
|
|
1732
|
-
return window.location.hostname;
|
|
1733
|
-
}
|
|
1734
|
-
return "";
|
|
1735
|
-
}
|
|
1736
|
-
var _tmpl$27 = /* @__PURE__ */ web.template(`<button>`);
|
|
1737
|
-
var buttonVariants = classVarianceAuthority.cva(cn('nt-inline-flex nt-gap-4 nt-items-center nt-justify-center nt-whitespace-nowrap nt-text-sm nt-font-medium nt-transition-colors disabled:nt-pointer-events-none disabled:nt-opacity-50 after:nt-absolute after:nt-content-[""] before:nt-content-[""] before:nt-absolute [&_svg]:nt-pointer-events-none [&_svg]:nt-shrink-0', `focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-rounded-md focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2`), {
|
|
1738
|
-
variants: {
|
|
1739
|
-
variant: {
|
|
1740
|
-
default: "nt-bg-gradient-to-b nt-from-20% nt-from-primary-foreground-alpha-200 nt-to-transparent nt-bg-primary nt-text-primary-foreground nt-shadow-[0_0_0_0.5px_var(--nv-color-primary-600)] nt-relative before:nt-absolute before:nt-inset-0 before:nt-border before:nt-border-primary-foreground-alpha-100 after:nt-absolute after:nt-inset-0 after:nt-opacity-0 hover:after:nt-opacity-100 after:nt-transition-opacity after:nt-bg-gradient-to-b after:nt-from-primary-foreground-alpha-50 after:nt-to-transparent",
|
|
1741
|
-
secondary: "nt-bg-secondary nt-text-secondary-foreground nt-shadow-[0_0_0_0.5px_var(--nv-color-secondary-600)] nt-relative before:nt-absolute before:nt-inset-0 before:nt-border before:nt-border-secondary-foreground-alpha-100 after:nt-absolute after:nt-inset-0 after:nt-opacity-0 hover:after:nt-opacity-100 after:nt-transition-opacity after:nt-bg-gradient-to-b after:nt-from-secondary-foreground-alpha-50 after:nt-to-transparent",
|
|
1742
|
-
ghost: "hover:nt-bg-neutral-alpha-100 nt-text-foreground-alpha-600 hover:nt-text-foreground-alpha-800",
|
|
1743
|
-
unstyled: ""
|
|
1744
|
-
},
|
|
1745
|
-
size: {
|
|
1746
|
-
none: "",
|
|
1747
|
-
iconSm: "nt-p-1 nt-rounded-md after:nt-rounded-md before:nt-rounded-md focus-visible:nt-rounded-md",
|
|
1748
|
-
icon: "nt-p-2.5 nt-rounded-xl before:nt-rounded-xl after:nt-rounded-xl focus-visible:nt-rounded-xl",
|
|
1749
|
-
default: "nt-px-2 nt-py-1 nt-rounded-lg focus-visible:nt-rounded-lg before:nt-rounded-lg after:nt-rounded-lg",
|
|
1750
|
-
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",
|
|
1751
|
-
lg: "nt-px-8 nt-py-2 nt-text-base before:nt-rounded-lg after:nt-rounded-lg focus-visible:nt-rounded-lg"
|
|
1752
|
-
}
|
|
1753
|
-
},
|
|
1754
|
-
defaultVariants: {
|
|
1755
|
-
variant: "default",
|
|
1756
|
-
size: "default"
|
|
1757
|
-
}
|
|
1758
|
-
});
|
|
1759
|
-
var Button = (props) => {
|
|
1760
|
-
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
1761
|
-
const style = useStyle();
|
|
1762
|
-
return (() => {
|
|
1763
|
-
var _el$ = _tmpl$27();
|
|
1764
|
-
web.spread(_el$, web.mergeProps({
|
|
1765
|
-
get ["data-variant"]() {
|
|
1766
|
-
return props.variant;
|
|
1767
|
-
},
|
|
1768
|
-
get ["data-size"]() {
|
|
1769
|
-
return props.size;
|
|
1770
|
-
},
|
|
1771
|
-
get ["class"]() {
|
|
1772
|
-
return style(local.appearanceKey || "button", cn(buttonVariants({
|
|
1773
|
-
variant: props.variant,
|
|
1774
|
-
size: props.size
|
|
1775
|
-
}), local.class));
|
|
1776
|
-
}
|
|
1777
|
-
}, rest), false, false);
|
|
1778
|
-
return _el$;
|
|
1779
|
-
})();
|
|
1780
|
-
};
|
|
1781
|
-
var _tmpl$28 = /* @__PURE__ */ web.template(`<button>`);
|
|
1782
|
-
var PopoverClose = (props) => {
|
|
1783
|
-
const {
|
|
1784
|
-
onClose
|
|
1785
|
-
} = usePopover();
|
|
1786
|
-
const style = useStyle();
|
|
1787
|
-
const [local, rest] = solidJs.splitProps(props, ["onClick", "asChild", "appearanceKey", "class"]);
|
|
1788
|
-
const handleClick = (e) => {
|
|
1789
|
-
if (typeof local.onClick === "function") {
|
|
1790
|
-
local.onClick(e);
|
|
1791
|
-
}
|
|
1792
|
-
onClose();
|
|
1793
|
-
};
|
|
1794
|
-
if (local.asChild) {
|
|
1795
|
-
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
1796
|
-
get component() {
|
|
1797
|
-
return local.asChild;
|
|
1798
|
-
},
|
|
1799
|
-
onClick: handleClick
|
|
1800
|
-
}, rest));
|
|
1801
|
-
}
|
|
1670
|
+
var _tmpl$25 = /* @__PURE__ */ web.template(`<svg width=6 height=6 viewBox="0 0 6 6"fill=none xmlns=http://www.w3.org/2000/svg><path d="M5.00175 1.70402L0.705765 6L0 5.29424L4.29548 0.998253H0.509608V0H6V5.49039H5.00175V1.70402Z"fill=currentColor>`);
|
|
1671
|
+
var ArrowUpRight = (props) => {
|
|
1802
1672
|
return (() => {
|
|
1803
|
-
var _el$ = _tmpl$
|
|
1804
|
-
_el
|
|
1805
|
-
web.spread(_el$, web.mergeProps({
|
|
1806
|
-
get ["class"]() {
|
|
1807
|
-
return style(local.appearanceKey || "popoverClose", local.class);
|
|
1808
|
-
}
|
|
1809
|
-
}, rest), false, false);
|
|
1673
|
+
var _el$ = _tmpl$25();
|
|
1674
|
+
web.spread(_el$, props, true, true);
|
|
1810
1675
|
return _el$;
|
|
1811
1676
|
})();
|
|
1812
1677
|
};
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
var Portal = (props) => {
|
|
1816
|
-
const appearance = useAppearance();
|
|
1817
|
-
let currentElement;
|
|
1818
|
-
return [(() => {
|
|
1819
|
-
var _el$ = _tmpl$29();
|
|
1820
|
-
web.use((el) => {
|
|
1821
|
-
currentElement = el;
|
|
1822
|
-
}, _el$);
|
|
1823
|
-
_el$.style.setProperty("display", "none");
|
|
1824
|
-
return _el$;
|
|
1825
|
-
})(), web.createComponent(web.Portal, web.mergeProps({
|
|
1826
|
-
get mount() {
|
|
1827
|
-
return closestNovuRootParent(currentElement, appearance.id());
|
|
1828
|
-
}
|
|
1829
|
-
}, props))];
|
|
1830
|
-
};
|
|
1831
|
-
var closestNovuRootParent = (el, id) => {
|
|
1832
|
-
let element = el;
|
|
1833
|
-
while (element && element.id !== `novu-root-${id}`) {
|
|
1834
|
-
element = element.parentElement;
|
|
1835
|
-
}
|
|
1836
|
-
if (element && element.id === `novu-root-${id}`) {
|
|
1837
|
-
return element;
|
|
1838
|
-
}
|
|
1839
|
-
return void 0;
|
|
1840
|
-
};
|
|
1841
|
-
var PopoverContext = solidJs.createContext(void 0);
|
|
1842
|
-
function PopoverRoot(props) {
|
|
1678
|
+
var TooltipContext = solidJs.createContext(void 0);
|
|
1679
|
+
function TooltipRoot(props) {
|
|
1843
1680
|
var _a;
|
|
1844
|
-
const [uncontrolledIsOpen, setUncontrolledIsOpen] = solidJs.createSignal((_a = props.open) != null ? _a : false);
|
|
1845
|
-
const onOpenChange = () => {
|
|
1846
|
-
var _a2;
|
|
1847
|
-
return (_a2 = props.onOpenChange) != null ? _a2 : setUncontrolledIsOpen;
|
|
1848
|
-
};
|
|
1849
|
-
const open = () => {
|
|
1850
|
-
var _a2;
|
|
1851
|
-
return (_a2 = props.open) != null ? _a2 : uncontrolledIsOpen();
|
|
1852
|
-
};
|
|
1853
1681
|
const [reference, setReference] = solidJs.createSignal(null);
|
|
1854
1682
|
const [floating, setFloating] = solidJs.createSignal(null);
|
|
1683
|
+
const {
|
|
1684
|
+
animations
|
|
1685
|
+
} = useAppearance();
|
|
1686
|
+
const defaultAnimationDuration = 0.2;
|
|
1687
|
+
const actualAnimationDuration = () => {
|
|
1688
|
+
var _a2;
|
|
1689
|
+
return (_a2 = props.animationDuration) != null ? _a2 : defaultAnimationDuration;
|
|
1690
|
+
};
|
|
1691
|
+
const effectiveAnimationDuration = solidJs.createMemo(() => animations() ? actualAnimationDuration() : 0);
|
|
1855
1692
|
const position = solidFloatingUi.useFloating(reference, floating, {
|
|
1856
|
-
|
|
1857
|
-
|
|
1693
|
+
placement: props.placement || "top",
|
|
1694
|
+
strategy: "fixed",
|
|
1858
1695
|
whileElementsMounted: dom.autoUpdate,
|
|
1859
1696
|
middleware: [dom.offset(10), dom.flip({
|
|
1860
|
-
fallbackPlacements: props.fallbackPlacements
|
|
1697
|
+
fallbackPlacements: props.fallbackPlacements || ["bottom"]
|
|
1861
1698
|
}), dom.shift()]
|
|
1862
1699
|
});
|
|
1863
|
-
const
|
|
1864
|
-
|
|
1865
|
-
return
|
|
1866
|
-
position: position.strategy,
|
|
1867
|
-
top: `${(_a2 = position.y) != null ? _a2 : 0}px`,
|
|
1868
|
-
left: `${(_b = position.x) != null ? _b : 0}px`
|
|
1869
|
-
};
|
|
1700
|
+
const [uncontrolledOpen, setUncontrolledOpen] = solidJs.createSignal((_a = props.open) != null ? _a : false);
|
|
1701
|
+
const openAccessor = solidJs.createMemo(() => {
|
|
1702
|
+
return props.open !== void 0 ? !!props.open : uncontrolledOpen();
|
|
1870
1703
|
});
|
|
1871
|
-
const
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
onOpenChange()((prev) => !prev);
|
|
1704
|
+
const setOpenSetter = (valueOrFn) => {
|
|
1705
|
+
if (props.open === void 0) {
|
|
1706
|
+
setUncontrolledOpen(valueOrFn);
|
|
1707
|
+
}
|
|
1876
1708
|
};
|
|
1877
|
-
|
|
1709
|
+
const [shouldRenderTooltip, setShouldRenderTooltip] = solidJs.createSignal(openAccessor());
|
|
1710
|
+
let renderTimeoutId;
|
|
1711
|
+
solidJs.createEffect(() => {
|
|
1712
|
+
const isOpen = openAccessor();
|
|
1713
|
+
if (renderTimeoutId) {
|
|
1714
|
+
clearTimeout(renderTimeoutId);
|
|
1715
|
+
renderTimeoutId = void 0;
|
|
1716
|
+
}
|
|
1717
|
+
if (isOpen) {
|
|
1718
|
+
setShouldRenderTooltip(true);
|
|
1719
|
+
} else if (effectiveAnimationDuration() > 0) {
|
|
1720
|
+
renderTimeoutId = window.setTimeout(() => {
|
|
1721
|
+
setShouldRenderTooltip(false);
|
|
1722
|
+
}, effectiveAnimationDuration() * 1e3);
|
|
1723
|
+
} else {
|
|
1724
|
+
setShouldRenderTooltip(false);
|
|
1725
|
+
}
|
|
1726
|
+
});
|
|
1727
|
+
solidJs.createEffect(() => {
|
|
1728
|
+
if (openAccessor()) {
|
|
1729
|
+
setShouldRenderTooltip(true);
|
|
1730
|
+
}
|
|
1731
|
+
});
|
|
1732
|
+
return web.createComponent(TooltipContext.Provider, {
|
|
1878
1733
|
value: {
|
|
1879
|
-
onToggle,
|
|
1880
|
-
onClose,
|
|
1881
1734
|
reference,
|
|
1882
1735
|
setReference,
|
|
1883
1736
|
floating,
|
|
1884
1737
|
setFloating,
|
|
1885
|
-
open,
|
|
1886
|
-
|
|
1738
|
+
open: openAccessor,
|
|
1739
|
+
shouldRender: shouldRenderTooltip,
|
|
1740
|
+
setOpen: setOpenSetter,
|
|
1741
|
+
floatingStyles: () => {
|
|
1742
|
+
var _a2, _b;
|
|
1743
|
+
return {
|
|
1744
|
+
position: position.strategy,
|
|
1745
|
+
top: `${(_a2 = position.y) != null ? _a2 : 0}px`,
|
|
1746
|
+
left: `${(_b = position.x) != null ? _b : 0}px`
|
|
1747
|
+
};
|
|
1748
|
+
},
|
|
1749
|
+
effectiveAnimationDuration
|
|
1887
1750
|
},
|
|
1888
1751
|
get children() {
|
|
1889
1752
|
return props.children;
|
|
1890
1753
|
}
|
|
1891
1754
|
});
|
|
1892
1755
|
}
|
|
1893
|
-
function
|
|
1894
|
-
const context = solidJs.useContext(
|
|
1756
|
+
function useTooltip() {
|
|
1757
|
+
const context = solidJs.useContext(TooltipContext);
|
|
1895
1758
|
if (!context) {
|
|
1896
|
-
throw new Error("
|
|
1759
|
+
throw new Error("useTooltip must be used within Tooltip.Root component");
|
|
1897
1760
|
}
|
|
1898
1761
|
return context;
|
|
1899
1762
|
}
|
|
1763
|
+
var Motion = new Proxy(solidMotionone.Motion, {
|
|
1764
|
+
get: (_, tag) => (props) => {
|
|
1765
|
+
const {
|
|
1766
|
+
animations
|
|
1767
|
+
} = useAppearance();
|
|
1768
|
+
return web.createComponent(solidMotionone.Motion, web.mergeProps(props, {
|
|
1769
|
+
tag,
|
|
1770
|
+
get transition() {
|
|
1771
|
+
return animations() ? props.transition : {
|
|
1772
|
+
duration: 0
|
|
1773
|
+
};
|
|
1774
|
+
}
|
|
1775
|
+
}));
|
|
1776
|
+
}
|
|
1777
|
+
});
|
|
1900
1778
|
|
|
1901
|
-
// src/ui/components/primitives/
|
|
1902
|
-
var
|
|
1903
|
-
var
|
|
1904
|
-
var PopoverContentBody = (props) => {
|
|
1779
|
+
// src/ui/components/primitives/Tooltip/TooltipContent.tsx
|
|
1780
|
+
var tooltipContentVariants = () => "nt-bg-foreground nt-p-2 nt-shadow-tooltip nt-rounded-lg nt-text-background nt-text-xs";
|
|
1781
|
+
var TooltipContentBody = (props) => {
|
|
1905
1782
|
const {
|
|
1906
1783
|
open,
|
|
1907
1784
|
setFloating,
|
|
1908
1785
|
floating,
|
|
1909
|
-
floatingStyles
|
|
1910
|
-
|
|
1786
|
+
floatingStyles,
|
|
1787
|
+
effectiveAnimationDuration
|
|
1788
|
+
} = useTooltip();
|
|
1911
1789
|
const {
|
|
1912
1790
|
setActive,
|
|
1913
1791
|
removeActive
|
|
@@ -1916,80 +1794,72 @@ var PopoverContentBody = (props) => {
|
|
|
1916
1794
|
const style = useStyle();
|
|
1917
1795
|
solidJs.onMount(() => {
|
|
1918
1796
|
const floatingEl = floating();
|
|
1919
|
-
setActive(floatingEl);
|
|
1797
|
+
if (floatingEl) setActive(floatingEl);
|
|
1920
1798
|
solidJs.onCleanup(() => {
|
|
1921
|
-
removeActive(floatingEl);
|
|
1799
|
+
if (floatingEl) removeActive(floatingEl);
|
|
1922
1800
|
});
|
|
1923
1801
|
});
|
|
1924
|
-
return ((
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
}
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
}
|
|
1937
|
-
},
|
|
1938
|
-
|
|
1939
|
-
|
|
1802
|
+
return web.createComponent(Motion.div, web.mergeProps({
|
|
1803
|
+
initial: {
|
|
1804
|
+
opacity: 0,
|
|
1805
|
+
scale: 0.95
|
|
1806
|
+
},
|
|
1807
|
+
get animate() {
|
|
1808
|
+
return open() ? {
|
|
1809
|
+
opacity: 1,
|
|
1810
|
+
scale: 1
|
|
1811
|
+
} : {
|
|
1812
|
+
opacity: 0,
|
|
1813
|
+
scale: 0.95
|
|
1814
|
+
};
|
|
1815
|
+
},
|
|
1816
|
+
get transition() {
|
|
1817
|
+
return {
|
|
1818
|
+
duration: effectiveAnimationDuration(),
|
|
1819
|
+
easing: "ease-in-out"
|
|
1820
|
+
};
|
|
1821
|
+
},
|
|
1822
|
+
ref: setFloating,
|
|
1823
|
+
get ["class"]() {
|
|
1824
|
+
return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tooltipContent", tooltipContentVariants());
|
|
1825
|
+
},
|
|
1826
|
+
get style() {
|
|
1827
|
+
return chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, floatingStyles()), {
|
|
1828
|
+
"z-index": 99999
|
|
1829
|
+
});
|
|
1830
|
+
}
|
|
1831
|
+
}, rest, {
|
|
1832
|
+
get children() {
|
|
1833
|
+
return props.children;
|
|
1834
|
+
}
|
|
1835
|
+
}));
|
|
1940
1836
|
};
|
|
1941
|
-
var
|
|
1942
|
-
const {
|
|
1943
|
-
open,
|
|
1944
|
-
onClose,
|
|
1945
|
-
reference,
|
|
1946
|
-
floating
|
|
1947
|
-
} = usePopover();
|
|
1837
|
+
var TooltipContent = (props) => {
|
|
1948
1838
|
const {
|
|
1949
|
-
|
|
1950
|
-
} =
|
|
1839
|
+
shouldRender
|
|
1840
|
+
} = useTooltip();
|
|
1951
1841
|
const {
|
|
1952
1842
|
container
|
|
1953
1843
|
} = useAppearance();
|
|
1954
|
-
const
|
|
1955
|
-
var _a, _b;
|
|
1956
|
-
if ((_a = reference()) == null ? void 0 : _a.contains(e.target)) {
|
|
1957
|
-
return;
|
|
1958
|
-
}
|
|
1959
|
-
const containerElement = container();
|
|
1960
|
-
if (active() !== floating() || ((_b = floating()) == null ? void 0 : _b.contains(e.target)) || containerElement && e.target.shadowRoot === containerElement) {
|
|
1961
|
-
return;
|
|
1962
|
-
}
|
|
1963
|
-
onClose();
|
|
1964
|
-
};
|
|
1965
|
-
const handleEscapeKey = (e) => {
|
|
1966
|
-
if (active() !== floating()) {
|
|
1967
|
-
return;
|
|
1968
|
-
}
|
|
1969
|
-
if (e instanceof KeyboardEvent && e.key === "Escape") {
|
|
1970
|
-
onClose();
|
|
1971
|
-
}
|
|
1972
|
-
};
|
|
1973
|
-
solidJs.onMount(() => {
|
|
1974
|
-
var _a;
|
|
1975
|
-
document.body.addEventListener("click", handleClickOutside);
|
|
1976
|
-
(_a = container()) == null ? void 0 : _a.addEventListener("click", handleClickOutside);
|
|
1977
|
-
document.body.addEventListener("keydown", handleEscapeKey);
|
|
1978
|
-
});
|
|
1979
|
-
solidJs.onCleanup(() => {
|
|
1844
|
+
const portalContainer = () => {
|
|
1980
1845
|
var _a;
|
|
1981
|
-
document.body
|
|
1982
|
-
|
|
1983
|
-
document.body.removeEventListener("keydown", handleEscapeKey);
|
|
1984
|
-
});
|
|
1846
|
+
return (_a = container()) != null ? _a : document.body;
|
|
1847
|
+
};
|
|
1985
1848
|
return web.createComponent(solidJs.Show, {
|
|
1986
1849
|
get when() {
|
|
1987
|
-
return
|
|
1850
|
+
return shouldRender();
|
|
1988
1851
|
},
|
|
1989
1852
|
get children() {
|
|
1990
|
-
return web.createComponent(Portal, {
|
|
1853
|
+
return web.createComponent(web.Portal, {
|
|
1854
|
+
get mount() {
|
|
1855
|
+
return portalContainer();
|
|
1856
|
+
},
|
|
1991
1857
|
get children() {
|
|
1992
|
-
return web.createComponent(
|
|
1858
|
+
return web.createComponent(Root, {
|
|
1859
|
+
get children() {
|
|
1860
|
+
return web.createComponent(TooltipContentBody, props);
|
|
1861
|
+
}
|
|
1862
|
+
});
|
|
1993
1863
|
}
|
|
1994
1864
|
});
|
|
1995
1865
|
}
|
|
@@ -2006,22 +1876,28 @@ function mergeRefs(...refs) {
|
|
|
2006
1876
|
return chain(refs);
|
|
2007
1877
|
}
|
|
2008
1878
|
|
|
2009
|
-
// src/ui/components/primitives/
|
|
2010
|
-
var _tmpl$
|
|
2011
|
-
var
|
|
1879
|
+
// src/ui/components/primitives/Tooltip/TooltipTrigger.tsx
|
|
1880
|
+
var _tmpl$26 = /* @__PURE__ */ web.template(`<button>`);
|
|
1881
|
+
var TooltipTrigger = (props) => {
|
|
2012
1882
|
const {
|
|
2013
1883
|
setReference,
|
|
2014
|
-
|
|
2015
|
-
} =
|
|
1884
|
+
setOpen
|
|
1885
|
+
} = useTooltip();
|
|
2016
1886
|
const style = useStyle();
|
|
2017
|
-
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "ref"]);
|
|
2018
|
-
const
|
|
2019
|
-
if (typeof local.
|
|
2020
|
-
local.
|
|
1887
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "onMouseEnter", "onMouseLeave", "ref"]);
|
|
1888
|
+
const handleMouseEnter = (e) => {
|
|
1889
|
+
if (typeof local.onMouseEnter === "function") {
|
|
1890
|
+
local.onMouseEnter(e);
|
|
2021
1891
|
}
|
|
2022
|
-
|
|
1892
|
+
setOpen(true);
|
|
2023
1893
|
};
|
|
2024
1894
|
const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
|
|
1895
|
+
const handleMouseLeave = (e) => {
|
|
1896
|
+
if (typeof local.onMouseLeave === "function") {
|
|
1897
|
+
local.onMouseLeave(e);
|
|
1898
|
+
}
|
|
1899
|
+
setOpen(false);
|
|
1900
|
+
};
|
|
2025
1901
|
if (local.asChild) {
|
|
2026
1902
|
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2027
1903
|
get component() {
|
|
@@ -2031,244 +1907,329 @@ var PopoverTrigger = (props) => {
|
|
|
2031
1907
|
var _ref$ = ref();
|
|
2032
1908
|
typeof _ref$ === "function" && _ref$(r$);
|
|
2033
1909
|
},
|
|
2034
|
-
|
|
1910
|
+
onMouseEnter: handleMouseEnter,
|
|
1911
|
+
onMouseLeave: handleMouseLeave
|
|
2035
1912
|
}, rest));
|
|
2036
1913
|
}
|
|
2037
1914
|
return (() => {
|
|
2038
|
-
var _el$ = _tmpl$
|
|
2039
|
-
_el
|
|
1915
|
+
var _el$ = _tmpl$26();
|
|
1916
|
+
_el$.addEventListener("mouseleave", () => {
|
|
1917
|
+
setOpen(false);
|
|
1918
|
+
});
|
|
1919
|
+
_el$.addEventListener("mouseenter", () => {
|
|
1920
|
+
setOpen(true);
|
|
1921
|
+
});
|
|
2040
1922
|
var _ref$2 = ref();
|
|
2041
1923
|
typeof _ref$2 === "function" && web.use(_ref$2, _el$);
|
|
2042
1924
|
web.spread(_el$, web.mergeProps({
|
|
2043
1925
|
get ["class"]() {
|
|
2044
|
-
return style(local.appearanceKey || "
|
|
1926
|
+
return style(local.appearanceKey || "tooltipTrigger");
|
|
2045
1927
|
}
|
|
2046
1928
|
}, rest), false, true);
|
|
2047
1929
|
web.insert(_el$, () => props.children);
|
|
2048
1930
|
return _el$;
|
|
2049
1931
|
})();
|
|
2050
1932
|
};
|
|
2051
|
-
web.delegateEvents(["click"]);
|
|
2052
1933
|
|
|
2053
|
-
// src/ui/components/primitives/
|
|
2054
|
-
var
|
|
2055
|
-
Root:
|
|
2056
|
-
/**
|
|
2057
|
-
* Popover.Trigger renders a `button` and has no default styling.
|
|
2058
|
-
*/
|
|
2059
|
-
Trigger: PopoverTrigger,
|
|
1934
|
+
// src/ui/components/primitives/Tooltip/index.ts
|
|
1935
|
+
var Tooltip = {
|
|
1936
|
+
Root: TooltipRoot,
|
|
2060
1937
|
/**
|
|
2061
|
-
*
|
|
1938
|
+
* Tooltip.Trigger renders a `button` and has no default styling.
|
|
2062
1939
|
*/
|
|
2063
|
-
|
|
1940
|
+
Trigger: TooltipTrigger,
|
|
2064
1941
|
/**
|
|
2065
|
-
*
|
|
2066
|
-
* Closes the popover when clicked.
|
|
2067
|
-
* `onClick` function is propagated.
|
|
1942
|
+
* Tooltip.Content renders a `div` and has popover specific styling.
|
|
2068
1943
|
*/
|
|
2069
|
-
|
|
1944
|
+
Content: TooltipContent
|
|
2070
1945
|
};
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
1946
|
+
|
|
1947
|
+
// src/ui/components/primitives/CopyToClipboard.tsx
|
|
1948
|
+
var _tmpl$27 = /* @__PURE__ */ web.template(`<button type=button>`);
|
|
1949
|
+
function CopyToClipboard(props) {
|
|
1950
|
+
const [isCopied, setIsCopied] = solidJs.createSignal(false);
|
|
1951
|
+
const style = useStyle();
|
|
1952
|
+
let timeoutId;
|
|
1953
|
+
const defaultTooltipText = "Copied!";
|
|
1954
|
+
const defaultTooltipDuration = 2e3;
|
|
1955
|
+
function handleCopy() {
|
|
1956
|
+
return chunk7B52C2XE_js.__async(this, null, function* () {
|
|
1957
|
+
var _a;
|
|
1958
|
+
if (timeoutId) {
|
|
1959
|
+
clearTimeout(timeoutId);
|
|
1960
|
+
}
|
|
1961
|
+
try {
|
|
1962
|
+
yield navigator.clipboard.writeText(props.textToCopy);
|
|
1963
|
+
setIsCopied(true);
|
|
1964
|
+
timeoutId = window.setTimeout(() => {
|
|
1965
|
+
setIsCopied(false);
|
|
1966
|
+
timeoutId = void 0;
|
|
1967
|
+
}, (_a = props.tooltipDuration) != null ? _a : defaultTooltipDuration);
|
|
1968
|
+
} catch (err) {
|
|
1969
|
+
console.error("Failed to copy text: ", err);
|
|
1970
|
+
}
|
|
1971
|
+
});
|
|
1972
|
+
}
|
|
1973
|
+
return web.createComponent(Tooltip.Root, {
|
|
1974
|
+
get open() {
|
|
1975
|
+
return isCopied();
|
|
2077
1976
|
},
|
|
2078
|
-
|
|
2079
|
-
|
|
1977
|
+
placement: "top",
|
|
1978
|
+
animationDuration: 0.15,
|
|
1979
|
+
get children() {
|
|
1980
|
+
return [web.createComponent(Tooltip.Trigger, {
|
|
1981
|
+
asChild: (triggerProps) => (() => {
|
|
1982
|
+
var _el$ = _tmpl$27();
|
|
1983
|
+
web.spread(_el$, web.mergeProps(triggerProps, {
|
|
1984
|
+
"onClick": handleCopy,
|
|
1985
|
+
get ["class"]() {
|
|
1986
|
+
return style("button", "nt-cursor-pointer");
|
|
1987
|
+
}
|
|
1988
|
+
}), false, true);
|
|
1989
|
+
web.insert(_el$, () => props.children);
|
|
1990
|
+
return _el$;
|
|
1991
|
+
})()
|
|
1992
|
+
}), web.createComponent(Tooltip.Content, {
|
|
1993
|
+
get children() {
|
|
1994
|
+
var _a;
|
|
1995
|
+
return (_a = props.tooltipText) != null ? _a : defaultTooltipText;
|
|
1996
|
+
}
|
|
1997
|
+
})];
|
|
2080
1998
|
}
|
|
2081
|
-
}
|
|
2082
|
-
}
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
1999
|
+
});
|
|
2000
|
+
}
|
|
2001
|
+
|
|
2002
|
+
// src/ui/components/elements/Footer.tsx
|
|
2003
|
+
var _tmpl$28 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs nt-text-stripes">`);
|
|
2004
|
+
var _tmpl$29 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs">\u2022`);
|
|
2005
|
+
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`);
|
|
2006
|
+
var _tmpl$42 = /* @__PURE__ */ web.template(`<span class=nt-underline>Copy cURL`);
|
|
2007
|
+
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?utm_campaign=footer-get_api_key"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`);
|
|
2008
|
+
var _tmpl$62 = /* @__PURE__ */ web.template(`<div><div class="nt-flex nt-items-center nt-gap-1">`);
|
|
2009
|
+
var _tmpl$72 = /* @__PURE__ */ web.template(`<a href="https://go.novu.co/keyless?utm_campaign=keyless-mode"target=_blank rel="noopener noreferrer">Keyless mode`);
|
|
2010
|
+
var _tmpl$82 = /* @__PURE__ */ web.template(`<br>`);
|
|
2011
|
+
var stripes = `before:nt-content-[""] before:nt-absolute before:nt-inset-0 before:-nt-right-[calc(0+var(--stripes-size))] before:[mask-image:linear-gradient(transparent_0%,black)] before:nt-bg-dev-stripes-gradient before:nt-bg-[length:var(--stripes-size)_var(--stripes-size)] before:nt-animate-stripes before:hover:[animation-play-state:running]`;
|
|
2012
|
+
var commonAfter = 'after:nt-content-[""] after:nt-absolute after:nt-inset-0 after:-nt-top-12';
|
|
2013
|
+
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)]`;
|
|
2014
|
+
var prodModeGradient = `${commonAfter} after:nt-bg-[linear-gradient(180deg,transparent,oklch(from_var(--nv-color-background)_l_c_h_/_0.9)_55%,transparent)]`;
|
|
2015
|
+
var Footer = () => {
|
|
2086
2016
|
const {
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
onClick: handleClick
|
|
2101
|
-
}, rest));
|
|
2017
|
+
hideBranding,
|
|
2018
|
+
isDevelopmentMode,
|
|
2019
|
+
isKeyless
|
|
2020
|
+
} = useInboxContext();
|
|
2021
|
+
const novu = useNovu();
|
|
2022
|
+
function handleTriggerHelloWorld() {
|
|
2023
|
+
return chunk7B52C2XE_js.__async(this, null, function* () {
|
|
2024
|
+
try {
|
|
2025
|
+
yield novu.notifications.triggerHelloWorldEvent();
|
|
2026
|
+
} catch (error) {
|
|
2027
|
+
console.error("Failed to send Hello World from UI via novu.notifications:", error);
|
|
2028
|
+
}
|
|
2029
|
+
});
|
|
2102
2030
|
}
|
|
2103
|
-
return web.createComponent(
|
|
2104
|
-
get
|
|
2105
|
-
return
|
|
2106
|
-
},
|
|
2107
|
-
get ["class"]() {
|
|
2108
|
-
return cn(dropdownItemVariants(), local.class);
|
|
2031
|
+
return web.createComponent(solidJs.Show, {
|
|
2032
|
+
get when() {
|
|
2033
|
+
return !hideBranding() || isDevelopmentMode();
|
|
2109
2034
|
},
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2035
|
+
get children() {
|
|
2036
|
+
var _el$ = _tmpl$62(), _el$2 = _el$.firstChild;
|
|
2037
|
+
_el$.style.setProperty("--stripes-size", "15px");
|
|
2038
|
+
web.insert(_el$2, web.createComponent(solidJs.Show, {
|
|
2039
|
+
get when() {
|
|
2040
|
+
return isDevelopmentMode();
|
|
2041
|
+
},
|
|
2042
|
+
get children() {
|
|
2043
|
+
var _el$3 = _tmpl$28();
|
|
2044
|
+
web.insert(_el$3, (() => {
|
|
2045
|
+
var _c$ = web.memo(() => !!isKeyless());
|
|
2046
|
+
return () => _c$() ? web.createComponent(Tooltip.Root, {
|
|
2047
|
+
get children() {
|
|
2048
|
+
return [web.createComponent(Tooltip.Trigger, {
|
|
2049
|
+
"class": "",
|
|
2050
|
+
get children() {
|
|
2051
|
+
return _tmpl$72();
|
|
2052
|
+
}
|
|
2053
|
+
}), web.createComponent(Tooltip.Content, {
|
|
2054
|
+
get children() {
|
|
2055
|
+
return ["Temporary <Inbox />. All data will expire in 24 hours.", _tmpl$82(), "Connect API key to persist."];
|
|
2056
|
+
}
|
|
2057
|
+
})];
|
|
2058
|
+
}
|
|
2059
|
+
}) : "Development mode";
|
|
2060
|
+
})());
|
|
2061
|
+
return _el$3;
|
|
2062
|
+
}
|
|
2063
|
+
}), null);
|
|
2064
|
+
web.insert(_el$2, web.createComponent(solidJs.Show, {
|
|
2065
|
+
get when() {
|
|
2066
|
+
return web.memo(() => !!isDevelopmentMode())() && !hideBranding();
|
|
2067
|
+
},
|
|
2068
|
+
get children() {
|
|
2069
|
+
return _tmpl$29();
|
|
2070
|
+
}
|
|
2071
|
+
}), null);
|
|
2072
|
+
web.insert(_el$2, web.createComponent(solidJs.Show, {
|
|
2073
|
+
get when() {
|
|
2074
|
+
return !hideBranding();
|
|
2075
|
+
},
|
|
2076
|
+
get children() {
|
|
2077
|
+
var _el$5 = _tmpl$32(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
|
|
2078
|
+
web.insert(_el$5, web.createComponent(Novu2, {
|
|
2079
|
+
"class": "nt-size-2.5"
|
|
2080
|
+
}), _el$7);
|
|
2081
|
+
web.effect(() => web.setAttribute(_el$5, "href", `https://go.novu.co/powered?ref=${getCurrentDomain()}`));
|
|
2082
|
+
return _el$5;
|
|
2083
|
+
}
|
|
2084
|
+
}), null);
|
|
2085
|
+
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
2086
|
+
get when() {
|
|
2087
|
+
return isKeyless();
|
|
2088
|
+
},
|
|
2089
|
+
get children() {
|
|
2090
|
+
var _el$8 = _tmpl$52(), _el$9 = _el$8.firstChild; _el$9.firstChild; var _el$11 = _el$9.nextSibling, _el$13 = _el$11.nextSibling, _el$14 = _el$13.nextSibling;
|
|
2091
|
+
web.insert(_el$9, web.createComponent(ArrowUpRight, {
|
|
2092
|
+
"class": "nt-ml-1"
|
|
2093
|
+
}), null);
|
|
2094
|
+
web.insert(_el$8, web.createComponent(CopyToClipboard, {
|
|
2095
|
+
get textToCopy() {
|
|
2096
|
+
return getCurlCommand();
|
|
2097
|
+
},
|
|
2098
|
+
get children() {
|
|
2099
|
+
return _tmpl$42();
|
|
2100
|
+
}
|
|
2101
|
+
}), _el$13);
|
|
2102
|
+
_el$14.$$click = (e) => {
|
|
2103
|
+
e.preventDefault();
|
|
2104
|
+
handleTriggerHelloWorld();
|
|
2105
|
+
};
|
|
2106
|
+
return _el$8;
|
|
2107
|
+
}
|
|
2108
|
+
}), null);
|
|
2109
|
+
web.effect(() => web.className(_el$, cn(`nt-relative nt-flex nt-shrink-0 nt-flex-col nt-justify-center nt-items-center nt-gap-1 nt-mt-auto nt-py-3 nt-text-foreground-alpha-400`, {
|
|
2110
|
+
[stripes]: isDevelopmentMode(),
|
|
2111
|
+
[devModeGradient]: isDevelopmentMode(),
|
|
2112
|
+
"nt-bg-[oklch(from_var(--nv-color-stripes)_l_c_h_/_0.1)]": isDevelopmentMode(),
|
|
2113
|
+
[prodModeGradient]: !isDevelopmentMode()
|
|
2114
|
+
})));
|
|
2115
|
+
return _el$;
|
|
2115
2116
|
}
|
|
2116
|
-
}
|
|
2117
|
-
};
|
|
2118
|
-
var DropdownRoot = (props) => {
|
|
2119
|
-
return web.createComponent(Popover.Root, web.mergeProps({
|
|
2120
|
-
placement: "bottom",
|
|
2121
|
-
fallbackPlacements: ["top"]
|
|
2122
|
-
}, props));
|
|
2117
|
+
});
|
|
2123
2118
|
};
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
return
|
|
2129
|
-
|
|
2130
|
-
|
|
2119
|
+
function getCurrentDomain() {
|
|
2120
|
+
if (isBrowser()) {
|
|
2121
|
+
return window.location.hostname;
|
|
2122
|
+
}
|
|
2123
|
+
return "";
|
|
2124
|
+
}
|
|
2125
|
+
function getCurlCommand() {
|
|
2126
|
+
const identifier = window.localStorage.getItem("novu_keyless_application_identifier");
|
|
2127
|
+
if (!identifier) {
|
|
2128
|
+
console.error("Novu application identifier not found for cURL command.");
|
|
2129
|
+
return "";
|
|
2130
|
+
}
|
|
2131
|
+
const DEFAULT_BACKEND_URL = typeof window !== "undefined" && window.NOVU_LOCAL_BACKEND_URL || "https://api.novu.co";
|
|
2132
|
+
return `curl -X POST ${DEFAULT_BACKEND_URL}/${chunkMKUNHEMT_js.DEFAULT_API_VERSION}/events/trigger -H 'Authorization: Keyless ${identifier}' -H 'Content-Type: application/json' -d '{
|
|
2133
|
+
"name": "hello-world",
|
|
2134
|
+
"to": {
|
|
2135
|
+
"subscriberId": "keyless-subscriber-id"
|
|
2136
|
+
},
|
|
2137
|
+
"payload": {
|
|
2138
|
+
"body": "New From Keyless Environment",
|
|
2139
|
+
"subject": "Hello World!"
|
|
2131
2140
|
}
|
|
2132
|
-
}
|
|
2133
|
-
}
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
var
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
};
|
|
2157
|
-
var Motion = new Proxy(solidMotionone.Motion, {
|
|
2158
|
-
get: (_, tag) => (props) => {
|
|
2159
|
-
const {
|
|
2160
|
-
animations
|
|
2161
|
-
} = useAppearance();
|
|
2162
|
-
return web.createComponent(solidMotionone.Motion, web.mergeProps(props, {
|
|
2163
|
-
tag,
|
|
2164
|
-
get transition() {
|
|
2165
|
-
return animations() ? props.transition : {
|
|
2166
|
-
duration: 0
|
|
2167
|
-
};
|
|
2168
|
-
}
|
|
2169
|
-
}));
|
|
2141
|
+
}'`;
|
|
2142
|
+
}
|
|
2143
|
+
web.delegateEvents(["click"]);
|
|
2144
|
+
var _tmpl$30 = /* @__PURE__ */ web.template(`<button>`);
|
|
2145
|
+
var buttonVariants = classVarianceAuthority.cva(cn('nt-inline-flex nt-gap-4 nt-items-center nt-justify-center nt-whitespace-nowrap nt-text-sm nt-font-medium nt-transition-colors disabled:nt-pointer-events-none disabled:nt-opacity-50 after:nt-absolute after:nt-content-[""] before:nt-content-[""] before:nt-absolute [&_svg]:nt-pointer-events-none [&_svg]:nt-shrink-0', `focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-rounded-md focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2`), {
|
|
2146
|
+
variants: {
|
|
2147
|
+
variant: {
|
|
2148
|
+
default: "nt-bg-gradient-to-b nt-from-20% nt-from-primary-foreground-alpha-200 nt-to-transparent nt-bg-primary nt-text-primary-foreground nt-shadow-[0_0_0_0.5px_var(--nv-color-primary-600)] nt-relative before:nt-absolute before:nt-inset-0 before:nt-border before:nt-border-primary-foreground-alpha-100 after:nt-absolute after:nt-inset-0 after:nt-opacity-0 hover:after:nt-opacity-100 after:nt-transition-opacity after:nt-bg-gradient-to-b after:nt-from-primary-foreground-alpha-50 after:nt-to-transparent",
|
|
2149
|
+
secondary: "nt-bg-secondary nt-text-secondary-foreground nt-shadow-[0_0_0_0.5px_var(--nv-color-secondary-600)] nt-relative before:nt-absolute before:nt-inset-0 before:nt-border before:nt-border-secondary-foreground-alpha-100 after:nt-absolute after:nt-inset-0 after:nt-opacity-0 hover:after:nt-opacity-100 after:nt-transition-opacity after:nt-bg-gradient-to-b after:nt-from-secondary-foreground-alpha-50 after:nt-to-transparent",
|
|
2150
|
+
ghost: "hover:nt-bg-neutral-alpha-100 nt-text-foreground-alpha-600 hover:nt-text-foreground-alpha-800",
|
|
2151
|
+
unstyled: ""
|
|
2152
|
+
},
|
|
2153
|
+
size: {
|
|
2154
|
+
none: "",
|
|
2155
|
+
iconSm: "nt-p-1 nt-rounded-md after:nt-rounded-md before:nt-rounded-md focus-visible:nt-rounded-md",
|
|
2156
|
+
icon: "nt-p-2.5 nt-rounded-xl before:nt-rounded-xl after:nt-rounded-xl focus-visible:nt-rounded-xl",
|
|
2157
|
+
default: "nt-px-2 nt-py-1 nt-rounded-lg focus-visible:nt-rounded-lg before:nt-rounded-lg after:nt-rounded-lg",
|
|
2158
|
+
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",
|
|
2159
|
+
lg: "nt-px-8 nt-py-2 nt-text-base before:nt-rounded-lg after:nt-rounded-lg focus-visible:nt-rounded-lg"
|
|
2160
|
+
}
|
|
2161
|
+
},
|
|
2162
|
+
defaultVariants: {
|
|
2163
|
+
variant: "default",
|
|
2164
|
+
size: "default"
|
|
2170
2165
|
}
|
|
2171
2166
|
});
|
|
2172
|
-
var
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
}
|
|
2190
|
-
const tabs = (_a = tabsContainer()) == null ? void 0 : _a.querySelectorAll('[role="tab"]');
|
|
2191
|
-
if (!tabs || !root.activeElement) {
|
|
2192
|
-
return;
|
|
2193
|
-
}
|
|
2194
|
-
setKeyboardNavigation(Array.from(tabs).includes(root.activeElement));
|
|
2195
|
-
};
|
|
2196
|
-
root.addEventListener("keyup", handleTabKey);
|
|
2197
|
-
return solidJs.onCleanup(() => root.removeEventListener("keyup", handleTabKey));
|
|
2198
|
-
});
|
|
2199
|
-
solidJs.createEffect(() => {
|
|
2200
|
-
const root = getRoot();
|
|
2201
|
-
const handleArrowKeys = (event) => {
|
|
2202
|
-
var _a, _b;
|
|
2203
|
-
if (!keyboardNavigation() || !(event instanceof KeyboardEvent) || event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
|
|
2204
|
-
return;
|
|
2205
|
-
}
|
|
2206
|
-
const tabElements = Array.from((_b = (_a = tabsContainer()) == null ? void 0 : _a.querySelectorAll('[role="tab"]')) != null ? _b : []);
|
|
2207
|
-
const tabIds = tabElements.map((tab) => tab.id);
|
|
2208
|
-
const currentIndex = tabIds.indexOf(activeTab());
|
|
2209
|
-
const { length } = tabIds;
|
|
2210
|
-
let activeIndex = currentIndex;
|
|
2211
|
-
let newTab = activeTab();
|
|
2212
|
-
if (event.key === "ArrowLeft") {
|
|
2213
|
-
activeIndex = currentIndex === 0 ? length - 1 : currentIndex - 1;
|
|
2214
|
-
newTab = tabIds[activeIndex];
|
|
2215
|
-
} else if (event.key === "ArrowRight") {
|
|
2216
|
-
activeIndex = currentIndex === length - 1 ? 0 : currentIndex + 1;
|
|
2217
|
-
newTab = tabIds[activeIndex];
|
|
2167
|
+
var Button = (props) => {
|
|
2168
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
2169
|
+
const style = useStyle();
|
|
2170
|
+
return (() => {
|
|
2171
|
+
var _el$ = _tmpl$30();
|
|
2172
|
+
web.spread(_el$, web.mergeProps({
|
|
2173
|
+
get ["data-variant"]() {
|
|
2174
|
+
return props.variant;
|
|
2175
|
+
},
|
|
2176
|
+
get ["data-size"]() {
|
|
2177
|
+
return props.size;
|
|
2178
|
+
},
|
|
2179
|
+
get ["class"]() {
|
|
2180
|
+
return style(local.appearanceKey || "button", cn(buttonVariants({
|
|
2181
|
+
variant: props.variant,
|
|
2182
|
+
size: props.size
|
|
2183
|
+
}), local.class));
|
|
2218
2184
|
}
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
root.addEventListener("keydown", handleArrowKeys);
|
|
2223
|
-
return solidJs.onCleanup(() => root.removeEventListener("keydown", handleArrowKeys));
|
|
2224
|
-
});
|
|
2225
|
-
};
|
|
2226
|
-
|
|
2227
|
-
// src/ui/components/primitives/Tabs/TabsRoot.tsx
|
|
2228
|
-
var _tmpl$33 = /* @__PURE__ */ web.template(`<div>`);
|
|
2229
|
-
var TabsContext = solidJs.createContext(void 0);
|
|
2230
|
-
var useTabsContext = () => {
|
|
2231
|
-
const context = solidJs.useContext(TabsContext);
|
|
2232
|
-
if (!context) {
|
|
2233
|
-
throw new Error("useTabsContext must be used within an TabsContext.Provider");
|
|
2234
|
-
}
|
|
2235
|
-
return context;
|
|
2185
|
+
}, rest), false, false);
|
|
2186
|
+
return _el$;
|
|
2187
|
+
})();
|
|
2236
2188
|
};
|
|
2237
|
-
var
|
|
2238
|
-
var
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2189
|
+
var _tmpl$31 = /* @__PURE__ */ web.template(`<div>`);
|
|
2190
|
+
var _tmpl$210 = /* @__PURE__ */ web.template(`<div><span>`);
|
|
2191
|
+
var DatePickerContext = solidJs.createContext({
|
|
2192
|
+
currentDate: () => /* @__PURE__ */ new Date(),
|
|
2193
|
+
setCurrentDate: () => {
|
|
2194
|
+
},
|
|
2195
|
+
viewMonth: () => /* @__PURE__ */ new Date(),
|
|
2196
|
+
setViewMonth: () => {
|
|
2197
|
+
},
|
|
2198
|
+
selectedDate: () => null,
|
|
2199
|
+
setSelectedDate: () => {
|
|
2200
|
+
},
|
|
2201
|
+
maxDays: () => 0
|
|
2202
|
+
});
|
|
2203
|
+
var useDatePicker = () => solidJs.useContext(DatePickerContext);
|
|
2204
|
+
var DatePicker = (props) => {
|
|
2205
|
+
const [local, rest] = solidJs.splitProps(props, ["children", "value", "onDateChange", "class", "maxDays"]);
|
|
2244
2206
|
const style = useStyle();
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2207
|
+
const today = /* @__PURE__ */ new Date();
|
|
2208
|
+
today.setHours(0, 0, 0, 0);
|
|
2209
|
+
const [currentDate, setCurrentDate] = solidJs.createSignal(today);
|
|
2210
|
+
const [viewMonth, setViewMonth] = solidJs.createSignal(today);
|
|
2211
|
+
const [selectedDate, setSelectedDate] = solidJs.createSignal(local.value ? new Date(local.value) : null);
|
|
2212
|
+
const handleDateSelect = (date) => {
|
|
2213
|
+
setSelectedDate(date);
|
|
2214
|
+
if (local.onDateChange) {
|
|
2215
|
+
local.onDateChange(date);
|
|
2253
2216
|
}
|
|
2254
|
-
}
|
|
2255
|
-
|
|
2256
|
-
var _a2;
|
|
2257
|
-
(_a2 = local.onChange) == null ? void 0 : _a2.call(local, activeTab());
|
|
2258
|
-
});
|
|
2259
|
-
return web.createComponent(TabsContext.Provider, {
|
|
2217
|
+
};
|
|
2218
|
+
return web.createComponent(DatePickerContext.Provider, {
|
|
2260
2219
|
value: {
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2220
|
+
currentDate,
|
|
2221
|
+
setCurrentDate,
|
|
2222
|
+
viewMonth,
|
|
2223
|
+
setViewMonth,
|
|
2224
|
+
selectedDate,
|
|
2225
|
+
setSelectedDate: handleDateSelect,
|
|
2226
|
+
maxDays: () => props.maxDays
|
|
2265
2227
|
},
|
|
2266
2228
|
get children() {
|
|
2267
|
-
var _el$ = _tmpl$
|
|
2268
|
-
web.use(setTabsContainer, _el$);
|
|
2229
|
+
var _el$ = _tmpl$31();
|
|
2269
2230
|
web.spread(_el$, web.mergeProps({
|
|
2270
2231
|
get ["class"]() {
|
|
2271
|
-
return style(
|
|
2232
|
+
return style("datePicker", cn("nt-p-2", local.class));
|
|
2272
2233
|
}
|
|
2273
2234
|
}, rest), false, true);
|
|
2274
2235
|
web.insert(_el$, () => local.children);
|
|
@@ -2276,48 +2237,743 @@ var TabsRoot = (props) => {
|
|
|
2276
2237
|
}
|
|
2277
2238
|
});
|
|
2278
2239
|
};
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
var _tmpl$34 = /* @__PURE__ */ web.template(`<div role=tabpanel>`);
|
|
2282
|
-
var TabsContent = (props) => {
|
|
2283
|
-
const [local, rest] = solidJs.splitProps(props, ["value", "class", "appearanceKey", "children"]);
|
|
2240
|
+
var DatePickerHeader = (props) => {
|
|
2241
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "children"]);
|
|
2284
2242
|
const style = useStyle();
|
|
2285
2243
|
const {
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2244
|
+
viewMonth,
|
|
2245
|
+
setViewMonth,
|
|
2246
|
+
currentDate,
|
|
2247
|
+
maxDays
|
|
2248
|
+
} = useDatePicker();
|
|
2249
|
+
useAppearance();
|
|
2250
|
+
const prevIconClass = style("datePickerControlPrevTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700", {
|
|
2251
|
+
iconKey: "arrowLeft"
|
|
2252
|
+
});
|
|
2253
|
+
const nextIconClass = style("datePickerControlNextTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700", {
|
|
2254
|
+
iconKey: "arrowRight"
|
|
2255
|
+
});
|
|
2256
|
+
const handlePrevMonth = () => {
|
|
2257
|
+
const date = new Date(viewMonth());
|
|
2258
|
+
date.setMonth(date.getMonth() - 1);
|
|
2259
|
+
const currentMonth = currentDate();
|
|
2260
|
+
if (date.getFullYear() < currentMonth.getFullYear() || date.getFullYear() === currentMonth.getFullYear() && date.getMonth() < currentMonth.getMonth()) {
|
|
2261
|
+
return;
|
|
2262
|
+
}
|
|
2263
|
+
setViewMonth(date);
|
|
2264
|
+
};
|
|
2265
|
+
const handleNextMonth = () => {
|
|
2266
|
+
const date = new Date(viewMonth());
|
|
2267
|
+
date.setMonth(date.getMonth() + 1);
|
|
2268
|
+
const maxDaysValue = maxDays();
|
|
2269
|
+
if (maxDaysValue > 0) {
|
|
2270
|
+
const maxDate = new Date(currentDate());
|
|
2271
|
+
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
2272
|
+
if (date.getFullYear() > maxDate.getFullYear() || date.getFullYear() === maxDate.getFullYear() && date.getMonth() > maxDate.getMonth()) {
|
|
2273
|
+
return;
|
|
2274
|
+
}
|
|
2275
|
+
}
|
|
2276
|
+
setViewMonth(date);
|
|
2277
|
+
};
|
|
2278
|
+
const isPrevDisabled = () => {
|
|
2279
|
+
const current = currentDate();
|
|
2280
|
+
const view = viewMonth();
|
|
2281
|
+
return view.getFullYear() === current.getFullYear() && view.getMonth() === current.getMonth();
|
|
2282
|
+
};
|
|
2283
|
+
const isNextDisabled = () => {
|
|
2284
|
+
const maxDaysValue = maxDays();
|
|
2285
|
+
if (maxDaysValue === 0) return false;
|
|
2286
|
+
const view = viewMonth();
|
|
2287
|
+
const maxDate = new Date(currentDate());
|
|
2288
|
+
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
2289
|
+
return view.getFullYear() === maxDate.getFullYear() && view.getMonth() === maxDate.getMonth();
|
|
2290
|
+
};
|
|
2291
|
+
return (() => {
|
|
2292
|
+
var _el$2 = _tmpl$210(), _el$3 = _el$2.firstChild;
|
|
2293
|
+
web.spread(_el$2, web.mergeProps({
|
|
2294
|
+
get ["class"]() {
|
|
2295
|
+
return style(local.appearanceKey || "datePickerControl", cn("nt-flex nt-items-center nt-justify-between nt-gap-1.5 nt-h-7 nt-p-1 nt-mb-2 nt-rounded-lg nt-bg-background", local.class));
|
|
2296
|
+
}
|
|
2297
|
+
}, rest), false, true);
|
|
2298
|
+
web.insert(_el$2, web.createComponent(Button, {
|
|
2299
|
+
appearanceKey: "datePickerControlPrevTrigger",
|
|
2300
|
+
variant: "ghost",
|
|
2301
|
+
onClick: (e) => {
|
|
2302
|
+
e.stopPropagation();
|
|
2303
|
+
handlePrevMonth();
|
|
2304
|
+
},
|
|
2305
|
+
get disabled() {
|
|
2306
|
+
return isPrevDisabled();
|
|
2307
|
+
},
|
|
2308
|
+
"class": "nt-flex nt-justify-center nt-items-center nt-gap-0.5 nt-w-5 nt-h-5 nt-p-0 nt-rounded-md nt-bg-background nt-shadow-[0px_1px_2px_0px_rgba(10,13,20,0.03)]",
|
|
2309
|
+
get children() {
|
|
2310
|
+
return web.createComponent(IconRendererWrapper, {
|
|
2311
|
+
iconKey: "arrowLeft",
|
|
2312
|
+
"class": prevIconClass,
|
|
2313
|
+
get fallback() {
|
|
2314
|
+
return web.createComponent(ArrowLeft, {
|
|
2315
|
+
"class": prevIconClass
|
|
2316
|
+
});
|
|
2317
|
+
}
|
|
2318
|
+
});
|
|
2319
|
+
}
|
|
2320
|
+
}), _el$3);
|
|
2321
|
+
web.insert(_el$3, () => viewMonth().toLocaleDateString("en-US", {
|
|
2322
|
+
month: "long",
|
|
2323
|
+
year: "numeric"
|
|
2324
|
+
}));
|
|
2325
|
+
web.insert(_el$2, web.createComponent(Button, {
|
|
2326
|
+
appearanceKey: "datePickerControlNextTrigger",
|
|
2327
|
+
variant: "ghost",
|
|
2328
|
+
onClick: (e) => {
|
|
2329
|
+
e.stopPropagation();
|
|
2330
|
+
handleNextMonth();
|
|
2331
|
+
},
|
|
2332
|
+
get disabled() {
|
|
2333
|
+
return isNextDisabled();
|
|
2334
|
+
},
|
|
2335
|
+
"class": "nt-flex nt-justify-center nt-items-center nt-gap-0.5 nt-w-5 nt-h-5 nt-p-0 nt-rounded-md nt-bg-background nt-shadow-[0px_1px_2px_0px_rgba(10,13,20,0.03)]",
|
|
2336
|
+
get children() {
|
|
2337
|
+
return web.createComponent(IconRendererWrapper, {
|
|
2338
|
+
iconKey: "arrowRight",
|
|
2339
|
+
"class": nextIconClass,
|
|
2340
|
+
get fallback() {
|
|
2341
|
+
return web.createComponent(ArrowRight, {
|
|
2342
|
+
"class": nextIconClass
|
|
2343
|
+
});
|
|
2344
|
+
}
|
|
2345
|
+
});
|
|
2346
|
+
}
|
|
2347
|
+
}), null);
|
|
2348
|
+
web.effect(() => web.className(_el$3, style("datePickerHeaderMonth", "nt-text-sm nt-font-medium nt-text-foreground-alpha-700")));
|
|
2349
|
+
return _el$2;
|
|
2350
|
+
})();
|
|
2351
|
+
};
|
|
2352
|
+
var DatePickerGridCellTrigger = (props) => {
|
|
2353
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "date"]);
|
|
2354
|
+
const {
|
|
2355
|
+
selectedDate,
|
|
2356
|
+
viewMonth,
|
|
2357
|
+
setSelectedDate,
|
|
2358
|
+
currentDate,
|
|
2359
|
+
maxDays
|
|
2360
|
+
} = useDatePicker();
|
|
2361
|
+
const {
|
|
2362
|
+
t
|
|
2363
|
+
} = useLocalization();
|
|
2364
|
+
const isCurrentMonth = props.date.getMonth() === viewMonth().getMonth();
|
|
2365
|
+
const isPastDate = () => {
|
|
2366
|
+
const today = currentDate();
|
|
2367
|
+
return props.date < today;
|
|
2368
|
+
};
|
|
2369
|
+
const isFutureDate = () => {
|
|
2370
|
+
const maxDaysValue = maxDays();
|
|
2371
|
+
if (maxDaysValue === 0) return false;
|
|
2372
|
+
const maxDate = new Date(currentDate());
|
|
2373
|
+
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
2374
|
+
return props.date > maxDate;
|
|
2375
|
+
};
|
|
2376
|
+
const isDisabled = !isCurrentMonth || isPastDate() || isFutureDate();
|
|
2377
|
+
const isExceedingLimit = () => {
|
|
2378
|
+
return isCurrentMonth && isFutureDate();
|
|
2379
|
+
};
|
|
2380
|
+
const buttonElement = web.createComponent(Button, web.mergeProps({
|
|
2381
|
+
appearanceKey: "datePickerCalendarDay__button",
|
|
2382
|
+
variant: "ghost",
|
|
2383
|
+
disabled: isDisabled,
|
|
2384
|
+
onClick: (e) => {
|
|
2385
|
+
e.stopPropagation();
|
|
2386
|
+
setSelectedDate(local.date);
|
|
2387
|
+
},
|
|
2388
|
+
get ["class"]() {
|
|
2389
|
+
var _a;
|
|
2390
|
+
return cn("nt-size-8 nt-w-full nt-rounded-md nt-flex nt-items-center nt-justify-center", {
|
|
2391
|
+
"nt-text-muted-foreground disabled:nt-opacity-20": !isCurrentMonth || isPastDate(),
|
|
2392
|
+
"nt-text-foreground-alpha-700": isCurrentMonth && !isPastDate() && !isFutureDate()
|
|
2393
|
+
}, {
|
|
2394
|
+
"nt-bg-primary-alpha-300 hover:nt-bg-primary-alpha-400": ((_a = selectedDate()) == null ? void 0 : _a.toDateString()) === local.date.toDateString()
|
|
2395
|
+
});
|
|
2396
|
+
}
|
|
2397
|
+
}, rest, {
|
|
2398
|
+
get children() {
|
|
2399
|
+
return local.date.getDate();
|
|
2400
|
+
}
|
|
2401
|
+
}));
|
|
2402
|
+
if (isExceedingLimit()) {
|
|
2403
|
+
return web.createComponent(Tooltip.Root, {
|
|
2404
|
+
get children() {
|
|
2405
|
+
return [web.createComponent(Tooltip.Trigger, {
|
|
2406
|
+
children: buttonElement
|
|
2407
|
+
}), web.createComponent(Tooltip.Content, {
|
|
2408
|
+
get children() {
|
|
2409
|
+
return t("snooze.datePicker.exceedingLimitTooltip", {
|
|
2410
|
+
days: maxDays()
|
|
2411
|
+
});
|
|
2412
|
+
}
|
|
2413
|
+
})];
|
|
2414
|
+
}
|
|
2415
|
+
});
|
|
2416
|
+
}
|
|
2417
|
+
return buttonElement;
|
|
2418
|
+
};
|
|
2419
|
+
var DatePickerCalendar = (props) => {
|
|
2420
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
2421
|
+
const style = useStyle();
|
|
2422
|
+
const {
|
|
2423
|
+
viewMonth
|
|
2424
|
+
} = useDatePicker();
|
|
2425
|
+
const getDaysInMonth = () => {
|
|
2426
|
+
const year = viewMonth().getFullYear();
|
|
2427
|
+
const month = viewMonth().getMonth();
|
|
2428
|
+
const firstDay = new Date(year, month, 1);
|
|
2429
|
+
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
2430
|
+
const startingDay = firstDay.getDay();
|
|
2431
|
+
const days = [];
|
|
2432
|
+
for (let i = 0; i < startingDay; i += 1) {
|
|
2433
|
+
const prevMonthDay = new Date(year, month, -i);
|
|
2434
|
+
days.unshift(prevMonthDay);
|
|
2435
|
+
}
|
|
2436
|
+
for (let i = 1; i <= daysInMonth; i += 1) {
|
|
2437
|
+
days.push(new Date(year, month, i));
|
|
2438
|
+
}
|
|
2439
|
+
const remainingCells = 7 - days.length % 7;
|
|
2440
|
+
if (remainingCells < 7) {
|
|
2441
|
+
for (let i = 1; i <= remainingCells; i += 1) {
|
|
2442
|
+
days.push(new Date(year, month + 1, i));
|
|
2443
|
+
}
|
|
2444
|
+
}
|
|
2445
|
+
return days;
|
|
2446
|
+
};
|
|
2447
|
+
return (() => {
|
|
2448
|
+
var _el$8 = _tmpl$31();
|
|
2449
|
+
_el$8.$$click = (e) => e.stopPropagation();
|
|
2450
|
+
web.spread(_el$8, web.mergeProps({
|
|
2451
|
+
get ["class"]() {
|
|
2452
|
+
return style(local.appearanceKey || "datePickerCalendar", cn("nt-grid nt-grid-cols-7 nt-gap-1", local.class));
|
|
2453
|
+
}
|
|
2454
|
+
}, rest), false, true);
|
|
2455
|
+
web.insert(_el$8, () => getDaysInMonth().map((date) => {
|
|
2456
|
+
return web.createComponent(DatePickerGridCellTrigger, {
|
|
2457
|
+
date
|
|
2458
|
+
});
|
|
2459
|
+
}));
|
|
2460
|
+
return _el$8;
|
|
2461
|
+
})();
|
|
2462
|
+
};
|
|
2463
|
+
web.delegateEvents(["click"]);
|
|
2464
|
+
var _tmpl$33 = /* @__PURE__ */ web.template(`<button>`);
|
|
2465
|
+
var PopoverClose = (props) => {
|
|
2466
|
+
const {
|
|
2467
|
+
onClose
|
|
2468
|
+
} = usePopover();
|
|
2469
|
+
const style = useStyle();
|
|
2470
|
+
const [local, rest] = solidJs.splitProps(props, ["onClick", "asChild", "appearanceKey", "class"]);
|
|
2471
|
+
const handleClick = (e) => {
|
|
2472
|
+
if (typeof local.onClick === "function") {
|
|
2473
|
+
local.onClick(e);
|
|
2474
|
+
}
|
|
2475
|
+
onClose();
|
|
2476
|
+
};
|
|
2477
|
+
if (local.asChild) {
|
|
2478
|
+
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2479
|
+
get component() {
|
|
2480
|
+
return local.asChild;
|
|
2481
|
+
},
|
|
2482
|
+
onClick: handleClick
|
|
2483
|
+
}, rest));
|
|
2484
|
+
}
|
|
2485
|
+
return (() => {
|
|
2486
|
+
var _el$ = _tmpl$33();
|
|
2487
|
+
_el$.$$click = handleClick;
|
|
2488
|
+
web.spread(_el$, web.mergeProps({
|
|
2489
|
+
get ["class"]() {
|
|
2490
|
+
return style(local.appearanceKey || "popoverClose", local.class);
|
|
2491
|
+
}
|
|
2492
|
+
}, rest), false, false);
|
|
2493
|
+
return _el$;
|
|
2494
|
+
})();
|
|
2495
|
+
};
|
|
2496
|
+
web.delegateEvents(["click"]);
|
|
2497
|
+
var _tmpl$34 = /* @__PURE__ */ web.template(`<div>`);
|
|
2498
|
+
var Portal2 = (props) => {
|
|
2499
|
+
const appearance = useAppearance();
|
|
2500
|
+
let currentElement;
|
|
2501
|
+
return [(() => {
|
|
2502
|
+
var _el$ = _tmpl$34();
|
|
2503
|
+
web.use((el) => {
|
|
2504
|
+
currentElement = el;
|
|
2505
|
+
}, _el$);
|
|
2506
|
+
_el$.style.setProperty("display", "none");
|
|
2507
|
+
return _el$;
|
|
2508
|
+
})(), web.createComponent(web.Portal, web.mergeProps({
|
|
2509
|
+
get mount() {
|
|
2510
|
+
return closestNovuRootParent(currentElement, appearance.id());
|
|
2511
|
+
}
|
|
2512
|
+
}, props))];
|
|
2513
|
+
};
|
|
2514
|
+
var closestNovuRootParent = (el, id) => {
|
|
2515
|
+
let element = el;
|
|
2516
|
+
while (element && element.id !== `novu-root-${id}`) {
|
|
2517
|
+
element = element.parentElement;
|
|
2518
|
+
}
|
|
2519
|
+
if (element && element.id === `novu-root-${id}`) {
|
|
2520
|
+
return element;
|
|
2521
|
+
}
|
|
2522
|
+
return void 0;
|
|
2523
|
+
};
|
|
2524
|
+
var PopoverContext = solidJs.createContext(void 0);
|
|
2525
|
+
function PopoverRoot(props) {
|
|
2526
|
+
var _a;
|
|
2527
|
+
const [uncontrolledIsOpen, setUncontrolledIsOpen] = solidJs.createSignal((_a = props.open) != null ? _a : false);
|
|
2528
|
+
const onOpenChange = () => {
|
|
2529
|
+
var _a2;
|
|
2530
|
+
return (_a2 = props.onOpenChange) != null ? _a2 : setUncontrolledIsOpen;
|
|
2531
|
+
};
|
|
2532
|
+
const open = () => {
|
|
2533
|
+
var _a2;
|
|
2534
|
+
return (_a2 = props.open) != null ? _a2 : uncontrolledIsOpen();
|
|
2535
|
+
};
|
|
2536
|
+
const [reference, setReference] = solidJs.createSignal(null);
|
|
2537
|
+
const [floating, setFloating] = solidJs.createSignal(null);
|
|
2538
|
+
const position = solidFloatingUi.useFloating(reference, floating, {
|
|
2539
|
+
strategy: "absolute",
|
|
2540
|
+
placement: props.placement,
|
|
2541
|
+
whileElementsMounted: dom.autoUpdate,
|
|
2542
|
+
middleware: [dom.offset(10), dom.flip({
|
|
2543
|
+
fallbackPlacements: props.fallbackPlacements
|
|
2544
|
+
}), dom.shift()]
|
|
2545
|
+
});
|
|
2546
|
+
const floatingStyles = solidJs.createMemo(() => {
|
|
2547
|
+
var _a2, _b;
|
|
2548
|
+
return {
|
|
2549
|
+
position: position.strategy,
|
|
2550
|
+
top: `${(_a2 = position.y) != null ? _a2 : 0}px`,
|
|
2551
|
+
left: `${(_b = position.x) != null ? _b : 0}px`
|
|
2552
|
+
};
|
|
2553
|
+
});
|
|
2554
|
+
const onClose = () => {
|
|
2555
|
+
onOpenChange()(false);
|
|
2556
|
+
};
|
|
2557
|
+
const onToggle = () => {
|
|
2558
|
+
onOpenChange()((prev) => !prev);
|
|
2559
|
+
};
|
|
2560
|
+
return web.createComponent(PopoverContext.Provider, {
|
|
2561
|
+
value: {
|
|
2562
|
+
onToggle,
|
|
2563
|
+
onClose,
|
|
2564
|
+
reference,
|
|
2565
|
+
setReference,
|
|
2566
|
+
floating,
|
|
2567
|
+
setFloating,
|
|
2568
|
+
open,
|
|
2569
|
+
floatingStyles
|
|
2570
|
+
},
|
|
2571
|
+
get children() {
|
|
2572
|
+
return props.children;
|
|
2573
|
+
}
|
|
2574
|
+
});
|
|
2575
|
+
}
|
|
2576
|
+
function usePopover() {
|
|
2577
|
+
const context = solidJs.useContext(PopoverContext);
|
|
2578
|
+
if (!context) {
|
|
2579
|
+
throw new Error("usePopover must be used within Popover.Root component");
|
|
2580
|
+
}
|
|
2581
|
+
return context;
|
|
2582
|
+
}
|
|
2583
|
+
|
|
2584
|
+
// src/ui/components/primitives/Popover/PopoverContent.tsx
|
|
2585
|
+
var _tmpl$35 = /* @__PURE__ */ web.template(`<div>`);
|
|
2586
|
+
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");
|
|
2587
|
+
var PopoverContentBody = (props) => {
|
|
2588
|
+
const {
|
|
2589
|
+
open,
|
|
2590
|
+
setFloating,
|
|
2591
|
+
floating,
|
|
2592
|
+
floatingStyles
|
|
2593
|
+
} = usePopover();
|
|
2594
|
+
const {
|
|
2595
|
+
setActive,
|
|
2596
|
+
removeActive
|
|
2597
|
+
} = useFocusManager();
|
|
2598
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "style"]);
|
|
2599
|
+
const style = useStyle();
|
|
2600
|
+
solidJs.onMount(() => {
|
|
2601
|
+
const floatingEl = floating();
|
|
2602
|
+
setActive(floatingEl);
|
|
2603
|
+
solidJs.onCleanup(() => {
|
|
2604
|
+
removeActive(floatingEl);
|
|
2605
|
+
});
|
|
2606
|
+
});
|
|
2607
|
+
return (() => {
|
|
2608
|
+
var _el$ = _tmpl$35();
|
|
2609
|
+
web.use(setFloating, _el$);
|
|
2610
|
+
web.spread(_el$, web.mergeProps({
|
|
2611
|
+
get ["class"]() {
|
|
2612
|
+
return style(local.appearanceKey || "popoverContent", cn(popoverContentVariants(), local.class));
|
|
2613
|
+
},
|
|
2614
|
+
get style() {
|
|
2615
|
+
return floatingStyles();
|
|
2616
|
+
},
|
|
2617
|
+
get ["data-open"]() {
|
|
2618
|
+
return open();
|
|
2619
|
+
}
|
|
2620
|
+
}, rest), false, false);
|
|
2621
|
+
return _el$;
|
|
2622
|
+
})();
|
|
2623
|
+
};
|
|
2624
|
+
var PopoverContent = (props) => {
|
|
2625
|
+
const {
|
|
2626
|
+
open,
|
|
2627
|
+
onClose,
|
|
2628
|
+
reference,
|
|
2629
|
+
floating
|
|
2630
|
+
} = usePopover();
|
|
2631
|
+
const {
|
|
2632
|
+
active
|
|
2633
|
+
} = useFocusManager();
|
|
2634
|
+
const {
|
|
2635
|
+
container
|
|
2636
|
+
} = useAppearance();
|
|
2637
|
+
const handleClickOutside = (e) => {
|
|
2638
|
+
var _a, _b;
|
|
2639
|
+
if ((_a = reference()) == null ? void 0 : _a.contains(e.target)) {
|
|
2640
|
+
return;
|
|
2641
|
+
}
|
|
2642
|
+
const containerElement = container();
|
|
2643
|
+
if (active() !== floating() || ((_b = floating()) == null ? void 0 : _b.contains(e.target)) || containerElement && e.target.shadowRoot === containerElement) {
|
|
2644
|
+
return;
|
|
2645
|
+
}
|
|
2646
|
+
onClose();
|
|
2647
|
+
};
|
|
2648
|
+
const handleEscapeKey = (e) => {
|
|
2649
|
+
if (active() !== floating()) {
|
|
2650
|
+
return;
|
|
2651
|
+
}
|
|
2652
|
+
if (e instanceof KeyboardEvent && e.key === "Escape") {
|
|
2653
|
+
onClose();
|
|
2654
|
+
}
|
|
2655
|
+
};
|
|
2656
|
+
solidJs.onMount(() => {
|
|
2657
|
+
var _a;
|
|
2658
|
+
document.body.addEventListener("click", handleClickOutside);
|
|
2659
|
+
(_a = container()) == null ? void 0 : _a.addEventListener("click", handleClickOutside);
|
|
2660
|
+
document.body.addEventListener("keydown", handleEscapeKey);
|
|
2661
|
+
});
|
|
2662
|
+
solidJs.onCleanup(() => {
|
|
2663
|
+
var _a;
|
|
2664
|
+
document.body.removeEventListener("click", handleClickOutside);
|
|
2665
|
+
(_a = container()) == null ? void 0 : _a.removeEventListener("click", handleClickOutside);
|
|
2666
|
+
document.body.removeEventListener("keydown", handleEscapeKey);
|
|
2667
|
+
});
|
|
2668
|
+
return web.createComponent(solidJs.Show, {
|
|
2669
|
+
get when() {
|
|
2670
|
+
return open();
|
|
2671
|
+
},
|
|
2672
|
+
get children() {
|
|
2673
|
+
return web.createComponent(Portal2, {
|
|
2674
|
+
get children() {
|
|
2675
|
+
return web.createComponent(PopoverContentBody, props);
|
|
2676
|
+
}
|
|
2677
|
+
});
|
|
2678
|
+
}
|
|
2679
|
+
});
|
|
2680
|
+
};
|
|
2681
|
+
var _tmpl$36 = /* @__PURE__ */ web.template(`<button>`);
|
|
2682
|
+
var PopoverTrigger = (props) => {
|
|
2683
|
+
const {
|
|
2684
|
+
setReference,
|
|
2685
|
+
onToggle
|
|
2686
|
+
} = usePopover();
|
|
2687
|
+
const style = useStyle();
|
|
2688
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "ref"]);
|
|
2689
|
+
const handleClick = (e) => {
|
|
2690
|
+
if (typeof local.onClick === "function") {
|
|
2691
|
+
local.onClick(e);
|
|
2692
|
+
}
|
|
2693
|
+
onToggle();
|
|
2694
|
+
};
|
|
2695
|
+
const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
|
|
2696
|
+
if (local.asChild) {
|
|
2697
|
+
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2698
|
+
get component() {
|
|
2699
|
+
return local.asChild;
|
|
2700
|
+
},
|
|
2701
|
+
ref(r$) {
|
|
2702
|
+
var _ref$ = ref();
|
|
2703
|
+
typeof _ref$ === "function" && _ref$(r$);
|
|
2704
|
+
},
|
|
2705
|
+
onClick: handleClick
|
|
2706
|
+
}, rest));
|
|
2707
|
+
}
|
|
2708
|
+
return (() => {
|
|
2709
|
+
var _el$ = _tmpl$36();
|
|
2710
|
+
_el$.$$click = handleClick;
|
|
2711
|
+
var _ref$2 = ref();
|
|
2712
|
+
typeof _ref$2 === "function" && web.use(_ref$2, _el$);
|
|
2713
|
+
web.spread(_el$, web.mergeProps({
|
|
2714
|
+
get ["class"]() {
|
|
2715
|
+
return style(local.appearanceKey || "dropdownTrigger");
|
|
2716
|
+
}
|
|
2717
|
+
}, rest), false, true);
|
|
2718
|
+
web.insert(_el$, () => props.children);
|
|
2719
|
+
return _el$;
|
|
2720
|
+
})();
|
|
2721
|
+
};
|
|
2722
|
+
web.delegateEvents(["click"]);
|
|
2723
|
+
|
|
2724
|
+
// src/ui/components/primitives/Popover/index.ts
|
|
2725
|
+
var Popover = {
|
|
2726
|
+
Root: PopoverRoot,
|
|
2727
|
+
/**
|
|
2728
|
+
* Popover.Trigger renders a `button` and has no default styling.
|
|
2729
|
+
*/
|
|
2730
|
+
Trigger: PopoverTrigger,
|
|
2731
|
+
/**
|
|
2732
|
+
* Popover.Content renders a `div` and has popover specific styling.
|
|
2733
|
+
*/
|
|
2734
|
+
Content: PopoverContent,
|
|
2735
|
+
/**
|
|
2736
|
+
* Popover.Close renders a `button` and has no styling.
|
|
2737
|
+
* Closes the popover when clicked.
|
|
2738
|
+
* `onClick` function is propagated.
|
|
2739
|
+
*/
|
|
2740
|
+
Close: PopoverClose
|
|
2741
|
+
};
|
|
2742
|
+
var dropdownContentVariants = () => "nt-p-1 nt-text-sm nt-min-w-52 nt-shadow-dropdown nt-h-fit nt-min-w-52 nt-w-max";
|
|
2743
|
+
var DropdownContent = (props) => {
|
|
2744
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "class"]);
|
|
2745
|
+
return web.createComponent(Popover.Content, web.mergeProps({
|
|
2746
|
+
get appearanceKey() {
|
|
2747
|
+
return local.appearanceKey || "dropdownContent";
|
|
2748
|
+
},
|
|
2749
|
+
get ["class"]() {
|
|
2750
|
+
return cn(dropdownContentVariants(), local.class);
|
|
2751
|
+
}
|
|
2752
|
+
}, rest));
|
|
2753
|
+
};
|
|
2754
|
+
var dropdownItemVariants = () => "focus:nt-outline-none nt-flex nt-items-center nt-gap-1.5 nt-text-sm nt-rounded-lg nt-items-center hover:nt-bg-neutral-alpha-50 focus-visible:nt-bg-neutral-alpha-50 nt-py-1 nt-px-2";
|
|
2755
|
+
var DropdownItem = (props) => {
|
|
2756
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "onClick", "class", "asChild"]);
|
|
2757
|
+
const {
|
|
2758
|
+
onClose
|
|
2759
|
+
} = usePopover();
|
|
2760
|
+
const handleClick = (e) => {
|
|
2761
|
+
if (typeof local.onClick === "function") {
|
|
2762
|
+
local.onClick(e);
|
|
2763
|
+
}
|
|
2764
|
+
onClose();
|
|
2765
|
+
};
|
|
2766
|
+
if (local.asChild) {
|
|
2767
|
+
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2768
|
+
get component() {
|
|
2769
|
+
return local.asChild;
|
|
2770
|
+
},
|
|
2771
|
+
onClick: handleClick
|
|
2772
|
+
}, rest));
|
|
2773
|
+
}
|
|
2774
|
+
return web.createComponent(Popover.Close, web.mergeProps({
|
|
2775
|
+
get appearanceKey() {
|
|
2776
|
+
return local.appearanceKey || "dropdownItem";
|
|
2777
|
+
},
|
|
2778
|
+
get ["class"]() {
|
|
2779
|
+
return cn(dropdownItemVariants(), local.class);
|
|
2780
|
+
},
|
|
2781
|
+
onClick: (e) => {
|
|
2782
|
+
if (typeof local.onClick === "function") {
|
|
2783
|
+
local.onClick(e);
|
|
2784
|
+
}
|
|
2785
|
+
onClose();
|
|
2786
|
+
}
|
|
2787
|
+
}, rest));
|
|
2788
|
+
};
|
|
2789
|
+
var DropdownRoot = (props) => {
|
|
2790
|
+
return web.createComponent(Popover.Root, web.mergeProps({
|
|
2791
|
+
placement: "bottom",
|
|
2792
|
+
fallbackPlacements: ["top"]
|
|
2793
|
+
}, props));
|
|
2794
|
+
};
|
|
2795
|
+
var dropdownTriggerButtonVariants = () => `nt-relative nt-transition nt-outline-none focus-visible:nt-outline-nonefocus-visible:nt-ring-2 focus-visible:nt-ring-primary focus-visible:nt-ring-offset-2`;
|
|
2796
|
+
var DropdownTrigger = (props) => {
|
|
2797
|
+
const style = useStyle();
|
|
2798
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "class"]);
|
|
2799
|
+
return web.createComponent(Popover.Trigger, web.mergeProps({
|
|
2800
|
+
get ["class"]() {
|
|
2801
|
+
return style(local.appearanceKey || "dropdownTrigger", cn(dropdownTriggerButtonVariants(), local.class));
|
|
2802
|
+
}
|
|
2803
|
+
}, rest));
|
|
2804
|
+
};
|
|
2805
|
+
|
|
2806
|
+
// src/ui/components/primitives/Dropdown/index.ts
|
|
2807
|
+
var Dropdown = {
|
|
2808
|
+
Root: DropdownRoot,
|
|
2809
|
+
/**
|
|
2810
|
+
* Dropdown.Trigger renders a `button` and has no default styling.
|
|
2811
|
+
*/
|
|
2812
|
+
Trigger: DropdownTrigger,
|
|
2813
|
+
/**
|
|
2814
|
+
* Dropdown.Content renders a `Popover.Content` by default.
|
|
2815
|
+
*/
|
|
2816
|
+
Content: DropdownContent,
|
|
2817
|
+
/**
|
|
2818
|
+
* Dropdown.Close renders a `Popover.Close` by default.
|
|
2819
|
+
*/
|
|
2820
|
+
Close: Popover.Close,
|
|
2821
|
+
/**
|
|
2822
|
+
* Dropdown.Item renders a `Popover.Close` with dropdown specific styling.
|
|
2823
|
+
* Closes the popover when clicked.
|
|
2824
|
+
* `onClick` function is propagated.
|
|
2825
|
+
*/
|
|
2826
|
+
Item: DropdownItem
|
|
2827
|
+
};
|
|
2828
|
+
var useKeyboardNavigation = ({
|
|
2829
|
+
activeTab,
|
|
2830
|
+
setActiveTab,
|
|
2831
|
+
tabsContainer
|
|
2832
|
+
}) => {
|
|
2833
|
+
const { container } = useAppearance();
|
|
2834
|
+
const [keyboardNavigation, setKeyboardNavigation] = solidJs.createSignal(false);
|
|
2835
|
+
const getRoot = () => {
|
|
2836
|
+
const containerElement = container();
|
|
2837
|
+
return containerElement instanceof ShadowRoot ? containerElement : document;
|
|
2838
|
+
};
|
|
2839
|
+
solidJs.createEffect(() => {
|
|
2840
|
+
const root = getRoot();
|
|
2841
|
+
const handleTabKey = (event) => {
|
|
2842
|
+
var _a;
|
|
2843
|
+
if (!(event instanceof KeyboardEvent) || event.key !== "Tab") {
|
|
2844
|
+
return;
|
|
2845
|
+
}
|
|
2846
|
+
const tabs = (_a = tabsContainer()) == null ? void 0 : _a.querySelectorAll('[role="tab"]');
|
|
2847
|
+
if (!tabs || !root.activeElement) {
|
|
2848
|
+
return;
|
|
2849
|
+
}
|
|
2850
|
+
setKeyboardNavigation(Array.from(tabs).includes(root.activeElement));
|
|
2851
|
+
};
|
|
2852
|
+
root.addEventListener("keyup", handleTabKey);
|
|
2853
|
+
return solidJs.onCleanup(() => root.removeEventListener("keyup", handleTabKey));
|
|
2854
|
+
});
|
|
2855
|
+
solidJs.createEffect(() => {
|
|
2856
|
+
const root = getRoot();
|
|
2857
|
+
const handleArrowKeys = (event) => {
|
|
2858
|
+
var _a, _b;
|
|
2859
|
+
if (!keyboardNavigation() || !(event instanceof KeyboardEvent) || event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
|
|
2860
|
+
return;
|
|
2861
|
+
}
|
|
2862
|
+
const tabElements = Array.from((_b = (_a = tabsContainer()) == null ? void 0 : _a.querySelectorAll('[role="tab"]')) != null ? _b : []);
|
|
2863
|
+
const tabIds = tabElements.map((tab) => tab.id);
|
|
2864
|
+
const currentIndex = tabIds.indexOf(activeTab());
|
|
2865
|
+
const { length } = tabIds;
|
|
2866
|
+
let activeIndex = currentIndex;
|
|
2867
|
+
let newTab = activeTab();
|
|
2868
|
+
if (event.key === "ArrowLeft") {
|
|
2869
|
+
activeIndex = currentIndex === 0 ? length - 1 : currentIndex - 1;
|
|
2870
|
+
newTab = tabIds[activeIndex];
|
|
2871
|
+
} else if (event.key === "ArrowRight") {
|
|
2872
|
+
activeIndex = currentIndex === length - 1 ? 0 : currentIndex + 1;
|
|
2873
|
+
newTab = tabIds[activeIndex];
|
|
2874
|
+
}
|
|
2875
|
+
tabElements[activeIndex].focus();
|
|
2876
|
+
setActiveTab(newTab);
|
|
2877
|
+
};
|
|
2878
|
+
root.addEventListener("keydown", handleArrowKeys);
|
|
2879
|
+
return solidJs.onCleanup(() => root.removeEventListener("keydown", handleArrowKeys));
|
|
2880
|
+
});
|
|
2881
|
+
};
|
|
2882
|
+
|
|
2883
|
+
// src/ui/components/primitives/Tabs/TabsRoot.tsx
|
|
2884
|
+
var _tmpl$37 = /* @__PURE__ */ web.template(`<div>`);
|
|
2885
|
+
var TabsContext = solidJs.createContext(void 0);
|
|
2886
|
+
var useTabsContext = () => {
|
|
2887
|
+
const context = solidJs.useContext(TabsContext);
|
|
2888
|
+
if (!context) {
|
|
2889
|
+
throw new Error("useTabsContext must be used within an TabsContext.Provider");
|
|
2890
|
+
}
|
|
2891
|
+
return context;
|
|
2892
|
+
};
|
|
2893
|
+
var tabsRootVariants = () => "nt-flex nt-flex-col";
|
|
2894
|
+
var TabsRoot = (props) => {
|
|
2895
|
+
var _a;
|
|
2896
|
+
const [local, rest] = solidJs.splitProps(props, ["defaultValue", "value", "class", "appearanceKey", "onChange", "children"]);
|
|
2897
|
+
const [tabsContainer, setTabsContainer] = solidJs.createSignal();
|
|
2898
|
+
const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
|
|
2899
|
+
const [activeTab, setActiveTab] = solidJs.createSignal((_a = local.defaultValue) != null ? _a : "");
|
|
2900
|
+
const style = useStyle();
|
|
2901
|
+
useKeyboardNavigation({
|
|
2902
|
+
tabsContainer,
|
|
2903
|
+
activeTab,
|
|
2904
|
+
setActiveTab
|
|
2905
|
+
});
|
|
2906
|
+
solidJs.createEffect(() => {
|
|
2907
|
+
if (local.value) {
|
|
2908
|
+
setActiveTab(local.value);
|
|
2909
|
+
}
|
|
2910
|
+
});
|
|
2911
|
+
solidJs.createEffect(() => {
|
|
2912
|
+
var _a2;
|
|
2913
|
+
(_a2 = local.onChange) == null ? void 0 : _a2.call(local, activeTab());
|
|
2914
|
+
});
|
|
2915
|
+
return web.createComponent(TabsContext.Provider, {
|
|
2916
|
+
value: {
|
|
2917
|
+
activeTab,
|
|
2918
|
+
setActiveTab,
|
|
2919
|
+
visibleTabs,
|
|
2920
|
+
setVisibleTabs
|
|
2921
|
+
},
|
|
2922
|
+
get children() {
|
|
2923
|
+
var _el$ = _tmpl$37();
|
|
2924
|
+
web.use(setTabsContainer, _el$);
|
|
2925
|
+
web.spread(_el$, web.mergeProps({
|
|
2926
|
+
get ["class"]() {
|
|
2927
|
+
return style(local.appearanceKey || "tabsRoot", cn(tabsRootVariants(), local.class));
|
|
2928
|
+
}
|
|
2929
|
+
}, rest), false, true);
|
|
2930
|
+
web.insert(_el$, () => local.children);
|
|
2931
|
+
return _el$;
|
|
2932
|
+
}
|
|
2933
|
+
});
|
|
2934
|
+
};
|
|
2935
|
+
|
|
2936
|
+
// src/ui/components/primitives/Tabs/TabsContent.tsx
|
|
2937
|
+
var _tmpl$38 = /* @__PURE__ */ web.template(`<div role=tabpanel>`);
|
|
2938
|
+
var TabsContent = (props) => {
|
|
2939
|
+
const [local, rest] = solidJs.splitProps(props, ["value", "class", "appearanceKey", "children"]);
|
|
2940
|
+
const style = useStyle();
|
|
2941
|
+
const {
|
|
2942
|
+
activeTab
|
|
2943
|
+
} = useTabsContext();
|
|
2944
|
+
return web.createComponent(solidJs.Show, {
|
|
2945
|
+
get when() {
|
|
2946
|
+
return activeTab() === local.value;
|
|
2947
|
+
},
|
|
2948
|
+
get children() {
|
|
2949
|
+
var _el$ = _tmpl$38();
|
|
2950
|
+
web.spread(_el$, web.mergeProps({
|
|
2951
|
+
get ["class"]() {
|
|
2952
|
+
return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tabsContent", activeTab() === local.value ? "nt-block" : "nt-hidden");
|
|
2953
|
+
},
|
|
2954
|
+
get id() {
|
|
2955
|
+
return `tabpanel-${local.value}`;
|
|
2956
|
+
},
|
|
2957
|
+
get ["aria-labelledby"]() {
|
|
2958
|
+
return local.value;
|
|
2959
|
+
},
|
|
2960
|
+
get ["data-state"]() {
|
|
2961
|
+
return activeTab() === local.value ? "active" : "inactive";
|
|
2962
|
+
}
|
|
2963
|
+
}, rest), false, true);
|
|
2964
|
+
web.insert(_el$, () => local.children);
|
|
2965
|
+
return _el$;
|
|
2966
|
+
}
|
|
2311
2967
|
});
|
|
2312
2968
|
};
|
|
2313
|
-
var _tmpl$
|
|
2314
|
-
var _tmpl$
|
|
2969
|
+
var _tmpl$39 = /* @__PURE__ */ web.template(`<div role=tablist>`);
|
|
2970
|
+
var _tmpl$211 = /* @__PURE__ */ web.template(`<div class="nt-relative nt-z-[-1]">`);
|
|
2315
2971
|
var tabsListVariants = () => "nt-flex nt-gap-6";
|
|
2316
2972
|
var TabsList = (props) => {
|
|
2317
2973
|
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "ref", "children"]);
|
|
2318
2974
|
const style = useStyle();
|
|
2319
2975
|
return [(() => {
|
|
2320
|
-
var _el$ = _tmpl$
|
|
2976
|
+
var _el$ = _tmpl$39();
|
|
2321
2977
|
var _ref$ = local.ref;
|
|
2322
2978
|
typeof _ref$ === "function" ? web.use(_ref$, _el$) : local.ref = _el$;
|
|
2323
2979
|
web.spread(_el$, web.mergeProps({
|
|
@@ -2327,7 +2983,7 @@ var TabsList = (props) => {
|
|
|
2327
2983
|
}, rest), false, true);
|
|
2328
2984
|
web.insert(_el$, () => local.children);
|
|
2329
2985
|
return _el$;
|
|
2330
|
-
})(), _tmpl$
|
|
2986
|
+
})(), _tmpl$211()];
|
|
2331
2987
|
};
|
|
2332
2988
|
var tabsTriggerVariants = () => cn("nt-relative nt-transition nt-outline-none nt-text-foreground-alpha-600 nt-pb-[0.625rem]", `after:nt-absolute after:nt-content-[''] after:nt-bottom-0 after:nt-left-0 after:nt-w-full after:nt-h-[2px]`, "after:nt-transition-opacity after:nt-duration-200", "data-[state=active]:after:nt-border-b-2 data-[state=active]:after:nt-border-primary data-[state=active]:after:nt-opacity-100", "data-[state=active]:nt-text-foreground after:nt-border-b-transparent after:nt-opacity-0", "focus-visible:nt-outline-none focus-visible:nt-rounded-lg focus-visible:nt-ring-2 focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2");
|
|
2333
2989
|
var TabsTrigger = (props) => {
|
|
@@ -2398,8 +3054,8 @@ var inboxFilterLocalizationKeys = {
|
|
|
2398
3054
|
archived: "inbox.filters.labels.archived",
|
|
2399
3055
|
snoozed: "inbox.filters.labels.snoozed"
|
|
2400
3056
|
};
|
|
2401
|
-
var _tmpl$
|
|
2402
|
-
var _tmpl$
|
|
3057
|
+
var _tmpl$40 = /* @__PURE__ */ web.template(`<span><span>`);
|
|
3058
|
+
var _tmpl$212 = /* @__PURE__ */ web.template(`<span>`);
|
|
2403
3059
|
var cases = [{
|
|
2404
3060
|
status: "unreadRead" /* UNREAD_READ */,
|
|
2405
3061
|
iconKey: "unread",
|
|
@@ -2467,7 +3123,7 @@ var StatusItem = (props) => {
|
|
|
2467
3123
|
},
|
|
2468
3124
|
get children() {
|
|
2469
3125
|
return [(() => {
|
|
2470
|
-
var _el$ = _tmpl$
|
|
3126
|
+
var _el$ = _tmpl$40(), _el$2 = _el$.firstChild;
|
|
2471
3127
|
web.insert(_el$, web.createComponent(IconRendererWrapper, {
|
|
2472
3128
|
get iconKey() {
|
|
2473
3129
|
return props.iconKey;
|
|
@@ -2475,7 +3131,7 @@ var StatusItem = (props) => {
|
|
|
2475
3131
|
"class": itemIconClass,
|
|
2476
3132
|
get fallback() {
|
|
2477
3133
|
return (() => {
|
|
2478
|
-
var _el$3 = _tmpl$
|
|
3134
|
+
var _el$3 = _tmpl$212();
|
|
2479
3135
|
web.className(_el$3, itemIconClass);
|
|
2480
3136
|
web.insert(_el$3, () => props.icon());
|
|
2481
3137
|
return _el$3;
|
|
@@ -2516,7 +3172,7 @@ var StatusItem = (props) => {
|
|
|
2516
3172
|
};
|
|
2517
3173
|
|
|
2518
3174
|
// src/ui/components/elements/InboxStatus/InboxStatusDropdown.tsx
|
|
2519
|
-
var _tmpl$
|
|
3175
|
+
var _tmpl$41 = /* @__PURE__ */ web.template(`<span>`);
|
|
2520
3176
|
var StatusDropdown = () => {
|
|
2521
3177
|
const style = useStyle();
|
|
2522
3178
|
const {
|
|
@@ -2544,7 +3200,7 @@ var StatusDropdown = () => {
|
|
|
2544
3200
|
}, triggerProps, {
|
|
2545
3201
|
get children() {
|
|
2546
3202
|
return [(() => {
|
|
2547
|
-
var _el$ = _tmpl$
|
|
3203
|
+
var _el$ = _tmpl$41();
|
|
2548
3204
|
web.insert(_el$, () => t(inboxFilterLocalizationKeys[status()]));
|
|
2549
3205
|
web.effect((_p$) => {
|
|
2550
3206
|
var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-base");
|
|
@@ -2632,7 +3288,7 @@ var useNotificationsInfiniteScroll = (props) => {
|
|
|
2632
3288
|
);
|
|
2633
3289
|
solidJs.onMount(() => {
|
|
2634
3290
|
const listener = ({ data: data2 }) => {
|
|
2635
|
-
if (!data2 || !
|
|
3291
|
+
if (!data2 || !chunkMKUNHEMT_js.isSameFilter(filter, data2.filter)) {
|
|
2636
3292
|
return;
|
|
2637
3293
|
}
|
|
2638
3294
|
mutate({ data: data2.notifications, hasMore: data2.hasMore });
|
|
@@ -2642,7 +3298,7 @@ var useNotificationsInfiniteScroll = (props) => {
|
|
|
2642
3298
|
});
|
|
2643
3299
|
solidJs.createEffect(() => chunk7B52C2XE_js.__async(void 0, null, function* () {
|
|
2644
3300
|
const newFilter = chunk7B52C2XE_js.__spreadValues({}, props.options());
|
|
2645
|
-
if (
|
|
3301
|
+
if (chunkMKUNHEMT_js.isSameFilter(filter, newFilter)) {
|
|
2646
3302
|
return;
|
|
2647
3303
|
}
|
|
2648
3304
|
novu.notifications.clearCache();
|
|
@@ -2702,7 +3358,7 @@ var useReadAll = (props) => {
|
|
|
2702
3358
|
};
|
|
2703
3359
|
|
|
2704
3360
|
// src/ui/components/elements/Header/MoreActionsOptions.tsx
|
|
2705
|
-
var _tmpl$
|
|
3361
|
+
var _tmpl$43 = /* @__PURE__ */ web.template(`<span>`);
|
|
2706
3362
|
var iconKeyToComponentMap = {
|
|
2707
3363
|
markAsRead: MarkAsRead,
|
|
2708
3364
|
markAsArchived: MarkAsArchived,
|
|
@@ -2772,7 +3428,7 @@ var ActionsItem = (props) => {
|
|
|
2772
3428
|
});
|
|
2773
3429
|
}
|
|
2774
3430
|
}), (() => {
|
|
2775
|
-
var _el$ = _tmpl$
|
|
3431
|
+
var _el$ = _tmpl$43();
|
|
2776
3432
|
web.insert(_el$, () => t(props.localizationKey));
|
|
2777
3433
|
web.effect((_p$) => {
|
|
2778
3434
|
var _v$ = props.localizationKey, _v$2 = style("moreActions__dropdownItemLabel", "nt-leading-none");
|
|
@@ -2838,14 +3494,14 @@ var MoreActionsDropdown = () => {
|
|
|
2838
3494
|
};
|
|
2839
3495
|
|
|
2840
3496
|
// src/ui/components/elements/Header/ActionsContainer.tsx
|
|
2841
|
-
var _tmpl$
|
|
3497
|
+
var _tmpl$44 = /* @__PURE__ */ web.template(`<div>`);
|
|
2842
3498
|
var ActionsContainer = (props) => {
|
|
2843
3499
|
const style = useStyle();
|
|
2844
3500
|
const cogsIconClass = style("icon", "nt-size-5", {
|
|
2845
3501
|
iconKey: "cogs"
|
|
2846
3502
|
});
|
|
2847
3503
|
return (() => {
|
|
2848
|
-
var _el$ = _tmpl$
|
|
3504
|
+
var _el$ = _tmpl$44();
|
|
2849
3505
|
web.insert(_el$, web.createComponent(MoreActionsDropdown, {}), null);
|
|
2850
3506
|
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
2851
3507
|
get when() {
|
|
@@ -2877,11 +3533,11 @@ var ActionsContainer = (props) => {
|
|
|
2877
3533
|
};
|
|
2878
3534
|
|
|
2879
3535
|
// src/ui/components/elements/Header/Header.tsx
|
|
2880
|
-
var _tmpl$
|
|
3536
|
+
var _tmpl$45 = /* @__PURE__ */ web.template(`<div>`);
|
|
2881
3537
|
var Header = (props) => {
|
|
2882
3538
|
const style = useStyle();
|
|
2883
3539
|
return (() => {
|
|
2884
|
-
var _el$ = _tmpl$
|
|
3540
|
+
var _el$ = _tmpl$45();
|
|
2885
3541
|
web.insert(_el$, web.createComponent(StatusDropdown, {}), null);
|
|
2886
3542
|
web.insert(_el$, web.createComponent(ActionsContainer, {
|
|
2887
3543
|
get showPreferences() {
|
|
@@ -2892,7 +3548,7 @@ var Header = (props) => {
|
|
|
2892
3548
|
return _el$;
|
|
2893
3549
|
})();
|
|
2894
3550
|
};
|
|
2895
|
-
var _tmpl$
|
|
3551
|
+
var _tmpl$46 = /* @__PURE__ */ web.template(`<div>`);
|
|
2896
3552
|
var Root = (props) => {
|
|
2897
3553
|
const [_, rest] = solidJs.splitProps(props, ["class"]);
|
|
2898
3554
|
const {
|
|
@@ -2908,7 +3564,7 @@ var Root = (props) => {
|
|
|
2908
3564
|
},
|
|
2909
3565
|
children: new Comment(" Powered by Novu - https://novu.co ")
|
|
2910
3566
|
}), (() => {
|
|
2911
|
-
var _el$ = _tmpl$
|
|
3567
|
+
var _el$ = _tmpl$46();
|
|
2912
3568
|
web.spread(_el$, web.mergeProps({
|
|
2913
3569
|
get id() {
|
|
2914
3570
|
return `novu-root-${id()}`;
|
|
@@ -2920,15 +3576,15 @@ var Root = (props) => {
|
|
|
2920
3576
|
return _el$;
|
|
2921
3577
|
})()];
|
|
2922
3578
|
};
|
|
2923
|
-
var _tmpl$
|
|
3579
|
+
var _tmpl$47 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 14 14"><path fill=currentColor d="M2.8 8.575V5.162a2.362 2.362 0 1 1 4.725 0v3.675a1.313 1.313 0 1 0 2.625 0V5.335a1.575 1.575 0 1 1 1.05 0v3.502a2.362 2.362 0 1 1-4.725 0V5.162a1.312 1.312 0 1 0-2.625 0v3.413h1.575l-2.1 2.625-2.1-2.625H2.8Z"></path><path fill=url(#a) d="M2.8 8.575V5.162a2.362 2.362 0 1 1 4.725 0v3.675a1.313 1.313 0 1 0 2.625 0V5.335a1.575 1.575 0 1 1 1.05 0v3.502a2.362 2.362 0 1 1-4.725 0V5.162a1.312 1.312 0 1 0-2.625 0v3.413h1.575l-2.1 2.625-2.1-2.625H2.8Z"></path><defs><linearGradient id=a x1=1.225 x2=12.251 y1=6.722 y2=6.779 gradientUnits=userSpaceOnUse><stop stop-color=currentColor></stop><stop offset=1 stop-color=currentColor>`);
|
|
2924
3580
|
var RouteFill = (props) => {
|
|
2925
3581
|
return (() => {
|
|
2926
|
-
var _el$ = _tmpl$
|
|
3582
|
+
var _el$ = _tmpl$47();
|
|
2927
3583
|
web.spread(_el$, props, true, true);
|
|
2928
3584
|
return _el$;
|
|
2929
3585
|
})();
|
|
2930
3586
|
};
|
|
2931
|
-
var _tmpl$
|
|
3587
|
+
var _tmpl$48 = /* @__PURE__ */ web.template(`<div><div>`);
|
|
2932
3588
|
var isInterpolateSizeSupported = () => {
|
|
2933
3589
|
return CSS.supports("interpolate-size", "allow-keywords");
|
|
2934
3590
|
};
|
|
@@ -2961,7 +3617,7 @@ var Collapsible = (props) => {
|
|
|
2961
3617
|
return props.open ? `${scrollHeight()}px` : "0px";
|
|
2962
3618
|
};
|
|
2963
3619
|
return (() => {
|
|
2964
|
-
var _el$ = _tmpl$
|
|
3620
|
+
var _el$ = _tmpl$48(), _el$2 = _el$.firstChild;
|
|
2965
3621
|
web.spread(_el$, web.mergeProps({
|
|
2966
3622
|
get ["class"]() {
|
|
2967
3623
|
return style("collapsible", props.class);
|
|
@@ -2981,7 +3637,7 @@ var Collapsible = (props) => {
|
|
|
2981
3637
|
return _el$;
|
|
2982
3638
|
})();
|
|
2983
3639
|
};
|
|
2984
|
-
var _tmpl$
|
|
3640
|
+
var _tmpl$49 = /* @__PURE__ */ web.template(`<label><input type=checkbox class=nt-sr-only><div>`);
|
|
2985
3641
|
var Switch = (props) => {
|
|
2986
3642
|
const style = useStyle();
|
|
2987
3643
|
const handleChange = () => {
|
|
@@ -3007,7 +3663,7 @@ var Switch = (props) => {
|
|
|
3007
3663
|
const state = () => props.state;
|
|
3008
3664
|
const disabled = () => props.disabled;
|
|
3009
3665
|
return (() => {
|
|
3010
|
-
var _el$ = _tmpl$
|
|
3666
|
+
var _el$ = _tmpl$49(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
3011
3667
|
_el$2.addEventListener("change", handleChange);
|
|
3012
3668
|
web.effect((_p$) => {
|
|
3013
3669
|
var _v$ = style("channelSwitch", cn("nt-relative nt-inline-flex nt-cursor-pointer nt-items-center", {
|
|
@@ -3033,7 +3689,7 @@ var Switch = (props) => {
|
|
|
3033
3689
|
};
|
|
3034
3690
|
|
|
3035
3691
|
// src/ui/components/elements/Preferences/ChannelRow.tsx
|
|
3036
|
-
var _tmpl$
|
|
3692
|
+
var _tmpl$50 = /* @__PURE__ */ web.template(`<div><div><div></div><span></span></div><div>`);
|
|
3037
3693
|
var ChannelRow = (props) => {
|
|
3038
3694
|
const style = useStyle();
|
|
3039
3695
|
const updatePreference = (enabled) => chunk7B52C2XE_js.__async(void 0, null, function* () {
|
|
@@ -3047,7 +3703,7 @@ var ChannelRow = (props) => {
|
|
|
3047
3703
|
const state = () => props.channel.state;
|
|
3048
3704
|
const channel = () => props.channel.channel;
|
|
3049
3705
|
return (() => {
|
|
3050
|
-
var _el$ = _tmpl$
|
|
3706
|
+
var _el$ = _tmpl$50(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
|
|
3051
3707
|
web.insert(_el$3, web.createComponent(ChannelIcon, {
|
|
3052
3708
|
appearanceKey: "channel__icon",
|
|
3053
3709
|
get channel() {
|
|
@@ -3170,8 +3826,8 @@ var getLabel = (channel) => {
|
|
|
3170
3826
|
};
|
|
3171
3827
|
|
|
3172
3828
|
// src/ui/components/elements/Preferences/PreferencesRow.tsx
|
|
3173
|
-
var _tmpl$
|
|
3174
|
-
var _tmpl$
|
|
3829
|
+
var _tmpl$51 = /* @__PURE__ */ web.template(`<div>`);
|
|
3830
|
+
var _tmpl$213 = /* @__PURE__ */ web.template(`<div><div><div><div><span></span></div></div><span>`);
|
|
3175
3831
|
var _tmpl$310 = /* @__PURE__ */ web.template(`<span>`);
|
|
3176
3832
|
var iconKeyToComponentMap2 = {
|
|
3177
3833
|
cogs: Cogs,
|
|
@@ -3205,7 +3861,7 @@ var PreferencesRow = (props) => {
|
|
|
3205
3861
|
return channels().length > 0;
|
|
3206
3862
|
},
|
|
3207
3863
|
get children() {
|
|
3208
|
-
var _el$ = _tmpl$
|
|
3864
|
+
var _el$ = _tmpl$213(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$3.nextSibling;
|
|
3209
3865
|
_el$2.$$click = () => {
|
|
3210
3866
|
setIsOpenChannels((prev) => !prev);
|
|
3211
3867
|
};
|
|
@@ -3253,7 +3909,7 @@ var PreferencesRow = (props) => {
|
|
|
3253
3909
|
return isOpenChannels();
|
|
3254
3910
|
},
|
|
3255
3911
|
get children() {
|
|
3256
|
-
var _el$7 = _tmpl$
|
|
3912
|
+
var _el$7 = _tmpl$51();
|
|
3257
3913
|
web.insert(_el$7, web.createComponent(solidJs.Index, {
|
|
3258
3914
|
get each() {
|
|
3259
3915
|
return channels();
|
|
@@ -3326,19 +3982,19 @@ var WorkflowDescription = (props) => {
|
|
|
3326
3982
|
return channels.map((c, index) => [c, web.memo(() => index < channels.length - 1 && ", ")]);
|
|
3327
3983
|
};
|
|
3328
3984
|
return (() => {
|
|
3329
|
-
var _el$9 = _tmpl$
|
|
3985
|
+
var _el$9 = _tmpl$51();
|
|
3330
3986
|
web.insert(_el$9, channelNames);
|
|
3331
3987
|
web.effect(() => web.className(_el$9, style(props.appearanceKey, cn("nt-text-sm nt-text-foreground-alpha-600 nt-text-start", props.class))));
|
|
3332
3988
|
return _el$9;
|
|
3333
3989
|
})();
|
|
3334
3990
|
};
|
|
3335
3991
|
web.delegateEvents(["click"]);
|
|
3336
|
-
var _tmpl$
|
|
3337
|
-
var _tmpl$
|
|
3992
|
+
var _tmpl$53 = /* @__PURE__ */ web.template(`<div>`);
|
|
3993
|
+
var _tmpl$214 = /* @__PURE__ */ web.template(`<div><div></div><div>`);
|
|
3338
3994
|
var SkeletonText = (props) => {
|
|
3339
3995
|
const style = useStyle();
|
|
3340
3996
|
return (() => {
|
|
3341
|
-
var _el$ = _tmpl$
|
|
3997
|
+
var _el$ = _tmpl$53();
|
|
3342
3998
|
web.effect(() => web.className(_el$, style(props.appearanceKey, cn("nt-w-full nt-h-3 nt-rounded nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class))));
|
|
3343
3999
|
return _el$;
|
|
3344
4000
|
})();
|
|
@@ -3346,7 +4002,7 @@ var SkeletonText = (props) => {
|
|
|
3346
4002
|
var SkeletonAvatar = (props) => {
|
|
3347
4003
|
const style = useStyle();
|
|
3348
4004
|
return (() => {
|
|
3349
|
-
var _el$2 = _tmpl$
|
|
4005
|
+
var _el$2 = _tmpl$53();
|
|
3350
4006
|
web.effect(() => web.className(_el$2, style(props.appearanceKey, cn("nt-size-8 nt-rounded-lg nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent", props.class))));
|
|
3351
4007
|
return _el$2;
|
|
3352
4008
|
})();
|
|
@@ -3354,7 +4010,7 @@ var SkeletonAvatar = (props) => {
|
|
|
3354
4010
|
var SkeletonSwitch = (props) => {
|
|
3355
4011
|
const style = useStyle();
|
|
3356
4012
|
return (() => {
|
|
3357
|
-
var _el$3 = _tmpl$
|
|
4013
|
+
var _el$3 = _tmpl$214(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
|
|
3358
4014
|
web.effect((_p$) => {
|
|
3359
4015
|
var _v$ = style(props.appearanceKey, cn("nt-relative nt-inline-flex nt-items-center", props.class)), _v$2 = style(props.appearanceKey, "nt-h-4 nt-w-7 nt-rounded-full nt-bg-gradient-to-r nt-from-foreground-alpha-50 nt-to-transparent"), _v$3 = style(props.thumbAppearanceKey, "nt-absolute nt-top-0.5 nt-left-0.5 nt-size-3 nt-rounded-full nt-bg-background nt-shadow");
|
|
3360
4016
|
_v$ !== _p$.e && web.className(_el$3, _p$.e = _v$);
|
|
@@ -3371,7 +4027,7 @@ var SkeletonSwitch = (props) => {
|
|
|
3371
4027
|
};
|
|
3372
4028
|
|
|
3373
4029
|
// src/ui/components/elements/Preferences/PreferencesListSkeleton.tsx
|
|
3374
|
-
var _tmpl$
|
|
4030
|
+
var _tmpl$54 = /* @__PURE__ */ web.template(`<div>`);
|
|
3375
4031
|
var channelIcons = [InApp, Email, Sms, Push, Chat];
|
|
3376
4032
|
var PreferencesListSkeleton = (props) => {
|
|
3377
4033
|
const style = useStyle();
|
|
@@ -3379,7 +4035,7 @@ var PreferencesListSkeleton = (props) => {
|
|
|
3379
4035
|
t
|
|
3380
4036
|
} = useLocalization();
|
|
3381
4037
|
return (() => {
|
|
3382
|
-
var _el$ = _tmpl$
|
|
4038
|
+
var _el$ = _tmpl$54();
|
|
3383
4039
|
web.insert(_el$, web.createComponent(Motion.div, {
|
|
3384
4040
|
get animate() {
|
|
3385
4041
|
return {
|
|
@@ -3421,7 +4077,7 @@ var PreferencesListSkeleton = (props) => {
|
|
|
3421
4077
|
return style("preferencesList__skeletonIcon", "nt-size-8 nt-p-2 nt-rounded-lg nt-bg-neutral-alpha-100");
|
|
3422
4078
|
}
|
|
3423
4079
|
}), (() => {
|
|
3424
|
-
var _el$3 = _tmpl$
|
|
4080
|
+
var _el$3 = _tmpl$54();
|
|
3425
4081
|
web.insert(_el$3, web.createComponent(SkeletonText, {
|
|
3426
4082
|
appearanceKey: "notificationList__skeletonText",
|
|
3427
4083
|
"class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
|
|
@@ -3439,7 +4095,7 @@ var PreferencesListSkeleton = (props) => {
|
|
|
3439
4095
|
}
|
|
3440
4096
|
});
|
|
3441
4097
|
})), (() => {
|
|
3442
|
-
var _el$2 = _tmpl$
|
|
4098
|
+
var _el$2 = _tmpl$54();
|
|
3443
4099
|
web.effect(() => web.className(_el$2, style("notificationListEmptyNoticeOverlay", "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background")));
|
|
3444
4100
|
return _el$2;
|
|
3445
4101
|
})()];
|
|
@@ -3525,26 +4181,26 @@ var DefaultPreferences = (props) => {
|
|
|
3525
4181
|
}
|
|
3526
4182
|
});
|
|
3527
4183
|
};
|
|
3528
|
-
var _tmpl$
|
|
4184
|
+
var _tmpl$55 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 14 14"><path fill=currentColor d="M5.95 1.75c.29 0 .525.235.525.525v2.1c0 .29-.235.525-.525.525H4.9v1.05h2.625v-.525c0-.29.235-.525.525-.525h3.15c.29 0 .525.235.525.525v2.1c0 .29-.235.525-.525.525H8.05a.525.525 0 0 1-.525-.525V7H4.9v3.15h2.625v-.525c0-.29.235-.525.525-.525h3.15c.29 0 .525.235.525.525v2.1c0 .29-.235.525-.525.525H8.05a.525.525 0 0 1-.525-.525V11.2h-3.15a.525.525 0 0 1-.525-.525V4.9H2.8a.525.525 0 0 1-.525-.525v-2.1c0-.29.235-.525.525-.525h3.15Zm4.725 8.4h-2.1v1.05h2.1v-1.05Zm0-4.2h-2.1V7h2.1V5.95ZM5.425 2.8h-2.1v1.05h2.1V2.8Z"></path><path fill=url(#a) d="M5.95 1.75c.29 0 .525.235.525.525v2.1c0 .29-.235.525-.525.525H4.9v1.05h2.625v-.525c0-.29.235-.525.525-.525h3.15c.29 0 .525.235.525.525v2.1c0 .29-.235.525-.525.525H8.05a.525.525 0 0 1-.525-.525V7H4.9v3.15h2.625v-.525c0-.29.235-.525.525-.525h3.15c.29 0 .525.235.525.525v2.1c0 .29-.235.525-.525.525H8.05a.525.525 0 0 1-.525-.525V11.2h-3.15a.525.525 0 0 1-.525-.525V4.9H2.8a.525.525 0 0 1-.525-.525v-2.1c0-.29.235-.525.525-.525h3.15Zm4.725 8.4h-2.1v1.05h2.1v-1.05Zm0-4.2h-2.1V7h2.1V5.95ZM5.425 2.8h-2.1v1.05h2.1V2.8Z"></path><defs><linearGradient id=a x1=2.275 x2=11.725 y1=6.982 y2=7.018 gradientUnits=userSpaceOnUse><stop stop-color=currentColor></stop><stop offset=1 stop-color=currentColor>`);
|
|
3529
4185
|
var NodeTree = (props) => {
|
|
3530
4186
|
return (() => {
|
|
3531
|
-
var _el$ = _tmpl$
|
|
4187
|
+
var _el$ = _tmpl$55();
|
|
3532
4188
|
web.spread(_el$, props, true, true);
|
|
3533
4189
|
return _el$;
|
|
3534
4190
|
})();
|
|
3535
4191
|
};
|
|
3536
|
-
var _tmpl$
|
|
4192
|
+
var _tmpl$56 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg fill=none viewBox="0 0 16 16"><path fill=currentColor d="M8 13A5 5 0 1 1 8 3a5 5 0 0 1 0 10Zm0-1a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm.5-4.75V9.5H9v1H7v-1h.5V8.25H7v-1h1.5ZM8.75 6a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z">`);
|
|
3537
4193
|
var Info = (props) => {
|
|
3538
4194
|
return (() => {
|
|
3539
|
-
var _el$ = _tmpl$
|
|
4195
|
+
var _el$ = _tmpl$56();
|
|
3540
4196
|
web.spread(_el$, props, true, true);
|
|
3541
4197
|
return _el$;
|
|
3542
4198
|
})();
|
|
3543
4199
|
};
|
|
3544
4200
|
|
|
3545
4201
|
// src/ui/components/elements/Preferences/GroupedPreferencesRow.tsx
|
|
3546
|
-
var _tmpl$
|
|
3547
|
-
var _tmpl$
|
|
4202
|
+
var _tmpl$57 = /* @__PURE__ */ web.template(`<div><div><span data-localization=preferences.group.info></span></div><div>`);
|
|
4203
|
+
var _tmpl$215 = /* @__PURE__ */ web.template(`<div><div><div><span></span></div><div><span>`);
|
|
3548
4204
|
var GroupedPreferencesRow = (props) => {
|
|
3549
4205
|
const style = useStyle();
|
|
3550
4206
|
const {
|
|
@@ -3609,7 +4265,7 @@ var GroupedPreferencesRow = (props) => {
|
|
|
3609
4265
|
return Object.keys(uniqueChannels()).length > 0;
|
|
3610
4266
|
},
|
|
3611
4267
|
get children() {
|
|
3612
|
-
var _el$ = _tmpl$
|
|
4268
|
+
var _el$ = _tmpl$215(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$3.nextSibling, _el$6 = _el$5.firstChild;
|
|
3613
4269
|
_el$2.$$click = () => {
|
|
3614
4270
|
setIsOpened((prev) => !prev);
|
|
3615
4271
|
};
|
|
@@ -3643,7 +4299,7 @@ var GroupedPreferencesRow = (props) => {
|
|
|
3643
4299
|
return isOpened();
|
|
3644
4300
|
},
|
|
3645
4301
|
get children() {
|
|
3646
|
-
var _el$7 = _tmpl$
|
|
4302
|
+
var _el$7 = _tmpl$57(), _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$10 = _el$8.nextSibling;
|
|
3647
4303
|
web.insert(_el$8, web.createComponent(solidJs.Index, {
|
|
3648
4304
|
get each() {
|
|
3649
4305
|
return Object.keys(uniqueChannels());
|
|
@@ -3767,7 +4423,7 @@ var GroupedPreferences = (props) => {
|
|
|
3767
4423
|
};
|
|
3768
4424
|
|
|
3769
4425
|
// src/ui/components/elements/Preferences/Preferences.tsx
|
|
3770
|
-
var _tmpl$
|
|
4426
|
+
var _tmpl$58 = /* @__PURE__ */ web.template(`<div>`);
|
|
3771
4427
|
var Preferences = () => {
|
|
3772
4428
|
var _a;
|
|
3773
4429
|
const novu = useNovu();
|
|
@@ -3854,7 +4510,7 @@ var Preferences = () => {
|
|
|
3854
4510
|
})) != null ? _c : [];
|
|
3855
4511
|
});
|
|
3856
4512
|
return (() => {
|
|
3857
|
-
var _el$ = _tmpl$
|
|
4513
|
+
var _el$ = _tmpl$58();
|
|
3858
4514
|
web.insert(_el$, web.createComponent(PreferencesRow, {
|
|
3859
4515
|
iconKey: "cogs",
|
|
3860
4516
|
get preference() {
|
|
@@ -3894,647 +4550,187 @@ var Preferences = () => {
|
|
|
3894
4550
|
},
|
|
3895
4551
|
get children() {
|
|
3896
4552
|
return web.createComponent(GroupedPreferences, {
|
|
3897
|
-
get groups() {
|
|
3898
|
-
return groupedPreferences();
|
|
3899
|
-
},
|
|
3900
|
-
get loading() {
|
|
3901
|
-
return loading();
|
|
3902
|
-
},
|
|
3903
|
-
updatePreference,
|
|
3904
|
-
bulkUpdatePreferences
|
|
3905
|
-
});
|
|
3906
|
-
}
|
|
3907
|
-
}), null);
|
|
3908
|
-
web.effect(() => web.className(_el$, style("preferencesContainer", "nt-px-3 nt-py-4 nt-flex nt-flex-col nt-gap-1 nt-overflow-y-auto nt-h-full nt-pr-0 [scrollbar-gutter:stable]")));
|
|
3909
|
-
return _el$;
|
|
3910
|
-
})();
|
|
3911
|
-
};
|
|
3912
|
-
var _tmpl$54 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
|
|
3913
|
-
var PreferencesHeader = (props) => {
|
|
3914
|
-
const style = useStyle();
|
|
3915
|
-
const {
|
|
3916
|
-
t
|
|
3917
|
-
} = useLocalization();
|
|
3918
|
-
const arrowLeftIconClass = style("preferencesHeader__back__button__icon", "nt-size-4", {
|
|
3919
|
-
iconKey: "arrowLeft"
|
|
3920
|
-
});
|
|
3921
|
-
return (() => {
|
|
3922
|
-
var _el$ = _tmpl$54(), _el$2 = _el$.firstChild;
|
|
3923
|
-
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
3924
|
-
get when() {
|
|
3925
|
-
return props.navigateToNotifications;
|
|
3926
|
-
},
|
|
3927
|
-
children: (navigateToNotifications) => web.createComponent(Button, {
|
|
3928
|
-
appearanceKey: "preferencesHeader__back__button",
|
|
3929
|
-
"class": "nt-text-foreground-alpha-600",
|
|
3930
|
-
variant: "unstyled",
|
|
3931
|
-
size: "none",
|
|
3932
|
-
get onClick() {
|
|
3933
|
-
return navigateToNotifications();
|
|
3934
|
-
},
|
|
3935
|
-
get children() {
|
|
3936
|
-
return web.createComponent(IconRendererWrapper, {
|
|
3937
|
-
iconKey: "arrowLeft",
|
|
3938
|
-
"class": arrowLeftIconClass,
|
|
3939
|
-
get fallback() {
|
|
3940
|
-
return web.createComponent(ArrowLeft, {
|
|
3941
|
-
"class": arrowLeftIconClass
|
|
3942
|
-
});
|
|
3943
|
-
}
|
|
3944
|
-
});
|
|
3945
|
-
}
|
|
3946
|
-
})
|
|
3947
|
-
}), _el$2);
|
|
3948
|
-
web.insert(_el$2, () => t("preferences.title"));
|
|
3949
|
-
web.effect((_p$) => {
|
|
3950
|
-
var _v$ = style("preferencesHeader", "nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-border-b nt-border-border nt-items-center nt-py-3.5 nt-px-4 nt-gap-2"), _v$2 = style("preferencesHeader__title", "nt-text-base nt-font-medium");
|
|
3951
|
-
_v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
|
|
3952
|
-
_v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
|
|
3953
|
-
return _p$;
|
|
3954
|
-
}, {
|
|
3955
|
-
e: void 0,
|
|
3956
|
-
t: void 0
|
|
3957
|
-
});
|
|
3958
|
-
return _el$;
|
|
3959
|
-
})();
|
|
3960
|
-
};
|
|
3961
|
-
var useTabsDropdown = ({ tabs }) => {
|
|
3962
|
-
const [tabsList, setTabsList] = solidJs.createSignal();
|
|
3963
|
-
const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
|
|
3964
|
-
const [dropdownTabs, setDropdownTabs] = solidJs.createSignal([]);
|
|
3965
|
-
solidJs.onMount(() => {
|
|
3966
|
-
const tabsListEl = tabsList();
|
|
3967
|
-
if (!tabsListEl) return;
|
|
3968
|
-
const tabsElements = [...tabsListEl.querySelectorAll('[role="tab"]')];
|
|
3969
|
-
const observer = new IntersectionObserver(
|
|
3970
|
-
(entries) => {
|
|
3971
|
-
let visibleTabIds = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio === 1).map((entry) => entry.target.id);
|
|
3972
|
-
if (tabsElements.length === visibleTabIds.length) {
|
|
3973
|
-
setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
|
|
3974
|
-
observer.disconnect();
|
|
3975
|
-
return;
|
|
3976
|
-
}
|
|
3977
|
-
visibleTabIds = visibleTabIds.slice(0, -1);
|
|
3978
|
-
setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
|
|
3979
|
-
setDropdownTabs(tabs.filter((tab) => !visibleTabIds.includes(tab.label)));
|
|
3980
|
-
observer.disconnect();
|
|
3981
|
-
},
|
|
3982
|
-
{ root: tabsListEl }
|
|
3983
|
-
);
|
|
3984
|
-
for (const tabElement of tabsElements) {
|
|
3985
|
-
observer.observe(tabElement);
|
|
3986
|
-
}
|
|
3987
|
-
});
|
|
3988
|
-
return { dropdownTabs, setTabsList, visibleTabs };
|
|
3989
|
-
};
|
|
3990
|
-
var _tmpl$55 = /* @__PURE__ */ web.template(`<strong>`);
|
|
3991
|
-
var _tmpl$215 = /* @__PURE__ */ web.template(`<p>`);
|
|
3992
|
-
var Bold = (props) => {
|
|
3993
|
-
const style = useStyle();
|
|
3994
|
-
return (() => {
|
|
3995
|
-
var _el$ = _tmpl$55();
|
|
3996
|
-
web.insert(_el$, () => props.children);
|
|
3997
|
-
web.effect(() => web.className(_el$, style(props.appearanceKey || "strong", "nt-font-semibold")));
|
|
3998
|
-
return _el$;
|
|
3999
|
-
})();
|
|
4000
|
-
};
|
|
4001
|
-
var Text = (props) => props.children;
|
|
4002
|
-
var Markdown = (props) => {
|
|
4003
|
-
const [local, rest] = solidJs.splitProps(props, ["class", "children", "appearanceKey", "strongAppearanceKey"]);
|
|
4004
|
-
const style = useStyle();
|
|
4005
|
-
const tokens = solidJs.createMemo(() => chunkERC62PGI_js.parseMarkdownIntoTokens(local.children));
|
|
4006
|
-
return (() => {
|
|
4007
|
-
var _el$2 = _tmpl$215();
|
|
4008
|
-
web.spread(_el$2, web.mergeProps({
|
|
4009
|
-
get ["class"]() {
|
|
4010
|
-
return style(local.appearanceKey, cn(local.class));
|
|
4011
|
-
}
|
|
4012
|
-
}, rest), false, true);
|
|
4013
|
-
web.insert(_el$2, web.createComponent(solidJs.For, {
|
|
4014
|
-
get each() {
|
|
4015
|
-
return tokens();
|
|
4016
|
-
},
|
|
4017
|
-
children: (token) => {
|
|
4018
|
-
if (token.type === "bold") {
|
|
4019
|
-
return web.createComponent(Bold, {
|
|
4020
|
-
get appearanceKey() {
|
|
4021
|
-
return local.strongAppearanceKey;
|
|
4022
|
-
},
|
|
4023
|
-
get children() {
|
|
4024
|
-
return token.content;
|
|
4025
|
-
}
|
|
4026
|
-
});
|
|
4027
|
-
} else {
|
|
4028
|
-
return web.createComponent(Text, {
|
|
4029
|
-
get children() {
|
|
4030
|
-
return token.content;
|
|
4031
|
-
}
|
|
4032
|
-
});
|
|
4033
|
-
}
|
|
4034
|
-
}
|
|
4035
|
-
}));
|
|
4036
|
-
return _el$2;
|
|
4037
|
-
})();
|
|
4038
|
-
};
|
|
4039
|
-
var Markdown_default = Markdown;
|
|
4040
|
-
var _tmpl$56 = /* @__PURE__ */ web.template(`<span>`);
|
|
4041
|
-
var badgeVariants = classVarianceAuthority.cva(cn("nt-inline-flex nt-flex-row nt-gap-1 nt-items-center"), {
|
|
4042
|
-
variants: {
|
|
4043
|
-
variant: {
|
|
4044
|
-
secondary: "nt-bg-neutral-alpha-50"
|
|
4045
|
-
},
|
|
4046
|
-
size: {
|
|
4047
|
-
default: "nt-px-1 nt-py-px nt-rounded-sm nt-text-xs nt-px-1"
|
|
4048
|
-
}
|
|
4049
|
-
},
|
|
4050
|
-
defaultVariants: {
|
|
4051
|
-
variant: "secondary",
|
|
4052
|
-
size: "default"
|
|
4053
|
-
}
|
|
4054
|
-
});
|
|
4055
|
-
var Badge = (props) => {
|
|
4056
|
-
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
4057
|
-
const style = useStyle();
|
|
4058
|
-
return (() => {
|
|
4059
|
-
var _el$ = _tmpl$56();
|
|
4060
|
-
web.spread(_el$, web.mergeProps({
|
|
4061
|
-
get ["data-variant"]() {
|
|
4062
|
-
return props.variant;
|
|
4063
|
-
},
|
|
4064
|
-
get ["data-size"]() {
|
|
4065
|
-
return props.size;
|
|
4066
|
-
},
|
|
4067
|
-
get ["class"]() {
|
|
4068
|
-
return style(local.appearanceKey || "badge", cn(badgeVariants({
|
|
4069
|
-
variant: props.variant,
|
|
4070
|
-
size: props.size
|
|
4071
|
-
}), local.class));
|
|
4072
|
-
}
|
|
4073
|
-
}, rest), false, false);
|
|
4074
|
-
return _el$;
|
|
4075
|
-
})();
|
|
4076
|
-
};
|
|
4077
|
-
var TooltipContext = solidJs.createContext(void 0);
|
|
4078
|
-
function TooltipRoot(props) {
|
|
4079
|
-
const [reference, setReference] = solidJs.createSignal(null);
|
|
4080
|
-
const [floating, setFloating] = solidJs.createSignal(null);
|
|
4081
|
-
const position = solidFloatingUi.useFloating(reference, floating, {
|
|
4082
|
-
placement: props.placement || "top",
|
|
4083
|
-
strategy: "fixed",
|
|
4084
|
-
whileElementsMounted: dom.autoUpdate,
|
|
4085
|
-
middleware: [dom.offset(10), dom.flip({
|
|
4086
|
-
fallbackPlacements: props.fallbackPlacements || ["bottom"]
|
|
4087
|
-
}), dom.shift()]
|
|
4088
|
-
});
|
|
4089
|
-
const [isOpen, setIsOpen] = useUncontrolledState({
|
|
4090
|
-
value: props.open,
|
|
4091
|
-
fallbackValue: false
|
|
4092
|
-
});
|
|
4093
|
-
return web.createComponent(TooltipContext.Provider, {
|
|
4094
|
-
value: {
|
|
4095
|
-
reference,
|
|
4096
|
-
setReference,
|
|
4097
|
-
floating,
|
|
4098
|
-
setFloating,
|
|
4099
|
-
open: isOpen,
|
|
4100
|
-
setOpen: setIsOpen,
|
|
4101
|
-
floatingStyles: () => {
|
|
4102
|
-
var _a, _b;
|
|
4103
|
-
return {
|
|
4104
|
-
position: position.strategy,
|
|
4105
|
-
top: `${(_a = position.y) != null ? _a : 0}px`,
|
|
4106
|
-
left: `${(_b = position.x) != null ? _b : 0}px`
|
|
4107
|
-
};
|
|
4108
|
-
}
|
|
4109
|
-
},
|
|
4110
|
-
get children() {
|
|
4111
|
-
return props.children;
|
|
4112
|
-
}
|
|
4113
|
-
});
|
|
4114
|
-
}
|
|
4115
|
-
function useTooltip() {
|
|
4116
|
-
const context = solidJs.useContext(TooltipContext);
|
|
4117
|
-
if (!context) {
|
|
4118
|
-
throw new Error("useTooltip must be used within Tooltip.Root component");
|
|
4119
|
-
}
|
|
4120
|
-
return context;
|
|
4121
|
-
}
|
|
4122
|
-
|
|
4123
|
-
// src/ui/components/primitives/Tooltip/TooltipContent.tsx
|
|
4124
|
-
var _tmpl$57 = /* @__PURE__ */ web.template(`<div>`);
|
|
4125
|
-
var tooltipContentVariants = () => "nt-bg-foreground nt-p-2 nt-shadow-tooltip nt-rounded-lg nt-text-background nt-text-xs";
|
|
4126
|
-
var TooltipContentBody = (props) => {
|
|
4127
|
-
const {
|
|
4128
|
-
open,
|
|
4129
|
-
setFloating,
|
|
4130
|
-
floating,
|
|
4131
|
-
floatingStyles
|
|
4132
|
-
} = useTooltip();
|
|
4133
|
-
const {
|
|
4134
|
-
setActive,
|
|
4135
|
-
removeActive
|
|
4136
|
-
} = useFocusManager();
|
|
4137
|
-
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "style"]);
|
|
4138
|
-
const style = useStyle();
|
|
4139
|
-
solidJs.onMount(() => {
|
|
4140
|
-
const floatingEl = floating();
|
|
4141
|
-
setActive(floatingEl);
|
|
4142
|
-
solidJs.onCleanup(() => {
|
|
4143
|
-
removeActive(floatingEl);
|
|
4144
|
-
});
|
|
4145
|
-
});
|
|
4146
|
-
return (() => {
|
|
4147
|
-
var _el$ = _tmpl$57();
|
|
4148
|
-
web.use(setFloating, _el$);
|
|
4149
|
-
web.spread(_el$, web.mergeProps({
|
|
4150
|
-
get ["class"]() {
|
|
4151
|
-
return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tooltipContent", tooltipContentVariants());
|
|
4152
|
-
},
|
|
4153
|
-
get style() {
|
|
4154
|
-
return chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, floatingStyles()), {
|
|
4155
|
-
"z-index": 99999
|
|
4553
|
+
get groups() {
|
|
4554
|
+
return groupedPreferences();
|
|
4555
|
+
},
|
|
4556
|
+
get loading() {
|
|
4557
|
+
return loading();
|
|
4558
|
+
},
|
|
4559
|
+
updatePreference,
|
|
4560
|
+
bulkUpdatePreferences
|
|
4156
4561
|
});
|
|
4157
|
-
},
|
|
4158
|
-
get ["data-open"]() {
|
|
4159
|
-
return open();
|
|
4160
4562
|
}
|
|
4161
|
-
}
|
|
4563
|
+
}), null);
|
|
4564
|
+
web.effect(() => web.className(_el$, style("preferencesContainer", "nt-px-3 nt-py-4 nt-flex nt-flex-col nt-gap-1 nt-overflow-y-auto nt-h-full nt-pr-0 [scrollbar-gutter:stable]")));
|
|
4162
4565
|
return _el$;
|
|
4163
4566
|
})();
|
|
4164
4567
|
};
|
|
4165
|
-
var
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
} = useTooltip();
|
|
4568
|
+
var _tmpl$59 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
|
|
4569
|
+
var PreferencesHeader = (props) => {
|
|
4570
|
+
const style = useStyle();
|
|
4169
4571
|
const {
|
|
4170
|
-
|
|
4171
|
-
} =
|
|
4172
|
-
const
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4572
|
+
t
|
|
4573
|
+
} = useLocalization();
|
|
4574
|
+
const arrowLeftIconClass = style("preferencesHeader__back__button__icon", "nt-size-4", {
|
|
4575
|
+
iconKey: "arrowLeft"
|
|
4576
|
+
});
|
|
4577
|
+
return (() => {
|
|
4578
|
+
var _el$ = _tmpl$59(), _el$2 = _el$.firstChild;
|
|
4579
|
+
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
4580
|
+
get when() {
|
|
4581
|
+
return props.navigateToNotifications;
|
|
4582
|
+
},
|
|
4583
|
+
children: (navigateToNotifications) => web.createComponent(Button, {
|
|
4584
|
+
appearanceKey: "preferencesHeader__back__button",
|
|
4585
|
+
"class": "nt-text-foreground-alpha-600",
|
|
4586
|
+
variant: "unstyled",
|
|
4587
|
+
size: "none",
|
|
4588
|
+
get onClick() {
|
|
4589
|
+
return navigateToNotifications();
|
|
4184
4590
|
},
|
|
4185
4591
|
get children() {
|
|
4186
|
-
return web.createComponent(
|
|
4187
|
-
|
|
4188
|
-
|
|
4592
|
+
return web.createComponent(IconRendererWrapper, {
|
|
4593
|
+
iconKey: "arrowLeft",
|
|
4594
|
+
"class": arrowLeftIconClass,
|
|
4595
|
+
get fallback() {
|
|
4596
|
+
return web.createComponent(ArrowLeft, {
|
|
4597
|
+
"class": arrowLeftIconClass
|
|
4598
|
+
});
|
|
4189
4599
|
}
|
|
4190
4600
|
});
|
|
4191
4601
|
}
|
|
4192
|
-
})
|
|
4193
|
-
}
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
var
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "onMouseEnter", "onMouseLeave", "ref"]);
|
|
4204
|
-
const handleMouseEnter = (e) => {
|
|
4205
|
-
if (typeof local.onMouseEnter === "function") {
|
|
4206
|
-
local.onMouseEnter(e);
|
|
4207
|
-
}
|
|
4208
|
-
setOpen(true);
|
|
4209
|
-
};
|
|
4210
|
-
const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
|
|
4211
|
-
const handleMouseLeave = (e) => {
|
|
4212
|
-
if (typeof local.onMouseLeave === "function") {
|
|
4213
|
-
local.onMouseLeave(e);
|
|
4214
|
-
}
|
|
4215
|
-
setOpen(false);
|
|
4216
|
-
};
|
|
4217
|
-
if (local.asChild) {
|
|
4218
|
-
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
4219
|
-
get component() {
|
|
4220
|
-
return local.asChild;
|
|
4221
|
-
},
|
|
4222
|
-
ref(r$) {
|
|
4223
|
-
var _ref$ = ref();
|
|
4224
|
-
typeof _ref$ === "function" && _ref$(r$);
|
|
4225
|
-
},
|
|
4226
|
-
onMouseEnter: handleMouseEnter,
|
|
4227
|
-
onMouseLeave: handleMouseLeave
|
|
4228
|
-
}, rest));
|
|
4229
|
-
}
|
|
4230
|
-
return (() => {
|
|
4231
|
-
var _el$ = _tmpl$58();
|
|
4232
|
-
_el$.addEventListener("mouseleave", () => {
|
|
4233
|
-
setOpen(false);
|
|
4234
|
-
});
|
|
4235
|
-
_el$.addEventListener("mouseenter", () => {
|
|
4236
|
-
setOpen(true);
|
|
4602
|
+
})
|
|
4603
|
+
}), _el$2);
|
|
4604
|
+
web.insert(_el$2, () => t("preferences.title"));
|
|
4605
|
+
web.effect((_p$) => {
|
|
4606
|
+
var _v$ = style("preferencesHeader", "nt-flex nt-bg-neutral-alpha-25 nt-shrink-0 nt-border-b nt-border-border nt-items-center nt-py-3.5 nt-px-4 nt-gap-2"), _v$2 = style("preferencesHeader__title", "nt-text-base nt-font-medium");
|
|
4607
|
+
_v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
|
|
4608
|
+
_v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
|
|
4609
|
+
return _p$;
|
|
4610
|
+
}, {
|
|
4611
|
+
e: void 0,
|
|
4612
|
+
t: void 0
|
|
4237
4613
|
});
|
|
4238
|
-
var _ref$2 = ref();
|
|
4239
|
-
typeof _ref$2 === "function" && web.use(_ref$2, _el$);
|
|
4240
|
-
web.spread(_el$, web.mergeProps({
|
|
4241
|
-
get ["class"]() {
|
|
4242
|
-
return style(local.appearanceKey || "tooltipTrigger");
|
|
4243
|
-
}
|
|
4244
|
-
}, rest), false, true);
|
|
4245
|
-
web.insert(_el$, () => props.children);
|
|
4246
4614
|
return _el$;
|
|
4247
4615
|
})();
|
|
4248
4616
|
};
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
var DatePickerContext = solidJs.createContext({
|
|
4265
|
-
currentDate: () => /* @__PURE__ */ new Date(),
|
|
4266
|
-
setCurrentDate: () => {
|
|
4267
|
-
},
|
|
4268
|
-
viewMonth: () => /* @__PURE__ */ new Date(),
|
|
4269
|
-
setViewMonth: () => {
|
|
4270
|
-
},
|
|
4271
|
-
selectedDate: () => null,
|
|
4272
|
-
setSelectedDate: () => {
|
|
4273
|
-
},
|
|
4274
|
-
maxDays: () => 0
|
|
4275
|
-
});
|
|
4276
|
-
var useDatePicker = () => solidJs.useContext(DatePickerContext);
|
|
4277
|
-
var DatePicker = (props) => {
|
|
4278
|
-
const [local, rest] = solidJs.splitProps(props, ["children", "value", "onDateChange", "class", "maxDays"]);
|
|
4279
|
-
const style = useStyle();
|
|
4280
|
-
const today = /* @__PURE__ */ new Date();
|
|
4281
|
-
today.setHours(0, 0, 0, 0);
|
|
4282
|
-
const [currentDate, setCurrentDate] = solidJs.createSignal(today);
|
|
4283
|
-
const [viewMonth, setViewMonth] = solidJs.createSignal(today);
|
|
4284
|
-
const [selectedDate, setSelectedDate] = solidJs.createSignal(local.value ? new Date(local.value) : null);
|
|
4285
|
-
const handleDateSelect = (date) => {
|
|
4286
|
-
setSelectedDate(date);
|
|
4287
|
-
if (local.onDateChange) {
|
|
4288
|
-
local.onDateChange(date);
|
|
4289
|
-
}
|
|
4290
|
-
};
|
|
4291
|
-
return web.createComponent(DatePickerContext.Provider, {
|
|
4292
|
-
value: {
|
|
4293
|
-
currentDate,
|
|
4294
|
-
setCurrentDate,
|
|
4295
|
-
viewMonth,
|
|
4296
|
-
setViewMonth,
|
|
4297
|
-
selectedDate,
|
|
4298
|
-
setSelectedDate: handleDateSelect,
|
|
4299
|
-
maxDays: () => props.maxDays
|
|
4300
|
-
},
|
|
4301
|
-
get children() {
|
|
4302
|
-
var _el$ = _tmpl$59();
|
|
4303
|
-
web.spread(_el$, web.mergeProps({
|
|
4304
|
-
get ["class"]() {
|
|
4305
|
-
return style("datePicker", cn("nt-p-2", local.class));
|
|
4617
|
+
var useTabsDropdown = ({ tabs }) => {
|
|
4618
|
+
const [tabsList, setTabsList] = solidJs.createSignal();
|
|
4619
|
+
const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
|
|
4620
|
+
const [dropdownTabs, setDropdownTabs] = solidJs.createSignal([]);
|
|
4621
|
+
solidJs.onMount(() => {
|
|
4622
|
+
const tabsListEl = tabsList();
|
|
4623
|
+
if (!tabsListEl) return;
|
|
4624
|
+
const tabsElements = [...tabsListEl.querySelectorAll('[role="tab"]')];
|
|
4625
|
+
const observer = new IntersectionObserver(
|
|
4626
|
+
(entries) => {
|
|
4627
|
+
let visibleTabIds = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio === 1).map((entry) => entry.target.id);
|
|
4628
|
+
if (tabsElements.length === visibleTabIds.length) {
|
|
4629
|
+
setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
|
|
4630
|
+
observer.disconnect();
|
|
4631
|
+
return;
|
|
4306
4632
|
}
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4633
|
+
visibleTabIds = visibleTabIds.slice(0, -1);
|
|
4634
|
+
setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
|
|
4635
|
+
setDropdownTabs(tabs.filter((tab) => !visibleTabIds.includes(tab.label)));
|
|
4636
|
+
observer.disconnect();
|
|
4637
|
+
},
|
|
4638
|
+
{ root: tabsListEl }
|
|
4639
|
+
);
|
|
4640
|
+
for (const tabElement of tabsElements) {
|
|
4641
|
+
observer.observe(tabElement);
|
|
4310
4642
|
}
|
|
4311
4643
|
});
|
|
4312
|
-
};
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
const
|
|
4330
|
-
const date = new Date(viewMonth());
|
|
4331
|
-
date.setMonth(date.getMonth() - 1);
|
|
4332
|
-
const currentMonth = currentDate();
|
|
4333
|
-
if (date.getFullYear() < currentMonth.getFullYear() || date.getFullYear() === currentMonth.getFullYear() && date.getMonth() < currentMonth.getMonth()) {
|
|
4334
|
-
return;
|
|
4335
|
-
}
|
|
4336
|
-
setViewMonth(date);
|
|
4337
|
-
};
|
|
4338
|
-
const handleNextMonth = () => {
|
|
4339
|
-
const date = new Date(viewMonth());
|
|
4340
|
-
date.setMonth(date.getMonth() + 1);
|
|
4341
|
-
const maxDaysValue = maxDays();
|
|
4342
|
-
if (maxDaysValue > 0) {
|
|
4343
|
-
const maxDate = new Date(currentDate());
|
|
4344
|
-
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
4345
|
-
if (date.getFullYear() > maxDate.getFullYear() || date.getFullYear() === maxDate.getFullYear() && date.getMonth() > maxDate.getMonth()) {
|
|
4346
|
-
return;
|
|
4347
|
-
}
|
|
4348
|
-
}
|
|
4349
|
-
setViewMonth(date);
|
|
4350
|
-
};
|
|
4351
|
-
const isPrevDisabled = () => {
|
|
4352
|
-
const current = currentDate();
|
|
4353
|
-
const view = viewMonth();
|
|
4354
|
-
return view.getFullYear() === current.getFullYear() && view.getMonth() === current.getMonth();
|
|
4355
|
-
};
|
|
4356
|
-
const isNextDisabled = () => {
|
|
4357
|
-
const maxDaysValue = maxDays();
|
|
4358
|
-
if (maxDaysValue === 0) return false;
|
|
4359
|
-
const view = viewMonth();
|
|
4360
|
-
const maxDate = new Date(currentDate());
|
|
4361
|
-
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
4362
|
-
return view.getFullYear() === maxDate.getFullYear() && view.getMonth() === maxDate.getMonth();
|
|
4363
|
-
};
|
|
4644
|
+
return { dropdownTabs, setTabsList, visibleTabs };
|
|
4645
|
+
};
|
|
4646
|
+
var _tmpl$60 = /* @__PURE__ */ web.template(`<strong>`);
|
|
4647
|
+
var _tmpl$216 = /* @__PURE__ */ web.template(`<p>`);
|
|
4648
|
+
var Bold = (props) => {
|
|
4649
|
+
const style = useStyle();
|
|
4650
|
+
return (() => {
|
|
4651
|
+
var _el$ = _tmpl$60();
|
|
4652
|
+
web.insert(_el$, () => props.children);
|
|
4653
|
+
web.effect(() => web.className(_el$, style(props.appearanceKey || "strong", "nt-font-semibold")));
|
|
4654
|
+
return _el$;
|
|
4655
|
+
})();
|
|
4656
|
+
};
|
|
4657
|
+
var Text = (props) => props.children;
|
|
4658
|
+
var Markdown = (props) => {
|
|
4659
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "children", "appearanceKey", "strongAppearanceKey"]);
|
|
4660
|
+
const style = useStyle();
|
|
4661
|
+
const tokens = solidJs.createMemo(() => chunkERC62PGI_js.parseMarkdownIntoTokens(local.children));
|
|
4364
4662
|
return (() => {
|
|
4365
|
-
var _el$2 = _tmpl$216()
|
|
4663
|
+
var _el$2 = _tmpl$216();
|
|
4366
4664
|
web.spread(_el$2, web.mergeProps({
|
|
4367
4665
|
get ["class"]() {
|
|
4368
|
-
return style(local.appearanceKey
|
|
4666
|
+
return style(local.appearanceKey, cn(local.class));
|
|
4369
4667
|
}
|
|
4370
4668
|
}, rest), false, true);
|
|
4371
|
-
web.insert(_el$2, web.createComponent(
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
onClick: (e) => {
|
|
4375
|
-
e.stopPropagation();
|
|
4376
|
-
handlePrevMonth();
|
|
4377
|
-
},
|
|
4378
|
-
get disabled() {
|
|
4379
|
-
return isPrevDisabled();
|
|
4669
|
+
web.insert(_el$2, web.createComponent(solidJs.For, {
|
|
4670
|
+
get each() {
|
|
4671
|
+
return tokens();
|
|
4380
4672
|
},
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
}
|
|
4390
|
-
}
|
|
4391
|
-
}
|
|
4673
|
+
children: (token) => {
|
|
4674
|
+
if (token.type === "bold") {
|
|
4675
|
+
return web.createComponent(Bold, {
|
|
4676
|
+
get appearanceKey() {
|
|
4677
|
+
return local.strongAppearanceKey;
|
|
4678
|
+
},
|
|
4679
|
+
get children() {
|
|
4680
|
+
return token.content;
|
|
4681
|
+
}
|
|
4682
|
+
});
|
|
4683
|
+
} else {
|
|
4684
|
+
return web.createComponent(Text, {
|
|
4685
|
+
get children() {
|
|
4686
|
+
return token.content;
|
|
4687
|
+
}
|
|
4688
|
+
});
|
|
4689
|
+
}
|
|
4392
4690
|
}
|
|
4393
|
-
}), _el$3);
|
|
4394
|
-
web.insert(_el$3, () => viewMonth().toLocaleDateString("en-US", {
|
|
4395
|
-
month: "long",
|
|
4396
|
-
year: "numeric"
|
|
4397
4691
|
}));
|
|
4398
|
-
web.insert(_el$2, web.createComponent(Button, {
|
|
4399
|
-
appearanceKey: "datePickerControlNextTrigger",
|
|
4400
|
-
variant: "ghost",
|
|
4401
|
-
onClick: (e) => {
|
|
4402
|
-
e.stopPropagation();
|
|
4403
|
-
handleNextMonth();
|
|
4404
|
-
},
|
|
4405
|
-
get disabled() {
|
|
4406
|
-
return isNextDisabled();
|
|
4407
|
-
},
|
|
4408
|
-
"class": "nt-flex nt-justify-center nt-items-center nt-gap-0.5 nt-w-5 nt-h-5 nt-p-0 nt-rounded-md nt-bg-background nt-shadow-[0px_1px_2px_0px_rgba(10,13,20,0.03)]",
|
|
4409
|
-
get children() {
|
|
4410
|
-
return web.createComponent(IconRendererWrapper, {
|
|
4411
|
-
iconKey: "arrowRight",
|
|
4412
|
-
"class": nextIconClass,
|
|
4413
|
-
get fallback() {
|
|
4414
|
-
return web.createComponent(ArrowRight, {
|
|
4415
|
-
"class": nextIconClass
|
|
4416
|
-
});
|
|
4417
|
-
}
|
|
4418
|
-
});
|
|
4419
|
-
}
|
|
4420
|
-
}), null);
|
|
4421
|
-
web.effect(() => web.className(_el$3, style("datePickerHeaderMonth", "nt-text-sm nt-font-medium nt-text-foreground-alpha-700")));
|
|
4422
4692
|
return _el$2;
|
|
4423
4693
|
})();
|
|
4424
4694
|
};
|
|
4425
|
-
var
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
currentDate,
|
|
4432
|
-
maxDays
|
|
4433
|
-
} = useDatePicker();
|
|
4434
|
-
const {
|
|
4435
|
-
t
|
|
4436
|
-
} = useLocalization();
|
|
4437
|
-
const isCurrentMonth = props.date.getMonth() === viewMonth().getMonth();
|
|
4438
|
-
const isPastDate = () => {
|
|
4439
|
-
const today = currentDate();
|
|
4440
|
-
return props.date < today;
|
|
4441
|
-
};
|
|
4442
|
-
const isFutureDate = () => {
|
|
4443
|
-
const maxDaysValue = maxDays();
|
|
4444
|
-
if (maxDaysValue === 0) return false;
|
|
4445
|
-
const maxDate = new Date(currentDate());
|
|
4446
|
-
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
4447
|
-
return props.date > maxDate;
|
|
4448
|
-
};
|
|
4449
|
-
const isDisabled = !isCurrentMonth || isPastDate() || isFutureDate();
|
|
4450
|
-
const isExceedingLimit = () => {
|
|
4451
|
-
return isCurrentMonth && isFutureDate();
|
|
4452
|
-
};
|
|
4453
|
-
const buttonElement = web.createComponent(Button, web.mergeProps({
|
|
4454
|
-
appearanceKey: "datePickerCalendarDay__button",
|
|
4455
|
-
variant: "ghost",
|
|
4456
|
-
disabled: isDisabled,
|
|
4457
|
-
onClick: (e) => {
|
|
4458
|
-
e.stopPropagation();
|
|
4459
|
-
setSelectedDate(local.date);
|
|
4695
|
+
var Markdown_default = Markdown;
|
|
4696
|
+
var _tmpl$61 = /* @__PURE__ */ web.template(`<span>`);
|
|
4697
|
+
var badgeVariants = classVarianceAuthority.cva(cn("nt-inline-flex nt-flex-row nt-gap-1 nt-items-center"), {
|
|
4698
|
+
variants: {
|
|
4699
|
+
variant: {
|
|
4700
|
+
secondary: "nt-bg-neutral-alpha-50"
|
|
4460
4701
|
},
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
return cn("nt-size-8 nt-w-full nt-rounded-md nt-flex nt-items-center nt-justify-center", {
|
|
4464
|
-
"nt-text-muted-foreground disabled:nt-opacity-20": !isCurrentMonth || isPastDate(),
|
|
4465
|
-
"nt-text-foreground-alpha-700": isCurrentMonth && !isPastDate() && !isFutureDate()
|
|
4466
|
-
}, {
|
|
4467
|
-
"nt-bg-primary-alpha-300 hover:nt-bg-primary-alpha-400": ((_a = selectedDate()) == null ? void 0 : _a.toDateString()) === local.date.toDateString()
|
|
4468
|
-
});
|
|
4469
|
-
}
|
|
4470
|
-
}, rest, {
|
|
4471
|
-
get children() {
|
|
4472
|
-
return local.date.getDate();
|
|
4702
|
+
size: {
|
|
4703
|
+
default: "nt-px-1 nt-py-px nt-rounded-sm nt-text-xs nt-px-1"
|
|
4473
4704
|
}
|
|
4474
|
-
}
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
return [web.createComponent(Tooltip.Trigger, {
|
|
4479
|
-
children: buttonElement
|
|
4480
|
-
}), web.createComponent(Tooltip.Content, {
|
|
4481
|
-
get children() {
|
|
4482
|
-
return t("snooze.datePicker.exceedingLimitTooltip", {
|
|
4483
|
-
days: maxDays()
|
|
4484
|
-
});
|
|
4485
|
-
}
|
|
4486
|
-
})];
|
|
4487
|
-
}
|
|
4488
|
-
});
|
|
4705
|
+
},
|
|
4706
|
+
defaultVariants: {
|
|
4707
|
+
variant: "secondary",
|
|
4708
|
+
size: "default"
|
|
4489
4709
|
}
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
var DatePickerCalendar = (props) => {
|
|
4710
|
+
});
|
|
4711
|
+
var Badge = (props) => {
|
|
4493
4712
|
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
4494
4713
|
const style = useStyle();
|
|
4495
|
-
const {
|
|
4496
|
-
viewMonth
|
|
4497
|
-
} = useDatePicker();
|
|
4498
|
-
const getDaysInMonth = () => {
|
|
4499
|
-
const year = viewMonth().getFullYear();
|
|
4500
|
-
const month = viewMonth().getMonth();
|
|
4501
|
-
const firstDay = new Date(year, month, 1);
|
|
4502
|
-
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
4503
|
-
const startingDay = firstDay.getDay();
|
|
4504
|
-
const days = [];
|
|
4505
|
-
for (let i = 0; i < startingDay; i += 1) {
|
|
4506
|
-
const prevMonthDay = new Date(year, month, -i);
|
|
4507
|
-
days.unshift(prevMonthDay);
|
|
4508
|
-
}
|
|
4509
|
-
for (let i = 1; i <= daysInMonth; i += 1) {
|
|
4510
|
-
days.push(new Date(year, month, i));
|
|
4511
|
-
}
|
|
4512
|
-
const remainingCells = 7 - days.length % 7;
|
|
4513
|
-
if (remainingCells < 7) {
|
|
4514
|
-
for (let i = 1; i <= remainingCells; i += 1) {
|
|
4515
|
-
days.push(new Date(year, month + 1, i));
|
|
4516
|
-
}
|
|
4517
|
-
}
|
|
4518
|
-
return days;
|
|
4519
|
-
};
|
|
4520
4714
|
return (() => {
|
|
4521
|
-
var _el$
|
|
4522
|
-
_el
|
|
4523
|
-
|
|
4715
|
+
var _el$ = _tmpl$61();
|
|
4716
|
+
web.spread(_el$, web.mergeProps({
|
|
4717
|
+
get ["data-variant"]() {
|
|
4718
|
+
return props.variant;
|
|
4719
|
+
},
|
|
4720
|
+
get ["data-size"]() {
|
|
4721
|
+
return props.size;
|
|
4722
|
+
},
|
|
4524
4723
|
get ["class"]() {
|
|
4525
|
-
return style(local.appearanceKey || "
|
|
4724
|
+
return style(local.appearanceKey || "badge", cn(badgeVariants({
|
|
4725
|
+
variant: props.variant,
|
|
4726
|
+
size: props.size
|
|
4727
|
+
}), local.class));
|
|
4526
4728
|
}
|
|
4527
|
-
}, rest), false,
|
|
4528
|
-
|
|
4529
|
-
return web.createComponent(DatePickerGridCellTrigger, {
|
|
4530
|
-
date
|
|
4531
|
-
});
|
|
4532
|
-
}));
|
|
4533
|
-
return _el$8;
|
|
4729
|
+
}, rest), false, false);
|
|
4730
|
+
return _el$;
|
|
4534
4731
|
})();
|
|
4535
4732
|
};
|
|
4536
|
-
web.
|
|
4537
|
-
var _tmpl$60 = /* @__PURE__ */ web.template(`<input>`);
|
|
4733
|
+
var _tmpl$63 = /* @__PURE__ */ web.template(`<input>`);
|
|
4538
4734
|
var inputVariants = classVarianceAuthority.cva(cn(`focus-visible:nt-outline-none focus-visible:nt-ring-2 focus-visible:nt-rounded-md focus-visible:nt-ring-ring focus-visible:nt-ring-offset-2`), {
|
|
4539
4735
|
variants: {
|
|
4540
4736
|
variant: {
|
|
@@ -4554,7 +4750,7 @@ var Input = (props) => {
|
|
|
4554
4750
|
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
4555
4751
|
const style = useStyle();
|
|
4556
4752
|
return (() => {
|
|
4557
|
-
var _el$ = _tmpl$
|
|
4753
|
+
var _el$ = _tmpl$63();
|
|
4558
4754
|
web.spread(_el$, web.mergeProps({
|
|
4559
4755
|
get ["data-variant"]() {
|
|
4560
4756
|
return props.variant;
|
|
@@ -4574,7 +4770,7 @@ var Input = (props) => {
|
|
|
4574
4770
|
};
|
|
4575
4771
|
|
|
4576
4772
|
// src/ui/components/primitives/TimePicker.tsx
|
|
4577
|
-
var _tmpl$
|
|
4773
|
+
var _tmpl$64 = /* @__PURE__ */ web.template(`<div><span>:</span><select><option value=AM>AM</option><option value=PM>PM`);
|
|
4578
4774
|
var TimePicker = (props) => {
|
|
4579
4775
|
const [local, rest] = solidJs.splitProps(props, ["value", "onChange", "class", "appearanceKey"]);
|
|
4580
4776
|
const style = useStyle();
|
|
@@ -4614,7 +4810,7 @@ var TimePicker = (props) => {
|
|
|
4614
4810
|
}
|
|
4615
4811
|
};
|
|
4616
4812
|
return (() => {
|
|
4617
|
-
var _el$ = _tmpl$
|
|
4813
|
+
var _el$ = _tmpl$64(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
4618
4814
|
_el$.$$click = (e) => e.stopPropagation();
|
|
4619
4815
|
web.spread(_el$, web.mergeProps({
|
|
4620
4816
|
get ["class"]() {
|
|
@@ -4702,7 +4898,7 @@ var enforceMinMax = (el) => {
|
|
|
4702
4898
|
web.delegateEvents(["click"]);
|
|
4703
4899
|
|
|
4704
4900
|
// src/ui/components/Notification/SnoozeDateTimePicker.tsx
|
|
4705
|
-
var _tmpl$
|
|
4901
|
+
var _tmpl$65 = /* @__PURE__ */ web.template(`<div><div><p></p></div><div>`);
|
|
4706
4902
|
var fiveMinutesFromNow = () => {
|
|
4707
4903
|
const futureTime = new Date(Date.now() + 5 * 60 * 1e3);
|
|
4708
4904
|
const hours = futureTime.getHours();
|
|
@@ -4799,7 +4995,7 @@ var SnoozeDateTimePicker = (props) => {
|
|
|
4799
4995
|
return t("snooze.datePicker.noDateSelectedTooltip");
|
|
4800
4996
|
});
|
|
4801
4997
|
return (() => {
|
|
4802
|
-
var _el$ = _tmpl$
|
|
4998
|
+
var _el$ = _tmpl$65(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$2.nextSibling;
|
|
4803
4999
|
_el$.$$click = (e) => e.stopPropagation();
|
|
4804
5000
|
web.insert(_el$, web.createComponent(DatePicker, {
|
|
4805
5001
|
onDateChange: (date) => setSelectedDate(date),
|
|
@@ -4884,7 +5080,7 @@ var SnoozeDateTimePicker = (props) => {
|
|
|
4884
5080
|
web.delegateEvents(["click"]);
|
|
4885
5081
|
|
|
4886
5082
|
// src/ui/components/Notification/NotificationActions.tsx
|
|
4887
|
-
var _tmpl$
|
|
5083
|
+
var _tmpl$66 = /* @__PURE__ */ web.template(`<div><span>`);
|
|
4888
5084
|
var _tmpl$217 = /* @__PURE__ */ web.template(`<span>`);
|
|
4889
5085
|
var SNOOZE_PRESETS = [{
|
|
4890
5086
|
key: "snooze.options.anHourFromNow",
|
|
@@ -4931,7 +5127,7 @@ var SnoozeDropdownItem = (props) => {
|
|
|
4931
5127
|
iconKey: "clock"
|
|
4932
5128
|
});
|
|
4933
5129
|
const content = [(() => {
|
|
4934
|
-
var _el$ = _tmpl$
|
|
5130
|
+
var _el$ = _tmpl$66(), _el$2 = _el$.firstChild;
|
|
4935
5131
|
web.insert(_el$, web.createComponent(IconRendererWrapper, {
|
|
4936
5132
|
iconKey: "clock",
|
|
4937
5133
|
"class": snoozeItemIconClass,
|
|
@@ -5328,7 +5524,7 @@ var renderNotificationActions = (notification, status) => {
|
|
|
5328
5524
|
};
|
|
5329
5525
|
|
|
5330
5526
|
// src/ui/components/Notification/DefaultNotification.tsx
|
|
5331
|
-
var _tmpl$
|
|
5527
|
+
var _tmpl$67 = /* @__PURE__ */ web.template(`<img>`);
|
|
5332
5528
|
var _tmpl$218 = /* @__PURE__ */ web.template(`<div>`);
|
|
5333
5529
|
var _tmpl$311 = /* @__PURE__ */ web.template(`<span>`);
|
|
5334
5530
|
var _tmpl$410 = /* @__PURE__ */ web.template(`<a><div><div></div><div></div><div>`);
|
|
@@ -5420,7 +5616,7 @@ var DefaultNotification = (props) => {
|
|
|
5420
5616
|
})();
|
|
5421
5617
|
},
|
|
5422
5618
|
get children() {
|
|
5423
|
-
var _el$2 = _tmpl$
|
|
5619
|
+
var _el$2 = _tmpl$67();
|
|
5424
5620
|
web.effect((_p$) => {
|
|
5425
5621
|
var _v$ = style("notificationImage", "nt-size-8 nt-rounded-lg nt-object-cover nt-aspect-square"), _v$2 = props.notification.avatar;
|
|
5426
5622
|
_v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
|
|
@@ -5671,14 +5867,30 @@ var NewMessagesCta = (props) => {
|
|
|
5671
5867
|
}
|
|
5672
5868
|
});
|
|
5673
5869
|
};
|
|
5674
|
-
var _tmpl$
|
|
5870
|
+
var _tmpl$68 = /* @__PURE__ */ web.template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 16 16"fill=none><path fill=currentColor d="M12.1675 2.04492L11.5308 2.68164L11.1069 3.10645L12.9614 4.96094L12.7495 5.17383L10.894 3.31836L10.4692 3.74219L9.40967 4.80273L8.98486 5.22754L9.40967 5.65137L10.5747 6.81738L10.3628 7.03027L9.19775 5.86328L8.77295 5.43945L6.35889 7.85352L6.62744 8.26172C7.00257 8.83177 7.18147 9.50559 7.14111 10.1816L7.10986 10.4707C7.00656 11.1451 6.68818 11.7654 6.20557 12.2402L5.98877 12.4346C5.46027 12.8661 4.80786 13.1133 4.13135 13.1426L3.84033 13.1416C3.0614 13.1032 2.3236 12.7769 1.771 12.2266H1.77002C1.28602 11.744 0.974717 11.1186 0.877441 10.4473L0.849121 10.1572C0.814077 9.47419 1.00158 8.80051 1.38037 8.2373L1.55518 8.00293C2.04954 7.39769 2.75121 6.99767 3.52393 6.88086C4.29677 6.76406 5.0856 6.93884 5.73682 7.37109L6.146 7.64258L6.49268 7.29492L11.9546 1.83203L12.1675 2.04492ZM4.00537 7.10645C3.71967 7.11042 3.4363 7.15732 3.16553 7.24512L2.89893 7.34668C2.63748 7.46146 2.39532 7.61469 2.18018 7.80078L1.97803 7.99316C1.52375 8.46356 1.2476 9.0739 1.18994 9.71973L1.17822 9.99805C1.18392 10.6519 1.41417 11.2812 1.82568 11.7822L2.01318 11.9883C2.47551 12.4506 3.0805 12.7377 3.7251 12.8066L4.00342 12.8232C4.75062 12.8297 5.4708 12.5425 6.0083 12.0234L6.44775 11.5986L6.40186 11.5527C6.44537 11.4885 6.48869 11.4241 6.52686 11.3564L6.65479 11.1016C6.76956 10.84 6.84411 10.563 6.87646 10.2803L6.89404 9.99609C6.89801 9.71049 6.85899 9.42635 6.77881 9.15332L6.68506 8.88379C6.5776 8.61923 6.4315 8.3726 6.25146 8.15234L6.06006 7.94141C5.85804 7.73939 5.62719 7.56844 5.37549 7.43555L5.1167 7.31543C4.76396 7.17222 4.38604 7.10121 4.00537 7.10645Z"stroke=#525866 stroke-width=1.2>`);
|
|
5871
|
+
function Key(props) {
|
|
5872
|
+
return (() => {
|
|
5873
|
+
var _el$ = _tmpl$68();
|
|
5874
|
+
web.spread(_el$, props, true, true);
|
|
5875
|
+
return _el$;
|
|
5876
|
+
})();
|
|
5877
|
+
}
|
|
5878
|
+
|
|
5879
|
+
// src/ui/components/Notification/NotificationListSkeleton.tsx
|
|
5880
|
+
var _tmpl$69 = /* @__PURE__ */ web.template(`<div>`);
|
|
5881
|
+
var _tmpl$219 = /* @__PURE__ */ web.template(`<p data-localization=notifications.emptyNotice>`);
|
|
5882
|
+
var _tmpl$312 = /* @__PURE__ */ web.template(`<div><p>Trigger your notification. No setup needed.</p><p>Temporary <Inbox />. All data will expire in 24 hours. Connect API key to persists messages, enable
|
|
5883
|
+
preferences, and connect email.</p><div><div>`);
|
|
5675
5884
|
var NotificationListSkeleton = (props) => {
|
|
5676
5885
|
const style = useStyle();
|
|
5677
5886
|
const {
|
|
5678
5887
|
t
|
|
5679
5888
|
} = useLocalization();
|
|
5889
|
+
const {
|
|
5890
|
+
isKeyless
|
|
5891
|
+
} = useInboxContext();
|
|
5680
5892
|
return (() => {
|
|
5681
|
-
var _el$ = _tmpl$
|
|
5893
|
+
var _el$ = _tmpl$69();
|
|
5682
5894
|
web.insert(_el$, web.createComponent(Motion.div, {
|
|
5683
5895
|
get animate() {
|
|
5684
5896
|
return {
|
|
@@ -5717,7 +5929,7 @@ var NotificationListSkeleton = (props) => {
|
|
|
5717
5929
|
appearanceKey: "notificationList__skeletonAvatar",
|
|
5718
5930
|
"class": "nt-w-8 nt-h-8 nt-rounded-full nt-bg-neutral-alpha-100"
|
|
5719
5931
|
}), (() => {
|
|
5720
|
-
var _el$3 = _tmpl$
|
|
5932
|
+
var _el$3 = _tmpl$69();
|
|
5721
5933
|
web.insert(_el$3, web.createComponent(SkeletonText, {
|
|
5722
5934
|
appearanceKey: "notificationList__skeletonText",
|
|
5723
5935
|
"class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
|
|
@@ -5731,7 +5943,7 @@ var NotificationListSkeleton = (props) => {
|
|
|
5731
5943
|
})()];
|
|
5732
5944
|
}
|
|
5733
5945
|
}))), (() => {
|
|
5734
|
-
var _el$2 = _tmpl$
|
|
5946
|
+
var _el$2 = _tmpl$69();
|
|
5735
5947
|
web.effect(() => web.className(_el$2, style("notificationListEmptyNoticeOverlay", "nt-absolute nt-size-full nt-z-10 nt-inset-0 nt-bg-gradient-to-b nt-from-transparent nt-to-background")));
|
|
5736
5948
|
return _el$2;
|
|
5737
5949
|
})()];
|
|
@@ -5763,9 +5975,12 @@ var NotificationListSkeleton = (props) => {
|
|
|
5763
5975
|
get ["class"]() {
|
|
5764
5976
|
return style("notificationListEmptyNotice", "nt-text-center");
|
|
5765
5977
|
},
|
|
5766
|
-
"data-localization": "notifications.emptyNotice",
|
|
5767
5978
|
get children() {
|
|
5768
|
-
return
|
|
5979
|
+
return web.memo(() => !!isKeyless())() ? web.createComponent(KeylessEmptyState, {}) : (() => {
|
|
5980
|
+
var _el$4 = _tmpl$219();
|
|
5981
|
+
web.insert(_el$4, () => t("notifications.emptyNotice"));
|
|
5982
|
+
return _el$4;
|
|
5983
|
+
})();
|
|
5769
5984
|
}
|
|
5770
5985
|
});
|
|
5771
5986
|
}
|
|
@@ -5774,10 +5989,69 @@ var NotificationListSkeleton = (props) => {
|
|
|
5774
5989
|
return _el$;
|
|
5775
5990
|
})();
|
|
5776
5991
|
};
|
|
5992
|
+
function KeylessEmptyState() {
|
|
5993
|
+
const style = useStyle();
|
|
5994
|
+
const novu = useNovu();
|
|
5995
|
+
return (() => {
|
|
5996
|
+
var _el$5 = _tmpl$312(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.firstChild;
|
|
5997
|
+
web.insert(_el$8, web.createComponent(Button, {
|
|
5998
|
+
variant: "secondary",
|
|
5999
|
+
size: "sm",
|
|
6000
|
+
get ["class"]() {
|
|
6001
|
+
return style(
|
|
6002
|
+
"notificationListEmptyNotice",
|
|
6003
|
+
// eslint-disable-next-line max-len
|
|
6004
|
+
"nt-h-8 nt-px-4 nt-flex nt-items-center nt-justify-center nt-gap-2 nt-bg-white nt-border nt-border-neutral-alpha-100 nt-shadow-sm nt-text-[12px] nt-font-medium"
|
|
6005
|
+
);
|
|
6006
|
+
},
|
|
6007
|
+
onClick: () => window.open("https://go.novu.co/keyless?utm_campaign=empty-state-get_api_key", "_blank", "noopener noreferrer"),
|
|
6008
|
+
get children() {
|
|
6009
|
+
return [web.createComponent(Key, {
|
|
6010
|
+
get ["class"]() {
|
|
6011
|
+
return style("lockIcon", "nt-size-4 nt-mr-2");
|
|
6012
|
+
}
|
|
6013
|
+
}), "Get API key"];
|
|
6014
|
+
}
|
|
6015
|
+
}), _el$9);
|
|
6016
|
+
web.insert(_el$9, web.createComponent(Button, {
|
|
6017
|
+
variant: "default",
|
|
6018
|
+
size: "sm",
|
|
6019
|
+
get ["class"]() {
|
|
6020
|
+
return style(
|
|
6021
|
+
"notificationListEmptyNotice",
|
|
6022
|
+
// eslint-disable-next-line max-len
|
|
6023
|
+
"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"
|
|
6024
|
+
);
|
|
6025
|
+
},
|
|
6026
|
+
onClick: () => novu.notifications.triggerHelloWorldEvent(),
|
|
6027
|
+
get children() {
|
|
6028
|
+
return [web.createComponent(Bell, {
|
|
6029
|
+
get ["class"]() {
|
|
6030
|
+
return style("bellIcon", "nt-size-4 nt-mr-2");
|
|
6031
|
+
}
|
|
6032
|
+
}), "Send 'Hello World!'"];
|
|
6033
|
+
}
|
|
6034
|
+
}));
|
|
6035
|
+
web.effect((_p$) => {
|
|
6036
|
+
var _v$ = style("notificationListEmptyNotice", "nt--mt-[50px]"), _v$2 = style("strong", "nt-text-[#000000] nt-mb-1"), _v$3 = style("notificationListEmptyNotice", "nt-mb-4"), _v$4 = style("notificationListEmptyNotice", "nt-flex nt-gap-4 nt-justify-center");
|
|
6037
|
+
_v$ !== _p$.e && web.className(_el$5, _p$.e = _v$);
|
|
6038
|
+
_v$2 !== _p$.t && web.className(_el$6, _p$.t = _v$2);
|
|
6039
|
+
_v$3 !== _p$.a && web.className(_el$7, _p$.a = _v$3);
|
|
6040
|
+
_v$4 !== _p$.o && web.className(_el$8, _p$.o = _v$4);
|
|
6041
|
+
return _p$;
|
|
6042
|
+
}, {
|
|
6043
|
+
e: void 0,
|
|
6044
|
+
t: void 0,
|
|
6045
|
+
a: void 0,
|
|
6046
|
+
o: void 0
|
|
6047
|
+
});
|
|
6048
|
+
return _el$5;
|
|
6049
|
+
})();
|
|
6050
|
+
}
|
|
5777
6051
|
|
|
5778
6052
|
// src/ui/components/Notification/NotificationList.tsx
|
|
5779
|
-
var _tmpl$
|
|
5780
|
-
var _tmpl$
|
|
6053
|
+
var _tmpl$70 = /* @__PURE__ */ web.template(`<div>`);
|
|
6054
|
+
var _tmpl$220 = /* @__PURE__ */ web.template(`<div><div>`);
|
|
5781
6055
|
var NotificationList = (props) => {
|
|
5782
6056
|
var _a, _b, _c, _d;
|
|
5783
6057
|
const options = solidJs.createMemo(() => chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.filter), {
|
|
@@ -5821,7 +6095,7 @@ var NotificationList = (props) => {
|
|
|
5821
6095
|
});
|
|
5822
6096
|
});
|
|
5823
6097
|
return (() => {
|
|
5824
|
-
var _el$ = _tmpl$
|
|
6098
|
+
var _el$ = _tmpl$220(), _el$2 = _el$.firstChild;
|
|
5825
6099
|
web.insert(_el$, web.createComponent(NewMessagesCta, {
|
|
5826
6100
|
get count() {
|
|
5827
6101
|
return count();
|
|
@@ -5878,7 +6152,7 @@ var NotificationList = (props) => {
|
|
|
5878
6152
|
return !end();
|
|
5879
6153
|
},
|
|
5880
6154
|
get children() {
|
|
5881
|
-
var _el$3 = _tmpl$
|
|
6155
|
+
var _el$3 = _tmpl$70();
|
|
5882
6156
|
web.use(setEl, _el$3);
|
|
5883
6157
|
web.insert(_el$3, web.createComponent(NotificationListSkeleton, {
|
|
5884
6158
|
loading: true
|
|
@@ -5900,13 +6174,13 @@ var NotificationList = (props) => {
|
|
|
5900
6174
|
return _el$;
|
|
5901
6175
|
})();
|
|
5902
6176
|
};
|
|
5903
|
-
var _tmpl$
|
|
6177
|
+
var _tmpl$71 = /* @__PURE__ */ web.template(`<span>`);
|
|
5904
6178
|
var getDisplayCount = (count) => count >= 100 ? "99+" : count;
|
|
5905
6179
|
var InboxTabUnreadNotificationsCount = (props) => {
|
|
5906
6180
|
const style = useStyle();
|
|
5907
6181
|
const displayCount = solidJs.createMemo(() => getDisplayCount(props.count));
|
|
5908
6182
|
return (() => {
|
|
5909
|
-
var _el$ = _tmpl$
|
|
6183
|
+
var _el$ = _tmpl$71();
|
|
5910
6184
|
web.insert(_el$, displayCount);
|
|
5911
6185
|
web.effect(() => web.className(_el$, style("notificationsTabsTriggerCount", "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm")));
|
|
5912
6186
|
return _el$;
|
|
@@ -5933,7 +6207,7 @@ var InboxTab = (props) => {
|
|
|
5933
6207
|
},
|
|
5934
6208
|
get children() {
|
|
5935
6209
|
return [(() => {
|
|
5936
|
-
var _el$2 = _tmpl$
|
|
6210
|
+
var _el$2 = _tmpl$71();
|
|
5937
6211
|
web.insert(_el$2, () => props.label);
|
|
5938
6212
|
web.effect(() => web.className(_el$2, style("notificationsTabsTriggerLabel", "nt-text-sm nt-font-medium")));
|
|
5939
6213
|
return _el$2;
|
|
@@ -5973,7 +6247,7 @@ var InboxDropdownTab = (props) => {
|
|
|
5973
6247
|
},
|
|
5974
6248
|
get children() {
|
|
5975
6249
|
return [(() => {
|
|
5976
|
-
var _el$3 = _tmpl$
|
|
6250
|
+
var _el$3 = _tmpl$71();
|
|
5977
6251
|
web.insert(_el$3, () => props.label);
|
|
5978
6252
|
web.effect(() => web.className(_el$3, style("moreTabs__dropdownItemLabel", "nt-mr-auto")));
|
|
5979
6253
|
return _el$3;
|
|
@@ -6174,7 +6448,7 @@ var InboxTabs = (props) => {
|
|
|
6174
6448
|
};
|
|
6175
6449
|
|
|
6176
6450
|
// src/ui/components/Inbox.tsx
|
|
6177
|
-
var _tmpl$
|
|
6451
|
+
var _tmpl$73 = /* @__PURE__ */ web.template(`<div>`);
|
|
6178
6452
|
var InboxPage = /* @__PURE__ */ function(InboxPage2) {
|
|
6179
6453
|
InboxPage2["Notifications"] = "notifications";
|
|
6180
6454
|
InboxPage2["Preferences"] = "preferences";
|
|
@@ -6199,7 +6473,7 @@ var InboxContent = (props) => {
|
|
|
6199
6473
|
};
|
|
6200
6474
|
});
|
|
6201
6475
|
return (() => {
|
|
6202
|
-
var _el$ = _tmpl$
|
|
6476
|
+
var _el$ = _tmpl$73();
|
|
6203
6477
|
web.insert(_el$, web.createComponent(solidJs.Switch, {
|
|
6204
6478
|
get children() {
|
|
6205
6479
|
return [web.createComponent(solidJs.Match, {
|