@local-civics/mgmt-ui 0.1.219 → 0.1.221
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/index.d.ts +16 -0
- package/dist/index.js +356 -255
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +356 -255
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -60,7 +60,7 @@ function styleInject(css, ref) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
var css_248z = "@font-face{font-family:ProximaNova;src:url(https://cdn.localcivics.io/fonts/ProximaNova.otf) format(\"opentype\")}@font-face{font-family:ProximaNova;font-weight:700;src:url(https://cdn.localcivics.io/fonts/ProximaNovaBold.otf) format(\"opentype\")}*,:after,: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-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:rgba(59,130,246,.5);--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: }::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-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:rgba(59,130,246,.5);--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: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\\!relative{position:relative!important}.left-3{left:.75rem}.top-1\\/2{top:50%}.left-3\\.5{left:.875rem}.bottom-\\[-20px\\]{bottom:-20px}.left-1\\/2{left:50%}.m-3{margin:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1\\.5{margin-top:.375rem}.-ml-2{margin-left:-.5rem}.mt-4{margin-top:1rem}.mb-8{margin-bottom:2rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-full{height:100%}.h-9{height:2.25rem}.h-8{height:2rem}.h-7{height:1.75rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-11{height:2.75rem}.h-16{height:4rem}.h-\\[30px\\]{height:30px}.w-10{width:2.5rem}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.w-36{width:9rem}.w-28{width:7rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-40{width:10rem}.w-8{width:2rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-12{width:3rem}.w-16{width:4rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-24{width:6rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-11{width:2.75rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.min-w-0{min-width:0}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.max-w-\\[460px\\]{max-width:460px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-x-1\\/2,.-translate-y-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))}.-translate-x-1\\/2{--tw-translate-x:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{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))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1\\.2fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_1fr_0\\.6fr\\]{grid-template-columns:1.5fr 2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_0\\.8fr\\]{grid-template-columns:1.5fr 2fr .8fr}.grid-cols-\\[1fr_3fr\\]{grid-template-columns:1fr 3fr}.grid-cols-\\[1fr_1fr_2fr_0\\.8fr\\]{grid-template-columns:1fr 1fr 2fr .8fr}.grid-cols-\\[2fr_1fr\\]{grid-template-columns:2fr 1fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-4{gap:1rem}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-2{gap:.5rem}.gap-1\\.5{gap:.375rem}.gap-2\\.5{gap:.625rem}.gap-3\\.5{gap:.875rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-y-4{row-gap:1rem}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-\\[8px\\]{border-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-sky-blue-400\\/30{border-color:rgba(59,208,242,.3)}.border-mint-400\\/30{border-color:rgba(30,226,175,.3)}.border-gold-400\\/30{border-color:rgba(255,212,77,.3)}.border-transparent{border-color:transparent}.border-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.border-l-sky-blue-400{--tw-border-opacity:1;border-left-color:rgb(59 208 242/var(--tw-border-opacity))}.border-l-mint-400{--tw-border-opacity:1;border-left-color:rgb(30 226 175/var(--tw-border-opacity))}.border-l-gold-400{--tw-border-opacity:1;border-left-color:rgb(255 212 77/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-sky-blue-400\\/20{background-color:rgba(59,208,242,.2)}.bg-mint-100{--tw-bg-opacity:1;background-color:rgb(208 251 240/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-gold-100{--tw-bg-opacity:1;background-color:rgb(255 248 214/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-transparent{background-color:transparent}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-white\\/90{background-color:hsla(0,0%,100%,.9)}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-sky-blue-400\\/15{background-color:rgba(59,208,242,.15)}.bg-mint-400\\/15{background-color:rgba(30,226,175,.15)}.bg-gold-400\\/15{background-color:rgba(255,212,77,.15)}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-gold-400\\/25{background-color:rgba(255,212,77,.25)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-blue-400{--tw-gradient-from:#3bd0f2;--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-mint-400{--tw-gradient-from:#1ee2af;--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gold-400{--tw-gradient-from:#ffd44d;--tw-gradient-to:rgba(255,212,77,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-dark-blue-600{--tw-gradient-from:#0a0f2e;--tw-gradient-to:rgba(10,15,46,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-blue-400\\/15{--tw-gradient-from:rgba(59,208,242,.15);--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-dark-blue-400{--tw-gradient-to:rgba(35,42,58,0);--tw-gradient-stops:var(--tw-gradient-from),#232a3a,var(--tw-gradient-to)}.to-dark-blue-400{--tw-gradient-to:#232a3a}.to-\\[\\#f5c300\\]{--tw-gradient-to:#f5c300}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-mint-400\\/15{--tw-gradient-to:rgba(30,226,175,.15)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.p-2\\.5{padding:.625rem}.p-2{padding:.5rem}.px-\\[22px\\]{padding-left:22px;padding-right:22px}.py-\\[18px\\]{padding-bottom:18px;padding-top:18px}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-9{padding-left:2.25rem}.pr-4{padding-right:1rem}.pl-10{padding-left:2.5rem}.pb-2{padding-bottom:.5rem}.pt-0\\.5{padding-top:.125rem}.pt-0{padding-top:0}.pb-12{padding-bottom:3rem}.pl-2\\.5{padding-left:.625rem}.pl-2{padding-left:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-proxima{font-family:ProximaNova}.text-\\[15\\.5px\\]{font-size:15.5px}.text-xs{font-size:.75rem;line-height:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[11px\\]{font-size:11px}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-mint-400{--tw-text-opacity:1;color:rgb(30 226 175/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-gold-400{--tw-text-opacity:1;color:rgb(255 212 77/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\],.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\]{--tw-shadow:0 3px 12px rgba(255,212,77,.35);--tw-shadow-colored:0 3px 12px var(--tw-shadow-color)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{--tw-shadow:0 2px 10px rgba(30,226,175,.15);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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)}.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)}*,:after,:before{border-style:solid;border-width:0}button{background-color:transparent;background-image:none;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-transform:none}.placeholder\\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.placeholder\\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.first\\:ml-0:first-child{margin-left:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;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))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\\:text-sky-blue-400:hover{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.hover\\:text-slate-500:hover{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-sky-blue-400:focus{--tw-border-opacity:1;border-color:rgb(59 208 242/var(--tw-border-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\\:opacity-50:disabled{opacity:.5}";
|
|
63
|
+
var css_248z = "@font-face{font-family:ProximaNova;src:url(https://cdn.localcivics.io/fonts/ProximaNova.otf) format(\"opentype\")}@font-face{font-family:ProximaNova;font-weight:700;src:url(https://cdn.localcivics.io/fonts/ProximaNovaBold.otf) format(\"opentype\")}*,:after,: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-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:rgba(59,130,246,.5);--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: }::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-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:rgba(59,130,246,.5);--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: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\\!relative{position:relative!important}.left-3{left:.75rem}.top-1\\/2{top:50%}.left-3\\.5{left:.875rem}.bottom-\\[-20px\\]{bottom:-20px}.left-1\\/2{left:50%}.m-3{margin:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1\\.5{margin-top:.375rem}.-ml-2{margin-left:-.5rem}.mt-4{margin-top:1rem}.mt-3{margin-top:.75rem}.mb-8{margin-bottom:2rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-full{height:100%}.h-9{height:2.25rem}.h-8{height:2rem}.h-7{height:1.75rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-11{height:2.75rem}.h-16{height:4rem}.h-\\[30px\\]{height:30px}.max-h-\\[70vh\\]{max-height:70vh}.w-10{width:2.5rem}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.w-36{width:9rem}.w-28{width:7rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-40{width:10rem}.w-8{width:2rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-12{width:3rem}.w-16{width:4rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-24{width:6rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-11{width:2.75rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.min-w-0{min-width:0}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.max-w-\\[460px\\]{max-width:460px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-x-1\\/2,.-translate-y-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))}.-translate-x-1\\/2{--tw-translate-x:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{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))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1\\.2fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_1fr_0\\.6fr\\]{grid-template-columns:1.5fr 2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_0\\.8fr\\]{grid-template-columns:1.5fr 2fr .8fr}.grid-cols-\\[1fr_3fr\\]{grid-template-columns:1fr 3fr}.grid-cols-\\[1fr_1fr_2fr_0\\.8fr\\]{grid-template-columns:1fr 1fr 2fr .8fr}.grid-cols-\\[2fr_1fr\\]{grid-template-columns:2fr 1fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-4{gap:1rem}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-2{gap:.5rem}.gap-1\\.5{gap:.375rem}.gap-2\\.5{gap:.625rem}.gap-3\\.5{gap:.875rem}.gap-6{gap:1.5rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-y-4{row-gap:1rem}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-\\[8px\\]{border-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-sky-blue-400\\/30{border-color:rgba(59,208,242,.3)}.border-mint-400\\/30{border-color:rgba(30,226,175,.3)}.border-gold-400\\/30{border-color:rgba(255,212,77,.3)}.border-transparent{border-color:transparent}.border-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.border-l-sky-blue-400{--tw-border-opacity:1;border-left-color:rgb(59 208 242/var(--tw-border-opacity))}.border-l-mint-400{--tw-border-opacity:1;border-left-color:rgb(30 226 175/var(--tw-border-opacity))}.border-l-gold-400{--tw-border-opacity:1;border-left-color:rgb(255 212 77/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-sky-blue-400\\/20{background-color:rgba(59,208,242,.2)}.bg-mint-100{--tw-bg-opacity:1;background-color:rgb(208 251 240/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-gold-100{--tw-bg-opacity:1;background-color:rgb(255 248 214/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-transparent{background-color:transparent}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-white\\/90{background-color:hsla(0,0%,100%,.9)}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-slate-50\\/60{background-color:rgba(248,250,252,.6)}.bg-sky-blue-400\\/15{background-color:rgba(59,208,242,.15)}.bg-gold-400\\/15{background-color:rgba(255,212,77,.15)}.bg-mint-400\\/15{background-color:rgba(30,226,175,.15)}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-gold-400\\/25{background-color:rgba(255,212,77,.25)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-blue-400{--tw-gradient-from:#3bd0f2;--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-mint-400{--tw-gradient-from:#1ee2af;--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gold-400{--tw-gradient-from:#ffd44d;--tw-gradient-to:rgba(255,212,77,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-dark-blue-600{--tw-gradient-from:#0a0f2e;--tw-gradient-to:rgba(10,15,46,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-blue-400\\/15{--tw-gradient-from:rgba(59,208,242,.15);--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-dark-blue-400{--tw-gradient-to:rgba(35,42,58,0);--tw-gradient-stops:var(--tw-gradient-from),#232a3a,var(--tw-gradient-to)}.to-dark-blue-400{--tw-gradient-to:#232a3a}.to-\\[\\#f5c300\\]{--tw-gradient-to:#f5c300}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-mint-400\\/15{--tw-gradient-to:rgba(30,226,175,.15)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.p-2\\.5{padding:.625rem}.p-2{padding:.5rem}.px-\\[22px\\]{padding-left:22px;padding-right:22px}.py-\\[18px\\]{padding-bottom:18px;padding-top:18px}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-9{padding-left:2.25rem}.pr-4{padding-right:1rem}.pl-10{padding-left:2.5rem}.pb-2{padding-bottom:.5rem}.pr-1{padding-right:.25rem}.pl-4{padding-left:1rem}.pt-0\\.5{padding-top:.125rem}.pt-0{padding-top:0}.pb-12{padding-bottom:3rem}.pl-2\\.5{padding-left:.625rem}.pl-2{padding-left:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-proxima{font-family:ProximaNova}.text-\\[15\\.5px\\]{font-size:15.5px}.text-xs{font-size:.75rem;line-height:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[11px\\]{font-size:11px}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-mint-400{--tw-text-opacity:1;color:rgb(30 226 175/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-gold-400{--tw-text-opacity:1;color:rgb(255 212 77/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\],.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\]{--tw-shadow:0 3px 12px rgba(255,212,77,.35);--tw-shadow-colored:0 3px 12px var(--tw-shadow-color)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{--tw-shadow:0 2px 10px rgba(30,226,175,.15);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.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)}.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)}*,:after,:before{border-style:solid;border-width:0}button{background-color:transparent;background-image:none;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-transform:none}.placeholder\\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.placeholder\\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.first\\:ml-0:first-child{margin-left:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;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))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\\:text-sky-blue-400:hover{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.hover\\:text-slate-500:hover{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-sky-blue-400:focus{--tw-border-opacity:1;border-color:rgb(59 208 242/var(--tw-border-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\\:opacity-50:disabled{opacity:.5}";
|
|
64
64
|
styleInject(css_248z);
|
|
65
65
|
|
|
66
66
|
function UserButton({ image, name, email }) {
|
|
@@ -144,25 +144,25 @@ function LinksGroup({ icon: Icon, href, label, accent = "cyan", initiallyOpened,
|
|
|
144
144
|
), hasLinks && opened && /* @__PURE__ */ React__namespace.createElement("div", { className: "ml-[29px] mt-0.5 flex flex-col gap-0.5 border-l border-slate-100 pl-2.5" }, items));
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
var __defProp$
|
|
148
|
-
var __defProps$
|
|
149
|
-
var __getOwnPropDescs$
|
|
150
|
-
var __getOwnPropSymbols$
|
|
151
|
-
var __hasOwnProp$
|
|
152
|
-
var __propIsEnum$
|
|
153
|
-
var __defNormalProp$
|
|
154
|
-
var __spreadValues$
|
|
147
|
+
var __defProp$h = Object.defineProperty;
|
|
148
|
+
var __defProps$e = Object.defineProperties;
|
|
149
|
+
var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
|
|
150
|
+
var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
|
|
151
|
+
var __hasOwnProp$h = Object.prototype.hasOwnProperty;
|
|
152
|
+
var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
|
|
153
|
+
var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
154
|
+
var __spreadValues$h = (a, b) => {
|
|
155
155
|
for (var prop in b || (b = {}))
|
|
156
|
-
if (__hasOwnProp$
|
|
157
|
-
__defNormalProp$
|
|
158
|
-
if (__getOwnPropSymbols$
|
|
159
|
-
for (var prop of __getOwnPropSymbols$
|
|
160
|
-
if (__propIsEnum$
|
|
161
|
-
__defNormalProp$
|
|
156
|
+
if (__hasOwnProp$h.call(b, prop))
|
|
157
|
+
__defNormalProp$h(a, prop, b[prop]);
|
|
158
|
+
if (__getOwnPropSymbols$h)
|
|
159
|
+
for (var prop of __getOwnPropSymbols$h(b)) {
|
|
160
|
+
if (__propIsEnum$h.call(b, prop))
|
|
161
|
+
__defNormalProp$h(a, prop, b[prop]);
|
|
162
162
|
}
|
|
163
163
|
return a;
|
|
164
164
|
};
|
|
165
|
-
var __spreadProps$
|
|
165
|
+
var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
|
|
166
166
|
const data = [
|
|
167
167
|
{ label: "Home", icon: icons.IconHome2, accent: "cyan" },
|
|
168
168
|
{ label: "Dashboard", icon: icons.IconGauge, accent: "mint" },
|
|
@@ -189,12 +189,12 @@ function Navbar(props) {
|
|
|
189
189
|
}
|
|
190
190
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
191
191
|
LinksGroup,
|
|
192
|
-
__spreadProps$
|
|
192
|
+
__spreadProps$e(__spreadValues$h(__spreadValues$h({
|
|
193
193
|
key: item.label,
|
|
194
194
|
active: props.active
|
|
195
195
|
}, item), context), {
|
|
196
196
|
links: (item.links || []).map((link) => {
|
|
197
|
-
return __spreadValues$
|
|
197
|
+
return __spreadValues$h(__spreadValues$h({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
|
|
198
198
|
})
|
|
199
199
|
})
|
|
200
200
|
);
|
|
@@ -358,9 +358,12 @@ function Emblem(props) {
|
|
|
358
358
|
return;
|
|
359
359
|
}
|
|
360
360
|
const el = ref.current;
|
|
361
|
-
const onLoad = () => setFailed(false);
|
|
362
|
-
el == null ? void 0 : el.addEventListener("iconload", onLoad);
|
|
363
361
|
const timer = setTimeout(() => setFailed(true), LOAD_TIMEOUT_MS);
|
|
362
|
+
const onLoad = () => {
|
|
363
|
+
setFailed(false);
|
|
364
|
+
clearTimeout(timer);
|
|
365
|
+
};
|
|
366
|
+
el == null ? void 0 : el.addEventListener("iconload", onLoad);
|
|
364
367
|
return () => {
|
|
365
368
|
el == null ? void 0 : el.removeEventListener("iconload", onLoad);
|
|
366
369
|
clearTimeout(timer);
|
|
@@ -516,29 +519,29 @@ function useSortableData(items, config = { key: "", direction: null }) {
|
|
|
516
519
|
return { items: sortedItems, requestSort, sortConfig };
|
|
517
520
|
}
|
|
518
521
|
|
|
519
|
-
var __defProp$
|
|
520
|
-
var __defProps$
|
|
521
|
-
var __getOwnPropDescs$
|
|
522
|
-
var __getOwnPropSymbols$
|
|
523
|
-
var __hasOwnProp$
|
|
524
|
-
var __propIsEnum$
|
|
525
|
-
var __defNormalProp$
|
|
526
|
-
var __spreadValues$
|
|
522
|
+
var __defProp$g = Object.defineProperty;
|
|
523
|
+
var __defProps$d = Object.defineProperties;
|
|
524
|
+
var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
|
|
525
|
+
var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
|
|
526
|
+
var __hasOwnProp$g = Object.prototype.hasOwnProperty;
|
|
527
|
+
var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
|
|
528
|
+
var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
529
|
+
var __spreadValues$g = (a, b) => {
|
|
527
530
|
for (var prop in b || (b = {}))
|
|
528
|
-
if (__hasOwnProp$
|
|
529
|
-
__defNormalProp$
|
|
530
|
-
if (__getOwnPropSymbols$
|
|
531
|
-
for (var prop of __getOwnPropSymbols$
|
|
532
|
-
if (__propIsEnum$
|
|
533
|
-
__defNormalProp$
|
|
531
|
+
if (__hasOwnProp$g.call(b, prop))
|
|
532
|
+
__defNormalProp$g(a, prop, b[prop]);
|
|
533
|
+
if (__getOwnPropSymbols$g)
|
|
534
|
+
for (var prop of __getOwnPropSymbols$g(b)) {
|
|
535
|
+
if (__propIsEnum$g.call(b, prop))
|
|
536
|
+
__defNormalProp$g(a, prop, b[prop]);
|
|
534
537
|
}
|
|
535
538
|
return a;
|
|
536
539
|
};
|
|
537
|
-
var __spreadProps$
|
|
540
|
+
var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
|
|
538
541
|
function Table$k(props) {
|
|
539
542
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
540
543
|
const preparedItems = React__namespace.useMemo(() => {
|
|
541
|
-
return props.items.map((item) => __spreadProps$
|
|
544
|
+
return props.items.map((item) => __spreadProps$d(__spreadValues$g({}, item), {
|
|
542
545
|
status: item.isComplete ? 1 : 0
|
|
543
546
|
}));
|
|
544
547
|
}, [props.items]);
|
|
@@ -562,7 +565,7 @@ function Table$k(props) {
|
|
|
562
565
|
return /* @__PURE__ */ React__namespace.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
563
566
|
"div",
|
|
564
567
|
{
|
|
565
|
-
onClick: () => setExpanded(__spreadProps$
|
|
568
|
+
onClick: () => setExpanded(__spreadProps$d(__spreadValues$g({}, expanded), { [row.userId]: !isOpen })),
|
|
566
569
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
567
570
|
},
|
|
568
571
|
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex min-w-0 flex-1 items-center gap-3" }, row.avatar ? /* @__PURE__ */ React__namespace.createElement("img", { src: row.avatar, className: "h-9 w-9 shrink-0 rounded-full object-cover", alt: "" }) : /* @__PURE__ */ React__namespace.createElement("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-mint-400/20 text-xs font-bold text-dark-blue-400" }, initials), /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-sm font-bold text-dark-blue-400" }, row.name), /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-400" }, row.email))),
|
|
@@ -617,6 +620,10 @@ const Badge = (props) => {
|
|
|
617
620
|
{
|
|
618
621
|
title: props.trial ? "LESSONS SUBMITTED" : "BADGE COMPLETION",
|
|
619
622
|
value: props.trial ? props.lessonsCompleted || 0 : numberOfBadges
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
title: "POINT VALUE",
|
|
626
|
+
value: props.weight || 0
|
|
620
627
|
}
|
|
621
628
|
] }), !props.trial && /* @__PURE__ */ React__namespace.createElement("div", { className: "relative w-full max-w-xs" }, /* @__PURE__ */ React__namespace.createElement(icons.IconCategory2, { size: 16, stroke: 2, className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-slate-400" }), /* @__PURE__ */ React__namespace.createElement(
|
|
622
629
|
"select",
|
|
@@ -746,28 +753,28 @@ function relativeTimeFromElapsed(elapsed) {
|
|
|
746
753
|
return "";
|
|
747
754
|
}
|
|
748
755
|
|
|
749
|
-
var __defProp$
|
|
750
|
-
var __defProps$
|
|
751
|
-
var __getOwnPropDescs$
|
|
752
|
-
var __getOwnPropSymbols$
|
|
753
|
-
var __hasOwnProp$
|
|
754
|
-
var __propIsEnum$
|
|
755
|
-
var __defNormalProp$
|
|
756
|
-
var __spreadValues$
|
|
756
|
+
var __defProp$f = Object.defineProperty;
|
|
757
|
+
var __defProps$c = Object.defineProperties;
|
|
758
|
+
var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
|
|
759
|
+
var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
|
|
760
|
+
var __hasOwnProp$f = Object.prototype.hasOwnProperty;
|
|
761
|
+
var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
|
|
762
|
+
var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
763
|
+
var __spreadValues$f = (a, b) => {
|
|
757
764
|
for (var prop in b || (b = {}))
|
|
758
|
-
if (__hasOwnProp$
|
|
759
|
-
__defNormalProp$
|
|
760
|
-
if (__getOwnPropSymbols$
|
|
761
|
-
for (var prop of __getOwnPropSymbols$
|
|
762
|
-
if (__propIsEnum$
|
|
763
|
-
__defNormalProp$
|
|
765
|
+
if (__hasOwnProp$f.call(b, prop))
|
|
766
|
+
__defNormalProp$f(a, prop, b[prop]);
|
|
767
|
+
if (__getOwnPropSymbols$f)
|
|
768
|
+
for (var prop of __getOwnPropSymbols$f(b)) {
|
|
769
|
+
if (__propIsEnum$f.call(b, prop))
|
|
770
|
+
__defNormalProp$f(a, prop, b[prop]);
|
|
764
771
|
}
|
|
765
772
|
return a;
|
|
766
773
|
};
|
|
767
|
-
var __spreadProps$
|
|
774
|
+
var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
|
|
768
775
|
function Table$g(props) {
|
|
769
776
|
const preparedItems = React__namespace.useMemo(() => {
|
|
770
|
-
return props.items.map((item) => __spreadProps$
|
|
777
|
+
return props.items.map((item) => __spreadProps$c(__spreadValues$f({}, item), {
|
|
771
778
|
updatedAtDate: new Date(item.updatedAt)
|
|
772
779
|
}));
|
|
773
780
|
}, [props.items]);
|
|
@@ -970,25 +977,25 @@ const Dashboard = (props) => {
|
|
|
970
977
|
)));
|
|
971
978
|
};
|
|
972
979
|
|
|
973
|
-
var __defProp$
|
|
974
|
-
var __defProps$
|
|
975
|
-
var __getOwnPropDescs$
|
|
976
|
-
var __getOwnPropSymbols$
|
|
977
|
-
var __hasOwnProp$
|
|
978
|
-
var __propIsEnum$
|
|
979
|
-
var __defNormalProp$
|
|
980
|
-
var __spreadValues$
|
|
980
|
+
var __defProp$e = Object.defineProperty;
|
|
981
|
+
var __defProps$b = Object.defineProperties;
|
|
982
|
+
var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
|
|
983
|
+
var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
|
|
984
|
+
var __hasOwnProp$e = Object.prototype.hasOwnProperty;
|
|
985
|
+
var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
|
|
986
|
+
var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
987
|
+
var __spreadValues$e = (a, b) => {
|
|
981
988
|
for (var prop in b || (b = {}))
|
|
982
|
-
if (__hasOwnProp$
|
|
983
|
-
__defNormalProp$
|
|
984
|
-
if (__getOwnPropSymbols$
|
|
985
|
-
for (var prop of __getOwnPropSymbols$
|
|
986
|
-
if (__propIsEnum$
|
|
987
|
-
__defNormalProp$
|
|
989
|
+
if (__hasOwnProp$e.call(b, prop))
|
|
990
|
+
__defNormalProp$e(a, prop, b[prop]);
|
|
991
|
+
if (__getOwnPropSymbols$e)
|
|
992
|
+
for (var prop of __getOwnPropSymbols$e(b)) {
|
|
993
|
+
if (__propIsEnum$e.call(b, prop))
|
|
994
|
+
__defNormalProp$e(a, prop, b[prop]);
|
|
988
995
|
}
|
|
989
996
|
return a;
|
|
990
997
|
};
|
|
991
|
-
var __spreadProps$
|
|
998
|
+
var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
|
|
992
999
|
const openDeleteModal$2 = (student, onDelete) => modals.openConfirmModal({
|
|
993
1000
|
title: `Remove "${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}" from this class?`,
|
|
994
1001
|
centered: true,
|
|
@@ -999,7 +1006,7 @@ const openDeleteModal$2 = (student, onDelete) => modals.openConfirmModal({
|
|
|
999
1006
|
});
|
|
1000
1007
|
function Table$c(props) {
|
|
1001
1008
|
const preparedItems = React__namespace.useMemo(() => {
|
|
1002
|
-
return props.items.map((item) => __spreadProps$
|
|
1009
|
+
return props.items.map((item) => __spreadProps$b(__spreadValues$e({}, item), {
|
|
1003
1010
|
fullName: item.givenName && item.familyName ? `${item.givenName} ${item.familyName}`.toLowerCase() : item.email.toLowerCase()
|
|
1004
1011
|
}));
|
|
1005
1012
|
}, [props.items]);
|
|
@@ -1050,25 +1057,25 @@ function Table$c(props) {
|
|
|
1050
1057
|
}));
|
|
1051
1058
|
}
|
|
1052
1059
|
|
|
1053
|
-
var __defProp$
|
|
1054
|
-
var __defProps$
|
|
1055
|
-
var __getOwnPropDescs$
|
|
1056
|
-
var __getOwnPropSymbols$
|
|
1057
|
-
var __hasOwnProp$
|
|
1058
|
-
var __propIsEnum$
|
|
1059
|
-
var __defNormalProp$
|
|
1060
|
-
var __spreadValues$
|
|
1060
|
+
var __defProp$d = Object.defineProperty;
|
|
1061
|
+
var __defProps$a = Object.defineProperties;
|
|
1062
|
+
var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
|
|
1063
|
+
var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
|
|
1064
|
+
var __hasOwnProp$d = Object.prototype.hasOwnProperty;
|
|
1065
|
+
var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
|
|
1066
|
+
var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
1067
|
+
var __spreadValues$d = (a, b) => {
|
|
1061
1068
|
for (var prop in b || (b = {}))
|
|
1062
|
-
if (__hasOwnProp$
|
|
1063
|
-
__defNormalProp$
|
|
1064
|
-
if (__getOwnPropSymbols$
|
|
1065
|
-
for (var prop of __getOwnPropSymbols$
|
|
1066
|
-
if (__propIsEnum$
|
|
1067
|
-
__defNormalProp$
|
|
1069
|
+
if (__hasOwnProp$d.call(b, prop))
|
|
1070
|
+
__defNormalProp$d(a, prop, b[prop]);
|
|
1071
|
+
if (__getOwnPropSymbols$d)
|
|
1072
|
+
for (var prop of __getOwnPropSymbols$d(b)) {
|
|
1073
|
+
if (__propIsEnum$d.call(b, prop))
|
|
1074
|
+
__defNormalProp$d(a, prop, b[prop]);
|
|
1068
1075
|
}
|
|
1069
1076
|
return a;
|
|
1070
1077
|
};
|
|
1071
|
-
var __spreadProps$
|
|
1078
|
+
var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
|
|
1072
1079
|
const Class = (props) => {
|
|
1073
1080
|
const [opened, setOpened] = React.useState(false);
|
|
1074
1081
|
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1080,7 +1087,7 @@ const Class = (props) => {
|
|
|
1080
1087
|
padding: "xl",
|
|
1081
1088
|
size: "xl"
|
|
1082
1089
|
},
|
|
1083
|
-
/* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$
|
|
1090
|
+
/* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$a(__spreadValues$d({}, props), { close: () => setOpened(false) }))
|
|
1084
1091
|
), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap items-start justify-between gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React__namespace.createElement("div", { onClick: props.onBackClick, className: "flex w-max cursor-pointer items-center gap-1 text-xs font-bold text-sky-blue-400" }, /* @__PURE__ */ React__namespace.createElement(icons.IconArrowLeft, { size: 13, stroke: 2.5 }), "Back"), /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.displayName || "Class"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-500" }, props.description || "No description")), !props.loading && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1085
1092
|
"button",
|
|
1086
1093
|
{
|
|
@@ -1206,20 +1213,20 @@ const DropzoneButton$1 = (props) => {
|
|
|
1206
1213
|
props.onCreateMembers && props.onCreateMembers([values]);
|
|
1207
1214
|
}) }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1208
1215
|
core.TextInput,
|
|
1209
|
-
__spreadValues$
|
|
1216
|
+
__spreadValues$d({
|
|
1210
1217
|
withAsterisk: true,
|
|
1211
1218
|
label: "Email",
|
|
1212
1219
|
placeholder: "Email"
|
|
1213
1220
|
}, form$1.getInputProps("email"))
|
|
1214
1221
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
|
|
1215
1222
|
core.TextInput,
|
|
1216
|
-
__spreadValues$
|
|
1223
|
+
__spreadValues$d({
|
|
1217
1224
|
label: "Given name",
|
|
1218
1225
|
placeholder: "Given name"
|
|
1219
1226
|
}, form$1.getInputProps("givenName"))
|
|
1220
1227
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1221
1228
|
core.TextInput,
|
|
1222
|
-
__spreadValues$
|
|
1229
|
+
__spreadValues$d({
|
|
1223
1230
|
label: "Family name",
|
|
1224
1231
|
placeholder: "Family name"
|
|
1225
1232
|
}, form$1.getInputProps("familyName"))
|
|
@@ -1276,19 +1283,19 @@ function Table$b(props) {
|
|
|
1276
1283
|
)));
|
|
1277
1284
|
}
|
|
1278
1285
|
|
|
1279
|
-
var __defProp$
|
|
1280
|
-
var __getOwnPropSymbols$
|
|
1281
|
-
var __hasOwnProp$
|
|
1282
|
-
var __propIsEnum$
|
|
1283
|
-
var __defNormalProp$
|
|
1284
|
-
var __spreadValues$
|
|
1286
|
+
var __defProp$c = Object.defineProperty;
|
|
1287
|
+
var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
|
|
1288
|
+
var __hasOwnProp$c = Object.prototype.hasOwnProperty;
|
|
1289
|
+
var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
|
|
1290
|
+
var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
1291
|
+
var __spreadValues$c = (a, b) => {
|
|
1285
1292
|
for (var prop in b || (b = {}))
|
|
1286
|
-
if (__hasOwnProp$
|
|
1287
|
-
__defNormalProp$
|
|
1288
|
-
if (__getOwnPropSymbols$
|
|
1289
|
-
for (var prop of __getOwnPropSymbols$
|
|
1290
|
-
if (__propIsEnum$
|
|
1291
|
-
__defNormalProp$
|
|
1293
|
+
if (__hasOwnProp$c.call(b, prop))
|
|
1294
|
+
__defNormalProp$c(a, prop, b[prop]);
|
|
1295
|
+
if (__getOwnPropSymbols$c)
|
|
1296
|
+
for (var prop of __getOwnPropSymbols$c(b)) {
|
|
1297
|
+
if (__propIsEnum$c.call(b, prop))
|
|
1298
|
+
__defNormalProp$c(a, prop, b[prop]);
|
|
1292
1299
|
}
|
|
1293
1300
|
return a;
|
|
1294
1301
|
};
|
|
@@ -1322,14 +1329,14 @@ const Classes = (props) => {
|
|
|
1322
1329
|
props.onCreateClass && props.onCreateClass(values);
|
|
1323
1330
|
}) }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1324
1331
|
core.TextInput,
|
|
1325
|
-
__spreadValues$
|
|
1332
|
+
__spreadValues$c({
|
|
1326
1333
|
withAsterisk: true,
|
|
1327
1334
|
label: "Name",
|
|
1328
1335
|
placeholder: "Class name"
|
|
1329
1336
|
}, form$1.getInputProps("name"))
|
|
1330
1337
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1331
1338
|
core.TextInput,
|
|
1332
|
-
__spreadValues$
|
|
1339
|
+
__spreadValues$c({
|
|
1333
1340
|
label: "Description",
|
|
1334
1341
|
placeholder: "A class for my first period English students"
|
|
1335
1342
|
}, form$1.getInputProps("description"))
|
|
@@ -1633,29 +1640,29 @@ function Stack$3(props) {
|
|
|
1633
1640
|
return /* @__PURE__ */ React__namespace.createElement(reactRouterDom.Link, { to: props.href, className: "flex flex-col gap-4 no-underline" }, props.items.map((row) => /* @__PURE__ */ React__namespace.createElement("div", { key: row.questionName }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, row.questionName), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-sm text-slate-600" }, row.answer.join(", ") || "No answer."))));
|
|
1634
1641
|
}
|
|
1635
1642
|
|
|
1636
|
-
var __defProp$
|
|
1637
|
-
var __defProps$
|
|
1638
|
-
var __getOwnPropDescs$
|
|
1639
|
-
var __getOwnPropSymbols$
|
|
1640
|
-
var __hasOwnProp$
|
|
1641
|
-
var __propIsEnum$
|
|
1642
|
-
var __defNormalProp$
|
|
1643
|
-
var __spreadValues$
|
|
1643
|
+
var __defProp$b = Object.defineProperty;
|
|
1644
|
+
var __defProps$9 = Object.defineProperties;
|
|
1645
|
+
var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
|
|
1646
|
+
var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
|
|
1647
|
+
var __hasOwnProp$b = Object.prototype.hasOwnProperty;
|
|
1648
|
+
var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
|
|
1649
|
+
var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
1650
|
+
var __spreadValues$b = (a, b) => {
|
|
1644
1651
|
for (var prop in b || (b = {}))
|
|
1645
|
-
if (__hasOwnProp$
|
|
1646
|
-
__defNormalProp$
|
|
1647
|
-
if (__getOwnPropSymbols$
|
|
1648
|
-
for (var prop of __getOwnPropSymbols$
|
|
1649
|
-
if (__propIsEnum$
|
|
1650
|
-
__defNormalProp$
|
|
1652
|
+
if (__hasOwnProp$b.call(b, prop))
|
|
1653
|
+
__defNormalProp$b(a, prop, b[prop]);
|
|
1654
|
+
if (__getOwnPropSymbols$b)
|
|
1655
|
+
for (var prop of __getOwnPropSymbols$b(b)) {
|
|
1656
|
+
if (__propIsEnum$b.call(b, prop))
|
|
1657
|
+
__defNormalProp$b(a, prop, b[prop]);
|
|
1651
1658
|
}
|
|
1652
1659
|
return a;
|
|
1653
1660
|
};
|
|
1654
|
-
var __spreadProps$
|
|
1661
|
+
var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
|
|
1655
1662
|
function Table$6(props) {
|
|
1656
1663
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
1657
1664
|
const preparedItems = React__namespace.useMemo(() => {
|
|
1658
|
-
return props.items.map((item) => __spreadProps$
|
|
1665
|
+
return props.items.map((item) => __spreadProps$9(__spreadValues$b({}, item), {
|
|
1659
1666
|
status: item.isComplete ? 2 : item.isStarted ? 1 : 0
|
|
1660
1667
|
}));
|
|
1661
1668
|
}, [props.items]);
|
|
@@ -1679,7 +1686,7 @@ function Table$6(props) {
|
|
|
1679
1686
|
return /* @__PURE__ */ React__namespace.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1680
1687
|
"div",
|
|
1681
1688
|
{
|
|
1682
|
-
onClick: () => setExpanded(__spreadProps$
|
|
1689
|
+
onClick: () => setExpanded(__spreadProps$9(__spreadValues$b({}, expanded), { [row.userId]: !isOpen })),
|
|
1683
1690
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
1684
1691
|
},
|
|
1685
1692
|
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex min-w-0 flex-1 items-center gap-3" }, row.avatar ? /* @__PURE__ */ React__namespace.createElement("img", { src: row.avatar, className: "h-9 w-9 shrink-0 rounded-full object-cover", alt: "" }) : /* @__PURE__ */ React__namespace.createElement("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-mint-400/20 text-xs font-bold text-dark-blue-400" }, initials), /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-sm font-bold text-dark-blue-400" }, row.name), /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-400" }, row.email))),
|
|
@@ -1980,25 +1987,25 @@ function Table$4(props) {
|
|
|
1980
1987
|
}));
|
|
1981
1988
|
}
|
|
1982
1989
|
|
|
1983
|
-
var __defProp$
|
|
1984
|
-
var __defProps$
|
|
1985
|
-
var __getOwnPropDescs$
|
|
1986
|
-
var __getOwnPropSymbols$
|
|
1987
|
-
var __hasOwnProp$
|
|
1988
|
-
var __propIsEnum$
|
|
1989
|
-
var __defNormalProp$
|
|
1990
|
-
var __spreadValues$
|
|
1990
|
+
var __defProp$a = Object.defineProperty;
|
|
1991
|
+
var __defProps$8 = Object.defineProperties;
|
|
1992
|
+
var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
|
|
1993
|
+
var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
|
|
1994
|
+
var __hasOwnProp$a = Object.prototype.hasOwnProperty;
|
|
1995
|
+
var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
|
|
1996
|
+
var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
1997
|
+
var __spreadValues$a = (a, b) => {
|
|
1991
1998
|
for (var prop in b || (b = {}))
|
|
1992
|
-
if (__hasOwnProp$
|
|
1993
|
-
__defNormalProp$
|
|
1994
|
-
if (__getOwnPropSymbols$
|
|
1995
|
-
for (var prop of __getOwnPropSymbols$
|
|
1996
|
-
if (__propIsEnum$
|
|
1997
|
-
__defNormalProp$
|
|
1999
|
+
if (__hasOwnProp$a.call(b, prop))
|
|
2000
|
+
__defNormalProp$a(a, prop, b[prop]);
|
|
2001
|
+
if (__getOwnPropSymbols$a)
|
|
2002
|
+
for (var prop of __getOwnPropSymbols$a(b)) {
|
|
2003
|
+
if (__propIsEnum$a.call(b, prop))
|
|
2004
|
+
__defNormalProp$a(a, prop, b[prop]);
|
|
1998
2005
|
}
|
|
1999
2006
|
return a;
|
|
2000
2007
|
};
|
|
2001
|
-
var __spreadProps$
|
|
2008
|
+
var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
|
|
2002
2009
|
const People = (props) => {
|
|
2003
2010
|
const form$1 = form.useForm({
|
|
2004
2011
|
initialValues: {
|
|
@@ -2030,27 +2037,27 @@ const People = (props) => {
|
|
|
2030
2037
|
padding: "xl",
|
|
2031
2038
|
size: "xl"
|
|
2032
2039
|
},
|
|
2033
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$
|
|
2040
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$8(__spreadValues$a({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React__namespace.createElement(core.Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React__namespace.createElement("form", { onSubmit: form$1.onSubmit(() => {
|
|
2034
2041
|
const values = form$1.values;
|
|
2035
2042
|
form$1.reset();
|
|
2036
2043
|
setOpened(false);
|
|
2037
2044
|
props.onCreateUsers && props.onCreateUsers([values]);
|
|
2038
2045
|
}) }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
2039
2046
|
core.TextInput,
|
|
2040
|
-
__spreadValues$
|
|
2047
|
+
__spreadValues$a({
|
|
2041
2048
|
withAsterisk: true,
|
|
2042
2049
|
label: "Email",
|
|
2043
2050
|
placeholder: "Email"
|
|
2044
2051
|
}, form$1.getInputProps("email"))
|
|
2045
2052
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
|
|
2046
2053
|
core.TextInput,
|
|
2047
|
-
__spreadValues$
|
|
2054
|
+
__spreadValues$a({
|
|
2048
2055
|
label: "Given name",
|
|
2049
2056
|
placeholder: "Given name"
|
|
2050
2057
|
}, form$1.getInputProps("givenName"))
|
|
2051
2058
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
2052
2059
|
core.TextInput,
|
|
2053
|
-
__spreadValues$
|
|
2060
|
+
__spreadValues$a({
|
|
2054
2061
|
label: "Family name",
|
|
2055
2062
|
placeholder: "Family name"
|
|
2056
2063
|
}, form$1.getInputProps("familyName"))
|
|
@@ -2236,24 +2243,24 @@ const StartAnonymousLesson = (props) => {
|
|
|
2236
2243
|
))))));
|
|
2237
2244
|
};
|
|
2238
2245
|
|
|
2239
|
-
var __defProp$
|
|
2240
|
-
var __getOwnPropSymbols$
|
|
2241
|
-
var __hasOwnProp$
|
|
2242
|
-
var __propIsEnum$
|
|
2243
|
-
var __defNormalProp$
|
|
2244
|
-
var __spreadValues$
|
|
2246
|
+
var __defProp$9 = Object.defineProperty;
|
|
2247
|
+
var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
|
|
2248
|
+
var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
|
|
2249
|
+
var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
|
|
2250
|
+
var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2251
|
+
var __spreadValues$9 = (a, b) => {
|
|
2245
2252
|
for (var prop in b || (b = {}))
|
|
2246
|
-
if (__hasOwnProp$
|
|
2247
|
-
__defNormalProp$
|
|
2248
|
-
if (__getOwnPropSymbols$
|
|
2249
|
-
for (var prop of __getOwnPropSymbols$
|
|
2250
|
-
if (__propIsEnum$
|
|
2251
|
-
__defNormalProp$
|
|
2253
|
+
if (__hasOwnProp$9.call(b, prop))
|
|
2254
|
+
__defNormalProp$9(a, prop, b[prop]);
|
|
2255
|
+
if (__getOwnPropSymbols$9)
|
|
2256
|
+
for (var prop of __getOwnPropSymbols$9(b)) {
|
|
2257
|
+
if (__propIsEnum$9.call(b, prop))
|
|
2258
|
+
__defNormalProp$9(a, prop, b[prop]);
|
|
2252
2259
|
}
|
|
2253
2260
|
return a;
|
|
2254
2261
|
};
|
|
2255
2262
|
const BadgeGrid = (props) => {
|
|
2256
|
-
const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$
|
|
2263
|
+
const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$9({ key: b.title }, b)));
|
|
2257
2264
|
return /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { cols: 4, breakpoints: [{ maxWidth: "sm", cols: 1 }, { maxWidth: "md", cols: 3 }] }, badges);
|
|
2258
2265
|
};
|
|
2259
2266
|
function TaskCard(props) {
|
|
@@ -2287,30 +2294,30 @@ const UserInfo = (props) => {
|
|
|
2287
2294
|
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, props.name), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "xs" }, props.impactStatement));
|
|
2288
2295
|
};
|
|
2289
2296
|
|
|
2290
|
-
var __defProp$
|
|
2291
|
-
var __getOwnPropSymbols$
|
|
2292
|
-
var __hasOwnProp$
|
|
2293
|
-
var __propIsEnum$
|
|
2294
|
-
var __defNormalProp$
|
|
2295
|
-
var __spreadValues$
|
|
2297
|
+
var __defProp$8 = Object.defineProperty;
|
|
2298
|
+
var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
|
|
2299
|
+
var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
|
|
2300
|
+
var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
|
|
2301
|
+
var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2302
|
+
var __spreadValues$8 = (a, b) => {
|
|
2296
2303
|
for (var prop in b || (b = {}))
|
|
2297
|
-
if (__hasOwnProp$
|
|
2298
|
-
__defNormalProp$
|
|
2299
|
-
if (__getOwnPropSymbols$
|
|
2300
|
-
for (var prop of __getOwnPropSymbols$
|
|
2301
|
-
if (__propIsEnum$
|
|
2302
|
-
__defNormalProp$
|
|
2304
|
+
if (__hasOwnProp$8.call(b, prop))
|
|
2305
|
+
__defNormalProp$8(a, prop, b[prop]);
|
|
2306
|
+
if (__getOwnPropSymbols$8)
|
|
2307
|
+
for (var prop of __getOwnPropSymbols$8(b)) {
|
|
2308
|
+
if (__propIsEnum$8.call(b, prop))
|
|
2309
|
+
__defNormalProp$8(a, prop, b[prop]);
|
|
2303
2310
|
}
|
|
2304
2311
|
return a;
|
|
2305
2312
|
};
|
|
2306
2313
|
var __objRest$1 = (source, exclude) => {
|
|
2307
2314
|
var target = {};
|
|
2308
2315
|
for (var prop in source)
|
|
2309
|
-
if (__hasOwnProp$
|
|
2316
|
+
if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
2310
2317
|
target[prop] = source[prop];
|
|
2311
|
-
if (source != null && __getOwnPropSymbols$
|
|
2312
|
-
for (var prop of __getOwnPropSymbols$
|
|
2313
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
2318
|
+
if (source != null && __getOwnPropSymbols$8)
|
|
2319
|
+
for (var prop of __getOwnPropSymbols$8(source)) {
|
|
2320
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
|
|
2314
2321
|
target[prop] = source[prop];
|
|
2315
2322
|
}
|
|
2316
2323
|
return target;
|
|
@@ -2377,9 +2384,9 @@ const TenantBanner = (_a) => {
|
|
|
2377
2384
|
};
|
|
2378
2385
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2379
2386
|
core.Card,
|
|
2380
|
-
__spreadValues$
|
|
2387
|
+
__spreadValues$8({
|
|
2381
2388
|
radius: "md",
|
|
2382
|
-
style: __spreadValues$
|
|
2389
|
+
style: __spreadValues$8({ backgroundImage: `url(${image})` }, style),
|
|
2383
2390
|
className: cx(classes.card, className)
|
|
2384
2391
|
}, others),
|
|
2385
2392
|
/* @__PURE__ */ React__namespace.createElement(
|
|
@@ -2455,33 +2462,33 @@ const TrialHome = (props) => {
|
|
|
2455
2462
|
)), /* @__PURE__ */ React__namespace.createElement(core.Title, { maw: 500, mb: 20, mt: 20, className: classes.title }, "Based on the tags you selected, check out these lessons to get started with your students!"), /* @__PURE__ */ React__namespace.createElement(BadgeGrid, { onAssign: props.onAssign, badges: props.badges })));
|
|
2456
2463
|
};
|
|
2457
2464
|
|
|
2458
|
-
var __defProp$
|
|
2459
|
-
var __defProps$
|
|
2460
|
-
var __getOwnPropDescs$
|
|
2461
|
-
var __getOwnPropSymbols$
|
|
2462
|
-
var __hasOwnProp$
|
|
2463
|
-
var __propIsEnum$
|
|
2464
|
-
var __defNormalProp$
|
|
2465
|
-
var __spreadValues$
|
|
2465
|
+
var __defProp$7 = Object.defineProperty;
|
|
2466
|
+
var __defProps$7 = Object.defineProperties;
|
|
2467
|
+
var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
|
|
2468
|
+
var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
|
|
2469
|
+
var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
|
|
2470
|
+
var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
|
|
2471
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2472
|
+
var __spreadValues$7 = (a, b) => {
|
|
2466
2473
|
for (var prop in b || (b = {}))
|
|
2467
|
-
if (__hasOwnProp$
|
|
2468
|
-
__defNormalProp$
|
|
2469
|
-
if (__getOwnPropSymbols$
|
|
2470
|
-
for (var prop of __getOwnPropSymbols$
|
|
2471
|
-
if (__propIsEnum$
|
|
2472
|
-
__defNormalProp$
|
|
2474
|
+
if (__hasOwnProp$7.call(b, prop))
|
|
2475
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
2476
|
+
if (__getOwnPropSymbols$7)
|
|
2477
|
+
for (var prop of __getOwnPropSymbols$7(b)) {
|
|
2478
|
+
if (__propIsEnum$7.call(b, prop))
|
|
2479
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
2473
2480
|
}
|
|
2474
2481
|
return a;
|
|
2475
2482
|
};
|
|
2476
|
-
var __spreadProps$
|
|
2483
|
+
var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
|
|
2477
2484
|
var __objRest = (source, exclude) => {
|
|
2478
2485
|
var target = {};
|
|
2479
2486
|
for (var prop in source)
|
|
2480
|
-
if (__hasOwnProp$
|
|
2487
|
+
if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
2481
2488
|
target[prop] = source[prop];
|
|
2482
|
-
if (source != null && __getOwnPropSymbols$
|
|
2483
|
-
for (var prop of __getOwnPropSymbols$
|
|
2484
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
2489
|
+
if (source != null && __getOwnPropSymbols$7)
|
|
2490
|
+
for (var prop of __getOwnPropSymbols$7(source)) {
|
|
2491
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
|
|
2485
2492
|
target[prop] = source[prop];
|
|
2486
2493
|
}
|
|
2487
2494
|
return target;
|
|
@@ -2531,7 +2538,7 @@ function ImageCheckbox(_a) {
|
|
|
2531
2538
|
const { classes, cx } = useStyles$2({ checked: value });
|
|
2532
2539
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2533
2540
|
core.UnstyledButton,
|
|
2534
|
-
__spreadProps$
|
|
2541
|
+
__spreadProps$7(__spreadValues$7({}, others), {
|
|
2535
2542
|
onClick: () => handleChange(!value),
|
|
2536
2543
|
className: cx(classes.button, className)
|
|
2537
2544
|
}),
|
|
@@ -2552,7 +2559,7 @@ function ImageCheckbox(_a) {
|
|
|
2552
2559
|
function SelectGrid(props) {
|
|
2553
2560
|
const items = props.items.map((item) => /* @__PURE__ */ React__namespace.createElement(
|
|
2554
2561
|
ImageCheckbox,
|
|
2555
|
-
__spreadProps$
|
|
2562
|
+
__spreadProps$7(__spreadValues$7({}, item), {
|
|
2556
2563
|
key: item.title,
|
|
2557
2564
|
onChange: (checked) => props.onChange(item.title, checked)
|
|
2558
2565
|
})
|
|
@@ -2570,25 +2577,25 @@ function SelectGrid(props) {
|
|
|
2570
2577
|
);
|
|
2571
2578
|
}
|
|
2572
2579
|
|
|
2573
|
-
var __defProp$
|
|
2574
|
-
var __defProps$
|
|
2575
|
-
var __getOwnPropDescs$
|
|
2576
|
-
var __getOwnPropSymbols$
|
|
2577
|
-
var __hasOwnProp$
|
|
2578
|
-
var __propIsEnum$
|
|
2579
|
-
var __defNormalProp$
|
|
2580
|
-
var __spreadValues$
|
|
2580
|
+
var __defProp$6 = Object.defineProperty;
|
|
2581
|
+
var __defProps$6 = Object.defineProperties;
|
|
2582
|
+
var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
|
|
2583
|
+
var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
|
|
2584
|
+
var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
|
|
2585
|
+
var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
|
|
2586
|
+
var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2587
|
+
var __spreadValues$6 = (a, b) => {
|
|
2581
2588
|
for (var prop in b || (b = {}))
|
|
2582
|
-
if (__hasOwnProp$
|
|
2583
|
-
__defNormalProp$
|
|
2584
|
-
if (__getOwnPropSymbols$
|
|
2585
|
-
for (var prop of __getOwnPropSymbols$
|
|
2586
|
-
if (__propIsEnum$
|
|
2587
|
-
__defNormalProp$
|
|
2589
|
+
if (__hasOwnProp$6.call(b, prop))
|
|
2590
|
+
__defNormalProp$6(a, prop, b[prop]);
|
|
2591
|
+
if (__getOwnPropSymbols$6)
|
|
2592
|
+
for (var prop of __getOwnPropSymbols$6(b)) {
|
|
2593
|
+
if (__propIsEnum$6.call(b, prop))
|
|
2594
|
+
__defNormalProp$6(a, prop, b[prop]);
|
|
2588
2595
|
}
|
|
2589
2596
|
return a;
|
|
2590
2597
|
};
|
|
2591
|
-
var __spreadProps$
|
|
2598
|
+
var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
|
|
2592
2599
|
const useStyles$1 = core.createStyles((theme) => ({
|
|
2593
2600
|
wrapper: {
|
|
2594
2601
|
minHeight: "100%",
|
|
@@ -2698,7 +2705,7 @@ const TrialRegistration = (props) => {
|
|
|
2698
2705
|
label: "School/Organization Name",
|
|
2699
2706
|
placeholder: "What's the name of your school?",
|
|
2700
2707
|
data: props.organizations.map((o) => {
|
|
2701
|
-
return __spreadProps$
|
|
2708
|
+
return __spreadProps$6(__spreadValues$6({}, o), { value: o.displayName });
|
|
2702
2709
|
}),
|
|
2703
2710
|
onItemSubmit: (item) => setOrganization({ organizationId: item.organizationId, displayName: item.displayName }),
|
|
2704
2711
|
onChange: (next) => {
|
|
@@ -2710,7 +2717,7 @@ const TrialRegistration = (props) => {
|
|
|
2710
2717
|
SelectGrid,
|
|
2711
2718
|
{
|
|
2712
2719
|
items: OPTIONS,
|
|
2713
|
-
onChange: (e, checked) => setInterests(__spreadProps$
|
|
2720
|
+
onChange: (e, checked) => setInterests(__spreadProps$6(__spreadValues$6({}, interests), { [e]: checked }))
|
|
2714
2721
|
}
|
|
2715
2722
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "right", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(
|
|
2716
2723
|
core.Button,
|
|
@@ -2748,25 +2755,25 @@ const AdminProvider = (props) => {
|
|
|
2748
2755
|
);
|
|
2749
2756
|
};
|
|
2750
2757
|
|
|
2751
|
-
var __defProp$
|
|
2752
|
-
var __defProps$
|
|
2753
|
-
var __getOwnPropDescs$
|
|
2754
|
-
var __getOwnPropSymbols$
|
|
2755
|
-
var __hasOwnProp$
|
|
2756
|
-
var __propIsEnum$
|
|
2757
|
-
var __defNormalProp$
|
|
2758
|
-
var __spreadValues$
|
|
2758
|
+
var __defProp$5 = Object.defineProperty;
|
|
2759
|
+
var __defProps$5 = Object.defineProperties;
|
|
2760
|
+
var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
|
|
2761
|
+
var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
|
|
2762
|
+
var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
|
|
2763
|
+
var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
|
|
2764
|
+
var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2765
|
+
var __spreadValues$5 = (a, b) => {
|
|
2759
2766
|
for (var prop in b || (b = {}))
|
|
2760
|
-
if (__hasOwnProp$
|
|
2761
|
-
__defNormalProp$
|
|
2762
|
-
if (__getOwnPropSymbols$
|
|
2763
|
-
for (var prop of __getOwnPropSymbols$
|
|
2764
|
-
if (__propIsEnum$
|
|
2765
|
-
__defNormalProp$
|
|
2767
|
+
if (__hasOwnProp$5.call(b, prop))
|
|
2768
|
+
__defNormalProp$5(a, prop, b[prop]);
|
|
2769
|
+
if (__getOwnPropSymbols$5)
|
|
2770
|
+
for (var prop of __getOwnPropSymbols$5(b)) {
|
|
2771
|
+
if (__propIsEnum$5.call(b, prop))
|
|
2772
|
+
__defNormalProp$5(a, prop, b[prop]);
|
|
2766
2773
|
}
|
|
2767
2774
|
return a;
|
|
2768
2775
|
};
|
|
2769
|
-
var __spreadProps$
|
|
2776
|
+
var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
|
|
2770
2777
|
const useStyles = core.createStyles((theme, props) => ({
|
|
2771
2778
|
footer: {
|
|
2772
2779
|
paddingTop: theme.spacing.md,
|
|
@@ -2862,7 +2869,7 @@ const App = (props) => {
|
|
|
2862
2869
|
padding: "xs",
|
|
2863
2870
|
navbar: props.navbar && /* @__PURE__ */ React__namespace.createElement(
|
|
2864
2871
|
Navbar,
|
|
2865
|
-
__spreadProps$
|
|
2872
|
+
__spreadProps$5(__spreadValues$5({}, props.navbar.props), {
|
|
2866
2873
|
onSwitchAccounts: account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : void 0
|
|
2867
2874
|
})
|
|
2868
2875
|
),
|
|
@@ -3013,30 +3020,30 @@ function Stack$1(props) {
|
|
|
3013
3020
|
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-2" }, props.items.map((row) => /* @__PURE__ */ React__namespace.createElement("div", { key: row.badgeName, className: "flex items-center justify-between gap-4 py-1.5" }, /* @__PURE__ */ React__namespace.createElement(reactRouterDom.Link, { to: row.href, className: "text-sm font-bold text-dark-blue-400 no-underline hover:underline" }, row.badgeName), row.completion >= 1 && /* @__PURE__ */ React__namespace.createElement("span", { className: "shrink-0 rounded-full bg-mint-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, "Complete"), row.completion === 0 && !row.isStarted && /* @__PURE__ */ React__namespace.createElement("span", { className: "shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-[10px] font-bold text-slate-500" }, "Not started"), row.completion > 0 && row.completion < 1 && /* @__PURE__ */ React__namespace.createElement("span", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, Math.round((row.completion + Number.EPSILON) * 100), "% Complete"))));
|
|
3014
3021
|
}
|
|
3015
3022
|
|
|
3016
|
-
var __defProp$
|
|
3017
|
-
var __defProps$
|
|
3018
|
-
var __getOwnPropDescs$
|
|
3019
|
-
var __getOwnPropSymbols$
|
|
3020
|
-
var __hasOwnProp$
|
|
3021
|
-
var __propIsEnum$
|
|
3022
|
-
var __defNormalProp$
|
|
3023
|
-
var __spreadValues$
|
|
3023
|
+
var __defProp$4 = Object.defineProperty;
|
|
3024
|
+
var __defProps$4 = Object.defineProperties;
|
|
3025
|
+
var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
|
|
3026
|
+
var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
|
|
3027
|
+
var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
|
|
3028
|
+
var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
|
|
3029
|
+
var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3030
|
+
var __spreadValues$4 = (a, b) => {
|
|
3024
3031
|
for (var prop in b || (b = {}))
|
|
3025
|
-
if (__hasOwnProp$
|
|
3026
|
-
__defNormalProp$
|
|
3027
|
-
if (__getOwnPropSymbols$
|
|
3028
|
-
for (var prop of __getOwnPropSymbols$
|
|
3029
|
-
if (__propIsEnum$
|
|
3030
|
-
__defNormalProp$
|
|
3032
|
+
if (__hasOwnProp$4.call(b, prop))
|
|
3033
|
+
__defNormalProp$4(a, prop, b[prop]);
|
|
3034
|
+
if (__getOwnPropSymbols$4)
|
|
3035
|
+
for (var prop of __getOwnPropSymbols$4(b)) {
|
|
3036
|
+
if (__propIsEnum$4.call(b, prop))
|
|
3037
|
+
__defNormalProp$4(a, prop, b[prop]);
|
|
3031
3038
|
}
|
|
3032
3039
|
return a;
|
|
3033
3040
|
};
|
|
3034
|
-
var __spreadProps$
|
|
3041
|
+
var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
|
|
3035
3042
|
function Table$2(props) {
|
|
3036
3043
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
3037
3044
|
const categories = props.categories || [];
|
|
3038
3045
|
const preparedItems = React__namespace.useMemo(() => {
|
|
3039
|
-
return (props.items || []).map((item) => __spreadValues$
|
|
3046
|
+
return (props.items || []).map((item) => __spreadValues$4(__spreadValues$4({}, item), item.categoryPoints));
|
|
3040
3047
|
}, [props.items]);
|
|
3041
3048
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
|
|
3042
3049
|
if (props.loading && props.items.length === 0) {
|
|
@@ -3058,7 +3065,7 @@ function Table$2(props) {
|
|
|
3058
3065
|
return /* @__PURE__ */ React__namespace.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
3059
3066
|
"div",
|
|
3060
3067
|
{
|
|
3061
|
-
onClick: () => setExpanded(__spreadProps$
|
|
3068
|
+
onClick: () => setExpanded(__spreadProps$4(__spreadValues$4({}, expanded), { [row.userId]: !isOpen })),
|
|
3062
3069
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
3063
3070
|
},
|
|
3064
3071
|
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex min-w-0 flex-1 items-center gap-3" }, row.avatar ? /* @__PURE__ */ React__namespace.createElement("img", { src: row.avatar, className: "h-9 w-9 shrink-0 rounded-full object-cover", alt: "" }) : /* @__PURE__ */ React__namespace.createElement("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-mint-400/20 text-xs font-bold text-dark-blue-400" }, initials), /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-sm font-bold text-dark-blue-400" }, row.name), /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-400" }, row.email))),
|
|
@@ -3073,8 +3080,8 @@ function Table$2(props) {
|
|
|
3073
3080
|
}
|
|
3074
3081
|
|
|
3075
3082
|
function Table$1(props) {
|
|
3076
|
-
const { items:
|
|
3077
|
-
if (props.
|
|
3083
|
+
const { items: sortedBadges, requestSort, sortConfig } = useSortableData(props.badges);
|
|
3084
|
+
if (props.badges.length === 0) {
|
|
3078
3085
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
3079
3086
|
PlaceholderBanner,
|
|
3080
3087
|
{
|
|
@@ -3086,30 +3093,116 @@ function Table$1(props) {
|
|
|
3086
3093
|
);
|
|
3087
3094
|
}
|
|
3088
3095
|
const indicator = (key) => sortConfig.key !== key ? "" : sortConfig.direction === "desc" ? " \u25BE" : " \u25B4";
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
)));
|
|
3096
|
+
const groupedIds = new Set(props.categories.map((c) => c.categoryId));
|
|
3097
|
+
const forCategory = (categoryId) => sortedBadges.filter((b) => {
|
|
3098
|
+
var _a;
|
|
3099
|
+
return (_a = b.categories) == null ? void 0 : _a.includes(categoryId);
|
|
3100
|
+
});
|
|
3101
|
+
const other = sortedBadges.filter((b) => {
|
|
3102
|
+
var _a;
|
|
3103
|
+
return !((_a = b.categories) == null ? void 0 : _a.some((id) => groupedIds.has(id)));
|
|
3104
|
+
});
|
|
3105
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-4 px-4 text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => requestSort("badgeName"), className: "flex-1 text-left hover:text-slate-600" }, "Badge Name", indicator("badgeName")), /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => requestSort("weight"), className: "w-24 shrink-0 text-right hover:text-slate-600" }, "Point Value", indicator("weight")), /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => requestSort("percentageCompletion"), className: "w-36 shrink-0 text-right hover:text-slate-600" }, "Badge Completion", indicator("percentageCompletion"))), props.categories.map((category) => /* @__PURE__ */ React__namespace.createElement(CategorySection, { key: category.categoryId, name: category.name, badges: forCategory(category.categoryId) })), other.length > 0 && /* @__PURE__ */ React__namespace.createElement(CategorySection, { name: "Other badges", badges: other }));
|
|
3099
3106
|
}
|
|
3107
|
+
const CategorySection = (props) => /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "px-1 text-sm font-extrabold tracking-tight text-dark-blue-400" }, props.name), props.badges.length === 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "rounded-xl border border-dashed border-slate-200 px-4 py-3 text-xs text-slate-400" }, "No badges yet."), props.badges.map((row) => /* @__PURE__ */ React__namespace.createElement(
|
|
3108
|
+
reactRouterDom.Link,
|
|
3109
|
+
{
|
|
3110
|
+
key: row.badgeId,
|
|
3111
|
+
to: row.href,
|
|
3112
|
+
className: "flex items-center gap-4 rounded-xl border border-slate-200 bg-white p-4 no-underline shadow-sm hover:bg-slate-50"
|
|
3113
|
+
},
|
|
3114
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0 flex-1 text-sm font-bold text-dark-blue-400" }, row.badgeName),
|
|
3115
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "w-24 shrink-0 text-right text-xs font-black text-mint-400" }, row.weight, " pts"),
|
|
3116
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "w-36 shrink-0 text-right text-xs text-slate-500" }, Math.round((row.percentageCompletion + Number.EPSILON) * 100), "%")
|
|
3117
|
+
)));
|
|
3118
|
+
|
|
3119
|
+
var __defProp$3 = Object.defineProperty;
|
|
3120
|
+
var __defProps$3 = Object.defineProperties;
|
|
3121
|
+
var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
|
|
3122
|
+
var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
|
|
3123
|
+
var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
|
|
3124
|
+
var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
|
|
3125
|
+
var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3126
|
+
var __spreadValues$3 = (a, b) => {
|
|
3127
|
+
for (var prop in b || (b = {}))
|
|
3128
|
+
if (__hasOwnProp$3.call(b, prop))
|
|
3129
|
+
__defNormalProp$3(a, prop, b[prop]);
|
|
3130
|
+
if (__getOwnPropSymbols$3)
|
|
3131
|
+
for (var prop of __getOwnPropSymbols$3(b)) {
|
|
3132
|
+
if (__propIsEnum$3.call(b, prop))
|
|
3133
|
+
__defNormalProp$3(a, prop, b[prop]);
|
|
3134
|
+
}
|
|
3135
|
+
return a;
|
|
3136
|
+
};
|
|
3137
|
+
var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
|
|
3138
|
+
function buildCategoryTree(categories) {
|
|
3139
|
+
const byId = /* @__PURE__ */ new Map();
|
|
3140
|
+
categories.forEach((c) => byId.set(c.categoryId, c));
|
|
3141
|
+
const childrenByParent = /* @__PURE__ */ new Map();
|
|
3142
|
+
categories.forEach((c) => {
|
|
3143
|
+
const parentId = c.parentCategoryId;
|
|
3144
|
+
const hasValidParent = !!parentId && parentId !== c.categoryId && byId.has(parentId);
|
|
3145
|
+
if (!hasValidParent)
|
|
3146
|
+
return;
|
|
3147
|
+
const siblings = childrenByParent.get(parentId) || [];
|
|
3148
|
+
siblings.push(c);
|
|
3149
|
+
childrenByParent.set(parentId, siblings);
|
|
3150
|
+
});
|
|
3151
|
+
const attached = /* @__PURE__ */ new Set();
|
|
3152
|
+
const attach = (category, ancestry) => {
|
|
3153
|
+
attached.add(category.categoryId);
|
|
3154
|
+
const childAncestry = new Set(ancestry).add(category.categoryId);
|
|
3155
|
+
const children = (childrenByParent.get(category.categoryId) || []).filter((child) => !childAncestry.has(child.categoryId)).map((child) => attach(child, childAncestry));
|
|
3156
|
+
return __spreadProps$3(__spreadValues$3({}, category), { children });
|
|
3157
|
+
};
|
|
3158
|
+
const roots = categories.filter((c) => {
|
|
3159
|
+
const parentId = c.parentCategoryId;
|
|
3160
|
+
return !parentId || parentId === c.categoryId || !byId.has(parentId);
|
|
3161
|
+
});
|
|
3162
|
+
const tree = roots.map((root) => attach(root, /* @__PURE__ */ new Set()));
|
|
3163
|
+
categories.forEach((c) => {
|
|
3164
|
+
if (!attached.has(c.categoryId))
|
|
3165
|
+
tree.push(attach(c, /* @__PURE__ */ new Set()));
|
|
3166
|
+
});
|
|
3167
|
+
return tree;
|
|
3168
|
+
}
|
|
3169
|
+
|
|
3170
|
+
function CategoriesModal(props) {
|
|
3171
|
+
const tree = React__namespace.useMemo(() => buildCategoryTree(props.categories || []), [props.categories]);
|
|
3172
|
+
return /* @__PURE__ */ React__namespace.createElement(core.Modal, { opened: props.opened, onClose: props.onClose, title: "Category structure", size: "lg", centered: true }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex max-h-[70vh] flex-col gap-2 overflow-y-auto pr-1" }, tree.length === 0 && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-400" }, "No categories to display."), tree.map((node) => /* @__PURE__ */ React__namespace.createElement(CategoryNode, { key: node.categoryId, node, criteria: props.criteria, depth: 0 }))));
|
|
3173
|
+
}
|
|
3174
|
+
const CategoryNode = (props) => {
|
|
3175
|
+
var _a;
|
|
3176
|
+
const hasChildren = props.node.children.length > 0;
|
|
3177
|
+
const required = props.criteria[props.node.categoryId];
|
|
3178
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: hasChildren ? "rounded-lg border border-slate-100 bg-slate-50/60 p-3" : "rounded-lg px-3 py-2 hover:bg-slate-50" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap items-center justify-between gap-2" }, /* @__PURE__ */ React__namespace.createElement("span", { className: props.depth === 0 ? "text-sm font-extrabold text-dark-blue-400" : "text-xs font-bold text-dark-blue-400" }, props.node.name), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap items-center gap-1.5" }, required !== void 0 && /* @__PURE__ */ React__namespace.createElement("span", { className: "rounded-full bg-sky-blue-400/15 px-2 py-0.5 text-[10px] font-bold text-dark-blue-400" }, "min. ", required, " pts"), !!props.node.maxPoints && /* @__PURE__ */ React__namespace.createElement("span", { className: "rounded-full bg-gold-400/15 px-2 py-0.5 text-[10px] font-bold text-dark-blue-400" }, "cap ", props.node.maxPoints, " pts"))), !!((_a = props.node.description) == null ? void 0 : _a.trim()) && /* @__PURE__ */ React__namespace.createElement("p", { className: "mt-0.5 text-xs text-slate-500" }, props.node.description), hasChildren && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-3 flex flex-col gap-2 border-l-2 border-slate-200 pl-4" }, props.node.children.map((child) => /* @__PURE__ */ React__namespace.createElement(CategoryNode, { key: child.categoryId, node: child, criteria: props.criteria, depth: props.depth + 1 }))));
|
|
3179
|
+
};
|
|
3100
3180
|
|
|
3101
3181
|
const TABS$1 = [
|
|
3102
3182
|
{ label: "By Badge", value: "badges" },
|
|
3103
3183
|
{ label: "By student", value: "students" }
|
|
3104
3184
|
];
|
|
3105
3185
|
const Pathway = (props) => {
|
|
3106
|
-
var _a;
|
|
3186
|
+
var _a, _b, _c;
|
|
3107
3187
|
const [tab, setTab] = React.useState("badges");
|
|
3188
|
+
const [categoriesOpen, setCategoriesOpen] = React.useState(false);
|
|
3108
3189
|
const numberOfStudents = props.students.length;
|
|
3109
3190
|
const numberOfBadgesEarned = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
|
|
3110
3191
|
const criteria = props.criteria || {};
|
|
3111
3192
|
const criteriaCategories = (props.categories || []).filter((c) => criteria[c.categoryId] !== void 0);
|
|
3112
|
-
|
|
3193
|
+
const rootCategoryIds = new Set(
|
|
3194
|
+
(props.allCategories || []).filter((c) => !c.parentCategoryId).map((c) => c.categoryId)
|
|
3195
|
+
);
|
|
3196
|
+
const badgeGroupCategories = criteriaCategories.filter((c) => !rootCategoryIds.has(c.categoryId));
|
|
3197
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap items-start justify-between gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-start gap-4" }, /* @__PURE__ */ React__namespace.createElement(Emblem, { imageURL: props.imageURL, alt: props.title, size: "lg", icon: icons.IconRoute, accent: "cyan" }), /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React__namespace.createElement("div", { onClick: props.onBackClick, className: "flex w-max cursor-pointer items-center gap-1 text-xs font-bold text-sky-blue-400" }, /* @__PURE__ */ React__namespace.createElement(icons.IconArrowLeft, { size: 13, stroke: 2.5 }), "Back"), /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.title || "Pathway"), !!((_a = props.displayTags) == null ? void 0 : _a.length) && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap gap-1.5" }, props.displayTags.map((tag) => /* @__PURE__ */ React__namespace.createElement("span", { key: tag, className: "rounded-full bg-slate-100 px-2.5 py-1 text-[10px] font-bold text-slate-500" }, tag))), /* @__PURE__ */ React__namespace.createElement("p", { className: "max-w-xl text-sm text-slate-500" }, props.description || "No description"), (criteriaCategories.length > 0 || !!((_b = props.allCategories) == null ? void 0 : _b.length)) && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap items-center gap-1.5 pt-0.5" }, criteriaCategories.length > 0 && /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Criteria"), criteriaCategories.map((c) => /* @__PURE__ */ React__namespace.createElement("span", { key: c.categoryId, className: "rounded-full bg-sky-blue-400/15 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, c.name, ": ", criteria[c.categoryId], "+", c.maxPoints ? ` of ${c.maxPoints}` : "", " pts"))), !!((_c = props.allCategories) == null ? void 0 : _c.length) && /* @__PURE__ */ React__namespace.createElement(
|
|
3198
|
+
"button",
|
|
3199
|
+
{
|
|
3200
|
+
onClick: () => setCategoriesOpen(true),
|
|
3201
|
+
className: "flex items-center gap-1.5 rounded-full border border-slate-200 bg-white px-2.5 py-1 text-[10px] font-bold text-dark-blue-400 hover:bg-slate-50"
|
|
3202
|
+
},
|
|
3203
|
+
/* @__PURE__ */ React__namespace.createElement(icons.IconCategory2, { size: 12, stroke: 2 }),
|
|
3204
|
+
" Categories"
|
|
3205
|
+
)))), !props.trial && /* @__PURE__ */ React__namespace.createElement(
|
|
3113
3206
|
SplitButton$1,
|
|
3114
3207
|
{
|
|
3115
3208
|
href: props.href,
|
|
@@ -3138,7 +3231,15 @@ const Pathway = (props) => {
|
|
|
3138
3231
|
className: `rounded-lg px-4 py-2 text-xs font-bold ${tab === t.value ? "bg-sky-blue-400/20 text-dark-blue-400" : "text-slate-400 hover:text-slate-600"}`
|
|
3139
3232
|
},
|
|
3140
3233
|
t.label
|
|
3141
|
-
))), (!!props.trial || tab === "badges") && /* @__PURE__ */ React__namespace.createElement(Table$1, { loading: props.loading,
|
|
3234
|
+
))), (!!props.trial || tab === "badges") && /* @__PURE__ */ React__namespace.createElement(Table$1, { loading: props.loading, badges: props.badges, categories: badgeGroupCategories }), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(Table$2, { loading: props.loading, items: props.students, categories: props.categories })), /* @__PURE__ */ React__namespace.createElement(
|
|
3235
|
+
CategoriesModal,
|
|
3236
|
+
{
|
|
3237
|
+
opened: categoriesOpen,
|
|
3238
|
+
onClose: () => setCategoriesOpen(false),
|
|
3239
|
+
categories: props.allCategories || [],
|
|
3240
|
+
criteria
|
|
3241
|
+
}
|
|
3242
|
+
));
|
|
3142
3243
|
};
|
|
3143
3244
|
|
|
3144
3245
|
const SplitButton = (props) => {
|