@local-civics/mgmt-ui 0.1.219 → 0.1.221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -40,7 +40,7 @@ function styleInject(css, ref) {
40
40
  }
41
41
  }
42
42
 
43
- var css_248z = "@font-face{font-family:ProximaNova;src:url(https://cdn.localcivics.io/fonts/ProximaNova.otf) format(\"opentype\")}@font-face{font-family:ProximaNova;font-weight:700;src:url(https://cdn.localcivics.io/fonts/ProximaNovaBold.otf) format(\"opentype\")}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\\!relative{position:relative!important}.left-3{left:.75rem}.top-1\\/2{top:50%}.left-3\\.5{left:.875rem}.bottom-\\[-20px\\]{bottom:-20px}.left-1\\/2{left:50%}.m-3{margin:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1\\.5{margin-top:.375rem}.-ml-2{margin-left:-.5rem}.mt-4{margin-top:1rem}.mb-8{margin-bottom:2rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-full{height:100%}.h-9{height:2.25rem}.h-8{height:2rem}.h-7{height:1.75rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-11{height:2.75rem}.h-16{height:4rem}.h-\\[30px\\]{height:30px}.w-10{width:2.5rem}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.w-36{width:9rem}.w-28{width:7rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-40{width:10rem}.w-8{width:2rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-12{width:3rem}.w-16{width:4rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-24{width:6rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-11{width:2.75rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.min-w-0{min-width:0}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.max-w-\\[460px\\]{max-width:460px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-x-1\\/2,.-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\\/2{--tw-translate-x:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1\\.2fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_1fr_0\\.6fr\\]{grid-template-columns:1.5fr 2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_0\\.8fr\\]{grid-template-columns:1.5fr 2fr .8fr}.grid-cols-\\[1fr_3fr\\]{grid-template-columns:1fr 3fr}.grid-cols-\\[1fr_1fr_2fr_0\\.8fr\\]{grid-template-columns:1fr 1fr 2fr .8fr}.grid-cols-\\[2fr_1fr\\]{grid-template-columns:2fr 1fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-4{gap:1rem}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-2{gap:.5rem}.gap-1\\.5{gap:.375rem}.gap-2\\.5{gap:.625rem}.gap-3\\.5{gap:.875rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-y-4{row-gap:1rem}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-\\[8px\\]{border-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-sky-blue-400\\/30{border-color:rgba(59,208,242,.3)}.border-mint-400\\/30{border-color:rgba(30,226,175,.3)}.border-gold-400\\/30{border-color:rgba(255,212,77,.3)}.border-transparent{border-color:transparent}.border-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.border-l-sky-blue-400{--tw-border-opacity:1;border-left-color:rgb(59 208 242/var(--tw-border-opacity))}.border-l-mint-400{--tw-border-opacity:1;border-left-color:rgb(30 226 175/var(--tw-border-opacity))}.border-l-gold-400{--tw-border-opacity:1;border-left-color:rgb(255 212 77/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-sky-blue-400\\/20{background-color:rgba(59,208,242,.2)}.bg-mint-100{--tw-bg-opacity:1;background-color:rgb(208 251 240/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-gold-100{--tw-bg-opacity:1;background-color:rgb(255 248 214/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-transparent{background-color:transparent}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-white\\/90{background-color:hsla(0,0%,100%,.9)}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-sky-blue-400\\/15{background-color:rgba(59,208,242,.15)}.bg-mint-400\\/15{background-color:rgba(30,226,175,.15)}.bg-gold-400\\/15{background-color:rgba(255,212,77,.15)}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-gold-400\\/25{background-color:rgba(255,212,77,.25)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-blue-400{--tw-gradient-from:#3bd0f2;--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-mint-400{--tw-gradient-from:#1ee2af;--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gold-400{--tw-gradient-from:#ffd44d;--tw-gradient-to:rgba(255,212,77,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-dark-blue-600{--tw-gradient-from:#0a0f2e;--tw-gradient-to:rgba(10,15,46,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-blue-400\\/15{--tw-gradient-from:rgba(59,208,242,.15);--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-dark-blue-400{--tw-gradient-to:rgba(35,42,58,0);--tw-gradient-stops:var(--tw-gradient-from),#232a3a,var(--tw-gradient-to)}.to-dark-blue-400{--tw-gradient-to:#232a3a}.to-\\[\\#f5c300\\]{--tw-gradient-to:#f5c300}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-mint-400\\/15{--tw-gradient-to:rgba(30,226,175,.15)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.p-2\\.5{padding:.625rem}.p-2{padding:.5rem}.px-\\[22px\\]{padding-left:22px;padding-right:22px}.py-\\[18px\\]{padding-bottom:18px;padding-top:18px}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-9{padding-left:2.25rem}.pr-4{padding-right:1rem}.pl-10{padding-left:2.5rem}.pb-2{padding-bottom:.5rem}.pt-0\\.5{padding-top:.125rem}.pt-0{padding-top:0}.pb-12{padding-bottom:3rem}.pl-2\\.5{padding-left:.625rem}.pl-2{padding-left:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-proxima{font-family:ProximaNova}.text-\\[15\\.5px\\]{font-size:15.5px}.text-xs{font-size:.75rem;line-height:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[11px\\]{font-size:11px}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-mint-400{--tw-text-opacity:1;color:rgb(30 226 175/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-gold-400{--tw-text-opacity:1;color:rgb(255 212 77/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\],.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\]{--tw-shadow:0 3px 12px rgba(255,212,77,.35);--tw-shadow-colored:0 3px 12px var(--tw-shadow-color)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{--tw-shadow:0 2px 10px rgba(30,226,175,.15);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}*,:after,:before{border-style:solid;border-width:0}button{background-color:transparent;background-image:none;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-transform:none}.placeholder\\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.placeholder\\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.first\\:ml-0:first-child{margin-left:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\\:text-sky-blue-400:hover{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.hover\\:text-slate-500:hover{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-sky-blue-400:focus{--tw-border-opacity:1;border-color:rgb(59 208 242/var(--tw-border-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\\:opacity-50:disabled{opacity:.5}";
43
+ var css_248z = "@font-face{font-family:ProximaNova;src:url(https://cdn.localcivics.io/fonts/ProximaNova.otf) format(\"opentype\")}@font-face{font-family:ProximaNova;font-weight:700;src:url(https://cdn.localcivics.io/fonts/ProximaNovaBold.otf) format(\"opentype\")}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\\!relative{position:relative!important}.left-3{left:.75rem}.top-1\\/2{top:50%}.left-3\\.5{left:.875rem}.bottom-\\[-20px\\]{bottom:-20px}.left-1\\/2{left:50%}.m-3{margin:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1\\.5{margin-top:.375rem}.-ml-2{margin-left:-.5rem}.mt-4{margin-top:1rem}.mt-3{margin-top:.75rem}.mb-8{margin-bottom:2rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-full{height:100%}.h-9{height:2.25rem}.h-8{height:2rem}.h-7{height:1.75rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-11{height:2.75rem}.h-16{height:4rem}.h-\\[30px\\]{height:30px}.max-h-\\[70vh\\]{max-height:70vh}.w-10{width:2.5rem}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-fit{width:-moz-fit-content;width:fit-content}.w-36{width:9rem}.w-28{width:7rem}.w-4{width:1rem}.w-9{width:2.25rem}.w-40{width:10rem}.w-8{width:2rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-12{width:3rem}.w-16{width:4rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-24{width:6rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-11{width:2.75rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.min-w-0{min-width:0}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.max-w-\\[460px\\]{max-width:460px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-x-1\\/2,.-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\\/2{--tw-translate-x:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1\\.2fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_1fr_0\\.6fr\\]{grid-template-columns:1.5fr 2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_0\\.8fr\\]{grid-template-columns:1.5fr 2fr .8fr}.grid-cols-\\[1fr_3fr\\]{grid-template-columns:1fr 3fr}.grid-cols-\\[1fr_1fr_2fr_0\\.8fr\\]{grid-template-columns:1fr 1fr 2fr .8fr}.grid-cols-\\[2fr_1fr\\]{grid-template-columns:2fr 1fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-4{gap:1rem}.gap-1{gap:.25rem}.gap-3{gap:.75rem}.gap-2{gap:.5rem}.gap-1\\.5{gap:.375rem}.gap-2\\.5{gap:.625rem}.gap-3\\.5{gap:.875rem}.gap-6{gap:1.5rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-y-4{row-gap:1rem}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-\\[8px\\]{border-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-sky-blue-400\\/30{border-color:rgba(59,208,242,.3)}.border-mint-400\\/30{border-color:rgba(30,226,175,.3)}.border-gold-400\\/30{border-color:rgba(255,212,77,.3)}.border-transparent{border-color:transparent}.border-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.border-l-sky-blue-400{--tw-border-opacity:1;border-left-color:rgb(59 208 242/var(--tw-border-opacity))}.border-l-mint-400{--tw-border-opacity:1;border-left-color:rgb(30 226 175/var(--tw-border-opacity))}.border-l-gold-400{--tw-border-opacity:1;border-left-color:rgb(255 212 77/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-sky-blue-400\\/20{background-color:rgba(59,208,242,.2)}.bg-mint-100{--tw-bg-opacity:1;background-color:rgb(208 251 240/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-gold-100{--tw-bg-opacity:1;background-color:rgb(255 248 214/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-transparent{background-color:transparent}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-white\\/90{background-color:hsla(0,0%,100%,.9)}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-slate-50\\/60{background-color:rgba(248,250,252,.6)}.bg-sky-blue-400\\/15{background-color:rgba(59,208,242,.15)}.bg-gold-400\\/15{background-color:rgba(255,212,77,.15)}.bg-mint-400\\/15{background-color:rgba(30,226,175,.15)}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-gold-400\\/25{background-color:rgba(255,212,77,.25)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-blue-400{--tw-gradient-from:#3bd0f2;--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-mint-400{--tw-gradient-from:#1ee2af;--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gold-400{--tw-gradient-from:#ffd44d;--tw-gradient-to:rgba(255,212,77,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-dark-blue-600{--tw-gradient-from:#0a0f2e;--tw-gradient-to:rgba(10,15,46,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-blue-400\\/15{--tw-gradient-from:rgba(59,208,242,.15);--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-dark-blue-400{--tw-gradient-to:rgba(35,42,58,0);--tw-gradient-stops:var(--tw-gradient-from),#232a3a,var(--tw-gradient-to)}.to-dark-blue-400{--tw-gradient-to:#232a3a}.to-\\[\\#f5c300\\]{--tw-gradient-to:#f5c300}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-mint-400\\/15{--tw-gradient-to:rgba(30,226,175,.15)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.p-2\\.5{padding:.625rem}.p-2{padding:.5rem}.px-\\[22px\\]{padding-left:22px;padding-right:22px}.py-\\[18px\\]{padding-bottom:18px;padding-top:18px}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-9{padding-left:2.25rem}.pr-4{padding-right:1rem}.pl-10{padding-left:2.5rem}.pb-2{padding-bottom:.5rem}.pr-1{padding-right:.25rem}.pl-4{padding-left:1rem}.pt-0\\.5{padding-top:.125rem}.pt-0{padding-top:0}.pb-12{padding-bottom:3rem}.pl-2\\.5{padding-left:.625rem}.pl-2{padding-left:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-proxima{font-family:ProximaNova}.text-\\[15\\.5px\\]{font-size:15.5px}.text-xs{font-size:.75rem;line-height:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-\\[10\\.5px\\]{font-size:10.5px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[11px\\]{font-size:11px}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-mint-400{--tw-text-opacity:1;color:rgb(30 226 175/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-gold-400{--tw-text-opacity:1;color:rgb(255 212 77/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\],.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\]{--tw-shadow:0 3px 12px rgba(255,212,77,.35);--tw-shadow-colored:0 3px 12px var(--tw-shadow-color)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{--tw-shadow:0 2px 10px rgba(30,226,175,.15);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}*,:after,:before{border-style:solid;border-width:0}button{background-color:transparent;background-image:none;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-transform:none}.placeholder\\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.placeholder\\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.first\\:ml-0:first-child{margin-left:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\\:text-sky-blue-400:hover{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.hover\\:text-slate-500:hover{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-sky-blue-400:focus{--tw-border-opacity:1;border-color:rgb(59 208 242/var(--tw-border-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\\:opacity-50:disabled{opacity:.5}";
44
44
  styleInject(css_248z);
