@local-civics/mgmt-ui 0.1.220 → 0.1.221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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
  );
@@ -499,29 +499,29 @@ function useSortableData(items, config = { key: "", direction: null }) {
499
499
  return { items: sortedItems, requestSort, sortConfig };
500
500
  }
501
501
 
502
- var __defProp$f = Object.defineProperty;
503
- var __defProps$c = Object.defineProperties;
504
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
505
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
506
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
507
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
508
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
509
- 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) => {
510
510
  for (var prop in b || (b = {}))
511
- if (__hasOwnProp$f.call(b, prop))
512
- __defNormalProp$f(a, prop, b[prop]);
513
- if (__getOwnPropSymbols$f)
514
- for (var prop of __getOwnPropSymbols$f(b)) {
515
- if (__propIsEnum$f.call(b, prop))
516
- __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]);
517
517
  }
518
518
  return a;
519
519
  };
520
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
520
+ var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
521
521
  function Table$k(props) {
522
522
  const [expanded, setExpanded] = React.useState({});
523
523
  const preparedItems = React.useMemo(() => {
524
- return props.items.map((item) => __spreadProps$c(__spreadValues$f({}, item), {
524
+ return props.items.map((item) => __spreadProps$d(__spreadValues$g({}, item), {
525
525
  status: item.isComplete ? 1 : 0
526
526
  }));
527
527
  }, [props.items]);
@@ -545,7 +545,7 @@ function Table$k(props) {
545
545
  return /* @__PURE__ */ React.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React.createElement(
546
546
  "div",
547
547
  {
548
- onClick: () => setExpanded(__spreadProps$c(__spreadValues$f({}, expanded), { [row.userId]: !isOpen })),
548
+ onClick: () => setExpanded(__spreadProps$d(__spreadValues$g({}, expanded), { [row.userId]: !isOpen })),
549
549
  className: "flex cursor-pointer items-center gap-4 p-4"
550
550
  },
551
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))),
@@ -600,6 +600,10 @@ const Badge = (props) => {
600
600
  {
601
601
  title: props.trial ? "LESSONS SUBMITTED" : "BADGE COMPLETION",
602
602
  value: props.trial ? props.lessonsCompleted || 0 : numberOfBadges
603
+ },
604
+ {
605
+ title: "POINT VALUE",
606
+ value: props.weight || 0
603
607
  }
604
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(
605
609
  "select",
@@ -729,28 +733,28 @@ function relativeTimeFromElapsed(elapsed) {
729
733
  return "";
730
734
  }
731
735
 
732
- var __defProp$e = Object.defineProperty;
733
- var __defProps$b = Object.defineProperties;
734
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
735
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
736
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
737
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
738
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
739
- 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) => {
740
744
  for (var prop in b || (b = {}))
741
- if (__hasOwnProp$e.call(b, prop))
742
- __defNormalProp$e(a, prop, b[prop]);
743
- if (__getOwnPropSymbols$e)
744
- for (var prop of __getOwnPropSymbols$e(b)) {
745
- if (__propIsEnum$e.call(b, prop))
746
- __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]);
747
751
  }
748
752
  return a;
749
753
  };
750
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
754
+ var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
751
755
  function Table$g(props) {
752
756
  const preparedItems = React.useMemo(() => {
753
- return props.items.map((item) => __spreadProps$b(__spreadValues$e({}, item), {
757
+ return props.items.map((item) => __spreadProps$c(__spreadValues$f({}, item), {
754
758
  updatedAtDate: new Date(item.updatedAt)
755
759
  }));
756
760
  }, [props.items]);
@@ -953,25 +957,25 @@ const Dashboard = (props) => {
953
957
  )));
954
958
  };
955
959
 
956
- var __defProp$d = Object.defineProperty;
957
- var __defProps$a = Object.defineProperties;
958
- var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
959
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
960
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
961
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
962
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
963
- 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) => {
964
968
  for (var prop in b || (b = {}))
965
- if (__hasOwnProp$d.call(b, prop))
966
- __defNormalProp$d(a, prop, b[prop]);
967
- if (__getOwnPropSymbols$d)
968
- for (var prop of __getOwnPropSymbols$d(b)) {
969
- if (__propIsEnum$d.call(b, prop))
970
- __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]);
971
975
  }
972
976
  return a;
973
977
  };
