@novu/js 3.5.0-rc.2 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{chunk-OGEM74YA.js → chunk-5P6SPWNU.js} +94 -19
- 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 +1488 -1206
- package/dist/esm/{chunk-GPGRFVOZ.mjs → chunk-MGTTV7JA.mjs} +94 -20
- 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 +1482 -1200
- 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 chunk5P6SPWNU_js = require('../chunk-5P6SPWNU.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
|
+
// _5owhcajcb:/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,20 @@ var InboxProvider = (props) => {
|
|
|
1034
1029
|
eventHandler: ({
|
|
1035
1030
|
data
|
|
1036
1031
|
}) => {
|
|
1032
|
+
var _a2, _b2;
|
|
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
|
+
if (data.isDevelopmentMode && !props.applicationIdentifier) {
|
|
1041
|
+
setIsKeyless(!data.applicationIdentifier || !!(identifier == null ? void 0 : identifier.startsWith("pk_keyless_")));
|
|
1042
|
+
setApplicationIdentifier((_a2 = data.applicationIdentifier) != null ? _a2 : null);
|
|
1043
|
+
} else {
|
|
1044
|
+
setApplicationIdentifier((_b2 = props.applicationIdentifier) != null ? _b2 : null);
|
|
1045
|
+
}
|
|
1043
1046
|
}
|
|
1044
1047
|
});
|
|
1045
1048
|
return web.createComponent(InboxContext.Provider, {
|
|
@@ -1060,7 +1063,9 @@ var InboxProvider = (props) => {
|
|
|
1060
1063
|
preferenceGroups,
|
|
1061
1064
|
isDevelopmentMode,
|
|
1062
1065
|
maxSnoozeDurationHours,
|
|
1063
|
-
isSnoozeEnabled
|
|
1066
|
+
isSnoozeEnabled,
|
|
1067
|
+
isKeyless,
|
|
1068
|
+
applicationIdentifier
|
|
1064
1069
|
},
|
|
1065
1070
|
get children() {
|
|
1066
1071
|
return props.children;
|
|
@@ -1076,7 +1081,7 @@ var useInboxContext = () => {
|
|
|
1076
1081
|
};
|
|
1077
1082
|
var NovuContext = solidJs.createContext(void 0);
|
|
1078
1083
|
function NovuProvider(props) {
|
|
1079
|
-
const novu = solidJs.createMemo(() => props.novu || new
|
|
1084
|
+
const novu = solidJs.createMemo(() => props.novu || new chunk5P6SPWNU_js.Novu(props.options));
|
|
1080
1085
|
return web.createComponent(NovuContext.Provider, {
|
|
1081
1086
|
get value() {
|
|
1082
1087
|
return novu();
|
|
@@ -1666,248 +1671,125 @@ var Bell2 = (props) => {
|
|
|
1666
1671
|
function isBrowser() {
|
|
1667
1672
|
return typeof window !== "undefined";
|
|
1668
1673
|
}
|
|
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
|
-
}
|
|
1674
|
+
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>`);
|
|
1675
|
+
var ArrowUpRight = (props) => {
|
|
1802
1676
|
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);
|
|
1677
|
+
var _el$ = _tmpl$25();
|
|
1678
|
+
web.spread(_el$, props, true, true);
|
|
1810
1679
|
return _el$;
|
|
1811
1680
|
})();
|
|
1812
1681
|
};
|
|
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) {
|
|
1682
|
+
var TooltipContext = solidJs.createContext(void 0);
|
|
1683
|
+
function TooltipRoot(props) {
|
|
1843
1684
|
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
1685
|
const [reference, setReference] = solidJs.createSignal(null);
|
|
1854
1686
|
const [floating, setFloating] = solidJs.createSignal(null);
|
|
1687
|
+
const {
|
|
1688
|
+
animations
|
|
1689
|
+
} = useAppearance();
|
|
1690
|
+
const defaultAnimationDuration = 0.2;
|
|
1691
|
+
const actualAnimationDuration = () => {
|
|
1692
|
+
var _a2;
|
|
1693
|
+
return (_a2 = props.animationDuration) != null ? _a2 : defaultAnimationDuration;
|
|
1694
|
+
};
|
|
1695
|
+
const effectiveAnimationDuration = solidJs.createMemo(() => animations() ? actualAnimationDuration() : 0);
|
|
1855
1696
|
const position = solidFloatingUi.useFloating(reference, floating, {
|
|
1856
|
-
|
|
1857
|
-
|
|
1697
|
+
placement: props.placement || "top",
|
|
1698
|
+
strategy: "fixed",
|
|
1858
1699
|
whileElementsMounted: dom.autoUpdate,
|
|
1859
1700
|
middleware: [dom.offset(10), dom.flip({
|
|
1860
|
-
fallbackPlacements: props.fallbackPlacements
|
|
1701
|
+
fallbackPlacements: props.fallbackPlacements || ["bottom"]
|
|
1861
1702
|
}), dom.shift()]
|
|
1862
1703
|
});
|
|
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
|
-
};
|
|
1704
|
+
const [uncontrolledOpen, setUncontrolledOpen] = solidJs.createSignal((_a = props.open) != null ? _a : false);
|
|
1705
|
+
const openAccessor = solidJs.createMemo(() => {
|
|
1706
|
+
return props.open !== void 0 ? !!props.open : uncontrolledOpen();
|
|
1870
1707
|
});
|
|
1871
|
-
const
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
onOpenChange()((prev) => !prev);
|
|
1708
|
+
const setOpenSetter = (valueOrFn) => {
|
|
1709
|
+
if (props.open === void 0) {
|
|
1710
|
+
setUncontrolledOpen(valueOrFn);
|
|
1711
|
+
}
|
|
1876
1712
|
};
|
|
1877
|
-
|
|
1713
|
+
const [shouldRenderTooltip, setShouldRenderTooltip] = solidJs.createSignal(openAccessor());
|
|
1714
|
+
let renderTimeoutId;
|
|
1715
|
+
solidJs.createEffect(() => {
|
|
1716
|
+
const isOpen = openAccessor();
|
|
1717
|
+
if (renderTimeoutId) {
|
|
1718
|
+
clearTimeout(renderTimeoutId);
|
|
1719
|
+
renderTimeoutId = void 0;
|
|
1720
|
+
}
|
|
1721
|
+
if (isOpen) {
|
|
1722
|
+
setShouldRenderTooltip(true);
|
|
1723
|
+
} else if (effectiveAnimationDuration() > 0) {
|
|
1724
|
+
renderTimeoutId = window.setTimeout(() => {
|
|
1725
|
+
setShouldRenderTooltip(false);
|
|
1726
|
+
}, effectiveAnimationDuration() * 1e3);
|
|
1727
|
+
} else {
|
|
1728
|
+
setShouldRenderTooltip(false);
|
|
1729
|
+
}
|
|
1730
|
+
});
|
|
1731
|
+
solidJs.createEffect(() => {
|
|
1732
|
+
if (openAccessor()) {
|
|
1733
|
+
setShouldRenderTooltip(true);
|
|
1734
|
+
}
|
|
1735
|
+
});
|
|
1736
|
+
return web.createComponent(TooltipContext.Provider, {
|
|
1878
1737
|
value: {
|
|
1879
|
-
onToggle,
|
|
1880
|
-
onClose,
|
|
1881
1738
|
reference,
|
|
1882
1739
|
setReference,
|
|
1883
1740
|
floating,
|
|
1884
1741
|
setFloating,
|
|
1885
|
-
open,
|
|
1886
|
-
|
|
1742
|
+
open: openAccessor,
|
|
1743
|
+
shouldRender: shouldRenderTooltip,
|
|
1744
|
+
setOpen: setOpenSetter,
|
|
1745
|
+
floatingStyles: () => {
|
|
1746
|
+
var _a2, _b;
|
|
1747
|
+
return {
|
|
1748
|
+
position: position.strategy,
|
|
1749
|
+
top: `${(_a2 = position.y) != null ? _a2 : 0}px`,
|
|
1750
|
+
left: `${(_b = position.x) != null ? _b : 0}px`
|
|
1751
|
+
};
|
|
1752
|
+
},
|
|
1753
|
+
effectiveAnimationDuration
|
|
1887
1754
|
},
|
|
1888
1755
|
get children() {
|
|
1889
1756
|
return props.children;
|
|
1890
1757
|
}
|
|
1891
1758
|
});
|
|
1892
1759
|
}
|
|
1893
|
-
function
|
|
1894
|
-
const context = solidJs.useContext(
|
|
1760
|
+
function useTooltip() {
|
|
1761
|
+
const context = solidJs.useContext(TooltipContext);
|
|
1895
1762
|
if (!context) {
|
|
1896
|
-
throw new Error("
|
|
1763
|
+
throw new Error("useTooltip must be used within Tooltip.Root component");
|
|
1897
1764
|
}
|
|
1898
1765
|
return context;
|
|
1899
1766
|
}
|
|
1767
|
+
var Motion = new Proxy(solidMotionone.Motion, {
|
|
1768
|
+
get: (_, tag) => (props) => {
|
|
1769
|
+
const {
|
|
1770
|
+
animations
|
|
1771
|
+
} = useAppearance();
|
|
1772
|
+
return web.createComponent(solidMotionone.Motion, web.mergeProps(props, {
|
|
1773
|
+
tag,
|
|
1774
|
+
get transition() {
|
|
1775
|
+
return animations() ? props.transition : {
|
|
1776
|
+
duration: 0
|
|
1777
|
+
};
|
|
1778
|
+
}
|
|
1779
|
+
}));
|
|
1780
|
+
}
|
|
1781
|
+
});
|
|
1900
1782
|
|
|
1901
|
-
// src/ui/components/primitives/
|
|
1902
|
-
var
|
|
1903
|
-
var
|
|
1904
|
-
var PopoverContentBody = (props) => {
|
|
1783
|
+
// src/ui/components/primitives/Tooltip/TooltipContent.tsx
|
|
1784
|
+
var tooltipContentVariants = () => "nt-bg-foreground nt-p-2 nt-shadow-tooltip nt-rounded-lg nt-text-background nt-text-xs";
|
|
1785
|
+
var TooltipContentBody = (props) => {
|
|
1905
1786
|
const {
|
|
1906
1787
|
open,
|
|
1907
1788
|
setFloating,
|
|
1908
1789
|
floating,
|
|
1909
|
-
floatingStyles
|
|
1910
|
-
|
|
1790
|
+
floatingStyles,
|
|
1791
|
+
effectiveAnimationDuration
|
|
1792
|
+
} = useTooltip();
|
|
1911
1793
|
const {
|
|
1912
1794
|
setActive,
|
|
1913
1795
|
removeActive
|
|
@@ -1916,80 +1798,72 @@ var PopoverContentBody = (props) => {
|
|
|
1916
1798
|
const style = useStyle();
|
|
1917
1799
|
solidJs.onMount(() => {
|
|
1918
1800
|
const floatingEl = floating();
|
|
1919
|
-
setActive(floatingEl);
|
|
1801
|
+
if (floatingEl) setActive(floatingEl);
|
|
1920
1802
|
solidJs.onCleanup(() => {
|
|
1921
|
-
removeActive(floatingEl);
|
|
1803
|
+
if (floatingEl) removeActive(floatingEl);
|
|
1922
1804
|
});
|
|
1923
1805
|
});
|
|
1924
|
-
return ((
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
}
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
}
|
|
1937
|
-
},
|
|
1938
|
-
|
|
1939
|
-
|
|
1806
|
+
return web.createComponent(Motion.div, web.mergeProps({
|
|
1807
|
+
initial: {
|
|
1808
|
+
opacity: 0,
|
|
1809
|
+
scale: 0.95
|
|
1810
|
+
},
|
|
1811
|
+
get animate() {
|
|
1812
|
+
return open() ? {
|
|
1813
|
+
opacity: 1,
|
|
1814
|
+
scale: 1
|
|
1815
|
+
} : {
|
|
1816
|
+
opacity: 0,
|
|
1817
|
+
scale: 0.95
|
|
1818
|
+
};
|
|
1819
|
+
},
|
|
1820
|
+
get transition() {
|
|
1821
|
+
return {
|
|
1822
|
+
duration: effectiveAnimationDuration(),
|
|
1823
|
+
easing: "ease-in-out"
|
|
1824
|
+
};
|
|
1825
|
+
},
|
|
1826
|
+
ref: setFloating,
|
|
1827
|
+
get ["class"]() {
|
|
1828
|
+
return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tooltipContent", tooltipContentVariants());
|
|
1829
|
+
},
|
|
1830
|
+
get style() {
|
|
1831
|
+
return chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, floatingStyles()), {
|
|
1832
|
+
"z-index": 99999
|
|
1833
|
+
});
|
|
1834
|
+
}
|
|
1835
|
+
}, rest, {
|
|
1836
|
+
get children() {
|
|
1837
|
+
return props.children;
|
|
1838
|
+
}
|
|
1839
|
+
}));
|
|
1940
1840
|
};
|
|
1941
|
-
var
|
|
1942
|
-
const {
|
|
1943
|
-
open,
|
|
1944
|
-
onClose,
|
|
1945
|
-
reference,
|
|
1946
|
-
floating
|
|
1947
|
-
} = usePopover();
|
|
1841
|
+
var TooltipContent = (props) => {
|
|
1948
1842
|
const {
|
|
1949
|
-
|
|
1950
|
-
} =
|
|
1843
|
+
shouldRender
|
|
1844
|
+
} = useTooltip();
|
|
1951
1845
|
const {
|
|
1952
1846
|
container
|
|
1953
1847
|
} = 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(() => {
|
|
1848
|
+
const portalContainer = () => {
|
|
1980
1849
|
var _a;
|
|
1981
|
-
document.body
|
|
1982
|
-
|
|
1983
|
-
document.body.removeEventListener("keydown", handleEscapeKey);
|
|
1984
|
-
});
|
|
1850
|
+
return (_a = container()) != null ? _a : document.body;
|
|
1851
|
+
};
|
|
1985
1852
|
return web.createComponent(solidJs.Show, {
|
|
1986
1853
|
get when() {
|
|
1987
|
-
return
|
|
1854
|
+
return shouldRender();
|
|
1988
1855
|
},
|
|
1989
1856
|
get children() {
|
|
1990
|
-
return web.createComponent(Portal, {
|
|
1857
|
+
return web.createComponent(web.Portal, {
|
|
1858
|
+
get mount() {
|
|
1859
|
+
return portalContainer();
|
|
1860
|
+
},
|
|
1991
1861
|
get children() {
|
|
1992
|
-
return web.createComponent(
|
|
1862
|
+
return web.createComponent(Root, {
|
|
1863
|
+
get children() {
|
|
1864
|
+
return web.createComponent(TooltipContentBody, props);
|
|
1865
|
+
}
|
|
1866
|
+
});
|
|
1993
1867
|
}
|
|
1994
1868
|
});
|
|
1995
1869
|
}
|
|
@@ -2006,22 +1880,28 @@ function mergeRefs(...refs) {
|
|
|
2006
1880
|
return chain(refs);
|
|
2007
1881
|
}
|
|
2008
1882
|
|
|
2009
|
-
// src/ui/components/primitives/
|
|
2010
|
-
var _tmpl$
|
|
2011
|
-
var
|
|
1883
|
+
// src/ui/components/primitives/Tooltip/TooltipTrigger.tsx
|
|
1884
|
+
var _tmpl$26 = /* @__PURE__ */ web.template(`<button>`);
|
|
1885
|
+
var TooltipTrigger = (props) => {
|
|
2012
1886
|
const {
|
|
2013
1887
|
setReference,
|
|
2014
|
-
|
|
2015
|
-
} =
|
|
1888
|
+
setOpen
|
|
1889
|
+
} = useTooltip();
|
|
2016
1890
|
const style = useStyle();
|
|
2017
|
-
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "ref"]);
|
|
2018
|
-
const
|
|
2019
|
-
if (typeof local.
|
|
2020
|
-
local.
|
|
1891
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "onMouseEnter", "onMouseLeave", "ref"]);
|
|
1892
|
+
const handleMouseEnter = (e) => {
|
|
1893
|
+
if (typeof local.onMouseEnter === "function") {
|
|
1894
|
+
local.onMouseEnter(e);
|
|
2021
1895
|
}
|
|
2022
|
-
|
|
1896
|
+
setOpen(true);
|
|
2023
1897
|
};
|
|
2024
1898
|
const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
|
|
1899
|
+
const handleMouseLeave = (e) => {
|
|
1900
|
+
if (typeof local.onMouseLeave === "function") {
|
|
1901
|
+
local.onMouseLeave(e);
|
|
1902
|
+
}
|
|
1903
|
+
setOpen(false);
|
|
1904
|
+
};
|
|
2025
1905
|
if (local.asChild) {
|
|
2026
1906
|
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2027
1907
|
get component() {
|
|
@@ -2031,244 +1911,329 @@ var PopoverTrigger = (props) => {
|
|
|
2031
1911
|
var _ref$ = ref();
|
|
2032
1912
|
typeof _ref$ === "function" && _ref$(r$);
|
|
2033
1913
|
},
|
|
2034
|
-
|
|
1914
|
+
onMouseEnter: handleMouseEnter,
|
|
1915
|
+
onMouseLeave: handleMouseLeave
|
|
2035
1916
|
}, rest));
|
|
2036
1917
|
}
|
|
2037
1918
|
return (() => {
|
|
2038
|
-
var _el$ = _tmpl$
|
|
2039
|
-
_el
|
|
1919
|
+
var _el$ = _tmpl$26();
|
|
1920
|
+
_el$.addEventListener("mouseleave", () => {
|
|
1921
|
+
setOpen(false);
|
|
1922
|
+
});
|
|
1923
|
+
_el$.addEventListener("mouseenter", () => {
|
|
1924
|
+
setOpen(true);
|
|
1925
|
+
});
|
|
2040
1926
|
var _ref$2 = ref();
|
|
2041
1927
|
typeof _ref$2 === "function" && web.use(_ref$2, _el$);
|
|
2042
1928
|
web.spread(_el$, web.mergeProps({
|
|
2043
1929
|
get ["class"]() {
|
|
2044
|
-
return style(local.appearanceKey || "
|
|
1930
|
+
return style(local.appearanceKey || "tooltipTrigger");
|
|
2045
1931
|
}
|
|
2046
1932
|
}, rest), false, true);
|
|
2047
1933
|
web.insert(_el$, () => props.children);
|
|
2048
1934
|
return _el$;
|
|
2049
1935
|
})();
|
|
2050
1936
|
};
|
|
2051
|
-
web.delegateEvents(["click"]);
|
|
2052
1937
|
|
|
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,
|
|
1938
|
+
// src/ui/components/primitives/Tooltip/index.ts
|
|
1939
|
+
var Tooltip = {
|
|
1940
|
+
Root: TooltipRoot,
|
|
2060
1941
|
/**
|
|
2061
|
-
*
|
|
1942
|
+
* Tooltip.Trigger renders a `button` and has no default styling.
|
|
2062
1943
|
*/
|
|
2063
|
-
|
|
1944
|
+
Trigger: TooltipTrigger,
|
|
2064
1945
|
/**
|
|
2065
|
-
*
|
|
2066
|
-
* Closes the popover when clicked.
|
|
2067
|
-
* `onClick` function is propagated.
|
|
1946
|
+
* Tooltip.Content renders a `div` and has popover specific styling.
|
|
2068
1947
|
*/
|
|
2069
|
-
|
|
1948
|
+
Content: TooltipContent
|
|
2070
1949
|
};
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
1950
|
+
|
|
1951
|
+
// src/ui/components/primitives/CopyToClipboard.tsx
|
|
1952
|
+
var _tmpl$27 = /* @__PURE__ */ web.template(`<button type=button>`);
|
|
1953
|
+
function CopyToClipboard(props) {
|
|
1954
|
+
const [isCopied, setIsCopied] = solidJs.createSignal(false);
|
|
1955
|
+
const style = useStyle();
|
|
1956
|
+
let timeoutId;
|
|
1957
|
+
const defaultTooltipText = "Copied!";
|
|
1958
|
+
const defaultTooltipDuration = 2e3;
|
|
1959
|
+
function handleCopy() {
|
|
1960
|
+
return chunk7B52C2XE_js.__async(this, null, function* () {
|
|
1961
|
+
var _a;
|
|
1962
|
+
if (timeoutId) {
|
|
1963
|
+
clearTimeout(timeoutId);
|
|
1964
|
+
}
|
|
1965
|
+
try {
|
|
1966
|
+
yield navigator.clipboard.writeText(props.textToCopy);
|
|
1967
|
+
setIsCopied(true);
|
|
1968
|
+
timeoutId = window.setTimeout(() => {
|
|
1969
|
+
setIsCopied(false);
|
|
1970
|
+
timeoutId = void 0;
|
|
1971
|
+
}, (_a = props.tooltipDuration) != null ? _a : defaultTooltipDuration);
|
|
1972
|
+
} catch (err) {
|
|
1973
|
+
console.error("Failed to copy text: ", err);
|
|
1974
|
+
}
|
|
1975
|
+
});
|
|
1976
|
+
}
|
|
1977
|
+
return web.createComponent(Tooltip.Root, {
|
|
1978
|
+
get open() {
|
|
1979
|
+
return isCopied();
|
|
2077
1980
|
},
|
|
2078
|
-
|
|
2079
|
-
|
|
1981
|
+
placement: "top",
|
|
1982
|
+
animationDuration: 0.15,
|
|
1983
|
+
get children() {
|
|
1984
|
+
return [web.createComponent(Tooltip.Trigger, {
|
|
1985
|
+
asChild: (triggerProps) => (() => {
|
|
1986
|
+
var _el$ = _tmpl$27();
|
|
1987
|
+
web.spread(_el$, web.mergeProps(triggerProps, {
|
|
1988
|
+
"onClick": handleCopy,
|
|
1989
|
+
get ["class"]() {
|
|
1990
|
+
return style("button", "nt-cursor-pointer");
|
|
1991
|
+
}
|
|
1992
|
+
}), false, true);
|
|
1993
|
+
web.insert(_el$, () => props.children);
|
|
1994
|
+
return _el$;
|
|
1995
|
+
})()
|
|
1996
|
+
}), web.createComponent(Tooltip.Content, {
|
|
1997
|
+
get children() {
|
|
1998
|
+
var _a;
|
|
1999
|
+
return (_a = props.tooltipText) != null ? _a : defaultTooltipText;
|
|
2000
|
+
}
|
|
2001
|
+
})];
|
|
2080
2002
|
}
|
|
2081
|
-
}
|
|
2082
|
-
}
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2003
|
+
});
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
// src/ui/components/elements/Footer.tsx
|
|
2007
|
+
var _tmpl$28 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs nt-text-stripes">`);
|
|
2008
|
+
var _tmpl$29 = /* @__PURE__ */ web.template(`<span class="nt-z-10 nt-text-xs">\u2022`);
|
|
2009
|
+
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`);
|
|
2010
|
+
var _tmpl$42 = /* @__PURE__ */ web.template(`<span class=nt-underline>Copy cURL`);
|
|
2011
|
+
var _tmpl$52 = /* @__PURE__ */ web.template(`<div class="nt-z-10 nt-flex nt-items-center nt-gap-1 nt-text-xs nt-text-secondary-foreground"><a href=https://go.novu.co/keyless class="nt-underline nt-flex nt-items-center nt-gap-0.5"target=_blank rel="noopener noreferrer">Get API key</a><span>\u2022</span><span>\u2022</span><button type=button class=nt-underline>Send notification`);
|
|
2012
|
+
var _tmpl$62 = /* @__PURE__ */ web.template(`<div><div class="nt-flex nt-items-center nt-gap-1">`);
|
|
2013
|
+
var _tmpl$72 = /* @__PURE__ */ web.template(`<a href="https://go.novu.co/keyless?utm_campaign=keyless-mode"target=_blank rel="noopener noreferrer">Keyless mode`);
|
|
2014
|
+
var _tmpl$82 = /* @__PURE__ */ web.template(`<br>`);
|
|
2015
|
+
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]`;
|
|
2016
|
+
var commonAfter = 'after:nt-content-[""] after:nt-absolute after:nt-inset-0 after:-nt-top-12';
|
|
2017
|
+
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)]`;
|
|
2018
|
+
var prodModeGradient = `${commonAfter} after:nt-bg-[linear-gradient(180deg,transparent,oklch(from_var(--nv-color-background)_l_c_h_/_0.9)_55%,transparent)]`;
|
|
2019
|
+
var Footer = () => {
|
|
2086
2020
|
const {
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
onClick: handleClick
|
|
2101
|
-
}, rest));
|
|
2021
|
+
hideBranding,
|
|
2022
|
+
isDevelopmentMode,
|
|
2023
|
+
isKeyless
|
|
2024
|
+
} = useInboxContext();
|
|
2025
|
+
const novu = useNovu();
|
|
2026
|
+
function handleTriggerHelloWorld() {
|
|
2027
|
+
return chunk7B52C2XE_js.__async(this, null, function* () {
|
|
2028
|
+
try {
|
|
2029
|
+
yield novu.notifications.triggerHelloWorldEvent();
|
|
2030
|
+
} catch (error) {
|
|
2031
|
+
console.error("Failed to send Hello World from UI via novu.notifications:", error);
|
|
2032
|
+
}
|
|
2033
|
+
});
|
|
2102
2034
|
}
|
|
2103
|
-
return web.createComponent(
|
|
2104
|
-
get
|
|
2105
|
-
return
|
|
2106
|
-
},
|
|
2107
|
-
get ["class"]() {
|
|
2108
|
-
return cn(dropdownItemVariants(), local.class);
|
|
2035
|
+
return web.createComponent(solidJs.Show, {
|
|
2036
|
+
get when() {
|
|
2037
|
+
return !hideBranding() || isDevelopmentMode();
|
|
2109
2038
|
},
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2039
|
+
get children() {
|
|
2040
|
+
var _el$ = _tmpl$62(), _el$2 = _el$.firstChild;
|
|
2041
|
+
_el$.style.setProperty("--stripes-size", "15px");
|
|
2042
|
+
web.insert(_el$2, web.createComponent(solidJs.Show, {
|
|
2043
|
+
get when() {
|
|
2044
|
+
return isDevelopmentMode();
|
|
2045
|
+
},
|
|
2046
|
+
get children() {
|
|
2047
|
+
var _el$3 = _tmpl$28();
|
|
2048
|
+
web.insert(_el$3, (() => {
|
|
2049
|
+
var _c$ = web.memo(() => !!isKeyless());
|
|
2050
|
+
return () => _c$() ? web.createComponent(Tooltip.Root, {
|
|
2051
|
+
get children() {
|
|
2052
|
+
return [web.createComponent(Tooltip.Trigger, {
|
|
2053
|
+
"class": "",
|
|
2054
|
+
get children() {
|
|
2055
|
+
return _tmpl$72();
|
|
2056
|
+
}
|
|
2057
|
+
}), web.createComponent(Tooltip.Content, {
|
|
2058
|
+
get children() {
|
|
2059
|
+
return ["Temporary <Inbox />. All data will expire in 24 hours.", _tmpl$82(), "Connect API key to persist."];
|
|
2060
|
+
}
|
|
2061
|
+
})];
|
|
2062
|
+
}
|
|
2063
|
+
}) : "Development mode";
|
|
2064
|
+
})());
|
|
2065
|
+
return _el$3;
|
|
2066
|
+
}
|
|
2067
|
+
}), null);
|
|
2068
|
+
web.insert(_el$2, web.createComponent(solidJs.Show, {
|
|
2069
|
+
get when() {
|
|
2070
|
+
return web.memo(() => !!isDevelopmentMode())() && !hideBranding();
|
|
2071
|
+
},
|
|
2072
|
+
get children() {
|
|
2073
|
+
return _tmpl$29();
|
|
2074
|
+
}
|
|
2075
|
+
}), null);
|
|
2076
|
+
web.insert(_el$2, web.createComponent(solidJs.Show, {
|
|
2077
|
+
get when() {
|
|
2078
|
+
return !hideBranding();
|
|
2079
|
+
},
|
|
2080
|
+
get children() {
|
|
2081
|
+
var _el$5 = _tmpl$32(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
|
|
2082
|
+
web.insert(_el$5, web.createComponent(Novu2, {
|
|
2083
|
+
"class": "nt-size-2.5"
|
|
2084
|
+
}), _el$7);
|
|
2085
|
+
web.effect(() => web.setAttribute(_el$5, "href", `https://go.novu.co/powered?ref=${getCurrentDomain()}`));
|
|
2086
|
+
return _el$5;
|
|
2087
|
+
}
|
|
2088
|
+
}), null);
|
|
2089
|
+
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
2090
|
+
get when() {
|
|
2091
|
+
return isKeyless();
|
|
2092
|
+
},
|
|
2093
|
+
get children() {
|
|
2094
|
+
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;
|
|
2095
|
+
web.insert(_el$9, web.createComponent(ArrowUpRight, {
|
|
2096
|
+
"class": "nt-ml-1"
|
|
2097
|
+
}), null);
|
|
2098
|
+
web.insert(_el$8, web.createComponent(CopyToClipboard, {
|
|
2099
|
+
get textToCopy() {
|
|
2100
|
+
return getCurlCommand();
|
|
2101
|
+
},
|
|
2102
|
+
get children() {
|
|
2103
|
+
return _tmpl$42();
|
|
2104
|
+
}
|
|
2105
|
+
}), _el$13);
|
|
2106
|
+
_el$14.$$click = (e) => {
|
|
2107
|
+
e.preventDefault();
|
|
2108
|
+
handleTriggerHelloWorld();
|
|
2109
|
+
};
|
|
2110
|
+
return _el$8;
|
|
2111
|
+
}
|
|
2112
|
+
}), null);
|
|
2113
|
+
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`, {
|
|
2114
|
+
[stripes]: isDevelopmentMode(),
|
|
2115
|
+
[devModeGradient]: isDevelopmentMode(),
|
|
2116
|
+
"nt-bg-[oklch(from_var(--nv-color-stripes)_l_c_h_/_0.1)]": isDevelopmentMode(),
|
|
2117
|
+
[prodModeGradient]: !isDevelopmentMode()
|
|
2118
|
+
})));
|
|
2119
|
+
return _el$;
|
|
2115
2120
|
}
|
|
2116
|
-
}
|
|
2121
|
+
});
|
|
2117
2122
|
};
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
}
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2123
|
+
function getCurrentDomain() {
|
|
2124
|
+
if (isBrowser()) {
|
|
2125
|
+
return window.location.hostname;
|
|
2126
|
+
}
|
|
2127
|
+
return "";
|
|
2128
|
+
}
|
|
2129
|
+
function getCurlCommand() {
|
|
2130
|
+
const identifier = window.localStorage.getItem("novu_keyless_application_identifier");
|
|
2131
|
+
if (!identifier) {
|
|
2132
|
+
console.error("Novu application identifier not found for cURL command.");
|
|
2133
|
+
return "";
|
|
2134
|
+
}
|
|
2135
|
+
const DEFAULT_BACKEND_URL = typeof window !== "undefined" && window.NOVU_LOCAL_BACKEND_URL || "https://api.novu.co";
|
|
2136
|
+
return `curl -X POST ${DEFAULT_BACKEND_URL}/${chunk5P6SPWNU_js.DEFAULT_API_VERSION}/events/trigger -H 'Authorization: Keyless ${identifier}' -H 'Content-Type: application/json' -d '{
|
|
2137
|
+
"name": "hello-world",
|
|
2138
|
+
"to": {
|
|
2139
|
+
"subscriberId": "keyless-subscriber-id"
|
|
2140
|
+
},
|
|
2141
|
+
"payload": {
|
|
2142
|
+
"body": "New From Keyless Environment",
|
|
2143
|
+
"subject": "Hello World!"
|
|
2131
2144
|
}
|
|
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
|
-
}));
|
|
2145
|
+
}'`;
|
|
2146
|
+
}
|
|
2147
|
+
web.delegateEvents(["click"]);
|
|
2148
|
+
var _tmpl$30 = /* @__PURE__ */ web.template(`<button>`);
|
|
2149
|
+
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`), {
|
|
2150
|
+
variants: {
|
|
2151
|
+
variant: {
|
|
2152
|
+
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",
|
|
2153
|
+
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",
|
|
2154
|
+
ghost: "hover:nt-bg-neutral-alpha-100 nt-text-foreground-alpha-600 hover:nt-text-foreground-alpha-800",
|
|
2155
|
+
unstyled: ""
|
|
2156
|
+
},
|
|
2157
|
+
size: {
|
|
2158
|
+
none: "",
|
|
2159
|
+
iconSm: "nt-p-1 nt-rounded-md after:nt-rounded-md before:nt-rounded-md focus-visible:nt-rounded-md",
|
|
2160
|
+
icon: "nt-p-2.5 nt-rounded-xl before:nt-rounded-xl after:nt-rounded-xl focus-visible:nt-rounded-xl",
|
|
2161
|
+
default: "nt-px-2 nt-py-1 nt-rounded-lg focus-visible:nt-rounded-lg before:nt-rounded-lg after:nt-rounded-lg",
|
|
2162
|
+
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",
|
|
2163
|
+
lg: "nt-px-8 nt-py-2 nt-text-base before:nt-rounded-lg after:nt-rounded-lg focus-visible:nt-rounded-lg"
|
|
2164
|
+
}
|
|
2165
|
+
},
|
|
2166
|
+
defaultVariants: {
|
|
2167
|
+
variant: "default",
|
|
2168
|
+
size: "default"
|
|
2170
2169
|
}
|
|
2171
2170
|
});
|
|
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];
|
|
2171
|
+
var Button = (props) => {
|
|
2172
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
2173
|
+
const style = useStyle();
|
|
2174
|
+
return (() => {
|
|
2175
|
+
var _el$ = _tmpl$30();
|
|
2176
|
+
web.spread(_el$, web.mergeProps({
|
|
2177
|
+
get ["data-variant"]() {
|
|
2178
|
+
return props.variant;
|
|
2179
|
+
},
|
|
2180
|
+
get ["data-size"]() {
|
|
2181
|
+
return props.size;
|
|
2182
|
+
},
|
|
2183
|
+
get ["class"]() {
|
|
2184
|
+
return style(local.appearanceKey || "button", cn(buttonVariants({
|
|
2185
|
+
variant: props.variant,
|
|
2186
|
+
size: props.size
|
|
2187
|
+
}), local.class));
|
|
2218
2188
|
}
|
|
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;
|
|
2189
|
+
}, rest), false, false);
|
|
2190
|
+
return _el$;
|
|
2191
|
+
})();
|
|
2236
2192
|
};
|
|
2237
|
-
var
|
|
2238
|
-
var
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2193
|
+
var _tmpl$31 = /* @__PURE__ */ web.template(`<div>`);
|
|
2194
|
+
var _tmpl$210 = /* @__PURE__ */ web.template(`<div><span>`);
|
|
2195
|
+
var DatePickerContext = solidJs.createContext({
|
|
2196
|
+
currentDate: () => /* @__PURE__ */ new Date(),
|
|
2197
|
+
setCurrentDate: () => {
|
|
2198
|
+
},
|
|
2199
|
+
viewMonth: () => /* @__PURE__ */ new Date(),
|
|
2200
|
+
setViewMonth: () => {
|
|
2201
|
+
},
|
|
2202
|
+
selectedDate: () => null,
|
|
2203
|
+
setSelectedDate: () => {
|
|
2204
|
+
},
|
|
2205
|
+
maxDays: () => 0
|
|
2206
|
+
});
|
|
2207
|
+
var useDatePicker = () => solidJs.useContext(DatePickerContext);
|
|
2208
|
+
var DatePicker = (props) => {
|
|
2209
|
+
const [local, rest] = solidJs.splitProps(props, ["children", "value", "onDateChange", "class", "maxDays"]);
|
|
2244
2210
|
const style = useStyle();
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2211
|
+
const today = /* @__PURE__ */ new Date();
|
|
2212
|
+
today.setHours(0, 0, 0, 0);
|
|
2213
|
+
const [currentDate, setCurrentDate] = solidJs.createSignal(today);
|
|
2214
|
+
const [viewMonth, setViewMonth] = solidJs.createSignal(today);
|
|
2215
|
+
const [selectedDate, setSelectedDate] = solidJs.createSignal(local.value ? new Date(local.value) : null);
|
|
2216
|
+
const handleDateSelect = (date) => {
|
|
2217
|
+
setSelectedDate(date);
|
|
2218
|
+
if (local.onDateChange) {
|
|
2219
|
+
local.onDateChange(date);
|
|
2253
2220
|
}
|
|
2254
|
-
}
|
|
2255
|
-
|
|
2256
|
-
var _a2;
|
|
2257
|
-
(_a2 = local.onChange) == null ? void 0 : _a2.call(local, activeTab());
|
|
2258
|
-
});
|
|
2259
|
-
return web.createComponent(TabsContext.Provider, {
|
|
2221
|
+
};
|
|
2222
|
+
return web.createComponent(DatePickerContext.Provider, {
|
|
2260
2223
|
value: {
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2224
|
+
currentDate,
|
|
2225
|
+
setCurrentDate,
|
|
2226
|
+
viewMonth,
|
|
2227
|
+
setViewMonth,
|
|
2228
|
+
selectedDate,
|
|
2229
|
+
setSelectedDate: handleDateSelect,
|
|
2230
|
+
maxDays: () => props.maxDays
|
|
2265
2231
|
},
|
|
2266
2232
|
get children() {
|
|
2267
|
-
var _el$ = _tmpl$
|
|
2268
|
-
web.use(setTabsContainer, _el$);
|
|
2233
|
+
var _el$ = _tmpl$31();
|
|
2269
2234
|
web.spread(_el$, web.mergeProps({
|
|
2270
2235
|
get ["class"]() {
|
|
2271
|
-
return style(
|
|
2236
|
+
return style("datePicker", cn("nt-p-2", local.class));
|
|
2272
2237
|
}
|
|
2273
2238
|
}, rest), false, true);
|
|
2274
2239
|
web.insert(_el$, () => local.children);
|
|
@@ -2276,48 +2241,743 @@ var TabsRoot = (props) => {
|
|
|
2276
2241
|
}
|
|
2277
2242
|
});
|
|
2278
2243
|
};
|
|
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"]);
|
|
2244
|
+
var DatePickerHeader = (props) => {
|
|
2245
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "children"]);
|
|
2284
2246
|
const style = useStyle();
|
|
2285
2247
|
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
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2248
|
+
viewMonth,
|
|
2249
|
+
setViewMonth,
|
|
2250
|
+
currentDate,
|
|
2251
|
+
maxDays
|
|
2252
|
+
} = useDatePicker();
|
|
2253
|
+
useAppearance();
|
|
2254
|
+
const prevIconClass = style("datePickerControlPrevTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700", {
|
|
2255
|
+
iconKey: "arrowLeft"
|
|
2256
|
+
});
|
|
2257
|
+
const nextIconClass = style("datePickerControlNextTrigger__icon", "nt-size-4 nt-text-foreground-alpha-700", {
|
|
2258
|
+
iconKey: "arrowRight"
|
|
2259
|
+
});
|
|
2260
|
+
const handlePrevMonth = () => {
|
|
2261
|
+
const date = new Date(viewMonth());
|
|
2262
|
+
date.setMonth(date.getMonth() - 1);
|
|
2263
|
+
const currentMonth = currentDate();
|
|
2264
|
+
if (date.getFullYear() < currentMonth.getFullYear() || date.getFullYear() === currentMonth.getFullYear() && date.getMonth() < currentMonth.getMonth()) {
|
|
2265
|
+
return;
|
|
2266
|
+
}
|
|
2267
|
+
setViewMonth(date);
|
|
2268
|
+
};
|
|
2269
|
+
const handleNextMonth = () => {
|
|
2270
|
+
const date = new Date(viewMonth());
|
|
2271
|
+
date.setMonth(date.getMonth() + 1);
|
|
2272
|
+
const maxDaysValue = maxDays();
|
|
2273
|
+
if (maxDaysValue > 0) {
|
|
2274
|
+
const maxDate = new Date(currentDate());
|
|
2275
|
+
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
2276
|
+
if (date.getFullYear() > maxDate.getFullYear() || date.getFullYear() === maxDate.getFullYear() && date.getMonth() > maxDate.getMonth()) {
|
|
2277
|
+
return;
|
|
2278
|
+
}
|
|
2279
|
+
}
|
|
2280
|
+
setViewMonth(date);
|
|
2281
|
+
};
|
|
2282
|
+
const isPrevDisabled = () => {
|
|
2283
|
+
const current = currentDate();
|
|
2284
|
+
const view = viewMonth();
|
|
2285
|
+
return view.getFullYear() === current.getFullYear() && view.getMonth() === current.getMonth();
|
|
2286
|
+
};
|
|
2287
|
+
const isNextDisabled = () => {
|
|
2288
|
+
const maxDaysValue = maxDays();
|
|
2289
|
+
if (maxDaysValue === 0) return false;
|
|
2290
|
+
const view = viewMonth();
|
|
2291
|
+
const maxDate = new Date(currentDate());
|
|
2292
|
+
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
2293
|
+
return view.getFullYear() === maxDate.getFullYear() && view.getMonth() === maxDate.getMonth();
|
|
2294
|
+
};
|
|
2295
|
+
return (() => {
|
|
2296
|
+
var _el$2 = _tmpl$210(), _el$3 = _el$2.firstChild;
|
|
2297
|
+
web.spread(_el$2, web.mergeProps({
|
|
2298
|
+
get ["class"]() {
|
|
2299
|
+
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));
|
|
2300
|
+
}
|
|
2301
|
+
}, rest), false, true);
|
|
2302
|
+
web.insert(_el$2, web.createComponent(Button, {
|
|
2303
|
+
appearanceKey: "datePickerControlPrevTrigger",
|
|
2304
|
+
variant: "ghost",
|
|
2305
|
+
onClick: (e) => {
|
|
2306
|
+
e.stopPropagation();
|
|
2307
|
+
handlePrevMonth();
|
|
2308
|
+
},
|
|
2309
|
+
get disabled() {
|
|
2310
|
+
return isPrevDisabled();
|
|
2311
|
+
},
|
|
2312
|
+
"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)]",
|
|
2313
|
+
get children() {
|
|
2314
|
+
return web.createComponent(IconRendererWrapper, {
|
|
2315
|
+
iconKey: "arrowLeft",
|
|
2316
|
+
"class": prevIconClass,
|
|
2317
|
+
get fallback() {
|
|
2318
|
+
return web.createComponent(ArrowLeft, {
|
|
2319
|
+
"class": prevIconClass
|
|
2320
|
+
});
|
|
2321
|
+
}
|
|
2322
|
+
});
|
|
2323
|
+
}
|
|
2324
|
+
}), _el$3);
|
|
2325
|
+
web.insert(_el$3, () => viewMonth().toLocaleDateString("en-US", {
|
|
2326
|
+
month: "long",
|
|
2327
|
+
year: "numeric"
|
|
2328
|
+
}));
|
|
2329
|
+
web.insert(_el$2, web.createComponent(Button, {
|
|
2330
|
+
appearanceKey: "datePickerControlNextTrigger",
|
|
2331
|
+
variant: "ghost",
|
|
2332
|
+
onClick: (e) => {
|
|
2333
|
+
e.stopPropagation();
|
|
2334
|
+
handleNextMonth();
|
|
2335
|
+
},
|
|
2336
|
+
get disabled() {
|
|
2337
|
+
return isNextDisabled();
|
|
2338
|
+
},
|
|
2339
|
+
"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)]",
|
|
2340
|
+
get children() {
|
|
2341
|
+
return web.createComponent(IconRendererWrapper, {
|
|
2342
|
+
iconKey: "arrowRight",
|
|
2343
|
+
"class": nextIconClass,
|
|
2344
|
+
get fallback() {
|
|
2345
|
+
return web.createComponent(ArrowRight, {
|
|
2346
|
+
"class": nextIconClass
|
|
2347
|
+
});
|
|
2348
|
+
}
|
|
2349
|
+
});
|
|
2350
|
+
}
|
|
2351
|
+
}), null);
|
|
2352
|
+
web.effect(() => web.className(_el$3, style("datePickerHeaderMonth", "nt-text-sm nt-font-medium nt-text-foreground-alpha-700")));
|
|
2353
|
+
return _el$2;
|
|
2354
|
+
})();
|
|
2355
|
+
};
|
|
2356
|
+
var DatePickerGridCellTrigger = (props) => {
|
|
2357
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "date"]);
|
|
2358
|
+
const {
|
|
2359
|
+
selectedDate,
|
|
2360
|
+
viewMonth,
|
|
2361
|
+
setSelectedDate,
|
|
2362
|
+
currentDate,
|
|
2363
|
+
maxDays
|
|
2364
|
+
} = useDatePicker();
|
|
2365
|
+
const {
|
|
2366
|
+
t
|
|
2367
|
+
} = useLocalization();
|
|
2368
|
+
const isCurrentMonth = props.date.getMonth() === viewMonth().getMonth();
|
|
2369
|
+
const isPastDate = () => {
|
|
2370
|
+
const today = currentDate();
|
|
2371
|
+
return props.date < today;
|
|
2372
|
+
};
|
|
2373
|
+
const isFutureDate = () => {
|
|
2374
|
+
const maxDaysValue = maxDays();
|
|
2375
|
+
if (maxDaysValue === 0) return false;
|
|
2376
|
+
const maxDate = new Date(currentDate());
|
|
2377
|
+
maxDate.setDate(maxDate.getDate() + maxDaysValue);
|
|
2378
|
+
return props.date > maxDate;
|
|
2379
|
+
};
|
|
2380
|
+
const isDisabled = !isCurrentMonth || isPastDate() || isFutureDate();
|
|
2381
|
+
const isExceedingLimit = () => {
|
|
2382
|
+
return isCurrentMonth && isFutureDate();
|
|
2383
|
+
};
|
|
2384
|
+
const buttonElement = web.createComponent(Button, web.mergeProps({
|
|
2385
|
+
appearanceKey: "datePickerCalendarDay__button",
|
|
2386
|
+
variant: "ghost",
|
|
2387
|
+
disabled: isDisabled,
|
|
2388
|
+
onClick: (e) => {
|
|
2389
|
+
e.stopPropagation();
|
|
2390
|
+
setSelectedDate(local.date);
|
|
2391
|
+
},
|
|
2392
|
+
get ["class"]() {
|
|
2393
|
+
var _a;
|
|
2394
|
+
return cn("nt-size-8 nt-w-full nt-rounded-md nt-flex nt-items-center nt-justify-center", {
|
|
2395
|
+
"nt-text-muted-foreground disabled:nt-opacity-20": !isCurrentMonth || isPastDate(),
|
|
2396
|
+
"nt-text-foreground-alpha-700": isCurrentMonth && !isPastDate() && !isFutureDate()
|
|
2397
|
+
}, {
|
|
2398
|
+
"nt-bg-primary-alpha-300 hover:nt-bg-primary-alpha-400": ((_a = selectedDate()) == null ? void 0 : _a.toDateString()) === local.date.toDateString()
|
|
2399
|
+
});
|
|
2400
|
+
}
|
|
2401
|
+
}, rest, {
|
|
2402
|
+
get children() {
|
|
2403
|
+
return local.date.getDate();
|
|
2404
|
+
}
|
|
2405
|
+
}));
|
|
2406
|
+
if (isExceedingLimit()) {
|
|
2407
|
+
return web.createComponent(Tooltip.Root, {
|
|
2408
|
+
get children() {
|
|
2409
|
+
return [web.createComponent(Tooltip.Trigger, {
|
|
2410
|
+
children: buttonElement
|
|
2411
|
+
}), web.createComponent(Tooltip.Content, {
|
|
2412
|
+
get children() {
|
|
2413
|
+
return t("snooze.datePicker.exceedingLimitTooltip", {
|
|
2414
|
+
days: maxDays()
|
|
2415
|
+
});
|
|
2416
|
+
}
|
|
2417
|
+
})];
|
|
2418
|
+
}
|
|
2419
|
+
});
|
|
2420
|
+
}
|
|
2421
|
+
return buttonElement;
|
|
2422
|
+
};
|
|
2423
|
+
var DatePickerCalendar = (props) => {
|
|
2424
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
2425
|
+
const style = useStyle();
|
|
2426
|
+
const {
|
|
2427
|
+
viewMonth
|
|
2428
|
+
} = useDatePicker();
|
|
2429
|
+
const getDaysInMonth = () => {
|
|
2430
|
+
const year = viewMonth().getFullYear();
|
|
2431
|
+
const month = viewMonth().getMonth();
|
|
2432
|
+
const firstDay = new Date(year, month, 1);
|
|
2433
|
+
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
2434
|
+
const startingDay = firstDay.getDay();
|
|
2435
|
+
const days = [];
|
|
2436
|
+
for (let i = 0; i < startingDay; i += 1) {
|
|
2437
|
+
const prevMonthDay = new Date(year, month, -i);
|
|
2438
|
+
days.unshift(prevMonthDay);
|
|
2439
|
+
}
|
|
2440
|
+
for (let i = 1; i <= daysInMonth; i += 1) {
|
|
2441
|
+
days.push(new Date(year, month, i));
|
|
2442
|
+
}
|
|
2443
|
+
const remainingCells = 7 - days.length % 7;
|
|
2444
|
+
if (remainingCells < 7) {
|
|
2445
|
+
for (let i = 1; i <= remainingCells; i += 1) {
|
|
2446
|
+
days.push(new Date(year, month + 1, i));
|
|
2447
|
+
}
|
|
2448
|
+
}
|
|
2449
|
+
return days;
|
|
2450
|
+
};
|
|
2451
|
+
return (() => {
|
|
2452
|
+
var _el$8 = _tmpl$31();
|
|
2453
|
+
_el$8.$$click = (e) => e.stopPropagation();
|
|
2454
|
+
web.spread(_el$8, web.mergeProps({
|
|
2455
|
+
get ["class"]() {
|
|
2456
|
+
return style(local.appearanceKey || "datePickerCalendar", cn("nt-grid nt-grid-cols-7 nt-gap-1", local.class));
|
|
2457
|
+
}
|
|
2458
|
+
}, rest), false, true);
|
|
2459
|
+
web.insert(_el$8, () => getDaysInMonth().map((date) => {
|
|
2460
|
+
return web.createComponent(DatePickerGridCellTrigger, {
|
|
2461
|
+
date
|
|
2462
|
+
});
|
|
2463
|
+
}));
|
|
2464
|
+
return _el$8;
|
|
2465
|
+
})();
|
|
2466
|
+
};
|
|
2467
|
+
web.delegateEvents(["click"]);
|
|
2468
|
+
var _tmpl$33 = /* @__PURE__ */ web.template(`<button>`);
|
|
2469
|
+
var PopoverClose = (props) => {
|
|
2470
|
+
const {
|
|
2471
|
+
onClose
|
|
2472
|
+
} = usePopover();
|
|
2473
|
+
const style = useStyle();
|
|
2474
|
+
const [local, rest] = solidJs.splitProps(props, ["onClick", "asChild", "appearanceKey", "class"]);
|
|
2475
|
+
const handleClick = (e) => {
|
|
2476
|
+
if (typeof local.onClick === "function") {
|
|
2477
|
+
local.onClick(e);
|
|
2478
|
+
}
|
|
2479
|
+
onClose();
|
|
2480
|
+
};
|
|
2481
|
+
if (local.asChild) {
|
|
2482
|
+
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2483
|
+
get component() {
|
|
2484
|
+
return local.asChild;
|
|
2485
|
+
},
|
|
2486
|
+
onClick: handleClick
|
|
2487
|
+
}, rest));
|
|
2488
|
+
}
|
|
2489
|
+
return (() => {
|
|
2490
|
+
var _el$ = _tmpl$33();
|
|
2491
|
+
_el$.$$click = handleClick;
|
|
2492
|
+
web.spread(_el$, web.mergeProps({
|
|
2493
|
+
get ["class"]() {
|
|
2494
|
+
return style(local.appearanceKey || "popoverClose", local.class);
|
|
2495
|
+
}
|
|
2496
|
+
}, rest), false, false);
|
|
2497
|
+
return _el$;
|
|
2498
|
+
})();
|
|
2499
|
+
};
|
|
2500
|
+
web.delegateEvents(["click"]);
|
|
2501
|
+
var _tmpl$34 = /* @__PURE__ */ web.template(`<div>`);
|
|
2502
|
+
var Portal2 = (props) => {
|
|
2503
|
+
const appearance = useAppearance();
|
|
2504
|
+
let currentElement;
|
|
2505
|
+
return [(() => {
|
|
2506
|
+
var _el$ = _tmpl$34();
|
|
2507
|
+
web.use((el) => {
|
|
2508
|
+
currentElement = el;
|
|
2509
|
+
}, _el$);
|
|
2510
|
+
_el$.style.setProperty("display", "none");
|
|
2511
|
+
return _el$;
|
|
2512
|
+
})(), web.createComponent(web.Portal, web.mergeProps({
|
|
2513
|
+
get mount() {
|
|
2514
|
+
return closestNovuRootParent(currentElement, appearance.id());
|
|
2515
|
+
}
|
|
2516
|
+
}, props))];
|
|
2517
|
+
};
|
|
2518
|
+
var closestNovuRootParent = (el, id) => {
|
|
2519
|
+
let element = el;
|
|
2520
|
+
while (element && element.id !== `novu-root-${id}`) {
|
|
2521
|
+
element = element.parentElement;
|
|
2522
|
+
}
|
|
2523
|
+
if (element && element.id === `novu-root-${id}`) {
|
|
2524
|
+
return element;
|
|
2525
|
+
}
|
|
2526
|
+
return void 0;
|
|
2527
|
+
};
|
|
2528
|
+
var PopoverContext = solidJs.createContext(void 0);
|
|
2529
|
+
function PopoverRoot(props) {
|
|
2530
|
+
var _a;
|
|
2531
|
+
const [uncontrolledIsOpen, setUncontrolledIsOpen] = solidJs.createSignal((_a = props.open) != null ? _a : false);
|
|
2532
|
+
const onOpenChange = () => {
|
|
2533
|
+
var _a2;
|
|
2534
|
+
return (_a2 = props.onOpenChange) != null ? _a2 : setUncontrolledIsOpen;
|
|
2535
|
+
};
|
|
2536
|
+
const open = () => {
|
|
2537
|
+
var _a2;
|
|
2538
|
+
return (_a2 = props.open) != null ? _a2 : uncontrolledIsOpen();
|
|
2539
|
+
};
|
|
2540
|
+
const [reference, setReference] = solidJs.createSignal(null);
|
|
2541
|
+
const [floating, setFloating] = solidJs.createSignal(null);
|
|
2542
|
+
const position = solidFloatingUi.useFloating(reference, floating, {
|
|
2543
|
+
strategy: "absolute",
|
|
2544
|
+
placement: props.placement,
|
|
2545
|
+
whileElementsMounted: dom.autoUpdate,
|
|
2546
|
+
middleware: [dom.offset(10), dom.flip({
|
|
2547
|
+
fallbackPlacements: props.fallbackPlacements
|
|
2548
|
+
}), dom.shift()]
|
|
2549
|
+
});
|
|
2550
|
+
const floatingStyles = solidJs.createMemo(() => {
|
|
2551
|
+
var _a2, _b;
|
|
2552
|
+
return {
|
|
2553
|
+
position: position.strategy,
|
|
2554
|
+
top: `${(_a2 = position.y) != null ? _a2 : 0}px`,
|
|
2555
|
+
left: `${(_b = position.x) != null ? _b : 0}px`
|
|
2556
|
+
};
|
|
2557
|
+
});
|
|
2558
|
+
const onClose = () => {
|
|
2559
|
+
onOpenChange()(false);
|
|
2560
|
+
};
|
|
2561
|
+
const onToggle = () => {
|
|
2562
|
+
onOpenChange()((prev) => !prev);
|
|
2563
|
+
};
|
|
2564
|
+
return web.createComponent(PopoverContext.Provider, {
|
|
2565
|
+
value: {
|
|
2566
|
+
onToggle,
|
|
2567
|
+
onClose,
|
|
2568
|
+
reference,
|
|
2569
|
+
setReference,
|
|
2570
|
+
floating,
|
|
2571
|
+
setFloating,
|
|
2572
|
+
open,
|
|
2573
|
+
floatingStyles
|
|
2574
|
+
},
|
|
2575
|
+
get children() {
|
|
2576
|
+
return props.children;
|
|
2577
|
+
}
|
|
2578
|
+
});
|
|
2579
|
+
}
|
|
2580
|
+
function usePopover() {
|
|
2581
|
+
const context = solidJs.useContext(PopoverContext);
|
|
2582
|
+
if (!context) {
|
|
2583
|
+
throw new Error("usePopover must be used within Popover.Root component");
|
|
2584
|
+
}
|
|
2585
|
+
return context;
|
|
2586
|
+
}
|
|
2587
|
+
|
|
2588
|
+
// src/ui/components/primitives/Popover/PopoverContent.tsx
|
|
2589
|
+
var _tmpl$35 = /* @__PURE__ */ web.template(`<div>`);
|
|
2590
|
+
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");
|
|
2591
|
+
var PopoverContentBody = (props) => {
|
|
2592
|
+
const {
|
|
2593
|
+
open,
|
|
2594
|
+
setFloating,
|
|
2595
|
+
floating,
|
|
2596
|
+
floatingStyles
|
|
2597
|
+
} = usePopover();
|
|
2598
|
+
const {
|
|
2599
|
+
setActive,
|
|
2600
|
+
removeActive
|
|
2601
|
+
} = useFocusManager();
|
|
2602
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "style"]);
|
|
2603
|
+
const style = useStyle();
|
|
2604
|
+
solidJs.onMount(() => {
|
|
2605
|
+
const floatingEl = floating();
|
|
2606
|
+
setActive(floatingEl);
|
|
2607
|
+
solidJs.onCleanup(() => {
|
|
2608
|
+
removeActive(floatingEl);
|
|
2609
|
+
});
|
|
2610
|
+
});
|
|
2611
|
+
return (() => {
|
|
2320
2612
|
var _el$ = _tmpl$35();
|
|
2613
|
+
web.use(setFloating, _el$);
|
|
2614
|
+
web.spread(_el$, web.mergeProps({
|
|
2615
|
+
get ["class"]() {
|
|
2616
|
+
return style(local.appearanceKey || "popoverContent", cn(popoverContentVariants(), local.class));
|
|
2617
|
+
},
|
|
2618
|
+
get style() {
|
|
2619
|
+
return floatingStyles();
|
|
2620
|
+
},
|
|
2621
|
+
get ["data-open"]() {
|
|
2622
|
+
return open();
|
|
2623
|
+
}
|
|
2624
|
+
}, rest), false, false);
|
|
2625
|
+
return _el$;
|
|
2626
|
+
})();
|
|
2627
|
+
};
|
|
2628
|
+
var PopoverContent = (props) => {
|
|
2629
|
+
const {
|
|
2630
|
+
open,
|
|
2631
|
+
onClose,
|
|
2632
|
+
reference,
|
|
2633
|
+
floating
|
|
2634
|
+
} = usePopover();
|
|
2635
|
+
const {
|
|
2636
|
+
active
|
|
2637
|
+
} = useFocusManager();
|
|
2638
|
+
const {
|
|
2639
|
+
container
|
|
2640
|
+
} = useAppearance();
|
|
2641
|
+
const handleClickOutside = (e) => {
|
|
2642
|
+
var _a, _b;
|
|
2643
|
+
if ((_a = reference()) == null ? void 0 : _a.contains(e.target)) {
|
|
2644
|
+
return;
|
|
2645
|
+
}
|
|
2646
|
+
const containerElement = container();
|
|
2647
|
+
if (active() !== floating() || ((_b = floating()) == null ? void 0 : _b.contains(e.target)) || containerElement && e.target.shadowRoot === containerElement) {
|
|
2648
|
+
return;
|
|
2649
|
+
}
|
|
2650
|
+
onClose();
|
|
2651
|
+
};
|
|
2652
|
+
const handleEscapeKey = (e) => {
|
|
2653
|
+
if (active() !== floating()) {
|
|
2654
|
+
return;
|
|
2655
|
+
}
|
|
2656
|
+
if (e instanceof KeyboardEvent && e.key === "Escape") {
|
|
2657
|
+
onClose();
|
|
2658
|
+
}
|
|
2659
|
+
};
|
|
2660
|
+
solidJs.onMount(() => {
|
|
2661
|
+
var _a;
|
|
2662
|
+
document.body.addEventListener("click", handleClickOutside);
|
|
2663
|
+
(_a = container()) == null ? void 0 : _a.addEventListener("click", handleClickOutside);
|
|
2664
|
+
document.body.addEventListener("keydown", handleEscapeKey);
|
|
2665
|
+
});
|
|
2666
|
+
solidJs.onCleanup(() => {
|
|
2667
|
+
var _a;
|
|
2668
|
+
document.body.removeEventListener("click", handleClickOutside);
|
|
2669
|
+
(_a = container()) == null ? void 0 : _a.removeEventListener("click", handleClickOutside);
|
|
2670
|
+
document.body.removeEventListener("keydown", handleEscapeKey);
|
|
2671
|
+
});
|
|
2672
|
+
return web.createComponent(solidJs.Show, {
|
|
2673
|
+
get when() {
|
|
2674
|
+
return open();
|
|
2675
|
+
},
|
|
2676
|
+
get children() {
|
|
2677
|
+
return web.createComponent(Portal2, {
|
|
2678
|
+
get children() {
|
|
2679
|
+
return web.createComponent(PopoverContentBody, props);
|
|
2680
|
+
}
|
|
2681
|
+
});
|
|
2682
|
+
}
|
|
2683
|
+
});
|
|
2684
|
+
};
|
|
2685
|
+
var _tmpl$36 = /* @__PURE__ */ web.template(`<button>`);
|
|
2686
|
+
var PopoverTrigger = (props) => {
|
|
2687
|
+
const {
|
|
2688
|
+
setReference,
|
|
2689
|
+
onToggle
|
|
2690
|
+
} = usePopover();
|
|
2691
|
+
const style = useStyle();
|
|
2692
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "asChild", "onClick", "ref"]);
|
|
2693
|
+
const handleClick = (e) => {
|
|
2694
|
+
if (typeof local.onClick === "function") {
|
|
2695
|
+
local.onClick(e);
|
|
2696
|
+
}
|
|
2697
|
+
onToggle();
|
|
2698
|
+
};
|
|
2699
|
+
const ref = solidJs.createMemo(() => local.ref ? mergeRefs(setReference, local.ref) : setReference);
|
|
2700
|
+
if (local.asChild) {
|
|
2701
|
+
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2702
|
+
get component() {
|
|
2703
|
+
return local.asChild;
|
|
2704
|
+
},
|
|
2705
|
+
ref(r$) {
|
|
2706
|
+
var _ref$ = ref();
|
|
2707
|
+
typeof _ref$ === "function" && _ref$(r$);
|
|
2708
|
+
},
|
|
2709
|
+
onClick: handleClick
|
|
2710
|
+
}, rest));
|
|
2711
|
+
}
|
|
2712
|
+
return (() => {
|
|
2713
|
+
var _el$ = _tmpl$36();
|
|
2714
|
+
_el$.$$click = handleClick;
|
|
2715
|
+
var _ref$2 = ref();
|
|
2716
|
+
typeof _ref$2 === "function" && web.use(_ref$2, _el$);
|
|
2717
|
+
web.spread(_el$, web.mergeProps({
|
|
2718
|
+
get ["class"]() {
|
|
2719
|
+
return style(local.appearanceKey || "dropdownTrigger");
|
|
2720
|
+
}
|
|
2721
|
+
}, rest), false, true);
|
|
2722
|
+
web.insert(_el$, () => props.children);
|
|
2723
|
+
return _el$;
|
|
2724
|
+
})();
|
|
2725
|
+
};
|
|
2726
|
+
web.delegateEvents(["click"]);
|
|
2727
|
+
|
|
2728
|
+
// src/ui/components/primitives/Popover/index.ts
|
|
2729
|
+
var Popover = {
|
|
2730
|
+
Root: PopoverRoot,
|
|
2731
|
+
/**
|
|
2732
|
+
* Popover.Trigger renders a `button` and has no default styling.
|
|
2733
|
+
*/
|
|
2734
|
+
Trigger: PopoverTrigger,
|
|
2735
|
+
/**
|
|
2736
|
+
* Popover.Content renders a `div` and has popover specific styling.
|
|
2737
|
+
*/
|
|
2738
|
+
Content: PopoverContent,
|
|
2739
|
+
/**
|
|
2740
|
+
* Popover.Close renders a `button` and has no styling.
|
|
2741
|
+
* Closes the popover when clicked.
|
|
2742
|
+
* `onClick` function is propagated.
|
|
2743
|
+
*/
|
|
2744
|
+
Close: PopoverClose
|
|
2745
|
+
};
|
|
2746
|
+
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";
|
|
2747
|
+
var DropdownContent = (props) => {
|
|
2748
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "class"]);
|
|
2749
|
+
return web.createComponent(Popover.Content, web.mergeProps({
|
|
2750
|
+
get appearanceKey() {
|
|
2751
|
+
return local.appearanceKey || "dropdownContent";
|
|
2752
|
+
},
|
|
2753
|
+
get ["class"]() {
|
|
2754
|
+
return cn(dropdownContentVariants(), local.class);
|
|
2755
|
+
}
|
|
2756
|
+
}, rest));
|
|
2757
|
+
};
|
|
2758
|
+
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";
|
|
2759
|
+
var DropdownItem = (props) => {
|
|
2760
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "onClick", "class", "asChild"]);
|
|
2761
|
+
const {
|
|
2762
|
+
onClose
|
|
2763
|
+
} = usePopover();
|
|
2764
|
+
const handleClick = (e) => {
|
|
2765
|
+
if (typeof local.onClick === "function") {
|
|
2766
|
+
local.onClick(e);
|
|
2767
|
+
}
|
|
2768
|
+
onClose();
|
|
2769
|
+
};
|
|
2770
|
+
if (local.asChild) {
|
|
2771
|
+
return web.createComponent(web.Dynamic, web.mergeProps({
|
|
2772
|
+
get component() {
|
|
2773
|
+
return local.asChild;
|
|
2774
|
+
},
|
|
2775
|
+
onClick: handleClick
|
|
2776
|
+
}, rest));
|
|
2777
|
+
}
|
|
2778
|
+
return web.createComponent(Popover.Close, web.mergeProps({
|
|
2779
|
+
get appearanceKey() {
|
|
2780
|
+
return local.appearanceKey || "dropdownItem";
|
|
2781
|
+
},
|
|
2782
|
+
get ["class"]() {
|
|
2783
|
+
return cn(dropdownItemVariants(), local.class);
|
|
2784
|
+
},
|
|
2785
|
+
onClick: (e) => {
|
|
2786
|
+
if (typeof local.onClick === "function") {
|
|
2787
|
+
local.onClick(e);
|
|
2788
|
+
}
|
|
2789
|
+
onClose();
|
|
2790
|
+
}
|
|
2791
|
+
}, rest));
|
|
2792
|
+
};
|
|
2793
|
+
var DropdownRoot = (props) => {
|
|
2794
|
+
return web.createComponent(Popover.Root, web.mergeProps({
|
|
2795
|
+
placement: "bottom",
|
|
2796
|
+
fallbackPlacements: ["top"]
|
|
2797
|
+
}, props));
|
|
2798
|
+
};
|
|
2799
|
+
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`;
|
|
2800
|
+
var DropdownTrigger = (props) => {
|
|
2801
|
+
const style = useStyle();
|
|
2802
|
+
const [local, rest] = solidJs.splitProps(props, ["appearanceKey", "class"]);
|
|
2803
|
+
return web.createComponent(Popover.Trigger, web.mergeProps({
|
|
2804
|
+
get ["class"]() {
|
|
2805
|
+
return style(local.appearanceKey || "dropdownTrigger", cn(dropdownTriggerButtonVariants(), local.class));
|
|
2806
|
+
}
|
|
2807
|
+
}, rest));
|
|
2808
|
+
};
|
|
2809
|
+
|
|
2810
|
+
// src/ui/components/primitives/Dropdown/index.ts
|
|
2811
|
+
var Dropdown = {
|
|
2812
|
+
Root: DropdownRoot,
|
|
2813
|
+
/**
|
|
2814
|
+
* Dropdown.Trigger renders a `button` and has no default styling.
|
|
2815
|
+
*/
|
|
2816
|
+
Trigger: DropdownTrigger,
|
|
2817
|
+
/**
|
|
2818
|
+
* Dropdown.Content renders a `Popover.Content` by default.
|
|
2819
|
+
*/
|
|
2820
|
+
Content: DropdownContent,
|
|
2821
|
+
/**
|
|
2822
|
+
* Dropdown.Close renders a `Popover.Close` by default.
|
|
2823
|
+
*/
|
|
2824
|
+
Close: Popover.Close,
|
|
2825
|
+
/**
|
|
2826
|
+
* Dropdown.Item renders a `Popover.Close` with dropdown specific styling.
|
|
2827
|
+
* Closes the popover when clicked.
|
|
2828
|
+
* `onClick` function is propagated.
|
|
2829
|
+
*/
|
|
2830
|
+
Item: DropdownItem
|
|
2831
|
+
};
|
|
2832
|
+
var useKeyboardNavigation = ({
|
|
2833
|
+
activeTab,
|
|
2834
|
+
setActiveTab,
|
|
2835
|
+
tabsContainer
|
|
2836
|
+
}) => {
|
|
2837
|
+
const { container } = useAppearance();
|
|
2838
|
+
const [keyboardNavigation, setKeyboardNavigation] = solidJs.createSignal(false);
|
|
2839
|
+
const getRoot = () => {
|
|
2840
|
+
const containerElement = container();
|
|
2841
|
+
return containerElement instanceof ShadowRoot ? containerElement : document;
|
|
2842
|
+
};
|
|
2843
|
+
solidJs.createEffect(() => {
|
|
2844
|
+
const root = getRoot();
|
|
2845
|
+
const handleTabKey = (event) => {
|
|
2846
|
+
var _a;
|
|
2847
|
+
if (!(event instanceof KeyboardEvent) || event.key !== "Tab") {
|
|
2848
|
+
return;
|
|
2849
|
+
}
|
|
2850
|
+
const tabs = (_a = tabsContainer()) == null ? void 0 : _a.querySelectorAll('[role="tab"]');
|
|
2851
|
+
if (!tabs || !root.activeElement) {
|
|
2852
|
+
return;
|
|
2853
|
+
}
|
|
2854
|
+
setKeyboardNavigation(Array.from(tabs).includes(root.activeElement));
|
|
2855
|
+
};
|
|
2856
|
+
root.addEventListener("keyup", handleTabKey);
|
|
2857
|
+
return solidJs.onCleanup(() => root.removeEventListener("keyup", handleTabKey));
|
|
2858
|
+
});
|
|
2859
|
+
solidJs.createEffect(() => {
|
|
2860
|
+
const root = getRoot();
|
|
2861
|
+
const handleArrowKeys = (event) => {
|
|
2862
|
+
var _a, _b;
|
|
2863
|
+
if (!keyboardNavigation() || !(event instanceof KeyboardEvent) || event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
|
|
2864
|
+
return;
|
|
2865
|
+
}
|
|
2866
|
+
const tabElements = Array.from((_b = (_a = tabsContainer()) == null ? void 0 : _a.querySelectorAll('[role="tab"]')) != null ? _b : []);
|
|
2867
|
+
const tabIds = tabElements.map((tab) => tab.id);
|
|
2868
|
+
const currentIndex = tabIds.indexOf(activeTab());
|
|
2869
|
+
const { length } = tabIds;
|
|
2870
|
+
let activeIndex = currentIndex;
|
|
2871
|
+
let newTab = activeTab();
|
|
2872
|
+
if (event.key === "ArrowLeft") {
|
|
2873
|
+
activeIndex = currentIndex === 0 ? length - 1 : currentIndex - 1;
|
|
2874
|
+
newTab = tabIds[activeIndex];
|
|
2875
|
+
} else if (event.key === "ArrowRight") {
|
|
2876
|
+
activeIndex = currentIndex === length - 1 ? 0 : currentIndex + 1;
|
|
2877
|
+
newTab = tabIds[activeIndex];
|
|
2878
|
+
}
|
|
2879
|
+
tabElements[activeIndex].focus();
|
|
2880
|
+
setActiveTab(newTab);
|
|
2881
|
+
};
|
|
2882
|
+
root.addEventListener("keydown", handleArrowKeys);
|
|
2883
|
+
return solidJs.onCleanup(() => root.removeEventListener("keydown", handleArrowKeys));
|
|
2884
|
+
});
|
|
2885
|
+
};
|
|
2886
|
+
|
|
2887
|
+
// src/ui/components/primitives/Tabs/TabsRoot.tsx
|
|
2888
|
+
var _tmpl$37 = /* @__PURE__ */ web.template(`<div>`);
|
|
2889
|
+
var TabsContext = solidJs.createContext(void 0);
|
|
2890
|
+
var useTabsContext = () => {
|
|
2891
|
+
const context = solidJs.useContext(TabsContext);
|
|
2892
|
+
if (!context) {
|
|
2893
|
+
throw new Error("useTabsContext must be used within an TabsContext.Provider");
|
|
2894
|
+
}
|
|
2895
|
+
return context;
|
|
2896
|
+
};
|
|
2897
|
+
var tabsRootVariants = () => "nt-flex nt-flex-col";
|
|
2898
|
+
var TabsRoot = (props) => {
|
|
2899
|
+
var _a;
|
|
2900
|
+
const [local, rest] = solidJs.splitProps(props, ["defaultValue", "value", "class", "appearanceKey", "onChange", "children"]);
|
|
2901
|
+
const [tabsContainer, setTabsContainer] = solidJs.createSignal();
|
|
2902
|
+
const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
|
|
2903
|
+
const [activeTab, setActiveTab] = solidJs.createSignal((_a = local.defaultValue) != null ? _a : "");
|
|
2904
|
+
const style = useStyle();
|
|
2905
|
+
useKeyboardNavigation({
|
|
2906
|
+
tabsContainer,
|
|
2907
|
+
activeTab,
|
|
2908
|
+
setActiveTab
|
|
2909
|
+
});
|
|
2910
|
+
solidJs.createEffect(() => {
|
|
2911
|
+
if (local.value) {
|
|
2912
|
+
setActiveTab(local.value);
|
|
2913
|
+
}
|
|
2914
|
+
});
|
|
2915
|
+
solidJs.createEffect(() => {
|
|
2916
|
+
var _a2;
|
|
2917
|
+
(_a2 = local.onChange) == null ? void 0 : _a2.call(local, activeTab());
|
|
2918
|
+
});
|
|
2919
|
+
return web.createComponent(TabsContext.Provider, {
|
|
2920
|
+
value: {
|
|
2921
|
+
activeTab,
|
|
2922
|
+
setActiveTab,
|
|
2923
|
+
visibleTabs,
|
|
2924
|
+
setVisibleTabs
|
|
2925
|
+
},
|
|
2926
|
+
get children() {
|
|
2927
|
+
var _el$ = _tmpl$37();
|
|
2928
|
+
web.use(setTabsContainer, _el$);
|
|
2929
|
+
web.spread(_el$, web.mergeProps({
|
|
2930
|
+
get ["class"]() {
|
|
2931
|
+
return style(local.appearanceKey || "tabsRoot", cn(tabsRootVariants(), local.class));
|
|
2932
|
+
}
|
|
2933
|
+
}, rest), false, true);
|
|
2934
|
+
web.insert(_el$, () => local.children);
|
|
2935
|
+
return _el$;
|
|
2936
|
+
}
|
|
2937
|
+
});
|
|
2938
|
+
};
|
|
2939
|
+
|
|
2940
|
+
// src/ui/components/primitives/Tabs/TabsContent.tsx
|
|
2941
|
+
var _tmpl$38 = /* @__PURE__ */ web.template(`<div role=tabpanel>`);
|
|
2942
|
+
var TabsContent = (props) => {
|
|
2943
|
+
const [local, rest] = solidJs.splitProps(props, ["value", "class", "appearanceKey", "children"]);
|
|
2944
|
+
const style = useStyle();
|
|
2945
|
+
const {
|
|
2946
|
+
activeTab
|
|
2947
|
+
} = useTabsContext();
|
|
2948
|
+
return web.createComponent(solidJs.Show, {
|
|
2949
|
+
get when() {
|
|
2950
|
+
return activeTab() === local.value;
|
|
2951
|
+
},
|
|
2952
|
+
get children() {
|
|
2953
|
+
var _el$ = _tmpl$38();
|
|
2954
|
+
web.spread(_el$, web.mergeProps({
|
|
2955
|
+
get ["class"]() {
|
|
2956
|
+
return web.memo(() => !!local.class)() ? local.class : style(local.appearanceKey || "tabsContent", activeTab() === local.value ? "nt-block" : "nt-hidden");
|
|
2957
|
+
},
|
|
2958
|
+
get id() {
|
|
2959
|
+
return `tabpanel-${local.value}`;
|
|
2960
|
+
},
|
|
2961
|
+
get ["aria-labelledby"]() {
|
|
2962
|
+
return local.value;
|
|
2963
|
+
},
|
|
2964
|
+
get ["data-state"]() {
|
|
2965
|
+
return activeTab() === local.value ? "active" : "inactive";
|
|
2966
|
+
}
|
|
2967
|
+
}, rest), false, true);
|
|
2968
|
+
web.insert(_el$, () => local.children);
|
|
2969
|
+
return _el$;
|
|
2970
|
+
}
|
|
2971
|
+
});
|
|
2972
|
+
};
|
|
2973
|
+
var _tmpl$39 = /* @__PURE__ */ web.template(`<div role=tablist>`);
|
|
2974
|
+
var _tmpl$211 = /* @__PURE__ */ web.template(`<div class="nt-relative nt-z-[-1]">`);
|
|
2975
|
+
var tabsListVariants = () => "nt-flex nt-gap-6";
|
|
2976
|
+
var TabsList = (props) => {
|
|
2977
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey", "ref", "children"]);
|
|
2978
|
+
const style = useStyle();
|
|
2979
|
+
return [(() => {
|
|
2980
|
+
var _el$ = _tmpl$39();
|
|
2321
2981
|
var _ref$ = local.ref;
|
|
2322
2982
|
typeof _ref$ === "function" ? web.use(_ref$, _el$) : local.ref = _el$;
|
|
2323
2983
|
web.spread(_el$, web.mergeProps({
|
|
@@ -2327,7 +2987,7 @@ var TabsList = (props) => {
|
|
|
2327
2987
|
}, rest), false, true);
|
|
2328
2988
|
web.insert(_el$, () => local.children);
|
|
2329
2989
|
return _el$;
|
|
2330
|
-
})(), _tmpl$
|
|
2990
|
+
})(), _tmpl$211()];
|
|
2331
2991
|
};
|
|
2332
2992
|
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
2993
|
var TabsTrigger = (props) => {
|
|
@@ -2398,8 +3058,8 @@ var inboxFilterLocalizationKeys = {
|
|
|
2398
3058
|
archived: "inbox.filters.labels.archived",
|
|
2399
3059
|
snoozed: "inbox.filters.labels.snoozed"
|
|
2400
3060
|
};
|
|
2401
|
-
var _tmpl$
|
|
2402
|
-
var _tmpl$
|
|
3061
|
+
var _tmpl$40 = /* @__PURE__ */ web.template(`<span><span>`);
|
|
3062
|
+
var _tmpl$212 = /* @__PURE__ */ web.template(`<span>`);
|
|
2403
3063
|
var cases = [{
|
|
2404
3064
|
status: "unreadRead" /* UNREAD_READ */,
|
|
2405
3065
|
iconKey: "unread",
|
|
@@ -2467,7 +3127,7 @@ var StatusItem = (props) => {
|
|
|
2467
3127
|
},
|
|
2468
3128
|
get children() {
|
|
2469
3129
|
return [(() => {
|
|
2470
|
-
var _el$ = _tmpl$
|
|
3130
|
+
var _el$ = _tmpl$40(), _el$2 = _el$.firstChild;
|
|
2471
3131
|
web.insert(_el$, web.createComponent(IconRendererWrapper, {
|
|
2472
3132
|
get iconKey() {
|
|
2473
3133
|
return props.iconKey;
|
|
@@ -2475,7 +3135,7 @@ var StatusItem = (props) => {
|
|
|
2475
3135
|
"class": itemIconClass,
|
|
2476
3136
|
get fallback() {
|
|
2477
3137
|
return (() => {
|
|
2478
|
-
var _el$3 = _tmpl$
|
|
3138
|
+
var _el$3 = _tmpl$212();
|
|
2479
3139
|
web.className(_el$3, itemIconClass);
|
|
2480
3140
|
web.insert(_el$3, () => props.icon());
|
|
2481
3141
|
return _el$3;
|
|
@@ -2516,7 +3176,7 @@ var StatusItem = (props) => {
|
|
|
2516
3176
|
};
|
|
2517
3177
|
|
|
2518
3178
|
// src/ui/components/elements/InboxStatus/InboxStatusDropdown.tsx
|
|
2519
|
-
var _tmpl$
|
|
3179
|
+
var _tmpl$41 = /* @__PURE__ */ web.template(`<span>`);
|
|
2520
3180
|
var StatusDropdown = () => {
|
|
2521
3181
|
const style = useStyle();
|
|
2522
3182
|
const {
|
|
@@ -2544,7 +3204,7 @@ var StatusDropdown = () => {
|
|
|
2544
3204
|
}, triggerProps, {
|
|
2545
3205
|
get children() {
|
|
2546
3206
|
return [(() => {
|
|
2547
|
-
var _el$ = _tmpl$
|
|
3207
|
+
var _el$ = _tmpl$41();
|
|
2548
3208
|
web.insert(_el$, () => t(inboxFilterLocalizationKeys[status()]));
|
|
2549
3209
|
web.effect((_p$) => {
|
|
2550
3210
|
var _v$ = inboxFilterLocalizationKeys[status()], _v$2 = style("inboxStatus__title", "nt-text-base");
|
|
@@ -2632,7 +3292,7 @@ var useNotificationsInfiniteScroll = (props) => {
|
|
|
2632
3292
|
);
|
|
2633
3293
|
solidJs.onMount(() => {
|
|
2634
3294
|
const listener = ({ data: data2 }) => {
|
|
2635
|
-
if (!data2 || !
|
|
3295
|
+
if (!data2 || !chunk5P6SPWNU_js.isSameFilter(filter, data2.filter)) {
|
|
2636
3296
|
return;
|
|
2637
3297
|
}
|
|
2638
3298
|
mutate({ data: data2.notifications, hasMore: data2.hasMore });
|
|
@@ -2642,7 +3302,7 @@ var useNotificationsInfiniteScroll = (props) => {
|
|
|
2642
3302
|
});
|
|
2643
3303
|
solidJs.createEffect(() => chunk7B52C2XE_js.__async(void 0, null, function* () {
|
|
2644
3304
|
const newFilter = chunk7B52C2XE_js.__spreadValues({}, props.options());
|
|
2645
|
-
if (
|
|
3305
|
+
if (chunk5P6SPWNU_js.isSameFilter(filter, newFilter)) {
|
|
2646
3306
|
return;
|
|
2647
3307
|
}
|
|
2648
3308
|
novu.notifications.clearCache();
|
|
@@ -2702,7 +3362,7 @@ var useReadAll = (props) => {
|
|
|
2702
3362
|
};
|
|
2703
3363
|
|
|
2704
3364
|
// src/ui/components/elements/Header/MoreActionsOptions.tsx
|
|
2705
|
-
var _tmpl$
|
|
3365
|
+
var _tmpl$43 = /* @__PURE__ */ web.template(`<span>`);
|
|
2706
3366
|
var iconKeyToComponentMap = {
|
|
2707
3367
|
markAsRead: MarkAsRead,
|
|
2708
3368
|
markAsArchived: MarkAsArchived,
|
|
@@ -2772,7 +3432,7 @@ var ActionsItem = (props) => {
|
|
|
2772
3432
|
});
|
|
2773
3433
|
}
|
|
2774
3434
|
}), (() => {
|
|
2775
|
-
var _el$ = _tmpl$
|
|
3435
|
+
var _el$ = _tmpl$43();
|
|
2776
3436
|
web.insert(_el$, () => t(props.localizationKey));
|
|
2777
3437
|
web.effect((_p$) => {
|
|
2778
3438
|
var _v$ = props.localizationKey, _v$2 = style("moreActions__dropdownItemLabel", "nt-leading-none");
|
|
@@ -2838,14 +3498,14 @@ var MoreActionsDropdown = () => {
|
|
|
2838
3498
|
};
|
|
2839
3499
|
|
|
2840
3500
|
// src/ui/components/elements/Header/ActionsContainer.tsx
|
|
2841
|
-
var _tmpl$
|
|
3501
|
+
var _tmpl$44 = /* @__PURE__ */ web.template(`<div>`);
|
|
2842
3502
|
var ActionsContainer = (props) => {
|
|
2843
3503
|
const style = useStyle();
|
|
2844
3504
|
const cogsIconClass = style("icon", "nt-size-5", {
|
|
2845
3505
|
iconKey: "cogs"
|
|
2846
3506
|
});
|
|
2847
3507
|
return (() => {
|
|
2848
|
-
var _el$ = _tmpl$
|
|
3508
|
+
var _el$ = _tmpl$44();
|
|
2849
3509
|
web.insert(_el$, web.createComponent(MoreActionsDropdown, {}), null);
|
|
2850
3510
|
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
2851
3511
|
get when() {
|
|
@@ -2877,11 +3537,11 @@ var ActionsContainer = (props) => {
|
|
|
2877
3537
|
};
|
|
2878
3538
|
|
|
2879
3539
|
// src/ui/components/elements/Header/Header.tsx
|
|
2880
|
-
var _tmpl$
|
|
3540
|
+
var _tmpl$45 = /* @__PURE__ */ web.template(`<div>`);
|
|
2881
3541
|
var Header = (props) => {
|
|
2882
3542
|
const style = useStyle();
|
|
2883
3543
|
return (() => {
|
|
2884
|
-
var _el$ = _tmpl$
|
|
3544
|
+
var _el$ = _tmpl$45();
|
|
2885
3545
|
web.insert(_el$, web.createComponent(StatusDropdown, {}), null);
|
|
2886
3546
|
web.insert(_el$, web.createComponent(ActionsContainer, {
|
|
2887
3547
|
get showPreferences() {
|
|
@@ -2892,7 +3552,7 @@ var Header = (props) => {
|
|
|
2892
3552
|
return _el$;
|
|
2893
3553
|
})();
|
|
2894
3554
|
};
|
|
2895
|
-
var _tmpl$
|
|
3555
|
+
var _tmpl$46 = /* @__PURE__ */ web.template(`<div>`);
|
|
2896
3556
|
var Root = (props) => {
|
|
2897
3557
|
const [_, rest] = solidJs.splitProps(props, ["class"]);
|
|
2898
3558
|
const {
|
|
@@ -2908,7 +3568,7 @@ var Root = (props) => {
|
|
|
2908
3568
|
},
|
|
2909
3569
|
children: new Comment(" Powered by Novu - https://novu.co ")
|
|
2910
3570
|
}), (() => {
|
|
2911
|
-
var _el$ = _tmpl$
|
|
3571
|
+
var _el$ = _tmpl$46();
|
|
2912
3572
|
web.spread(_el$, web.mergeProps({
|
|
2913
3573
|
get id() {
|
|
2914
3574
|
return `novu-root-${id()}`;
|
|
@@ -2920,15 +3580,15 @@ var Root = (props) => {
|
|
|
2920
3580
|
return _el$;
|
|
2921
3581
|
})()];
|
|
2922
3582
|
};
|
|
2923
|
-
var _tmpl$
|
|
3583
|
+
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
3584
|
var RouteFill = (props) => {
|
|
2925
3585
|
return (() => {
|
|
2926
|
-
var _el$ = _tmpl$
|
|
3586
|
+
var _el$ = _tmpl$47();
|
|
2927
3587
|
web.spread(_el$, props, true, true);
|
|
2928
3588
|
return _el$;
|
|
2929
3589
|
})();
|
|
2930
3590
|
};
|
|
2931
|
-
var _tmpl$
|
|
3591
|
+
var _tmpl$48 = /* @__PURE__ */ web.template(`<div><div>`);
|
|
2932
3592
|
var isInterpolateSizeSupported = () => {
|
|
2933
3593
|
return CSS.supports("interpolate-size", "allow-keywords");
|
|
2934
3594
|
};
|
|
@@ -2961,7 +3621,7 @@ var Collapsible = (props) => {
|
|
|
2961
3621
|
return props.open ? `${scrollHeight()}px` : "0px";
|
|
2962
3622
|
};
|
|
2963
3623
|
return (() => {
|
|
2964
|
-
var _el$ = _tmpl$
|
|
3624
|
+
var _el$ = _tmpl$48(), _el$2 = _el$.firstChild;
|
|
2965
3625
|
web.spread(_el$, web.mergeProps({
|
|
2966
3626
|
get ["class"]() {
|
|
2967
3627
|
return style("collapsible", props.class);
|
|
@@ -2981,7 +3641,7 @@ var Collapsible = (props) => {
|
|
|
2981
3641
|
return _el$;
|
|
2982
3642
|
})();
|
|
2983
3643
|
};
|
|
2984
|
-
var _tmpl$
|
|
3644
|
+
var _tmpl$49 = /* @__PURE__ */ web.template(`<label><input type=checkbox class=nt-sr-only><div>`);
|
|
2985
3645
|
var Switch = (props) => {
|
|
2986
3646
|
const style = useStyle();
|
|
2987
3647
|
const handleChange = () => {
|
|
@@ -3007,7 +3667,7 @@ var Switch = (props) => {
|
|
|
3007
3667
|
const state = () => props.state;
|
|
3008
3668
|
const disabled = () => props.disabled;
|
|
3009
3669
|
return (() => {
|
|
3010
|
-
var _el$ = _tmpl$
|
|
3670
|
+
var _el$ = _tmpl$49(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
3011
3671
|
_el$2.addEventListener("change", handleChange);
|
|
3012
3672
|
web.effect((_p$) => {
|
|
3013
3673
|
var _v$ = style("channelSwitch", cn("nt-relative nt-inline-flex nt-cursor-pointer nt-items-center", {
|
|
@@ -3033,7 +3693,7 @@ var Switch = (props) => {
|
|
|
3033
3693
|
};
|
|
3034
3694
|
|
|
3035
3695
|
// src/ui/components/elements/Preferences/ChannelRow.tsx
|
|
3036
|
-
var _tmpl$
|
|
3696
|
+
var _tmpl$50 = /* @__PURE__ */ web.template(`<div><div><div></div><span></span></div><div>`);
|
|
3037
3697
|
var ChannelRow = (props) => {
|
|
3038
3698
|
const style = useStyle();
|
|
3039
3699
|
const updatePreference = (enabled) => chunk7B52C2XE_js.__async(void 0, null, function* () {
|
|
@@ -3047,7 +3707,7 @@ var ChannelRow = (props) => {
|
|
|
3047
3707
|
const state = () => props.channel.state;
|
|
3048
3708
|
const channel = () => props.channel.channel;
|
|
3049
3709
|
return (() => {
|
|
3050
|
-
var _el$ = _tmpl$
|
|
3710
|
+
var _el$ = _tmpl$50(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
|
|
3051
3711
|
web.insert(_el$3, web.createComponent(ChannelIcon, {
|
|
3052
3712
|
appearanceKey: "channel__icon",
|
|
3053
3713
|
get channel() {
|
|
@@ -3170,8 +3830,8 @@ var getLabel = (channel) => {
|
|
|
3170
3830
|
};
|
|
3171
3831
|
|
|
3172
3832
|
// src/ui/components/elements/Preferences/PreferencesRow.tsx
|
|
3173
|
-
var _tmpl$
|
|
3174
|
-
var _tmpl$
|
|
3833
|
+
var _tmpl$51 = /* @__PURE__ */ web.template(`<div>`);
|
|
3834
|
+
var _tmpl$213 = /* @__PURE__ */ web.template(`<div><div><div><div><span></span></div></div><span>`);
|
|
3175
3835
|
var _tmpl$310 = /* @__PURE__ */ web.template(`<span>`);
|
|
3176
3836
|
var iconKeyToComponentMap2 = {
|
|
3177
3837
|
cogs: Cogs,
|
|
@@ -3205,7 +3865,7 @@ var PreferencesRow = (props) => {
|
|
|
3205
3865
|
return channels().length > 0;
|
|
3206
3866
|
},
|
|
3207
3867
|
get children() {
|
|
3208
|
-
var _el$ = _tmpl$
|
|
3868
|
+
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
3869
|
_el$2.$$click = () => {
|
|
3210
3870
|
setIsOpenChannels((prev) => !prev);
|
|
3211
3871
|
};
|
|
@@ -3253,7 +3913,7 @@ var PreferencesRow = (props) => {
|
|
|
3253
3913
|
return isOpenChannels();
|
|
3254
3914
|
},
|
|
3255
3915
|
get children() {
|
|
3256
|
-
var _el$7 = _tmpl$
|
|
3916
|
+
var _el$7 = _tmpl$51();
|
|
3257
3917
|
web.insert(_el$7, web.createComponent(solidJs.Index, {
|
|
3258
3918
|
get each() {
|
|
3259
3919
|
return channels();
|
|
@@ -3326,19 +3986,19 @@ var WorkflowDescription = (props) => {
|
|
|
3326
3986
|
return channels.map((c, index) => [c, web.memo(() => index < channels.length - 1 && ", ")]);
|
|
3327
3987
|
};
|
|
3328
3988
|
return (() => {
|
|
3329
|
-
var _el$9 = _tmpl$
|
|
3989
|
+
var _el$9 = _tmpl$51();
|
|
3330
3990
|
web.insert(_el$9, channelNames);
|
|
3331
3991
|
web.effect(() => web.className(_el$9, style(props.appearanceKey, cn("nt-text-sm nt-text-foreground-alpha-600 nt-text-start", props.class))));
|
|
3332
3992
|
return _el$9;
|
|
3333
3993
|
})();
|
|
3334
3994
|
};
|
|
3335
3995
|
web.delegateEvents(["click"]);
|
|
3336
|
-
var _tmpl$
|
|
3337
|
-
var _tmpl$
|
|
3996
|
+
var _tmpl$53 = /* @__PURE__ */ web.template(`<div>`);
|
|
3997
|
+
var _tmpl$214 = /* @__PURE__ */ web.template(`<div><div></div><div>`);
|
|
3338
3998
|
var SkeletonText = (props) => {
|
|
3339
3999
|
const style = useStyle();
|
|
3340
4000
|
return (() => {
|
|
3341
|
-
var _el$ = _tmpl$
|
|
4001
|
+
var _el$ = _tmpl$53();
|
|
3342
4002
|
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
4003
|
return _el$;
|
|
3344
4004
|
})();
|
|
@@ -3346,7 +4006,7 @@ var SkeletonText = (props) => {
|
|
|
3346
4006
|
var SkeletonAvatar = (props) => {
|
|
3347
4007
|
const style = useStyle();
|
|
3348
4008
|
return (() => {
|
|
3349
|
-
var _el$2 = _tmpl$
|
|
4009
|
+
var _el$2 = _tmpl$53();
|
|
3350
4010
|
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
4011
|
return _el$2;
|
|
3352
4012
|
})();
|
|
@@ -3354,7 +4014,7 @@ var SkeletonAvatar = (props) => {
|
|
|
3354
4014
|
var SkeletonSwitch = (props) => {
|
|
3355
4015
|
const style = useStyle();
|
|
3356
4016
|
return (() => {
|
|
3357
|
-
var _el$3 = _tmpl$
|
|
4017
|
+
var _el$3 = _tmpl$214(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
|
|
3358
4018
|
web.effect((_p$) => {
|
|
3359
4019
|
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
4020
|
_v$ !== _p$.e && web.className(_el$3, _p$.e = _v$);
|
|
@@ -3371,7 +4031,7 @@ var SkeletonSwitch = (props) => {
|
|
|
3371
4031
|
};
|
|
3372
4032
|
|
|
3373
4033
|
// src/ui/components/elements/Preferences/PreferencesListSkeleton.tsx
|
|
3374
|
-
var _tmpl$
|
|
4034
|
+
var _tmpl$54 = /* @__PURE__ */ web.template(`<div>`);
|
|
3375
4035
|
var channelIcons = [InApp, Email, Sms, Push, Chat];
|
|
3376
4036
|
var PreferencesListSkeleton = (props) => {
|
|
3377
4037
|
const style = useStyle();
|
|
@@ -3379,7 +4039,7 @@ var PreferencesListSkeleton = (props) => {
|
|
|
3379
4039
|
t
|
|
3380
4040
|
} = useLocalization();
|
|
3381
4041
|
return (() => {
|
|
3382
|
-
var _el$ = _tmpl$
|
|
4042
|
+
var _el$ = _tmpl$54();
|
|
3383
4043
|
web.insert(_el$, web.createComponent(Motion.div, {
|
|
3384
4044
|
get animate() {
|
|
3385
4045
|
return {
|
|
@@ -3421,7 +4081,7 @@ var PreferencesListSkeleton = (props) => {
|
|
|
3421
4081
|
return style("preferencesList__skeletonIcon", "nt-size-8 nt-p-2 nt-rounded-lg nt-bg-neutral-alpha-100");
|
|
3422
4082
|
}
|
|
3423
4083
|
}), (() => {
|
|
3424
|
-
var _el$3 = _tmpl$
|
|
4084
|
+
var _el$3 = _tmpl$54();
|
|
3425
4085
|
web.insert(_el$3, web.createComponent(SkeletonText, {
|
|
3426
4086
|
appearanceKey: "notificationList__skeletonText",
|
|
3427
4087
|
"class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
|
|
@@ -3439,7 +4099,7 @@ var PreferencesListSkeleton = (props) => {
|
|
|
3439
4099
|
}
|
|
3440
4100
|
});
|
|
3441
4101
|
})), (() => {
|
|
3442
|
-
var _el$2 = _tmpl$
|
|
4102
|
+
var _el$2 = _tmpl$54();
|
|
3443
4103
|
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
4104
|
return _el$2;
|
|
3445
4105
|
})()];
|
|
@@ -3525,26 +4185,26 @@ var DefaultPreferences = (props) => {
|
|
|
3525
4185
|
}
|
|
3526
4186
|
});
|
|
3527
4187
|
};
|
|
3528
|
-
var _tmpl$
|
|
4188
|
+
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
4189
|
var NodeTree = (props) => {
|
|
3530
4190
|
return (() => {
|
|
3531
|
-
var _el$ = _tmpl$
|
|
4191
|
+
var _el$ = _tmpl$55();
|
|
3532
4192
|
web.spread(_el$, props, true, true);
|
|
3533
4193
|
return _el$;
|
|
3534
4194
|
})();
|
|
3535
4195
|
};
|
|
3536
|
-
var _tmpl$
|
|
4196
|
+
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
4197
|
var Info = (props) => {
|
|
3538
4198
|
return (() => {
|
|
3539
|
-
var _el$ = _tmpl$
|
|
4199
|
+
var _el$ = _tmpl$56();
|
|
3540
4200
|
web.spread(_el$, props, true, true);
|
|
3541
4201
|
return _el$;
|
|
3542
4202
|
})();
|
|
3543
4203
|
};
|
|
3544
4204
|
|
|
3545
4205
|
// src/ui/components/elements/Preferences/GroupedPreferencesRow.tsx
|
|
3546
|
-
var _tmpl$
|
|
3547
|
-
var _tmpl$
|
|
4206
|
+
var _tmpl$57 = /* @__PURE__ */ web.template(`<div><div><span data-localization=preferences.group.info></span></div><div>`);
|
|
4207
|
+
var _tmpl$215 = /* @__PURE__ */ web.template(`<div><div><div><span></span></div><div><span>`);
|
|
3548
4208
|
var GroupedPreferencesRow = (props) => {
|
|
3549
4209
|
const style = useStyle();
|
|
3550
4210
|
const {
|
|
@@ -3609,7 +4269,7 @@ var GroupedPreferencesRow = (props) => {
|
|
|
3609
4269
|
return Object.keys(uniqueChannels()).length > 0;
|
|
3610
4270
|
},
|
|
3611
4271
|
get children() {
|
|
3612
|
-
var _el$ = _tmpl$
|
|
4272
|
+
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
4273
|
_el$2.$$click = () => {
|
|
3614
4274
|
setIsOpened((prev) => !prev);
|
|
3615
4275
|
};
|
|
@@ -3643,7 +4303,7 @@ var GroupedPreferencesRow = (props) => {
|
|
|
3643
4303
|
return isOpened();
|
|
3644
4304
|
},
|
|
3645
4305
|
get children() {
|
|
3646
|
-
var _el$7 = _tmpl$
|
|
4306
|
+
var _el$7 = _tmpl$57(), _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$10 = _el$8.nextSibling;
|
|
3647
4307
|
web.insert(_el$8, web.createComponent(solidJs.Index, {
|
|
3648
4308
|
get each() {
|
|
3649
4309
|
return Object.keys(uniqueChannels());
|
|
@@ -3767,7 +4427,7 @@ var GroupedPreferences = (props) => {
|
|
|
3767
4427
|
};
|
|
3768
4428
|
|
|
3769
4429
|
// src/ui/components/elements/Preferences/Preferences.tsx
|
|
3770
|
-
var _tmpl$
|
|
4430
|
+
var _tmpl$58 = /* @__PURE__ */ web.template(`<div>`);
|
|
3771
4431
|
var Preferences = () => {
|
|
3772
4432
|
var _a;
|
|
3773
4433
|
const novu = useNovu();
|
|
@@ -3854,7 +4514,7 @@ var Preferences = () => {
|
|
|
3854
4514
|
})) != null ? _c : [];
|
|
3855
4515
|
});
|
|
3856
4516
|
return (() => {
|
|
3857
|
-
var _el$ = _tmpl$
|
|
4517
|
+
var _el$ = _tmpl$58();
|
|
3858
4518
|
web.insert(_el$, web.createComponent(PreferencesRow, {
|
|
3859
4519
|
iconKey: "cogs",
|
|
3860
4520
|
get preference() {
|
|
@@ -3895,646 +4555,186 @@ var Preferences = () => {
|
|
|
3895
4555
|
get children() {
|
|
3896
4556
|
return web.createComponent(GroupedPreferences, {
|
|
3897
4557
|
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
|
|
4558
|
+
return groupedPreferences();
|
|
4559
|
+
},
|
|
4560
|
+
get loading() {
|
|
4561
|
+
return loading();
|
|
4562
|
+
},
|
|
4563
|
+
updatePreference,
|
|
4564
|
+
bulkUpdatePreferences
|
|
4156
4565
|
});
|
|
4157
|
-
},
|
|
4158
|
-
get ["data-open"]() {
|
|
4159
|
-
return open();
|
|
4160
4566
|
}
|
|
4161
|
-
}
|
|
4567
|
+
}), null);
|
|
4568
|
+
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
4569
|
return _el$;
|
|
4163
4570
|
})();
|
|
4164
4571
|
};
|
|
4165
|
-
var
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
} = useTooltip();
|
|
4572
|
+
var _tmpl$59 = /* @__PURE__ */ web.template(`<div><div data-localization=preferences.title>`);
|
|
4573
|
+
var PreferencesHeader = (props) => {
|
|
4574
|
+
const style = useStyle();
|
|
4169
4575
|
const {
|
|
4170
|
-
|
|
4171
|
-
} =
|
|
4172
|
-
const
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4576
|
+
t
|
|
4577
|
+
} = useLocalization();
|
|
4578
|
+
const arrowLeftIconClass = style("preferencesHeader__back__button__icon", "nt-size-4", {
|
|
4579
|
+
iconKey: "arrowLeft"
|
|
4580
|
+
});
|
|
4581
|
+
return (() => {
|
|
4582
|
+
var _el$ = _tmpl$59(), _el$2 = _el$.firstChild;
|
|
4583
|
+
web.insert(_el$, web.createComponent(solidJs.Show, {
|
|
4584
|
+
get when() {
|
|
4585
|
+
return props.navigateToNotifications;
|
|
4586
|
+
},
|
|
4587
|
+
children: (navigateToNotifications) => web.createComponent(Button, {
|
|
4588
|
+
appearanceKey: "preferencesHeader__back__button",
|
|
4589
|
+
"class": "nt-text-foreground-alpha-600",
|
|
4590
|
+
variant: "unstyled",
|
|
4591
|
+
size: "none",
|
|
4592
|
+
get onClick() {
|
|
4593
|
+
return navigateToNotifications();
|
|
4184
4594
|
},
|
|
4185
4595
|
get children() {
|
|
4186
|
-
return web.createComponent(
|
|
4187
|
-
|
|
4188
|
-
|
|
4596
|
+
return web.createComponent(IconRendererWrapper, {
|
|
4597
|
+
iconKey: "arrowLeft",
|
|
4598
|
+
"class": arrowLeftIconClass,
|
|
4599
|
+
get fallback() {
|
|
4600
|
+
return web.createComponent(ArrowLeft, {
|
|
4601
|
+
"class": arrowLeftIconClass
|
|
4602
|
+
});
|
|
4189
4603
|
}
|
|
4190
4604
|
});
|
|
4191
4605
|
}
|
|
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);
|
|
4606
|
+
})
|
|
4607
|
+
}), _el$2);
|
|
4608
|
+
web.insert(_el$2, () => t("preferences.title"));
|
|
4609
|
+
web.effect((_p$) => {
|
|
4610
|
+
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");
|
|
4611
|
+
_v$ !== _p$.e && web.className(_el$, _p$.e = _v$);
|
|
4612
|
+
_v$2 !== _p$.t && web.className(_el$2, _p$.t = _v$2);
|
|
4613
|
+
return _p$;
|
|
4614
|
+
}, {
|
|
4615
|
+
e: void 0,
|
|
4616
|
+
t: void 0
|
|
4237
4617
|
});
|
|
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
4618
|
return _el$;
|
|
4247
4619
|
})();
|
|
4248
4620
|
};
|
|
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));
|
|
4621
|
+
var useTabsDropdown = ({ tabs }) => {
|
|
4622
|
+
const [tabsList, setTabsList] = solidJs.createSignal();
|
|
4623
|
+
const [visibleTabs, setVisibleTabs] = solidJs.createSignal([]);
|
|
4624
|
+
const [dropdownTabs, setDropdownTabs] = solidJs.createSignal([]);
|
|
4625
|
+
solidJs.onMount(() => {
|
|
4626
|
+
const tabsListEl = tabsList();
|
|
4627
|
+
if (!tabsListEl) return;
|
|
4628
|
+
const tabsElements = [...tabsListEl.querySelectorAll('[role="tab"]')];
|
|
4629
|
+
const observer = new IntersectionObserver(
|
|
4630
|
+
(entries) => {
|
|
4631
|
+
let visibleTabIds = entries.filter((entry) => entry.isIntersecting && entry.intersectionRatio === 1).map((entry) => entry.target.id);
|
|
4632
|
+
if (tabsElements.length === visibleTabIds.length) {
|
|
4633
|
+
setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
|
|
4634
|
+
observer.disconnect();
|
|
4635
|
+
return;
|
|
4306
4636
|
}
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4637
|
+
visibleTabIds = visibleTabIds.slice(0, -1);
|
|
4638
|
+
setVisibleTabs(tabs.filter((tab) => visibleTabIds.includes(tab.label)));
|
|
4639
|
+
setDropdownTabs(tabs.filter((tab) => !visibleTabIds.includes(tab.label)));
|
|
4640
|
+
observer.disconnect();
|
|
4641
|
+
},
|
|
4642
|
+
{ root: tabsListEl }
|
|
4643
|
+
);
|
|
4644
|
+
for (const tabElement of tabsElements) {
|
|
4645
|
+
observer.observe(tabElement);
|
|
4310
4646
|
}
|
|
4311
4647
|
});
|
|
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
|
-
};
|
|
4648
|
+
return { dropdownTabs, setTabsList, visibleTabs };
|
|
4649
|
+
};
|
|
4650
|
+
var _tmpl$60 = /* @__PURE__ */ web.template(`<strong>`);
|
|
4651
|
+
var _tmpl$216 = /* @__PURE__ */ web.template(`<p>`);
|
|
4652
|
+
var Bold = (props) => {
|
|
4653
|
+
const style = useStyle();
|
|
4654
|
+
return (() => {
|
|
4655
|
+
var _el$ = _tmpl$60();
|
|
4656
|
+
web.insert(_el$, () => props.children);
|
|
4657
|
+
web.effect(() => web.className(_el$, style(props.appearanceKey || "strong", "nt-font-semibold")));
|
|
4658
|
+
return _el$;
|
|
4659
|
+
})();
|
|
4660
|
+
};
|
|
4661
|
+
var Text = (props) => props.children;
|
|
4662
|
+
var Markdown = (props) => {
|
|
4663
|
+
const [local, rest] = solidJs.splitProps(props, ["class", "children", "appearanceKey", "strongAppearanceKey"]);
|
|
4664
|
+
const style = useStyle();
|
|
4665
|
+
const tokens = solidJs.createMemo(() => chunkERC62PGI_js.parseMarkdownIntoTokens(local.children));
|
|
4364
4666
|
return (() => {
|
|
4365
|
-
var _el$2 = _tmpl$216()
|
|
4667
|
+
var _el$2 = _tmpl$216();
|
|
4366
4668
|
web.spread(_el$2, web.mergeProps({
|
|
4367
4669
|
get ["class"]() {
|
|
4368
|
-
return style(local.appearanceKey
|
|
4670
|
+
return style(local.appearanceKey, cn(local.class));
|
|
4369
4671
|
}
|
|
4370
4672
|
}, 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();
|
|
4673
|
+
web.insert(_el$2, web.createComponent(solidJs.For, {
|
|
4674
|
+
get each() {
|
|
4675
|
+
return tokens();
|
|
4380
4676
|
},
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
}
|
|
4390
|
-
}
|
|
4391
|
-
}
|
|
4677
|
+
children: (token) => {
|
|
4678
|
+
if (token.type === "bold") {
|
|
4679
|
+
return web.createComponent(Bold, {
|
|
4680
|
+
get appearanceKey() {
|
|
4681
|
+
return local.strongAppearanceKey;
|
|
4682
|
+
},
|
|
4683
|
+
get children() {
|
|
4684
|
+
return token.content;
|
|
4685
|
+
}
|
|
4686
|
+
});
|
|
4687
|
+
} else {
|
|
4688
|
+
return web.createComponent(Text, {
|
|
4689
|
+
get children() {
|
|
4690
|
+
return token.content;
|
|
4691
|
+
}
|
|
4692
|
+
});
|
|
4693
|
+
}
|
|
4392
4694
|
}
|
|
4393
|
-
}), _el$3);
|
|
4394
|
-
web.insert(_el$3, () => viewMonth().toLocaleDateString("en-US", {
|
|
4395
|
-
month: "long",
|
|
4396
|
-
year: "numeric"
|
|
4397
4695
|
}));
|
|
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
4696
|
return _el$2;
|
|
4423
4697
|
})();
|
|
4424
4698
|
};
|
|
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);
|
|
4699
|
+
var Markdown_default = Markdown;
|
|
4700
|
+
var _tmpl$61 = /* @__PURE__ */ web.template(`<span>`);
|
|
4701
|
+
var badgeVariants = classVarianceAuthority.cva(cn("nt-inline-flex nt-flex-row nt-gap-1 nt-items-center"), {
|
|
4702
|
+
variants: {
|
|
4703
|
+
variant: {
|
|
4704
|
+
secondary: "nt-bg-neutral-alpha-50"
|
|
4460
4705
|
},
|
|
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();
|
|
4706
|
+
size: {
|
|
4707
|
+
default: "nt-px-1 nt-py-px nt-rounded-sm nt-text-xs nt-px-1"
|
|
4473
4708
|
}
|
|
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
|
-
});
|
|
4709
|
+
},
|
|
4710
|
+
defaultVariants: {
|
|
4711
|
+
variant: "secondary",
|
|
4712
|
+
size: "default"
|
|
4489
4713
|
}
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
var DatePickerCalendar = (props) => {
|
|
4714
|
+
});
|
|
4715
|
+
var Badge = (props) => {
|
|
4493
4716
|
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
4494
4717
|
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
4718
|
return (() => {
|
|
4521
|
-
var _el$
|
|
4522
|
-
_el
|
|
4523
|
-
|
|
4719
|
+
var _el$ = _tmpl$61();
|
|
4720
|
+
web.spread(_el$, web.mergeProps({
|
|
4721
|
+
get ["data-variant"]() {
|
|
4722
|
+
return props.variant;
|
|
4723
|
+
},
|
|
4724
|
+
get ["data-size"]() {
|
|
4725
|
+
return props.size;
|
|
4726
|
+
},
|
|
4524
4727
|
get ["class"]() {
|
|
4525
|
-
return style(local.appearanceKey || "
|
|
4728
|
+
return style(local.appearanceKey || "badge", cn(badgeVariants({
|
|
4729
|
+
variant: props.variant,
|
|
4730
|
+
size: props.size
|
|
4731
|
+
}), local.class));
|
|
4526
4732
|
}
|
|
4527
|
-
}, rest), false,
|
|
4528
|
-
|
|
4529
|
-
return web.createComponent(DatePickerGridCellTrigger, {
|
|
4530
|
-
date
|
|
4531
|
-
});
|
|
4532
|
-
}));
|
|
4533
|
-
return _el$8;
|
|
4733
|
+
}, rest), false, false);
|
|
4734
|
+
return _el$;
|
|
4534
4735
|
})();
|
|
4535
4736
|
};
|
|
4536
|
-
web.
|
|
4537
|
-
var _tmpl$60 = /* @__PURE__ */ web.template(`<input>`);
|
|
4737
|
+
var _tmpl$63 = /* @__PURE__ */ web.template(`<input>`);
|
|
4538
4738
|
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
4739
|
variants: {
|
|
4540
4740
|
variant: {
|
|
@@ -4554,7 +4754,7 @@ var Input = (props) => {
|
|
|
4554
4754
|
const [local, rest] = solidJs.splitProps(props, ["class", "appearanceKey"]);
|
|
4555
4755
|
const style = useStyle();
|
|
4556
4756
|
return (() => {
|
|
4557
|
-
var _el$ = _tmpl$
|
|
4757
|
+
var _el$ = _tmpl$63();
|
|
4558
4758
|
web.spread(_el$, web.mergeProps({
|
|
4559
4759
|
get ["data-variant"]() {
|
|
4560
4760
|
return props.variant;
|
|
@@ -4574,7 +4774,7 @@ var Input = (props) => {
|
|
|
4574
4774
|
};
|
|
4575
4775
|
|
|
4576
4776
|
// src/ui/components/primitives/TimePicker.tsx
|
|
4577
|
-
var _tmpl$
|
|
4777
|
+
var _tmpl$64 = /* @__PURE__ */ web.template(`<div><span>:</span><select><option value=AM>AM</option><option value=PM>PM`);
|
|
4578
4778
|
var TimePicker = (props) => {
|
|
4579
4779
|
const [local, rest] = solidJs.splitProps(props, ["value", "onChange", "class", "appearanceKey"]);
|
|
4580
4780
|
const style = useStyle();
|
|
@@ -4614,7 +4814,7 @@ var TimePicker = (props) => {
|
|
|
4614
4814
|
}
|
|
4615
4815
|
};
|
|
4616
4816
|
return (() => {
|
|
4617
|
-
var _el$ = _tmpl$
|
|
4817
|
+
var _el$ = _tmpl$64(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
4618
4818
|
_el$.$$click = (e) => e.stopPropagation();
|
|
4619
4819
|
web.spread(_el$, web.mergeProps({
|
|
4620
4820
|
get ["class"]() {
|
|
@@ -4702,7 +4902,7 @@ var enforceMinMax = (el) => {
|
|
|
4702
4902
|
web.delegateEvents(["click"]);
|
|
4703
4903
|
|
|
4704
4904
|
// src/ui/components/Notification/SnoozeDateTimePicker.tsx
|
|
4705
|
-
var _tmpl$
|
|
4905
|
+
var _tmpl$65 = /* @__PURE__ */ web.template(`<div><div><p></p></div><div>`);
|
|
4706
4906
|
var fiveMinutesFromNow = () => {
|
|
4707
4907
|
const futureTime = new Date(Date.now() + 5 * 60 * 1e3);
|
|
4708
4908
|
const hours = futureTime.getHours();
|
|
@@ -4799,7 +4999,7 @@ var SnoozeDateTimePicker = (props) => {
|
|
|
4799
4999
|
return t("snooze.datePicker.noDateSelectedTooltip");
|
|
4800
5000
|
});
|
|
4801
5001
|
return (() => {
|
|
4802
|
-
var _el$ = _tmpl$
|
|
5002
|
+
var _el$ = _tmpl$65(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$2.nextSibling;
|
|
4803
5003
|
_el$.$$click = (e) => e.stopPropagation();
|
|
4804
5004
|
web.insert(_el$, web.createComponent(DatePicker, {
|
|
4805
5005
|
onDateChange: (date) => setSelectedDate(date),
|
|
@@ -4884,7 +5084,7 @@ var SnoozeDateTimePicker = (props) => {
|
|
|
4884
5084
|
web.delegateEvents(["click"]);
|
|
4885
5085
|
|
|
4886
5086
|
// src/ui/components/Notification/NotificationActions.tsx
|
|
4887
|
-
var _tmpl$
|
|
5087
|
+
var _tmpl$66 = /* @__PURE__ */ web.template(`<div><span>`);
|
|
4888
5088
|
var _tmpl$217 = /* @__PURE__ */ web.template(`<span>`);
|
|
4889
5089
|
var SNOOZE_PRESETS = [{
|
|
4890
5090
|
key: "snooze.options.anHourFromNow",
|
|
@@ -4931,7 +5131,7 @@ var SnoozeDropdownItem = (props) => {
|
|
|
4931
5131
|
iconKey: "clock"
|
|
4932
5132
|
});
|
|
4933
5133
|
const content = [(() => {
|
|
4934
|
-
var _el$ = _tmpl$
|
|
5134
|
+
var _el$ = _tmpl$66(), _el$2 = _el$.firstChild;
|
|
4935
5135
|
web.insert(_el$, web.createComponent(IconRendererWrapper, {
|
|
4936
5136
|
iconKey: "clock",
|
|
4937
5137
|
"class": snoozeItemIconClass,
|
|
@@ -5328,7 +5528,7 @@ var renderNotificationActions = (notification, status) => {
|
|
|
5328
5528
|
};
|
|
5329
5529
|
|
|
5330
5530
|
// src/ui/components/Notification/DefaultNotification.tsx
|
|
5331
|
-
var _tmpl$
|
|
5531
|
+
var _tmpl$67 = /* @__PURE__ */ web.template(`<img>`);
|
|
5332
5532
|
var _tmpl$218 = /* @__PURE__ */ web.template(`<div>`);
|
|
5333
5533
|
var _tmpl$311 = /* @__PURE__ */ web.template(`<span>`);
|
|
5334
5534
|
var _tmpl$410 = /* @__PURE__ */ web.template(`<a><div><div></div><div></div><div>`);
|
|
@@ -5420,7 +5620,7 @@ var DefaultNotification = (props) => {
|
|
|
5420
5620
|
})();
|
|
5421
5621
|
},
|
|
5422
5622
|
get children() {
|
|
5423
|
-
var _el$2 = _tmpl$
|
|
5623
|
+
var _el$2 = _tmpl$67();
|
|
5424
5624
|
web.effect((_p$) => {
|
|
5425
5625
|
var _v$ = style("notificationImage", "nt-size-8 nt-rounded-lg nt-object-cover nt-aspect-square"), _v$2 = props.notification.avatar;
|
|
5426
5626
|
_v$ !== _p$.e && web.className(_el$2, _p$.e = _v$);
|
|
@@ -5671,14 +5871,30 @@ var NewMessagesCta = (props) => {
|
|
|
5671
5871
|
}
|
|
5672
5872
|
});
|
|
5673
5873
|
};
|
|
5674
|
-
var _tmpl$
|
|
5874
|
+
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>`);
|
|
5875
|
+
function Key(props) {
|
|
5876
|
+
return (() => {
|
|
5877
|
+
var _el$ = _tmpl$68();
|
|
5878
|
+
web.spread(_el$, props, true, true);
|
|
5879
|
+
return _el$;
|
|
5880
|
+
})();
|
|
5881
|
+
}
|
|
5882
|
+
|
|
5883
|
+
// src/ui/components/Notification/NotificationListSkeleton.tsx
|
|
5884
|
+
var _tmpl$69 = /* @__PURE__ */ web.template(`<div>`);
|
|
5885
|
+
var _tmpl$219 = /* @__PURE__ */ web.template(`<p data-localization=notifications.emptyNotice>`);
|
|
5886
|
+
var _tmpl$312 = /* @__PURE__ */ web.template(`<div><p>Trigger your notification. No setup needed.</p><p>Temporary <Inbox />, data will expire in 24h. Connect API key to persists messages, enable
|
|
5887
|
+
preferences, and connect email.</p><div><div>`);
|
|
5675
5888
|
var NotificationListSkeleton = (props) => {
|
|
5676
5889
|
const style = useStyle();
|
|
5677
5890
|
const {
|
|
5678
5891
|
t
|
|
5679
5892
|
} = useLocalization();
|
|
5893
|
+
const {
|
|
5894
|
+
isKeyless
|
|
5895
|
+
} = useInboxContext();
|
|
5680
5896
|
return (() => {
|
|
5681
|
-
var _el$ = _tmpl$
|
|
5897
|
+
var _el$ = _tmpl$69();
|
|
5682
5898
|
web.insert(_el$, web.createComponent(Motion.div, {
|
|
5683
5899
|
get animate() {
|
|
5684
5900
|
return {
|
|
@@ -5717,7 +5933,7 @@ var NotificationListSkeleton = (props) => {
|
|
|
5717
5933
|
appearanceKey: "notificationList__skeletonAvatar",
|
|
5718
5934
|
"class": "nt-w-8 nt-h-8 nt-rounded-full nt-bg-neutral-alpha-100"
|
|
5719
5935
|
}), (() => {
|
|
5720
|
-
var _el$3 = _tmpl$
|
|
5936
|
+
var _el$3 = _tmpl$69();
|
|
5721
5937
|
web.insert(_el$3, web.createComponent(SkeletonText, {
|
|
5722
5938
|
appearanceKey: "notificationList__skeletonText",
|
|
5723
5939
|
"class": "nt-h-2 nt-w-1/3 nt-bg-neutral-alpha-50 nt-rounded"
|
|
@@ -5731,7 +5947,7 @@ var NotificationListSkeleton = (props) => {
|
|
|
5731
5947
|
})()];
|
|
5732
5948
|
}
|
|
5733
5949
|
}))), (() => {
|
|
5734
|
-
var _el$2 = _tmpl$
|
|
5950
|
+
var _el$2 = _tmpl$69();
|
|
5735
5951
|
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
5952
|
return _el$2;
|
|
5737
5953
|
})()];
|
|
@@ -5763,9 +5979,12 @@ var NotificationListSkeleton = (props) => {
|
|
|
5763
5979
|
get ["class"]() {
|
|
5764
5980
|
return style("notificationListEmptyNotice", "nt-text-center");
|
|
5765
5981
|
},
|
|
5766
|
-
"data-localization": "notifications.emptyNotice",
|
|
5767
5982
|
get children() {
|
|
5768
|
-
return
|
|
5983
|
+
return web.memo(() => !!isKeyless())() ? web.createComponent(KeylessEmptyState, {}) : (() => {
|
|
5984
|
+
var _el$4 = _tmpl$219();
|
|
5985
|
+
web.insert(_el$4, () => t("notifications.emptyNotice"));
|
|
5986
|
+
return _el$4;
|
|
5987
|
+
})();
|
|
5769
5988
|
}
|
|
5770
5989
|
});
|
|
5771
5990
|
}
|
|
@@ -5774,10 +5993,69 @@ var NotificationListSkeleton = (props) => {
|
|
|
5774
5993
|
return _el$;
|
|
5775
5994
|
})();
|
|
5776
5995
|
};
|
|
5996
|
+
function KeylessEmptyState() {
|
|
5997
|
+
const style = useStyle();
|
|
5998
|
+
const novu = useNovu();
|
|
5999
|
+
return (() => {
|
|
6000
|
+
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;
|
|
6001
|
+
web.insert(_el$8, web.createComponent(Button, {
|
|
6002
|
+
variant: "secondary",
|
|
6003
|
+
size: "sm",
|
|
6004
|
+
get ["class"]() {
|
|
6005
|
+
return style(
|
|
6006
|
+
"notificationListEmptyNotice",
|
|
6007
|
+
// eslint-disable-next-line max-len
|
|
6008
|
+
"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"
|
|
6009
|
+
);
|
|
6010
|
+
},
|
|
6011
|
+
onClick: () => window.open("https://go.novu.co/keyless", "_blank", "noopener noreferrer"),
|
|
6012
|
+
get children() {
|
|
6013
|
+
return [web.createComponent(Key, {
|
|
6014
|
+
get ["class"]() {
|
|
6015
|
+
return style("lockIcon", "nt-size-4 nt-mr-2");
|
|
6016
|
+
}
|
|
6017
|
+
}), "Get API key"];
|
|
6018
|
+
}
|
|
6019
|
+
}), _el$9);
|
|
6020
|
+
web.insert(_el$9, web.createComponent(Button, {
|
|
6021
|
+
variant: "default",
|
|
6022
|
+
size: "sm",
|
|
6023
|
+
get ["class"]() {
|
|
6024
|
+
return style(
|
|
6025
|
+
"notificationListEmptyNotice",
|
|
6026
|
+
// eslint-disable-next-line max-len
|
|
6027
|
+
"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"
|
|
6028
|
+
);
|
|
6029
|
+
},
|
|
6030
|
+
onClick: () => novu.notifications.triggerHelloWorldEvent(),
|
|
6031
|
+
get children() {
|
|
6032
|
+
return [web.createComponent(Bell, {
|
|
6033
|
+
get ["class"]() {
|
|
6034
|
+
return style("bellIcon", "nt-size-4 nt-mr-2");
|
|
6035
|
+
}
|
|
6036
|
+
}), "Send 'Hello World!'"];
|
|
6037
|
+
}
|
|
6038
|
+
}));
|
|
6039
|
+
web.effect((_p$) => {
|
|
6040
|
+
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");
|
|
6041
|
+
_v$ !== _p$.e && web.className(_el$5, _p$.e = _v$);
|
|
6042
|
+
_v$2 !== _p$.t && web.className(_el$6, _p$.t = _v$2);
|
|
6043
|
+
_v$3 !== _p$.a && web.className(_el$7, _p$.a = _v$3);
|
|
6044
|
+
_v$4 !== _p$.o && web.className(_el$8, _p$.o = _v$4);
|
|
6045
|
+
return _p$;
|
|
6046
|
+
}, {
|
|
6047
|
+
e: void 0,
|
|
6048
|
+
t: void 0,
|
|
6049
|
+
a: void 0,
|
|
6050
|
+
o: void 0
|
|
6051
|
+
});
|
|
6052
|
+
return _el$5;
|
|
6053
|
+
})();
|
|
6054
|
+
}
|
|
5777
6055
|
|
|
5778
6056
|
// src/ui/components/Notification/NotificationList.tsx
|
|
5779
|
-
var _tmpl$
|
|
5780
|
-
var _tmpl$
|
|
6057
|
+
var _tmpl$70 = /* @__PURE__ */ web.template(`<div>`);
|
|
6058
|
+
var _tmpl$220 = /* @__PURE__ */ web.template(`<div><div>`);
|
|
5781
6059
|
var NotificationList = (props) => {
|
|
5782
6060
|
var _a, _b, _c, _d;
|
|
5783
6061
|
const options = solidJs.createMemo(() => chunk7B52C2XE_js.__spreadProps(chunk7B52C2XE_js.__spreadValues({}, props.filter), {
|
|
@@ -5821,7 +6099,7 @@ var NotificationList = (props) => {
|
|
|
5821
6099
|
});
|
|
5822
6100
|
});
|
|
5823
6101
|
return (() => {
|
|
5824
|
-
var _el$ = _tmpl$
|
|
6102
|
+
var _el$ = _tmpl$220(), _el$2 = _el$.firstChild;
|
|
5825
6103
|
web.insert(_el$, web.createComponent(NewMessagesCta, {
|
|
5826
6104
|
get count() {
|
|
5827
6105
|
return count();
|
|
@@ -5878,7 +6156,7 @@ var NotificationList = (props) => {
|
|
|
5878
6156
|
return !end();
|
|
5879
6157
|
},
|
|
5880
6158
|
get children() {
|
|
5881
|
-
var _el$3 = _tmpl$
|
|
6159
|
+
var _el$3 = _tmpl$70();
|
|
5882
6160
|
web.use(setEl, _el$3);
|
|
5883
6161
|
web.insert(_el$3, web.createComponent(NotificationListSkeleton, {
|
|
5884
6162
|
loading: true
|
|
@@ -5900,13 +6178,13 @@ var NotificationList = (props) => {
|
|
|
5900
6178
|
return _el$;
|
|
5901
6179
|
})();
|
|
5902
6180
|
};
|
|
5903
|
-
var _tmpl$
|
|
6181
|
+
var _tmpl$71 = /* @__PURE__ */ web.template(`<span>`);
|
|
5904
6182
|
var getDisplayCount = (count) => count >= 100 ? "99+" : count;
|
|
5905
6183
|
var InboxTabUnreadNotificationsCount = (props) => {
|
|
5906
6184
|
const style = useStyle();
|
|
5907
6185
|
const displayCount = solidJs.createMemo(() => getDisplayCount(props.count));
|
|
5908
6186
|
return (() => {
|
|
5909
|
-
var _el$ = _tmpl$
|
|
6187
|
+
var _el$ = _tmpl$71();
|
|
5910
6188
|
web.insert(_el$, displayCount);
|
|
5911
6189
|
web.effect(() => web.className(_el$, style("notificationsTabsTriggerCount", "nt-rounded-full nt-bg-counter nt-px-[6px] nt-text-counter-foreground nt-text-sm")));
|
|
5912
6190
|
return _el$;
|
|
@@ -5933,7 +6211,7 @@ var InboxTab = (props) => {
|
|
|
5933
6211
|
},
|
|
5934
6212
|
get children() {
|
|
5935
6213
|
return [(() => {
|
|
5936
|
-
var _el$2 = _tmpl$
|
|
6214
|
+
var _el$2 = _tmpl$71();
|
|
5937
6215
|
web.insert(_el$2, () => props.label);
|
|
5938
6216
|
web.effect(() => web.className(_el$2, style("notificationsTabsTriggerLabel", "nt-text-sm nt-font-medium")));
|
|
5939
6217
|
return _el$2;
|
|
@@ -5973,7 +6251,7 @@ var InboxDropdownTab = (props) => {
|
|
|
5973
6251
|
},
|
|
5974
6252
|
get children() {
|
|
5975
6253
|
return [(() => {
|
|
5976
|
-
var _el$3 = _tmpl$
|
|
6254
|
+
var _el$3 = _tmpl$71();
|
|
5977
6255
|
web.insert(_el$3, () => props.label);
|
|
5978
6256
|
web.effect(() => web.className(_el$3, style("moreTabs__dropdownItemLabel", "nt-mr-auto")));
|
|
5979
6257
|
return _el$3;
|
|
@@ -6174,7 +6452,7 @@ var InboxTabs = (props) => {
|
|
|
6174
6452
|
};
|
|
6175
6453
|
|
|
6176
6454
|
// src/ui/components/Inbox.tsx
|
|
6177
|
-
var _tmpl$
|
|
6455
|
+
var _tmpl$73 = /* @__PURE__ */ web.template(`<div>`);
|
|
6178
6456
|
var InboxPage = /* @__PURE__ */ function(InboxPage2) {
|
|
6179
6457
|
InboxPage2["Notifications"] = "notifications";
|
|
6180
6458
|
InboxPage2["Preferences"] = "preferences";
|
|
@@ -6199,7 +6477,7 @@ var InboxContent = (props) => {
|
|
|
6199
6477
|
};
|
|
6200
6478
|
});
|
|
6201
6479
|
return (() => {
|
|
6202
|
-
var _el$ = _tmpl$
|
|
6480
|
+
var _el$ = _tmpl$73();
|
|
6203
6481
|
web.insert(_el$, web.createComponent(solidJs.Switch, {
|
|
6204
6482
|
get children() {
|
|
6205
6483
|
return [web.createComponent(solidJs.Match, {
|
|
@@ -6476,6 +6754,10 @@ var Renderer = (props) => {
|
|
|
6476
6754
|
return web.createComponent(FocusManagerProvider, {
|
|
6477
6755
|
get children() {
|
|
6478
6756
|
return web.createComponent(InboxProvider, {
|
|
6757
|
+
get applicationIdentifier() {
|
|
6758
|
+
var _a;
|
|
6759
|
+
return (_a = props.options) == null ? void 0 : _a.applicationIdentifier;
|
|
6760
|
+
},
|
|
6479
6761
|
get tabs() {
|
|
6480
6762
|
return props.tabs;
|
|
6481
6763
|
},
|