45
45
 
46
46
  function UserButton({ image, name, email }) {
@@ -124,25 +124,25 @@ function LinksGroup({ icon: Icon, href, label, accent = "cyan", initiallyOpened,
124
124
  ), hasLinks && opened && /* @__PURE__ */ React.createElement("div", { className: "ml-[29px] mt-0.5 flex flex-col gap-0.5 border-l border-slate-100 pl-2.5" }, items));
125
125
  }
126
126
 
127
- var __defProp$g = Object.defineProperty;
128
- var __defProps$d = Object.defineProperties;
129
- var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
130
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
131
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
132
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
133
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
134
- var __spreadValues$g = (a, b) => {
127
+ var __defProp$h = Object.defineProperty;
128
+ var __defProps$e = Object.defineProperties;
129
+ var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
130
+ var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
131
+ var __hasOwnProp$h = Object.prototype.hasOwnProperty;
132
+ var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
133
+ var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
134
+ var __spreadValues$h = (a, b) => {
135
135
  for (var prop in b || (b = {}))
136
- if (__hasOwnProp$g.call(b, prop))
137
- __defNormalProp$g(a, prop, b[prop]);
138
- if (__getOwnPropSymbols$g)
139
- for (var prop of __getOwnPropSymbols$g(b)) {
140
- if (__propIsEnum$g.call(b, prop))
141
- __defNormalProp$g(a, prop, b[prop]);
136
+ if (__hasOwnProp$h.call(b, prop))
137
+ __defNormalProp$h(a, prop, b[prop]);
138
+ if (__getOwnPropSymbols$h)
139
+ for (var prop of __getOwnPropSymbols$h(b)) {
140
+ if (__propIsEnum$h.call(b, prop))
141
+ __defNormalProp$h(a, prop, b[prop]);
142
142
  }
143
143
  return a;
144
144
  };
145
- var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
145
+ var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
146
146
  const data = [
147
147
  { label: "Home", icon: IconHome2, accent: "cyan" },
148
148
  { label: "Dashboard", icon: IconGauge, accent: "mint" },
@@ -169,12 +169,12 @@ function Navbar(props) {
169
169
  }
170
170
  return /* @__PURE__ */ React.createElement(
171
171
  LinksGroup,
172
- __spreadProps$d(__spreadValues$g(__spreadValues$g({
172
+ __spreadProps$e(__spreadValues$h(__spreadValues$h({
173
173
  key: item.label,
174
174
  active: props.active
175
175
  }, item), context), {
176
176
  links: (item.links || []).map((link) => {
177
- return __spreadValues$g(__spreadValues$g({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
177
+ return __spreadValues$h(__spreadValues$h({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
178
178
  })
179
179
  })
180
180
  );
@@ -338,9 +338,12 @@ function Emblem(props) {
338
338
  return;
339
339
  }
340
340
  const el = ref.current;
341
- const onLoad = () => setFailed(false);
342
- el == null ? void 0 : el.addEventListener("iconload", onLoad);
343
341
  const timer = setTimeout(() => setFailed(true), LOAD_TIMEOUT_MS);
342
+ const onLoad = () => {
343
+ setFailed(false);
344
+ clearTimeout(timer);
345
+ };
346
+ el == null ? void 0 : el.addEventListener("iconload", onLoad);
344
347
  return () => {
345
348
  el == null ? void 0 : el.removeEventListener("iconload", onLoad);
346
349
  clearTimeout(timer);
@@ -496,29 +499,29 @@ function useSortableData(items, config = { key: "", direction: null }) {
496
499
  return { items: sortedItems, requestSort, sortConfig };
497
500
  }
498
501
 
499
- var __defProp$f = Object.defineProperty;
500
- var __defProps$c = Object.defineProperties;
501
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
502
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
503
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
504
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
505
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
506
- var __spreadValues$f = (a, b) => {
502
+ var __defProp$g = Object.defineProperty;
503
+ var __defProps$d = Object.defineProperties;
504
+ var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
505
+ var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
506
+ var __hasOwnProp$g = Object.prototype.hasOwnProperty;
507
+ var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
508
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
509
+ var __spreadValues$g = (a, b) => {
507
510
  for (var prop in b || (b = {}))
508
- if (__hasOwnProp$f.call(b, prop))
509
- __defNormalProp$f(a, prop, b[prop]);
510
- if (__getOwnPropSymbols$f)
511
- for (var prop of __getOwnPropSymbols$f(b)) {
512
- if (__propIsEnum$f.call(b, prop))
513
- __defNormalProp$f(a, prop, b[prop]);
511
+ if (__hasOwnProp$g.call(b, prop))
512
+ __defNormalProp$g(a, prop, b[prop]);
513
+ if (__getOwnPropSymbols$g)
514
+ for (var prop of __getOwnPropSymbols$g(b)) {
515
+ if (__propIsEnum$g.call(b, prop))
516
+ __defNormalProp$g(a, prop, b[prop]);
514
517
  }
515
518
  return a;
516
519
  };
517
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
520
+ var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
518
521
  function Table$k(props) {
519
522
  const [expanded, setExpanded] = React.useState({});
520
523
  const preparedItems = React.useMemo(() => {
521
- return props.items.map((item) => __spreadProps$c(__spreadValues$f({}, item), {
524
+ return props.items.map((item) => __spreadProps$d(__spreadValues$g({}, item), {
522
525
  status: item.isComplete ? 1 : 0
523
526
  }));
524
527
  }, [props.items]);
@@ -542,7 +545,7 @@ function Table$k(props) {
542
545
  return /* @__PURE__ */ React.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React.createElement(
543
546
  "div",
544
547
  {
545
- onClick: () => setExpanded(__spreadProps$c(__spreadValues$f({}, expanded), { [row.userId]: !isOpen })),
548
+ onClick: () => setExpanded(__spreadProps$d(__spreadValues$g({}, expanded), { [row.userId]: !isOpen })),
546
549
  className: "flex cursor-pointer items-center gap-4 p-4"
547
550
  },
548
551
  /* @__PURE__ */ React.createElement("div", { className: "flex min-w-0 flex-1 items-center gap-3" }, row.avatar ? /* @__PURE__ */ React.createElement("img", { src: row.avatar, className: "h-9 w-9 shrink-0 rounded-full object-cover", alt: "" }) : /* @__PURE__ */ React.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.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React.createElement("div", { className: "truncate text-sm font-bold text-dark-blue-400" }, row.name), /* @__PURE__ */ React.createElement("div", { className: "truncate text-xs text-slate-400" }, row.email))),
@@ -597,6 +600,10 @@ const Badge = (props) => {
597
600
  {
598
601
  title: props.trial ? "LESSONS SUBMITTED" : "BADGE COMPLETION",
599
602
  value: props.trial ? props.lessonsCompleted || 0 : numberOfBadges
603
+ },
604
+ {
605
+ title: "POINT VALUE",
606
+ value: props.weight || 0
600
607
  }
601
608
  ] }), !props.trial && /* @__PURE__ */ React.createElement("div", { className: "relative w-full max-w-xs" }, /* @__PURE__ */ React.createElement(IconCategory2, { size: 16, stroke: 2, className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-slate-400" }), /* @__PURE__ */ React.createElement(
602
609
  "select",
@@ -726,28 +733,28 @@ function relativeTimeFromElapsed(elapsed) {
726
733
  return "";
727
734
  }
728
735
 
729
- var __defProp$e = Object.defineProperty;
730
- var __defProps$b = Object.defineProperties;
731
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
732
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
733
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
734
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
735
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
736
- var __spreadValues$e = (a, b) => {
736
+ var __defProp$f = Object.defineProperty;
737
+ var __defProps$c = Object.defineProperties;
738
+ var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
739
+ var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
740
+ var __hasOwnProp$f = Object.prototype.hasOwnProperty;
741
+ var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
742
+ var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
743
+ var __spreadValues$f = (a, b) => {
737
744
  for (var prop in b || (b = {}))
738
- if (__hasOwnProp$e.call(b, prop))
739
- __defNormalProp$e(a, prop, b[prop]);
740
- if (__getOwnPropSymbols$e)
741
- for (var prop of __getOwnPropSymbols$e(b)) {
742
- if (__propIsEnum$e.call(b, prop))
743
- __defNormalProp$e(a, prop, b[prop]);
745
+ if (__hasOwnProp$f.call(b, prop))
746
+ __defNormalProp$f(a, prop, b[prop]);
747
+ if (__getOwnPropSymbols$f)
748
+ for (var prop of __getOwnPropSymbols$f(b)) {
749
+ if (__propIsEnum$f.call(b, prop))
750
+ __defNormalProp$f(a, prop, b[prop]);
744
751
  }
745
752
  return a;
746
753
  };
747
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
754
+ var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
748
755
  function Table$g(props) {
749
756
  const preparedItems = React.useMemo(() => {
750
- return props.items.map((item) => __spreadProps$b(__spreadValues$e({}, item), {
757
+ return props.items.map((item) => __spreadProps$c(__spreadValues$f({}, item), {
751
758
  updatedAtDate: new Date(item.updatedAt)
752
759
  }));
753
760
  }, [props.items]);
@@ -950,25 +957,25 @@ const Dashboard = (props) => {
950
957
  )));
951
958
  };
952
959
 
953
- var __defProp$d = Object.defineProperty;
954
- var __defProps$a = Object.defineProperties;
955
- var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
956
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
957
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
958
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
959
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
960
- var __spreadValues$d = (a, b) => {
960
+ var __defProp$e = Object.defineProperty;
961
+ var __defProps$b = Object.defineProperties;
962
+ var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
963
+ var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
964
+ var __hasOwnProp$e = Object.prototype.hasOwnProperty;
965
+ var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
966
+ var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
967
+ var __spreadValues$e = (a, b) => {
961
968
  for (var prop in b || (b = {}))
962
- if (__hasOwnProp$d.call(b, prop))
963
- __defNormalProp$d(a, prop, b[prop]);
964
- if (__getOwnPropSymbols$d)
965
- for (var prop of __getOwnPropSymbols$d(b)) {
966
- if (__propIsEnum$d.call(b, prop))
967
- __defNormalProp$d(a, prop, b[prop]);
969
+ if (__hasOwnProp$e.call(b, prop))
970
+ __defNormalProp$e(a, prop, b[prop]);
971
+ if (__getOwnPropSymbols$e)
972
+ for (var prop of __getOwnPropSymbols$e(b)) {
973
+ if (__propIsEnum$e.call(b, prop))
974
+ __defNormalProp$e(a, prop, b[prop]);
968
975
  }
969
976
  return a;
970
977
  };
971
- var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
978
+ var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
972
979
  const openDeleteModal$2 = (student, onDelete) => openConfirmModal({
973
980
  title: `Remove "${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}" from this class?`,
974
981
  centered: true,
@@ -979,7 +986,7 @@ const openDeleteModal$2 = (student, onDelete) => openConfirmModal({
979
986
  });
980
987
  function Table$c(props) {
981
988
  const preparedItems = React.useMemo(() => {
982
- return props.items.map((item) => __spreadProps$a(__spreadValues$d({}, item), {
989
+ return props.items.map((item) => __spreadProps$b(__spreadValues$e({}, item), {
983
990
  fullName: item.givenName && item.familyName ? `${item.givenName} ${item.familyName}`.toLowerCase() : item.email.toLowerCase()
984
991
  }));
985
992
  }, [props.items]);
@@ -1030,25 +1037,25 @@ function Table$c(props) {
1030
1037
  }));
1031
1038
  }
1032
1039
 
1033
- var __defProp$c = Object.defineProperty;
1034
- var __defProps$9 = Object.defineProperties;
1035
- var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
1036
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1037
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1038
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1039
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1040
- var __spreadValues$c = (a, b) => {
1040
+ var __defProp$d = Object.defineProperty;
1041
+ var __defProps$a = Object.defineProperties;
1042
+ var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
1043
+ var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
1044
+ var __hasOwnProp$d = Object.prototype.hasOwnProperty;
1045
+ var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
1046
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1047
+ var __spreadValues$d = (a, b) => {
1041
1048
  for (var prop in b || (b = {}))
1042
- if (__hasOwnProp$c.call(b, prop))
1043
- __defNormalProp$c(a, prop, b[prop]);
1044
- if (__getOwnPropSymbols$c)
1045
- for (var prop of __getOwnPropSymbols$c(b)) {
1046
- if (__propIsEnum$c.call(b, prop))
1047
- __defNormalProp$c(a, prop, b[prop]);
1049
+ if (__hasOwnProp$d.call(b, prop))
1050
+ __defNormalProp$d(a, prop, b[prop]);
1051
+ if (__getOwnPropSymbols$d)
1052
+ for (var prop of __getOwnPropSymbols$d(b)) {
1053
+ if (__propIsEnum$d.call(b, prop))
1054
+ __defNormalProp$d(a, prop, b[prop]);
1048
1055
  }
1049
1056
  return a;
1050
1057
  };
1051
- var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
1058
+ var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
1052
1059
  const Class = (props) => {
1053
1060
  const [opened, setOpened] = useState(false);
1054
1061
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
@@ -1060,7 +1067,7 @@ const Class = (props) => {
1060
1067
  padding: "xl",
1061
1068
  size: "xl"
1062
1069
  },
1063
- /* @__PURE__ */ React.createElement(DropzoneButton$1, __spreadProps$9(__spreadValues$c({}, props), { close: () => setOpened(false) }))
1070
+ /* @__PURE__ */ React.createElement(DropzoneButton$1, __spreadProps$a(__spreadValues$d({}, props), { close: () => setOpened(false) }))
1064
1071
  ), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-start justify-between gap-4" }, /* @__PURE__ */ React.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React.createElement("div", { onClick: props.onBackClick, className: "flex w-max cursor-pointer items-center gap-1 text-xs font-bold text-sky-blue-400" }, /* @__PURE__ */ React.createElement(IconArrowLeft, { size: 13, stroke: 2.5 }), "Back"), /* @__PURE__ */ React.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.displayName || "Class"), /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-500" }, props.description || "No description")), !props.loading && /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement(
1065
1072
  "button",
1066
1073
  {
@@ -1186,20 +1193,20 @@ const DropzoneButton$1 = (props) => {
1186
1193
  props.onCreateMembers && props.onCreateMembers([values]);
1187
1194
  }) }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement(
1188
1195
  TextInput,
1189
- __spreadValues$c({
1196
+ __spreadValues$d({
1190
1197
  withAsterisk: true,
1191
1198
  label: "Email",
1192
1199
  placeholder: "Email"
1193
1200
  }, form.getInputProps("email"))
1194
1201
  ), /* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
1195
1202
  TextInput,
1196
- __spreadValues$c({
1203
+ __spreadValues$d({
1197
1204
  label: "Given name",
1198
1205
  placeholder: "Given name"
1199
1206
  }, form.getInputProps("givenName"))
1200
1207
  ), /* @__PURE__ */ React.createElement(
1201
1208
  TextInput,
1202
- __spreadValues$c({
1209
+ __spreadValues$d({
1203
1210
  label: "Family name",
1204
1211
  placeholder: "Family name"
1205
1212
  }, form.getInputProps("familyName"))
@@ -1256,19 +1263,19 @@ function Table$b(props) {
1256
1263
  )));
1257
1264
  }
1258
1265
 
1259
- var __defProp$b = Object.defineProperty;
1260
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1261
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1262
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1263
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1264
- var __spreadValues$b = (a, b) => {
1266
+ var __defProp$c = Object.defineProperty;
1267
+ var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1268
+ var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1269
+ var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1270
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1271
+ var __spreadValues$c = (a, b) => {
1265
1272
  for (var prop in b || (b = {}))
1266
- if (__hasOwnProp$b.call(b, prop))
1267
- __defNormalProp$b(a, prop, b[prop]);
1268
- if (__getOwnPropSymbols$b)
1269
- for (var prop of __getOwnPropSymbols$b(b)) {
1270
- if (__propIsEnum$b.call(b, prop))
1271
- __defNormalProp$b(a, prop, b[prop]);
1273
+ if (__hasOwnProp$c.call(b, prop))
1274
+ __defNormalProp$c(a, prop, b[prop]);
1275
+ if (__getOwnPropSymbols$c)
1276
+ for (var prop of __getOwnPropSymbols$c(b)) {
1277
+ if (__propIsEnum$c.call(b, prop))
1278
+ __defNormalProp$c(a, prop, b[prop]);
1272
1279
  }
1273
1280
  return a;
1274
1281
  };
@@ -1302,14 +1309,14 @@ const Classes = (props) => {
1302
1309
  props.onCreateClass && props.onCreateClass(values);
1303
1310
  }) }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement(
1304
1311
  TextInput,
1305
- __spreadValues$b({
1312
+ __spreadValues$c({
1306
1313
  withAsterisk: true,
1307
1314
  label: "Name",
1308
1315
  placeholder: "Class name"
1309
1316
  }, form.getInputProps("name"))
1310
1317
  ), /* @__PURE__ */ React.createElement(
1311
1318
  TextInput,
1312
- __spreadValues$b({
1319
+ __spreadValues$c({
1313
1320
  label: "Description",
1314
1321
  placeholder: "A class for my first period English students"
1315
1322
  }, form.getInputProps("description"))
@@ -1613,29 +1620,29 @@ function Stack$3(props) {
1613
1620
  return /* @__PURE__ */ React.createElement(Link, { to: props.href, className: "flex flex-col gap-4 no-underline" }, props.items.map((row) => /* @__PURE__ */ React.createElement("div", { key: row.questionName }, /* @__PURE__ */ React.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, row.questionName), /* @__PURE__ */ React.createElement("div", { className: "mt-1 text-sm text-slate-600" }, row.answer.join(", ") || "No answer."))));
1614
1621
  }
1615
1622
 
1616
- var __defProp$a = Object.defineProperty;
1617
- var __defProps$8 = Object.defineProperties;
1618
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
1619
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1620
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1621
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1622
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1623
- var __spreadValues$a = (a, b) => {
1623
+ var __defProp$b = Object.defineProperty;
1624
+ var __defProps$9 = Object.defineProperties;
1625
+ var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
1626
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1627
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1628
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1629
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1630
+ var __spreadValues$b = (a, b) => {
1624
1631
  for (var prop in b || (b = {}))
1625
- if (__hasOwnProp$a.call(b, prop))
1626
- __defNormalProp$a(a, prop, b[prop]);
1627
- if (__getOwnPropSymbols$a)
1628
- for (var prop of __getOwnPropSymbols$a(b)) {
1629
- if (__propIsEnum$a.call(b, prop))
1630
- __defNormalProp$a(a, prop, b[prop]);
1632
+ if (__hasOwnProp$b.call(b, prop))
1633
+ __defNormalProp$b(a, prop, b[prop]);
1634
+ if (__getOwnPropSymbols$b)
1635
+ for (var prop of __getOwnPropSymbols$b(b)) {
1636
+ if (__propIsEnum$b.call(b, prop))
1637
+ __defNormalProp$b(a, prop, b[prop]);
1631
1638
  }
1632
1639
  return a;
1633
1640
  };
1634
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
1641
+ var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
1635
1642
  function Table$6(props) {
1636
1643
  const [expanded, setExpanded] = React.useState({});
1637
1644
  const preparedItems = React.useMemo(() => {
1638
- return props.items.map((item) => __spreadProps$8(__spreadValues$a({}, item), {
1645
+ return props.items.map((item) => __spreadProps$9(__spreadValues$b({}, item), {
1639
1646
  status: item.isComplete ? 2 : item.isStarted ? 1 : 0
1640
1647
  }));
1641
1648
  }, [props.items]);
@@ -1659,7 +1666,7 @@ function Table$6(props) {
1659
1666
  return /* @__PURE__ */ React.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React.createElement(
1660
1667
  "div",
1661
1668
  {
1662
- onClick: () => setExpanded(__spreadProps$8(__spreadValues$a({}, expanded), { [row.userId]: !isOpen })),
1669
+ onClick: () => setExpanded(__spreadProps$9(__spreadValues$b({}, expanded), { [row.userId]: !isOpen })),
1663
1670
  className: "flex cursor-pointer items-center gap-4 p-4"
1664
1671
  },
1665
1672
  /* @__PURE__ */ React.createElement("div", { className: "flex min-w-0 flex-1 items-center gap-3" }, row.avatar ? /* @__PURE__ */ React.createElement("img", { src: row.avatar, className: "h-9 w-9 shrink-0 rounded-full object-cover", alt: "" }) : /* @__PURE__ */ React.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.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React.createElement("div", { className: "truncate text-sm font-bold text-dark-blue-400" }, row.name), /* @__PURE__ */ React.createElement("div", { className: "truncate text-xs text-slate-400" }, row.email))),
@@ -1960,25 +1967,25 @@ function Table$4(props) {
1960
1967
  }));
1961
1968
  }
1962
1969
 
1963
- var __defProp$9 = Object.defineProperty;
1964
- var __defProps$7 = Object.defineProperties;
1965
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
1966
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
1967
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
1968
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
1969
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1970
- var __spreadValues$9 = (a, b) => {
1970
+ var __defProp$a = Object.defineProperty;
1971
+ var __defProps$8 = Object.defineProperties;
1972
+ var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
1973
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1974
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1975
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1976
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1977
+ var __spreadValues$a = (a, b) => {
1971
1978
  for (var prop in b || (b = {}))
1972
- if (__hasOwnProp$9.call(b, prop))
1973
- __defNormalProp$9(a, prop, b[prop]);
1974
- if (__getOwnPropSymbols$9)
1975
- for (var prop of __getOwnPropSymbols$9(b)) {
1976
- if (__propIsEnum$9.call(b, prop))
1977
- __defNormalProp$9(a, prop, b[prop]);
1979
+ if (__hasOwnProp$a.call(b, prop))
1980
+ __defNormalProp$a(a, prop, b[prop]);
1981
+ if (__getOwnPropSymbols$a)
1982
+ for (var prop of __getOwnPropSymbols$a(b)) {
1983
+ if (__propIsEnum$a.call(b, prop))
1984
+ __defNormalProp$a(a, prop, b[prop]);
1978
1985
  }
1979
1986
  return a;
1980
1987
  };
1981
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
1988
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
1982
1989
  const People = (props) => {
1983
1990
  const form = useForm({
1984
1991
  initialValues: {
@@ -2010,27 +2017,27 @@ const People = (props) => {
2010
2017
  padding: "xl",
2011
2018
  size: "xl"
2012
2019
  },
2013
- /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React.createElement(DropzoneButton, __spreadProps$7(__spreadValues$9({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React.createElement(Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React.createElement("form", { onSubmit: form.onSubmit(() => {
2020
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React.createElement(DropzoneButton, __spreadProps$8(__spreadValues$a({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React.createElement(Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React.createElement("form", { onSubmit: form.onSubmit(() => {
2014
2021
  const values = form.values;
2015
2022
  form.reset();
2016
2023
  setOpened(false);
2017
2024
  props.onCreateUsers && props.onCreateUsers([values]);
2018
2025
  }) }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement(
2019
2026
  TextInput,
2020
- __spreadValues$9({
2027
+ __spreadValues$a({
2021
2028
  withAsterisk: true,
2022
2029
  label: "Email",
2023
2030
  placeholder: "Email"
2024
2031
  }, form.getInputProps("email"))
2025
2032
  ), /* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
2026
2033
  TextInput,
2027
- __spreadValues$9({
2034
+ __spreadValues$a({
2028
2035
  label: "Given name",
2029
2036
  placeholder: "Given name"
2030
2037
  }, form.getInputProps("givenName"))
2031
2038
  ), /* @__PURE__ */ React.createElement(
2032
2039
  TextInput,
2033
- __spreadValues$9({
2040
+ __spreadValues$a({
2034
2041
  label: "Family name",
2035
2042
  placeholder: "Family name"
2036
2043
  }, form.getInputProps("familyName"))
@@ -2216,24 +2223,24 @@ const StartAnonymousLesson = (props) => {
2216
2223
  ))))));
2217
2224
  };
2218
2225
 
2219
- var __defProp$8 = Object.defineProperty;
2220
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2221
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2222
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2223
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2224
- var __spreadValues$8 = (a, b) => {
2226
+ var __defProp$9 = Object.defineProperty;
2227
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
2228
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
2229
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
2230
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2231
+ var __spreadValues$9 = (a, b) => {
2225
2232
  for (var prop in b || (b = {}))
2226
- if (__hasOwnProp$8.call(b, prop))
2227
- __defNormalProp$8(a, prop, b[prop]);
2228
- if (__getOwnPropSymbols$8)
2229
- for (var prop of __getOwnPropSymbols$8(b)) {
2230
- if (__propIsEnum$8.call(b, prop))
2231
- __defNormalProp$8(a, prop, b[prop]);
2233
+ if (__hasOwnProp$9.call(b, prop))
2234
+ __defNormalProp$9(a, prop, b[prop]);
2235
+ if (__getOwnPropSymbols$9)
2236
+ for (var prop of __getOwnPropSymbols$9(b)) {
2237
+ if (__propIsEnum$9.call(b, prop))
2238
+ __defNormalProp$9(a, prop, b[prop]);
2232
2239
  }
2233
2240
  return a;
2234
2241
  };
2235
2242
  const BadgeGrid = (props) => {
2236
- const badges = props.badges.map((b) => /* @__PURE__ */ React.createElement(TaskCard, __spreadValues$8({ key: b.title }, b)));
2243
+ const badges = props.badges.map((b) => /* @__PURE__ */ React.createElement(TaskCard, __spreadValues$9({ key: b.title }, b)));
2237
2244
  return /* @__PURE__ */ React.createElement(SimpleGrid, { cols: 4, breakpoints: [{ maxWidth: "sm", cols: 1 }, { maxWidth: "md", cols: 3 }] }, badges);
2238
2245
  };
2239
2246
  function TaskCard(props) {
@@ -2267,30 +2274,30 @@ const UserInfo = (props) => {
2267
2274
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Title, { className: classes.title }, props.name), /* @__PURE__ */ React.createElement(Text, { color: "dimmed", className: classes.description, mt: "xs" }, props.impactStatement));
2268
2275
  };
2269
2276
 
2270
- var __defProp$7 = Object.defineProperty;
2271
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2272
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2273
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2274
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2275
- var __spreadValues$7 = (a, b) => {
2277
+ var __defProp$8 = Object.defineProperty;
2278
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2279
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2280
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2281
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2282
+ var __spreadValues$8 = (a, b) => {
2276
2283
  for (var prop in b || (b = {}))
2277
- if (__hasOwnProp$7.call(b, prop))
2278
- __defNormalProp$7(a, prop, b[prop]);
2279
- if (__getOwnPropSymbols$7)
2280
- for (var prop of __getOwnPropSymbols$7(b)) {
2281
- if (__propIsEnum$7.call(b, prop))
2282
- __defNormalProp$7(a, prop, b[prop]);
2284
+ if (__hasOwnProp$8.call(b, prop))
2285
+ __defNormalProp$8(a, prop, b[prop]);
2286
+ if (__getOwnPropSymbols$8)
2287
+ for (var prop of __getOwnPropSymbols$8(b)) {
2288
+ if (__propIsEnum$8.call(b, prop))
2289
+ __defNormalProp$8(a, prop, b[prop]);
2283
2290
  }
2284
2291
  return a;
2285
2292
  };
2286
2293
  var __objRest$1 = (source, exclude) => {
2287
2294
  var target = {};
2288
2295
  for (var prop in source)
2289
- if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
2296
+ if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
2290
2297
  target[prop] = source[prop];
2291
- if (source != null && __getOwnPropSymbols$7)
2292
- for (var prop of __getOwnPropSymbols$7(source)) {
2293
- if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
2298
+ if (source != null && __getOwnPropSymbols$8)
2299
+ for (var prop of __getOwnPropSymbols$8(source)) {
2300
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
2294
2301
  target[prop] = source[prop];
2295
2302
  }
2296
2303
  return target;
@@ -2357,9 +2364,9 @@ const TenantBanner = (_a) => {
2357
2364
  };
2358
2365
  return /* @__PURE__ */ React.createElement(
2359
2366
  Card,
2360
- __spreadValues$7({
2367
+ __spreadValues$8({
2361
2368
  radius: "md",
2362
- style: __spreadValues$7({ backgroundImage: `url(${image})` }, style),
2369
+ style: __spreadValues$8({ backgroundImage: `url(${image})` }, style),
2363
2370
  className: cx(classes.card, className)
2364
2371
  }, others),
2365
2372
  /* @__PURE__ */ React.createElement(
@@ -2435,33 +2442,33 @@ const TrialHome = (props) => {
2435
2442
  )), /* @__PURE__ */ React.createElement(Title, { maw: 500, mb: 20, mt: 20, className: classes.title }, "Based on the tags you selected, check out these lessons to get started with your students!"), /* @__PURE__ */ React.createElement(BadgeGrid, { onAssign: props.onAssign, badges: props.badges })));
2436
2443
  };
2437
2444
 
2438
- var __defProp$6 = Object.defineProperty;
2439
- var __defProps$6 = Object.defineProperties;
2440
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
2441
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2442
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2443
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2444
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2445
- var __spreadValues$6 = (a, b) => {
2445
+ var __defProp$7 = Object.defineProperty;
2446
+ var __defProps$7 = Object.defineProperties;
2447
+ var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
2448
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2449
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2450
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2451
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2452
+ var __spreadValues$7 = (a, b) => {
2446
2453
  for (var prop in b || (b = {}))
2447
- if (__hasOwnProp$6.call(b, prop))
2448
- __defNormalProp$6(a, prop, b[prop]);
2449
- if (__getOwnPropSymbols$6)
2450
- for (var prop of __getOwnPropSymbols$6(b)) {
2451
- if (__propIsEnum$6.call(b, prop))
2452
- __defNormalProp$6(a, prop, b[prop]);
2454
+ if (__hasOwnProp$7.call(b, prop))
2455
+ __defNormalProp$7(a, prop, b[prop]);
2456
+ if (__getOwnPropSymbols$7)
2457
+ for (var prop of __getOwnPropSymbols$7(b)) {
2458
+ if (__propIsEnum$7.call(b, prop))
2459
+ __defNormalProp$7(a, prop, b[prop]);
2453
2460
  }
2454
2461
  return a;
2455
2462
  };
2456
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2463
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
2457
2464
  var __objRest = (source, exclude) => {
2458
2465
  var target = {};
2459
2466
  for (var prop in source)
2460
- if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
2467
+ if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
2461
2468
  target[prop] = source[prop];
2462
- if (source != null && __getOwnPropSymbols$6)
2463
- for (var prop of __getOwnPropSymbols$6(source)) {
2464
- if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
2469
+ if (source != null && __getOwnPropSymbols$7)
2470
+ for (var prop of __getOwnPropSymbols$7(source)) {
2471
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
2465
2472
  target[prop] = source[prop];
2466
2473
  }
2467
2474
  return target;
@@ -2511,7 +2518,7 @@ function ImageCheckbox(_a) {
2511
2518
  const { classes, cx } = useStyles$2({ checked: value });
2512
2519
  return /* @__PURE__ */ React.createElement(
2513
2520
  UnstyledButton,
2514
- __spreadProps$6(__spreadValues$6({}, others), {
2521
+ __spreadProps$7(__spreadValues$7({}, others), {
2515
2522
  onClick: () => handleChange(!value),
2516
2523
  className: cx(classes.button, className)
2517
2524
  }),
@@ -2532,7 +2539,7 @@ function ImageCheckbox(_a) {
2532
2539
  function SelectGrid(props) {
2533
2540
  const items = props.items.map((item) => /* @__PURE__ */ React.createElement(
2534
2541
  ImageCheckbox,
2535
- __spreadProps$6(__spreadValues$6({}, item), {
2542
+ __spreadProps$7(__spreadValues$7({}, item), {
2536
2543
  key: item.title,
2537
2544
  onChange: (checked) => props.onChange(item.title, checked)
2538
2545
  })
@@ -2550,25 +2557,25 @@ function SelectGrid(props) {
2550
2557
  );
2551
2558
  }
2552
2559
 
2553
- var __defProp$5 = Object.defineProperty;
2554
- var __defProps$5 = Object.defineProperties;
2555
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2556
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2557
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2558
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2559
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2560
- var __spreadValues$5 = (a, b) => {
2560
+ var __defProp$6 = Object.defineProperty;
2561
+ var __defProps$6 = Object.defineProperties;
2562
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
2563
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2564
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2565
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2566
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2567
+ var __spreadValues$6 = (a, b) => {
2561
2568
  for (var prop in b || (b = {}))
2562
- if (__hasOwnProp$5.call(b, prop))
2563
- __defNormalProp$5(a, prop, b[prop]);
2564
- if (__getOwnPropSymbols$5)
2565
- for (var prop of __getOwnPropSymbols$5(b)) {
2566
- if (__propIsEnum$5.call(b, prop))
2567
- __defNormalProp$5(a, prop, b[prop]);
2569
+ if (__hasOwnProp$6.call(b, prop))
2570
+ __defNormalProp$6(a, prop, b[prop]);
2571
+ if (__getOwnPropSymbols$6)
2572
+ for (var prop of __getOwnPropSymbols$6(b)) {
2573
+ if (__propIsEnum$6.call(b, prop))
2574
+ __defNormalProp$6(a, prop, b[prop]);
2568
2575
  }
2569
2576
  return a;
2570
2577
  };
2571
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2578
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2572
2579
  const useStyles$1 = createStyles((theme) => ({
2573
2580
  wrapper: {
2574
2581
  minHeight: "100%",
@@ -2678,7 +2685,7 @@ const TrialRegistration = (props) => {
2678
2685
  label: "School/Organization Name",
2679
2686
  placeholder: "What's the name of your school?",
2680
2687
  data: props.organizations.map((o) => {
2681
- return __spreadProps$5(__spreadValues$5({}, o), { value: o.displayName });
2688
+ return __spreadProps$6(__spreadValues$6({}, o), { value: o.displayName });
2682
2689
  }),
2683
2690
  onItemSubmit: (item) => setOrganization({ organizationId: item.organizationId, displayName: item.displayName }),
2684
2691
  onChange: (next) => {
@@ -2690,7 +2697,7 @@ const TrialRegistration = (props) => {
2690
2697
  SelectGrid,
2691
2698
  {
2692
2699
  items: OPTIONS,
2693
- onChange: (e, checked) => setInterests(__spreadProps$5(__spreadValues$5({}, interests), { [e]: checked }))
2700
+ onChange: (e, checked) => setInterests(__spreadProps$6(__spreadValues$6({}, interests), { [e]: checked }))
2694
2701
  }
2695
2702
  ), /* @__PURE__ */ React.createElement(Group, { position: "right", mt: "md" }, /* @__PURE__ */ React.createElement(
2696
2703
  Button,
@@ -2728,25 +2735,25 @@ const AdminProvider = (props) => {
2728
2735
  );
2729
2736
  };
2730
2737
 
2731
- var __defProp$4 = Object.defineProperty;
2732
- var __defProps$4 = Object.defineProperties;
2733
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
2734
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2735
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2736
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2737
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2738
- var __spreadValues$4 = (a, b) => {
2738
+ var __defProp$5 = Object.defineProperty;
2739
+ var __defProps$5 = Object.defineProperties;
2740
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2741
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2742
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2743
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2744
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2745
+ var __spreadValues$5 = (a, b) => {
2739
2746
  for (var prop in b || (b = {}))
2740
- if (__hasOwnProp$4.call(b, prop))
2741
- __defNormalProp$4(a, prop, b[prop]);
2742
- if (__getOwnPropSymbols$4)
2743
- for (var prop of __getOwnPropSymbols$4(b)) {
2744
- if (__propIsEnum$4.call(b, prop))
2745
- __defNormalProp$4(a, prop, b[prop]);
2747
+ if (__hasOwnProp$5.call(b, prop))
2748
+ __defNormalProp$5(a, prop, b[prop]);
2749
+ if (__getOwnPropSymbols$5)
2750
+ for (var prop of __getOwnPropSymbols$5(b)) {
2751
+ if (__propIsEnum$5.call(b, prop))
2752
+ __defNormalProp$5(a, prop, b[prop]);
2746
2753
  }
2747
2754
  return a;
2748
2755
  };
2749
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
2756
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2750
2757
  const useStyles = createStyles((theme, props) => ({
2751
2758
  footer: {
2752
2759
  paddingTop: theme.spacing.md,
@@ -2842,7 +2849,7 @@ const App = (props) => {
2842
2849
  padding: "xs",
2843
2850
  navbar: props.navbar && /* @__PURE__ */ React.createElement(
2844
2851
  Navbar,
2845
- __spreadProps$4(__spreadValues$4({}, props.navbar.props), {
2852
+ __spreadProps$5(__spreadValues$5({}, props.navbar.props), {
2846
2853
  onSwitchAccounts: account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : void 0
2847
2854
  })
2848
2855
  ),
@@ -2993,30 +3000,30 @@ function Stack$1(props) {
2993
3000
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2" }, props.items.map((row) => /* @__PURE__ */ React.createElement("div", { key: row.badgeName, className: "flex items-center justify-between gap-4 py-1.5" }, /* @__PURE__ */ React.createElement(Link, { to: row.href, className: "text-sm font-bold text-dark-blue-400 no-underline hover:underline" }, row.badgeName), row.completion >= 1 && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 rounded-full bg-mint-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, "Complete"), row.completion === 0 && !row.isStarted && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 rounded-full bg-slate-100 px-2.5 py-1 text-[10px] font-bold text-slate-500" }, "Not started"), row.completion > 0 && row.completion < 1 && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, Math.round((row.completion + Number.EPSILON) * 100), "% Complete"))));
2994
3001
  }
2995
3002
 
2996
- var __defProp$3 = Object.defineProperty;
2997
- var __defProps$3 = Object.defineProperties;
2998
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
2999
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3000
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3001
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3002
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3003
- var __spreadValues$3 = (a, b) => {
3003
+ var __defProp$4 = Object.defineProperty;
3004
+ var __defProps$4 = Object.defineProperties;
3005
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
3006
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
3007
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
3008
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
3009
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3010
+ var __spreadValues$4 = (a, b) => {
3004
3011
  for (var prop in b || (b = {}))
3005
- if (__hasOwnProp$3.call(b, prop))
3006
- __defNormalProp$3(a, prop, b[prop]);
3007
- if (__getOwnPropSymbols$3)
3008
- for (var prop of __getOwnPropSymbols$3(b)) {
3009
- if (__propIsEnum$3.call(b, prop))
3010
- __defNormalProp$3(a, prop, b[prop]);
3012
+ if (__hasOwnProp$4.call(b, prop))
3013
+ __defNormalProp$4(a, prop, b[prop]);
3014
+ if (__getOwnPropSymbols$4)
3015
+ for (var prop of __getOwnPropSymbols$4(b)) {
3016
+ if (__propIsEnum$4.call(b, prop))
3017
+ __defNormalProp$4(a, prop, b[prop]);
3011
3018
  }
3012
3019
  return a;
3013
3020
  };
3014
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
3021
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
3015
3022
  function Table$2(props) {
3016
3023
  const [expanded, setExpanded] = React.useState({});
3017
3024
  const categories = props.categories || [];
3018
3025
  const preparedItems = React.useMemo(() => {
3019
- return (props.items || []).map((item) => __spreadValues$3(__spreadValues$3({}, item), item.categoryPoints));
3026
+ return (props.items || []).map((item) => __spreadValues$4(__spreadValues$4({}, item), item.categoryPoints));
3020
3027
  }, [props.items]);
3021
3028
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
3022
3029
  if (props.loading && props.items.length === 0) {
@@ -3038,7 +3045,7 @@ function Table$2(props) {
3038
3045
  return /* @__PURE__ */ React.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React.createElement(
3039
3046
  "div",
3040
3047
  {
3041
- onClick: () => setExpanded(__spreadProps$3(__spreadValues$3({}, expanded), { [row.userId]: !isOpen })),
3048
+ onClick: () => setExpanded(__spreadProps$4(__spreadValues$4({}, expanded), { [row.userId]: !isOpen })),
3042
3049
  className: "flex cursor-pointer items-center gap-4 p-4"
3043
3050
  },
3044
3051
  /* @__PURE__ */ React.createElement("div", { className: "flex min-w-0 flex-1 items-center gap-3" }, row.avatar ? /* @__PURE__ */ React.createElement("img", { src: row.avatar, className: "h-9 w-9 shrink-0 rounded-full object-cover", alt: "" }) : /* @__PURE__ */ React.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.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React.createElement("div", { className: "truncate text-sm font-bold text-dark-blue-400" }, row.name), /* @__PURE__ */ React.createElement("div", { className: "truncate text-xs text-slate-400" }, row.email))),
@@ -3053,8 +3060,8 @@ function Table$2(props) {
3053
3060
  }
3054
3061
 
3055
3062
  function Table$1(props) {
3056
- const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
3057
- if (props.items.length === 0) {
3063
+ const { items: sortedBadges, requestSort, sortConfig } = useSortableData(props.badges);
3064
+ if (props.badges.length === 0) {
3058
3065
  return /* @__PURE__ */ React.createElement(
3059
3066
  PlaceholderBanner,
3060
3067
  {
@@ -3066,30 +3073,116 @@ function Table$1(props) {
3066
3073
  );
3067
3074
  }
3068
3075
  const indicator = (key) => sortConfig.key !== key ? "" : sortConfig.direction === "desc" ? " \u25BE" : " \u25B4";
3069
- return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-4 px-4 text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, /* @__PURE__ */ React.createElement("button", { onClick: () => requestSort("badgeName"), className: "flex-1 text-left hover:text-slate-600" }, "Badge Name", indicator("badgeName")), /* @__PURE__ */ React.createElement("button", { onClick: () => requestSort("percentageCompletion"), className: "w-36 shrink-0 text-right hover:text-slate-600" }, "Badge Completion", indicator("percentageCompletion"))), sortedItems.map((row) => /* @__PURE__ */ React.createElement(
3070
- Link,
3071
- {
3072
- key: row.badgeId,
3073
- to: row.href,
3074
- className: "flex items-center gap-4 rounded-xl border border-slate-200 bg-white p-4 no-underline shadow-sm hover:bg-slate-50"
3075
- },
3076
- /* @__PURE__ */ React.createElement("div", { className: "min-w-0 flex-1 text-sm font-bold text-dark-blue-400" }, row.badgeName),
3077
- /* @__PURE__ */ React.createElement("div", { className: "w-36 shrink-0 text-right text-xs text-slate-500" }, Math.round((row.percentageCompletion + Number.EPSILON) * 100), "%")
3078
- )));
3076
+ const groupedIds = new Set(props.categories.map((c) => c.categoryId));
3077
+ const forCategory = (categoryId) => sortedBadges.filter((b) => {
3078
+ var _a;
3079
+ return (_a = b.categories) == null ? void 0 : _a.includes(categoryId);
3080
+ });
3081
+ const other = sortedBadges.filter((b) => {
3082
+ var _a;
3083
+ return !((_a = b.categories) == null ? void 0 : _a.some((id) => groupedIds.has(id)));
3084
+ });
3085
+ return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React.createElement("div", { className: "flex gap-4 px-4 text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, /* @__PURE__ */ React.createElement("button", { onClick: () => requestSort("badgeName"), className: "flex-1 text-left hover:text-slate-600" }, "Badge Name", indicator("badgeName")), /* @__PURE__ */ React.createElement("button", { onClick: () => requestSort("weight"), className: "w-24 shrink-0 text-right hover:text-slate-600" }, "Point Value", indicator("weight")), /* @__PURE__ */ React.createElement("button", { onClick: () => requestSort("percentageCompletion"), className: "w-36 shrink-0 text-right hover:text-slate-600" }, "Badge Completion", indicator("percentageCompletion"))), props.categories.map((category) => /* @__PURE__ */ React.createElement(CategorySection, { key: category.categoryId, name: category.name, badges: forCategory(category.categoryId) })), other.length > 0 && /* @__PURE__ */ React.createElement(CategorySection, { name: "Other badges", badges: other }));
3079
3086
  }
3087
+ const CategorySection = (props) => /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React.createElement("div", { className: "px-1 text-sm font-extrabold tracking-tight text-dark-blue-400" }, props.name), props.badges.length === 0 && /* @__PURE__ */ React.createElement("div", { className: "rounded-xl border border-dashed border-slate-200 px-4 py-3 text-xs text-slate-400" }, "No badges yet."), props.badges.map((row) => /* @__PURE__ */ React.createElement(
3088
+ Link,
3089
+ {
3090
+ key: row.badgeId,
3091
+ to: row.href,
3092
+ className: "flex items-center gap-4 rounded-xl border border-slate-200 bg-white p-4 no-underline shadow-sm hover:bg-slate-50"
3093
+ },
3094
+ /* @__PURE__ */ React.createElement("div", { className: "min-w-0 flex-1 text-sm font-bold text-dark-blue-400" }, row.badgeName),
3095
+ /* @__PURE__ */ React.createElement("div", { className: "w-24 shrink-0 text-right text-xs font-black text-mint-400" }, row.weight, " pts"),
3096
+ /* @__PURE__ */ React.createElement("div", { className: "w-36 shrink-0 text-right text-xs text-slate-500" }, Math.round((row.percentageCompletion + Number.EPSILON) * 100), "%")
3097
+ )));
3098
+
3099
+ var __defProp$3 = Object.defineProperty;
3100
+ var __defProps$3 = Object.defineProperties;
3101
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
3102
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3103
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3104
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3105
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3106
+ var __spreadValues$3 = (a, b) => {
3107
+ for (var prop in b || (b = {}))
3108
+ if (__hasOwnProp$3.call(b, prop))
3109
+ __defNormalProp$3(a, prop, b[prop]);
3110
+ if (__getOwnPropSymbols$3)
3111
+ for (var prop of __getOwnPropSymbols$3(b)) {
3112
+ if (__propIsEnum$3.call(b, prop))
3113
+ __defNormalProp$3(a, prop, b[prop]);
3114
+ }
3115
+ return a;
3116
+ };
3117
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
3118
+ function buildCategoryTree(categories) {
3119
+ const byId = /* @__PURE__ */ new Map();
3120
+ categories.forEach((c) => byId.set(c.categoryId, c));
3121
+ const childrenByParent = /* @__PURE__ */ new Map();
3122
+ categories.forEach((c) => {
3123
+ const parentId = c.parentCategoryId;
3124
+ const hasValidParent = !!parentId && parentId !== c.categoryId && byId.has(parentId);
3125
+ if (!hasValidParent)
3126
+ return;
3127
+ const siblings = childrenByParent.get(parentId) || [];
3128
+ siblings.push(c);
3129
+ childrenByParent.set(parentId, siblings);
3130
+ });
3131
+ const attached = /* @__PURE__ */ new Set();
3132
+ const attach = (category, ancestry) => {
3133
+ attached.add(category.categoryId);
3134
+ const childAncestry = new Set(ancestry).add(category.categoryId);
3135
+ const children = (childrenByParent.get(category.categoryId) || []).filter((child) => !childAncestry.has(child.categoryId)).map((child) => attach(child, childAncestry));
3136
+ return __spreadProps$3(__spreadValues$3({}, category), { children });
3137
+ };
3138
+ const roots = categories.filter((c) => {
3139
+ const parentId = c.parentCategoryId;
3140
+ return !parentId || parentId === c.categoryId || !byId.has(parentId);
3141
+ });
3142
+ const tree = roots.map((root) => attach(root, /* @__PURE__ */ new Set()));
3143
+ categories.forEach((c) => {
3144
+ if (!attached.has(c.categoryId))
3145
+ tree.push(attach(c, /* @__PURE__ */ new Set()));
3146
+ });
3147
+ return tree;
3148
+ }
3149
+
3150
+ function CategoriesModal(props) {
3151
+ const tree = React.useMemo(() => buildCategoryTree(props.categories || []), [props.categories]);
3152
+ return /* @__PURE__ */ React.createElement(Modal, { opened: props.opened, onClose: props.onClose, title: "Category structure", size: "lg", centered: true }, /* @__PURE__ */ React.createElement("div", { className: "flex max-h-[70vh] flex-col gap-2 overflow-y-auto pr-1" }, tree.length === 0 && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, "No categories to display."), tree.map((node) => /* @__PURE__ */ React.createElement(CategoryNode, { key: node.categoryId, node, criteria: props.criteria, depth: 0 }))));
3153
+ }
3154
+ const CategoryNode = (props) => {
3155
+ var _a;
3156
+ const hasChildren = props.node.children.length > 0;
3157
+ const required = props.criteria[props.node.categoryId];
3158
+ return /* @__PURE__ */ React.createElement("div", { className: hasChildren ? "rounded-lg border border-slate-100 bg-slate-50/60 p-3" : "rounded-lg px-3 py-2 hover:bg-slate-50" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-center justify-between gap-2" }, /* @__PURE__ */ React.createElement("span", { className: props.depth === 0 ? "text-sm font-extrabold text-dark-blue-400" : "text-xs font-bold text-dark-blue-400" }, props.node.name), /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-center gap-1.5" }, required !== void 0 && /* @__PURE__ */ React.createElement("span", { className: "rounded-full bg-sky-blue-400/15 px-2 py-0.5 text-[10px] font-bold text-dark-blue-400" }, "min. ", required, " pts"), !!props.node.maxPoints && /* @__PURE__ */ React.createElement("span", { className: "rounded-full bg-gold-400/15 px-2 py-0.5 text-[10px] font-bold text-dark-blue-400" }, "cap ", props.node.maxPoints, " pts"))), !!((_a = props.node.description) == null ? void 0 : _a.trim()) && /* @__PURE__ */ React.createElement("p", { className: "mt-0.5 text-xs text-slate-500" }, props.node.description), hasChildren && /* @__PURE__ */ React.createElement("div", { className: "mt-3 flex flex-col gap-2 border-l-2 border-slate-200 pl-4" }, props.node.children.map((child) => /* @__PURE__ */ React.createElement(CategoryNode, { key: child.categoryId, node: child, criteria: props.criteria, depth: props.depth + 1 }))));
3159
+ };
3080
3160
 
3081
3161
  const TABS$1 = [
3082
3162
  { label: "By Badge", value: "badges" },
3083
3163
  { label: "By student", value: "students" }
3084
3164
  ];
3085
3165
  const Pathway = (props) => {
3086
- var _a;
3166
+ var _a, _b, _c;
3087
3167
  const [tab, setTab] = useState("badges");
3168
+ const [categoriesOpen, setCategoriesOpen] = useState(false);
3088
3169
  const numberOfStudents = props.students.length;
3089
3170
  const numberOfBadgesEarned = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
3090
3171
  const criteria = props.criteria || {};
3091
3172
  const criteriaCategories = (props.categories || []).filter((c) => criteria[c.categoryId] !== void 0);
3092
- return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-start justify-between gap-4" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-4" }, /* @__PURE__ */ React.createElement(Emblem, { imageURL: props.imageURL, alt: props.title, size: "lg", icon: IconRoute, accent: "cyan" }), /* @__PURE__ */ React.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React.createElement("div", { onClick: props.onBackClick, className: "flex w-max cursor-pointer items-center gap-1 text-xs font-bold text-sky-blue-400" }, /* @__PURE__ */ React.createElement(IconArrowLeft, { size: 13, stroke: 2.5 }), "Back"), /* @__PURE__ */ React.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.title || "Pathway"), !!((_a = props.displayTags) == null ? void 0 : _a.length) && /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap gap-1.5" }, props.displayTags.map((tag) => /* @__PURE__ */ React.createElement("span", { key: tag, className: "rounded-full bg-slate-100 px-2.5 py-1 text-[10px] font-bold text-slate-500" }, tag))), /* @__PURE__ */ React.createElement("p", { className: "max-w-xl text-sm text-slate-500" }, props.description || "No description"), criteriaCategories.length > 0 && /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-center gap-1.5 pt-0.5" }, /* @__PURE__ */ React.createElement("span", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Criteria"), criteriaCategories.map((c) => /* @__PURE__ */ React.createElement("span", { key: c.categoryId, className: "rounded-full bg-sky-blue-400/15 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, c.name, ": ", criteria[c.categoryId], "+", c.maxPoints ? ` of ${c.maxPoints}` : "", " pts"))))), !props.trial && /* @__PURE__ */ React.createElement(
3173
+ const rootCategoryIds = new Set(
3174
+ (props.allCategories || []).filter((c) => !c.parentCategoryId).map((c) => c.categoryId)
3175
+ );
3176
+ const badgeGroupCategories = criteriaCategories.filter((c) => !rootCategoryIds.has(c.categoryId));
3177
+ return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-start justify-between gap-4" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-4" }, /* @__PURE__ */ React.createElement(Emblem, { imageURL: props.imageURL, alt: props.title, size: "lg", icon: IconRoute, accent: "cyan" }), /* @__PURE__ */ React.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React.createElement("div", { onClick: props.onBackClick, className: "flex w-max cursor-pointer items-center gap-1 text-xs font-bold text-sky-blue-400" }, /* @__PURE__ */ React.createElement(IconArrowLeft, { size: 13, stroke: 2.5 }), "Back"), /* @__PURE__ */ React.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.title || "Pathway"), !!((_a = props.displayTags) == null ? void 0 : _a.length) && /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap gap-1.5" }, props.displayTags.map((tag) => /* @__PURE__ */ React.createElement("span", { key: tag, className: "rounded-full bg-slate-100 px-2.5 py-1 text-[10px] font-bold text-slate-500" }, tag))), /* @__PURE__ */ React.createElement("p", { className: "max-w-xl text-sm text-slate-500" }, props.description || "No description"), (criteriaCategories.length > 0 || !!((_b = props.allCategories) == null ? void 0 : _b.length)) && /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-center gap-1.5 pt-0.5" }, criteriaCategories.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: "text-[10.5px] font-extrabold uppercase tracking-wide text-slate-400" }, "Criteria"), criteriaCategories.map((c) => /* @__PURE__ */ React.createElement("span", { key: c.categoryId, className: "rounded-full bg-sky-blue-400/15 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, c.name, ": ", criteria[c.categoryId], "+", c.maxPoints ? ` of ${c.maxPoints}` : "", " pts"))), !!((_c = props.allCategories) == null ? void 0 : _c.length) && /* @__PURE__ */ React.createElement(
3178
+ "button",
3179
+ {
3180
+ onClick: () => setCategoriesOpen(true),
3181
+ className: "flex items-center gap-1.5 rounded-full border border-slate-200 bg-white px-2.5 py-1 text-[10px] font-bold text-dark-blue-400 hover:bg-slate-50"
3182
+ },
3183
+ /* @__PURE__ */ React.createElement(IconCategory2, { size: 12, stroke: 2 }),
3184
+ " Categories"
3185
+ )))), !props.trial && /* @__PURE__ */ React.createElement(
3093
3186
  SplitButton$1,
3094
3187
  {
3095
3188
  href: props.href,
@@ -3118,7 +3211,15 @@ const Pathway = (props) => {
3118
3211
  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"}`
3119
3212
  },
3120
3213
  t.label
3121
- ))), (!!props.trial || tab === "badges") && /* @__PURE__ */ React.createElement(Table$1, { loading: props.loading, items: props.badges }), !props.trial && tab === "students" && /* @__PURE__ */ React.createElement(Table$2, { loading: props.loading, items: props.students, categories: props.categories })));
3214
+ ))), (!!props.trial || tab === "badges") && /* @__PURE__ */ React.createElement(Table$1, { loading: props.loading, badges: props.badges, categories: badgeGroupCategories }), !props.trial && tab === "students" && /* @__PURE__ */ React.createElement(Table$2, { loading: props.loading, items: props.students, categories: props.categories })), /* @__PURE__ */ React.createElement(
3215
+ CategoriesModal,
3216
+ {
3217
+ opened: categoriesOpen,
3218
+ onClose: () => setCategoriesOpen(false),
3219
+ categories: props.allCategories || [],
3220
+ criteria
3221
+ }
3222
+ ));
3122
3223
  };
3123
3224
 
3124
3225
  const SplitButton = (props) => {