974
- var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
978
+ var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
975
979
  const openDeleteModal$2 = (student, onDelete) => openConfirmModal({
976
980
  title: `Remove "${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}" from this class?`,
977
981
  centered: true,
@@ -982,7 +986,7 @@ const openDeleteModal$2 = (student, onDelete) => openConfirmModal({
982
986
  });
983
987
  function Table$c(props) {
984
988
  const preparedItems = React.useMemo(() => {
985
- return props.items.map((item) => __spreadProps$a(__spreadValues$d({}, item), {
989
+ return props.items.map((item) => __spreadProps$b(__spreadValues$e({}, item), {
986
990
  fullName: item.givenName && item.familyName ? `${item.givenName} ${item.familyName}`.toLowerCase() : item.email.toLowerCase()
987
991
  }));
988
992
  }, [props.items]);
@@ -1033,25 +1037,25 @@ function Table$c(props) {
1033
1037
  }));
1034
1038
  }
1035
1039
 
1036
- var __defProp$c = Object.defineProperty;
1037
- var __defProps$9 = Object.defineProperties;
1038
- var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
1039
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1040
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1041
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1042
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1043
- 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) => {
1044
1048
  for (var prop in b || (b = {}))
1045
- if (__hasOwnProp$c.call(b, prop))
1046
- __defNormalProp$c(a, prop, b[prop]);
1047
- if (__getOwnPropSymbols$c)
1048
- for (var prop of __getOwnPropSymbols$c(b)) {
1049
- if (__propIsEnum$c.call(b, prop))
1050
- __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]);
1051
1055
  }
1052
1056
  return a;
1053
1057
  };
1054
- var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
1058
+ var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
1055
1059
  const Class = (props) => {
1056
1060
  const [opened, setOpened] = useState(false);
1057
1061
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
@@ -1063,7 +1067,7 @@ const Class = (props) => {
1063
1067
  padding: "xl",
1064
1068
  size: "xl"
1065
1069
  },
1066
- /* @__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) }))
1067
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(
1068
1072
  "button",
1069
1073
  {
@@ -1189,20 +1193,20 @@ const DropzoneButton$1 = (props) => {
1189
1193
  props.onCreateMembers && props.onCreateMembers([values]);
1190
1194
  }) }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement(
1191
1195
  TextInput,
1192
- __spreadValues$c({
1196
+ __spreadValues$d({
1193
1197
  withAsterisk: true,
1194
1198
  label: "Email",
1195
1199
  placeholder: "Email"
1196
1200
  }, form.getInputProps("email"))
1197
1201
  ), /* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
1198
1202
  TextInput,
1199
- __spreadValues$c({
1203
+ __spreadValues$d({
1200
1204
  label: "Given name",
1201
1205
  placeholder: "Given name"
1202
1206
  }, form.getInputProps("givenName"))
1203
1207
  ), /* @__PURE__ */ React.createElement(
1204
1208
  TextInput,
1205
- __spreadValues$c({
1209
+ __spreadValues$d({
1206
1210
  label: "Family name",
1207
1211
  placeholder: "Family name"
1208
1212
  }, form.getInputProps("familyName"))
@@ -1259,19 +1263,19 @@ function Table$b(props) {
1259
1263
  )));
1260
1264
  }
1261
1265
 
1262
- var __defProp$b = Object.defineProperty;
1263
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1264
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1265
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1266
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1267
- 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) => {
1268
1272
  for (var prop in b || (b = {}))
1269
- if (__hasOwnProp$b.call(b, prop))
1270
- __defNormalProp$b(a, prop, b[prop]);
1271
- if (__getOwnPropSymbols$b)
1272
- for (var prop of __getOwnPropSymbols$b(b)) {
1273
- if (__propIsEnum$b.call(b, prop))
1274
- __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]);
1275
1279
  }
1276
1280
  return a;
1277
1281
  };
