@local-civics/mgmt-ui 0.1.220 → 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 +351 -253
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +351 -253
- 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
|
);
|
|
@@ -519,29 +519,29 @@ function useSortableData(items, config = { key: "", direction: null }) {
|
|
|
519
519
|
return { items: sortedItems, requestSort, sortConfig };
|
|
520
520
|
}
|
|
521
521
|
|
|
522
|
-
var __defProp$
|
|
523
|
-
var __defProps$
|
|
524
|
-
var __getOwnPropDescs$
|
|
525
|
-
var __getOwnPropSymbols$
|
|
526
|
-
var __hasOwnProp$
|
|
527
|
-
var __propIsEnum$
|
|
528
|
-
var __defNormalProp$
|
|
529
|
-
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) => {
|
|
530
530
|
for (var prop in b || (b = {}))
|
|
531
|
-
if (__hasOwnProp$
|
|
532
|
-
__defNormalProp$
|
|
533
|
-
if (__getOwnPropSymbols$
|
|
534
|
-
for (var prop of __getOwnPropSymbols$
|
|
535
|
-
if (__propIsEnum$
|
|
536
|
-
__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]);
|
|
537
537
|
}
|
|
538
538
|
return a;
|
|
539
539
|
};
|
|
540
|
-
var __spreadProps$
|
|
540
|
+
var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
|
|
541
541
|
function Table$k(props) {
|
|
542
542
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
543
543
|
const preparedItems = React__namespace.useMemo(() => {
|
|
544
|
-
return props.items.map((item) => __spreadProps$
|
|
544
|
+
return props.items.map((item) => __spreadProps$d(__spreadValues$g({}, item), {
|
|
545
545
|
status: item.isComplete ? 1 : 0
|
|
546
546
|
}));
|
|
547
547
|
}, [props.items]);
|
|
@@ -565,7 +565,7 @@ function Table$k(props) {
|
|
|
565
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(
|
|
566
566
|
"div",
|
|
567
567
|
{
|
|
568
|
-
onClick: () => setExpanded(__spreadProps$
|
|
568
|
+
onClick: () => setExpanded(__spreadProps$d(__spreadValues$g({}, expanded), { [row.userId]: !isOpen })),
|
|
569
569
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
570
570
|
},
|
|
571
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))),
|
|
@@ -620,6 +620,10 @@ const Badge = (props) => {
|
|
|
620
620
|
{
|
|
621
621
|
title: props.trial ? "LESSONS SUBMITTED" : "BADGE COMPLETION",
|
|
622
622
|
value: props.trial ? props.lessonsCompleted || 0 : numberOfBadges
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
title: "POINT VALUE",
|
|
626
|
+
value: props.weight || 0
|
|
623
627
|
}
|
|
624
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(
|
|
625
629
|
"select",
|
|
@@ -749,28 +753,28 @@ function relativeTimeFromElapsed(elapsed) {
|
|
|
749
753
|
return "";
|
|
750
754
|
}
|
|
751
755
|
|
|
752
|
-
var __defProp$
|
|
753
|
-
var __defProps$
|
|
754
|
-
var __getOwnPropDescs$
|
|
755
|
-
var __getOwnPropSymbols$
|
|
756
|
-
var __hasOwnProp$
|
|
757
|
-
var __propIsEnum$
|
|
758
|
-
var __defNormalProp$
|
|
759
|
-
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) => {
|
|
760
764
|
for (var prop in b || (b = {}))
|
|
761
|
-
if (__hasOwnProp$
|
|
762
|
-
__defNormalProp$
|
|
763
|
-
if (__getOwnPropSymbols$
|
|
764
|
-
for (var prop of __getOwnPropSymbols$
|
|
765
|
-
if (__propIsEnum$
|
|
766
|
-
__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]);
|
|
767
771
|
}
|
|
768
772
|
return a;
|
|
769
773
|
};
|
|
770
|
-
var __spreadProps$
|
|
774
|
+
var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
|
|
771
775
|
function Table$g(props) {
|
|
772
776
|
const preparedItems = React__namespace.useMemo(() => {
|
|
773
|
-
return props.items.map((item) => __spreadProps$
|
|
777
|
+
return props.items.map((item) => __spreadProps$c(__spreadValues$f({}, item), {
|
|
774
778
|
updatedAtDate: new Date(item.updatedAt)
|
|
775
779
|
}));
|
|
776
780
|
}, [props.items]);
|
|
@@ -973,25 +977,25 @@ const Dashboard = (props) => {
|
|
|
973
977
|
)));
|
|
974
978
|
};
|
|
975
979
|
|
|
976
|
-
var __defProp$
|
|
977
|
-
var __defProps$
|
|
978
|
-
var __getOwnPropDescs$
|
|
979
|
-
var __getOwnPropSymbols$
|
|
980
|
-
var __hasOwnProp$
|
|
981
|
-
var __propIsEnum$
|
|
982
|
-
var __defNormalProp$
|
|
983
|
-
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) => {
|
|
984
988
|
for (var prop in b || (b = {}))
|
|
985
|
-
if (__hasOwnProp$
|
|
986
|
-
__defNormalProp$
|
|
987
|
-
if (__getOwnPropSymbols$
|
|
988
|
-
for (var prop of __getOwnPropSymbols$
|
|
989
|
-
if (__propIsEnum$
|
|
990
|
-
__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]);
|
|
991
995
|
}
|
|
992
996
|
return a;
|
|
993
997
|
};
|
|
994
|
-
var __spreadProps$
|
|
998
|
+
var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
|
|
995
999
|
const openDeleteModal$2 = (student, onDelete) => modals.openConfirmModal({
|
|
996
1000
|
title: `Remove "${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}" from this class?`,
|
|
997
1001
|
centered: true,
|
|
@@ -1002,7 +1006,7 @@ const openDeleteModal$2 = (student, onDelete) => modals.openConfirmModal({
|
|
|
1002
1006
|
});
|
|
1003
1007
|
function Table$c(props) {
|
|
1004
1008
|
const preparedItems = React__namespace.useMemo(() => {
|
|
1005
|
-
return props.items.map((item) => __spreadProps$
|
|
1009
|
+
return props.items.map((item) => __spreadProps$b(__spreadValues$e({}, item), {
|
|
1006
1010
|
fullName: item.givenName && item.familyName ? `${item.givenName} ${item.familyName}`.toLowerCase() : item.email.toLowerCase()
|
|
1007
1011
|
}));
|
|
1008
1012
|
}, [props.items]);
|
|
@@ -1053,25 +1057,25 @@ function Table$c(props) {
|
|
|
1053
1057
|
}));
|
|
1054
1058
|
}
|
|
1055
1059
|
|
|
1056
|
-
var __defProp$
|
|
1057
|
-
var __defProps$
|
|
1058
|
-
var __getOwnPropDescs$
|
|
1059
|
-
var __getOwnPropSymbols$
|
|
1060
|
-
var __hasOwnProp$
|
|
1061
|
-
var __propIsEnum$
|
|
1062
|
-
var __defNormalProp$
|
|
1063
|
-
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) => {
|
|
1064
1068
|
for (var prop in b || (b = {}))
|
|
1065
|
-
if (__hasOwnProp$
|
|
1066
|
-
__defNormalProp$
|
|
1067
|
-
if (__getOwnPropSymbols$
|
|
1068
|
-
for (var prop of __getOwnPropSymbols$
|
|
1069
|
-
if (__propIsEnum$
|
|
1070
|
-
__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]);
|
|
1071
1075
|
}
|
|
1072
1076
|
return a;
|
|
1073
1077
|
};
|
|
1074
|
-
var __spreadProps$
|
|
1078
|
+
var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
|
|
1075
1079
|
const Class = (props) => {
|
|
1076
1080
|
const [opened, setOpened] = React.useState(false);
|
|
1077
1081
|
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1083,7 +1087,7 @@ const Class = (props) => {
|
|
|
1083
1087
|
padding: "xl",
|
|
1084
1088
|
size: "xl"
|
|
1085
1089
|
},
|
|
1086
|
-
/* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$
|
|
1090
|
+
/* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$a(__spreadValues$d({}, props), { close: () => setOpened(false) }))
|
|
1087
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(
|
|
1088
1092
|
"button",
|
|
1089
1093
|
{
|
|
@@ -1209,20 +1213,20 @@ const DropzoneButton$1 = (props) => {
|
|
|
1209
1213
|
props.onCreateMembers && props.onCreateMembers([values]);
|
|
1210
1214
|
}) }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1211
1215
|
core.TextInput,
|
|
1212
|
-
__spreadValues$
|
|
1216
|
+
__spreadValues$d({
|
|
1213
1217
|
withAsterisk: true,
|
|
1214
1218
|
label: "Email",
|
|
1215
1219
|
placeholder: "Email"
|
|
1216
1220
|
}, form$1.getInputProps("email"))
|
|
1217
1221
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
|
|
1218
1222
|
core.TextInput,
|
|
1219
|
-
__spreadValues$
|
|
1223
|
+
__spreadValues$d({
|
|
1220
1224
|
label: "Given name",
|
|
1221
1225
|
placeholder: "Given name"
|
|
1222
1226
|
}, form$1.getInputProps("givenName"))
|
|
1223
1227
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1224
1228
|
core.TextInput,
|
|
1225
|
-
__spreadValues$
|
|
1229
|
+
__spreadValues$d({
|
|
1226
1230
|
label: "Family name",
|
|
1227
1231
|
placeholder: "Family name"
|
|
1228
1232
|
}, form$1.getInputProps("familyName"))
|
|
@@ -1279,19 +1283,19 @@ function Table$b(props) {
|
|
|
1279
1283
|
)));
|
|
1280
1284
|
}
|
|
1281
1285
|
|
|
1282
|
-
var __defProp$
|
|
1283
|
-
var __getOwnPropSymbols$
|
|
1284
|
-
var __hasOwnProp$
|
|
1285
|
-
var __propIsEnum$
|
|
1286
|
-
var __defNormalProp$
|
|
1287
|
-
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) => {
|
|
1288
1292
|
for (var prop in b || (b = {}))
|
|
1289
|
-
if (__hasOwnProp$
|
|
1290
|
-
__defNormalProp$
|
|
1291
|
-
if (__getOwnPropSymbols$
|
|
1292
|
-
for (var prop of __getOwnPropSymbols$
|
|
1293
|
-
if (__propIsEnum$
|
|
1294
|
-
__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]);
|
|
1295
1299
|
}
|
|
1296
1300
|
return a;
|
|
1297
1301
|
};
|
|
@@ -1325,14 +1329,14 @@ const Classes = (props) => {
|
|
|
1325
1329
|
props.onCreateClass && props.onCreateClass(values);
|
|
1326
1330
|
}) }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1327
1331
|
core.TextInput,
|
|
1328
|
-
__spreadValues$
|
|
1332
|
+
__spreadValues$c({
|
|
1329
1333
|
withAsterisk: true,
|
|
1330
1334
|
label: "Name",
|
|
1331
1335
|
placeholder: "Class name"
|
|
1332
1336
|
}, form$1.getInputProps("name"))
|
|
1333
1337
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1334
1338
|
core.TextInput,
|
|
1335
|
-
__spreadValues$
|
|
1339
|
+
__spreadValues$c({
|
|
1336
1340
|
label: "Description",
|
|
1337
1341
|
placeholder: "A class for my first period English students"
|
|
1338
1342
|
}, form$1.getInputProps("description"))
|
|
@@ -1636,29 +1640,29 @@ function Stack$3(props) {
|
|
|
1636
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."))));
|
|
1637
1641
|
}
|
|
1638
1642
|
|
|
1639
|
-
var __defProp$
|
|
1640
|
-
var __defProps$
|
|
1641
|
-
var __getOwnPropDescs$
|
|
1642
|
-
var __getOwnPropSymbols$
|
|
1643
|
-
var __hasOwnProp$
|
|
1644
|
-
var __propIsEnum$
|
|
1645
|
-
var __defNormalProp$
|
|
1646
|
-
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) => {
|
|
1647
1651
|
for (var prop in b || (b = {}))
|
|
1648
|
-
if (__hasOwnProp$
|
|
1649
|
-
__defNormalProp$
|
|
1650
|
-
if (__getOwnPropSymbols$
|
|
1651
|
-
for (var prop of __getOwnPropSymbols$
|
|
1652
|
-
if (__propIsEnum$
|
|
1653
|
-
__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]);
|
|
1654
1658
|
}
|
|
1655
1659
|
return a;
|
|
1656
1660
|
};
|
|
1657
|
-
var __spreadProps$
|
|
1661
|
+
var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
|
|
1658
1662
|
function Table$6(props) {
|
|
1659
1663
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
1660
1664
|
const preparedItems = React__namespace.useMemo(() => {
|
|
1661
|
-
return props.items.map((item) => __spreadProps$
|
|
1665
|
+
return props.items.map((item) => __spreadProps$9(__spreadValues$b({}, item), {
|
|
1662
1666
|
status: item.isComplete ? 2 : item.isStarted ? 1 : 0
|
|
1663
1667
|
}));
|
|
1664
1668
|
}, [props.items]);
|
|
@@ -1682,7 +1686,7 @@ function Table$6(props) {
|
|
|
1682
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(
|
|
1683
1687
|
"div",
|
|
1684
1688
|
{
|
|
1685
|
-
onClick: () => setExpanded(__spreadProps$
|
|
1689
|
+
onClick: () => setExpanded(__spreadProps$9(__spreadValues$b({}, expanded), { [row.userId]: !isOpen })),
|
|
1686
1690
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
1687
1691
|
},
|
|
1688
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))),
|
|
@@ -1983,25 +1987,25 @@ function Table$4(props) {
|
|
|
1983
1987
|
}));
|
|
1984
1988
|
}
|
|
1985
1989
|
|
|
1986
|
-
var __defProp$
|
|
1987
|
-
var __defProps$
|
|
1988
|
-
var __getOwnPropDescs$
|
|
1989
|
-
var __getOwnPropSymbols$
|
|
1990
|
-
var __hasOwnProp$
|
|
1991
|
-
var __propIsEnum$
|
|
1992
|
-
var __defNormalProp$
|
|
1993
|
-
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) => {
|
|
1994
1998
|
for (var prop in b || (b = {}))
|
|
1995
|
-
if (__hasOwnProp$
|
|
1996
|
-
__defNormalProp$
|
|
1997
|
-
if (__getOwnPropSymbols$
|
|
1998
|
-
for (var prop of __getOwnPropSymbols$
|
|
1999
|
-
if (__propIsEnum$
|
|
2000
|
-
__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]);
|
|
2001
2005
|
}
|
|
2002
2006
|
return a;
|
|
2003
2007
|
};
|
|
2004
|
-
var __spreadProps$
|
|
2008
|
+
var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
|
|
2005
2009
|
const People = (props) => {
|
|
2006
2010
|
const form$1 = form.useForm({
|
|
2007
2011
|
initialValues: {
|
|
@@ -2033,27 +2037,27 @@ const People = (props) => {
|
|
|
2033
2037
|
padding: "xl",
|
|
2034
2038
|
size: "xl"
|
|
2035
2039
|
},
|
|
2036
|
-
/* @__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(() => {
|
|
2037
2041
|
const values = form$1.values;
|
|
2038
2042
|
form$1.reset();
|
|
2039
2043
|
setOpened(false);
|
|
2040
2044
|
props.onCreateUsers && props.onCreateUsers([values]);
|
|
2041
2045
|
}) }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
2042
2046
|
core.TextInput,
|
|
2043
|
-
__spreadValues$
|
|
2047
|
+
__spreadValues$a({
|
|
2044
2048
|
withAsterisk: true,
|
|
2045
2049
|
label: "Email",
|
|
2046
2050
|
placeholder: "Email"
|
|
2047
2051
|
}, form$1.getInputProps("email"))
|
|
2048
2052
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
|
|
2049
2053
|
core.TextInput,
|
|
2050
|
-
__spreadValues$
|
|
2054
|
+
__spreadValues$a({
|
|
2051
2055
|
label: "Given name",
|
|
2052
2056
|
placeholder: "Given name"
|
|
2053
2057
|
}, form$1.getInputProps("givenName"))
|
|
2054
2058
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
2055
2059
|
core.TextInput,
|
|
2056
|
-
__spreadValues$
|
|
2060
|
+
__spreadValues$a({
|
|
2057
2061
|
label: "Family name",
|
|
2058
2062
|
placeholder: "Family name"
|
|
2059
2063
|
}, form$1.getInputProps("familyName"))
|
|
@@ -2239,24 +2243,24 @@ const StartAnonymousLesson = (props) => {
|
|
|
2239
2243
|
))))));
|
|
2240
2244
|
};
|
|
2241
2245
|
|
|
2242
|
-
var __defProp$
|
|
2243
|
-
var __getOwnPropSymbols$
|
|
2244
|
-
var __hasOwnProp$
|
|
2245
|
-
var __propIsEnum$
|
|
2246
|
-
var __defNormalProp$
|
|
2247
|
-
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) => {
|
|
2248
2252
|
for (var prop in b || (b = {}))
|
|
2249
|
-
if (__hasOwnProp$
|
|
2250
|
-
__defNormalProp$
|
|
2251
|
-
if (__getOwnPropSymbols$
|
|
2252
|
-
for (var prop of __getOwnPropSymbols$
|
|
2253
|
-
if (__propIsEnum$
|
|
2254
|
-
__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]);
|
|
2255
2259
|
}
|
|
2256
2260
|
return a;
|
|
2257
2261
|
};
|
|
2258
2262
|
const BadgeGrid = (props) => {
|
|
2259
|
-
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)));
|
|
2260
2264
|
return /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { cols: 4, breakpoints: [{ maxWidth: "sm", cols: 1 }, { maxWidth: "md", cols: 3 }] }, badges);
|
|
2261
2265
|
};
|
|
2262
2266
|
function TaskCard(props) {
|
|
@@ -2290,30 +2294,30 @@ const UserInfo = (props) => {
|
|
|
2290
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));
|
|
2291
2295
|
};
|
|
2292
2296
|
|
|
2293
|
-
var __defProp$
|
|
2294
|
-
var __getOwnPropSymbols$
|
|
2295
|
-
var __hasOwnProp$
|
|
2296
|
-
var __propIsEnum$
|
|
2297
|
-
var __defNormalProp$
|
|
2298
|
-
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) => {
|
|
2299
2303
|
for (var prop in b || (b = {}))
|
|
2300
|
-
if (__hasOwnProp$
|
|
2301
|
-
__defNormalProp$
|
|
2302
|
-
if (__getOwnPropSymbols$
|
|
2303
|
-
for (var prop of __getOwnPropSymbols$
|
|
2304
|
-
if (__propIsEnum$
|
|
2305
|
-
__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]);
|
|
2306
2310
|
}
|
|
2307
2311
|
return a;
|
|
2308
2312
|
};
|
|
2309
2313
|
var __objRest$1 = (source, exclude) => {
|
|
2310
2314
|
var target = {};
|
|
2311
2315
|
for (var prop in source)
|
|
2312
|
-
if (__hasOwnProp$
|
|
2316
|
+
if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
2313
2317
|
target[prop] = source[prop];
|
|
2314
|
-
if (source != null && __getOwnPropSymbols$
|
|
2315
|
-
for (var prop of __getOwnPropSymbols$
|
|
2316
|
-
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))
|
|
2317
2321
|
target[prop] = source[prop];
|
|
2318
2322
|
}
|
|
2319
2323
|
return target;
|
|
@@ -2380,9 +2384,9 @@ const TenantBanner = (_a) => {
|
|
|
2380
2384
|
};
|
|
2381
2385
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2382
2386
|
core.Card,
|
|
2383
|
-
__spreadValues$
|
|
2387
|
+
__spreadValues$8({
|
|
2384
2388
|
radius: "md",
|
|
2385
|
-
style: __spreadValues$
|
|
2389
|
+
style: __spreadValues$8({ backgroundImage: `url(${image})` }, style),
|
|
2386
2390
|
className: cx(classes.card, className)
|
|
2387
2391
|
}, others),
|
|
2388
2392
|
/* @__PURE__ */ React__namespace.createElement(
|
|
@@ -2458,33 +2462,33 @@ const TrialHome = (props) => {
|
|
|
2458
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 })));
|
|
2459
2463
|
};
|
|
2460
2464
|
|
|
2461
|
-
var __defProp$
|
|
2462
|
-
var __defProps$
|
|
2463
|
-
var __getOwnPropDescs$
|
|
2464
|
-
var __getOwnPropSymbols$
|
|
2465
|
-
var __hasOwnProp$
|
|
2466
|
-
var __propIsEnum$
|
|
2467
|
-
var __defNormalProp$
|
|
2468
|
-
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) => {
|
|
2469
2473
|
for (var prop in b || (b = {}))
|
|
2470
|
-
if (__hasOwnProp$
|
|
2471
|
-
__defNormalProp$
|
|
2472
|
-
if (__getOwnPropSymbols$
|
|
2473
|
-
for (var prop of __getOwnPropSymbols$
|
|
2474
|
-
if (__propIsEnum$
|
|
2475
|
-
__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]);
|
|
2476
2480
|
}
|
|
2477
2481
|
return a;
|
|
2478
2482
|
};
|
|
2479
|
-
var __spreadProps$
|
|
2483
|
+
var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
|
|
2480
2484
|
var __objRest = (source, exclude) => {
|
|
2481
2485
|
var target = {};
|
|
2482
2486
|
for (var prop in source)
|
|
2483
|
-
if (__hasOwnProp$
|
|
2487
|
+
if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
2484
2488
|
target[prop] = source[prop];
|
|
2485
|
-
if (source != null && __getOwnPropSymbols$
|
|
2486
|
-
for (var prop of __getOwnPropSymbols$
|
|
2487
|
-
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))
|
|
2488
2492
|
target[prop] = source[prop];
|
|
2489
2493
|
}
|
|
2490
2494
|
return target;
|
|
@@ -2534,7 +2538,7 @@ function ImageCheckbox(_a) {
|
|
|
2534
2538
|
const { classes, cx } = useStyles$2({ checked: value });
|
|
2535
2539
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2536
2540
|
core.UnstyledButton,
|
|
2537
|
-
__spreadProps$
|
|
2541
|
+
__spreadProps$7(__spreadValues$7({}, others), {
|
|
2538
2542
|
onClick: () => handleChange(!value),
|
|
2539
2543
|
className: cx(classes.button, className)
|
|
2540
2544
|
}),
|
|
@@ -2555,7 +2559,7 @@ function ImageCheckbox(_a) {
|
|
|
2555
2559
|
function SelectGrid(props) {
|
|
2556
2560
|
const items = props.items.map((item) => /* @__PURE__ */ React__namespace.createElement(
|
|
2557
2561
|
ImageCheckbox,
|
|
2558
|
-
__spreadProps$
|
|
2562
|
+
__spreadProps$7(__spreadValues$7({}, item), {
|
|
2559
2563
|
key: item.title,
|
|
2560
2564
|
onChange: (checked) => props.onChange(item.title, checked)
|
|
2561
2565
|
})
|
|
@@ -2573,25 +2577,25 @@ function SelectGrid(props) {
|
|
|
2573
2577
|
);
|
|
2574
2578
|
}
|
|
2575
2579
|
|
|
2576
|
-
var __defProp$
|
|
2577
|
-
var __defProps$
|
|
2578
|
-
var __getOwnPropDescs$
|
|
2579
|
-
var __getOwnPropSymbols$
|
|
2580
|
-
var __hasOwnProp$
|
|
2581
|
-
var __propIsEnum$
|
|
2582
|
-
var __defNormalProp$
|
|
2583
|
-
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) => {
|
|
2584
2588
|
for (var prop in b || (b = {}))
|
|
2585
|
-
if (__hasOwnProp$
|
|
2586
|
-
__defNormalProp$
|
|
2587
|
-
if (__getOwnPropSymbols$
|
|
2588
|
-
for (var prop of __getOwnPropSymbols$
|
|
2589
|
-
if (__propIsEnum$
|
|
2590
|
-
__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]);
|
|
2591
2595
|
}
|
|
2592
2596
|
return a;
|
|
2593
2597
|
};
|
|
2594
|
-
var __spreadProps$
|
|
2598
|
+
var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
|
|
2595
2599
|
const useStyles$1 = core.createStyles((theme) => ({
|
|
2596
2600
|
wrapper: {
|
|
2597
2601
|
minHeight: "100%",
|
|
@@ -2701,7 +2705,7 @@ const TrialRegistration = (props) => {
|
|
|
2701
2705
|
label: "School/Organization Name",
|
|
2702
2706
|
placeholder: "What's the name of your school?",
|
|
2703
2707
|
data: props.organizations.map((o) => {
|
|
2704
|
-
return __spreadProps$
|
|
2708
|
+
return __spreadProps$6(__spreadValues$6({}, o), { value: o.displayName });
|
|
2705
2709
|
}),
|
|
2706
2710
|
onItemSubmit: (item) => setOrganization({ organizationId: item.organizationId, displayName: item.displayName }),
|
|
2707
2711
|
onChange: (next) => {
|
|
@@ -2713,7 +2717,7 @@ const TrialRegistration = (props) => {
|
|
|
2713
2717
|
SelectGrid,
|
|
2714
2718
|
{
|
|
2715
2719
|
items: OPTIONS,
|
|
2716
|
-
onChange: (e, checked) => setInterests(__spreadProps$
|
|
2720
|
+
onChange: (e, checked) => setInterests(__spreadProps$6(__spreadValues$6({}, interests), { [e]: checked }))
|
|
2717
2721
|
}
|
|
2718
2722
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "right", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(
|
|
2719
2723
|
core.Button,
|
|
@@ -2751,25 +2755,25 @@ const AdminProvider = (props) => {
|
|
|
2751
2755
|
);
|
|
2752
2756
|
};
|
|
2753
2757
|
|
|
2754
|
-
var __defProp$
|
|
2755
|
-
var __defProps$
|
|
2756
|
-
var __getOwnPropDescs$
|
|
2757
|
-
var __getOwnPropSymbols$
|
|
2758
|
-
var __hasOwnProp$
|
|
2759
|
-
var __propIsEnum$
|
|
2760
|
-
var __defNormalProp$
|
|
2761
|
-
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) => {
|
|
2762
2766
|
for (var prop in b || (b = {}))
|
|
2763
|
-
if (__hasOwnProp$
|
|
2764
|
-
__defNormalProp$
|
|
2765
|
-
if (__getOwnPropSymbols$
|
|
2766
|
-
for (var prop of __getOwnPropSymbols$
|
|
2767
|
-
if (__propIsEnum$
|
|
2768
|
-
__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]);
|
|
2769
2773
|
}
|
|
2770
2774
|
return a;
|
|
2771
2775
|
};
|
|
2772
|
-
var __spreadProps$
|
|
2776
|
+
var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
|
|
2773
2777
|
const useStyles = core.createStyles((theme, props) => ({
|
|
2774
2778
|
footer: {
|
|
2775
2779
|
paddingTop: theme.spacing.md,
|
|
@@ -2865,7 +2869,7 @@ const App = (props) => {
|
|
|
2865
2869
|
padding: "xs",
|
|
2866
2870
|
navbar: props.navbar && /* @__PURE__ */ React__namespace.createElement(
|
|
2867
2871
|
Navbar,
|
|
2868
|
-
__spreadProps$
|
|
2872
|
+
__spreadProps$5(__spreadValues$5({}, props.navbar.props), {
|
|
2869
2873
|
onSwitchAccounts: account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : void 0
|
|
2870
2874
|
})
|
|
2871
2875
|
),
|
|
@@ -3016,30 +3020,30 @@ function Stack$1(props) {
|
|
|
3016
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"))));
|
|
3017
3021
|
}
|
|
3018
3022
|
|
|
3019
|
-
var __defProp$
|
|
3020
|
-
var __defProps$
|
|
3021
|
-
var __getOwnPropDescs$
|
|
3022
|
-
var __getOwnPropSymbols$
|
|
3023
|
-
var __hasOwnProp$
|
|
3024
|
-
var __propIsEnum$
|
|
3025
|
-
var __defNormalProp$
|
|
3026
|
-
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) => {
|
|
3027
3031
|
for (var prop in b || (b = {}))
|
|
3028
|
-
if (__hasOwnProp$
|
|
3029
|
-
__defNormalProp$
|
|
3030
|
-
if (__getOwnPropSymbols$
|
|
3031
|
-
for (var prop of __getOwnPropSymbols$
|
|
3032
|
-
if (__propIsEnum$
|
|
3033
|
-
__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]);
|
|
3034
3038
|
}
|
|
3035
3039
|
return a;
|
|
3036
3040
|
};
|
|
3037
|
-
var __spreadProps$
|
|
3041
|
+
var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
|
|
3038
3042
|
function Table$2(props) {
|
|
3039
3043
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
3040
3044
|
const categories = props.categories || [];
|
|
3041
3045
|
const preparedItems = React__namespace.useMemo(() => {
|
|
3042
|
-
return (props.items || []).map((item) => __spreadValues$
|
|
3046
|
+
return (props.items || []).map((item) => __spreadValues$4(__spreadValues$4({}, item), item.categoryPoints));
|
|
3043
3047
|
}, [props.items]);
|
|
3044
3048
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
|
|
3045
3049
|
if (props.loading && props.items.length === 0) {
|
|
@@ -3061,7 +3065,7 @@ function Table$2(props) {
|
|
|
3061
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(
|
|
3062
3066
|
"div",
|
|
3063
3067
|
{
|
|
3064
|
-
onClick: () => setExpanded(__spreadProps$
|
|
3068
|
+
onClick: () => setExpanded(__spreadProps$4(__spreadValues$4({}, expanded), { [row.userId]: !isOpen })),
|
|
3065
3069
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
3066
3070
|
},
|
|
3067
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))),
|
|
@@ -3076,8 +3080,8 @@ function Table$2(props) {
|
|
|
3076
3080
|
}
|
|
3077
3081
|
|
|
3078
3082
|
function Table$1(props) {
|
|
3079
|
-
const { items:
|
|
3080
|
-
if (props.
|
|
3083
|
+
const { items: sortedBadges, requestSort, sortConfig } = useSortableData(props.badges);
|
|
3084
|
+
if (props.badges.length === 0) {
|
|
3081
3085
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
3082
3086
|
PlaceholderBanner,
|
|
3083
3087
|
{
|
|
@@ -3089,30 +3093,116 @@ function Table$1(props) {
|
|
|
3089
3093
|
);
|
|
3090
3094
|
}
|
|
3091
3095
|
const indicator = (key) => sortConfig.key !== key ? "" : sortConfig.direction === "desc" ? " \u25BE" : " \u25B4";
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
)));
|
|
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 }));
|
|
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;
|
|
3102
3168
|
}
|
|
3103
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
|
+
};
|
|
3180
|
+
|
|
3104
3181
|
const TABS$1 = [
|
|
3105
3182
|
{ label: "By Badge", value: "badges" },
|
|
3106
3183
|
{ label: "By student", value: "students" }
|
|
3107
3184
|
];
|
|
3108
3185
|
const Pathway = (props) => {
|
|
3109
|
-
var _a;
|
|
3186
|
+
var _a, _b, _c;
|
|
3110
3187
|
const [tab, setTab] = React.useState("badges");
|
|
3188
|
+
const [categoriesOpen, setCategoriesOpen] = React.useState(false);
|
|
3111
3189
|
const numberOfStudents = props.students.length;
|
|
3112
3190
|
const numberOfBadgesEarned = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
|
|
3113
3191
|
const criteria = props.criteria || {};
|
|
3114
3192
|
const criteriaCategories = (props.categories || []).filter((c) => criteria[c.categoryId] !== void 0);
|
|
3115
|
-
|
|
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(
|
|
3116
3206
|
SplitButton$1,
|
|
3117
3207
|
{
|
|
3118
3208
|
href: props.href,
|
|
@@ -3141,7 +3231,15 @@ const Pathway = (props) => {
|
|
|
3141
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"}`
|
|
3142
3232
|
},
|
|
3143
3233
|
t.label
|
|
3144
|
-
))), (!!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
|
+
));
|
|
3145
3243
|
};
|
|
3146
3244
|
|
|
3147
3245
|
const SplitButton = (props) => {
|