@local-civics/mgmt-ui 0.1.242 → 0.1.244
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 +30 -111
- package/dist/index.js +178 -425
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +180 -426
- 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}.static{position:static}.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-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1{margin-top:.25rem}.mb-2{margin-bottom:.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}.mb-1{margin-bottom:.25rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-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-5{height:1.25rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-14{height:3.5rem}.h-16{height:4rem}.h-28{height:7rem}.h-\\[30px\\]{height:30px}.h-\\[400px\\]{height:400px}.max-h-\\[70vh\\]{max-height:70vh}.w-10{width:2.5rem}.w-full{width:100%}.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-\\[296px\\]{width:296px}.w-40{width:10rem}.w-24{width:6rem}.w-56{width:14rem}.w-8{width:2rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-5{width:1.25rem}.w-16{width:4rem}.w-12{width:3rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-\\[500px\\]{width:500px}.w-14{width:3.5rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.max-w-xs{max-width:20rem}.max-w-xl{max-width:36rem}.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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.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\\.3fr_1\\.3fr_2fr_1fr_1fr\\]{grid-template-columns:1.3fr 1.3fr 2fr 1fr 1fr}.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}.grid-cols-\\[2\\.2fr_1fr\\]{grid-template-columns:2.2fr 1fr}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.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-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-3{gap:.75rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.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>: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)))}.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-\\[3px\\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(-3px*var(--tw-space-y-reverse));margin-top:calc(-3px*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.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-3xl{border-radius:1.5rem}.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-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.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-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-slate-50\\/60{background-color:rgba(248,250,252,.6)}.bg-gold-400\\/15{background-color:rgba(255,212,77,.15)}.bg-sky-blue-400\\/10{background-color:rgba(59,208,242,.1)}.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-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-gold-400{--tw-bg-opacity:1;background-color:rgb(255 212 77/var(--tw-bg-opacity))}.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}.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-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[11px\\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.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-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-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/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-\\[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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.line-clamp-2{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}*,: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-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\\:bg-sky-blue-400\\/20:hover{background-color:rgba(59,208,242,.2)}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/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-dark-blue-400:hover{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/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}.disabled\\:opacity-40:disabled{opacity:.4}@media (min-width:640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}";
|
|
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}.static{position:static}.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-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1{margin-top:.25rem}.mb-2{margin-bottom:.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}.mb-1{margin-bottom:.25rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-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-5{height:1.25rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-14{height:3.5rem}.h-16{height:4rem}.h-28{height:7rem}.h-\\[30px\\]{height:30px}.h-\\[400px\\]{height:400px}.max-h-\\[70vh\\]{max-height:70vh}.w-10{width:2.5rem}.w-full{width:100%}.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-\\[296px\\]{width:296px}.w-40{width:10rem}.w-24{width:6rem}.w-56{width:14rem}.w-8{width:2rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-5{width:1.25rem}.w-16{width:4rem}.w-12{width:3rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-\\[500px\\]{width:500px}.w-14{width:3.5rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.max-w-xs{max-width:20rem}.max-w-xl{max-width:36rem}.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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.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\\.3fr_1\\.3fr_2fr_1fr_1fr\\]{grid-template-columns:1.3fr 1.3fr 2fr 1fr 1fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.grid-cols-\\[2\\.2fr_1fr\\]{grid-template-columns:2.2fr 1fr}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.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-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-3{gap:.75rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.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>: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)))}.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-\\[3px\\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(-3px*var(--tw-space-y-reverse));margin-top:calc(-3px*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.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-3xl{border-radius:1.5rem}.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-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.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-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-slate-50\\/60{background-color:rgba(248,250,252,.6)}.bg-gold-400\\/15{background-color:rgba(255,212,77,.15)}.bg-sky-blue-400\\/10{background-color:rgba(59,208,242,.1)}.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-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-gold-400{--tw-bg-opacity:1;background-color:rgb(255 212 77/var(--tw-bg-opacity))}.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}.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-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[11px\\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.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-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-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.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-\\[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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.line-clamp-2{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}*,: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-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\\:bg-sky-blue-400\\/20:hover{background-color:rgba(59,208,242,.2)}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/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-dark-blue-400:hover{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/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}.disabled\\:opacity-40:disabled{opacity:.4}@media (min-width:640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}";
|
|
64
64
|
styleInject(css_248z);
|
|
65
65
|
|
|
66
66
|
function UserButton({ image, name, email }) {
|
|
@@ -144,28 +144,27 @@ 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$i = Object.defineProperty;
|
|
148
|
+
var __defProps$f = Object.defineProperties;
|
|
149
|
+
var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
|
|
150
|
+
var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
|
|
151
|
+
var __hasOwnProp$i = Object.prototype.hasOwnProperty;
|
|
152
|
+
var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
|
|
153
|
+
var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
154
|
+
var __spreadValues$i = (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$i.call(b, prop))
|
|
157
|
+
__defNormalProp$i(a, prop, b[prop]);
|
|
158
|
+
if (__getOwnPropSymbols$i)
|
|
159
|
+
for (var prop of __getOwnPropSymbols$i(b)) {
|
|
160
|
+
if (__propIsEnum$i.call(b, prop))
|
|
161
|
+
__defNormalProp$i(a, prop, b[prop]);
|
|
162
162
|
}
|
|
163
163
|
return a;
|
|
164
164
|
};
|
|
165
|
-
var __spreadProps$
|
|
165
|
+
var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
|
|
166
166
|
const data = [
|
|
167
167
|
{ label: "Home", icon: icons.IconHome2, accent: "cyan" },
|
|
168
|
-
{ label: "Dashboard", icon: icons.IconGauge, accent: "mint" },
|
|
169
168
|
{ label: "Classes", icon: icons.IconCategory2, accent: "gold" },
|
|
170
169
|
{ label: "Pathways", icon: icons.IconRoute, accent: "cyan" },
|
|
171
170
|
{ label: "Badges", icon: icons.IconAlbum, accent: "mint" },
|
|
@@ -191,12 +190,12 @@ function Navbar(props) {
|
|
|
191
190
|
}
|
|
192
191
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
193
192
|
LinksGroup,
|
|
194
|
-
__spreadProps$
|
|
193
|
+
__spreadProps$f(__spreadValues$i(__spreadValues$i({
|
|
195
194
|
key: item.label,
|
|
196
195
|
active: props.active
|
|
197
196
|
}, item), context), {
|
|
198
197
|
links: (item.links || []).map((link) => {
|
|
199
|
-
return __spreadValues$
|
|
198
|
+
return __spreadValues$i(__spreadValues$i({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
|
|
200
199
|
})
|
|
201
200
|
})
|
|
202
201
|
);
|
|
@@ -528,29 +527,29 @@ function useSortableData(items, config = { key: "", direction: null }) {
|
|
|
528
527
|
return { items: sortedItems, requestSort, sortConfig };
|
|
529
528
|
}
|
|
530
529
|
|
|
531
|
-
var __defProp$
|
|
532
|
-
var __defProps$
|
|
533
|
-
var __getOwnPropDescs$
|
|
534
|
-
var __getOwnPropSymbols$
|
|
535
|
-
var __hasOwnProp$
|
|
536
|
-
var __propIsEnum$
|
|
537
|
-
var __defNormalProp$
|
|
538
|
-
var __spreadValues$
|
|
530
|
+
var __defProp$h = Object.defineProperty;
|
|
531
|
+
var __defProps$e = Object.defineProperties;
|
|
532
|
+
var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
|
|
533
|
+
var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
|
|
534
|
+
var __hasOwnProp$h = Object.prototype.hasOwnProperty;
|
|
535
|
+
var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
|
|
536
|
+
var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
537
|
+
var __spreadValues$h = (a, b) => {
|
|
539
538
|
for (var prop in b || (b = {}))
|
|
540
|
-
if (__hasOwnProp$
|
|
541
|
-
__defNormalProp$
|
|
542
|
-
if (__getOwnPropSymbols$
|
|
543
|
-
for (var prop of __getOwnPropSymbols$
|
|
544
|
-
if (__propIsEnum$
|
|
545
|
-
__defNormalProp$
|
|
539
|
+
if (__hasOwnProp$h.call(b, prop))
|
|
540
|
+
__defNormalProp$h(a, prop, b[prop]);
|
|
541
|
+
if (__getOwnPropSymbols$h)
|
|
542
|
+
for (var prop of __getOwnPropSymbols$h(b)) {
|
|
543
|
+
if (__propIsEnum$h.call(b, prop))
|
|
544
|
+
__defNormalProp$h(a, prop, b[prop]);
|
|
546
545
|
}
|
|
547
546
|
return a;
|
|
548
547
|
};
|
|
549
|
-
var __spreadProps$
|
|
550
|
-
function Table$
|
|
548
|
+
var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
|
|
549
|
+
function Table$e(props) {
|
|
551
550
|
const [expanded, setExpanded] = React__namespace.useState({});
|
|
552
551
|
const preparedItems = React__namespace.useMemo(() => {
|
|
553
|
-
return props.items.map((item) => __spreadProps$
|
|
552
|
+
return props.items.map((item) => __spreadProps$e(__spreadValues$h({}, item), {
|
|
554
553
|
status: item.isComplete ? 1 : 0
|
|
555
554
|
}));
|
|
556
555
|
}, [props.items]);
|
|
@@ -573,7 +572,7 @@ function Table$k(props) {
|
|
|
573
572
|
return /* @__PURE__ */ React__namespace.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
574
573
|
"div",
|
|
575
574
|
{
|
|
576
|
-
onClick: () => setExpanded(__spreadProps$
|
|
575
|
+
onClick: () => setExpanded(__spreadProps$e(__spreadValues$h({}, expanded), { [row.userId]: !isOpen })),
|
|
577
576
|
className: "flex cursor-pointer items-center gap-4 p-4"
|
|
578
577
|
},
|
|
579
578
|
/* @__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))),
|
|
@@ -583,7 +582,7 @@ function Table$k(props) {
|
|
|
583
582
|
}));
|
|
584
583
|
}
|
|
585
584
|
|
|
586
|
-
function Table$
|
|
585
|
+
function Table$d(props) {
|
|
587
586
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
588
587
|
if (props.items.length === 0) {
|
|
589
588
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -608,7 +607,7 @@ function Table$j(props) {
|
|
|
608
607
|
)));
|
|
609
608
|
}
|
|
610
609
|
|
|
611
|
-
const TABS$
|
|
610
|
+
const TABS$4 = [
|
|
612
611
|
{ label: "By lesson", value: "lessons" },
|
|
613
612
|
{ label: "By student", value: "students" }
|
|
614
613
|
];
|
|
@@ -655,7 +654,7 @@ const Badge = (props) => {
|
|
|
655
654
|
},
|
|
656
655
|
/* @__PURE__ */ React__namespace.createElement("option", { value: "" }, "All classes"),
|
|
657
656
|
props.classes.map((c) => /* @__PURE__ */ React__namespace.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
658
|
-
)), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, !props.trial && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$
|
|
657
|
+
)), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, !props.trial && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$4.map((t) => /* @__PURE__ */ React__namespace.createElement(
|
|
659
658
|
"button",
|
|
660
659
|
{
|
|
661
660
|
key: t.value,
|
|
@@ -663,10 +662,10 @@ const Badge = (props) => {
|
|
|
663
662
|
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"}`
|
|
664
663
|
},
|
|
665
664
|
t.label
|
|
666
|
-
))), (!!props.trial || tab === "lessons") && /* @__PURE__ */ React__namespace.createElement(Table$
|
|
665
|
+
))), (!!props.trial || tab === "lessons") && /* @__PURE__ */ React__namespace.createElement(Table$d, { loading: props.loading, items: props.lessons }), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(Table$e, { loading: props.loading, items: props.students, linkState: props.linkState })));
|
|
667
666
|
};
|
|
668
667
|
|
|
669
|
-
function Table$
|
|
668
|
+
function Table$c(props) {
|
|
670
669
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
671
670
|
if (props.loading) {
|
|
672
671
|
return /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm text-slate-400" }, "Loading\u2026");
|
|
@@ -717,283 +716,7 @@ const Badges = (props) => {
|
|
|
717
716
|
onChange: (e) => props.onAutocompleteChange(e.target.value),
|
|
718
717
|
className: "flex-1 border-none bg-transparent text-sm text-dark-blue-400 outline-none placeholder:text-slate-400"
|
|
719
718
|
}
|
|
720
|
-
)), /* @__PURE__ */ React__namespace.createElement(Table$
|
|
721
|
-
};
|
|
722
|
-
|
|
723
|
-
function Table$h(props) {
|
|
724
|
-
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
725
|
-
if (props.items.length === 0) {
|
|
726
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
727
|
-
PlaceholderBanner,
|
|
728
|
-
{
|
|
729
|
-
title: "No students to display",
|
|
730
|
-
description: "You don't have any students yet, add them and revisit.",
|
|
731
|
-
loading: props.loading,
|
|
732
|
-
icon: "groups"
|
|
733
|
-
}
|
|
734
|
-
);
|
|
735
|
-
}
|
|
736
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-[2fr_1fr] items-center gap-3 border-b border-slate-100 px-5 py-3" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Student Name", sortKey: "studentName", sortConfig, onSort: requestSort }), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Class Name", sortKey: "className", sortConfig, onSort: requestSort })), sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
737
|
-
"div",
|
|
738
|
-
{
|
|
739
|
-
key: row.studentId,
|
|
740
|
-
className: `grid grid-cols-[2fr_1fr] items-center gap-3 px-5 py-3.5 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
741
|
-
},
|
|
742
|
-
/* @__PURE__ */ React__namespace.createElement(
|
|
743
|
-
"button",
|
|
744
|
-
{
|
|
745
|
-
type: "button",
|
|
746
|
-
onClick: () => props.onViewProfile(row),
|
|
747
|
-
className: "truncate text-left text-xs font-bold text-dark-blue-400 hover:text-sky-blue-400"
|
|
748
|
-
},
|
|
749
|
-
row.studentName
|
|
750
|
-
),
|
|
751
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-500" }, row.className)
|
|
752
|
-
)));
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
const units = [
|
|
756
|
-
{ unit: "year", ms: 31536e6 },
|
|
757
|
-
{ unit: "month", ms: 2628e6 },
|
|
758
|
-
{ unit: "day", ms: 864e5 },
|
|
759
|
-
{ unit: "hour", ms: 36e5 },
|
|
760
|
-
{ unit: "minute", ms: 6e4 },
|
|
761
|
-
{ unit: "second", ms: 1e3 }
|
|
762
|
-
];
|
|
763
|
-
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
|
|
764
|
-
function relativeTimeFromDates(relative, pivot = new Date()) {
|
|
765
|
-
if (!relative)
|
|
766
|
-
return "";
|
|
767
|
-
const elapsed = relative.getTime() - pivot.getTime();
|
|
768
|
-
return relativeTimeFromElapsed(elapsed);
|
|
769
|
-
}
|
|
770
|
-
function relativeTimeFromElapsed(elapsed) {
|
|
771
|
-
for (const { unit, ms } of units) {
|
|
772
|
-
if (Math.abs(elapsed) >= ms || unit === "second") {
|
|
773
|
-
return rtf.format(Math.round(elapsed / ms), unit);
|
|
774
|
-
}
|
|
775
|
-
}
|
|
776
|
-
return "";
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
var __defProp$h = Object.defineProperty;
|
|
780
|
-
var __defProps$e = Object.defineProperties;
|
|
781
|
-
var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
|
|
782
|
-
var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
|
|
783
|
-
var __hasOwnProp$h = Object.prototype.hasOwnProperty;
|
|
784
|
-
var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
|
|
785
|
-
var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
786
|
-
var __spreadValues$h = (a, b) => {
|
|
787
|
-
for (var prop in b || (b = {}))
|
|
788
|
-
if (__hasOwnProp$h.call(b, prop))
|
|
789
|
-
__defNormalProp$h(a, prop, b[prop]);
|
|
790
|
-
if (__getOwnPropSymbols$h)
|
|
791
|
-
for (var prop of __getOwnPropSymbols$h(b)) {
|
|
792
|
-
if (__propIsEnum$h.call(b, prop))
|
|
793
|
-
__defNormalProp$h(a, prop, b[prop]);
|
|
794
|
-
}
|
|
795
|
-
return a;
|
|
796
|
-
};
|
|
797
|
-
var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
|
|
798
|
-
function Table$g(props) {
|
|
799
|
-
const preparedItems = React__namespace.useMemo(() => {
|
|
800
|
-
return props.items.map((item) => __spreadProps$e(__spreadValues$h({}, item), {
|
|
801
|
-
updatedAtDate: new Date(item.updatedAt)
|
|
802
|
-
}));
|
|
803
|
-
}, [props.items]);
|
|
804
|
-
const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
|
|
805
|
-
if (props.items.length === 0) {
|
|
806
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
807
|
-
PlaceholderBanner,
|
|
808
|
-
{
|
|
809
|
-
title: "No reflections to display",
|
|
810
|
-
description: "There has not been any lesson progress just yet.",
|
|
811
|
-
loading: props.loading,
|
|
812
|
-
icon: "lessons"
|
|
813
|
-
}
|
|
814
|
-
);
|
|
815
|
-
}
|
|
816
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-[1fr_1fr_2fr_0.8fr] items-center gap-3 border-b border-slate-100 px-5 py-3" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Student Name", sortKey: "studentName", sortConfig, onSort: requestSort }), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Lesson Name", sortKey: "lessonName", sortConfig, onSort: requestSort }), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Reflection"), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Updated At", sortKey: "updatedAtDate", sortConfig, onSort: requestSort })), sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
817
|
-
"div",
|
|
818
|
-
{
|
|
819
|
-
key: row.studentName + row.lessonName,
|
|
820
|
-
className: `grid grid-cols-[1fr_1fr_2fr_0.8fr] items-center gap-3 px-5 py-3.5 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
821
|
-
},
|
|
822
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs font-bold text-dark-blue-400" }, row.studentName),
|
|
823
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-500" }, row.lessonName),
|
|
824
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-500" }, row.reflection),
|
|
825
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-500" }, relativeTimeFromDates(row.updatedAtDate))
|
|
826
|
-
)));
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
function Table$f(props) {
|
|
830
|
-
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
831
|
-
if (props.items.length === 0) {
|
|
832
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
833
|
-
PlaceholderBanner,
|
|
834
|
-
{
|
|
835
|
-
title: "No impact statements to display",
|
|
836
|
-
description: "There are no students with impact statements yet.",
|
|
837
|
-
loading: props.loading,
|
|
838
|
-
icon: "kindergarten"
|
|
839
|
-
}
|
|
840
|
-
);
|
|
841
|
-
}
|
|
842
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-[1fr_3fr] items-center gap-3 border-b border-slate-100 px-5 py-3" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Student Name", sortKey: "studentName", sortConfig, onSort: requestSort }), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Impact Statement")), sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
843
|
-
"div",
|
|
844
|
-
{
|
|
845
|
-
key: row.studentName,
|
|
846
|
-
className: `grid grid-cols-[1fr_3fr] items-center gap-3 px-5 py-3.5 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
847
|
-
},
|
|
848
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs font-bold text-dark-blue-400" }, row.studentName),
|
|
849
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-500" }, row.impactStatement)
|
|
850
|
-
)));
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
function Table$e(props) {
|
|
854
|
-
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
855
|
-
if (props.items.length === 0) {
|
|
856
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
857
|
-
PlaceholderBanner,
|
|
858
|
-
{
|
|
859
|
-
title: "No badges to display",
|
|
860
|
-
description: "We don't have any badges to show you just yet.",
|
|
861
|
-
loading: props.loading,
|
|
862
|
-
icon: "badges"
|
|
863
|
-
}
|
|
864
|
-
);
|
|
865
|
-
}
|
|
866
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-[1.5fr_2fr_0.8fr] items-center gap-3 border-b border-slate-100 px-5 py-3" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Badge Name", sortKey: "name", sortConfig, onSort: requestSort }), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Description"), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Completion", sortKey: "percentageCompletion", sortConfig, onSort: requestSort, align: "center" })), sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
867
|
-
"div",
|
|
868
|
-
{
|
|
869
|
-
key: row.badgeId,
|
|
870
|
-
className: `grid grid-cols-[1.5fr_2fr_0.8fr] items-center gap-3 px-5 py-3.5 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
871
|
-
},
|
|
872
|
-
/* @__PURE__ */ React__namespace.createElement(
|
|
873
|
-
"button",
|
|
874
|
-
{
|
|
875
|
-
type: "button",
|
|
876
|
-
onClick: () => props.onClick && props.onClick(row),
|
|
877
|
-
className: "truncate text-left text-xs font-bold text-dark-blue-400 hover:text-sky-blue-400"
|
|
878
|
-
},
|
|
879
|
-
row.name
|
|
880
|
-
),
|
|
881
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-500" }, row.description),
|
|
882
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-center text-xs font-bold text-dark-blue-400" }, Math.round((row.percentageCompletion + Number.EPSILON) * 100), "%")
|
|
883
|
-
)));
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
function Table$d(props) {
|
|
887
|
-
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
888
|
-
if (props.items.length === 0) {
|
|
889
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
890
|
-
PlaceholderBanner,
|
|
891
|
-
{
|
|
892
|
-
title: "No lessons to display",
|
|
893
|
-
description: "We don't have any lessons to show you just yet.",
|
|
894
|
-
loading: props.loading,
|
|
895
|
-
icon: "lessons"
|
|
896
|
-
}
|
|
897
|
-
);
|
|
898
|
-
}
|
|
899
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-[1.5fr_2fr_0.8fr] items-center gap-3 border-b border-slate-100 px-5 py-3" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Lesson Name", sortKey: "name", sortConfig, onSort: requestSort }), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Description"), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Completion", sortKey: "percentageCompletion", sortConfig, onSort: requestSort, align: "center" })), sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
900
|
-
"div",
|
|
901
|
-
{
|
|
902
|
-
key: row.lessonId,
|
|
903
|
-
className: `grid grid-cols-[1.5fr_2fr_0.8fr] items-center gap-3 px-5 py-3.5 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
904
|
-
},
|
|
905
|
-
/* @__PURE__ */ React__namespace.createElement(
|
|
906
|
-
"button",
|
|
907
|
-
{
|
|
908
|
-
type: "button",
|
|
909
|
-
onClick: () => props.onClick && props.onClick(row),
|
|
910
|
-
className: "truncate text-left text-xs font-bold text-dark-blue-400 hover:text-sky-blue-400"
|
|
911
|
-
},
|
|
912
|
-
row.name
|
|
913
|
-
),
|
|
914
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-xs text-slate-500" }, row.description),
|
|
915
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-center text-xs font-bold text-dark-blue-400" }, Math.round((row.percentageCompletion + Number.EPSILON) * 100), "%")
|
|
916
|
-
)));
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
const TABS$4 = [
|
|
920
|
-
{ label: "My students", value: "students" },
|
|
921
|
-
{ label: "Impact statements", value: "impact" },
|
|
922
|
-
{ label: "Reflections", value: "reflections" },
|
|
923
|
-
{ label: "Badges", value: "badges" },
|
|
924
|
-
{ label: "Lessons", value: "lessons" }
|
|
925
|
-
];
|
|
926
|
-
const Dashboard = (props) => {
|
|
927
|
-
const [tab, setTab] = React.useState("students");
|
|
928
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, "Dashboard"), /* @__PURE__ */ React__namespace.createElement("p", { className: "max-w-xl text-sm text-slate-500" }, "Track your students' pathway progress")), /* @__PURE__ */ React__namespace.createElement(StatsGroup, { data: [
|
|
929
|
-
{
|
|
930
|
-
title: "# OF STUDENTS",
|
|
931
|
-
value: props.students.length
|
|
932
|
-
},
|
|
933
|
-
{
|
|
934
|
-
title: "ACCOUNT CREATION",
|
|
935
|
-
value: props.percentageOfAccountsCreated,
|
|
936
|
-
unit: "%"
|
|
937
|
-
},
|
|
938
|
-
{
|
|
939
|
-
title: "BADGES EARNED",
|
|
940
|
-
value: props.numberOfBadgesEarned
|
|
941
|
-
},
|
|
942
|
-
{
|
|
943
|
-
title: "LESSONS COMPLETED",
|
|
944
|
-
value: props.numberOfLessonsCompleted
|
|
945
|
-
}
|
|
946
|
-
] }), /* @__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(
|
|
947
|
-
"select",
|
|
948
|
-
{
|
|
949
|
-
value: props.classId,
|
|
950
|
-
onChange: (e) => props.onClassChange(e.target.value),
|
|
951
|
-
className: "w-full appearance-none rounded-lg border border-slate-200 bg-white py-2 pl-9 pr-4 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
952
|
-
},
|
|
953
|
-
/* @__PURE__ */ React__namespace.createElement("option", { value: "" }, "All classes"),
|
|
954
|
-
props.classes.map((c) => /* @__PURE__ */ React__namespace.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
955
|
-
)), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex w-fit flex-wrap gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$4.map((t) => /* @__PURE__ */ React__namespace.createElement(
|
|
956
|
-
"button",
|
|
957
|
-
{
|
|
958
|
-
key: t.value,
|
|
959
|
-
onClick: () => setTab(t.value),
|
|
960
|
-
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"}`
|
|
961
|
-
},
|
|
962
|
-
t.label
|
|
963
|
-
))), tab === "impact" && /* @__PURE__ */ React__namespace.createElement(
|
|
964
|
-
Table$f,
|
|
965
|
-
{
|
|
966
|
-
loading: props.loading,
|
|
967
|
-
items: props.impacts
|
|
968
|
-
}
|
|
969
|
-
), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
|
|
970
|
-
Table$g,
|
|
971
|
-
{
|
|
972
|
-
loading: props.loading,
|
|
973
|
-
items: props.reflections
|
|
974
|
-
}
|
|
975
|
-
), tab === "badges" && /* @__PURE__ */ React__namespace.createElement(
|
|
976
|
-
Table$e,
|
|
977
|
-
{
|
|
978
|
-
loading: props.loading,
|
|
979
|
-
items: props.badges,
|
|
980
|
-
onClick: props.onBadgeClick
|
|
981
|
-
}
|
|
982
|
-
), tab === "lessons" && /* @__PURE__ */ React__namespace.createElement(
|
|
983
|
-
Table$d,
|
|
984
|
-
{
|
|
985
|
-
loading: props.loading,
|
|
986
|
-
items: props.lessons,
|
|
987
|
-
onClick: props.onLessonClick
|
|
988
|
-
}
|
|
989
|
-
), tab === "students" && /* @__PURE__ */ React__namespace.createElement(
|
|
990
|
-
Table$h,
|
|
991
|
-
{
|
|
992
|
-
loading: props.loading,
|
|
993
|
-
items: props.students,
|
|
994
|
-
onViewProfile: props.onViewStudentProfile
|
|
995
|
-
}
|
|
996
|
-
)));
|
|
719
|
+
)), /* @__PURE__ */ React__namespace.createElement(Table$c, { loading: props.loading, items: props.badges }));
|
|
997
720
|
};
|
|
998
721
|
|
|
999
722
|
var __defProp$g = Object.defineProperty;
|
|
@@ -1023,7 +746,7 @@ const openDeleteModal$2 = (student, onDelete) => modals.openConfirmModal({
|
|
|
1023
746
|
confirmProps: { color: "red" },
|
|
1024
747
|
onConfirm: () => onDelete(student)
|
|
1025
748
|
});
|
|
1026
|
-
function Table$
|
|
749
|
+
function Table$b(props) {
|
|
1027
750
|
const preparedItems = React__namespace.useMemo(() => {
|
|
1028
751
|
return props.items.map((item) => __spreadProps$d(__spreadValues$g({}, item), {
|
|
1029
752
|
fullName: item.givenName && item.familyName ? `${item.givenName} ${item.familyName}`.toLowerCase() : item.email.toLowerCase()
|
|
@@ -1160,7 +883,7 @@ const Class = (props) => {
|
|
|
1160
883
|
value: props.numberOfLessonsCompleted
|
|
1161
884
|
}
|
|
1162
885
|
] }), /* @__PURE__ */ React__namespace.createElement(
|
|
1163
|
-
Table$
|
|
886
|
+
Table$b,
|
|
1164
887
|
{
|
|
1165
888
|
loading: props.loading,
|
|
1166
889
|
items: props.members,
|
|
@@ -1282,7 +1005,7 @@ const openDeleteModal$1 = (group, onDeleteClass) => modals.openConfirmModal({
|
|
|
1282
1005
|
confirmProps: { color: "red" },
|
|
1283
1006
|
onConfirm: () => onDeleteClass(group)
|
|
1284
1007
|
});
|
|
1285
|
-
function Table$
|
|
1008
|
+
function Table$a(props) {
|
|
1286
1009
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1287
1010
|
if (props.items.length === 0) {
|
|
1288
1011
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1404,7 +1127,7 @@ const Classes = (props) => {
|
|
|
1404
1127
|
className: "w-full rounded-xl border border-slate-200 bg-white py-2.5 pl-10 pr-4 text-sm text-dark-blue-400 placeholder:text-slate-400 focus:border-sky-blue-400 focus:outline-none"
|
|
1405
1128
|
}
|
|
1406
1129
|
)), /* @__PURE__ */ React__namespace.createElement(
|
|
1407
|
-
Table$
|
|
1130
|
+
Table$a,
|
|
1408
1131
|
{
|
|
1409
1132
|
loading: props.loading,
|
|
1410
1133
|
items: props.classes,
|
|
@@ -1413,7 +1136,8 @@ const Classes = (props) => {
|
|
|
1413
1136
|
)));
|
|
1414
1137
|
};
|
|
1415
1138
|
|
|
1416
|
-
function Table$
|
|
1139
|
+
function Table$9(props) {
|
|
1140
|
+
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1417
1141
|
if (props.items.length === 0) {
|
|
1418
1142
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1419
1143
|
PlaceholderBanner,
|
|
@@ -1425,18 +1149,18 @@ function Table$a(props) {
|
|
|
1425
1149
|
}
|
|
1426
1150
|
);
|
|
1427
1151
|
}
|
|
1428
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" },
|
|
1152
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-4 px-4" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Badge Name", sortKey: "badgeName", sortConfig, onSort: requestSort, className: "flex-1" }), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Status", sortKey: "isComplete", sortConfig, onSort: requestSort, align: "center", className: "w-28 shrink-0" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
1429
1153
|
"div",
|
|
1430
1154
|
{
|
|
1431
1155
|
key: row.badgeId || row.badgeName,
|
|
1432
|
-
className: `flex items-center justify-between gap-4 px-5 py-4 ${i <
|
|
1156
|
+
className: `flex items-center justify-between gap-4 px-5 py-4 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
1433
1157
|
},
|
|
1434
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, row.badgeName),
|
|
1435
|
-
/* @__PURE__ */ React__namespace.createElement("span", { className: `shrink-0 rounded-full px-2.5 py-1 text-[10px] font-bold uppercase tracking-wide ${row.isComplete ? "bg-mint-100 text-dark-blue-400" : "bg-slate-100 text-slate-500"}` }, row.isComplete ? "Complete" : "Incomplete")
|
|
1436
|
-
)));
|
|
1158
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0 flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, row.badgeName), row.pathwayName && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-xs text-slate-500" }, row.pathwayName, " pathway")),
|
|
1159
|
+
/* @__PURE__ */ React__namespace.createElement("span", { className: `w-28 shrink-0 rounded-full px-2.5 py-1 text-center text-[10px] font-bold uppercase tracking-wide ${row.isComplete ? "bg-mint-100 text-dark-blue-400" : "bg-slate-100 text-slate-500"}` }, row.isComplete ? "Complete" : "Incomplete")
|
|
1160
|
+
))));
|
|
1437
1161
|
}
|
|
1438
1162
|
|
|
1439
|
-
function Table$
|
|
1163
|
+
function Table$8(props) {
|
|
1440
1164
|
if (props.items.length === 0) {
|
|
1441
1165
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1442
1166
|
PlaceholderBanner,
|
|
@@ -1453,24 +1177,28 @@ function Table$9(props) {
|
|
|
1453
1177
|
props.items.forEach((row) => {
|
|
1454
1178
|
let group = groupByLessonId[row.lessonId];
|
|
1455
1179
|
if (!group) {
|
|
1456
|
-
group = { lessonId: row.lessonId, lessonName: row.lessonName, badgeName: row.badgeName, href: row.href, items: [] };
|
|
1180
|
+
group = { lessonId: row.lessonId, lessonName: row.lessonName, badgeName: row.badgeName, pathwayName: row.pathwayName, href: row.href, items: [] };
|
|
1457
1181
|
groupByLessonId[row.lessonId] = group;
|
|
1458
1182
|
groups.push(group);
|
|
1459
1183
|
}
|
|
1460
1184
|
group.items.push(row);
|
|
1461
1185
|
});
|
|
1462
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, groups.map((group) =>
|
|
1463
|
-
|
|
1464
|
-
{
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1186
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, groups.map((group) => {
|
|
1187
|
+
const subtitleParts = [group.badgeName, group.pathwayName ? `${group.pathwayName} pathway` : void 0].filter(Boolean);
|
|
1188
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { key: group.lessonId, className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "border-b border-slate-100 px-5 py-4" }, /* @__PURE__ */ React__namespace.createElement(reactRouterDom.Link, { to: group.href, className: "text-sm font-bold text-dark-blue-400 no-underline hover:underline" }, group.lessonName), subtitleParts.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-xs text-slate-500" }, subtitleParts.join(" \xB7 "))), group.items.map((row, i) => /* @__PURE__ */ React__namespace.createElement(
|
|
1189
|
+
"div",
|
|
1190
|
+
{
|
|
1191
|
+
key: row.questionName,
|
|
1192
|
+
className: `px-5 py-4 ${i < group.items.length - 1 ? "border-b border-slate-100" : ""}`
|
|
1193
|
+
},
|
|
1194
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-semibold text-slate-500" }, row.questionName),
|
|
1195
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-xs text-slate-600" }, row.answer.join(", "))
|
|
1196
|
+
)));
|
|
1197
|
+
}));
|
|
1471
1198
|
}
|
|
1472
1199
|
|
|
1473
|
-
function Table$
|
|
1200
|
+
function Table$7(props) {
|
|
1201
|
+
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1474
1202
|
if (props.items.length === 0) {
|
|
1475
1203
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1476
1204
|
PlaceholderBanner,
|
|
@@ -1482,15 +1210,18 @@ function Table$8(props) {
|
|
|
1482
1210
|
}
|
|
1483
1211
|
);
|
|
1484
1212
|
}
|
|
1485
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" },
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1213
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-4 px-4" }, /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Lesson Name", sortKey: "lessonName", sortConfig, onSort: requestSort, className: "flex-1" }), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Rating", sortKey: "rating", sortConfig, onSort: requestSort, align: "center", className: "w-16 shrink-0" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm" }, sortedItems.map((row, i) => {
|
|
1214
|
+
const subtitleParts = [row.badgeName, row.pathwayName ? `${row.pathwayName} pathway` : void 0].filter(Boolean);
|
|
1215
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
1216
|
+
"div",
|
|
1217
|
+
{
|
|
1218
|
+
key: row.lessonId || row.lessonName,
|
|
1219
|
+
className: `flex items-start justify-between gap-4 px-5 py-4 ${i < sortedItems.length - 1 ? "border-b border-slate-100" : ""}`
|
|
1220
|
+
},
|
|
1221
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React__namespace.createElement(reactRouterDom.Link, { to: row.href, className: "text-sm font-bold text-dark-blue-400 no-underline hover:underline" }, row.lessonName), subtitleParts.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-xs text-slate-500" }, subtitleParts.join(" \xB7 ")), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1.5 text-xs text-slate-600" }, row.reflection)),
|
|
1222
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, row.rating.toLocaleString())
|
|
1223
|
+
);
|
|
1224
|
+
})));
|
|
1494
1225
|
}
|
|
1495
1226
|
|
|
1496
1227
|
const TABS$3 = [
|
|
@@ -1498,10 +1229,32 @@ const TABS$3 = [
|
|
|
1498
1229
|
{ label: "My answers", value: "answers" },
|
|
1499
1230
|
{ label: "My reflections", value: "reflections" }
|
|
1500
1231
|
];
|
|
1232
|
+
const OTHER_FILTER$1 = "__other__";
|
|
1501
1233
|
const Student = (props) => {
|
|
1234
|
+
var _a;
|
|
1502
1235
|
const [tab, setTab] = React.useState("badges");
|
|
1236
|
+
const [pathwayFilter, setPathwayFilter] = React.useState("");
|
|
1503
1237
|
const numberOfBadgesCompleted = props.badges.length > 0 ? props.badges.filter((b) => b.isComplete).length : 0;
|
|
1504
1238
|
const numberOfLessonsCompleted = props.lessons.filter((l) => l.isComplete).length;
|
|
1239
|
+
const activeItems = tab === "badges" ? props.badges : tab === "answers" ? props.answers : props.reflections;
|
|
1240
|
+
const pathways = React.useMemo(() => {
|
|
1241
|
+
const seen = {};
|
|
1242
|
+
activeItems.forEach((item) => {
|
|
1243
|
+
if (item.pathwayId && item.pathwayName && !(item.pathwayId in seen)) {
|
|
1244
|
+
seen[item.pathwayId] = item.pathwayName;
|
|
1245
|
+
}
|
|
1246
|
+
});
|
|
1247
|
+
return Object.keys(seen).map((pathwayId) => ({ pathwayId, title: seen[pathwayId] }));
|
|
1248
|
+
}, [activeItems]);
|
|
1249
|
+
const hasOther = activeItems.some((item) => !item.pathwayId);
|
|
1250
|
+
const filterByPathway = (items) => {
|
|
1251
|
+
if (!pathwayFilter)
|
|
1252
|
+
return items;
|
|
1253
|
+
if (pathwayFilter === OTHER_FILTER$1)
|
|
1254
|
+
return items.filter((item) => !item.pathwayId);
|
|
1255
|
+
return items.filter((item) => item.pathwayId === pathwayFilter);
|
|
1256
|
+
};
|
|
1257
|
+
const activePathwayName = pathwayFilter && pathwayFilter !== OTHER_FILTER$1 ? (_a = pathways.find((p) => p.pathwayId === pathwayFilter)) == null ? void 0 : _a.title : void 0;
|
|
1505
1258
|
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1506
1259
|
PageHeader,
|
|
1507
1260
|
{
|
|
@@ -1532,7 +1285,25 @@ const Student = (props) => {
|
|
|
1532
1285
|
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"}`
|
|
1533
1286
|
},
|
|
1534
1287
|
t.label
|
|
1535
|
-
))),
|
|
1288
|
+
))), pathways.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-wrap items-center gap-3" }, /* @__PURE__ */ React__namespace.createElement(PathwayFilterPills, { pathways, selected: pathwayFilter, onChange: setPathwayFilter }), hasOther && /* @__PURE__ */ React__namespace.createElement(
|
|
1289
|
+
"button",
|
|
1290
|
+
{
|
|
1291
|
+
type: "button",
|
|
1292
|
+
onClick: () => setPathwayFilter(OTHER_FILTER$1),
|
|
1293
|
+
className: `rounded-full border px-3.5 py-1.5 text-xs font-bold ${pathwayFilter === OTHER_FILTER$1 ? "border-sky-blue-400/40 bg-sky-blue-400/20 text-dark-blue-400" : "border-slate-200 bg-white text-slate-500 hover:bg-slate-50"}`
|
|
1294
|
+
},
|
|
1295
|
+
"Other"
|
|
1296
|
+
), activePathwayName && props.onViewPathway && /* @__PURE__ */ React__namespace.createElement(
|
|
1297
|
+
"button",
|
|
1298
|
+
{
|
|
1299
|
+
type: "button",
|
|
1300
|
+
onClick: () => props.onViewPathway(pathwayFilter),
|
|
1301
|
+
className: "text-xs font-bold text-dark-blue-400 hover:underline"
|
|
1302
|
+
},
|
|
1303
|
+
"View ",
|
|
1304
|
+
activePathwayName,
|
|
1305
|
+
" Transcript \u2192"
|
|
1306
|
+
)), tab === "badges" && /* @__PURE__ */ React__namespace.createElement(Table$9, { loading: props.loading, items: filterByPathway(props.badges) }), tab === "answers" && /* @__PURE__ */ React__namespace.createElement(Table$8, { loading: props.loading, items: filterByPathway(props.answers) }), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(Table$7, { loading: props.loading, items: filterByPathway(props.reflections) }));
|
|
1536
1307
|
};
|
|
1537
1308
|
|
|
1538
1309
|
const ACCENT_BORDER = {
|
|
@@ -1587,15 +1358,6 @@ const Home = (props) => {
|
|
|
1587
1358
|
},
|
|
1588
1359
|
"Copy"
|
|
1589
1360
|
)))), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1590
|
-
CardGradient,
|
|
1591
|
-
{
|
|
1592
|
-
title: "Dashboard",
|
|
1593
|
-
description: "Track your students\u2019 pathway progress",
|
|
1594
|
-
accent: "mint",
|
|
1595
|
-
icon: /* @__PURE__ */ React__namespace.createElement(icons.IconGauge, { size: 18, stroke: 1.75 }),
|
|
1596
|
-
onClick: props.onDashboardClick
|
|
1597
|
-
}
|
|
1598
|
-
), /* @__PURE__ */ React__namespace.createElement(
|
|
1599
1361
|
CardGradient,
|
|
1600
1362
|
{
|
|
1601
1363
|
title: "Classes",
|
|
@@ -1631,25 +1393,27 @@ const Home = (props) => {
|
|
|
1631
1393
|
icon: /* @__PURE__ */ React__namespace.createElement(icons.IconClipboard, { size: 18, stroke: 1.75 }),
|
|
1632
1394
|
onClick: props.onFileLockerClick
|
|
1633
1395
|
}
|
|
1396
|
+
), /* @__PURE__ */ React__namespace.createElement(
|
|
1397
|
+
CardGradient,
|
|
1398
|
+
{
|
|
1399
|
+
title: "Comments",
|
|
1400
|
+
description: "Leave and resolve comments on student submissions",
|
|
1401
|
+
accent: "mint",
|
|
1402
|
+
icon: /* @__PURE__ */ React__namespace.createElement(icons.IconMessageCircle, { size: 18, stroke: 1.75 }),
|
|
1403
|
+
onClick: props.onCommentsClick
|
|
1404
|
+
}
|
|
1405
|
+
), /* @__PURE__ */ React__namespace.createElement(
|
|
1406
|
+
CardGradient,
|
|
1407
|
+
{
|
|
1408
|
+
title: "Validation",
|
|
1409
|
+
description: "Credit badges in bulk once students have met the requirements",
|
|
1410
|
+
accent: "gold",
|
|
1411
|
+
icon: /* @__PURE__ */ React__namespace.createElement(icons.IconClipboardCheck, { size: 18, stroke: 1.75 }),
|
|
1412
|
+
onClick: props.onValidationClick
|
|
1413
|
+
}
|
|
1634
1414
|
)));
|
|
1635
1415
|
};
|
|
1636
1416
|
|
|
1637
|
-
function Table$7(props) {
|
|
1638
|
-
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1639
|
-
if (props.items.length === 0) {
|
|
1640
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
1641
|
-
PlaceholderBanner,
|
|
1642
|
-
{
|
|
1643
|
-
title: "No reflections to display",
|
|
1644
|
-
description: "There has not been any lesson progress just yet.",
|
|
1645
|
-
loading: props.loading,
|
|
1646
|
-
icon: "lessons"
|
|
1647
|
-
}
|
|
1648
|
-
);
|
|
1649
|
-
}
|
|
1650
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, /* @__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(SortableHeader, { label: "Student Name", sortKey: "studentName", sortConfig, onSort: requestSort, className: "w-40 shrink-0" }), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1" }, "Reflection"), /* @__PURE__ */ React__namespace.createElement(SortableHeader, { label: "Rating", sortKey: "rating", sortConfig, onSort: requestSort, align: "right", className: "w-20 shrink-0" })), sortedItems.map((row, i) => /* @__PURE__ */ React__namespace.createElement("div", { key: `${row.studentName}-${i}`, className: "rounded-xl border border-slate-200 bg-white p-4 shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-start gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "w-40 shrink-0 text-sm font-bold text-dark-blue-400" }, row.studentName), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1 text-sm text-slate-600" }, row.reflection), /* @__PURE__ */ React__namespace.createElement("div", { className: "w-20 shrink-0 text-right text-sm text-slate-500" }, row.rating)))));
|
|
1651
|
-
}
|
|
1652
|
-
|
|
1653
1417
|
const SplitButton$3 = (props) => {
|
|
1654
1418
|
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1655
1419
|
reactRouterDom.Link,
|
|
@@ -1680,10 +1444,9 @@ const SplitButton$3 = (props) => {
|
|
|
1680
1444
|
};
|
|
1681
1445
|
|
|
1682
1446
|
function Stack$3(props) {
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
}
|
|
1686
|
-
return /* @__PURE__ */ React__namespace.createElement(reactRouterDom.Link, { to: props.href, state: props.state, 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."))), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-bold text-dark-blue-400 hover:underline" }, "View full response \u2192"));
|
|
1447
|
+
const hasAnswers = props.items.length > 0;
|
|
1448
|
+
const hasReflection = !!props.reflection;
|
|
1449
|
+
return /* @__PURE__ */ React__namespace.createElement(reactRouterDom.Link, { to: props.href, state: props.state, className: "flex flex-col gap-4 no-underline" }, hasAnswers ? 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."))) : !hasReflection ? /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "No question responses recorded yet.") : null, hasReflection && /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center justify-between gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Reflection"), !!props.rating && /* @__PURE__ */ React__namespace.createElement("div", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, props.rating)), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-sm text-slate-600" }, props.reflection)), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-bold text-dark-blue-400 hover:underline" }, "View full response \u2192"));
|
|
1687
1450
|
}
|
|
1688
1451
|
|
|
1689
1452
|
var __defProp$d = Object.defineProperty;
|
|
@@ -1737,7 +1500,7 @@ function Table$6(props) {
|
|
|
1737
1500
|
/* @__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))),
|
|
1738
1501
|
/* @__PURE__ */ React__namespace.createElement("div", { className: "w-28 shrink-0 text-center" }, row.isComplete && /* @__PURE__ */ React__namespace.createElement("span", { className: "rounded-full bg-mint-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, "Complete"), !row.isComplete && !row.isStarted && /* @__PURE__ */ React__namespace.createElement("span", { className: "rounded-full bg-slate-100 px-2.5 py-1 text-[10px] font-bold text-slate-500" }, "Not started"), !row.isComplete && !!row.isStarted && /* @__PURE__ */ React__namespace.createElement("span", { className: "rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, "In progress")),
|
|
1739
1502
|
/* @__PURE__ */ React__namespace.createElement(icons.IconChevronDown, { size: 15, stroke: 2.3, className: `shrink-0 text-slate-400 transition-transform ${isOpen ? "rotate-180" : ""}` })
|
|
1740
|
-
), isOpen && /* @__PURE__ */ React__namespace.createElement("div", { className: "border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React__namespace.createElement(Stack$3, { href: row.href, items: row.answers, state: props.linkState })));
|
|
1503
|
+
), isOpen && /* @__PURE__ */ React__namespace.createElement("div", { className: "border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React__namespace.createElement(Stack$3, { href: row.href, items: row.answers, reflection: row.reflection, rating: row.rating, state: props.linkState })));
|
|
1741
1504
|
}));
|
|
1742
1505
|
}
|
|
1743
1506
|
|
|
@@ -1758,52 +1521,47 @@ function Stack$2(props) {
|
|
|
1758
1521
|
],
|
|
1759
1522
|
[]
|
|
1760
1523
|
);
|
|
1761
|
-
|
|
1524
|
+
const chartItems = props.items.filter((row) => row.chart);
|
|
1525
|
+
if (chartItems.length === 0) {
|
|
1762
1526
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1763
1527
|
PlaceholderBanner,
|
|
1764
1528
|
{
|
|
1765
|
-
title: "No questions
|
|
1766
|
-
description: "
|
|
1529
|
+
title: "No multiple-choice questions",
|
|
1530
|
+
description: "This lesson doesn't have any multiple-choice questions to chart.",
|
|
1767
1531
|
loading: props.loading,
|
|
1768
1532
|
icon: "lessons"
|
|
1769
1533
|
}
|
|
1770
1534
|
);
|
|
1771
1535
|
}
|
|
1772
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" },
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
{
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
secondaryAxes
|
|
1799
|
-
}
|
|
1536
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3" }, chartItems.map((row) => {
|
|
1537
|
+
const labelMap = {};
|
|
1538
|
+
const choices = row.choices || [];
|
|
1539
|
+
choices.forEach((c) => {
|
|
1540
|
+
labelMap[c] = 0;
|
|
1541
|
+
});
|
|
1542
|
+
row.answers.forEach((a) => a.forEach((r) => {
|
|
1543
|
+
if (r in labelMap) {
|
|
1544
|
+
labelMap[r] = labelMap[r] ? labelMap[r] + 1 : 1;
|
|
1545
|
+
}
|
|
1546
|
+
}));
|
|
1547
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { key: row.question, className: "rounded-xl border border-slate-200 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-base font-extrabold text-dark-blue-400" }, row.question), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-xs text-slate-500" }, row.answers.length, " answers"), /* @__PURE__ */ React__namespace.createElement("div", { className: "relative mt-4 h-[300px] w-full bg-white" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1548
|
+
reactCharts.Chart,
|
|
1549
|
+
{
|
|
1550
|
+
options: {
|
|
1551
|
+
data: [{
|
|
1552
|
+
label: "",
|
|
1553
|
+
data: choices.map((k) => {
|
|
1554
|
+
return {
|
|
1555
|
+
primary: truncateWithEllipses(k, 50),
|
|
1556
|
+
secondary: labelMap[k]
|
|
1557
|
+
};
|
|
1558
|
+
})
|
|
1559
|
+
}],
|
|
1560
|
+
primaryAxis,
|
|
1561
|
+
secondaryAxes
|
|
1800
1562
|
}
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { key: row.question, className: "rounded-xl border border-slate-200 bg-white p-6 shadow-sm" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-base font-extrabold text-dark-blue-400" }, row.question), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1 text-xs text-slate-500" }, row.answers.length, " answers"), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-4 flex flex-col gap-2" }, row.answers.map((a) => {
|
|
1804
|
-
const answerText = a.join("\n");
|
|
1805
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { key: answerText, className: "rounded-lg bg-slate-50 p-3 text-sm text-slate-700" }, answerText);
|
|
1806
|
-
})));
|
|
1563
|
+
}
|
|
1564
|
+
)));
|
|
1807
1565
|
}));
|
|
1808
1566
|
}
|
|
1809
1567
|
const truncateWithEllipses = (text, max) => text.substr(0, max - 1) + (text.length > max ? "…" : "");
|
|
@@ -1816,13 +1574,9 @@ const Lesson = (props) => {
|
|
|
1816
1574
|
const contributors = props.contributors || [];
|
|
1817
1575
|
const visibleContributors = contributors.slice(0, 5);
|
|
1818
1576
|
const remainingContributors = contributors.slice(5).length;
|
|
1819
|
-
const tabs =
|
|
1577
|
+
const tabs = [
|
|
1820
1578
|
{ label: "By question", value: "question" },
|
|
1821
1579
|
{ label: "By student", value: "students" }
|
|
1822
|
-
] : [
|
|
1823
|
-
{ label: "By question", value: "question" },
|
|
1824
|
-
{ label: "By student", value: "students" },
|
|
1825
|
-
{ label: "By reflection", value: "reflections" }
|
|
1826
1580
|
];
|
|
1827
1581
|
return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1828
1582
|
PageHeader,
|
|
@@ -1870,7 +1624,7 @@ const Lesson = (props) => {
|
|
|
1870
1624
|
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"}`
|
|
1871
1625
|
},
|
|
1872
1626
|
t.label
|
|
1873
|
-
))), tab === "question" && /* @__PURE__ */ React__namespace.createElement(Stack$2, { loading: props.loading, items: props.questions }), tab === "
|
|
1627
|
+
))), tab === "question" && /* @__PURE__ */ React__namespace.createElement(Stack$2, { loading: props.loading, items: props.questions }), tab === "students" && /* @__PURE__ */ React__namespace.createElement(Table$6, { loading: props.loading, items: props.students, linkState: props.linkState })));
|
|
1874
1628
|
};
|
|
1875
1629
|
|
|
1876
1630
|
function Table$5(props) {
|
|
@@ -4445,7 +4199,6 @@ exports.Badges = Badges;
|
|
|
4445
4199
|
exports.Class = Class;
|
|
4446
4200
|
exports.Classes = Classes;
|
|
4447
4201
|
exports.CommentCenter = CommentCenter;
|
|
4448
|
-
exports.Dashboard = Dashboard;
|
|
4449
4202
|
exports.FileLocker = FileLocker;
|
|
4450
4203
|
exports.GettingStarted = GettingStarted;
|
|
4451
4204
|
exports.Home = Home;
|