@@ -1305,14 +1309,14 @@ const Classes = (props) => {
1305
1309
  props.onCreateClass && props.onCreateClass(values);
1306
1310
  }) }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement(
1307
1311
  TextInput,
1308
- __spreadValues$b({
1312
+ __spreadValues$c({
1309
1313
  withAsterisk: true,
1310
1314
  label: "Name",
1311
1315
  placeholder: "Class name"
1312
1316
  }, form.getInputProps("name"))
1313
1317
  ), /* @__PURE__ */ React.createElement(
1314
1318
  TextInput,
1315
- __spreadValues$b({
1319
+ __spreadValues$c({
1316
1320
  label: "Description",
1317
1321
  placeholder: "A class for my first period English students"
1318
1322
  }, form.getInputProps("description"))
@@ -1616,29 +1620,29 @@ function Stack$3(props) {
1616
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."))));
1617
1621
  }
1618
1622
 
1619
- var __defProp$a = Object.defineProperty;
1620
- var __defProps$8 = Object.defineProperties;
1621
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
1622
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1623
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1624
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1625
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1626
- 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) => {
1627
1631
  for (var prop in b || (b = {}))
1628
- if (__hasOwnProp$a.call(b, prop))
1629
- __defNormalProp$a(a, prop, b[prop]);
1630
- if (__getOwnPropSymbols$a)
1631
- for (var prop of __getOwnPropSymbols$a(b)) {
1632
- if (__propIsEnum$a.call(b, prop))
1633
- __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]);
1634
1638
  }
1635
1639
  return a;
1636
1640
  };
1637
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
1641
+ var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
1638
1642
  function Table$6(props) {
1639
1643
  const [expanded, setExpanded] = React.useState({});
1640
1644
  const preparedItems = React.useMemo(() => {
1641
- return props.items.map((item) => __spreadProps$8(__spreadValues$a({}, item), {
1645
+ return props.items.map((item) => __spreadProps$9(__spreadValues$b({}, item), {
1642
1646
  status: item.isComplete ? 2 : item.isStarted ? 1 : 0
1643
1647
  }));
1644
1648
  }, [props.items]);
@@ -1662,7 +1666,7 @@ function Table$6(props) {
1662
1666
  return /* @__PURE__ */ React.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React.createElement(
1663
1667
  "div",
1664
1668
  {
1665
- onClick: () => setExpanded(__spreadProps$8(__spreadValues$a({}, expanded), { [row.userId]: !isOpen })),
1669
+ onClick: () => setExpanded(__spreadProps$9(__spreadValues$b({}, expanded), { [row.userId]: !isOpen })),
1666
1670
  className: "flex cursor-pointer items-center gap-4 p-4"
1667
1671
  },
1668
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))),
@@ -1963,25 +1967,25 @@ function Table$4(props) {
1963
1967
  }));
1964
1968
  }
1965
1969
 
1966
- var __defProp$9 = Object.defineProperty;
1967
- var __defProps$7 = Object.defineProperties;
1968
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
1969
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
1970
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
1971
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
1972
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1973
- 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) => {
1974
1978
  for (var prop in b || (b = {}))
1975
- if (__hasOwnProp$9.call(b, prop))
1976
- __defNormalProp$9(a, prop, b[prop]);
1977
- if (__getOwnPropSymbols$9)
1978
- for (var prop of __getOwnPropSymbols$9(b)) {
1979
- if (__propIsEnum$9.call(b, prop))
1980
- __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]);
1981
1985
  }
1982
1986
  return a;
1983
1987
  };
1984
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
1988
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
1985
1989
  const People = (props) => {
1986
1990
  const form = useForm({
1987
1991
  initialValues: {
@@ -2013,27 +2017,27 @@ const People = (props) => {
2013
2017
  padding: "xl",
2014
2018
  size: "xl"
2015
2019
  },
2016
- /* @__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(() => {
2017
2021
  const values = form.values;
2018
2022
  form.reset();
2019
2023
  setOpened(false);
2020
2024
  props.onCreateUsers && props.onCreateUsers([values]);
2021
2025
  }) }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement(
2022
2026
  TextInput,
2023
- __spreadValues$9({
2027
+ __spreadValues$a({
2024
2028
  withAsterisk: true,
2025
2029
  label: "Email",
2026
2030
  placeholder: "Email"
2027
2031
  }, form.getInputProps("email"))
2028
2032
  ), /* @__PURE__ */ React.createElement(Group, { grow: true }, /* @__PURE__ */ React.createElement(
2029
2033
  TextInput,
2030
- __spreadValues$9({
2034
+ __spreadValues$a({
2031
2035
  label: "Given name",
2032
2036
  placeholder: "Given name"
2033
2037
  }, form.getInputProps("givenName"))
2034
2038
  ), /* @__PURE__ */ React.createElement(
2035
2039
  TextInput,
2036
- __spreadValues$9({
2040
+ __spreadValues$a({
2037
2041
  label: "Family name",
2038
2042
  placeholder: "Family name"
2039
2043
  }, form.getInputProps("familyName"))
@@ -2219,24 +2223,24 @@ const StartAnonymousLesson = (props) => {
2219
2223
  ))))));
2220
2224
  };
2221
2225
 
2222
- var __defProp$8 = Object.defineProperty;
2223
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
2224
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
2225
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
2226
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2227
- 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) => {
2228
2232
  for (var prop in b || (b = {}))
2229
- if (__hasOwnProp$8.call(b, prop))
2230
- __defNormalProp$8(a, prop, b[prop]);
2231
- if (__getOwnPropSymbols$8)
2232
- for (var prop of __getOwnPropSymbols$8(b)) {
2233
- if (__propIsEnum$8.call(b, prop))
2234
- __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]);
2235
2239
  }
2236
2240
  return a;
2237
2241
  };
2238
2242
  const BadgeGrid = (props) => {
2239
- 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)));
2240
2244
  return /* @__PURE__ */ React.createElement(SimpleGrid, { cols: 4, breakpoints: [{ maxWidth: "sm", cols: 1 }, { maxWidth: "md", cols: 3 }] }, badges);
