@local-civics/mgmt-ui 0.1.258 → 0.1.262
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +20 -1
- package/dist/index.js +121 -52
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +121 -52
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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: }.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\\!relative{position:relative!important}.left-3{left:.75rem}.top-1\\/2{top:50%}.left-3\\.5{left:.875rem}.bottom-\\[-20px\\]{bottom:-20px}.left-1\\/2{left:50%}.m-3{margin:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1{margin-top:.25rem}.mb-2{margin-bottom:.5rem}.mt-1\\.5{margin-top:.375rem}.-ml-2{margin-left:-.5rem}.mt-4{margin-top:1rem}.mt-3{margin-top:.75rem}.mb-8{margin-bottom:2rem}.mt-2\\.5{margin-top:.625rem}.mb-1{margin-bottom:.25rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-full{height:100%}.h-3{height:.75rem}.h-8{height:2rem}.h-7{height:1.75rem}.h-5{height:1.25rem}.h-9{height:2.25rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-14{height:3.5rem}.h-16{height:4rem}.h-28{height:7rem}.h-\\[30px\\]{height:30px}.h-\\[400px\\]{height:400px}.max-h-\\[70vh\\]{max-height:70vh}.w-10{width:2.5rem}.w-full{width:100%}.w-fit{width:-moz-fit-content;width:fit-content}.w-36{width:9rem}.w-8{width:2rem}.w-28{width:7rem}.w-4{width:1rem}.w-\\[296px\\]{width:296px}.w-40{width:10rem}.w-24{width:6rem}.w-56{width:14rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-5{width:1.25rem}.w-16{width:4rem}.w-9{width:2.25rem}.w-12{width:3rem}.w-\\[440px\\]{width:440px}.w-20{width:5rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-\\[500px\\]{width:500px}.w-14{width:3.5rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-\\[220px\\]{min-width:220px}.max-w-xs{max-width:20rem}.max-w-xl{max-width:36rem}.max-w-\\[460px\\]{max-width:460px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-x-1\\/2,.-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\\/2{--tw-translate-x:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1\\.2fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_1fr_0\\.6fr\\]{grid-template-columns:1.5fr 2fr 1fr .6fr}.grid-cols-\\[1\\.2fr_1fr_1\\.8fr_1fr_0\\.8fr_0\\.8fr\\]{grid-template-columns:1.2fr 1fr 1.8fr 1fr .8fr .8fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.grid-cols-\\[2\\.2fr_1fr\\]{grid-template-columns:2.2fr 1fr}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-3{gap:.75rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-1\\.5{gap:.375rem}.gap-2\\.5{gap:.625rem}.gap-3\\.5{gap:.875rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-y-4{row-gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.-space-y-\\[3px\\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(-3px*var(--tw-space-y-reverse));margin-top:calc(-3px*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-3xl{border-radius:1.5rem}.rounded-\\[8px\\]{border-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-sky-blue-400\\/30{border-color:rgba(59,208,242,.3)}.border-mint-400\\/30{border-color:rgba(30,226,175,.3)}.border-gold-400\\/30{border-color:rgba(255,212,77,.3)}.border-transparent{border-color:transparent}.border-l-sky-blue-400{--tw-border-opacity:1;border-left-color:rgb(59 208 242/var(--tw-border-opacity))}.border-l-mint-400{--tw-border-opacity:1;border-left-color:rgb(30 226 175/var(--tw-border-opacity))}.border-l-gold-400{--tw-border-opacity:1;border-left-color:rgb(255 212 77/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-sky-blue-400\\/20{background-color:rgba(59,208,242,.2)}.bg-mint-100{--tw-bg-opacity:1;background-color:rgb(208 251 240/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-gold-100{--tw-bg-opacity:1;background-color:rgb(255 248 214/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-slate-50\\/60{background-color:rgba(248,250,252,.6)}.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\\/10{background-color:rgba(59,208,242,.1)}.bg-white\\/90{background-color:hsla(0,0%,100%,.9)}.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-white\\/20{background-color:hsla(0,0%,100%,.2)}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-gold-400\\/25{background-color:rgba(255,212,77,.25)}.bg-gold-400{--tw-bg-opacity:1;background-color:rgb(255 212 77/var(--tw-bg-opacity))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-blue-400{--tw-gradient-from:#3bd0f2;--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-mint-400{--tw-gradient-from:#1ee2af;--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gold-400{--tw-gradient-from:#ffd44d;--tw-gradient-to:rgba(255,212,77,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-dark-blue-600{--tw-gradient-from:#0a0f2e;--tw-gradient-to:rgba(10,15,46,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-blue-400\\/15{--tw-gradient-from:rgba(59,208,242,.15);--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-dark-blue-400{--tw-gradient-to:rgba(35,42,58,0);--tw-gradient-stops:var(--tw-gradient-from),#232a3a,var(--tw-gradient-to)}.to-dark-blue-400{--tw-gradient-to:#232a3a}.to-\\[\\#f5c300\\]{--tw-gradient-to:#f5c300}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-mint-400\\/15{--tw-gradient-to:rgba(30,226,175,.15)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.p-3\\.5{padding:.875rem}.p-2\\.5{padding:.625rem}.p-2{padding:.5rem}.px-\\[22px\\]{padding-left:22px;padding-right:22px}.py-\\[18px\\]{padding-bottom:18px;padding-top:18px}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.py-4{padding-bottom:1rem;padding-top:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pl-9{padding-left:2.25rem}.pr-4{padding-right:1rem}.pl-10{padding-left:2.5rem}.pb-2{padding-bottom:.5rem}.pr-1{padding-right:.25rem}.pl-4{padding-left:1rem}.pt-0\\.5{padding-top:.125rem}.pt-0{padding-top:0}.pb-12{padding-bottom:3rem}.pl-2\\.5{padding-left:.625rem}.pl-2{padding-left:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-proxima{font-family:ProximaNova}.text-\\[15\\.5px\\]{font-size:15.5px}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[11px\\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-mint-400{--tw-text-opacity:1;color:rgb(30 226 175/var(--tw-text-opacity))}.text-gold-400{--tw-text-opacity:1;color:rgb(255 212 77/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\],.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\]{--tw-shadow:0 3px 12px rgba(255,212,77,.35);--tw-shadow-colored:0 3px 12px var(--tw-shadow-color)}.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{--tw-shadow:0 2px 10px rgba(30,226,175,.15);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.line-clamp-2{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}*,:after,:before{border-style:solid;border-width:0}button{background-color:transparent;background-image:none;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-transform:none}.placeholder\\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.placeholder\\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.first\\:ml-0:first-child{margin-left:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.hover\\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\\:bg-sky-blue-400\\/20:hover{background-color:rgba(59,208,242,.2)}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\\:bg-mint-400\\/25:hover{background-color:rgba(30,226,175,.25)}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\\:text-sky-blue-400:hover{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.hover\\:text-dark-blue-400:hover{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.hover\\:text-slate-500:hover{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-sky-blue-400:focus{--tw-border-opacity:1;border-color:rgb(59 208 242/var(--tw-border-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:from-slate-200:disabled{--tw-gradient-from:#e2e8f0;--tw-gradient-to:rgba(226,232,240,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.disabled\\:to-slate-200:disabled{--tw-gradient-to:#e2e8f0}.disabled\\:text-slate-400:disabled{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:shadow-none:disabled{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\\:underline{text-decoration-line:underline}@media (min-width:640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}";
|
|
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: }.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\\!relative{position:relative!important}.left-3{left:.75rem}.top-1\\/2{top:50%}.left-3\\.5{left:.875rem}.bottom-\\[-20px\\]{bottom:-20px}.left-1\\/2{left:50%}.m-3{margin:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.mt-1{margin-top:.25rem}.mb-2{margin-bottom:.5rem}.mt-1\\.5{margin-top:.375rem}.-ml-2{margin-left:-.5rem}.mt-4{margin-top:1rem}.mt-3{margin-top:.75rem}.mb-8{margin-bottom:2rem}.mt-2\\.5{margin-top:.625rem}.mb-1{margin-bottom:.25rem}.ml-\\[29px\\]{margin-left:29px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-full{height:100%}.h-3{height:.75rem}.h-8{height:2rem}.h-7{height:1.75rem}.h-5{height:1.25rem}.h-9{height:2.25rem}.h-12{height:3rem}.h-\\[300px\\]{height:300px}.h-screen{height:100vh}.h-14{height:3.5rem}.h-16{height:4rem}.h-28{height:7rem}.h-\\[30px\\]{height:30px}.h-\\[400px\\]{height:400px}.max-h-\\[70vh\\]{max-height:70vh}.w-10{width:2.5rem}.w-full{width:100%}.w-fit{width:-moz-fit-content;width:fit-content}.w-36{width:9rem}.w-8{width:2rem}.w-28{width:7rem}.w-4{width:1rem}.w-\\[296px\\]{width:296px}.w-40{width:10rem}.w-24{width:6rem}.w-56{width:14rem}.w-7{width:1.75rem}.w-64{width:16rem}.w-5{width:1.25rem}.w-16{width:4rem}.w-9{width:2.25rem}.w-12{width:3rem}.w-20{width:5rem}.w-\\[250px\\]{width:250px}.w-screen{width:100vw}.w-\\[500px\\]{width:500px}.w-14{width:3.5rem}.w-\\[230px\\]{width:230px}.w-\\[30px\\]{width:30px}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-\\[220px\\]{min-width:220px}.max-w-xs{max-width:20rem}.max-w-xl{max-width:36rem}.max-w-\\[460px\\]{max-width:460px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-x-1\\/2,.-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\\/2{--tw-translate-x:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1\\.2fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr 1fr .6fr}.grid-cols-\\[1\\.5fr_2fr_1fr_0\\.6fr\\]{grid-template-columns:1.5fr 2fr 1fr .6fr}.grid-cols-\\[1\\.2fr_1fr_1\\.8fr_1fr_0\\.8fr_0\\.8fr\\]{grid-template-columns:1.2fr 1fr 1.8fr 1fr .8fr .8fr}.grid-cols-\\[2\\.2fr_1\\.2fr_1fr_1fr_0\\.6fr\\]{grid-template-columns:2.2fr 1.2fr 1fr 1fr .6fr}.grid-cols-\\[2\\.2fr_1fr\\]{grid-template-columns:2.2fr 1fr}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-\\[18px\\]{gap:18px}.gap-5{gap:1.25rem}.gap-3{gap:.75rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-1\\.5{gap:.375rem}.gap-2\\.5{gap:.625rem}.gap-3\\.5{gap:.875rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-y-4{row-gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.-space-y-\\[3px\\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(-3px*var(--tw-space-y-reverse));margin-top:calc(-3px*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-3xl{border-radius:1.5rem}.rounded-\\[8px\\]{border-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-l{border-left-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-sky-blue-400\\/40{border-color:rgba(59,208,242,.4)}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-sky-blue-400\\/30{border-color:rgba(59,208,242,.3)}.border-mint-400\\/30{border-color:rgba(30,226,175,.3)}.border-gold-400\\/30{border-color:rgba(255,212,77,.3)}.border-transparent{border-color:transparent}.border-l-sky-blue-400{--tw-border-opacity:1;border-left-color:rgb(59 208 242/var(--tw-border-opacity))}.border-l-mint-400{--tw-border-opacity:1;border-left-color:rgb(30 226 175/var(--tw-border-opacity))}.border-l-gold-400{--tw-border-opacity:1;border-left-color:rgb(255 212 77/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-sky-blue-400\\/20{background-color:rgba(59,208,242,.2)}.bg-mint-100{--tw-bg-opacity:1;background-color:rgb(208 251 240/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-gold-100{--tw-bg-opacity:1;background-color:rgb(255 248 214/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-slate-50\\/60{background-color:rgba(248,250,252,.6)}.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\\/10{background-color:rgba(59,208,242,.1)}.bg-white\\/90{background-color:hsla(0,0%,100%,.9)}.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-white\\/20{background-color:hsla(0,0%,100%,.2)}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-gold-400\\/25{background-color:rgba(255,212,77,.25)}.bg-gold-400{--tw-bg-opacity:1;background-color:rgb(255 212 77/var(--tw-bg-opacity))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-sky-blue-400{--tw-gradient-from:#3bd0f2;--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-mint-400{--tw-gradient-from:#1ee2af;--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gold-400{--tw-gradient-from:#ffd44d;--tw-gradient-to:rgba(255,212,77,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-dark-blue-600{--tw-gradient-from:#0a0f2e;--tw-gradient-to:rgba(10,15,46,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-sky-blue-400\\/15{--tw-gradient-from:rgba(59,208,242,.15);--tw-gradient-to:rgba(59,208,242,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-dark-blue-400{--tw-gradient-to:rgba(35,42,58,0);--tw-gradient-stops:var(--tw-gradient-from),#232a3a,var(--tw-gradient-to)}.to-dark-blue-400{--tw-gradient-to:#232a3a}.to-\\[\\#f5c300\\]{--tw-gradient-to:#f5c300}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-mint-400\\/15{--tw-gradient-to:rgba(30,226,175,.15)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.p-3\\.5{padding:.875rem}.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}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.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}.align-middle{vertical-align:middle}.font-proxima{font-family:ProximaNova}.text-\\[15\\.5px\\]{font-size:15.5px}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[10px\\]{font-size:10px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[11px\\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[28px\\]{font-size:28px}.text-\\[12\\.5px\\]{font-size:12.5px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-mint-400{--tw-text-opacity:1;color:rgb(30 226 175/var(--tw-text-opacity))}.text-gold-400{--tw-text-opacity:1;color:rgb(255 212 77/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.text-white\\/70{color:hsla(0,0%,100%,.7)}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\],.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_3px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.35\\)\\]{--tw-shadow:0 3px 12px rgba(255,212,77,.35);--tw-shadow-colored:0 3px 12px var(--tw-shadow-color)}.shadow-\\[0_2px_10px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.15\\)\\]{--tw-shadow:0 2px 10px rgba(30,226,175,.15);--tw-shadow-colored:0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.line-clamp-2{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;overflow:hidden}*,:after,:before{border-style:solid;border-width:0}button{background-color:transparent;background-image:none;color:inherit;cursor:pointer;font:inherit;margin:0;padding:0;text-transform:none}.placeholder\\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.placeholder\\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.first\\:ml-0:first-child{margin-left:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.hover\\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.hover\\:bg-sky-blue-400\\/20:hover{background-color:rgba(59,208,242,.2)}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.hover\\:bg-mint-400\\/25:hover{background-color:rgba(30,226,175,.25)}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.hover\\:text-sky-blue-400:hover{--tw-text-opacity:1;color:rgb(59 208 242/var(--tw-text-opacity))}.hover\\:text-dark-blue-400:hover{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.hover\\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.hover\\:text-slate-500:hover{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-sky-blue-400:focus{--tw-border-opacity:1;border-color:rgb(59 208 242/var(--tw-border-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:from-slate-200:disabled{--tw-gradient-from:#e2e8f0;--tw-gradient-to:rgba(226,232,240,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.disabled\\:to-slate-200:disabled{--tw-gradient-to:#e2e8f0}.disabled\\:text-slate-400:disabled{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-40:disabled{opacity:.4}.disabled\\:shadow-none:disabled{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\\:underline{text-decoration-line:underline}@media (min-width:640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.lg\\:w-\\[440px\\]{width:440px}.lg\\:flex-row{flex-direction:row}.lg\\:items-stretch{align-items:stretch}}";
|
|
44
44
|
styleInject(css_248z);
|
|
45
45
|
|
|
46
46
|
function UserButton({ image, name, email }) {
|
|
@@ -105,15 +105,19 @@ function LinksGroup({ icon: Icon, href, label, accent = "cyan", initiallyOpened,
|
|
|
105
105
|
);
|
|
106
106
|
});
|
|
107
107
|
const rowInner = /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 items-center gap-2.5" }, /* @__PURE__ */ React.createElement("div", { className: `flex h-[30px] w-[30px] shrink-0 items-center justify-center rounded-lg ${isActive ? accentClasses.chip : "bg-slate-50"}` }, /* @__PURE__ */ React.createElement(Icon, { size: 14, stroke: isActive ? 2.2 : 1.75, className: isActive ? accentClasses.icon : "text-slate-400" })), /* @__PURE__ */ React.createElement("span", { className: `flex-1 text-xs ${isActive ? "font-bold text-dark-blue-400" : "font-medium text-slate-500"}` }, label));
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
const rowClassName = `flex items-center gap-2.5 rounded-[10px] border px-3.5 py-2.5 transition-colors ${isActive ? accentClasses.row : "border-transparent hover:bg-slate-50"}`;
|
|
109
|
+
const notificationPill = !!notifications && /* @__PURE__ */ React.createElement("span", { className: `rounded-full px-2 py-0.5 text-[10px] font-bold ${accentClasses.pill}` }, compact(notifications));
|
|
110
|
+
return /* @__PURE__ */ React.createElement("div", null, hasLinks ? /* @__PURE__ */ React.createElement(
|
|
111
|
+
"button",
|
|
110
112
|
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
type: "button",
|
|
114
|
+
"aria-expanded": opened,
|
|
115
|
+
onClick: () => setOpened((o) => !o),
|
|
116
|
+
className: `${rowClassName} w-full cursor-pointer text-left`
|
|
113
117
|
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
rowInner,
|
|
119
|
+
notificationPill,
|
|
120
|
+
/* @__PURE__ */ React.createElement(
|
|
117
121
|
IconChevronRight,
|
|
118
122
|
{
|
|
119
123
|
size: 13,
|
|
@@ -121,7 +125,7 @@ function LinksGroup({ icon: Icon, href, label, accent = "cyan", initiallyOpened,
|
|
|
121
125
|
className: `shrink-0 text-slate-300 transition-transform ${opened ? "rotate-90" : ""}`
|
|
122
126
|
}
|
|
123
127
|
)
|
|
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));
|
|
128
|
+
) : /* @__PURE__ */ React.createElement("div", { className: rowClassName }, /* @__PURE__ */ React.createElement(Link, { to: href, className: "flex flex-1 items-center gap-2.5 no-underline" }, rowInner), notificationPill), 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
129
|
}
|
|
126
130
|
|
|
127
131
|
var __defProp$i = Object.defineProperty;
|
|
@@ -380,7 +384,7 @@ const StudentStatusFilterBar = (props) => /* @__PURE__ */ React.createElement("d
|
|
|
380
384
|
}
|
|
381
385
|
)));
|
|
382
386
|
|
|
383
|
-
const NavLink = (props) => /* @__PURE__ */ React.createElement("
|
|
387
|
+
const NavLink = (props) => /* @__PURE__ */ React.createElement("button", { type: "button", onClick: props.onClick, 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 }), props.label);
|
|
384
388
|
const PageHeader = (props) => {
|
|
385
389
|
var _a, _b;
|
|
386
390
|
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-start justify-between gap-4" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-4" }, props.icon && /* @__PURE__ */ React.createElement(Emblem, { imageURL: props.imageURL, alt: props.title, size: "xl", icon: props.icon, accent: props.iconAccent || "cyan" }), /* @__PURE__ */ React.createElement("div", { className: "space-y-1.5" }, !!((_a = props.breadcrumb) == null ? void 0 : _a.length) && /* @__PURE__ */ React.createElement("nav", { className: "flex flex-wrap items-center gap-1 text-[11px] font-semibold text-slate-400" }, props.breadcrumb.map((seg, i) => /* @__PURE__ */ React.createElement(React.Fragment, { key: i }, i > 0 && /* @__PURE__ */ React.createElement("span", { className: "text-slate-300" }, "\u203A"), seg.onClick ? /* @__PURE__ */ React.createElement("button", { type: "button", onClick: seg.onClick, className: "hover:text-sky-blue-400 hover:underline" }, seg.label) : /* @__PURE__ */ React.createElement("span", { className: "text-slate-500" }, seg.label)))), props.onBackClick && /* @__PURE__ */ React.createElement(NavLink, { onClick: props.onBackClick, label: props.backLabel || "Back" }), props.onSecondaryClick && props.secondaryLabel && /* @__PURE__ */ React.createElement(NavLink, { onClick: props.onSecondaryClick, label: props.secondaryLabel }), /* @__PURE__ */ React.createElement("h1", { className: "text-2xl font-extrabold tracking-tight text-dark-blue-400" }, props.title || "Untitled"), !!((_b = props.tags) == null ? void 0 : _b.length) && /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap gap-1.5" }, props.tags.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"), props.children)), props.actions);
|
|
@@ -634,12 +638,47 @@ function Table$c(props) {
|
|
|
634
638
|
)));
|
|
635
639
|
}
|
|
636
640
|
|
|
637
|
-
const
|
|
638
|
-
|
|
639
|
-
|
|
641
|
+
const studentCount = (n) => `${n} student${n === 1 ? "" : "s"}`;
|
|
642
|
+
const classOptionLabels = (classes) => {
|
|
643
|
+
const key = (value) => (value || "").trim().toLowerCase();
|
|
644
|
+
const byName = {};
|
|
645
|
+
classes.forEach((c) => {
|
|
646
|
+
byName[key(c.name)] = [...byName[key(c.name)] || [], c];
|
|
647
|
+
});
|
|
648
|
+
const labels = {};
|
|
649
|
+
Object.values(byName).forEach((group) => {
|
|
650
|
+
if (group.length < 2) {
|
|
651
|
+
group.forEach((c) => labels[c.classId] = c.name);
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
const descriptions = group.map((c) => key(c.description));
|
|
655
|
+
group.forEach((c, i) => {
|
|
656
|
+
const description = (c.description || "").trim();
|
|
657
|
+
const distinct = !!description && key(description) !== key(c.name) && descriptions.filter((d) => d === descriptions[i]).length === 1;
|
|
658
|
+
if (distinct) {
|
|
659
|
+
labels[c.classId] = `${c.name} \u2014 ${description}`;
|
|
660
|
+
} else if (typeof c.numberOfStudents === "number") {
|
|
661
|
+
labels[c.classId] = `${c.name} (${studentCount(c.numberOfStudents)})`;
|
|
662
|
+
} else {
|
|
663
|
+
labels[c.classId] = c.name;
|
|
664
|
+
}
|
|
665
|
+
});
|
|
666
|
+
});
|
|
667
|
+
return labels;
|
|
668
|
+
};
|
|
669
|
+
|
|
670
|
+
const TABS$5 = [
|
|
671
|
+
{ label: "By student", value: "students" },
|
|
672
|
+
{ label: "By lesson", value: "lessons" }
|
|
640
673
|
];
|
|
641
674
|
const Badge = (props) => {
|
|
642
|
-
const
|
|
675
|
+
const classLabels = classOptionLabels(props.classes || []);
|
|
676
|
+
const [localTab, setLocalTab] = useState("students");
|
|
677
|
+
const tab = TABS$5.some((t) => t.value === props.tab) ? props.tab : localTab;
|
|
678
|
+
const setTab = (next) => {
|
|
679
|
+
setLocalTab(next);
|
|
680
|
+
props.onTabChange && props.onTabChange(next);
|
|
681
|
+
};
|
|
643
682
|
const [search, setSearch] = useState("");
|
|
644
683
|
const statusFilter = props.statusFilter || "all";
|
|
645
684
|
const activityLoading = !!props.activityLoading;
|
|
@@ -689,8 +728,8 @@ const Badge = (props) => {
|
|
|
689
728
|
className: "w-full appearance-none rounded-lg border border-slate-200 bg-white py-2 pl-9 pr-4 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
690
729
|
},
|
|
691
730
|
/* @__PURE__ */ React.createElement("option", { value: "" }, "All classes"),
|
|
692
|
-
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
693
|
-
)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, !props.trial && /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$
|
|
731
|
+
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, classLabels[c.classId] || c.name))
|
|
732
|
+
)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, !props.trial && /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$5.map((t) => /* @__PURE__ */ React.createElement(
|
|
694
733
|
"button",
|
|
695
734
|
{
|
|
696
735
|
key: t.value,
|
|
@@ -1266,21 +1305,21 @@ function Table$7(props) {
|
|
|
1266
1305
|
})));
|
|
1267
1306
|
}
|
|
1268
1307
|
|
|
1269
|
-
const TABS$
|
|
1270
|
-
{ label: "
|
|
1271
|
-
{ label: "
|
|
1308
|
+
const TABS$4 = [
|
|
1309
|
+
{ label: "Badges", value: "badges" },
|
|
1310
|
+
{ label: "Lessons", value: "lessons" }
|
|
1272
1311
|
];
|
|
1273
1312
|
const LESSON_STATUS_FILTERS = [
|
|
1274
|
-
{ label: "All", value: "all" },
|
|
1275
1313
|
{ label: "Has responses", value: "hasResponses" },
|
|
1276
|
-
{ label: "Submitted", value: "submitted" }
|
|
1314
|
+
{ label: "Submitted", value: "submitted" },
|
|
1315
|
+
{ label: "All", value: "all" }
|
|
1277
1316
|
];
|
|
1278
1317
|
const OTHER_FILTER$1 = "__other__";
|
|
1279
1318
|
const Student = (props) => {
|
|
1280
1319
|
var _a;
|
|
1281
1320
|
const [tab, setTab] = useState("badges");
|
|
1282
1321
|
const [pathwayFilter, setPathwayFilter] = useState("");
|
|
1283
|
-
const [lessonStatusFilter, setLessonStatusFilter] = useState("
|
|
1322
|
+
const [lessonStatusFilter, setLessonStatusFilter] = useState("hasResponses");
|
|
1284
1323
|
const numberOfBadgesCompleted = props.badges.length > 0 ? props.badges.filter((b) => b.isComplete).length : 0;
|
|
1285
1324
|
const numberOfLessonsCompleted = props.lessons.filter((l) => l.isComplete).length;
|
|
1286
1325
|
const activeItems = tab === "badges" ? props.badges : props.lessons;
|
|
@@ -1308,6 +1347,9 @@ const Student = (props) => {
|
|
|
1308
1347
|
return items.filter((item) => item.isComplete);
|
|
1309
1348
|
return items;
|
|
1310
1349
|
};
|
|
1350
|
+
const pathwayLessons = filterByPathway(props.lessons);
|
|
1351
|
+
const visibleLessons = filterByLessonStatus(pathwayLessons);
|
|
1352
|
+
const noResponsesYet = !props.loading && lessonStatusFilter === "hasResponses" && visibleLessons.length === 0 && pathwayLessons.length > 0;
|
|
1311
1353
|
const activePathwayName = pathwayFilter && pathwayFilter !== OTHER_FILTER$1 ? (_a = pathways.find((p) => p.pathwayId === pathwayFilter)) == null ? void 0 : _a.title : void 0;
|
|
1312
1354
|
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React.createElement(
|
|
1313
1355
|
PageHeader,
|
|
@@ -1320,7 +1362,7 @@ const Student = (props) => {
|
|
|
1320
1362
|
}
|
|
1321
1363
|
), /* @__PURE__ */ React.createElement(StatsGroup, { data: [
|
|
1322
1364
|
{
|
|
1323
|
-
title: "
|
|
1365
|
+
title: "QUESTIONS ANSWERED",
|
|
1324
1366
|
value: props.numberOfProblemsSolved
|
|
1325
1367
|
},
|
|
1326
1368
|
{
|
|
@@ -1331,7 +1373,7 @@ const Student = (props) => {
|
|
|
1331
1373
|
title: "BADGE COMPLETION",
|
|
1332
1374
|
value: numberOfBadgesCompleted
|
|
1333
1375
|
}
|
|
1334
|
-
] }), /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$
|
|
1376
|
+
] }), /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$4.map((t) => /* @__PURE__ */ React.createElement(
|
|
1335
1377
|
"button",
|
|
1336
1378
|
{
|
|
1337
1379
|
key: t.value,
|
|
@@ -1366,7 +1408,15 @@ const Student = (props) => {
|
|
|
1366
1408
|
"View ",
|
|
1367
1409
|
activePathwayName,
|
|
1368
1410
|
" Transcript \u2192"
|
|
1369
|
-
)), tab === "badges" && /* @__PURE__ */ React.createElement(Table$8, { loading: props.loading, items: filterByPathway(props.badges) }), tab === "lessons" && /* @__PURE__ */ React.createElement(
|
|
1411
|
+
)), tab === "badges" && /* @__PURE__ */ React.createElement(Table$8, { loading: props.loading, items: filterByPathway(props.badges) }), tab === "lessons" && (noResponsesYet ? /* @__PURE__ */ React.createElement("div", { className: "rounded-xl border border-slate-200 bg-white px-5 py-6 text-center text-sm text-slate-500" }, "No lesson responses yet.", " ", /* @__PURE__ */ React.createElement(
|
|
1412
|
+
"button",
|
|
1413
|
+
{
|
|
1414
|
+
type: "button",
|
|
1415
|
+
onClick: () => setLessonStatusFilter("all"),
|
|
1416
|
+
className: "font-bold text-dark-blue-400 hover:underline"
|
|
1417
|
+
},
|
|
1418
|
+
"Show all lessons"
|
|
1419
|
+
)) : /* @__PURE__ */ React.createElement(Table$7, { loading: props.loading, items: visibleLessons })));
|
|
1370
1420
|
};
|
|
1371
1421
|
|
|
1372
1422
|
const ACCENT_BORDER = {
|
|
@@ -1413,7 +1463,7 @@ const Home = (props) => {
|
|
|
1413
1463
|
});
|
|
1414
1464
|
}
|
|
1415
1465
|
};
|
|
1416
|
-
return /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-col gap-5" }, /* @__PURE__ */ React.createElement("div", { className: "flex
|
|
1466
|
+
return /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-col gap-5" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-5 lg:flex-row lg:items-stretch" }, /* @__PURE__ */ React.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React.createElement("div", { className: "text-[28px] font-extrabold text-dark-blue-400" }, props.name), /* @__PURE__ */ React.createElement("div", { className: "mt-1.5 text-[12.5px] text-slate-400" }, props.impactStatement)), /* @__PURE__ */ React.createElement("div", { className: "flex w-full shrink-0 flex-col justify-between gap-3 rounded-2xl lg:w-[440px] bg-gradient-to-br from-dark-blue-600 via-dark-blue-400 to-sky-blue-400 p-5" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "text-base font-extrabold text-white" }, props.organization.name), /* @__PURE__ */ React.createElement("div", { className: "mt-1.5 text-[11.5px] leading-relaxed text-white/70" }, props.organization.description)), accessCode && /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React.createElement("span", { className: "text-[11px] text-white/70" }, "Community code: ", accessCode), /* @__PURE__ */ React.createElement(
|
|
1417
1467
|
"button",
|
|
1418
1468
|
{
|
|
1419
1469
|
onClick: onCopyAccessCode,
|
|
@@ -1510,7 +1560,7 @@ const SplitButton$3 = (props) => {
|
|
|
1510
1560
|
function Stack$3(props) {
|
|
1511
1561
|
const hasAnswers = props.items.length > 0;
|
|
1512
1562
|
const hasReflection = !!props.reflection;
|
|
1513
|
-
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-4" }, hasAnswers ? 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(AnswerValue, { answer: row.answer, emptyText: "No answer.", className: "mt-1 text-sm text-slate-600" }))) : !hasReflection ? /* @__PURE__ */ React.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "No question responses recorded yet.") : null, hasReflection && /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Reflection"), !!props.rating && /* @__PURE__ */ React.createElement("div", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, props.rating)), /* @__PURE__ */ React.createElement("div", { className: "mt-1 text-sm text-slate-600" }, props.reflection)), /* @__PURE__ */ React.createElement(Link, { to: props.href, state: props.state, className: "w-fit text-xs font-bold text-dark-blue-400 no-underline hover:underline" }, "View full response \u2192"));
|
|
1563
|
+
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-4" }, hasAnswers ? 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(AnswerValue, { answer: row.answer, emptyText: "No answer.", className: "mt-1 text-sm text-slate-600" }))) : !hasReflection && !props.rating ? /* @__PURE__ */ React.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "No question responses recorded yet.") : null, hasReflection && /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Reflection"), !!props.rating && /* @__PURE__ */ React.createElement("div", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, props.rating)), /* @__PURE__ */ React.createElement("div", { className: "mt-1 text-sm text-slate-600" }, props.reflection)), !hasReflection && !!props.rating && /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Rating"), /* @__PURE__ */ React.createElement("div", { className: "shrink-0 rounded-full bg-gold-100 px-2.5 py-1 text-[10px] font-bold text-dark-blue-400" }, props.rating)), /* @__PURE__ */ React.createElement(Link, { to: props.href, state: props.state, className: "w-fit text-xs font-bold text-dark-blue-400 no-underline hover:underline" }, "View full response \u2192"));
|
|
1514
1564
|
}
|
|
1515
1565
|
|
|
1516
1566
|
var __defProp$d = Object.defineProperty;
|
|
@@ -1628,9 +1678,19 @@ function Stack$2(props) {
|
|
|
1628
1678
|
}
|
|
1629
1679
|
const truncateWithEllipses = (text, max) => text.substr(0, max - 1) + (text.length > max ? "…" : "");
|
|
1630
1680
|
|
|
1681
|
+
const TABS$3 = [
|
|
1682
|
+
{ label: "By student", value: "students" },
|
|
1683
|
+
{ label: "By question", value: "question" }
|
|
1684
|
+
];
|
|
1631
1685
|
const initialsFor = (name) => name.split(/[ -]/).map((n) => n.charAt(0)).join("").toUpperCase();
|
|
1632
1686
|
const Lesson = (props) => {
|
|
1633
|
-
const
|
|
1687
|
+
const classLabels = classOptionLabels(props.classes || []);
|
|
1688
|
+
const [localTab, setLocalTab] = useState("students");
|
|
1689
|
+
const tab = TABS$3.some((t) => t.value === props.tab) ? props.tab : localTab;
|
|
1690
|
+
const setTab = (next) => {
|
|
1691
|
+
setLocalTab(next);
|
|
1692
|
+
props.onTabChange && props.onTabChange(next);
|
|
1693
|
+
};
|
|
1634
1694
|
const [search, setSearch] = useState("");
|
|
1635
1695
|
const statusFilter = props.statusFilter || "all";
|
|
1636
1696
|
const numberOfStudents = props.students.length;
|
|
@@ -1643,10 +1703,6 @@ const Lesson = (props) => {
|
|
|
1643
1703
|
(s) => matchesStudentStatus(s, statusFilter) && (!searchLower || (s.name || "").toLowerCase().includes(searchLower))
|
|
1644
1704
|
);
|
|
1645
1705
|
const activityLoading = !!props.activityLoading;
|
|
1646
|
-
const tabs = [
|
|
1647
|
-
{ label: "By question", value: "question" },
|
|
1648
|
-
{ label: "By student", value: "students" }
|
|
1649
|
-
];
|
|
1650
1706
|
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-5 px-4 py-8" }, /* @__PURE__ */ React.createElement(
|
|
1651
1707
|
PageHeader,
|
|
1652
1708
|
{
|
|
@@ -1686,8 +1742,8 @@ const Lesson = (props) => {
|
|
|
1686
1742
|
className: "w-full appearance-none rounded-lg border border-slate-200 bg-white py-2 pl-9 pr-4 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
1687
1743
|
},
|
|
1688
1744
|
/* @__PURE__ */ React.createElement("option", { value: "" }, "All classes"),
|
|
1689
|
-
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
1690
|
-
)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" },
|
|
1745
|
+
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, classLabels[c.classId] || c.name))
|
|
1746
|
+
)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$3.map((t) => /* @__PURE__ */ React.createElement(
|
|
1691
1747
|
"button",
|
|
1692
1748
|
{
|
|
1693
1749
|
key: t.value,
|
|
@@ -1777,6 +1833,10 @@ const Organization = (props) => {
|
|
|
1777
1833
|
title: "# OF EDUCATORS",
|
|
1778
1834
|
value: props.numberOfEducators || 0
|
|
1779
1835
|
},
|
|
1836
|
+
...props.numberOfAdmins !== void 0 ? [{
|
|
1837
|
+
title: "# OF ADMINS",
|
|
1838
|
+
value: props.numberOfAdmins || 0
|
|
1839
|
+
}] : [],
|
|
1780
1840
|
{
|
|
1781
1841
|
title: "ACTIVE USERS (30 DAYS)",
|
|
1782
1842
|
value: props.percentageOfAccountsActive,
|
|
@@ -3154,12 +3214,18 @@ const CategoryNode = (props) => {
|
|
|
3154
3214
|
};
|
|
3155
3215
|
|
|
3156
3216
|
const TABS$2 = [
|
|
3157
|
-
{ label: "By
|
|
3158
|
-
{ label: "By
|
|
3217
|
+
{ label: "By student", value: "students" },
|
|
3218
|
+
{ label: "By Badge", value: "badges" }
|
|
3159
3219
|
];
|
|
3160
3220
|
const Pathway = (props) => {
|
|
3161
3221
|
var _a, _b, _c;
|
|
3162
|
-
const
|
|
3222
|
+
const classLabels = classOptionLabels(props.classes || []);
|
|
3223
|
+
const [localTab, setLocalTab] = useState("students");
|
|
3224
|
+
const tab = TABS$2.some((t) => t.value === props.tab) ? props.tab : localTab;
|
|
3225
|
+
const setTab = (next) => {
|
|
3226
|
+
setLocalTab(next);
|
|
3227
|
+
props.onTabChange && props.onTabChange(next);
|
|
3228
|
+
};
|
|
3163
3229
|
const [categoriesOpen, setCategoriesOpen] = useState(false);
|
|
3164
3230
|
const [selectedCategoryId, setSelectedCategoryId] = useState(void 0);
|
|
3165
3231
|
const numberOfStudents = props.students.length;
|
|
@@ -3227,7 +3293,7 @@ const Pathway = (props) => {
|
|
|
3227
3293
|
className: "w-full appearance-none rounded-lg border border-slate-200 bg-white py-2 pl-9 pr-4 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
3228
3294
|
},
|
|
3229
3295
|
/* @__PURE__ */ React.createElement("option", { value: "" }, "All classes"),
|
|
3230
|
-
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
3296
|
+
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, classLabels[c.classId] || c.name))
|
|
3231
3297
|
)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, !props.trial && /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$2.map((t) => /* @__PURE__ */ React.createElement(
|
|
3232
3298
|
"button",
|
|
3233
3299
|
{
|
|
@@ -3671,9 +3737,9 @@ const PathwayGroups = (props) => {
|
|
|
3671
3737
|
const ownNameMatches = !term || p.title.toLowerCase().includes(term);
|
|
3672
3738
|
const filtered = ownNameMatches ? base : base.filter((s) => matchesSearch(s, term));
|
|
3673
3739
|
return { pathway: p, filtered };
|
|
3674
|
-
}).filter((g) =>
|
|
3675
|
-
if (
|
|
3676
|
-
return /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, "No matching entries.");
|
|
3740
|
+
}).filter((g) => countFiles(g.filtered) > 0);
|
|
3741
|
+
if (groups.length === 0) {
|
|
3742
|
+
return /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, term ? "No matching entries." : "No files submitted yet.");
|
|
3677
3743
|
}
|
|
3678
3744
|
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, groups.map(({ pathway: p, filtered }) => /* @__PURE__ */ React.createElement(
|
|
3679
3745
|
GroupCard,
|
|
@@ -3707,10 +3773,10 @@ const BadgeGroups = (props) => {
|
|
|
3707
3773
|
const ownNameMatches = !term || b.displayName.toLowerCase().includes(term);
|
|
3708
3774
|
const filtered = ownNameMatches ? base : base.filter((s) => matchesSearch(s, term));
|
|
3709
3775
|
return { badge: b, filtered, name: b.displayName, fileCount: countFiles(filtered) };
|
|
3710
|
-
}).filter((g) =>
|
|
3776
|
+
}).filter((g) => countFiles(g.filtered) > 0);
|
|
3711
3777
|
const { items: sortedGroups, requestSort, sortConfig } = useSortableData(groups);
|
|
3712
|
-
if (
|
|
3713
|
-
return /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, "No matching entries.");
|
|
3778
|
+
if (groups.length === 0) {
|
|
3779
|
+
return /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, term ? "No matching entries." : "No files submitted yet.");
|
|
3714
3780
|
}
|
|
3715
3781
|
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-4 px-4" }, /* @__PURE__ */ React.createElement(SortableHeader, { label: "Badge", sortKey: "name", sortConfig, onSort: requestSort, className: "flex-1" }), /* @__PURE__ */ React.createElement(SortableHeader, { label: "Files", sortKey: "fileCount", sortConfig, onSort: requestSort, className: "w-16 shrink-0" })), sortedGroups.map(({ badge: b, filtered }) => {
|
|
3716
3782
|
const pathwayTitle = props.pathwayNameForBadge[b.badgeId];
|
|
@@ -3747,10 +3813,10 @@ const LessonGroups = (props) => {
|
|
|
3747
3813
|
const ownNameMatches = !term || l.lessonName.toLowerCase().includes(term);
|
|
3748
3814
|
const filtered = ownNameMatches ? base : base.filter((s) => matchesSearch(s, term));
|
|
3749
3815
|
return { lesson: l, filtered, name: l.lessonName, fileCount: countFiles(filtered) };
|
|
3750
|
-
}).filter((g) =>
|
|
3816
|
+
}).filter((g) => countFiles(g.filtered) > 0);
|
|
3751
3817
|
const { items: sortedGroups, requestSort, sortConfig } = useSortableData(groups);
|
|
3752
|
-
if (
|
|
3753
|
-
return /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, "No matching entries.");
|
|
3818
|
+
if (groups.length === 0) {
|
|
3819
|
+
return /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400" }, term ? "No matching entries." : "No files submitted yet.");
|
|
3754
3820
|
}
|
|
3755
3821
|
return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-4 px-4" }, /* @__PURE__ */ React.createElement(SortableHeader, { label: "Lesson", sortKey: "name", sortConfig, onSort: requestSort, className: "flex-1" }), /* @__PURE__ */ React.createElement(SortableHeader, { label: "Files", sortKey: "fileCount", sortConfig, onSort: requestSort, className: "w-16 shrink-0" })), sortedGroups.map(({ lesson: l, filtered }) => {
|
|
3756
3822
|
const badge = props.badgeForLesson[l.lessonId];
|
|
@@ -3772,6 +3838,7 @@ const LessonGroups = (props) => {
|
|
|
3772
3838
|
};
|
|
3773
3839
|
const FileLocker = (props) => {
|
|
3774
3840
|
var _a, _b, _c;
|
|
3841
|
+
const classLabels = classOptionLabels(props.classes || []);
|
|
3775
3842
|
const [internalTab, setInternalTab] = React.useState(props.tab || "students");
|
|
3776
3843
|
const tab = (_a = props.tab) != null ? _a : internalTab;
|
|
3777
3844
|
const setTab = (next) => {
|
|
@@ -3932,8 +3999,8 @@ const FileLocker = (props) => {
|
|
|
3932
3999
|
onChange: (e) => props.onClassChange(e.target.value),
|
|
3933
4000
|
className: "w-64 rounded-xl border border-slate-200 bg-white px-3.5 py-2.5 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
3934
4001
|
},
|
|
3935
|
-
/* @__PURE__ */ React.createElement("option", { value: "" }, "
|
|
3936
|
-
props.classes.map((g) => /* @__PURE__ */ React.createElement("option", { key: g.classId, value: g.classId }, g.name))
|
|
4002
|
+
/* @__PURE__ */ React.createElement("option", { value: "" }, "All classes"),
|
|
4003
|
+
props.classes.map((g) => /* @__PURE__ */ React.createElement("option", { key: g.classId, value: g.classId }, classLabels[g.classId] || g.name))
|
|
3937
4004
|
), !props.trial && /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS$1.map((t) => /* @__PURE__ */ React.createElement(
|
|
3938
4005
|
"button",
|
|
3939
4006
|
{
|
|
@@ -4066,6 +4133,7 @@ const groupBy = (items, keyOf, titleOf) => {
|
|
|
4066
4133
|
return order.map((key) => map.get(key));
|
|
4067
4134
|
};
|
|
4068
4135
|
const CommentCenter = (props) => {
|
|
4136
|
+
const classLabels = classOptionLabels(props.classes || []);
|
|
4069
4137
|
const [tab, setTab] = React.useState("students");
|
|
4070
4138
|
const [leavingComment, setLeavingComment] = React.useState(false);
|
|
4071
4139
|
const groups = React.useMemo(() => {
|
|
@@ -4089,8 +4157,8 @@ const CommentCenter = (props) => {
|
|
|
4089
4157
|
onChange: (e) => props.onClassChange(e.target.value),
|
|
4090
4158
|
className: "w-64 rounded-xl border border-slate-200 bg-white px-3.5 py-2.5 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
4091
4159
|
},
|
|
4092
|
-
/* @__PURE__ */ React.createElement("option", { value: "" }, "
|
|
4093
|
-
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
4160
|
+
/* @__PURE__ */ React.createElement("option", { value: "" }, "All classes"),
|
|
4161
|
+
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, classLabels[c.classId] || c.name))
|
|
4094
4162
|
), /* @__PURE__ */ React.createElement("div", { className: "flex w-fit gap-1 rounded-xl border border-slate-200 bg-white p-1" }, TABS.map((t) => /* @__PURE__ */ React.createElement(
|
|
4095
4163
|
"button",
|
|
4096
4164
|
{
|
|
@@ -4185,6 +4253,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
4185
4253
|
const initials = (name) => name.split(" ").map((w) => w[0]).filter(Boolean).slice(0, 2).join("").toUpperCase();
|
|
4186
4254
|
const ValidationCenter = (props) => {
|
|
4187
4255
|
var _a;
|
|
4256
|
+
const classLabels = classOptionLabels(props.classes || []);
|
|
4188
4257
|
const [selected, setSelected] = React.useState({});
|
|
4189
4258
|
React.useEffect(() => {
|
|
4190
4259
|
setSelected({});
|
|
@@ -4227,7 +4296,7 @@ const ValidationCenter = (props) => {
|
|
|
4227
4296
|
className: "w-64 rounded-xl border border-slate-200 bg-white px-3.5 py-2.5 text-sm text-dark-blue-400 focus:border-sky-blue-400 focus:outline-none"
|
|
4228
4297
|
},
|
|
4229
4298
|
/* @__PURE__ */ React.createElement("option", { value: "" }, "Select a class"),
|
|
4230
|
-
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, c.name))
|
|
4299
|
+
props.classes.map((c) => /* @__PURE__ */ React.createElement("option", { key: c.classId, value: c.classId }, classLabels[c.classId] || c.name))
|
|
4231
4300
|
), /* @__PURE__ */ React.createElement(
|
|
4232
4301
|
"select",
|
|
4233
4302
|
{
|