2241
2245
  };
2242
2246
  function TaskCard(props) {
@@ -2270,30 +2274,30 @@ const UserInfo = (props) => {
2270
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));
2271
2275
  };
2272
2276
 
2273
- var __defProp$7 = Object.defineProperty;
2274
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2275
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2276
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2277
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2278
- 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) => {
2279
2283
  for (var prop in b || (b = {}))
2280
- if (__hasOwnProp$7.call(b, prop))
2281
- __defNormalProp$7(a, prop, b[prop]);
2282
- if (__getOwnPropSymbols$7)
2283
- for (var prop of __getOwnPropSymbols$7(b)) {
2284
- if (__propIsEnum$7.call(b, prop))
2285
- __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]);
2286
2290
  }
2287
2291
  return a;
2288
2292
  };
2289
2293
  var __objRest$1 = (source, exclude) => {
2290
2294
  var target = {};
2291
2295
  for (var prop in source)
2292
- if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
2296
+ if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
2293
2297
  target[prop] = source[prop];
2294
- if (source != null && __getOwnPropSymbols$7)
2295
- for (var prop of __getOwnPropSymbols$7(source)) {
2296
- 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))
2297
2301
  target[prop] = source[prop];
2298
2302
  }
2299
2303
  return target;
@@ -2360,9 +2364,9 @@ const TenantBanner = (_a) => {
2360
2364
  };
2361
2365
  return /* @__PURE__ */ React.createElement(
2362
2366
  Card,
2363
- __spreadValues$7({
2367
+ __spreadValues$8({
2364
2368
  radius: "md",
2365
- style: __spreadValues$7({ backgroundImage: `url(${image})` }, style),
2369
+ style: __spreadValues$8({ backgroundImage: `url(${image})` }, style),
2366
2370
  className: cx(classes.card, className)
2367
2371
  }, others),
2368
2372
  /* @__PURE__ */ React.createElement(
@@ -2438,33 +2442,33 @@ const TrialHome = (props) => {
2438
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 })));
2439
2443
  };
2440
2444
 
2441
- var __defProp$6 = Object.defineProperty;
2442
- var __defProps$6 = Object.defineProperties;
2443
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
2444
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2445
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2446
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2447
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2448
- 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) => {
2449
2453
  for (var prop in b || (b = {}))
2450
- if (__hasOwnProp$6.call(b, prop))
2451
- __defNormalProp$6(a, prop, b[prop]);
2452
- if (__getOwnPropSymbols$6)
2453
- for (var prop of __getOwnPropSymbols$6(b)) {
2454
- if (__propIsEnum$6.call(b, prop))
2455
- __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]);
2456
2460
  }
2457
2461
  return a;
2458
2462
  };
2459
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2463
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
2460
2464
  var __objRest = (source, exclude) => {
2461
2465
  var target = {};
2462
2466
  for (var prop in source)
2463
- if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
2467
+ if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
2464
2468
  target[prop] = source[prop];
2465
- if (source != null && __getOwnPropSymbols$6)
2466
- for (var prop of __getOwnPropSymbols$6(source)) {
2467
- 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))
2468
2472
  target[prop] = source[prop];
2469
2473
  }
2470
2474
  return target;
@@ -2514,7 +2518,7 @@ function ImageCheckbox(_a) {
2514
2518
  const { classes, cx } = useStyles$2({ checked: value });
2515
2519
  return /* @__PURE__ */ React.createElement(
2516
2520
  UnstyledButton,
2517
- __spreadProps$6(__spreadValues$6({}, others), {
2521
+ __spreadProps$7(__spreadValues$7({}, others), {
2518
2522
  onClick: () => handleChange(!value),
2519
2523
  className: cx(classes.button, className)
2520
2524
  }),
@@ -2535,7 +2539,7 @@ function ImageCheckbox(_a) {
2535
2539
  function SelectGrid(props) {
2536
2540
  const items = props.items.map((item) => /* @__PURE__ */ React.createElement(
2537
2541
  ImageCheckbox,
2538
- __spreadProps$6(__spreadValues$6({}, item), {
2542
+ __spreadProps$7(__spreadValues$7({}, item), {
2539
2543
  key: item.title,
2540
2544
  onChange: (checked) => props.onChange(item.title, checked)
2541
2545
  })
@@ -2553,25 +2557,25 @@ function SelectGrid(props) {
2553
2557
  );
2554
2558
  }
2555
2559
 
2556
- var __defProp$5 = Object.defineProperty;
2557
- var __defProps$5 = Object.defineProperties;
2558
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2559
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2560
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2561
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2562
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2563
- 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) => {
2564
2568
  for (var prop in b || (b = {}))
2565
- if (__hasOwnProp$5.call(b, prop))
2566
- __defNormalProp$5(a, prop, b[prop]);
2567
- if (__getOwnPropSymbols$5)
2568
- for (var prop of __getOwnPropSymbols$5(b)) {
2569
- if (__propIsEnum$5.call(b, prop))
2570
- __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]);
2571
2575
  }
2572
2576
  return a;
2573
2577
  };
2574
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2578
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2575
2579
  const useStyles$1 = createStyles((theme) => ({
2576
2580
  wrapper: {
2577
2581
  minHeight: "100%",
@@ -2681,7 +2685,7 @@ const TrialRegistration = (props) => {
2681
2685
  label: "School/Organization Name",
2682
2686
  placeholder: "What's the name of your school?",
2683
2687
  data: props.organizations.map((o) => {
2684
- return __spreadProps$5(__spreadValues$5({}, o), { value: o.displayName });
2688
+ return __spreadProps$6(__spreadValues$6({}, o), { value: o.displayName });
2685
2689
  }),
2686
2690
  onItemSubmit: (item) => setOrganization({ organizationId: item.organizationId, displayName: item.displayName }),
2687
2691
  onChange: (next) => {
@@ -2693,7 +2697,7 @@ const TrialRegistration = (props) => {
2693
2697
  SelectGrid,
2694
2698
  {
2695
2699
  items: OPTIONS,
2696
- onChange: (e, checked) => setInterests(__spreadProps$5(__spreadValues$5({}, interests), { [e]: checked }))
2700
+ onChange: (e, checked) => setInterests(__spreadProps$6(__spreadValues$6({}, interests), { [e]: checked }))
2697
2701
  }
2698
2702
  ), /* @__PURE__ */ React.createElement(Group, { position: "right", mt: "md" }, /* @__PURE__ */ React.createElement(
2699
2703
  Button,
@@ -2731,25 +2735,25 @@ const AdminProvider = (props) => {
2731
2735
  );
2732
2736
  };
2733
2737
 
2734
- var __defProp$4 = Object.defineProperty;
2735
- var __defProps$4 = Object.defineProperties;
2736
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
2737
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2738
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2739
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2740
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2741
- 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) => {
2742
2746
  for (var prop in b || (b = {}))
2743
- if (__hasOwnProp$4.call(b, prop))
2744
- __defNormalProp$4(a, prop, b[prop]);
2745
- if (__getOwnPropSymbols$4)
2746
- for (var prop of __getOwnPropSymbols$4(b)) {
2747
- if (__propIsEnum$4.call(b, prop))
2748
- __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]);
2749
2753
  }
2750
2754
  return a;
2751
2755
  };
2752
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
2756
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2753
2757
  const useStyles = createStyles((theme, props) => ({
2754
2758
  footer: {
2755
2759
  paddingTop: theme.spacing.md,
@@ -2845,7 +2849,7 @@ const App = (props) => {
2845
2849
  padding: "xs",
2846
2850
  navbar: props.navbar && /* @__PURE__ */ React.createElement(
2847
2851
  Navbar,
2848
- __spreadProps$4(__spreadValues$4({}, props.navbar.props), {
2852
+ __spreadProps$5(__spreadValues$5({}, props.navbar.props), {
2849
2853
  onSwitchAccounts: account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : void 0
2850
2854
  })
2851
2855
  ),
@@ -2996,30 +3000,30 @@ function Stack$1(props) {
2996
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"))));
2997
3001
  }
2998
3002
 
2999
- var __defProp$3 = Object.defineProperty;
3000
- var __defProps$3 = Object.defineProperties;
3001
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
3002
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3003
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3004
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3005
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3006
- 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) => {
3007
3011
  for (var prop in b || (b = {}))
3008
- if (__hasOwnProp$3.call(b, prop))
3009
- __defNormalProp$3(a, prop, b[prop]);
3010
- if (__getOwnPropSymbols$3)
3011
- for (var prop of __getOwnPropSymbols$3(b)) {
3012
- if (__propIsEnum$3.call(b, prop))
3013
- __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]);
3014
3018
  }
3015
3019
  return a;
3016
3020
  };
3017
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
3021
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
3018
3022
  function Table$2(props) {
3019
3023
  const [expanded, setExpanded] = React.useState({});
3020
3024
  const categories = props.categories || [];
3021
3025
  const preparedItems = React.useMemo(() => {
3022
- 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));
3023
3027
  }, [props.items]);
3024
3028
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
3025
3029
  if (props.loading && props.items.length === 0) {
@@ -3041,7 +3045,7 @@ function Table$2(props) {
3041
3045
  return /* @__PURE__ */ React.createElement("div", { key: row.userId, className: "rounded-xl border border-slate-200 bg-white shadow-sm" }, /* @__PURE__ */ React.createElement(
3042
3046
  "div",
3043
3047
  {
3044
- onClick: () => setExpanded(__spreadProps$3(__spreadValues$3({}, expanded), { [row.userId]: !isOpen })),
3048
+ onClick: () => setExpanded(__spreadProps$4(__spreadValues$4({}, expanded), { [row.userId]: !isOpen })),
3045
3049
  className: "flex cursor-pointer items-center gap-4 p-4"
3046
3050
  },
3047
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))),
@@ -3056,8 +3060,8 @@ function Table$2(props) {
3056
3060
  }
3057
3061
 
3058
3062
  function Table$1(props) {
3059
- const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
3060
- if (props.items.length === 0) {
3063
+ const { items: sortedBadges, requestSort, sortConfig } = useSortableData(props.badges);
3064
+ if (props.badges.length === 0) {
3061
3065
  return /* @__PURE__ */ React.createElement(
3062
3066
  PlaceholderBanner,
3063
3067
  {
@@ -3069,30 +3073,116 @@ function Table$1(props) {
3069
3073
  );
3070
3074
  }
3071
3075
  const indicator = (key) => sortConfig.key !== key ? "" : sortConfig.direction === "desc" ? " \u25BE" : " \u25B4";
3072
- 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(
3073
- Link,
3074
- {
3075
- key: row.badgeId,
3076
- to: row.href,
3077
- className: "flex items-center gap-4 rounded-xl border border-slate-200 bg-white p-4 no-underline shadow-sm hover:bg-slate-50"
3078
- },
3079
- /* @__PURE__ */ React.createElement("div", { className: "min-w-0 flex-1 text-sm font-bold text-dark-blue-400" }, row.badgeName),
3080
- /* @__PURE__ */ React.createElement("div", { className: "w-36 shrink-0 text-right text-xs text-slate-500" }, Math.round((row.percentageCompletion + Number.EPSILON) * 100), "%")
3081
- )));
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 }));
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;
3082
3148
  }
3083
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
+ };
3160
+
3084
3161
  const TABS$1 = [
3085
3162
  { label: "By Badge", value: "badges" },
3086
3163
  { label: "By student", value: "students" }
3087
3164
  ];
3088
3165
  const Pathway = (props) => {
3089
- var _a;
3166
+ var _a, _b, _c;
3090
3167
  const [tab, setTab] = useState("badges");
3168
+ const [categoriesOpen, setCategoriesOpen] = useState(false);
3091
3169
  const numberOfStudents = props.students.length;
3092
3170
  const numberOfBadgesEarned = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
3093
3171
  const criteria = props.criteria || {};
3094
3172
  const criteriaCategories = (props.categories || []).filter((c) => criteria[c.categoryId] !== void 0);
3095
- 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(
3096
3186
  SplitButton$1,
3097
3187
  {
3098
3188
  href: props.href,
@@ -3121,7 +3211,15 @@ const Pathway = (props) => {
3121
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"}`
3122
3212
  },
3123
3213
  t.label
3124
- ))), (!!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
+ ));
3125
3223
  };
3126
3224
 
3127
3225
  const SplitButton = (props) => {