@local-civics/hub-ui 0.1.209 → 0.1.211

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.js CHANGED
@@ -53,7 +53,7 @@ function styleInject(css, ref) {
53
53
  }
54
54
  }
55
55
 
56
- 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\")}\n\n/*! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,: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: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.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}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{bottom:0;top:0}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.bottom-1\\/4{bottom:25%}.top-11{top:2.75rem}.top-4{top:1rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-5{bottom:1.25rem}.right-5{right:1.25rem}.bottom-20{bottom:5rem}.right-14{right:3.5rem}.z-10{z-index:10}.z-30{z-index:30}.-z-30{z-index:-30}.-z-10{z-index:-10}.z-40{z-index:40}.col-span-2{grid-column:span 2/span 2}.col-span-1{grid-column:span 1/span 1}.col-span-3{grid-column:span 3/span 3}.m-auto{margin:auto}.m-3{margin:.75rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-auto{margin-bottom:auto;margin-top:auto}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.-ml-1{margin-left:-.25rem}.mt-2{margin-top:.5rem}.-mb-\\[3rem\\]{margin-bottom:-3rem}.mt-5{margin-top:1.25rem}.-mt-4{margin-top:-1rem}.mt-4{margin-top:1rem}.ml-3{margin-left:.75rem}.ml-2{margin-left:.5rem}.-mt-1\\.5{margin-top:-.375rem}.-mt-1{margin-top:-.25rem}.ml-1{margin-left:.25rem}.mt-1{margin-top:.25rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.-mt-6{margin-top:-1.5rem}.ml-auto{margin-left:auto}.mt-auto{margin-top:auto}.mb-3{margin-bottom:.75rem}.-mb-7{margin-bottom:-1.75rem}.-ml-2{margin-left:-.5rem}.mb-4{margin-bottom:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mt-3{margin-top:.75rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mb-1{margin-bottom:.25rem}.box-border{box-sizing:border-box}.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}.contents{display:contents}.\\!contents{display:contents!important}.hidden{display:none}.h-1{height:.25rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-screen{height:100vh}.h-24{height:6rem}.h-9{height:2.25rem}.h-full{height:100%}.h-8{height:2rem}.h-16{height:4rem}.h-\\[30px\\]{height:30px}.h-\\[5px\\]{height:5px}.h-60{height:15rem}.h-\\[22rem\\]{height:22rem}.h-28{height:7rem}.h-\\[16rem\\]{height:16rem}.h-14{height:3.5rem}.h-\\[18rem\\]{height:18rem}.h-3\\.5{height:.875rem}.h-\\[12rem\\]{height:12rem}.h-\\[6rem\\]{height:6rem}.h-96{height:24rem}.h-max{height:-moz-max-content;height:max-content}.h-2{height:.5rem}.h-12{height:3rem}.h-20{height:5rem}.h-10{height:2.5rem}.max-h-\\[24rem\\]{max-height:24rem}.max-h-\\[12rem\\]{max-height:12rem}.max-h-\\[20rem\\]{max-height:20rem}.max-h-\\[30rem\\]{max-height:30rem}.max-h-\\[18rem\\]{max-height:18rem}.max-h-96{max-height:24rem}.max-h-\\[25rem\\]{max-height:25rem}.max-h-\\[14rem\\]{max-height:14rem}.min-h-16{min-height:4rem}.min-h-96{min-height:24rem}.min-h-\\[20rem\\]{min-height:20rem}.min-h-5{min-height:1.25rem}.min-h-48{min-height:12rem}.w-full{width:100%}.w-1{width:.25rem}.w-12{width:3rem}.w-3{width:.75rem}.w-4{width:1rem}.w-20{width:5rem}.w-5{width:1.25rem}.w-28{width:7rem}.w-6{width:1.5rem}.w-36{width:9rem}.w-7{width:1.75rem}.w-screen{width:100vw}.w-60{width:15rem}.w-9{width:2.25rem}.w-8{width:2rem}.w-\\[230px\\]{width:230px}.w-24{width:6rem}.w-\\[30px\\]{width:30px}.w-\\[5px\\]{width:5px}.w-11{width:2.75rem}.w-48{width:12rem}.w-\\[17\\.7rem\\]{width:17.7rem}.w-\\[16\\.7rem\\]{width:16.7rem}.w-max{width:-moz-max-content;width:max-content}.w-14{width:3.5rem}.w-\\[14rem\\]{width:14rem}.w-16{width:4rem}.w-3\\.5{width:.875rem}.w-96{width:24rem}.w-\\[18rem\\]{width:18rem}.w-44{width:11rem}.w-40{width:10rem}.w-10{width:2.5rem}.min-w-0{min-width:0}.min-w-6{min-width:1.5rem}.min-w-64{min-width:16rem}.min-w-3{min-width:.75rem}.min-w-\\[35rem\\]{min-width:35rem}.max-w-\\[64rem\\]{max-width:64rem}.max-w-xs{max-width:20rem}.max-w-\\[62\\.5rem\\]{max-width:62.5rem}.max-w-\\[12rem\\]{max-width:12rem}.max-w-full{max-width:100%}.max-w-\\[16rem\\]{max-width:16rem}.max-w-\\[18rem\\]{max-width:18rem}.max-w-\\[20rem\\]{max-width:20rem}.max-w-\\[40rem\\]{max-width:40rem}.max-w-\\[7rem\\]{max-width:7rem}.max-w-\\[22rem\\]{max-width:22rem}.max-w-lg{max-width:32rem}.max-w-\\[25rem\\]{max-width:25rem}.max-w-md{max-width:28rem}.max-w-\\[50rem\\]{max-width:50rem}.max-w-3xl{max-width:48rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.-translate-y-3\\.5{--tw-translate-y:-0.875rem}.-translate-y-3,.-translate-y-3\\.5{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-y-3{--tw-translate-y:-0.75rem}.scale-\\[0\\.9\\]{--tw-scale-x:0.9;--tw-scale-y:0.9}.scale-\\[0\\.50\\],.scale-\\[0\\.9\\]{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))}.scale-\\[0\\.50\\]{--tw-scale-x:0.50;--tw-scale-y:0.50}.scale-\\[0\\.75\\]{--tw-scale-x:0.75;--tw-scale-y:0.75}.scale-\\[0\\.75\\],.scale-\\[1\\.25\\]{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))}.scale-\\[1\\.25\\]{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-\\[1\\.50\\]{--tw-scale-x:1.50;--tw-scale-y:1.50}.scale-\\[1\\.50\\],.scale-\\[1\\.75\\]{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))}.scale-\\[1\\.75\\]{--tw-scale-x:1.75;--tw-scale-y:1.75}.scale-\\[2\\.00\\]{--tw-scale-x:2.00;--tw-scale-y:2.00}.scale-\\[2\\.00\\],.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-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-1{gap:.25rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-2\\.5{gap:.625rem}.gap-8{gap:2rem}.gap-7{gap:1.75rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-10{gap:2.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-6{row-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-4{row-gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.gap-y-12{row-gap:3rem}.gap-y-8{row-gap:2rem}.gap-y-3{row-gap:.75rem}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-lg{border-radius:.5rem}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-x{border-left-width:1px;border-right-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-b-2{border-bottom-width:2px}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity))}.border-violet-300{--tw-border-opacity:1;border-color:rgb(196 181 253/var(--tw-border-opacity))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity))}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity))}.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity))}.border-sky-300{--tw-border-opacity:1;border-color:rgb(125 211 252/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.border-sky-400{--tw-border-opacity:1;border-color:rgb(56 189 248/var(--tw-border-opacity))}.border-sky-600{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity))}.border-primary-600{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.border-primary-400{--tw-border-opacity:1;border-color:rgb(97 218 245/var(--tw-border-opacity))}.border-secondary-600{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.border-secondary-400{--tw-border-opacity:1;border-color:rgb(78 85 97/var(--tw-border-opacity))}.border-rose-600{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.border-rose-400{--tw-border-opacity:1;border-color:rgb(251 113 133/var(--tw-border-opacity))}.border-emerald-600{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.border-emerald-400{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity))}.border-sky-400\\/95{border-color:rgba(56,189,248,.95)}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(1 112 187/var(--tw-border-opacity))}.border-dark-blue-600{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.border-dark-blue-400{--tw-border-opacity:1;border-color:rgb(35 42 58/var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.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-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-zinc-100{--tw-border-opacity:1;border-color:rgb(244 244 245/var(--tw-border-opacity))}.border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity))}.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity))}.border-b-sky-400{--tw-border-opacity:1;border-bottom-color:rgb(56 189 248/var(--tw-border-opacity))}.bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.bg-red-300{--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity))}.bg-violet-200{--tw-bg-opacity:1;background-color:rgb(221 214 254/var(--tw-bg-opacity))}.bg-violet-300{--tw-bg-opacity:1;background-color:rgb(196 181 253/var(--tw-bg-opacity))}.bg-orange-200{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity:1;background-color:rgb(253 186 116/var(--tw-bg-opacity))}.bg-amber-200{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.bg-amber-300{--tw-bg-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity))}.bg-emerald-200{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity))}.bg-emerald-300{--tw-bg-opacity:1;background-color:rgb(110 231 183/var(--tw-bg-opacity))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.bg-sky-300{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgb(97 218 245/var(--tw-bg-opacity))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.bg-secondary-400{--tw-bg-opacity:1;background-color:rgb(78 85 97/var(--tw-bg-opacity))}.bg-rose-600{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity))}.bg-sky-400\\/95{background-color:rgba(56,189,248,.95)}.bg-slate-50\\/95{background-color:rgba(248,250,252,.95)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(1 112 187/var(--tw-bg-opacity))}.bg-dark-blue-600{--tw-bg-opacity:1;background-color:rgb(10 15 46/var(--tw-bg-opacity))}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-gray-500\\/75{background-color:hsla(220,9%,46%,.75)}.bg-gray-300\\/75{background-color:rgba(209,213,219,.75)}.bg-sky-blue-200{--tw-bg-opacity:1;background-color:rgb(163 228 243/var(--tw-bg-opacity))}.bg-sky-blue-400{--tw-bg-opacity:1;background-color:rgb(59 208 242/var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-sky-blue-400\\/25{background-color:rgba(59,208,242,.25)}.bg-mint-400\\/25{background-color:rgba(30,226,175,.25)}.bg-mint-400{--tw-bg-opacity:1;background-color:rgb(30 226 175/var(--tw-bg-opacity))}.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-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity))}.bg-gray-800\\/75{background-color:rgba(31,41,55,.75)}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity))}.bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-gray-200\\/75{background-color:rgba(229,231,235,.75)}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-zinc-50\\/30{background-color:hsla(0,0%,98%,.3)}.fill-red-300{fill:#fca5a5}.fill-violet-300{fill:#c4b5fd}.fill-orange-300{fill:#fdba74}.fill-amber-300{fill:#fcd34d}.fill-emerald-300{fill:#6ee7b7}.fill-sky-300{fill:#7dd3fc}.fill-gray-300{fill:#d1d5db}.fill-white{fill:#fff}.fill-gray-600{fill:#4b5563}.fill-current{fill:currentColor}.fill-slate-600{fill:#475569}.stroke-red-300{stroke:#fca5a5}.stroke-violet-300{stroke:#c4b5fd}.stroke-orange-300{stroke:#fdba74}.stroke-amber-300{stroke:#fcd34d}.stroke-emerald-300{stroke:#6ee7b7}.stroke-sky-300{stroke:#7dd3fc}.stroke-gray-300{stroke:#d1d5db}.stroke-gray-600{stroke:#4b5563}.stroke-current{stroke:currentColor}.stroke-slate-600{stroke:#475569}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-1{padding:.25rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-4{padding:1rem}.p-2\\.5{padding:.625rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.px-12{padding-left:3rem;padding-right:3rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.px-16{padding-left:4rem;padding-right:4rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.pr-7{padding-right:1.75rem}.pt-16{padding-top:4rem}.pl-2{padding-left:.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}.pt-1{padding-top:.25rem}.pb-12{padding-bottom:3rem}.pt-3{padding-top:.75rem}.pb-24{padding-bottom:6rem}.pt-4{padding-top:1rem}.pb-3{padding-bottom:.75rem}.pb-8{padding-bottom:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-proxima{font-family:ProximaNova}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[0\\.5rem\\]{font-size:.5rem}.text-xs{font-size:.75rem;line-height:1rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[3rem\\]{font-size:3rem}.text-\\[2rem\\]{font-size:2rem}.text-\\[10px\\]{font-size:10px}.text-\\[11\\.5px\\]{font-size:11.5px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[9px\\]{font-size:9px}.text-\\[11px\\]{font-size:11px}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.text-violet-300{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity))}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity))}.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity))}.text-sky-300{--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgb(97 218 245/var(--tw-text-opacity))}.text-secondary-600{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.text-secondary-400{--tw-text-opacity:1;color:rgb(78 85 97/var(--tw-text-opacity))}.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(1 112 187/var(--tw-text-opacity))}.text-dark-blue-600{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/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-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-sky-200{--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-cyan-100{--tw-text-opacity:1;color:rgb(207 250 254/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity))}.text-rose-300{--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity))}.text-zinc-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}.text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.placeholder-slate-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity))}.placeholder-slate-400::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.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-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--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)}.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-2xl,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-gray-400{--tw-shadow-color:#9ca3af;--tw-shadow:var(--tw-shadow-colored)}.drop-shadow-\\[inherit\\]{--tw-drop-shadow:drop-shadow(inherit)}.drop-shadow-\\[inherit\\],.drop-shadow-md{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)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.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-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)}.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)}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.file\\:mr-4::file-selector-button{margin-right:1rem}.file\\:rounded-full::file-selector-button{border-radius:9999px}.file\\:border-0::file-selector-button{border-width:0}.file\\:bg-violet-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(245 243 255/var(--tw-bg-opacity))}.file\\:py-2::file-selector-button{padding-bottom:.5rem;padding-top:.5rem}.file\\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:font-semibold::file-selector-button{font-weight:600}.file\\:text-violet-700::file-selector-button{--tw-text-opacity:1;color:rgb(109 40 217/var(--tw-text-opacity))}.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))}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:left-\\[2px\\]:after{content:var(--tw-content);left:2px}.after\\:top-0:after{content:var(--tw-content);top:0}.after\\:h-5:after{content:var(--tw-content);height:1.25rem}.after\\:w-5:after{content:var(--tw-content);width:1.25rem}.after\\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\\:border:after{border-width:1px;content:var(--tw-content)}.after\\:border-gray-300:after{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));content:var(--tw-content)}.after\\:bg-white:after{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));content:var(--tw-content)}.after\\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:content-\\[\\'\\'\\]:after{--tw-content:\"\";content:var(--tw-content)}.invalid\\:border-pink-500:invalid{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity))}.invalid\\:text-pink-600:invalid{--tw-text-opacity:1;color:rgb(219 39 119/var(--tw-text-opacity))}.hover\\:border-b-2:hover{border-bottom-width:2px}.hover\\:border-red-400:hover{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.hover\\:border-violet-400:hover{--tw-border-opacity:1;border-color:rgb(167 139 250/var(--tw-border-opacity))}.hover\\:border-orange-400:hover{--tw-border-opacity:1;border-color:rgb(251 146 60/var(--tw-border-opacity))}.hover\\:border-amber-400:hover{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity))}.hover\\:border-emerald-400:hover{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity))}.hover\\:border-sky-400:hover{--tw-border-opacity:1;border-color:rgb(56 189 248/var(--tw-border-opacity))}.hover\\:border-gray-200:hover{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.hover\\:border-slate-600:hover{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.hover\\:border-sky-600:hover{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.hover\\:border-green-600:hover{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.hover\\:border-primary-600:hover{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.hover\\:border-secondary-600:hover{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.hover\\:border-rose-600:hover{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.hover\\:border-emerald-600:hover{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.hover\\:border-sky-300\\/95:hover{border-color:rgba(125,211,252,.95)}.hover\\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.hover\\:border-dark-blue-600:hover{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.hover\\:border-sky-100:hover{--tw-border-opacity:1;border-color:rgb(224 242 254/var(--tw-border-opacity))}.hover\\:border-b-sky-400:hover{--tw-border-opacity:1;border-bottom-color:rgb(56 189 248/var(--tw-border-opacity))}.hover\\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.hover\\:bg-red-300:hover{--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity))}.hover\\:bg-violet-200:hover{--tw-bg-opacity:1;background-color:rgb(221 214 254/var(--tw-bg-opacity))}.hover\\:bg-violet-300:hover{--tw-bg-opacity:1;background-color:rgb(196 181 253/var(--tw-bg-opacity))}.hover\\:bg-orange-200:hover{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity))}.hover\\:bg-orange-300:hover{--tw-bg-opacity:1;background-color:rgb(253 186 116/var(--tw-bg-opacity))}.hover\\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.hover\\:bg-amber-300:hover{--tw-bg-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity))}.hover\\:bg-emerald-200:hover{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity))}.hover\\:bg-emerald-300:hover{--tw-bg-opacity:1;background-color:rgb(110 231 183/var(--tw-bg-opacity))}.hover\\:bg-sky-200:hover{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.hover\\:bg-sky-300:hover{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.hover\\:bg-sky-600:hover{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.hover\\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.hover\\:bg-secondary-600:hover{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.hover\\:bg-rose-600:hover{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.hover\\:bg-emerald-600:hover{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.hover\\:bg-sky-400\\/95:hover{background-color:rgba(56,189,248,.95)}.hover\\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.hover\\:bg-dark-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(10 15 46/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-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\\:bg-sky-50:hover{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-sky-400:hover{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity))}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.hover\\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\\:stroke-red-400:hover{stroke:#f87171}.hover\\:stroke-violet-400:hover{stroke:#a78bfa}.hover\\:stroke-orange-400:hover{stroke:#fb923c}.hover\\:stroke-amber-400:hover{stroke:#fbbf24}.hover\\:stroke-emerald-400:hover{stroke:#34d399}.hover\\:stroke-sky-400:hover{stroke:#38bdf8}.hover\\:stroke-gray-400:hover{stroke:#9ca3af}.hover\\:font-semibold:hover{font-weight:600}.hover\\:text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.hover\\:text-violet-400:hover{--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity))}.hover\\:text-orange-400:hover{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity))}.hover\\:text-amber-400:hover{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity))}.hover\\:text-emerald-400:hover{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity))}.hover\\:text-sky-400:hover{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity))}.hover\\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-sky-600:hover{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.hover\\:text-green-600:hover{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.hover\\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.hover\\:text-secondary-600:hover{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.hover\\:text-rose-600:hover{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.hover\\:text-emerald-600:hover{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.hover\\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.hover\\:text-dark-blue-600:hover{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\\:text-slate-400:hover{--tw-text-opacity:1;color:rgb(148 163 184/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\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\\:text-sky-500:hover{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.hover\\:text-cyan-400:hover{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity))}.hover\\:text-rose-400:hover{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity))}.hover\\:text-green-500:hover{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.hover\\:text-zinc-500:hover{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:file\\:bg-violet-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity))}.hover\\:placeholder\\:text-slate-600:hover::-moz-placeholder{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:placeholder\\:text-slate-600:hover::placeholder{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.focus\\:border-slate-600:focus{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.focus\\:border-sky-600:focus{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.focus\\:border-green-600:focus{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.focus\\:border-primary-600:focus{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.focus\\:border-secondary-600:focus{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.focus\\:border-rose-600:focus{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.focus\\:border-emerald-600:focus{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.focus\\:border-sky-300\\/95:focus{border-color:rgba(125,211,252,.95)}.focus\\:border-blue-600:focus{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.focus\\:border-dark-blue-600:focus{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.focus\\:border-sky-500:focus{--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity))}.focus\\:border-sky-100:focus{--tw-border-opacity:1;border-color:rgb(224 242 254/var(--tw-border-opacity))}.focus\\:bg-slate-600:focus{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.focus\\:bg-sky-600:focus{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.focus\\:bg-green-600:focus{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.focus\\:bg-primary-600:focus{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.focus\\:bg-secondary-600:focus{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.focus\\:bg-rose-600:focus{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.focus\\:bg-emerald-600:focus{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.focus\\:bg-blue-600:focus{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.focus\\:bg-dark-blue-600:focus{--tw-bg-opacity:1;background-color:rgb(10 15 46/var(--tw-bg-opacity))}.focus\\:bg-gray-50:focus{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.focus\\:text-slate-600:focus{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.focus\\:text-sky-600:focus{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.focus\\:text-green-600:focus{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.focus\\:text-primary-600:focus{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.focus\\:text-secondary-600:focus{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.focus\\:text-rose-600:focus{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.focus\\:text-emerald-600:focus{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.focus\\:text-blue-600:focus{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.focus\\:text-dark-blue-600:focus{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.focus\\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-sky-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(14 165 233/var(--tw-ring-opacity))}.focus\\:ring-sky-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(224 242 254/var(--tw-ring-opacity))}.focus\\:invalid\\:border-pink-500:invalid:focus{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity))}.focus\\:invalid\\:ring-pink-500:invalid:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(236 72 153/var(--tw-ring-opacity))}.active\\:border-slate-600:active{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.active\\:border-sky-600:active{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.active\\:border-green-600:active{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.active\\:border-primary-600:active{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.active\\:border-secondary-600:active{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.active\\:border-rose-600:active{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.active\\:border-emerald-600:active{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.active\\:border-sky-300\\/95:active{border-color:rgba(125,211,252,.95)}.active\\:border-blue-600:active{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.active\\:border-dark-blue-600:active{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.active\\:bg-slate-600:active{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.active\\:bg-sky-600:active{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.active\\:bg-green-600:active{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.active\\:bg-primary-600:active{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.active\\:bg-secondary-600:active{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.active\\:bg-rose-600:active{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.active\\:bg-emerald-600:active{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.active\\:bg-blue-600:active{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.active\\:bg-dark-blue-600:active{--tw-bg-opacity:1;background-color:rgb(10 15 46/var(--tw-bg-opacity))}.active\\:bg-gray-50:active{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.active\\:bg-white:active{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.active\\:text-slate-600:active{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.active\\:text-sky-600:active{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.active\\:text-green-600:active{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.active\\:text-primary-600:active{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.active\\:text-secondary-600:active{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.active\\:text-rose-600:active{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.active\\:text-emerald-600:active{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.active\\:text-blue-600:active{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.active\\:text-dark-blue-600:active{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.active\\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.disabled\\:border-slate-200:disabled{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.disabled\\:bg-slate-50:disabled{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.disabled\\:text-slate-500:disabled{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.disabled\\:text-gray-600:disabled{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.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)}.peer:checked~.peer-checked\\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.peer:checked~.peer-checked\\:after\\:translate-x-full:after{--tw-translate-x:100%;content:var(--tw-content);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))}.peer:checked~.peer-checked\\:after\\:border-white:after{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity))}@media (prefers-color-scheme:dark){.dark\\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.peer:focus~.dark\\:peer-focus\\:ring-blue-800{--tw-ring-opacity:1;--tw-ring-color:rgb(30 64 175/var(--tw-ring-opacity))}}@media (min-width:640px){.sm\\:flex{display:flex}.sm\\:place-content-between{place-content:space-between}}@media (min-width:768px){.md\\:invisible{visibility:hidden}.md\\:mr-6{margin-right:1.5rem}.md\\:flex{display:flex}.md\\:grid{display:grid}.md\\:hidden{display:none}.md\\:h-6{height:1.5rem}.md\\:h-\\[24rem\\]{height:24rem}.md\\:w-6{width:1.5rem}.md\\:w-\\[28rem\\]{width:28rem}.md\\:w-\\[40rem\\]{width:40rem}.md\\:w-\\[30rem\\]{width:30rem}.md\\:w-\\[20rem\\]{width:20rem}.md\\:w-\\[24rem\\]{width:24rem}.md\\:w-\\[16rem\\]{width:16rem}.md\\:w-\\[32rem\\]{width:32rem}.md\\:w-max{width:-moz-max-content;width:max-content}.md\\:w-\\[50rem\\]{width:50rem}.md\\:min-w-\\[30rem\\]{min-width:30rem}.md\\:max-w-\\[22rem\\]{max-width:22rem}.md\\:max-w-\\[30rem\\]{max-width:30rem}.md\\:max-w-\\[40rem\\]{max-width:40rem}.md\\:scale-\\[1\\.2\\]{--tw-scale-x:1.2;--tw-scale-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))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:flex-col{flex-direction:column}.md\\:items-start{align-items:flex-start}.md\\:items-center{align-items:center}.md\\:justify-between{justify-content:space-between}.md\\:border-b{border-bottom-width:1px}.md\\:p-1\\.5{padding:.375rem}.md\\:p-1{padding:.25rem}.md\\:px-2{padding-left:.5rem;padding-right:.5rem}.md\\:text-sm{font-size:.875rem;line-height:1.25rem}.md\\:shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:1024px){.lg\\:sticky{position:sticky}.lg\\:top-0{top:0}.lg\\:top-2{top:.5rem}.lg\\:right-3{right:.75rem}.lg\\:col-span-2{grid-column:span 2/span 2}.lg\\:mt-0{margin-top:0}.lg\\:inline-block{display:inline-block}.lg\\:flex{display:flex}.lg\\:h-screen{height:100vh}.lg\\:h-\\[22rem\\]{height:22rem}.lg\\:h-32{height:8rem}.lg\\:h-4{height:1rem}.lg\\:h-\\[18rem\\]{height:18rem}.lg\\:h-\\[5\\.5rem\\]{height:5.5rem}.lg\\:min-h-24{min-height:6rem}.lg\\:w-\\[230px\\]{width:230px}.lg\\:w-32{width:8rem}.lg\\:w-4{width:1rem}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:gap-2{gap:.5rem}.lg\\:gap-1{gap:.25rem}.lg\\:gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.lg\\:gap-y-3{row-gap:.75rem}.lg\\:self-start{align-self:flex-start}.lg\\:overflow-y-auto{overflow-y:auto}.lg\\:px-0{padding-left:0;padding-right:0}.lg\\:px-36{padding-left:9rem;padding-right:9rem}.lg\\:py-3{padding-bottom:.75rem;padding-top:.75rem}.lg\\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\\:px-56{padding-left:14rem;padding-right:14rem}.lg\\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\\:text-4xl{font-size:2.25rem;line-height:2.5rem}}";
56
+ 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\")}\n\n/*! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,: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: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.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}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{bottom:0;top:0}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.bottom-1\\/4{bottom:25%}.top-11{top:2.75rem}.top-4{top:1rem}.top-2{top:.5rem}.right-2{right:.5rem}.bottom-5{bottom:1.25rem}.right-5{right:1.25rem}.bottom-20{bottom:5rem}.right-14{right:3.5rem}.-right-0\\.5{right:-.125rem}.-top-0\\.5{top:-.125rem}.-right-0{right:0}.-top-0{top:0}.z-10{z-index:10}.z-30{z-index:30}.-z-30{z-index:-30}.-z-10{z-index:-10}.z-40{z-index:40}.col-span-2{grid-column:span 2/span 2}.col-span-1{grid-column:span 1/span 1}.col-span-3{grid-column:span 3/span 3}.m-auto{margin:auto}.m-3{margin:.75rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-auto{margin-bottom:auto;margin-top:auto}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.-ml-1{margin-left:-.25rem}.mt-2{margin-top:.5rem}.-mb-\\[3rem\\]{margin-bottom:-3rem}.mt-5{margin-top:1.25rem}.-mt-4{margin-top:-1rem}.mt-4{margin-top:1rem}.ml-3{margin-left:.75rem}.ml-2{margin-left:.5rem}.-mt-1\\.5{margin-top:-.375rem}.-mt-1{margin-top:-.25rem}.ml-1{margin-left:.25rem}.mt-1{margin-top:.25rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.-mt-6{margin-top:-1.5rem}.ml-auto{margin-left:auto}.ml-1\\.5{margin-left:.375rem}.mt-2\\.5{margin-top:.625rem}.mt-1\\.5{margin-top:.375rem}.mt-0\\.5{margin-top:.125rem}.mt-0{margin-top:0}.mt-auto{margin-top:auto}.mb-3{margin-bottom:.75rem}.mb-1\\.5{margin-bottom:.375rem}.mb-1{margin-bottom:.25rem}.-mb-7{margin-bottom:-1.75rem}.-ml-2{margin-left:-.5rem}.mb-4{margin-bottom:1rem}.ml-5{margin-left:1.25rem}.mr-1{margin-right:.25rem}.mt-3{margin-top:.75rem}.box-border{box-sizing:border-box}.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}.contents{display:contents}.\\!contents{display:contents!important}.hidden{display:none}.h-1{height:.25rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-screen{height:100vh}.h-24{height:6rem}.h-9{height:2.25rem}.h-full{height:100%}.h-8{height:2rem}.h-16{height:4rem}.h-60{height:15rem}.h-\\[22rem\\]{height:22rem}.h-28{height:7rem}.h-\\[16rem\\]{height:16rem}.h-14{height:3.5rem}.h-\\[18rem\\]{height:18rem}.h-3\\.5{height:.875rem}.h-\\[12rem\\]{height:12rem}.h-\\[6rem\\]{height:6rem}.h-96{height:24rem}.h-max{height:-moz-max-content;height:max-content}.h-2{height:.5rem}.h-\\[18px\\]{height:18px}.h-12{height:3rem}.h-20{height:5rem}.h-10{height:2.5rem}.h-1\\.5{height:.375rem}.h-2\\.5{height:.625rem}.h-\\[30px\\]{height:30px}.h-\\[5px\\]{height:5px}.max-h-\\[24rem\\]{max-height:24rem}.max-h-\\[12rem\\]{max-height:12rem}.max-h-\\[20rem\\]{max-height:20rem}.max-h-\\[30rem\\]{max-height:30rem}.max-h-\\[18rem\\]{max-height:18rem}.max-h-96{max-height:24rem}.max-h-\\[25rem\\]{max-height:25rem}.max-h-\\[14rem\\]{max-height:14rem}.min-h-16{min-height:4rem}.min-h-96{min-height:24rem}.min-h-\\[20rem\\]{min-height:20rem}.min-h-5{min-height:1.25rem}.min-h-48{min-height:12rem}.w-full{width:100%}.w-1{width:.25rem}.w-12{width:3rem}.w-3{width:.75rem}.w-4{width:1rem}.w-20{width:5rem}.w-5{width:1.25rem}.w-28{width:7rem}.w-6{width:1.5rem}.w-36{width:9rem}.w-7{width:1.75rem}.w-screen{width:100vw}.w-60{width:15rem}.w-9{width:2.25rem}.w-8{width:2rem}.w-11{width:2.75rem}.w-48{width:12rem}.w-\\[17\\.7rem\\]{width:17.7rem}.w-\\[16\\.7rem\\]{width:16.7rem}.w-max{width:-moz-max-content;width:max-content}.w-14{width:3.5rem}.w-\\[14rem\\]{width:14rem}.w-16{width:4rem}.w-3\\.5{width:.875rem}.w-96{width:24rem}.w-\\[18rem\\]{width:18rem}.w-44{width:11rem}.w-\\[18px\\]{width:18px}.w-24{width:6rem}.w-40{width:10rem}.w-10{width:2.5rem}.w-\\[230px\\]{width:230px}.w-2\\.5{width:.625rem}.w-2{width:.5rem}.w-\\[30px\\]{width:30px}.w-\\[5px\\]{width:5px}.min-w-6{min-width:1.5rem}.min-w-64{min-width:16rem}.min-w-3{min-width:.75rem}.min-w-0{min-width:0}.min-w-\\[35rem\\]{min-width:35rem}.max-w-\\[64rem\\]{max-width:64rem}.max-w-xs{max-width:20rem}.max-w-\\[62\\.5rem\\]{max-width:62.5rem}.max-w-\\[12rem\\]{max-width:12rem}.max-w-full{max-width:100%}.max-w-\\[16rem\\]{max-width:16rem}.max-w-\\[18rem\\]{max-width:18rem}.max-w-\\[20rem\\]{max-width:20rem}.max-w-\\[40rem\\]{max-width:40rem}.max-w-\\[7rem\\]{max-width:7rem}.max-w-2xl{max-width:42rem}.max-w-\\[22rem\\]{max-width:22rem}.max-w-lg{max-width:32rem}.max-w-\\[25rem\\]{max-width:25rem}.max-w-md{max-width:28rem}.max-w-\\[50rem\\]{max-width:50rem}.max-w-3xl{max-width:48rem}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.-translate-y-3\\.5{--tw-translate-y:-0.875rem}.-translate-y-3,.-translate-y-3\\.5{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-y-3{--tw-translate-y:-0.75rem}.scale-\\[0\\.9\\]{--tw-scale-x:0.9;--tw-scale-y:0.9}.scale-\\[0\\.50\\],.scale-\\[0\\.9\\]{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))}.scale-\\[0\\.50\\]{--tw-scale-x:0.50;--tw-scale-y:0.50}.scale-\\[0\\.75\\]{--tw-scale-x:0.75;--tw-scale-y:0.75}.scale-\\[0\\.75\\],.scale-\\[1\\.25\\]{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))}.scale-\\[1\\.25\\]{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-\\[1\\.50\\]{--tw-scale-x:1.50;--tw-scale-y:1.50}.scale-\\[1\\.50\\],.scale-\\[1\\.75\\]{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))}.scale-\\[1\\.75\\]{--tw-scale-x:1.75;--tw-scale-y:1.75}.scale-\\[2\\.00\\]{--tw-scale-x:2.00;--tw-scale-y:2.00}.scale-\\[2\\.00\\],.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-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-1{gap:.25rem}.gap-8{gap:2rem}.gap-7{gap:1.75rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-3\\.5{gap:.875rem}.gap-2\\.5{gap:.625rem}.gap-1\\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-0\\.5{gap:.125rem}.gap-0{gap:0}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-6{row-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-4{row-gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-5{row-gap:1.25rem}.gap-y-12{row-gap:3rem}.gap-y-8{row-gap:2rem}.gap-y-3{row-gap:.75rem}.gap-y-1{row-gap:.25rem}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2.5rem*var(--tw-space-y-reverse));margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-sm{border-radius:.125rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-\\[10px\\]{border-radius:10px}.rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-x{border-left-width:1px;border-right-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r{border-right-width:1px}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity))}.border-violet-300{--tw-border-opacity:1;border-color:rgb(196 181 253/var(--tw-border-opacity))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity))}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity))}.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity))}.border-sky-300{--tw-border-opacity:1;border-color:rgb(125 211 252/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.border-sky-400{--tw-border-opacity:1;border-color:rgb(56 189 248/var(--tw-border-opacity))}.border-sky-600{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity))}.border-primary-600{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.border-primary-400{--tw-border-opacity:1;border-color:rgb(97 218 245/var(--tw-border-opacity))}.border-secondary-600{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.border-secondary-400{--tw-border-opacity:1;border-color:rgb(78 85 97/var(--tw-border-opacity))}.border-rose-600{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.border-rose-400{--tw-border-opacity:1;border-color:rgb(251 113 133/var(--tw-border-opacity))}.border-emerald-600{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.border-emerald-400{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity))}.border-sky-400\\/95{border-color:rgba(56,189,248,.95)}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(1 112 187/var(--tw-border-opacity))}.border-dark-blue-600{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.border-dark-blue-400{--tw-border-opacity:1;border-color:rgb(35 42 58/var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-zinc-100{--tw-border-opacity:1;border-color:rgb(244 244 245/var(--tw-border-opacity))}.border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/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-mint-400{--tw-border-opacity:1;border-color:rgb(30 226 175/var(--tw-border-opacity))}.border-gold-400\\/20{border-color:rgba(255,212,77,.2)}.border-sky-blue-400\\/20{border-color:rgba(59,208,242,.2)}.border-mint-400\\/20{border-color:rgba(30,226,175,.2)}.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-b-sky-400{--tw-border-opacity:1;border-bottom-color:rgb(56 189 248/var(--tw-border-opacity))}.bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.bg-red-300{--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity))}.bg-violet-200{--tw-bg-opacity:1;background-color:rgb(221 214 254/var(--tw-bg-opacity))}.bg-violet-300{--tw-bg-opacity:1;background-color:rgb(196 181 253/var(--tw-bg-opacity))}.bg-orange-200{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity:1;background-color:rgb(253 186 116/var(--tw-bg-opacity))}.bg-amber-200{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.bg-amber-300{--tw-bg-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity))}.bg-emerald-200{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity))}.bg-emerald-300{--tw-bg-opacity:1;background-color:rgb(110 231 183/var(--tw-bg-opacity))}.bg-sky-200{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.bg-sky-300{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.bg-sky-400{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.bg-primary-400{--tw-bg-opacity:1;background-color:rgb(97 218 245/var(--tw-bg-opacity))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.bg-secondary-400{--tw-bg-opacity:1;background-color:rgb(78 85 97/var(--tw-bg-opacity))}.bg-rose-600{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity))}.bg-sky-400\\/95{background-color:rgba(56,189,248,.95)}.bg-slate-50\\/95{background-color:rgba(248,250,252,.95)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(1 112 187/var(--tw-bg-opacity))}.bg-dark-blue-600{--tw-bg-opacity:1;background-color:rgb(10 15 46/var(--tw-bg-opacity))}.bg-dark-blue-400{--tw-bg-opacity:1;background-color:rgb(35 42 58/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-gray-500\\/75{background-color:hsla(220,9%,46%,.75)}.bg-gray-300\\/75{background-color:rgba(209,213,219,.75)}.bg-sky-blue-200{--tw-bg-opacity:1;background-color:rgb(163 228 243/var(--tw-bg-opacity))}.bg-sky-blue-400{--tw-bg-opacity:1;background-color:rgb(59 208 242/var(--tw-bg-opacity))}.bg-mint-400\\/20{background-color:rgba(30,226,175,.2)}.bg-mint-400{--tw-bg-opacity:1;background-color:rgb(30 226 175/var(--tw-bg-opacity))}.bg-gold-400\\/20{background-color:rgba(255,212,77,.2)}.bg-gold-400{--tw-bg-opacity:1;background-color:rgb(255 212 77/var(--tw-bg-opacity))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity))}.bg-gray-800\\/75{background-color:rgba(31,41,55,.75)}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.bg-zinc-100{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity))}.bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-sky-blue-400\\/10{background-color:rgba(59,208,242,.1)}.bg-gray-200\\/75{background-color:rgba(229,231,235,.75)}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-zinc-50\\/30{background-color:hsla(0,0%,98%,.3)}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.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-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-\\[linear-gradient\\(150deg\\2c \\#EEF9FF_0\\%\\2c \\#F0FEFA_40\\%\\2c \\#FFFBEA_100\\%\\)\\]{background-image:linear-gradient(150deg,#eef9ff,#f0fefa 40%,#fffbea)}.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-slate-200{--tw-gradient-from:#e2e8f0;--tw-gradient-to:rgba(226,232,240,0);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-mint-400{--tw-gradient-to:rgba(30,226,175,0);--tw-gradient-stops:var(--tw-gradient-from),#1ee2af,var(--tw-gradient-to)}.to-mint-400{--tw-gradient-to:#1ee2af}.to-gold-400{--tw-gradient-to:#ffd44d}.to-sky-blue-400{--tw-gradient-to:#3bd0f2}.to-slate-200{--tw-gradient-to:#e2e8f0}.fill-red-300{fill:#fca5a5}.fill-violet-300{fill:#c4b5fd}.fill-orange-300{fill:#fdba74}.fill-amber-300{fill:#fcd34d}.fill-emerald-300{fill:#6ee7b7}.fill-sky-300{fill:#7dd3fc}.fill-gray-300{fill:#d1d5db}.fill-white{fill:#fff}.fill-gray-600{fill:#4b5563}.fill-current{fill:currentColor}.fill-slate-600{fill:#475569}.stroke-red-300{stroke:#fca5a5}.stroke-violet-300{stroke:#c4b5fd}.stroke-orange-300{stroke:#fdba74}.stroke-amber-300{stroke:#fcd34d}.stroke-emerald-300{stroke:#6ee7b7}.stroke-sky-300{stroke:#7dd3fc}.stroke-gray-300{stroke:#d1d5db}.stroke-gray-600{stroke:#4b5563}.stroke-current{stroke:currentColor}.stroke-slate-600{stroke:#475569}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-1{padding:.25rem}.p-8{padding:2rem}.p-5{padding:1.25rem}.p-4{padding:1rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.p-2\\.5{padding:.625rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.px-12{padding-left:3rem;padding-right:3rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-3\\.5{padding-bottom:.875rem;padding-top:.875rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.px-3\\.5{padding-left:.875rem;padding-right:.875rem}.px-16{padding-left:4rem;padding-right:4rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.pr-7{padding-right:1.75rem}.pt-16{padding-top:4rem}.pl-2{padding-left:.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pt-5{padding-top:1.25rem}.pb-5{padding-bottom:1.25rem}.pt-1{padding-top:.25rem}.pt-3\\.5{padding-top:.875rem}.pt-3{padding-top:.75rem}.pb-12{padding-bottom:3rem}.pt-4{padding-top:1rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-8{padding-bottom:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-proxima{font-family:ProximaNova}.text-sm{font-size:.875rem;line-height:1.25rem}.text-\\[0\\.5rem\\]{font-size:.5rem}.text-xs{font-size:.75rem;line-height:1rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-\\[3rem\\]{font-size:3rem}.text-\\[2rem\\]{font-size:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-\\[10\\.5px\\]{font-size:10.5px}.text-\\[10px\\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-\\[9px\\]{font-size:9px}.text-\\[11px\\]{font-size:11px}.text-\\[11\\.5px\\]{font-size:11.5px}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-extrabold{font-weight:800}.font-black{font-weight:900}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.text-violet-300{--tw-text-opacity:1;color:rgb(196 181 253/var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity))}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity))}.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity))}.text-sky-300{--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgb(97 218 245/var(--tw-text-opacity))}.text-secondary-600{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.text-secondary-400{--tw-text-opacity:1;color:rgb(78 85 97/var(--tw-text-opacity))}.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(1 112 187/var(--tw-text-opacity))}.text-dark-blue-600{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.text-dark-blue-400{--tw-text-opacity:1;color:rgb(35 42 58/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-sky-200{--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-cyan-100{--tw-text-opacity:1;color:rgb(207 250 254/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-zinc-300{--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity))}.text-sky-blue-400{--tw-text-opacity:1;color:rgb(59 208 242/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-rose-300{--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity))}.text-zinc-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}.text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.placeholder-slate-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity))}.placeholder-slate-400::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-40{opacity:.4}.opacity-100{opacity:1}.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-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--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)}.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-2xl,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_4px_20px_rgba\\(59\\2c 208\\2c 242\\2c 0\\.10\\)\\]{--tw-shadow:0 4px 20px rgba(59,208,242,.1);--tw-shadow-colored:0 4px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_4px_20px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.10\\)\\]{--tw-shadow:0 4px 20px rgba(30,226,175,.1);--tw-shadow-colored:0 4px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_4px_20px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.10\\)\\]{--tw-shadow:0 4px 20px rgba(255,212,77,.1);--tw-shadow-colored:0 4px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_4px_20px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.12\\)\\]{--tw-shadow:0 4px 20px rgba(255,212,77,.12);--tw-shadow-colored:0 4px 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_4px_24px_rgba\\(59\\2c 208\\2c 242\\2c 0\\.10\\)\\]{--tw-shadow:0 4px 24px rgba(59,208,242,.1);--tw-shadow-colored:0 4px 24px var(--tw-shadow-color)}.shadow-\\[0_4px_24px_rgba\\(59\\2c 208\\2c 242\\2c 0\\.10\\)\\],.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-\\[0_0_8px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.6\\)\\]{--tw-shadow:0 0 8px rgba(30,226,175,.6);--tw-shadow-colored:0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_12px_rgba\\(59\\2c 208\\2c 242\\2c 0\\.12\\)\\]{--tw-shadow:0 2px 12px rgba(59,208,242,.12);--tw-shadow-colored:0 2px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_12px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.12\\)\\]{--tw-shadow:0 2px 12px rgba(30,226,175,.12);--tw-shadow-colored:0 2px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_2px_12px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.12\\)\\]{--tw-shadow:0 2px 12px rgba(255,212,77,.12);--tw-shadow-colored:0 2px 12px var(--tw-shadow-color);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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_0_8px_rgba\\(59\\2c 208\\2c 242\\2c 0\\.5\\)\\]{--tw-shadow:0 0 8px rgba(59,208,242,.5);--tw-shadow-colored:0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_0_8px_rgba\\(30\\2c 226\\2c 175\\2c 0\\.5\\)\\]{--tw-shadow:0 0 8px rgba(30,226,175,.5);--tw-shadow-colored:0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[0_0_8px_rgba\\(255\\2c 212\\2c 77\\2c 0\\.5\\)\\]{--tw-shadow:0 0 8px rgba(255,212,77,.5);--tw-shadow-colored:0 0 8px var(--tw-shadow-color);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\\(59\\2c 208\\2c 242\\2c 0\\.08\\)\\]{--tw-shadow:0 2px 10px rgba(59,208,242,.08);--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)}.shadow-gray-400{--tw-shadow-color:#9ca3af;--tw-shadow:var(--tw-shadow-colored)}.drop-shadow-\\[inherit\\]{--tw-drop-shadow:drop-shadow(inherit)}.drop-shadow-\\[inherit\\],.drop-shadow-md{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)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.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-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)}.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)}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.file\\:mr-4::file-selector-button{margin-right:1rem}.file\\:rounded-full::file-selector-button{border-radius:9999px}.file\\:border-0::file-selector-button{border-width:0}.file\\:bg-violet-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(245 243 255/var(--tw-bg-opacity))}.file\\:py-2::file-selector-button{padding-bottom:.5rem;padding-top:.5rem}.file\\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\\:font-semibold::file-selector-button{font-weight:600}.file\\:text-violet-700::file-selector-button{--tw-text-opacity:1;color:rgb(109 40 217/var(--tw-text-opacity))}.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))}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:.125rem}.after\\:left-\\[2px\\]:after{content:var(--tw-content);left:2px}.after\\:top-0:after{content:var(--tw-content);top:0}.after\\:h-5:after{content:var(--tw-content);height:1.25rem}.after\\:w-5:after{content:var(--tw-content);width:1.25rem}.after\\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\\:border:after{border-width:1px;content:var(--tw-content)}.after\\:border-gray-300:after{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));content:var(--tw-content)}.after\\:bg-white:after{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));content:var(--tw-content)}.after\\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:content-\\[\\'\\'\\]:after{--tw-content:\"\";content:var(--tw-content)}.last\\:border-b-0:last-child{border-bottom-width:0}.invalid\\:border-pink-500:invalid{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity))}.invalid\\:text-pink-600:invalid{--tw-text-opacity:1;color:rgb(219 39 119/var(--tw-text-opacity))}.hover\\:border-b-2:hover{border-bottom-width:2px}.hover\\:border-red-400:hover{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.hover\\:border-violet-400:hover{--tw-border-opacity:1;border-color:rgb(167 139 250/var(--tw-border-opacity))}.hover\\:border-orange-400:hover{--tw-border-opacity:1;border-color:rgb(251 146 60/var(--tw-border-opacity))}.hover\\:border-amber-400:hover{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity))}.hover\\:border-emerald-400:hover{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity))}.hover\\:border-sky-400:hover{--tw-border-opacity:1;border-color:rgb(56 189 248/var(--tw-border-opacity))}.hover\\:border-gray-200:hover{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.hover\\:border-slate-600:hover{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.hover\\:border-sky-600:hover{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.hover\\:border-green-600:hover{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.hover\\:border-primary-600:hover{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.hover\\:border-secondary-600:hover{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.hover\\:border-rose-600:hover{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.hover\\:border-emerald-600:hover{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.hover\\:border-sky-300\\/95:hover{border-color:rgba(125,211,252,.95)}.hover\\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.hover\\:border-dark-blue-600:hover{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.hover\\:border-sky-100:hover{--tw-border-opacity:1;border-color:rgb(224 242 254/var(--tw-border-opacity))}.hover\\:border-b-sky-400:hover{--tw-border-opacity:1;border-bottom-color:rgb(56 189 248/var(--tw-border-opacity))}.hover\\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.hover\\:bg-red-300:hover{--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity))}.hover\\:bg-violet-200:hover{--tw-bg-opacity:1;background-color:rgb(221 214 254/var(--tw-bg-opacity))}.hover\\:bg-violet-300:hover{--tw-bg-opacity:1;background-color:rgb(196 181 253/var(--tw-bg-opacity))}.hover\\:bg-orange-200:hover{--tw-bg-opacity:1;background-color:rgb(254 215 170/var(--tw-bg-opacity))}.hover\\:bg-orange-300:hover{--tw-bg-opacity:1;background-color:rgb(253 186 116/var(--tw-bg-opacity))}.hover\\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.hover\\:bg-amber-300:hover{--tw-bg-opacity:1;background-color:rgb(252 211 77/var(--tw-bg-opacity))}.hover\\:bg-emerald-200:hover{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity))}.hover\\:bg-emerald-300:hover{--tw-bg-opacity:1;background-color:rgb(110 231 183/var(--tw-bg-opacity))}.hover\\:bg-sky-200:hover{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.hover\\:bg-sky-300:hover{--tw-bg-opacity:1;background-color:rgb(125 211 252/var(--tw-bg-opacity))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.hover\\:bg-sky-600:hover{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.hover\\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.hover\\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.hover\\:bg-secondary-600:hover{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.hover\\:bg-rose-600:hover{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.hover\\:bg-emerald-600:hover{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.hover\\:bg-sky-400\\/95:hover{background-color:rgba(56,189,248,.95)}.hover\\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.hover\\:bg-dark-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(10 15 46/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-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\\:bg-sky-50:hover{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity))}.hover\\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\\:bg-sky-400:hover{--tw-bg-opacity:1;background-color:rgb(56 189 248/var(--tw-bg-opacity))}.hover\\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\\:bg-dark-blue-400\\/90:hover{background-color:rgba(35,42,58,.9)}.hover\\:bg-gold-400\\/90:hover{background-color:rgba(255,212,77,.9)}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/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-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.hover\\:stroke-red-400:hover{stroke:#f87171}.hover\\:stroke-violet-400:hover{stroke:#a78bfa}.hover\\:stroke-orange-400:hover{stroke:#fb923c}.hover\\:stroke-amber-400:hover{stroke:#fbbf24}.hover\\:stroke-emerald-400:hover{stroke:#34d399}.hover\\:stroke-sky-400:hover{stroke:#38bdf8}.hover\\:stroke-gray-400:hover{stroke:#9ca3af}.hover\\:font-semibold:hover{font-weight:600}.hover\\:text-red-400:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.hover\\:text-violet-400:hover{--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity))}.hover\\:text-orange-400:hover{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity))}.hover\\:text-amber-400:hover{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity))}.hover\\:text-emerald-400:hover{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity))}.hover\\:text-sky-400:hover{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity))}.hover\\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.hover\\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:text-sky-600:hover{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.hover\\:text-green-600:hover{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.hover\\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.hover\\:text-secondary-600:hover{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.hover\\:text-rose-600:hover{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.hover\\:text-emerald-600:hover{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.hover\\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.hover\\:text-dark-blue-600:hover{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\\:text-slate-400:hover{--tw-text-opacity:1;color:rgb(148 163 184/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\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\\:text-sky-500:hover{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.hover\\:text-cyan-400:hover{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity))}.hover\\:text-rose-400:hover{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity))}.hover\\:text-green-500:hover{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.hover\\:text-zinc-500:hover{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:file\\:bg-violet-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(237 233 254/var(--tw-bg-opacity))}.hover\\:placeholder\\:text-slate-600:hover::-moz-placeholder{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.hover\\:placeholder\\:text-slate-600:hover::placeholder{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.focus\\:border-slate-600:focus{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.focus\\:border-sky-600:focus{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.focus\\:border-green-600:focus{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.focus\\:border-primary-600:focus{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.focus\\:border-secondary-600:focus{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.focus\\:border-rose-600:focus{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.focus\\:border-emerald-600:focus{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.focus\\:border-sky-300\\/95:focus{border-color:rgba(125,211,252,.95)}.focus\\:border-blue-600:focus{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.focus\\:border-dark-blue-600:focus{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.focus\\:border-sky-500:focus{--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity))}.focus\\:border-sky-100:focus{--tw-border-opacity:1;border-color:rgb(224 242 254/var(--tw-border-opacity))}.focus\\:bg-slate-600:focus{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.focus\\:bg-sky-600:focus{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.focus\\:bg-green-600:focus{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.focus\\:bg-primary-600:focus{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.focus\\:bg-secondary-600:focus{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.focus\\:bg-rose-600:focus{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.focus\\:bg-emerald-600:focus{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.focus\\:bg-blue-600:focus{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.focus\\:bg-dark-blue-600:focus{--tw-bg-opacity:1;background-color:rgb(10 15 46/var(--tw-bg-opacity))}.focus\\:bg-gray-50:focus{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.focus\\:text-slate-600:focus{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.focus\\:text-sky-600:focus{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.focus\\:text-green-600:focus{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.focus\\:text-primary-600:focus{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.focus\\:text-secondary-600:focus{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.focus\\:text-rose-600:focus{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.focus\\:text-emerald-600:focus{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.focus\\:text-blue-600:focus{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.focus\\:text-dark-blue-600:focus{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.focus\\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-sky-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(14 165 233/var(--tw-ring-opacity))}.focus\\:ring-sky-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(224 242 254/var(--tw-ring-opacity))}.focus\\:invalid\\:border-pink-500:invalid:focus{--tw-border-opacity:1;border-color:rgb(236 72 153/var(--tw-border-opacity))}.focus\\:invalid\\:ring-pink-500:invalid:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(236 72 153/var(--tw-ring-opacity))}.active\\:border-slate-600:active{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity))}.active\\:border-sky-600:active{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity))}.active\\:border-green-600:active{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity))}.active\\:border-primary-600:active{--tw-border-opacity:1;border-color:rgb(58 209 242/var(--tw-border-opacity))}.active\\:border-secondary-600:active{--tw-border-opacity:1;border-color:rgb(34 42 57/var(--tw-border-opacity))}.active\\:border-rose-600:active{--tw-border-opacity:1;border-color:rgb(225 29 72/var(--tw-border-opacity))}.active\\:border-emerald-600:active{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity))}.active\\:border-sky-300\\/95:active{border-color:rgba(125,211,252,.95)}.active\\:border-blue-600:active{--tw-border-opacity:1;border-color:rgb(1 95 159/var(--tw-border-opacity))}.active\\:border-dark-blue-600:active{--tw-border-opacity:1;border-color:rgb(10 15 46/var(--tw-border-opacity))}.active\\:bg-slate-600:active{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}.active\\:bg-sky-600:active{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity))}.active\\:bg-green-600:active{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.active\\:bg-primary-600:active{--tw-bg-opacity:1;background-color:rgb(58 209 242/var(--tw-bg-opacity))}.active\\:bg-secondary-600:active{--tw-bg-opacity:1;background-color:rgb(34 42 57/var(--tw-bg-opacity))}.active\\:bg-rose-600:active{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity))}.active\\:bg-emerald-600:active{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity))}.active\\:bg-blue-600:active{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.active\\:bg-dark-blue-600:active{--tw-bg-opacity:1;background-color:rgb(10 15 46/var(--tw-bg-opacity))}.active\\:bg-gray-50:active{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.active\\:bg-white:active{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.active\\:text-slate-600:active{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.active\\:text-sky-600:active{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity))}.active\\:text-green-600:active{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.active\\:text-primary-600:active{--tw-text-opacity:1;color:rgb(58 209 242/var(--tw-text-opacity))}.active\\:text-secondary-600:active{--tw-text-opacity:1;color:rgb(34 42 57/var(--tw-text-opacity))}.active\\:text-rose-600:active{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity))}.active\\:text-emerald-600:active{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity))}.active\\:text-blue-600:active{--tw-text-opacity:1;color:rgb(1 95 159/var(--tw-text-opacity))}.active\\:text-dark-blue-600:active{--tw-text-opacity:1;color:rgb(10 15 46/var(--tw-text-opacity))}.active\\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:border-slate-200:disabled{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.disabled\\:bg-slate-50:disabled{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.disabled\\:text-slate-500:disabled{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.disabled\\:text-gray-600:disabled{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.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)}.peer:checked~.peer-checked\\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(1 95 159/var(--tw-bg-opacity))}.peer:checked~.peer-checked\\:after\\:translate-x-full:after{--tw-translate-x:100%;content:var(--tw-content);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))}.peer:checked~.peer-checked\\:after\\:border-white:after{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity))}@media (prefers-color-scheme:dark){.dark\\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.peer:focus~.dark\\:peer-focus\\:ring-blue-800{--tw-ring-opacity:1;--tw-ring-color:rgb(30 64 175/var(--tw-ring-opacity))}}@media (min-width:640px){.sm\\:flex{display:flex}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:place-content-between{place-content:space-between}}@media (min-width:768px){.md\\:invisible{visibility:hidden}.md\\:mr-6{margin-right:1.5rem}.md\\:flex{display:flex}.md\\:grid{display:grid}.md\\:hidden{display:none}.md\\:h-6{height:1.5rem}.md\\:h-\\[24rem\\]{height:24rem}.md\\:w-6{width:1.5rem}.md\\:w-\\[28rem\\]{width:28rem}.md\\:w-\\[40rem\\]{width:40rem}.md\\:w-\\[30rem\\]{width:30rem}.md\\:w-\\[20rem\\]{width:20rem}.md\\:w-\\[24rem\\]{width:24rem}.md\\:w-\\[16rem\\]{width:16rem}.md\\:w-\\[32rem\\]{width:32rem}.md\\:w-max{width:-moz-max-content;width:max-content}.md\\:w-\\[50rem\\]{width:50rem}.md\\:min-w-\\[30rem\\]{min-width:30rem}.md\\:max-w-\\[22rem\\]{max-width:22rem}.md\\:max-w-\\[30rem\\]{max-width:30rem}.md\\:max-w-\\[40rem\\]{max-width:40rem}.md\\:scale-\\[1\\.2\\]{--tw-scale-x:1.2;--tw-scale-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))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:flex-col{flex-direction:column}.md\\:items-start{align-items:flex-start}.md\\:items-center{align-items:center}.md\\:justify-between{justify-content:space-between}.md\\:border-b{border-bottom-width:1px}.md\\:p-1\\.5{padding:.375rem}.md\\:p-1{padding:.25rem}.md\\:px-2{padding-left:.5rem;padding-right:.5rem}.md\\:text-sm{font-size:.875rem;line-height:1.25rem}.md\\:shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:1024px){.lg\\:sticky{position:sticky}.lg\\:top-0{top:0}.lg\\:top-2{top:.5rem}.lg\\:right-3{right:.75rem}.lg\\:col-span-2{grid-column:span 2/span 2}.lg\\:mt-0{margin-top:0}.lg\\:inline-block{display:inline-block}.lg\\:flex{display:flex}.lg\\:h-screen{height:100vh}.lg\\:h-\\[22rem\\]{height:22rem}.lg\\:h-32{height:8rem}.lg\\:h-4{height:1rem}.lg\\:h-\\[18rem\\]{height:18rem}.lg\\:h-\\[5\\.5rem\\]{height:5.5rem}.lg\\:min-h-24{min-height:6rem}.lg\\:w-\\[230px\\]{width:230px}.lg\\:w-32{width:8rem}.lg\\:w-4{width:1rem}.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:gap-2{gap:.5rem}.lg\\:gap-1{gap:.25rem}.lg\\:gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.lg\\:gap-y-3{row-gap:.75rem}.lg\\:self-start{align-self:flex-start}.lg\\:overflow-y-auto{overflow-y:auto}.lg\\:px-0{padding-left:0;padding-right:0}.lg\\:px-36{padding-left:9rem;padding-right:9rem}.lg\\:py-3{padding-bottom:.75rem;padding-top:.75rem}.lg\\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\\:px-56{padding-left:14rem;padding-right:14rem}.lg\\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\\:text-4xl{font-size:2.25rem;line-height:2.5rem}}";
57
57
  styleInject(css_248z);
58
58
 
59
59
  const builder = (base = "", precondition) => {
@@ -954,19 +954,19 @@ const sprite = {
954
954
  }
955
955
  };
956
956
 
957
- var __defProp$k = Object.defineProperty;
958
- var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
959
- var __hasOwnProp$k = Object.prototype.hasOwnProperty;
960
- var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
961
- var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
962
- var __spreadValues$k = (a, b) => {
957
+ var __defProp$n = Object.defineProperty;
958
+ var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
959
+ var __hasOwnProp$n = Object.prototype.hasOwnProperty;
960
+ var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
961
+ var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
962
+ var __spreadValues$n = (a, b) => {
963
963
  for (var prop in b || (b = {}))
964
- if (__hasOwnProp$k.call(b, prop))
965
- __defNormalProp$k(a, prop, b[prop]);
966
- if (__getOwnPropSymbols$k)
967
- for (var prop of __getOwnPropSymbols$k(b)) {
968
- if (__propIsEnum$k.call(b, prop))
969
- __defNormalProp$k(a, prop, b[prop]);
964
+ if (__hasOwnProp$n.call(b, prop))
965
+ __defNormalProp$n(a, prop, b[prop]);
966
+ if (__getOwnPropSymbols$n)
967
+ for (var prop of __getOwnPropSymbols$n(b)) {
968
+ if (__propIsEnum$n.call(b, prop))
969
+ __defNormalProp$n(a, prop, b[prop]);
970
970
  }
971
971
  return a;
972
972
  };
@@ -985,9 +985,9 @@ const Icon$1 = (props) => {
985
985
  },
986
986
  /* @__PURE__ */ React.createElement("title", null, props.name),
987
987
  contents.map((v, k) => {
988
- return v.d && /* @__PURE__ */ React.createElement("path", __spreadValues$k({ key: k }, v));
988
+ return v.d && /* @__PURE__ */ React.createElement("path", __spreadValues$n({ key: k }, v));
989
989
  }),
990
- contents.map((v, k) => v.r && /* @__PURE__ */ React.createElement("circle", __spreadValues$k({ key: k }, v)))
990
+ contents.map((v, k) => v.r && /* @__PURE__ */ React.createElement("circle", __spreadValues$n({ key: k }, v)))
991
991
  );
992
992
  };
993
993
 
@@ -1573,25 +1573,25 @@ const ActivityItem = (props) => {
1573
1573
  return /* @__PURE__ */ React__namespace.createElement("div", { onClick: props.onClick, className: "grow cursor-pointer relative rounded-md min-w-64 h-[22rem] overflow-hidden" }, /* @__PURE__ */ React__namespace.createElement("img", { className: "h-full w-full object-cover", alt: props.headline, src: props.imageURL }), /* @__PURE__ */ React__namespace.createElement("div", { className: "absolute bottom-0 w-full" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "p-5 bg-gray-800/75 w-full" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-white w-full" }, props.headline), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2 flex items-center gap-x-2 w-full" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-shrink-0 w-6 h-6 text-white fill-white" }, /* @__PURE__ */ React__namespace.createElement(Icon$1, { name: props.pathway || "globe" })), props.pathway && /* @__PURE__ */ React__namespace.createElement("span", { className: "grow" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-medium capitalize text-white w-full" }, props.pathway)), props.xp && /* @__PURE__ */ React__namespace.createElement("div", { className: "text-slate-600 shadow-md whitespace-nowrap font-bold rounded-md text-sm px-5 py-2 bg-cyan-400" }, props.xp, " pts")))));
1574
1574
  };
1575
1575
 
1576
- var __defProp$j = Object.defineProperty;
1577
- var __defProps$f = Object.defineProperties;
1578
- var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
1579
- var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
1580
- var __hasOwnProp$j = Object.prototype.hasOwnProperty;
1581
- var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
1582
- var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1583
- var __spreadValues$j = (a, b) => {
1576
+ var __defProp$m = Object.defineProperty;
1577
+ var __defProps$e = Object.defineProperties;
1578
+ var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
1579
+ var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
1580
+ var __hasOwnProp$m = Object.prototype.hasOwnProperty;
1581
+ var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
1582
+ var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1583
+ var __spreadValues$m = (a, b) => {
1584
1584
  for (var prop in b || (b = {}))
1585
- if (__hasOwnProp$j.call(b, prop))
1586
- __defNormalProp$j(a, prop, b[prop]);
1587
- if (__getOwnPropSymbols$j)
1588
- for (var prop of __getOwnPropSymbols$j(b)) {
1589
- if (__propIsEnum$j.call(b, prop))
1590
- __defNormalProp$j(a, prop, b[prop]);
1585
+ if (__hasOwnProp$m.call(b, prop))
1586
+ __defNormalProp$m(a, prop, b[prop]);
1587
+ if (__getOwnPropSymbols$m)
1588
+ for (var prop of __getOwnPropSymbols$m(b)) {
1589
+ if (__propIsEnum$m.call(b, prop))
1590
+ __defNormalProp$m(a, prop, b[prop]);
1591
1591
  }
1592
1592
  return a;
1593
1593
  };
1594
- var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
1594
+ var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
1595
1595
  const TagFilter = (props) => {
1596
1596
  const timeTags = ["15 min", "30 min", "45 min", "60 min"];
1597
1597
  const skillTags = ["Civic", "College", "Academic", "Personal"];
@@ -1603,12 +1603,12 @@ const TagFilter = (props) => {
1603
1603
  const [active, setActive] = React.useState(init);
1604
1604
  const onTagClick = (tag) => {
1605
1605
  if (active[tag]) {
1606
- setActive(__spreadProps$f(__spreadValues$j({}, active), { [tag]: false }));
1607
- const tags = Object.entries(__spreadProps$f(__spreadValues$j({}, active), { [tag]: false })).filter(([, active2]) => active2).map(([tag2]) => tag2);
1606
+ setActive(__spreadProps$e(__spreadValues$m({}, active), { [tag]: false }));
1607
+ const tags = Object.entries(__spreadProps$e(__spreadValues$m({}, active), { [tag]: false })).filter(([, active2]) => active2).map(([tag2]) => tag2);
1608
1608
  props.onChange && props.onChange(tags);
1609
1609
  } else {
1610
- setActive(__spreadProps$f(__spreadValues$j({}, active), { [tag]: true }));
1611
- const tags = Object.entries(__spreadProps$f(__spreadValues$j({}, active), { [tag]: true })).filter(([, active2]) => active2).map(([tag2]) => tag2);
1610
+ setActive(__spreadProps$e(__spreadValues$m({}, active), { [tag]: true }));
1611
+ const tags = Object.entries(__spreadProps$e(__spreadValues$m({}, active), { [tag]: true })).filter(([, active2]) => active2).map(([tag2]) => tag2);
1612
1612
  props.onChange && props.onChange(tags);
1613
1613
  }
1614
1614
  };
@@ -1654,25 +1654,25 @@ const debounce = (func, delay) => {
1654
1654
  };
1655
1655
  };
1656
1656
 
1657
- var __defProp$i = Object.defineProperty;
1658
- var __defProps$e = Object.defineProperties;
1659
- var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
1660
- var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
1661
- var __hasOwnProp$i = Object.prototype.hasOwnProperty;
1662
- var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
1663
- var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1664
- var __spreadValues$i = (a, b) => {
1657
+ var __defProp$l = Object.defineProperty;
1658
+ var __defProps$d = Object.defineProperties;
1659
+ var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
1660
+ var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
1661
+ var __hasOwnProp$l = Object.prototype.hasOwnProperty;
1662
+ var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
1663
+ var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1664
+ var __spreadValues$l = (a, b) => {
1665
1665
  for (var prop in b || (b = {}))
1666
- if (__hasOwnProp$i.call(b, prop))
1667
- __defNormalProp$i(a, prop, b[prop]);
1668
- if (__getOwnPropSymbols$i)
1669
- for (var prop of __getOwnPropSymbols$i(b)) {
1670
- if (__propIsEnum$i.call(b, prop))
1671
- __defNormalProp$i(a, prop, b[prop]);
1666
+ if (__hasOwnProp$l.call(b, prop))
1667
+ __defNormalProp$l(a, prop, b[prop]);
1668
+ if (__getOwnPropSymbols$l)
1669
+ for (var prop of __getOwnPropSymbols$l(b)) {
1670
+ if (__propIsEnum$l.call(b, prop))
1671
+ __defNormalProp$l(a, prop, b[prop]);
1672
1672
  }
1673
1673
  return a;
1674
1674
  };
1675
- var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
1675
+ var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
1676
1676
  const ActivityList = (props) => {
1677
1677
  var _a;
1678
1678
  const primary = !props.top ? null : props.top.length > 0 ? props == null ? void 0 : props.top[0] : null;
@@ -1690,14 +1690,14 @@ const ActivityList = (props) => {
1690
1690
  isLoading: props.isLoading,
1691
1691
  primary: !props.search && primary && /* @__PURE__ */ React.createElement(
1692
1692
  ActivityItem,
1693
- __spreadProps$e(__spreadValues$i({}, primary), {
1693
+ __spreadProps$d(__spreadValues$l({}, primary), {
1694
1694
  onClick: () => props.onActivityClick && props.onActivityClick(primary.activityId)
1695
1695
  })
1696
1696
  ),
1697
1697
  top: !props.search && top && top.length > 0 && /* @__PURE__ */ React.createElement("article", { className: "grid grid-cols-1 md:flex gap-2 overflow-auto" }, top.map((activity) => {
1698
1698
  return /* @__PURE__ */ React.createElement(
1699
1699
  ActivityItem,
1700
- __spreadProps$e(__spreadValues$i({
1700
+ __spreadProps$d(__spreadValues$l({
1701
1701
  key: `${activity.activityId}`
1702
1702
  }, activity), {
1703
1703
  onClick: () => props.onActivityClick && props.onActivityClick(activity.activityId)
@@ -1707,7 +1707,7 @@ const ActivityList = (props) => {
1707
1707
  soonest: !props.search && upcoming && upcoming.length > 0 && /* @__PURE__ */ React.createElement("article", { className: "grid grid-cols-1 md:flex gap-2 overflow-auto" }, upcoming.map((activity) => {
1708
1708
  return /* @__PURE__ */ React.createElement(
1709
1709
  ActivityItem,
1710
- __spreadProps$e(__spreadValues$i({
1710
+ __spreadProps$d(__spreadValues$l({
1711
1711
  key: `${activity.activityId}`
1712
1712
  }, activity), {
1713
1713
  onClick: () => props.onActivityClick && props.onActivityClick(activity.activityId)
@@ -1717,7 +1717,7 @@ const ActivityList = (props) => {
1717
1717
  milestones: !props.search && props.milestones && props.milestones.length > 0 && /* @__PURE__ */ React.createElement("article", { className: "grid grid-cols-1 md:flex gap-2 overflow-auto" }, props.milestones.map((activity) => {
1718
1718
  return /* @__PURE__ */ React.createElement(
1719
1719
  ActivityItem,
1720
- __spreadProps$e(__spreadValues$i({
1720
+ __spreadProps$d(__spreadValues$l({
1721
1721
  key: `${activity.activityId}`
1722
1722
  }, activity), {
1723
1723
  onClick: () => props.onActivityClick && props.onActivityClick(activity.activityId)
@@ -1728,7 +1728,7 @@ const ActivityList = (props) => {
1728
1728
  filtered: !!props.search && props.activities && props.activities.length > 0 && /* @__PURE__ */ React.createElement("article", { className: "grid grid-cols-1 md:flex gap-2 overflow-auto" }, props.activities.map((activity) => {
1729
1729
  return /* @__PURE__ */ React.createElement(
1730
1730
  ActivityItem,
1731
- __spreadProps$e(__spreadValues$i({
1731
+ __spreadProps$d(__spreadValues$l({
1732
1732
  key: `${activity.activityId}`
1733
1733
  }, activity), {
1734
1734
  onClick: () => props.onActivityClick && props.onActivityClick(activity.activityId)
@@ -1754,25 +1754,25 @@ const Search$1 = ({ send, value }) => {
1754
1754
  )));
1755
1755
  };
1756
1756
 
1757
- var __defProp$h = Object.defineProperty;
1758
- var __defProps$d = Object.defineProperties;
1759
- var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
1760
- var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
1761
- var __hasOwnProp$h = Object.prototype.hasOwnProperty;
1762
- var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
1763
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1764
- var __spreadValues$h = (a, b) => {
1757
+ var __defProp$k = Object.defineProperty;
1758
+ var __defProps$c = Object.defineProperties;
1759
+ var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
1760
+ var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
1761
+ var __hasOwnProp$k = Object.prototype.hasOwnProperty;
1762
+ var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
1763
+ var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1764
+ var __spreadValues$k = (a, b) => {
1765
1765
  for (var prop in b || (b = {}))
1766
- if (__hasOwnProp$h.call(b, prop))
1767
- __defNormalProp$h(a, prop, b[prop]);
1768
- if (__getOwnPropSymbols$h)
1769
- for (var prop of __getOwnPropSymbols$h(b)) {
1770
- if (__propIsEnum$h.call(b, prop))
1771
- __defNormalProp$h(a, prop, b[prop]);
1766
+ if (__hasOwnProp$k.call(b, prop))
1767
+ __defNormalProp$k(a, prop, b[prop]);
1768
+ if (__getOwnPropSymbols$k)
1769
+ for (var prop of __getOwnPropSymbols$k(b)) {
1770
+ if (__propIsEnum$k.call(b, prop))
1771
+ __defNormalProp$k(a, prop, b[prop]);
1772
1772
  }
1773
1773
  return a;
1774
1774
  };
1775
- var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
1775
+ var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
1776
1776
  const ActivityReflection = (props) => {
1777
1777
  const className = builder("w-full md:w-[40rem]").if(!!props.headline, "min-h-[20rem]").build();
1778
1778
  const [reaction, setReaction] = React.useState({
@@ -1780,8 +1780,8 @@ const ActivityReflection = (props) => {
1780
1780
  reflection: props.reflection
1781
1781
  });
1782
1782
  const hasChanges = props.hasChanges || props.canReflect && (props.rating !== reaction.rating || props.reflection !== reaction.reflection);
1783
- const setFeedback = (feedback) => setReaction(__spreadProps$d(__spreadValues$h({}, reaction), { reflection: feedback }));
1784
- const setRating = (rating) => setReaction(__spreadProps$d(__spreadValues$h({}, reaction), { rating }));
1783
+ const setFeedback = (feedback) => setReaction(__spreadProps$c(__spreadValues$k({}, reaction), { reflection: feedback }));
1784
+ const setRating = (rating) => setReaction(__spreadProps$c(__spreadValues$k({}, reaction), { rating }));
1785
1785
  React.useEffect(() => {
1786
1786
  setReaction({
1787
1787
  rating: props.rating,
@@ -1808,7 +1808,7 @@ const ActivityReflection = (props) => {
1808
1808
  defaultValue: props.reflection,
1809
1809
  className: "resize-none text-slate-500 focus:text-slate-600 h-24 mt-1 block w-full px-3 py-2 bg-white border border-slate-300 rounded-md text-sm shadow-sm placeholder-slate-400\n focus:outline-none focus:border-sky-500 focus:ring-1 focus:ring-sky-500\n disabled:bg-slate-50 disabled:text-slate-500 disabled:border-slate-200 disabled:shadow-none\n invalid:border-pink-500 invalid:text-pink-600\n focus:invalid:border-pink-500 focus:invalid:ring-pink-500"
1810
1810
  }
1811
- ), props.canReflect && /* @__PURE__ */ React.createElement(Rating$1, __spreadProps$d(__spreadValues$h(__spreadValues$h({}, props), reaction), { setRating })))))));
1811
+ ), props.canReflect && /* @__PURE__ */ React.createElement(Rating$1, __spreadProps$c(__spreadValues$k(__spreadValues$k({}, props), reaction), { setRating })))))));
1812
1812
  };
1813
1813
  const Rating$1 = (props) => {
1814
1814
  const maxPoints = 5;
@@ -3021,6 +3021,10 @@ const Progress = (props) => {
3021
3021
  switch (props.color) {
3022
3022
  case "sky-blue":
3023
3023
  return ["bg-sky-blue-200", "bg-sky-blue-400"];
3024
+ case "mint":
3025
+ return ["bg-mint-400/20", "bg-mint-400"];
3026
+ case "gold":
3027
+ return ["bg-gold-400/20", "bg-gold-400"];
3024
3028
  default:
3025
3029
  return ["bg-gray-200", "bg-green-400"];
3026
3030
  }
@@ -3214,25 +3218,25 @@ const Overlay = (props) => {
3214
3218
  return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex fixed overscroll-none w-screen h-screen top-0 left-0 bg-gray-300/75 z-30" }, props.children);
3215
3219
  };
3216
3220
 
3217
- var __defProp$g = Object.defineProperty;
3218
- var __defProps$c = Object.defineProperties;
3219
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
3220
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
3221
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
3222
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
3223
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3224
- var __spreadValues$g = (a, b) => {
3221
+ var __defProp$j = Object.defineProperty;
3222
+ var __defProps$b = Object.defineProperties;
3223
+ var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
3224
+ var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
3225
+ var __hasOwnProp$j = Object.prototype.hasOwnProperty;
3226
+ var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
3227
+ var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3228
+ var __spreadValues$j = (a, b) => {
3225
3229
  for (var prop in b || (b = {}))
3226
- if (__hasOwnProp$g.call(b, prop))
3227
- __defNormalProp$g(a, prop, b[prop]);
3228
- if (__getOwnPropSymbols$g)
3229
- for (var prop of __getOwnPropSymbols$g(b)) {
3230
- if (__propIsEnum$g.call(b, prop))
3231
- __defNormalProp$g(a, prop, b[prop]);
3230
+ if (__hasOwnProp$j.call(b, prop))
3231
+ __defNormalProp$j(a, prop, b[prop]);
3232
+ if (__getOwnPropSymbols$j)
3233
+ for (var prop of __getOwnPropSymbols$j(b)) {
3234
+ if (__propIsEnum$j.call(b, prop))
3235
+ __defNormalProp$j(a, prop, b[prop]);
3232
3236
  }
3233
3237
  return a;
3234
3238
  };
3235
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
3239
+ var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
3236
3240
  const Badge = (props) => {
3237
3241
  var _a, _b;
3238
3242
  const [open, setOpen] = React__namespace.useState(props.open || false);
@@ -3250,7 +3254,7 @@ const Badge = (props) => {
3250
3254
  props.onClose();
3251
3255
  }
3252
3256
  };
3253
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, !open && /* @__PURE__ */ React__namespace.createElement(BadgeButton, __spreadProps$c(__spreadValues$g({}, props), { progress, target, onClick: onOpen })), open && !!props.preview && /* @__PURE__ */ React__namespace.createElement(BadgeCard, __spreadProps$c(__spreadValues$g({}, props), { onClose })), open && !props.preview && /* @__PURE__ */ React__namespace.createElement(Overlay, null, /* @__PURE__ */ React__namespace.createElement(BadgeCard, __spreadProps$c(__spreadValues$g({}, props), { onClose }))));
3257
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, !open && /* @__PURE__ */ React__namespace.createElement(BadgeButton, __spreadProps$b(__spreadValues$j({}, props), { progress, target, onClick: onOpen })), open && !!props.preview && /* @__PURE__ */ React__namespace.createElement(BadgeCard, __spreadProps$b(__spreadValues$j({}, props), { onClose })), open && !props.preview && /* @__PURE__ */ React__namespace.createElement(Overlay, null, /* @__PURE__ */ React__namespace.createElement(BadgeCard, __spreadProps$b(__spreadValues$j({}, props), { onClose }))));
3254
3258
  };
3255
3259
 
3256
3260
  const BadgeActivity = (props) => {
@@ -3285,25 +3289,25 @@ const BadgeActivity = (props) => {
3285
3289
  })))));
3286
3290
  };
3287
3291
 
3288
- var __defProp$f = Object.defineProperty;
3289
- var __defProps$b = Object.defineProperties;
3290
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
3291
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
3292
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
3293
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
3294
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3295
- var __spreadValues$f = (a, b) => {
3292
+ var __defProp$i = Object.defineProperty;
3293
+ var __defProps$a = Object.defineProperties;
3294
+ var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
3295
+ var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
3296
+ var __hasOwnProp$i = Object.prototype.hasOwnProperty;
3297
+ var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
3298
+ var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3299
+ var __spreadValues$i = (a, b) => {
3296
3300
  for (var prop in b || (b = {}))
3297
- if (__hasOwnProp$f.call(b, prop))
3298
- __defNormalProp$f(a, prop, b[prop]);
3299
- if (__getOwnPropSymbols$f)
3300
- for (var prop of __getOwnPropSymbols$f(b)) {
3301
- if (__propIsEnum$f.call(b, prop))
3302
- __defNormalProp$f(a, prop, b[prop]);
3301
+ if (__hasOwnProp$i.call(b, prop))
3302
+ __defNormalProp$i(a, prop, b[prop]);
3303
+ if (__getOwnPropSymbols$i)
3304
+ for (var prop of __getOwnPropSymbols$i(b)) {
3305
+ if (__propIsEnum$i.call(b, prop))
3306
+ __defNormalProp$i(a, prop, b[prop]);
3303
3307
  }
3304
3308
  return a;
3305
3309
  };
3306
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
3310
+ var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
3307
3311
  const BadgeActivityMenu = (props) => {
3308
3312
  const criteria = props.criteria || [];
3309
3313
  return /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-1 gap-y-4 w-full text-zinc-600" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "py-8 px-10 grid grid-cols-1 gap-y-5 rounded-b-md border-b border-x border-zinc-100" }, /* @__PURE__ */ React__namespace.createElement(
@@ -3320,7 +3324,7 @@ const BadgeActivityMenu = (props) => {
3320
3324
  return /* @__PURE__ */ React__namespace.createElement("div", { key: id, className: "grid grid-cols-1 gap-y-8" }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-lg font-semibold" }, c.displayName), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm" }, "Chose one activity to complete.")), /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-flow-col auto-cols-max gap-4 px-1 pt-1 pb-2 w-full overflow-x-auto" }, options.map((o, i2) => {
3321
3325
  const id2 = o.activityId || i2;
3322
3326
  const date = o.startTime ? new Date(o.startTime) : null;
3323
- return /* @__PURE__ */ React__namespace.createElement("div", { key: id2, className: "grid grid-cols-1 gap-y-2" }, date && /* @__PURE__ */ React__namespace.createElement("p", null, Intl.DateTimeFormat("en-US", { month: "long" }).format(date), " ", ordNumber$1(date.getDate())), !date && /* @__PURE__ */ React__namespace.createElement("p", { className: "invisible" }, "Online"), /* @__PURE__ */ React__namespace.createElement(BadgeActivity, __spreadProps$b(__spreadValues$f({}, o), { criteriaName: c.displayName })));
3327
+ return /* @__PURE__ */ React__namespace.createElement("div", { key: id2, className: "grid grid-cols-1 gap-y-2" }, date && /* @__PURE__ */ React__namespace.createElement("p", null, Intl.DateTimeFormat("en-US", { month: "long" }).format(date), " ", ordNumber$1(date.getDate())), !date && /* @__PURE__ */ React__namespace.createElement("p", { className: "invisible" }, "Online"), /* @__PURE__ */ React__namespace.createElement(BadgeActivity, __spreadProps$a(__spreadValues$i({}, o), { criteriaName: c.displayName })));
3324
3328
  })));
3325
3329
  })));
3326
3330
  };
@@ -3365,25 +3369,25 @@ const Widget = (props) => {
3365
3369
  return /* @__PURE__ */ React.createElement("article", { className }, !props.headless && /* @__PURE__ */ React.createElement("div", { className: "p-2 bg-gray-200" }), /* @__PURE__ */ React.createElement(Loader, { isLoading: props.isLoading }, /* @__PURE__ */ React.createElement("div", { className: "relative w-full" }, props.children)));
3366
3370
  };
3367
3371
 
3368
- var __defProp$e = Object.defineProperty;
3369
- var __defProps$a = Object.defineProperties;
3370
- var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
3371
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
3372
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
3373
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
3374
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3375
- var __spreadValues$e = (a, b) => {
3372
+ var __defProp$h = Object.defineProperty;
3373
+ var __defProps$9 = Object.defineProperties;
3374
+ var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
3375
+ var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
3376
+ var __hasOwnProp$h = Object.prototype.hasOwnProperty;
3377
+ var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
3378
+ var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3379
+ var __spreadValues$h = (a, b) => {
3376
3380
  for (var prop in b || (b = {}))
3377
- if (__hasOwnProp$e.call(b, prop))
3378
- __defNormalProp$e(a, prop, b[prop]);
3379
- if (__getOwnPropSymbols$e)
3380
- for (var prop of __getOwnPropSymbols$e(b)) {
3381
- if (__propIsEnum$e.call(b, prop))
3382
- __defNormalProp$e(a, prop, b[prop]);
3381
+ if (__hasOwnProp$h.call(b, prop))
3382
+ __defNormalProp$h(a, prop, b[prop]);
3383
+ if (__getOwnPropSymbols$h)
3384
+ for (var prop of __getOwnPropSymbols$h(b)) {
3385
+ if (__propIsEnum$h.call(b, prop))
3386
+ __defNormalProp$h(a, prop, b[prop]);
3383
3387
  }
3384
3388
  return a;
3385
3389
  };
3386
- var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
3390
+ var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
3387
3391
  const DEFAULT_FILTERS = [
3388
3392
  { label: "In Progress" },
3389
3393
  { label: "Completed" },
@@ -3443,7 +3447,7 @@ const BadgeSection = (props) => {
3443
3447
  if (!(opt.label in filters)) {
3444
3448
  return;
3445
3449
  }
3446
- const next = __spreadValues$e({}, filters);
3450
+ const next = __spreadValues$h({}, filters);
3447
3451
  next[opt.label].isActive = !next[opt.label].isActive;
3448
3452
  setFilters(next);
3449
3453
  },
@@ -3469,15 +3473,15 @@ const BadgeSection = (props) => {
3469
3473
  },
3470
3474
  "Grid View?"
3471
3475
  )))), /* @__PURE__ */ React__namespace.createElement("div", null, !!props.readonly && /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, preview.map((b, i) => {
3472
- return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$a(__spreadValues$e({ key: i }, b), { compact: list, readonly: props.readonly }));
3476
+ return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$9(__spreadValues$h({ key: i }, b), { compact: list, readonly: props.readonly }));
3473
3477
  })), !props.readonly && /* @__PURE__ */ React__namespace.createElement("div", { className: "text-zinc-600 grid grid-cols-1 gap-y-4" }, (isWithoutFilters || "In Progress" in filters && filters["In Progress"].isActive) && progress.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, showSectionHeaders && /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "In Progress"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, progress.map((b, i) => {
3474
- return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$a(__spreadValues$e({ key: i }, b), { compact: list }));
3478
+ return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$9(__spreadValues$h({ key: i }, b), { compact: list }));
3475
3479
  }))), (isWithoutFilters || "Completed" in filters && filters["Completed"].isActive) && collected.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, showSectionHeaders && /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "Completed"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, collected.map((b, i) => {
3476
- return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$a(__spreadValues$e({ key: i }, b), { compact: list }));
3480
+ return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$9(__spreadValues$h({ key: i }, b), { compact: list }));
3477
3481
  }))), (isWithoutFilters || "Available" in filters && filters["Available"].isActive) && available.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, showSectionHeaders && /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "Available"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, available.map((b, i) => {
3478
- return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$a(__spreadValues$e({ key: i }, b), { compact: list }));
3482
+ return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$9(__spreadValues$h({ key: i }, b), { compact: list }));
3479
3483
  }))), (isWithoutFilters || "Locked" in filters && filters["Locked"].isActive) && locked.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, showSectionHeaders && /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "Locked"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, locked.map((b, i) => {
3480
- return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$a(__spreadValues$e({ key: i }, b), { compact: list }));
3484
+ return /* @__PURE__ */ React__namespace.createElement(Badge, __spreadProps$9(__spreadValues$h({ key: i }, b), { compact: list }));
3481
3485
  }))))))))));
3482
3486
  };
3483
3487
  const getLayout$1 = (list) => {
@@ -3591,56 +3595,298 @@ const Board = (props) => {
3591
3595
  return /* @__PURE__ */ React.createElement("div", { className: "w-full" }, /* @__PURE__ */ React.createElement("div", { className }, /* @__PURE__ */ React.createElement("div", { className: layoutClassName }, props.tabs)), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Loader, { isLoading: props.isLoading }, !hasWorkflow && /* @__PURE__ */ React.createElement("div", { className: "grid justify-items-center content-center" }, /* @__PURE__ */ React.createElement("p", { className: "text-sm text-center align-middle leading-6 font-semibold text-slate-300" }, "No content to display.")), hasWorkflow && props.workflow)));
3592
3596
  };
3593
3597
 
3594
- const DateSelection = (props) => {
3595
- const today = new Date();
3596
- const [month, setMonth] = React.useState(calend(props.date || today));
3597
- return /* @__PURE__ */ React.createElement(Widget, { isLoading: props.isLoading }, /* @__PURE__ */ React.createElement(WidgetHeader, { divide: true }, /* @__PURE__ */ React.createElement(WidgetTitle, { icon: "calendar" }, "Calendar")), /* @__PURE__ */ React.createElement(WidgetBody, null, /* @__PURE__ */ React.createElement(MonthSelection, { month, setMonth }), /* @__PURE__ */ React.createElement(DaySelection, { date: props.date, month, setDate: props.setDate })));
3598
+ const ACCENT_CLASSNAMES$2 = {
3599
+ cyan: "bg-sky-blue-400/15 border border-sky-blue-400/30",
3600
+ mint: "bg-mint-400/15 border border-mint-400/30",
3601
+ gold: "bg-gold-400/15 border border-gold-400/30",
3602
+ slate: "bg-slate-100 border border-slate-200"
3598
3603
  };
3599
- const MonthSelection = (props) => {
3600
- const month = props.month;
3601
- const previousMonth = () => props.setMonth(new Date(month.getFullYear(), month.getMonth() - 1, 1));
3602
- const nextMonth = () => props.setMonth(new Date(month.getFullYear(), month.getMonth() + 1, 1));
3603
- return /* @__PURE__ */ React.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React.createElement("div", { className: "grow" }, /* @__PURE__ */ React.createElement("span", { className: "font-semibold text-md text-slate-300" }, formatDate$1(month, { month: "long" })), /* @__PURE__ */ React.createElement("span", { className: "text-md ml-1 text-slate-300" }, formatDate$1(month, { year: "numeric" }))), /* @__PURE__ */ React.createElement("div", { onClick: previousMonth, className: "cursor-pointer w-3 h-3 min-w-3 text-slate-300 hover:text-slate-500" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "leftArrow" })), /* @__PURE__ */ React.createElement("div", { onClick: nextMonth, className: "cursor-pointer ml-2 w-3 h-3 min-w-3 text-slate-300 hover:text-slate-500" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "rightArrow" })));
3604
+ const Pill = (props) => {
3605
+ const accentClassName = ACCENT_CLASSNAMES$2[props.accent || "slate"];
3606
+ return /* @__PURE__ */ React__namespace.createElement("span", { className: `inline-flex items-center rounded-full px-3 py-1 text-xs font-bold text-dark-blue-400 ${accentClassName}` }, props.label);
3604
3607
  };
3605
- const DaySelection = (props) => {
3606
- const today = new Date();
3607
- const Days = [];
3608
- const [start, end] = weeks(props.month, 6);
3609
- for (let cur = start; cur <= end; cur = nextDate$1(cur)) {
3610
- const isToday = isSameDate(today, cur);
3611
- const isActive = isSameDate(props.date, cur);
3612
- const isCurrentMonth = cur.getMonth() === props.month.getMonth();
3613
- const onClick = () => props.setDate(isActive ? null : cur);
3614
- Days.push(
3615
- /* @__PURE__ */ React.createElement(
3616
- DaySelectionOption,
3617
- {
3618
- key: cur.toString(),
3619
- today: isToday,
3620
- active: isActive,
3621
- currentMonth: isCurrentMonth,
3622
- onClick
3623
- },
3624
- cur.getDate()
3625
- )
3626
- );
3627
- }
3628
- return /* @__PURE__ */ React.createElement("div", { className: "mt-4 grid grid-cols-7 gap-1 text-sm justify-items-center" }, WEEKDAYS.map((date) => {
3629
- return /* @__PURE__ */ React.createElement("span", { key: date, className: "w-8 text-center text-slate-400" }, date);
3630
- }), Days);
3608
+
3609
+ var __defProp$g = Object.defineProperty;
3610
+ var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
3611
+ var __hasOwnProp$g = Object.prototype.hasOwnProperty;
3612
+ var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
3613
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3614
+ var __spreadValues$g = (a, b) => {
3615
+ for (var prop in b || (b = {}))
3616
+ if (__hasOwnProp$g.call(b, prop))
3617
+ __defNormalProp$g(a, prop, b[prop]);
3618
+ if (__getOwnPropSymbols$g)
3619
+ for (var prop of __getOwnPropSymbols$g(b)) {
3620
+ if (__propIsEnum$g.call(b, prop))
3621
+ __defNormalProp$g(a, prop, b[prop]);
3622
+ }
3623
+ return a;
3631
3624
  };
3632
- const DaySelectionOption = (props) => {
3633
- const className = builder("w-8 h-8 text-center cursor-pointer p-2").append("hover:text-white hover:font-semibold hover:bg-sky-400").if(props.active, "text-white font-semibold bg-sky-400").if(!props.active && props.today, "font-semibold bg-slate-100 rounded-full").if(!props.active && !props.today && props.currentMonth, "text-slate-500 font-semibold").if(!props.active && !props.today && !props.currentMonth, "text-slate-400").build();
3634
- return /* @__PURE__ */ React.createElement("span", { onClick: props.onClick, className }, props.children);
3625
+ const FILTERS$1 = ["In Progress", "Completed", "Available", "Locked"];
3626
+ const STATUS_CLASSNAMES$2 = {
3627
+ "In Progress": {
3628
+ border: "border-sky-blue-400/30",
3629
+ shadow: "shadow-[0_4px_20px_rgba(59,208,242,0.10)]",
3630
+ strip: "from-sky-blue-400 to-mint-400",
3631
+ pillAccent: "cyan",
3632
+ pillLabel: "Active"
3633
+ },
3634
+ Completed: {
3635
+ border: "border-mint-400/30",
3636
+ shadow: "shadow-[0_4px_20px_rgba(30,226,175,0.10)]",
3637
+ strip: "from-mint-400 to-gold-400",
3638
+ pillAccent: "mint",
3639
+ pillLabel: "Done"
3640
+ },
3641
+ Available: {
3642
+ border: "border-gold-400/30",
3643
+ shadow: "shadow-[0_4px_20px_rgba(255,212,77,0.10)]",
3644
+ strip: "from-gold-400 to-sky-blue-400",
3645
+ pillAccent: "gold",
3646
+ pillLabel: "Open"
3647
+ },
3648
+ Locked: {
3649
+ border: "border-slate-200",
3650
+ shadow: "shadow-sm",
3651
+ strip: "from-slate-200 to-slate-200",
3652
+ pillAccent: "slate",
3653
+ pillLabel: "Locked"
3654
+ }
3635
3655
  };
3636
- const WEEKDAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
3637
- const weeks = (date, weeks2) => {
3638
- const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay());
3639
- const end = new Date(start.getFullYear(), start.getMonth(), start.getDate() + weeks2 * 7 - 1);
3640
- return [start, end];
3656
+ const BadgesList = (props) => {
3657
+ const groups = groupBadges$1(props.badges);
3658
+ const [active, setActive] = React__namespace.useState("In Progress");
3659
+ const [list, setList] = React__namespace.useState(props.list);
3660
+ React__namespace.useEffect(() => {
3661
+ setList(props.list);
3662
+ }, [props.list]);
3663
+ React__namespace.useEffect(() => {
3664
+ if (list !== void 0 && props.list !== list && props.onToggleLayout) {
3665
+ props.onToggleLayout(list);
3666
+ }
3667
+ }, [list]);
3668
+ const visible = groups[active];
3669
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center justify-between gap-3" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-semibold text-slate-400" }, props.badges.length, " badge", props.badges.length === 1 ? "" : "s"), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-2.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-4 gap-1 rounded-xl border border-slate-200 bg-white p-1" }, FILTERS$1.map((label) => /* @__PURE__ */ React__namespace.createElement(Tab, { key: label, title: label, secondary: true, active: active === label, onClick: () => setActive(label) }))), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React__namespace.createElement(
3670
+ "button",
3671
+ {
3672
+ type: "button",
3673
+ onClick: () => setList(false),
3674
+ className: `flex h-7 w-7 items-center justify-center rounded-md ${!list ? "bg-slate-100 text-dark-blue-400" : "text-slate-300 hover:text-slate-400"}`
3675
+ },
3676
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconLayoutGrid, { size: 14, stroke: 1.75 })
3677
+ ), /* @__PURE__ */ React__namespace.createElement(
3678
+ "button",
3679
+ {
3680
+ type: "button",
3681
+ onClick: () => setList(true),
3682
+ className: `flex h-7 w-7 items-center justify-center rounded-md ${list ? "bg-slate-100 text-dark-blue-400" : "text-slate-300 hover:text-slate-400"}`
3683
+ },
3684
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconList, { size: 14, stroke: 1.75 })
3685
+ )))), visible.length === 0 && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-400" }, "No badges to display."), visible.length > 0 && (list ? /* @__PURE__ */ React__namespace.createElement("div", { className: "overflow-hidden rounded-2xl border border-slate-200 bg-white" }, visible.map((badge, i) => /* @__PURE__ */ React__namespace.createElement(BadgeListRow, __spreadValues$g({ key: badge.badgeId || i }, badge)))) : /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-2 gap-3.5 sm:grid-cols-3 lg:grid-cols-5" }, visible.map((badge, i) => /* @__PURE__ */ React__namespace.createElement(BadgeListCard, __spreadValues$g({ key: badge.badgeId || i }, badge))))));
3686
+ };
3687
+ const groupBadges$1 = (badges) => {
3688
+ const groups = {
3689
+ "In Progress": [],
3690
+ Completed: [],
3691
+ Available: [],
3692
+ Locked: []
3693
+ };
3694
+ badges.forEach((b) => {
3695
+ if (b.finishedAt) {
3696
+ groups.Completed.push(b);
3697
+ } else if (b.isLocked) {
3698
+ groups.Locked.push(b);
3699
+ } else if (b.startedAt) {
3700
+ groups["In Progress"].push(b);
3701
+ } else {
3702
+ groups.Available.push(b);
3703
+ }
3704
+ });
3705
+ return groups;
3641
3706
  };
3642
- const calend = (date) => {
3643
- return new Date(date.getFullYear(), date.getMonth(), 1);
3707
+ const pillStatus = (props) => {
3708
+ const hasProgress = !!props.startedAt || !!props.finishedAt || !!props.progress && props.progress > 0;
3709
+ return props.isLocked ? "Locked" : props.finishedAt ? "Completed" : hasProgress ? "In Progress" : "Available";
3710
+ };
3711
+ const BadgeListCard = (props) => {
3712
+ const { border, shadow, strip, pillAccent, pillLabel } = STATUS_CLASSNAMES$2[pillStatus(props)];
3713
+ const isDisabled = props.isLocked || !props.onOpen;
3714
+ return /* @__PURE__ */ React__namespace.createElement(
3715
+ "div",
3716
+ {
3717
+ onClick: () => !isDisabled && props.onOpen && props.onOpen(),
3718
+ className: `overflow-hidden rounded-2xl border bg-white ${border} ${shadow} ${isDisabled ? "" : "cursor-pointer hover:bg-slate-50"}`
3719
+ },
3720
+ /* @__PURE__ */ React__namespace.createElement("div", { className: `h-1 bg-gradient-to-r ${strip}` }),
3721
+ /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col items-center gap-2 p-4 text-center" }, /* @__PURE__ */ React__namespace.createElement("div", { className: props.isLocked ? "opacity-40" : "" }, /* @__PURE__ */ React__namespace.createElement(
3722
+ BadgeEmblem,
3723
+ {
3724
+ icon: props.icon,
3725
+ iconURL: props.iconURL,
3726
+ imageURL: props.imageURL,
3727
+ alt: props.displayName,
3728
+ level: props.level,
3729
+ size: "sm"
3730
+ }
3731
+ )), /* @__PURE__ */ React__namespace.createElement("div", { className: "w-full truncate text-xs font-bold text-dark-blue-400" }, props.displayName), /* @__PURE__ */ React__namespace.createElement(Pill, { label: pillLabel, accent: pillAccent }))
3732
+ );
3733
+ };
3734
+ const BadgeListRow = (props) => {
3735
+ const { pillAccent, pillLabel } = STATUS_CLASSNAMES$2[pillStatus(props)];
3736
+ const isDisabled = props.isLocked || !props.onOpen;
3737
+ return /* @__PURE__ */ React__namespace.createElement(
3738
+ "div",
3739
+ {
3740
+ onClick: () => !isDisabled && props.onOpen && props.onOpen(),
3741
+ className: `flex items-center gap-3 border-b border-slate-100 px-3.5 py-2.5 last:border-b-0 ${isDisabled ? "" : "cursor-pointer hover:bg-slate-50"}`
3742
+ },
3743
+ /* @__PURE__ */ React__namespace.createElement("div", { className: `shrink-0 ${props.isLocked ? "opacity-40" : ""}` }, /* @__PURE__ */ React__namespace.createElement(
3744
+ BadgeEmblem,
3745
+ {
3746
+ icon: props.icon,
3747
+ iconURL: props.iconURL,
3748
+ imageURL: props.imageURL,
3749
+ alt: props.displayName,
3750
+ level: props.level,
3751
+ size: "xxs"
3752
+ }
3753
+ )),
3754
+ /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0 flex-1 truncate text-xs font-semibold text-dark-blue-400" }, props.displayName),
3755
+ /* @__PURE__ */ React__namespace.createElement(Pill, { label: pillLabel, accent: pillAccent })
3756
+ );
3757
+ };
3758
+
3759
+ const STATUS_CLASSNAMES$1 = {
3760
+ "In Progress": {
3761
+ border: "border-sky-blue-400/30",
3762
+ shadow: "shadow-[0_4px_20px_rgba(59,208,242,0.10)]",
3763
+ pillAccent: "cyan"
3764
+ },
3765
+ Completed: {
3766
+ border: "border-mint-400/30",
3767
+ shadow: "shadow-[0_4px_20px_rgba(30,226,175,0.10)]",
3768
+ pillAccent: "mint"
3769
+ },
3770
+ Available: {
3771
+ border: "border-gold-400/30",
3772
+ shadow: "shadow-[0_4px_20px_rgba(255,212,77,0.10)]",
3773
+ pillAccent: "gold"
3774
+ }
3775
+ };
3776
+ const BadgeDetail = (props) => {
3777
+ const criteria = props.criteria || [];
3778
+ const choices = {};
3779
+ const criteriaNames = criteria.map((c) => c.displayName).filter(Boolean);
3780
+ let xp = 0;
3781
+ let completed = 0;
3782
+ let anyStarted = false;
3783
+ (props.choices || []).forEach((c, i) => {
3784
+ var _a;
3785
+ const id = (_a = c.criterionId) != null ? _a : i;
3786
+ choices[id] = c;
3787
+ xp += c.xp || 0;
3788
+ if (c.completedAt)
3789
+ completed += 1;
3790
+ if (c.startedAt)
3791
+ anyStarted = true;
3792
+ });
3793
+ const status = props.finishedAt ? "Completed" : anyStarted || xp > 0 ? "In Progress" : "Available";
3794
+ const { border, shadow, pillAccent } = STATUS_CLASSNAMES$1[status];
3795
+ const showSubmit = !props.finishedAt && criteria.length > 0;
3796
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex max-w-2xl flex-col gap-3.5" }, props.onBack && /* @__PURE__ */ React__namespace.createElement("div", { onClick: props.onBack, className: "w-max cursor-pointer text-xs font-bold text-sky-blue-400" }, "\u2190 Back to My Badges"), /* @__PURE__ */ React__namespace.createElement("div", { className: `overflow-hidden rounded-2xl border bg-white ${border} ${shadow}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-4 p-5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "shrink-0" }, /* @__PURE__ */ React__namespace.createElement(
3797
+ BadgeEmblem,
3798
+ {
3799
+ icon: props.icon,
3800
+ iconURL: props.iconURL,
3801
+ imageURL: props.imageURL,
3802
+ alt: props.displayName,
3803
+ level: props.level,
3804
+ size: "sm"
3805
+ }
3806
+ )), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-lg font-extrabold text-dark-blue-400" }, props.displayName), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2 text-xs text-slate-500" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "font-semibold" }, "Level ", (props.level || 0) + 1, "."), !!xp && /* @__PURE__ */ React__namespace.createElement("span", { className: "ml-1.5 font-bold text-mint-400" }, xp, " XP")), !!props.summary && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2 text-xs text-slate-500" }, props.summary), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2.5" }, /* @__PURE__ */ React__namespace.createElement(Pill, { label: status, accent: pillAccent }))))), criteriaNames.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: `rounded-2xl border bg-white p-5 ${border} ${shadow}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Badge Criteria"), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1.5 text-xs text-slate-500" }, "Complete 1 of each: ", criteriaNames.join(", ")), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-4 flex flex-col" }, criteria.map((c, i) => {
3807
+ var _a;
3808
+ const id = (_a = c.criterionId) != null ? _a : i;
3809
+ const choice = choices[id];
3810
+ if (!choice) {
3811
+ return null;
3812
+ }
3813
+ const buttonText = choice.completedAt ? "Review" : choice.startedAt ? "Continue" : "Start";
3814
+ return /* @__PURE__ */ React__namespace.createElement("div", { key: id, className: "flex items-center gap-3.5 border-b border-slate-100 py-3.5 last:border-b-0" }, /* @__PURE__ */ React__namespace.createElement(
3815
+ "div",
3816
+ {
3817
+ className: `h-[18px] w-[18px] shrink-0 rounded-full border-2 ${choice.completedAt ? "border-mint-400 bg-mint-400" : "border-slate-300 bg-transparent"}`
3818
+ }
3819
+ ), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-bold text-dark-blue-400" }, choice.activityName), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-0.5 text-[10.5px] text-slate-400" }, c.displayName, !!choice.xp && /* @__PURE__ */ React__namespace.createElement("span", { className: "ml-1.5 font-bold text-mint-400" }, choice.xp, " points"))), /* @__PURE__ */ React__namespace.createElement(
3820
+ "button",
3821
+ {
3822
+ type: "button",
3823
+ onClick: choice.onClick,
3824
+ className: `shrink-0 rounded-lg px-4 py-1.5 text-xs font-bold ${choice.completedAt ? "border border-slate-200 bg-white text-slate-600 hover:bg-slate-50" : "bg-dark-blue-400 text-white hover:bg-dark-blue-400/90"}`
3825
+ },
3826
+ buttonText
3827
+ ));
3828
+ })), showSubmit && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-4 flex justify-end border-t border-slate-100 pt-3.5" }, /* @__PURE__ */ React__namespace.createElement(
3829
+ "button",
3830
+ {
3831
+ type: "button",
3832
+ disabled: !props.canSubmit && completed < criteria.length,
3833
+ onClick: props.onSubmit,
3834
+ className: "rounded-lg bg-gold-400 px-5 py-2 text-xs font-bold text-dark-blue-400 hover:bg-gold-400/90 disabled:cursor-not-allowed disabled:opacity-40"
3835
+ },
3836
+ "Submit"
3837
+ ))));
3838
+ };
3839
+
3840
+ const DateSelection = (props) => {
3841
+ const today = new Date();
3842
+ const [month, setMonth] = React.useState(calend(props.date || today));
3843
+ return /* @__PURE__ */ React.createElement(Widget, { isLoading: props.isLoading }, /* @__PURE__ */ React.createElement(WidgetHeader, { divide: true }, /* @__PURE__ */ React.createElement(WidgetTitle, { icon: "calendar" }, "Calendar")), /* @__PURE__ */ React.createElement(WidgetBody, null, /* @__PURE__ */ React.createElement(MonthSelection, { month, setMonth }), /* @__PURE__ */ React.createElement(DaySelection, { date: props.date, month, setDate: props.setDate })));
3844
+ };
3845
+ const MonthSelection = (props) => {
3846
+ const month = props.month;
3847
+ const previousMonth = () => props.setMonth(new Date(month.getFullYear(), month.getMonth() - 1, 1));
3848
+ const nextMonth = () => props.setMonth(new Date(month.getFullYear(), month.getMonth() + 1, 1));
3849
+ return /* @__PURE__ */ React.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React.createElement("div", { className: "grow" }, /* @__PURE__ */ React.createElement("span", { className: "font-semibold text-md text-slate-300" }, formatDate$1(month, { month: "long" })), /* @__PURE__ */ React.createElement("span", { className: "text-md ml-1 text-slate-300" }, formatDate$1(month, { year: "numeric" }))), /* @__PURE__ */ React.createElement("div", { onClick: previousMonth, className: "cursor-pointer w-3 h-3 min-w-3 text-slate-300 hover:text-slate-500" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "leftArrow" })), /* @__PURE__ */ React.createElement("div", { onClick: nextMonth, className: "cursor-pointer ml-2 w-3 h-3 min-w-3 text-slate-300 hover:text-slate-500" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "rightArrow" })));
3850
+ };
3851
+ const DaySelection = (props) => {
3852
+ const today = new Date();
3853
+ const Days = [];
3854
+ const [start, end] = weeks(props.month, 6);
3855
+ for (let cur = start; cur <= end; cur = nextDate$1(cur)) {
3856
+ const isToday = isSameDate(today, cur);
3857
+ const isActive = isSameDate(props.date, cur);
3858
+ const isCurrentMonth = cur.getMonth() === props.month.getMonth();
3859
+ const onClick = () => props.setDate(isActive ? null : cur);
3860
+ Days.push(
3861
+ /* @__PURE__ */ React.createElement(
3862
+ DaySelectionOption,
3863
+ {
3864
+ key: cur.toString(),
3865
+ today: isToday,
3866
+ active: isActive,
3867
+ currentMonth: isCurrentMonth,
3868
+ onClick
3869
+ },
3870
+ cur.getDate()
3871
+ )
3872
+ );
3873
+ }
3874
+ return /* @__PURE__ */ React.createElement("div", { className: "mt-4 grid grid-cols-7 gap-1 text-sm justify-items-center" }, WEEKDAYS.map((date) => {
3875
+ return /* @__PURE__ */ React.createElement("span", { key: date, className: "w-8 text-center text-slate-400" }, date);
3876
+ }), Days);
3877
+ };
3878
+ const DaySelectionOption = (props) => {
3879
+ const className = builder("w-8 h-8 text-center cursor-pointer p-2").append("hover:text-white hover:font-semibold hover:bg-sky-400").if(props.active, "text-white font-semibold bg-sky-400").if(!props.active && props.today, "font-semibold bg-slate-100 rounded-full").if(!props.active && !props.today && props.currentMonth, "text-slate-500 font-semibold").if(!props.active && !props.today && !props.currentMonth, "text-slate-400").build();
3880
+ return /* @__PURE__ */ React.createElement("span", { onClick: props.onClick, className }, props.children);
3881
+ };
3882
+ const WEEKDAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
3883
+ const weeks = (date, weeks2) => {
3884
+ const start = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay());
3885
+ const end = new Date(start.getFullYear(), start.getMonth(), start.getDate() + weeks2 * 7 - 1);
3886
+ return [start, end];
3887
+ };
3888
+ const calend = (date) => {
3889
+ return new Date(date.getFullYear(), date.getMonth(), 1);
3644
3890
  };
3645
3891
  const isSameDate = (left, right) => {
3646
3892
  return left === right || !!(left && right) && left.getFullYear() === right.getFullYear() && left.getMonth() === right.getMonth() && left.getDate() === right.getDate();
@@ -3799,25 +4045,25 @@ const linkify = (text) => {
3799
4045
  return replacedText;
3800
4046
  };
3801
4047
 
3802
- var __defProp$d = Object.defineProperty;
3803
- var __defProps$9 = Object.defineProperties;
3804
- var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
3805
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
3806
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
3807
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
3808
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3809
- var __spreadValues$d = (a, b) => {
4048
+ var __defProp$f = Object.defineProperty;
4049
+ var __defProps$8 = Object.defineProperties;
4050
+ var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
4051
+ var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
4052
+ var __hasOwnProp$f = Object.prototype.hasOwnProperty;
4053
+ var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
4054
+ var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4055
+ var __spreadValues$f = (a, b) => {
3810
4056
  for (var prop in b || (b = {}))
3811
- if (__hasOwnProp$d.call(b, prop))
3812
- __defNormalProp$d(a, prop, b[prop]);
3813
- if (__getOwnPropSymbols$d)
3814
- for (var prop of __getOwnPropSymbols$d(b)) {
3815
- if (__propIsEnum$d.call(b, prop))
3816
- __defNormalProp$d(a, prop, b[prop]);
4057
+ if (__hasOwnProp$f.call(b, prop))
4058
+ __defNormalProp$f(a, prop, b[prop]);
4059
+ if (__getOwnPropSymbols$f)
4060
+ for (var prop of __getOwnPropSymbols$f(b)) {
4061
+ if (__propIsEnum$f.call(b, prop))
4062
+ __defNormalProp$f(a, prop, b[prop]);
3817
4063
  }
3818
4064
  return a;
3819
4065
  };
3820
- var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
4066
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
3821
4067
  const FormItem = (props) => {
3822
4068
  const responses = props.responses || [];
3823
4069
  const notEmpty = responses.length > 0 && responses[0].trim() !== "";
@@ -3844,28 +4090,28 @@ const FormItem = (props) => {
3844
4090
  }
3845
4091
  }, [isTextError]);
3846
4092
  const marginBottom = props.format === "text" ? "-mb-7" : "";
3847
- return /* @__PURE__ */ React.createElement("div", { className: `bg-white rounded-md p-5 shadow-sm grid grid-cols-1 gap-y-8 ${itemContainerError} ${marginBottom}` }, props.displayName && /* @__PURE__ */ React.createElement("div", { className: "flex gap-x-1" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-x-4" }, props.format === "question" && /* @__PURE__ */ React.createElement("div", { className: `${checkIconColor} w-5 h-5 mt-1` }, /* @__PURE__ */ React.createElement(Icon$1, { name: "positive" })), /* @__PURE__ */ React.createElement("div", { className: "grow max-w-lg" }, props.displayName && /* @__PURE__ */ React.createElement("p", { className: "flex-auto text-lg text-slate-600 font-semibold whitespace-pre-line" }, linkify(props.displayName)), props.description && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400 whitespace-pre-line" }, linkify(props.description)))), props.required && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-rose-600" }, "*")), !props.children && props.format !== "text" && /* @__PURE__ */ React.createElement("div", { className: `${contentMaxWidth} ml-1` }, /* @__PURE__ */ React.createElement(Switch, __spreadProps$9(__spreadValues$d({}, props), { onTextBlur })), showError && /* @__PURE__ */ React.createElement("div", { className: "text-rose-300 flex items-center gap-x-2 mt-4" }, /* @__PURE__ */ React.createElement("div", { className: "w-4 h-4" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "negative" })), /* @__PURE__ */ React.createElement("span", { className: "grow text-sm" }, "Must be a minimum of ", minimum, " characters."))), props.children);
4093
+ return /* @__PURE__ */ React.createElement("div", { className: `bg-white rounded-md p-5 shadow-sm grid grid-cols-1 gap-y-8 ${itemContainerError} ${marginBottom}` }, props.displayName && /* @__PURE__ */ React.createElement("div", { className: "flex gap-x-1" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-x-4" }, props.format === "question" && /* @__PURE__ */ React.createElement("div", { className: `${checkIconColor} w-5 h-5 mt-1` }, /* @__PURE__ */ React.createElement(Icon$1, { name: "positive" })), /* @__PURE__ */ React.createElement("div", { className: "grow max-w-lg" }, props.displayName && /* @__PURE__ */ React.createElement("p", { className: "flex-auto text-lg text-slate-600 font-semibold whitespace-pre-line" }, linkify(props.displayName)), props.description && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-400 whitespace-pre-line" }, linkify(props.description)))), props.required && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-rose-600" }, "*")), !props.children && props.format !== "text" && /* @__PURE__ */ React.createElement("div", { className: `${contentMaxWidth} ml-1` }, /* @__PURE__ */ React.createElement(Switch, __spreadProps$8(__spreadValues$f({}, props), { onTextBlur })), showError && /* @__PURE__ */ React.createElement("div", { className: "text-rose-300 flex items-center gap-x-2 mt-4" }, /* @__PURE__ */ React.createElement("div", { className: "w-4 h-4" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "negative" })), /* @__PURE__ */ React.createElement("span", { className: "grow text-sm" }, "Must be a minimum of ", minimum, " characters."))), props.children);
3848
4094
  };
3849
4095
  const Switch = (props) => {
3850
4096
  switch (true) {
3851
4097
  case props.format === "embed":
3852
- return /* @__PURE__ */ React.createElement(Embed, __spreadValues$d({}, props));
4098
+ return /* @__PURE__ */ React.createElement(Embed, __spreadValues$f({}, props));
3853
4099
  case props.format === "image":
3854
- return /* @__PURE__ */ React.createElement(Image, __spreadValues$d({}, props));
4100
+ return /* @__PURE__ */ React.createElement(Image, __spreadValues$f({}, props));
3855
4101
  case props.questionType === "radio":
3856
- return /* @__PURE__ */ React.createElement(RadioQuestion, __spreadValues$d({}, props));
4102
+ return /* @__PURE__ */ React.createElement(RadioQuestion, __spreadValues$f({}, props));
3857
4103
  case props.questionType === "checkbox":
3858
- return /* @__PURE__ */ React.createElement(CheckboxQuestion, __spreadValues$d({}, props));
4104
+ return /* @__PURE__ */ React.createElement(CheckboxQuestion, __spreadValues$f({}, props));
3859
4105
  case props.questionType === "drop down":
3860
- return /* @__PURE__ */ React.createElement(DropDownQuestion, __spreadValues$d({}, props));
4106
+ return /* @__PURE__ */ React.createElement(DropDownQuestion, __spreadValues$f({}, props));
3861
4107
  case props.questionType === "file upload":
3862
- return /* @__PURE__ */ React.createElement(FileUploadQuestion, __spreadValues$d({}, props));
4108
+ return /* @__PURE__ */ React.createElement(FileUploadQuestion, __spreadValues$f({}, props));
3863
4109
  case props.questionType === "text":
3864
- return /* @__PURE__ */ React.createElement(TextQuestion, __spreadValues$d({}, props));
4110
+ return /* @__PURE__ */ React.createElement(TextQuestion, __spreadValues$f({}, props));
3865
4111
  case props.questionType === "date":
3866
- return /* @__PURE__ */ React.createElement(DateQuestion, __spreadValues$d({}, props));
4112
+ return /* @__PURE__ */ React.createElement(DateQuestion, __spreadValues$f({}, props));
3867
4113
  case props.questionType === "time":
3868
- return /* @__PURE__ */ React.createElement(TimeQuestion, __spreadValues$d({}, props));
4114
+ return /* @__PURE__ */ React.createElement(TimeQuestion, __spreadValues$f({}, props));
3869
4115
  default:
3870
4116
  return null;
3871
4117
  }
@@ -4222,25 +4468,25 @@ const FormSubmitDialog$1 = (props) => {
4222
4468
  ))));
4223
4469
  };
4224
4470
 
4225
- var __defProp$c = Object.defineProperty;
4226
- var __defProps$8 = Object.defineProperties;
4227
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
4228
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
4229
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
4230
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
4231
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4232
- var __spreadValues$c = (a, b) => {
4471
+ var __defProp$e = Object.defineProperty;
4472
+ var __defProps$7 = Object.defineProperties;
4473
+ var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
4474
+ var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
4475
+ var __hasOwnProp$e = Object.prototype.hasOwnProperty;
4476
+ var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
4477
+ var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4478
+ var __spreadValues$e = (a, b) => {
4233
4479
  for (var prop in b || (b = {}))
4234
- if (__hasOwnProp$c.call(b, prop))
4235
- __defNormalProp$c(a, prop, b[prop]);
4236
- if (__getOwnPropSymbols$c)
4237
- for (var prop of __getOwnPropSymbols$c(b)) {
4238
- if (__propIsEnum$c.call(b, prop))
4239
- __defNormalProp$c(a, prop, b[prop]);
4480
+ if (__hasOwnProp$e.call(b, prop))
4481
+ __defNormalProp$e(a, prop, b[prop]);
4482
+ if (__getOwnPropSymbols$e)
4483
+ for (var prop of __getOwnPropSymbols$e(b)) {
4484
+ if (__propIsEnum$e.call(b, prop))
4485
+ __defNormalProp$e(a, prop, b[prop]);
4240
4486
  }
4241
4487
  return a;
4242
4488
  };
4243
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
4489
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
4244
4490
  const AUTOSAVE_TIMEOUT = 30 * 1e3;
4245
4491
  const MIN_REFLECTION_LENGTH = 0;
4246
4492
  const autoSave = (run, func, callback) => {
@@ -4351,7 +4597,7 @@ const LearningForm = (props) => {
4351
4597
  /* @__PURE__ */ React.createElement("div", { className: "w-3 h-3 min-w-3" }, /* @__PURE__ */ React.createElement(Icon$1, { name: "leftArrow" })),
4352
4598
  /* @__PURE__ */ React.createElement("span", { className: "text-md" }, "Back")
4353
4599
  ), !!props.displayName && /* @__PURE__ */ React.createElement("h2", { className: "h-max font-semibold text-2xl" }, props.displayName), !!props.description && /* @__PURE__ */ React.createElement("p", { className: "h-max max-h-[14rem] overflow-y-auto whitespace-pre-line" }, props.description), !!props.eta && /* @__PURE__ */ React.createElement("p", { className: "text-sm h-max font-semibold" }, "Estimated Completion Time: ", props.eta)), /* @__PURE__ */ React.createElement("img", { className: "grow h-full max-h-[30rem] w-full object-cover", alt: props.displayName, src: props.imageURL })), /* @__PURE__ */ React.createElement("form", { className: "w-full max-w-[64rem] m-auto grid grid-cols-1 gap-y-12", onSubmit }, items.map((item) => {
4354
- return /* @__PURE__ */ React.createElement(FormItem, __spreadProps$8(__spreadValues$c({ key: item.itemId }, item), { minText: 0, disabled: !!props.preview }));
4600
+ return /* @__PURE__ */ React.createElement(FormItem, __spreadProps$7(__spreadValues$e({ key: item.itemId }, item), { minText: 0, disabled: !!props.preview }));
4355
4601
  }), /* @__PURE__ */ React.createElement(
4356
4602
  FormItem,
4357
4603
  {
@@ -4430,19 +4676,19 @@ const Rating = (props) => {
4430
4676
  )));
4431
4677
  };
4432
4678
 
4433
- var __defProp$b = Object.defineProperty;
4434
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
4435
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
4436
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
4437
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4438
- var __spreadValues$b = (a, b) => {
4679
+ var __defProp$d = Object.defineProperty;
4680
+ var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
4681
+ var __hasOwnProp$d = Object.prototype.hasOwnProperty;
4682
+ var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
4683
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4684
+ var __spreadValues$d = (a, b) => {
4439
4685
  for (var prop in b || (b = {}))
4440
- if (__hasOwnProp$b.call(b, prop))
4441
- __defNormalProp$b(a, prop, b[prop]);
4442
- if (__getOwnPropSymbols$b)
4443
- for (var prop of __getOwnPropSymbols$b(b)) {
4444
- if (__propIsEnum$b.call(b, prop))
4445
- __defNormalProp$b(a, prop, b[prop]);
4686
+ if (__hasOwnProp$d.call(b, prop))
4687
+ __defNormalProp$d(a, prop, b[prop]);
4688
+ if (__getOwnPropSymbols$d)
4689
+ for (var prop of __getOwnPropSymbols$d(b)) {
4690
+ if (__propIsEnum$d.call(b, prop))
4691
+ __defNormalProp$d(a, prop, b[prop]);
4446
4692
  }
4447
4693
  return a;
4448
4694
  };
@@ -4451,7 +4697,7 @@ const NavLink = (props) => {
4451
4697
  const config = defaultConfig();
4452
4698
  withMenu(config, props.menu);
4453
4699
  withName(config, props.name);
4454
- return /* @__PURE__ */ React.createElement(Button, __spreadValues$b({ disabled: props.disabled, active: props.active, onClick }, config));
4700
+ return /* @__PURE__ */ React.createElement(Button, __spreadValues$d({ disabled: props.disabled, active: props.active, onClick }, config));
4455
4701
  };
4456
4702
  const defaultConfig = () => {
4457
4703
  return {};
@@ -4526,25 +4772,25 @@ const withName = (config, name) => {
4526
4772
  }
4527
4773
  };
4528
4774
 
4529
- var __defProp$a = Object.defineProperty;
4530
- var __defProps$7 = Object.defineProperties;
4531
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
4532
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
4533
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
4534
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
4535
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4536
- var __spreadValues$a = (a, b) => {
4775
+ var __defProp$c = Object.defineProperty;
4776
+ var __defProps$6 = Object.defineProperties;
4777
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
4778
+ var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
4779
+ var __hasOwnProp$c = Object.prototype.hasOwnProperty;
4780
+ var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
4781
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4782
+ var __spreadValues$c = (a, b) => {
4537
4783
  for (var prop in b || (b = {}))
4538
- if (__hasOwnProp$a.call(b, prop))
4539
- __defNormalProp$a(a, prop, b[prop]);
4540
- if (__getOwnPropSymbols$a)
4541
- for (var prop of __getOwnPropSymbols$a(b)) {
4542
- if (__propIsEnum$a.call(b, prop))
4543
- __defNormalProp$a(a, prop, b[prop]);
4784
+ if (__hasOwnProp$c.call(b, prop))
4785
+ __defNormalProp$c(a, prop, b[prop]);
4786
+ if (__getOwnPropSymbols$c)
4787
+ for (var prop of __getOwnPropSymbols$c(b)) {
4788
+ if (__propIsEnum$c.call(b, prop))
4789
+ __defNormalProp$c(a, prop, b[prop]);
4544
4790
  }
4545
4791
  return a;
4546
4792
  };
4547
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
4793
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
4548
4794
  const NavBar = (props) => {
4549
4795
  const className = builder("flex items-center justify-between flex-wrap sticky top-0 z-30 w-full h-16 border-b").append("bg-white px-4 py text-center").append("md:border-t-none md:border-b md:border-monochrome-50 lg:px-36 md:shadow-sm").build();
4550
4796
  const [secondary, setSecondary] = React.useState(false);
@@ -4562,7 +4808,7 @@ const NavBar = (props) => {
4562
4808
  return null;
4563
4809
  })), /* @__PURE__ */ React.createElement("div", { className: "inline-block md:hidden" }, /* @__PURE__ */ React.createElement(NavLink, { onClick: () => setSecondary(!secondary), name: menuIcon })), /* @__PURE__ */ React.createElement("div", { className: secondaryClassName }, React.Children.map(props.children, (Link) => {
4564
4810
  if (Link && Link.props.name !== "home") {
4565
- return /* @__PURE__ */ React.createElement("div", { className: "relative" }, /* @__PURE__ */ React.createElement(NavLink, __spreadProps$7(__spreadValues$a({}, Link.props), { menu: true })));
4811
+ return /* @__PURE__ */ React.createElement("div", { className: "relative" }, /* @__PURE__ */ React.createElement(NavLink, __spreadProps$6(__spreadValues$c({}, Link.props), { menu: true })));
4566
4812
  }
4567
4813
  return null;
4568
4814
  }))));
@@ -4659,28 +4905,28 @@ const LegalAgreement = (props) => {
4659
4905
  )));
4660
4906
  };
4661
4907
 
4662
- var __defProp$9 = Object.defineProperty;
4663
- var __defProps$6 = Object.defineProperties;
4664
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
4665
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
4666
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
4667
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
4668
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4669
- var __spreadValues$9 = (a, b) => {
4908
+ var __defProp$b = Object.defineProperty;
4909
+ var __defProps$5 = Object.defineProperties;
4910
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
4911
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
4912
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
4913
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
4914
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4915
+ var __spreadValues$b = (a, b) => {
4670
4916
  for (var prop in b || (b = {}))
4671
- if (__hasOwnProp$9.call(b, prop))
4672
- __defNormalProp$9(a, prop, b[prop]);
4673
- if (__getOwnPropSymbols$9)
4674
- for (var prop of __getOwnPropSymbols$9(b)) {
4675
- if (__propIsEnum$9.call(b, prop))
4676
- __defNormalProp$9(a, prop, b[prop]);
4917
+ if (__hasOwnProp$b.call(b, prop))
4918
+ __defNormalProp$b(a, prop, b[prop]);
4919
+ if (__getOwnPropSymbols$b)
4920
+ for (var prop of __getOwnPropSymbols$b(b)) {
4921
+ if (__propIsEnum$b.call(b, prop))
4922
+ __defNormalProp$b(a, prop, b[prop]);
4677
4923
  }
4678
4924
  return a;
4679
4925
  };
4680
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
4926
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
4681
4927
  const CommunitySearch = (props) => {
4682
4928
  const [accessCode, setAccessCode] = React.useState("");
4683
- return /* @__PURE__ */ React.createElement("div", { className: "w-full md:w-[30rem] bg-white grid grid-cols-1 gap-4 rounded-md border border-slate-200 px-8 py-5 shadow-sm" }, /* @__PURE__ */ React.createElement("div", { className: "text-slate-600" }, /* @__PURE__ */ React.createElement("p", { className: "font-bold text-2xl" }, "Which is your community?"), /* @__PURE__ */ React.createElement("p", { className: "text-sm" }, "Pick your community.")), /* @__PURE__ */ React.createElement(Search, __spreadProps$6(__spreadValues$9({}, props), { autofocus: !accessCode, placeholder: props.name })), !!props.name && /* @__PURE__ */ React.createElement("div", { className: "text-slate-600 grid-cols-1 gap-2" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", { className: "text-sm" }, "Enter the access code for"), /* @__PURE__ */ React.createElement("span", { className: "ml-1 font-semibold text-sm" }, props.name), /* @__PURE__ */ React.createElement("span", { className: "text-sm" }, ".")), /* @__PURE__ */ React.createElement("div", { className: "mt-2 content-center grid grid-cols-3 gap-x-2" }, /* @__PURE__ */ React.createElement(
4929
+ return /* @__PURE__ */ React.createElement("div", { className: "w-full md:w-[30rem] bg-white grid grid-cols-1 gap-4 rounded-md border border-slate-200 px-8 py-5 shadow-sm" }, /* @__PURE__ */ React.createElement("div", { className: "text-slate-600" }, /* @__PURE__ */ React.createElement("p", { className: "font-bold text-2xl" }, "Which is your community?"), /* @__PURE__ */ React.createElement("p", { className: "text-sm" }, "Pick your community.")), /* @__PURE__ */ React.createElement(Search, __spreadProps$5(__spreadValues$b({}, props), { autofocus: !accessCode, placeholder: props.name })), !!props.name && /* @__PURE__ */ React.createElement("div", { className: "text-slate-600 grid-cols-1 gap-2" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", { className: "text-sm" }, "Enter the access code for"), /* @__PURE__ */ React.createElement("span", { className: "ml-1 font-semibold text-sm" }, props.name), /* @__PURE__ */ React.createElement("span", { className: "text-sm" }, ".")), /* @__PURE__ */ React.createElement("div", { className: "mt-2 content-center grid grid-cols-3 gap-x-2" }, /* @__PURE__ */ React.createElement(
4684
4930
  "input",
4685
4931
  {
4686
4932
  disabled: props.disabled,
@@ -4815,27 +5061,27 @@ const Welcome = (props) => {
4815
5061
  )));
4816
5062
  };
4817
5063
 
4818
- var __defProp$8 = Object.defineProperty;
4819
- var __defProps$5 = Object.defineProperties;
4820
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
4821
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
4822
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
4823
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
4824
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4825
- var __spreadValues$8 = (a, b) => {
5064
+ var __defProp$a = Object.defineProperty;
5065
+ var __defProps$4 = Object.defineProperties;
5066
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
5067
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
5068
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
5069
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
5070
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5071
+ var __spreadValues$a = (a, b) => {
4826
5072
  for (var prop in b || (b = {}))
4827
- if (__hasOwnProp$8.call(b, prop))
4828
- __defNormalProp$8(a, prop, b[prop]);
4829
- if (__getOwnPropSymbols$8)
4830
- for (var prop of __getOwnPropSymbols$8(b)) {
4831
- if (__propIsEnum$8.call(b, prop))
4832
- __defNormalProp$8(a, prop, b[prop]);
5073
+ if (__hasOwnProp$a.call(b, prop))
5074
+ __defNormalProp$a(a, prop, b[prop]);
5075
+ if (__getOwnPropSymbols$a)
5076
+ for (var prop of __getOwnPropSymbols$a(b)) {
5077
+ if (__propIsEnum$a.call(b, prop))
5078
+ __defNormalProp$a(a, prop, b[prop]);
4833
5079
  }
4834
5080
  return a;
4835
5081
  };
4836
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
5082
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
4837
5083
  const Onboarding = (props) => {
4838
- return /* @__PURE__ */ React.createElement(Modal, { stage: true, isLoading: props.isLoading, inline: true, plain: true, visible: true }, /* @__PURE__ */ React.createElement(Delegate, __spreadValues$8({}, props)));
5084
+ return /* @__PURE__ */ React.createElement(Modal, { stage: true, isLoading: props.isLoading, inline: true, plain: true, visible: true }, /* @__PURE__ */ React.createElement(Delegate, __spreadValues$a({}, props)));
4839
5085
  };
4840
5086
  const Delegate = (props) => {
4841
5087
  const [agreed, setAgreed] = React.useState(!!props.hasOrganization || props.search !== null);
@@ -4849,7 +5095,7 @@ const Delegate = (props) => {
4849
5095
  if (!props.hasOrganization) {
4850
5096
  return /* @__PURE__ */ React.createElement(
4851
5097
  CommunitySearch,
4852
- __spreadProps$5(__spreadValues$8({}, organization), {
5098
+ __spreadProps$4(__spreadValues$a({}, organization), {
4853
5099
  open: organizationOpen,
4854
5100
  value: props.search,
4855
5101
  results: props.organizations && props.organizations.map((organization2) => {
@@ -5165,19 +5411,19 @@ const ProfileWidget = (props) => {
5165
5411
  ), props.online && /* @__PURE__ */ React.createElement("span", { className: "absolute h-3.5 w-3.5 lg:w-4 lg:h-4 top-0 right-0 lg:top-2 lg:right-3 rounded-full bg-green-500 border-4 border-white" })), /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 content-center align-middle" }, /* @__PURE__ */ React.createElement("div", { className: "grid lg:gap-1" }, /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1" }, props.tenantName && /* @__PURE__ */ React.createElement("span", { className: "text-slate-300 text-sm" }, "@", props.tenantName), /* @__PURE__ */ React.createElement("h4", { className: "inline-block font-semibold capitalize text-2xl lg:text-4xl text-slate-600" }, props.givenName, " ", props.familyName)), props.createdAt && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-300" }, "Member since ", new Date(props.createdAt).getFullYear())))))));
5166
5412
  };
5167
5413
 
5168
- var __defProp$7 = Object.defineProperty;
5169
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
5170
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
5171
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
5172
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5173
- var __spreadValues$7 = (a, b) => {
5414
+ var __defProp$9 = Object.defineProperty;
5415
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
5416
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
5417
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
5418
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5419
+ var __spreadValues$9 = (a, b) => {
5174
5420
  for (var prop in b || (b = {}))
5175
- if (__hasOwnProp$7.call(b, prop))
5176
- __defNormalProp$7(a, prop, b[prop]);
5177
- if (__getOwnPropSymbols$7)
5178
- for (var prop of __getOwnPropSymbols$7(b)) {
5179
- if (__propIsEnum$7.call(b, prop))
5180
- __defNormalProp$7(a, prop, b[prop]);
5421
+ if (__hasOwnProp$9.call(b, prop))
5422
+ __defNormalProp$9(a, prop, b[prop]);
5423
+ if (__getOwnPropSymbols$9)
5424
+ for (var prop of __getOwnPropSymbols$9(b)) {
5425
+ if (__propIsEnum$9.call(b, prop))
5426
+ __defNormalProp$9(a, prop, b[prop]);
5181
5427
  }
5182
5428
  return a;
5183
5429
  };
@@ -5185,9 +5431,9 @@ const FormInput = (props) => {
5185
5431
  return /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 gap-y-2" }, props.headline && /* @__PURE__ */ React.createElement("div", { className: "flex gap-x-1" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-x-4" }, /* @__PURE__ */ React.createElement("div", { className: "grow" }, props.headline && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-slate-600 font-semibold" }, props.headline), props.summary && /* @__PURE__ */ React.createElement("p", { className: "text-xs text-slate-500" }, props.summary))), !props.readonly && props.required && /* @__PURE__ */ React.createElement("p", { className: "text-sm text-rose-600" }, "*")), /* @__PURE__ */ React.createElement("div", null, (() => {
5186
5432
  switch (props.type) {
5187
5433
  case "dropdown":
5188
- return /* @__PURE__ */ React.createElement(DropDownInput, __spreadValues$7({}, props));
5434
+ return /* @__PURE__ */ React.createElement(DropDownInput, __spreadValues$9({}, props));
5189
5435
  default:
5190
- return /* @__PURE__ */ React.createElement(Input, __spreadValues$7({}, props));
5436
+ return /* @__PURE__ */ React.createElement(Input, __spreadValues$9({}, props));
5191
5437
  }
5192
5438
  })()));
5193
5439
  };
@@ -5295,32 +5541,32 @@ const FormSubmitDialog = (props) => {
5295
5541
  ))));
5296
5542
  };
5297
5543
 
5298
- var __defProp$6 = Object.defineProperty;
5299
- var __defProps$4 = Object.defineProperties;
5300
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
5301
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
5302
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
5303
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
5304
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5305
- var __spreadValues$6 = (a, b) => {
5544
+ var __defProp$8 = Object.defineProperty;
5545
+ var __defProps$3 = Object.defineProperties;
5546
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
5547
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
5548
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
5549
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
5550
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5551
+ var __spreadValues$8 = (a, b) => {
5306
5552
  for (var prop in b || (b = {}))
5307
- if (__hasOwnProp$6.call(b, prop))
5308
- __defNormalProp$6(a, prop, b[prop]);
5309
- if (__getOwnPropSymbols$6)
5310
- for (var prop of __getOwnPropSymbols$6(b)) {
5311
- if (__propIsEnum$6.call(b, prop))
5312
- __defNormalProp$6(a, prop, b[prop]);
5553
+ if (__hasOwnProp$8.call(b, prop))
5554
+ __defNormalProp$8(a, prop, b[prop]);
5555
+ if (__getOwnPropSymbols$8)
5556
+ for (var prop of __getOwnPropSymbols$8(b)) {
5557
+ if (__propIsEnum$8.call(b, prop))
5558
+ __defNormalProp$8(a, prop, b[prop]);
5313
5559
  }
5314
5560
  return a;
5315
5561
  };
5316
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
5562
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
5317
5563
  const Form = (props) => {
5318
5564
  const [showExitDialogue, setShowExitDialogue] = React.useState(!!props.showExitDialogue);
5319
5565
  const [showSubmitDialogue, setShowSubmitDialogue] = React.useState(!!props.showSubmitDialogue);
5320
5566
  const [responses, setResponses] = React.useState({});
5321
5567
  const [inReview, setInReview] = React.useState(!!props.inReview);
5322
5568
  const setResponse = (key, value) => {
5323
- setResponses(__spreadProps$4(__spreadValues$6({}, responses), { [key]: value }));
5569
+ setResponses(__spreadProps$3(__spreadValues$8({}, responses), { [key]: value }));
5324
5570
  };
5325
5571
  const onSubmit = (e) => {
5326
5572
  e.preventDefault();
@@ -5439,25 +5685,25 @@ const Form = (props) => {
5439
5685
  )))))))), showExitDialogue && /* @__PURE__ */ React.createElement("div", { className: "fixed top-0 left-0 px-4 md:px-2 w-screen h-screen py-5 transition ease-in-out duration-400 bg-gray-200/75 z-40" }, /* @__PURE__ */ React.createElement("div", { className: "flex md:w-max h-screen gap-x-2 justify-items-center content-center m-auto" }, /* @__PURE__ */ React.createElement(FormExitDialog, { onYes: props.onClose, onNo: () => setShowExitDialogue(false) }))), showSubmitDialogue && /* @__PURE__ */ React.createElement("div", { className: "fixed top-0 left-0 px-4 md:px-2 w-screen h-screen py-5 transition ease-in-out duration-400 bg-gray-200/75 z-40" }, /* @__PURE__ */ React.createElement("div", { className: "flex md:w-max h-screen gap-x-2 justify-items-center content-center m-auto" }, /* @__PURE__ */ React.createElement(FormSubmitDialog, { onGoBack: () => setShowSubmitDialogue(false), onContinue: props.onClose }))));
5440
5686
  };
5441
5687
 
5442
- var __defProp$5 = Object.defineProperty;
5443
- var __defProps$3 = Object.defineProperties;
5444
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
5445
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
5446
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
5447
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
5448
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5449
- var __spreadValues$5 = (a, b) => {
5688
+ var __defProp$7 = Object.defineProperty;
5689
+ var __defProps$2 = Object.defineProperties;
5690
+ var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
5691
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
5692
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
5693
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
5694
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5695
+ var __spreadValues$7 = (a, b) => {
5450
5696
  for (var prop in b || (b = {}))
5451
- if (__hasOwnProp$5.call(b, prop))
5452
- __defNormalProp$5(a, prop, b[prop]);
5453
- if (__getOwnPropSymbols$5)
5454
- for (var prop of __getOwnPropSymbols$5(b)) {
5455
- if (__propIsEnum$5.call(b, prop))
5456
- __defNormalProp$5(a, prop, b[prop]);
5697
+ if (__hasOwnProp$7.call(b, prop))
5698
+ __defNormalProp$7(a, prop, b[prop]);
5699
+ if (__getOwnPropSymbols$7)
5700
+ for (var prop of __getOwnPropSymbols$7(b)) {
5701
+ if (__propIsEnum$7.call(b, prop))
5702
+ __defNormalProp$7(a, prop, b[prop]);
5457
5703
  }
5458
5704
  return a;
5459
5705
  };
5460
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
5706
+ var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
5461
5707
  const LogServiceButton = (props) => {
5462
5708
  const [isOpen, setIsOpen] = React.useState(!!props.isOpen);
5463
5709
  const text = props.text || "Log Service";
@@ -5488,140 +5734,7 @@ const LogServiceButton = (props) => {
5488
5734
  size: "full:md",
5489
5735
  onClick: onOpen
5490
5736
  }
5491
- ), isOpen && /* @__PURE__ */ React.createElement(Form, __spreadProps$3(__spreadValues$5({ onSubmit: props.onSubmit }, props.form), { onClose })));
5492
- };
5493
-
5494
- var __defProp$4 = Object.defineProperty;
5495
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
5496
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
5497
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
5498
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5499
- var __spreadValues$4 = (a, b) => {
5500
- for (var prop in b || (b = {}))
5501
- if (__hasOwnProp$4.call(b, prop))
5502
- __defNormalProp$4(a, prop, b[prop]);
5503
- if (__getOwnPropSymbols$4)
5504
- for (var prop of __getOwnPropSymbols$4(b)) {
5505
- if (__propIsEnum$4.call(b, prop))
5506
- __defNormalProp$4(a, prop, b[prop]);
5507
- }
5508
- return a;
5509
- };
5510
- const TABS = [
5511
- { name: "profile", label: "My Profile", icon: icons$1.IconUser, accent: "cyan" },
5512
- { name: "pathways", label: "Pathways", icon: icons$1.IconRoute, accent: "mint" },
5513
- { name: "badges", label: "Badges", icon: icons$1.IconAlbum, accent: "gold" },
5514
- { name: "file-locker", label: "File Locker", icon: icons$1.IconClipboard, accent: "cyan" },
5515
- { name: "transcript", label: "Transcript", icon: icons$1.IconFileText, accent: "mint" },
5516
- { name: "portfolio", label: "Portfolio", icon: icons$1.IconBriefcase, accent: "gold" }
5517
- ];
5518
- const Sidebar = (props) => {
5519
- return /* @__PURE__ */ React.createElement("nav", { className: "flex h-full w-[230px] shrink-0 flex-col border-r border-slate-200 bg-white" }, /* @__PURE__ */ React.createElement("div", { className: "border-b border-slate-100 p-4" }, /* @__PURE__ */ React.createElement("div", { className: "w-24" }, /* @__PURE__ */ React.createElement(Logo, null))), props.identity && /* @__PURE__ */ React.createElement(SidebarIdentityChip, __spreadValues$4({}, props.identity)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 flex-col gap-0.5 overflow-y-auto p-2.5" }, TABS.map((tab) => {
5520
- const link = props.links[tab.name];
5521
- return /* @__PURE__ */ React.createElement(
5522
- SidebarLink,
5523
- {
5524
- key: tab.name,
5525
- label: tab.label,
5526
- icon: tab.icon,
5527
- accent: tab.accent,
5528
- href: link == null ? void 0 : link.href,
5529
- active: props.active === tab.name,
5530
- disabled: props.disabled || !link
5531
- }
5532
- );
5533
- })), (props.settingsHref || props.onLogout) && /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-0.5 border-t border-slate-100 p-2.5" }, props.settingsHref && /* @__PURE__ */ React.createElement(SidebarUtilLink, { label: "Settings", icon: icons$1.IconSettings, href: props.settingsHref }), props.onLogout && /* @__PURE__ */ React.createElement(SidebarUtilLink, { label: "Logout", icon: icons$1.IconLogout, onClick: props.onLogout })));
5534
- };
5535
- const SidebarIdentityChip = (props) => /* @__PURE__ */ React.createElement("div", { className: "m-3 flex items-center gap-2.5 rounded-xl bg-slate-50 p-2.5" }, /* @__PURE__ */ React.createElement(
5536
- "img",
5537
- {
5538
- className: "h-8 w-8 shrink-0 rounded-full object-cover",
5539
- src: props.avatarURL || "https://cdn.localcivics.io/hub/avatar.jpg",
5540
- alt: "avatar"
5541
- }
5542
- ), /* @__PURE__ */ React.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React.createElement("div", { className: "truncate text-xs font-bold text-dark-blue-400" }, props.name), props.subtitle && /* @__PURE__ */ React.createElement("div", { className: "truncate text-[10px] text-slate-400" }, props.subtitle)));
5543
- const SidebarLink = (props) => {
5544
- const config = defaultLinkConfig();
5545
- withAccent(config, props.accent, props.active);
5546
- withDisabled(config, props.disabled);
5547
- const Icon = props.icon;
5548
- const content = /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: classname(config.chip) }, /* @__PURE__ */ React.createElement(Icon, { size: 14, stroke: props.active ? 2.2 : 1.75, className: config.icon.color })), /* @__PURE__ */ React.createElement("span", { className: classname(config.label) }, props.label), /* @__PURE__ */ React.createElement("span", { className: classname(config.dot) }));
5549
- if (props.disabled || !props.href) {
5550
- return /* @__PURE__ */ React.createElement("div", { className: classname(config.row) }, content);
5551
- }
5552
- return /* @__PURE__ */ React.createElement(reactRouterDom.Link, { to: props.href, className: classname(config.row) }, content);
5553
- };
5554
- const SidebarUtilLink = (props) => {
5555
- const className = "flex cursor-pointer items-center gap-2.5 rounded-[10px] px-3.5 py-2 text-slate-400 hover:bg-slate-50 hover:text-slate-500";
5556
- const Icon = props.icon;
5557
- const content = /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Icon, { size: 13 }), /* @__PURE__ */ React.createElement("span", { className: "text-[11.5px]" }, props.label));
5558
- if (props.href) {
5559
- return /* @__PURE__ */ React.createElement(reactRouterDom.Link, { to: props.href, className }, content);
5560
- }
5561
- return /* @__PURE__ */ React.createElement("div", { onClick: props.onClick, className }, content);
5562
- };
5563
- const defaultLinkConfig = () => ({
5564
- row: {
5565
- base: "flex items-center gap-2.5 rounded-[10px] px-3.5 py-2.5 transition-colors",
5566
- cursor: "cursor-pointer hover:bg-slate-50",
5567
- bg: "bg-transparent",
5568
- border: "border border-transparent"
5569
- },
5570
- chip: {
5571
- base: "flex h-[30px] w-[30px] shrink-0 items-center justify-center rounded-lg",
5572
- bg: "bg-slate-50"
5573
- },
5574
- icon: {
5575
- color: "text-slate-400"
5576
- },
5577
- label: {
5578
- base: "flex-1 text-xs",
5579
- weight: "font-medium",
5580
- color: "text-slate-500"
5581
- },
5582
- dot: {
5583
- base: "h-[5px] w-[5px] shrink-0 rounded-full",
5584
- bg: "bg-transparent"
5585
- }
5586
- });
5587
- const withAccent = (config, accent, active) => {
5588
- if (!active) {
5589
- return;
5590
- }
5591
- config.row.cursor = "cursor-default";
5592
- config.label.weight = "font-bold";
5593
- config.label.color = "text-dark-blue-400";
5594
- switch (accent) {
5595
- case "cyan":
5596
- config.row.bg = "bg-sky-blue-400/15";
5597
- config.row.border = "border border-sky-blue-400/30";
5598
- config.chip.bg = "bg-sky-blue-400/25";
5599
- config.icon.color = "text-sky-blue-400";
5600
- config.dot.bg = "bg-sky-blue-400";
5601
- break;
5602
- case "mint":
5603
- config.row.bg = "bg-mint-400/15";
5604
- config.row.border = "border border-mint-400/30";
5605
- config.chip.bg = "bg-mint-400/25";
5606
- config.icon.color = "text-mint-400";
5607
- config.dot.bg = "bg-mint-400";
5608
- break;
5609
- case "gold":
5610
- config.row.bg = "bg-gold-400/15";
5611
- config.row.border = "border border-gold-400/30";
5612
- config.chip.bg = "bg-gold-400/25";
5613
- config.icon.color = "text-gold-400";
5614
- config.dot.bg = "bg-gold-400";
5615
- break;
5616
- }
5617
- };
5618
- const withDisabled = (config, disabled) => {
5619
- if (!disabled) {
5620
- return;
5621
- }
5622
- config.row.cursor = "cursor-default";
5623
- config.icon.color = "text-slate-300";
5624
- config.label.color = "text-slate-300";
5737
+ ), isOpen && /* @__PURE__ */ React.createElement(Form, __spreadProps$2(__spreadValues$7({ onSubmit: props.onSubmit }, props.form), { onClose })));
5625
5738
  };
5626
5739
 
5627
5740
  const Stopwatch = (props) => {
@@ -5805,6 +5918,28 @@ const PathwayOverview = (props) => {
5805
5918
  const PathwayTranscript = (props) => {
5806
5919
  var _a;
5807
5920
  const [layout, setLayout] = React__namespace.useState("list");
5921
+ const today = React__namespace.useMemo(
5922
+ () => new Date().toLocaleDateString("en-US", { year: "numeric", month: "long", day: "numeric" }),
5923
+ []
5924
+ );
5925
+ const mappedTargets = React__namespace.useMemo(() => {
5926
+ var _a2;
5927
+ const t = {};
5928
+ Object.entries((_a2 = props.rawCriteria) != null ? _a2 : {}).forEach(([id, val]) => {
5929
+ var _a3;
5930
+ t[((_a3 = props.categoryNames) == null ? void 0 : _a3[id]) || id] = val;
5931
+ });
5932
+ return t;
5933
+ }, [props.rawCriteria, props.categoryNames]);
5934
+ const mappedPoints = React__namespace.useMemo(() => {
5935
+ var _a2;
5936
+ const p = {};
5937
+ Object.entries((_a2 = props.points) != null ? _a2 : {}).forEach(([id, val]) => {
5938
+ var _a3;
5939
+ p[((_a3 = props.categoryNames) == null ? void 0 : _a3[id]) || id] = val;
5940
+ });
5941
+ return p;
5942
+ }, [props.points, props.categoryNames]);
5808
5943
  const badges = props.badges || [];
5809
5944
  const completedBadges = badges.filter((b) => !!b.completedAt);
5810
5945
  const inProgressBadges = badges.filter((b) => !b.completedAt && !!b.startedAt);
@@ -5840,28 +5975,28 @@ const PathwayTranscript = (props) => {
5840
5975
  return /* @__PURE__ */ React__namespace.createElement("div", { key: l2Id, className: "space-y-4" }, /* @__PURE__ */ React__namespace.createElement("h3", { className: "font-bold text-base text-zinc-800 flex items-center gap-x-2" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "h-4 w-1 bg-blue-600 rounded-full" }), ((_a2 = props.categoryNames) == null ? void 0 : _a2[l2Id]) || l2Id), /* @__PURE__ */ React__namespace.createElement("div", { className: layout === "grid" ? "grid grid-cols-3 gap-4" : "space-y-3" }, groupBadges.map((b) => /* @__PURE__ */ React__namespace.createElement("div", { key: b.badgeId, className: `p-4 bg-white rounded-xl border border-zinc-200 shadow-sm ${layout === "grid" ? "flex flex-col" : "flex items-center justify-between"}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-x-3" }, /* @__PURE__ */ React__namespace.createElement(BadgeEmblem, { size: "sm", iconURL: b.iconURL }), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-xs font-bold text-zinc-800" }, b.displayName), statusLabel && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[9px] text-amber-500 font-black uppercase mt-0.5" }, statusLabel))), /* @__PURE__ */ React__namespace.createElement("span", { className: "font-black text-blue-600 text-xs" }, b.weight, " pts")))));
5841
5976
  }));
5842
5977
  };
5843
- return /* @__PURE__ */ React__namespace.createElement("div", { className: "p-6 space-y-10 border-t border-zinc-100 bg-zinc-50/30 animate-in fade-in duration-500" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-4 bg-white p-5 rounded-xl border border-zinc-100 shadow-sm text-sm" }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 uppercase text-[9px] font-black mb-1" }, "Student"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-zinc-800" }, safeRender(props.studentName) || "Guest User"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-500 text-[11px] mt-0.5" }, safeRender(props.studentEmail))), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 uppercase text-[9px] font-black mb-1" }, "Organization"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-zinc-800" }, safeRender(props.schoolName) || "Not Provided"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-500 text-[11px] mt-0.5" }, props.gradeLevel ? `Grade ${safeRender(props.gradeLevel)}` : "")), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 uppercase text-[9px] font-black mb-1" }, "Status"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-blue-500 font-bold text-[10px] uppercase" }, "Verified Record"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 text-[10px] mt-0.5" }, props.today || new Date().toLocaleDateString()))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-black text-zinc-900 tracking-tight" }, props.title || "Untitled Pathway"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-zinc-500 max-w-3xl leading-relaxed" }, props.description || "No description provided for this pathway.")), /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "bg-white border border-zinc-200 p-4 rounded-xl shadow-sm flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-blue-600" }, totalPointsEarned.toLocaleString()), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10px] font-bold text-zinc-400 uppercase tracking-widest mt-1" }, "Total Pts")), /* @__PURE__ */ React__namespace.createElement("div", { className: "bg-white border border-zinc-200 p-4 rounded-xl shadow-sm flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-blue-600" }, badgesEarnedCount), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10px] font-bold text-zinc-400 uppercase tracking-widest mt-1" }, "Badges Earned")), /* @__PURE__ */ React__namespace.createElement("div", { className: "bg-white border border-zinc-200 p-4 rounded-xl shadow-sm flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ React__namespace.createElement("span", { className: `text-2xl font-black ${sealEarned ? "text-emerald-500" : "text-zinc-300"}` }, sealEarned ? "Yes" : "No"), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10px] font-bold text-zinc-400 uppercase tracking-widest mt-1" }, "Seal Earned")))), /* @__PURE__ */ React__namespace.createElement("section", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase text-zinc-400 tracking-widest mb-3" }, "Criteria & Progress"), /* @__PURE__ */ React__namespace.createElement("div", { className: "p-5 border border-zinc-100 rounded-xl bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(PathwayProgressBarChart, { targets: props.mappedTargets, points: props.mappedPoints, height: "md" }))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-12" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex justify-between items-center border-b border-zinc-200 pb-3" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase text-zinc-400 tracking-widest" }, "Activity History"), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex bg-white border border-zinc-200 p-1 rounded-md text-[10px] font-bold uppercase" }, /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => setLayout("list"), className: `px-3 py-1.5 rounded ${layout === "list" ? "bg-zinc-100 text-blue-600" : "text-zinc-400"}` }, "List View"), /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => setLayout("grid"), className: `px-3 py-1.5 rounded ${layout === "grid" ? "bg-zinc-100 text-blue-600" : "text-zinc-400"}` }, "Grid View"))), renderBadgePool(completedBadges, "Completed Activity"), renderBadgePool(inProgressBadges, "In Progress", "Started")));
5978
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "p-6 space-y-10 border-t border-zinc-100 bg-zinc-50/30 animate-in fade-in duration-500" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-4 bg-white p-5 rounded-xl border border-zinc-100 shadow-sm text-sm" }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 uppercase text-[9px] font-black mb-1" }, "Student"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-zinc-800" }, safeRender(props.studentName) || "Guest User"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-500 text-[11px] mt-0.5" }, safeRender(props.studentEmail))), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 uppercase text-[9px] font-black mb-1" }, "Organization"), /* @__PURE__ */ React__namespace.createElement("p", { className: "font-bold text-zinc-800" }, safeRender(props.schoolName) || "Not Provided"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-500 text-[11px] mt-0.5" }, props.gradeLevel ? `Grade ${safeRender(props.gradeLevel)}` : "")), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 uppercase text-[9px] font-black mb-1" }, "Status"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-blue-500 font-bold text-[10px] uppercase" }, "Verified Record"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-zinc-400 text-[10px] mt-0.5" }, today))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-6" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-2xl font-black text-zinc-900 tracking-tight" }, props.title || "Untitled Pathway"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-zinc-500 max-w-3xl leading-relaxed" }, props.description || "No description provided for this pathway.")), /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-3 gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "bg-white border border-zinc-200 p-4 rounded-xl shadow-sm flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-blue-600" }, totalPointsEarned.toLocaleString()), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10px] font-bold text-zinc-400 uppercase tracking-widest mt-1" }, "Total Pts")), /* @__PURE__ */ React__namespace.createElement("div", { className: "bg-white border border-zinc-200 p-4 rounded-xl shadow-sm flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-2xl font-black text-blue-600" }, badgesEarnedCount), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10px] font-bold text-zinc-400 uppercase tracking-widest mt-1" }, "Badges Earned")), /* @__PURE__ */ React__namespace.createElement("div", { className: "bg-white border border-zinc-200 p-4 rounded-xl shadow-sm flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ React__namespace.createElement("span", { className: `text-2xl font-black ${sealEarned ? "text-emerald-500" : "text-zinc-300"}` }, sealEarned ? "Yes" : "No"), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-[10px] font-bold text-zinc-400 uppercase tracking-widest mt-1" }, "Seal Earned")))), /* @__PURE__ */ React__namespace.createElement("section", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase text-zinc-400 tracking-widest mb-3" }, "Criteria & Progress"), /* @__PURE__ */ React__namespace.createElement("div", { className: "p-5 border border-zinc-100 rounded-xl bg-white shadow-sm" }, /* @__PURE__ */ React__namespace.createElement(PathwayProgressBarChart, { targets: mappedTargets, points: mappedPoints, height: "md" }))), /* @__PURE__ */ React__namespace.createElement("section", { className: "space-y-12" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex justify-between items-center border-b border-zinc-200 pb-3" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-black uppercase text-zinc-400 tracking-widest" }, "Activity History"), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex bg-white border border-zinc-200 p-1 rounded-md text-[10px] font-bold uppercase" }, /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => setLayout("list"), className: `px-3 py-1.5 rounded ${layout === "list" ? "bg-zinc-100 text-blue-600" : "text-zinc-400"}` }, "List View"), /* @__PURE__ */ React__namespace.createElement("button", { onClick: () => setLayout("grid"), className: `px-3 py-1.5 rounded ${layout === "grid" ? "bg-zinc-100 text-blue-600" : "text-zinc-400"}` }, "Grid View"))), renderBadgePool(completedBadges, "Completed Activity"), renderBadgePool(inProgressBadges, "In Progress", "Started")));
5844
5979
  };
5845
5980
 
5846
- var __defProp$3 = Object.defineProperty;
5847
- var __defProps$2 = Object.defineProperties;
5848
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
5849
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
5850
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
5851
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
5852
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5853
- var __spreadValues$3 = (a, b) => {
5981
+ var __defProp$6 = Object.defineProperty;
5982
+ var __defProps$1 = Object.defineProperties;
5983
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
5984
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
5985
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
5986
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
5987
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5988
+ var __spreadValues$6 = (a, b) => {
5854
5989
  for (var prop in b || (b = {}))
5855
- if (__hasOwnProp$3.call(b, prop))
5856
- __defNormalProp$3(a, prop, b[prop]);
5857
- if (__getOwnPropSymbols$3)
5858
- for (var prop of __getOwnPropSymbols$3(b)) {
5859
- if (__propIsEnum$3.call(b, prop))
5860
- __defNormalProp$3(a, prop, b[prop]);
5990
+ if (__hasOwnProp$6.call(b, prop))
5991
+ __defNormalProp$6(a, prop, b[prop]);
5992
+ if (__getOwnPropSymbols$6)
5993
+ for (var prop of __getOwnPropSymbols$6(b)) {
5994
+ if (__propIsEnum$6.call(b, prop))
5995
+ __defNormalProp$6(a, prop, b[prop]);
5861
5996
  }
5862
5997
  return a;
5863
5998
  };
5864
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
5999
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
5865
6000
  const PathwayCard = (props) => {
5866
6001
  const [view, setView] = React__namespace.useState("overview");
5867
6002
  const today = React__namespace.useMemo(() => new Date().toLocaleDateString("en-US", {
@@ -5887,7 +6022,7 @@ const PathwayCard = (props) => {
5887
6022
  });
5888
6023
  return p;
5889
6024
  }, [props.points, props.categoryNames]);
5890
- const sharedProps = __spreadProps$2(__spreadValues$3({}, props), {
6025
+ const sharedProps = __spreadProps$1(__spreadValues$6({}, props), {
5891
6026
  mappedTargets,
5892
6027
  mappedPoints,
5893
6028
  today,
@@ -5913,7 +6048,7 @@ const PathwayCard = (props) => {
5913
6048
  border: "rounded",
5914
6049
  onClick: () => setView(view === "overview" ? "transcript" : "overview")
5915
6050
  }
5916
- ))), view === "overview" ? /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(PathwayOverview, __spreadValues$3({}, sharedProps)), /* @__PURE__ */ React__namespace.createElement("div", { className: "pt-5 px-5 flex border-t border-zinc-100" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "w-full max-w-[7rem] ml-auto" }, /* @__PURE__ */ React__namespace.createElement(
6051
+ ))), view === "overview" ? /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(PathwayOverview, __spreadValues$6({}, sharedProps)), /* @__PURE__ */ React__namespace.createElement("div", { className: "pt-5 px-5 flex border-t border-zinc-100" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "w-full max-w-[7rem] ml-auto" }, /* @__PURE__ */ React__namespace.createElement(
5917
6052
  Button,
5918
6053
  {
5919
6054
  disabled: true,
@@ -5925,27 +6060,27 @@ const PathwayCard = (props) => {
5925
6060
  theme: "dark",
5926
6061
  text: "Submit"
5927
6062
  }
5928
- )))) : /* @__PURE__ */ React__namespace.createElement(PathwayTranscript, __spreadValues$3({}, sharedProps))));
6063
+ )))) : /* @__PURE__ */ React__namespace.createElement(PathwayTranscript, __spreadValues$6({}, sharedProps))));
5929
6064
  };
5930
6065
 
5931
- var __defProp$2 = Object.defineProperty;
5932
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
5933
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
5934
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
5935
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5936
- var __spreadValues$2 = (a, b) => {
6066
+ var __defProp$5 = Object.defineProperty;
6067
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
6068
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
6069
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
6070
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6071
+ var __spreadValues$5 = (a, b) => {
5937
6072
  for (var prop in b || (b = {}))
5938
- if (__hasOwnProp$2.call(b, prop))
5939
- __defNormalProp$2(a, prop, b[prop]);
5940
- if (__getOwnPropSymbols$2)
5941
- for (var prop of __getOwnPropSymbols$2(b)) {
5942
- if (__propIsEnum$2.call(b, prop))
5943
- __defNormalProp$2(a, prop, b[prop]);
6073
+ if (__hasOwnProp$5.call(b, prop))
6074
+ __defNormalProp$5(a, prop, b[prop]);
6075
+ if (__getOwnPropSymbols$5)
6076
+ for (var prop of __getOwnPropSymbols$5(b)) {
6077
+ if (__propIsEnum$5.call(b, prop))
6078
+ __defNormalProp$5(a, prop, b[prop]);
5944
6079
  }
5945
6080
  return a;
5946
6081
  };
5947
6082
  const Pathway = (props) => {
5948
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(PathwayCard, __spreadValues$2({}, props)));
6083
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(PathwayCard, __spreadValues$5({}, props)));
5949
6084
  };
5950
6085
 
5951
6086
  const PathwayButton = (props) => {
@@ -5989,25 +6124,25 @@ const PathwayButton = (props) => {
5989
6124
  )), !!props.title && /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm m-auto flex gap-x-2" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "font-semibold text-zinc-600" }, props.title)));
5990
6125
  };
5991
6126
 
5992
- var __defProp$1 = Object.defineProperty;
5993
- var __defProps$1 = Object.defineProperties;
5994
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
5995
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
5996
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
5997
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
5998
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5999
- var __spreadValues$1 = (a, b) => {
6127
+ var __defProp$4 = Object.defineProperty;
6128
+ var __defProps = Object.defineProperties;
6129
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6130
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
6131
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
6132
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
6133
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6134
+ var __spreadValues$4 = (a, b) => {
6000
6135
  for (var prop in b || (b = {}))
6001
- if (__hasOwnProp$1.call(b, prop))
6002
- __defNormalProp$1(a, prop, b[prop]);
6003
- if (__getOwnPropSymbols$1)
6004
- for (var prop of __getOwnPropSymbols$1(b)) {
6005
- if (__propIsEnum$1.call(b, prop))
6006
- __defNormalProp$1(a, prop, b[prop]);
6136
+ if (__hasOwnProp$4.call(b, prop))
6137
+ __defNormalProp$4(a, prop, b[prop]);
6138
+ if (__getOwnPropSymbols$4)
6139
+ for (var prop of __getOwnPropSymbols$4(b)) {
6140
+ if (__propIsEnum$4.call(b, prop))
6141
+ __defNormalProp$4(a, prop, b[prop]);
6007
6142
  }
6008
6143
  return a;
6009
6144
  };
6010
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
6145
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6011
6146
  const PathwaySection = (props) => {
6012
6147
  const progress = [];
6013
6148
  const locked = [];
@@ -6046,15 +6181,15 @@ const PathwaySection = (props) => {
6046
6181
  },
6047
6182
  "Grid View?"
6048
6183
  )))), /* @__PURE__ */ React__namespace.createElement("div", null, !!props.readonly && /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, preview.map((p, i) => {
6049
- return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps$1(__spreadValues$1({ key: i }, p), { compact: list }));
6184
+ return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps(__spreadValues$4({ key: i }, p), { compact: list }));
6050
6185
  })), !props.readonly && /* @__PURE__ */ React__namespace.createElement("div", { className: "text-zinc-600 grid grid-cols-1 gap-y-4" }, progress.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "In Progress"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, progress.map((p, i) => {
6051
- return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps$1(__spreadValues$1({ key: i }, p), { compact: list }));
6186
+ return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps(__spreadValues$4({ key: i }, p), { compact: list }));
6052
6187
  }))), collected.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "Completed"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, collected.map((p, i) => {
6053
- return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps$1(__spreadValues$1({ key: i }, p), { compact: list }));
6188
+ return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps(__spreadValues$4({ key: i }, p), { compact: list }));
6054
6189
  }))), available.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "Available"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, available.map((p, i) => {
6055
- return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps$1(__spreadValues$1({ key: i }, p), { compact: list }));
6190
+ return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps(__spreadValues$4({ key: i }, p), { compact: list }));
6056
6191
  }))), locked.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-3 text-md underline font-bold" }, "Locked"), /* @__PURE__ */ React__namespace.createElement("div", { className: layoutClassName }, locked.map((p, i) => {
6057
- return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps$1(__spreadValues$1({ key: i }, p), { compact: list }));
6192
+ return /* @__PURE__ */ React__namespace.createElement(PathwayButton, __spreadProps(__spreadValues$4({ key: i }, p), { compact: list }));
6058
6193
  }))))))))));
6059
6194
  };
6060
6195
  const getLayout = (list) => {
@@ -6064,37 +6199,360 @@ const getLayout = (list) => {
6064
6199
  return "flex flex-wrap gap-3";
6065
6200
  };
6066
6201
 
6067
- const AuthLayout = (props) => {
6068
- return /* @__PURE__ */ React.createElement("main", { className: "relative h-screen w-full bg-white font-proxima" }, /* @__PURE__ */ React.createElement(Loader, { isLoading: props.isLoading }, props.topNav !== false && /* @__PURE__ */ React.createElement(NavBar, null, /* @__PURE__ */ React.createElement(NavLink, { disabled: !props.onHome || props.disabled, name: "home", onClick: props.onHome }), props.onProfile && /* @__PURE__ */ React.createElement(
6069
- NavLink,
6202
+ var __defProp$3 = Object.defineProperty;
6203
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
6204
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
6205
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
6206
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6207
+ var __spreadValues$3 = (a, b) => {
6208
+ for (var prop in b || (b = {}))
6209
+ if (__hasOwnProp$3.call(b, prop))
6210
+ __defNormalProp$3(a, prop, b[prop]);
6211
+ if (__getOwnPropSymbols$3)
6212
+ for (var prop of __getOwnPropSymbols$3(b)) {
6213
+ if (__propIsEnum$3.call(b, prop))
6214
+ __defNormalProp$3(a, prop, b[prop]);
6215
+ }
6216
+ return a;
6217
+ };
6218
+ const ACCENT_ORDER$1 = ["cyan", "mint", "gold"];
6219
+ const ACCENT_CLASSNAMES$1 = {
6220
+ cyan: {
6221
+ border: "border-sky-blue-400/30",
6222
+ shadow: "shadow-[0_4px_20px_rgba(59,208,242,0.10)]",
6223
+ strip: "from-sky-blue-400 to-mint-400",
6224
+ progress: "sky-blue"
6225
+ },
6226
+ mint: {
6227
+ border: "border-mint-400/30",
6228
+ shadow: "shadow-[0_4px_20px_rgba(30,226,175,0.10)]",
6229
+ strip: "from-mint-400 to-gold-400",
6230
+ progress: "mint"
6231
+ },
6232
+ gold: {
6233
+ border: "border-gold-400/30",
6234
+ shadow: "shadow-[0_4px_20px_rgba(255,212,77,0.10)]",
6235
+ strip: "from-gold-400 to-sky-blue-400",
6236
+ progress: "gold"
6237
+ }
6238
+ };
6239
+ const PathwaysList = (props) => {
6240
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-3.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-semibold text-slate-400" }, props.pathways.length, " pathway", props.pathways.length === 1 ? "" : "s"), props.pathways.length === 0 && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-400" }, "No pathways to display."), props.pathways.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-1 gap-3.5 sm:grid-cols-2" }, props.pathways.map((pathway, i) => /* @__PURE__ */ React__namespace.createElement(PathwayListCard, __spreadValues$3({ key: pathway.pathwayId || i, accent: ACCENT_ORDER$1[i % ACCENT_ORDER$1.length] }, pathway)))));
6241
+ };
6242
+ const PathwayListCard = (props) => {
6243
+ var _a;
6244
+ const { border, shadow, strip, progress } = ACCENT_CLASSNAMES$1[props.accent];
6245
+ const badgeCount = ((_a = props.badges) == null ? void 0 : _a.length) || 0;
6246
+ const target = props.target || badgeCount || 1;
6247
+ const value = props.progress || 0;
6248
+ return /* @__PURE__ */ React__namespace.createElement(
6249
+ "div",
6070
6250
  {
6071
- disabled: props.disabled,
6072
- name: "profile",
6073
- onClick: props.onProfile,
6074
- active: props.page === "profile"
6251
+ onClick: props.onClick,
6252
+ className: `overflow-hidden rounded-2xl border bg-white ${border} ${shadow} ${props.onClick ? "cursor-pointer hover:bg-slate-50" : ""}`
6253
+ },
6254
+ /* @__PURE__ */ React__namespace.createElement("div", { className: `h-1 bg-gradient-to-r ${strip}` }),
6255
+ /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-4 p-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "shrink-0" }, /* @__PURE__ */ React__namespace.createElement(BadgeEmblem, { iconURL: props.imageURL, alt: props.title, size: "xs" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0 flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, props.title), props.description && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1.5 text-xs text-slate-500" }, props.description), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-3 flex items-center gap-2.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "h-1.5 flex-1" }, /* @__PURE__ */ React__namespace.createElement(Progress, { rounded: true, color: progress, start: value, end: target })), /* @__PURE__ */ React__namespace.createElement("div", { className: "whitespace-nowrap text-[10.5px] font-semibold text-slate-400" }, value, "/", target, " badges"))))
6256
+ );
6257
+ };
6258
+
6259
+ const STATUS_CLASSNAMES = {
6260
+ "In Progress": {
6261
+ border: "border-sky-blue-400/30",
6262
+ shadow: "shadow-[0_4px_20px_rgba(59,208,242,0.10)]",
6263
+ pillAccent: "cyan"
6264
+ },
6265
+ Completed: {
6266
+ border: "border-mint-400/30",
6267
+ shadow: "shadow-[0_4px_20px_rgba(30,226,175,0.10)]",
6268
+ pillAccent: "mint"
6269
+ },
6270
+ Available: {
6271
+ border: "border-gold-400/30",
6272
+ shadow: "shadow-[0_4px_20px_rgba(255,212,77,0.10)]",
6273
+ pillAccent: "gold"
6274
+ }
6275
+ };
6276
+ const ACCENT_ORDER = ["cyan", "mint", "gold"];
6277
+ const PROGRESS_COLOR = {
6278
+ cyan: "sky-blue",
6279
+ mint: "mint",
6280
+ gold: "gold"
6281
+ };
6282
+ const PathwayDetail = (props) => {
6283
+ const badges = props.badges || [];
6284
+ const completedCount = badges.filter((b) => b.completedAt).length;
6285
+ const target = badges.length;
6286
+ const anyStarted = badges.some((b) => b.startedAt);
6287
+ const status = target > 0 && completedCount === target ? "Completed" : anyStarted || completedCount > 0 ? "In Progress" : "Available";
6288
+ const { border, shadow, pillAccent } = STATUS_CLASSNAMES[status];
6289
+ const categoryIds = Object.keys(props.rawCriteria || {});
6290
+ const [catFilter, setCatFilter] = React__namespace.useState(null);
6291
+ const filteredBadges = catFilter ? badges.filter((b) => {
6292
+ var _a;
6293
+ return (_a = b.categories) == null ? void 0 : _a.includes(catFilter);
6294
+ }) : badges;
6295
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex max-w-2xl flex-col gap-3.5" }, props.onBack && /* @__PURE__ */ React__namespace.createElement("div", { onClick: props.onBack, className: "w-max cursor-pointer text-xs font-bold text-sky-blue-400" }, "\u2190 Back to My Pathways"), /* @__PURE__ */ React__namespace.createElement("div", { className: `overflow-hidden rounded-2xl border bg-white ${border} ${shadow}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-4 p-5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "shrink-0" }, /* @__PURE__ */ React__namespace.createElement(BadgeEmblem, { iconURL: props.imageURL, alt: props.title, size: "sm" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-lg font-extrabold text-dark-blue-400" }, props.title), !!(props.displayTags && props.displayTags.length) && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2 flex flex-wrap gap-1.5" }, props.displayTags.map((tag) => /* @__PURE__ */ React__namespace.createElement(Pill, { key: tag, label: tag, accent: pillAccent }))), !!props.description && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2 text-xs text-slate-500" }, props.description), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2.5" }, /* @__PURE__ */ React__namespace.createElement(Pill, { label: status, accent: pillAccent }))))), /* @__PURE__ */ React__namespace.createElement("div", { className: `rounded-2xl border bg-white p-5 ${border} ${shadow}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Pathway Badges & Criteria"), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1.5 text-xs text-slate-500" }, "This pathway is comprised of ", target, " badge", target === 1 ? "" : "s", ". It includes required and elective programming."), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-500" }, "Progress: ", completedCount, " / ", target, " badges completed."), categoryIds.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-4 flex flex-col gap-3" }, categoryIds.map((id, i) => {
6296
+ var _a, _b, _c;
6297
+ const accent = ACCENT_ORDER[i % ACCENT_ORDER.length];
6298
+ const label = ((_a = props.categoryNames) == null ? void 0 : _a[id]) || id;
6299
+ const max = ((_b = props.rawCriteria) == null ? void 0 : _b[id]) || 0;
6300
+ const value = ((_c = props.points) == null ? void 0 : _c[id]) || 0;
6301
+ return /* @__PURE__ */ React__namespace.createElement("div", { key: id }, /* @__PURE__ */ React__namespace.createElement("div", { className: "mb-1 flex items-center justify-between text-xs font-semibold text-slate-500" }, /* @__PURE__ */ React__namespace.createElement("span", null, label), /* @__PURE__ */ React__namespace.createElement("span", null, value, " / ", max)), /* @__PURE__ */ React__namespace.createElement("div", { className: "h-1.5" }, /* @__PURE__ */ React__namespace.createElement(Progress, { rounded: true, color: PROGRESS_COLOR[accent], start: value, end: max || 1 })));
6302
+ })), categoryIds.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-4 flex flex-wrap gap-2" }, /* @__PURE__ */ React__namespace.createElement(
6303
+ "div",
6304
+ {
6305
+ onClick: () => setCatFilter(null),
6306
+ className: `cursor-pointer rounded-full px-3.5 py-1.5 text-xs font-bold ${catFilter === null ? "bg-dark-blue-400 text-white" : "bg-slate-100 text-slate-500 hover:bg-slate-200"}`
6307
+ },
6308
+ "All"
6309
+ ), categoryIds.map((id) => {
6310
+ var _a;
6311
+ return /* @__PURE__ */ React__namespace.createElement(
6312
+ "div",
6313
+ {
6314
+ key: id,
6315
+ onClick: () => setCatFilter(id),
6316
+ className: `cursor-pointer rounded-full px-3.5 py-1.5 text-xs font-bold ${catFilter === id ? "bg-dark-blue-400 text-white" : "bg-slate-100 text-slate-500 hover:bg-slate-200"}`
6317
+ },
6318
+ ((_a = props.categoryNames) == null ? void 0 : _a[id]) || id
6319
+ );
6320
+ })), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-4 flex flex-col" }, filteredBadges.map((b, i) => {
6321
+ const buttonText = b.completedAt ? "Review" : b.startedAt ? "Continue" : "Start";
6322
+ return /* @__PURE__ */ React__namespace.createElement("div", { key: b.badgeId || i, className: "flex items-center gap-3.5 border-b border-slate-100 py-3.5 last:border-b-0" }, /* @__PURE__ */ React__namespace.createElement(
6323
+ "div",
6324
+ {
6325
+ className: `h-[18px] w-[18px] shrink-0 rounded-full border-2 ${b.completedAt ? "border-mint-400 bg-mint-400" : "border-slate-300 bg-transparent"}`
6326
+ }
6327
+ ), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs font-bold text-dark-blue-400" }, b.displayName), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-0.5 text-[10.5px] font-bold text-mint-400" }, b.weight, " point", b.weight === 1 ? "" : "s")), /* @__PURE__ */ React__namespace.createElement(
6328
+ "button",
6329
+ {
6330
+ type: "button",
6331
+ onClick: b.onClick,
6332
+ className: `shrink-0 rounded-lg px-4 py-1.5 text-xs font-bold ${b.completedAt ? "border border-slate-200 bg-white text-slate-600 hover:bg-slate-50" : "bg-dark-blue-400 text-white hover:bg-dark-blue-400/90"}`
6333
+ },
6334
+ buttonText
6335
+ ));
6336
+ }))));
6337
+ };
6338
+
6339
+ const ACCENT_CLASSNAMES = {
6340
+ cyan: {
6341
+ chip: "bg-sky-blue-400/15",
6342
+ icon: "text-sky-blue-400",
6343
+ card: "border-sky-blue-400/20 shadow-[0_2px_12px_rgba(59,208,242,0.12)]"
6344
+ },
6345
+ mint: {
6346
+ chip: "bg-mint-400/15",
6347
+ icon: "text-mint-400",
6348
+ card: "border-mint-400/20 shadow-[0_2px_12px_rgba(30,226,175,0.12)]"
6349
+ },
6350
+ gold: {
6351
+ chip: "bg-gold-400/15",
6352
+ icon: "text-gold-400",
6353
+ card: "border-gold-400/20 shadow-[0_2px_12px_rgba(255,212,77,0.12)]"
6354
+ },
6355
+ slate: { chip: "bg-slate-100", icon: "text-slate-400", card: "border-slate-200 shadow-sm" }
6356
+ };
6357
+ const StatTile = (props) => {
6358
+ const { chip, icon, card } = ACCENT_CLASSNAMES[props.accent || "slate"];
6359
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: `flex flex-1 flex-col gap-2.5 rounded-2xl border bg-white p-4 ${card}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: `flex h-9 w-9 items-center justify-center rounded-[10px] ${chip}` }, /* @__PURE__ */ React__namespace.createElement("div", { className: `h-[18px] w-[18px] ${icon}` }, /* @__PURE__ */ React__namespace.createElement(Icon$1, { name: props.icon }))), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-2xl font-extrabold text-dark-blue-400" }, props.value), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-400" }, props.label)));
6360
+ };
6361
+ const StatTileRow = (props) => /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-2.5" }, props.children);
6362
+
6363
+ const ProfileHeroCard = (props) => {
6364
+ const hasContent = props.givenName || props.familyName;
6365
+ const xp = props.xp || 0;
6366
+ const nextXP = props.nextXP || 0;
6367
+ const pct = nextXP ? Math.min(100, Math.round(xp / nextXP * 100)) : 0;
6368
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "relative overflow-hidden rounded-2xl border border-sky-blue-400/20 bg-white shadow-[0_4px_24px_rgba(59,208,242,0.10)]" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "h-1 bg-gradient-to-r from-sky-blue-400 via-mint-400 to-gold-400" }), /* @__PURE__ */ React__namespace.createElement("div", { className: "p-5" }, /* @__PURE__ */ React__namespace.createElement(Loader, { isLoading: props.isLoading }, hasContent && /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-start gap-4" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "relative shrink-0" }, /* @__PURE__ */ React__namespace.createElement(
6369
+ "img",
6370
+ {
6371
+ src: props.avatarURL || "https://cdn.localcivics.io/hub/avatar.jpg",
6372
+ alt: "avatar",
6373
+ className: "h-16 w-16 rounded-full border-4 border-white object-cover shadow-lg"
6075
6374
  }
6076
- ), props.onSwitchAccount && /* @__PURE__ */ React.createElement(NavLink, { name: "switch accounts", onClick: props.onSwitchAccount }), props.onLogout && /* @__PURE__ */ React.createElement(NavLink, { name: "Logout", onClick: props.onLogout })), props.children && /* @__PURE__ */ React.createElement("section", { className: "absolute top-0 left-0 h-full overflow-auto pt-16 w-full" }, props.children), !props.children && /* @__PURE__ */ React.createElement("section", { className: "w-full px-4 py-5 lg:px-36 flex flex-col gap-4" }, props.header && /* @__PURE__ */ React.createElement("div", { className: "w-full max-w-[64rem] m-auto min-h-16 lg:min-h-24 lg:flex" }, props.header), /* @__PURE__ */ React.createElement("div", { className: "grow w-full min-h-96" }, /* @__PURE__ */ React.createElement("div", { className: "w-full max-w-[64rem] m-auto grid grid-cols-1 gap-y-4 lg:flex lg:gap-x-2" }, props.sidebar && /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 max-w-full md:flex md:flex-col gap-2 lg:w-[230px] shrink-0 lg:sticky lg:top-0 lg:h-screen lg:self-start lg:overflow-y-auto" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-4 lg:gap-x-2 lg:gap-y-3" }, props.sidebar)), (props.subheader || props.main) && /* @__PURE__ */ React.createElement("div", { className: "grow grid grid-cols-1 max-w-full overflow-x-hidden md:flex md:flex-col gap-4 lg:gap-2" }, props.subheader && /* @__PURE__ */ React.createElement("div", { className: "relative grid grid-cols-1 md:flex w-full gap-4 lg:gap-2" }, props.subheader), props.main && /* @__PURE__ */ React.createElement("div", { className: "relative grid grid-cols-1 w-full gap-4 lg:gap-2" }, props.main)))), /* @__PURE__ */ React.createElement(Footer, null))), props.outlet);
6375
+ ), props.online && /* @__PURE__ */ React__namespace.createElement("span", { className: "absolute right-0 top-0 h-3.5 w-3.5 rounded-full border-2 border-white bg-mint-400" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0 flex-1" }, /* @__PURE__ */ React__namespace.createElement("h2", { className: "truncate text-xl font-extrabold capitalize text-dark-blue-400" }, props.givenName, " ", props.familyName), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-0.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-sm text-slate-400" }, props.createdAt && /* @__PURE__ */ React__namespace.createElement("span", null, "Member since ", new Date(props.createdAt).getFullYear()), props.communityName && /* @__PURE__ */ React__namespace.createElement("span", { className: "flex items-center gap-1" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "h-3.5 w-3.5 text-slate-500" }, /* @__PURE__ */ React__namespace.createElement(Icon$1, { name: "college & career" })), props.communityName), props.placeName && /* @__PURE__ */ React__namespace.createElement("span", { className: "flex items-center gap-1" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "h-3.5 w-3.5 text-slate-500" }, /* @__PURE__ */ React__namespace.createElement(Icon$1, { name: "pin" })), props.placeName)), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-2 flex gap-2" }, !!props.level && /* @__PURE__ */ React__namespace.createElement(Pill, { label: `Level ${props.level}`, accent: "gold" }), !!props.xp && /* @__PURE__ */ React__namespace.createElement(Pill, { label: `${compact(props.xp)} XP`, accent: "cyan" }))), props.onEdit && /* @__PURE__ */ React__namespace.createElement(
6376
+ Button,
6377
+ {
6378
+ text: "Edit Profile",
6379
+ icon: "edit",
6380
+ color: "slate:sky",
6381
+ border: "rounded-sm",
6382
+ size: "sm",
6383
+ onClick: props.onEdit
6384
+ }
6385
+ )), props.impactStatement && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-500" }, props.impactStatement), /* @__PURE__ */ React__namespace.createElement("div", { className: "border-t border-sky-blue-400/15 pt-4" }, /* @__PURE__ */ React__namespace.createElement("p", { className: "mb-1.5 text-xs text-slate-400" }, "Impact Score"), /* @__PURE__ */ React__namespace.createElement("div", { className: "h-2.5 w-full overflow-hidden rounded-full bg-sky-blue-400/10" }, /* @__PURE__ */ React__namespace.createElement(
6386
+ "div",
6387
+ {
6388
+ className: "h-full rounded-full bg-gradient-to-r from-sky-blue-400 to-mint-400 shadow-[0_0_8px_rgba(30,226,175,0.6)]",
6389
+ style: { width: `${pct}%` }
6390
+ }
6391
+ )), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1.5 flex items-baseline gap-1" }, /* @__PURE__ */ React__namespace.createElement("span", { className: "text-xl font-extrabold text-dark-blue-400" }, compact(xp)), /* @__PURE__ */ React__namespace.createElement("span", { className: "text-sm font-semibold text-slate-500" }, "XP"), !!nextXP && /* @__PURE__ */ React__namespace.createElement("span", { className: "ml-auto text-xs text-slate-400" }, compact(Math.max(nextXP - xp, 0)), " to next level")))))));
6077
6392
  };
6078
6393
 
6079
- const HomeLayout = (props) => {
6080
- const onProfile = () => props.onProfile && props.onProfile();
6081
- React.useEffect(() => {
6082
- if (props.isLoading) {
6083
- return;
6394
+ var __defProp$2 = Object.defineProperty;
6395
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
6396
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
6397
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
6398
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6399
+ var __spreadValues$2 = (a, b) => {
6400
+ for (var prop in b || (b = {}))
6401
+ if (__hasOwnProp$2.call(b, prop))
6402
+ __defNormalProp$2(a, prop, b[prop]);
6403
+ if (__getOwnPropSymbols$2)
6404
+ for (var prop of __getOwnPropSymbols$2(b)) {
6405
+ if (__propIsEnum$2.call(b, prop))
6406
+ __defNormalProp$2(a, prop, b[prop]);
6084
6407
  }
6085
- if (props.nickname) {
6086
- if (props.pathname === `/`) {
6087
- onProfile();
6088
- return;
6089
- }
6408
+ return a;
6409
+ };
6410
+ const PathwaysCard = (props) => {
6411
+ const [list, setList] = React__namespace.useState(props.list);
6412
+ React__namespace.useEffect(() => {
6413
+ setList(props.list);
6414
+ }, [props.list]);
6415
+ React__namespace.useEffect(() => {
6416
+ if (list !== void 0 && props.list !== list && props.onToggleLayout) {
6417
+ props.onToggleLayout(list);
6090
6418
  }
6091
- }, [props.isLoading, props.pathname, props.nickname]);
6092
- return /* @__PURE__ */ React.createElement("main", { className: "relative h-screen w-full overflow-hidden bg-white font-proxima" }, /* @__PURE__ */ React.createElement(NavBar, null, /* @__PURE__ */ React.createElement(NavLink, { name: "home", onClick: props.onHome, active: true }), /* @__PURE__ */ React.createElement(NavLink, { name: "login", onClick: props.onLogin }), /* @__PURE__ */ React.createElement(NavLink, { name: "faq", onClick: props.onFAQ }), /* @__PURE__ */ React.createElement(NavLink, { name: "privacy", onClick: props.onPrivacy }), /* @__PURE__ */ React.createElement(NavLink, { name: "terms", onClick: props.onTerms })), /* @__PURE__ */ React.createElement("section", { className: "absolute top-0 left-0 h-full overflow-hidden pt-16 w-full" }, props.children));
6419
+ }, [list]);
6420
+ const gridClassName = list ? "grid grid-cols-1 gap-2" : "grid grid-cols-1 gap-3 sm:grid-cols-2";
6421
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-1 flex-col overflow-hidden rounded-2xl border border-sky-blue-400/20 bg-white shadow-[0_4px_20px_rgba(59,208,242,0.10)]" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "h-1 bg-gradient-to-r from-sky-blue-400 via-mint-400 to-gold-400" }), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center justify-between gap-3 border-b border-slate-100 px-4 py-3.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-2.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex h-9 w-9 items-center justify-center rounded-[10px] bg-mint-400/15" }, /* @__PURE__ */ React__namespace.createElement(icons$1.IconRoute, { size: 18, stroke: 2, className: "text-mint-400" })), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "My Pathways & Seals"), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-400" }, props.pathways.length, " pathways"))), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React__namespace.createElement(
6422
+ "button",
6423
+ {
6424
+ type: "button",
6425
+ onClick: () => setList(false),
6426
+ className: `flex h-7 w-7 items-center justify-center rounded-md ${!list ? "bg-slate-100 text-dark-blue-400" : "text-slate-300 hover:text-slate-400"}`
6427
+ },
6428
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconLayoutGrid, { size: 14, stroke: 1.75 })
6429
+ ), /* @__PURE__ */ React__namespace.createElement(
6430
+ "button",
6431
+ {
6432
+ type: "button",
6433
+ onClick: () => setList(true),
6434
+ className: `flex h-7 w-7 items-center justify-center rounded-md ${list ? "bg-slate-100 text-dark-blue-400" : "text-slate-300 hover:text-slate-400"}`
6435
+ },
6436
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconList, { size: 14, stroke: 1.75 })
6437
+ ))), /* @__PURE__ */ React__namespace.createElement("div", { className: "relative flex-1 p-4" }, /* @__PURE__ */ React__namespace.createElement(Loader, { isLoading: props.isLoading }, props.pathways.length === 0 && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-400" }, "No pathways to display."), props.pathways.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: gridClassName }, props.pathways.map((pathway, i) => /* @__PURE__ */ React__namespace.createElement(PathwayTile, __spreadValues$2({ key: pathway.pathwayId || i }, pathway)))))));
6438
+ };
6439
+ const PathwayTile = (props) => {
6440
+ var _a;
6441
+ const badgeCount = ((_a = props.badges) == null ? void 0 : _a.length) || 0;
6442
+ const target = props.target || badgeCount || 1;
6443
+ const progress = props.progress || 0;
6444
+ return /* @__PURE__ */ React__namespace.createElement(
6445
+ "div",
6446
+ {
6447
+ onClick: props.onClick,
6448
+ className: `flex items-center gap-3 rounded-xl border border-slate-200 p-3 ${props.onClick ? "cursor-pointer hover:bg-slate-50" : ""}`
6449
+ },
6450
+ /* @__PURE__ */ React__namespace.createElement("div", { className: "shrink-0" }, /* @__PURE__ */ React__namespace.createElement(BadgeEmblem, { iconURL: props.imageURL, alt: props.title, size: "xxs" })),
6451
+ /* @__PURE__ */ React__namespace.createElement("div", { className: "min-w-0 flex-1" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "truncate text-sm font-semibold text-dark-blue-400" }, props.title), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-xs text-slate-400" }, badgeCount, " badges"), /* @__PURE__ */ React__namespace.createElement("div", { className: "mt-1.5 h-1.5" }, /* @__PURE__ */ React__namespace.createElement(Progress, { rounded: true, color: "sky-blue", start: progress, end: target })))
6452
+ );
6453
+ };
6454
+
6455
+ var __defProp$1 = Object.defineProperty;
6456
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
6457
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
6458
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
6459
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6460
+ var __spreadValues$1 = (a, b) => {
6461
+ for (var prop in b || (b = {}))
6462
+ if (__hasOwnProp$1.call(b, prop))
6463
+ __defNormalProp$1(a, prop, b[prop]);
6464
+ if (__getOwnPropSymbols$1)
6465
+ for (var prop of __getOwnPropSymbols$1(b)) {
6466
+ if (__propIsEnum$1.call(b, prop))
6467
+ __defNormalProp$1(a, prop, b[prop]);
6468
+ }
6469
+ return a;
6470
+ };
6471
+ const FILTERS = ["In Progress", "Completed", "Available", "Locked"];
6472
+ const BadgesCard = (props) => {
6473
+ const groups = groupBadges(props.badges);
6474
+ const [active, setActive] = React__namespace.useState("In Progress");
6475
+ const [list, setList] = React__namespace.useState(props.list);
6476
+ React__namespace.useEffect(() => {
6477
+ setList(props.list);
6478
+ }, [props.list]);
6479
+ React__namespace.useEffect(() => {
6480
+ if (list !== void 0 && props.list !== list && props.onToggleLayout) {
6481
+ props.onToggleLayout(list);
6482
+ }
6483
+ }, [list]);
6484
+ const visible = groups[active];
6485
+ const gridClassName = list ? "grid grid-cols-1 gap-2" : "grid grid-cols-2 gap-3 sm:grid-cols-3";
6486
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-1 flex-col overflow-hidden rounded-2xl border border-gold-400/20 bg-white shadow-[0_4px_20px_rgba(255,212,77,0.12)]" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "h-1 bg-gradient-to-r from-gold-400 to-sky-blue-400" }), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center justify-between gap-3 border-b border-slate-100 px-4 py-3.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-2.5" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex h-9 w-9 items-center justify-center rounded-[10px] bg-gold-400/15" }, /* @__PURE__ */ React__namespace.createElement(icons$1.IconAlbum, { size: 18, stroke: 2, className: "text-gold-400" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "text-sm font-bold text-dark-blue-400" }, "Badges"), /* @__PURE__ */ React__namespace.createElement(Pill, { label: `${groups.Completed.length} / ${props.badges.length}`, accent: "gold" })), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React__namespace.createElement(
6487
+ "button",
6488
+ {
6489
+ type: "button",
6490
+ onClick: () => setList(false),
6491
+ className: `flex h-7 w-7 items-center justify-center rounded-md ${!list ? "bg-slate-100 text-dark-blue-400" : "text-slate-300 hover:text-slate-400"}`
6492
+ },
6493
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconLayoutGrid, { size: 14, stroke: 1.75 })
6494
+ ), /* @__PURE__ */ React__namespace.createElement(
6495
+ "button",
6496
+ {
6497
+ type: "button",
6498
+ onClick: () => setList(true),
6499
+ className: `flex h-7 w-7 items-center justify-center rounded-md ${list ? "bg-slate-100 text-dark-blue-400" : "text-slate-300 hover:text-slate-400"}`
6500
+ },
6501
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconList, { size: 14, stroke: 1.75 })
6502
+ ))), /* @__PURE__ */ React__namespace.createElement("div", { className: "grid grid-cols-4 gap-2 border-b border-slate-100 px-4" }, FILTERS.map((label) => /* @__PURE__ */ React__namespace.createElement(Tab, { key: label, title: label, secondary: true, active: active === label, onClick: () => setActive(label) }))), /* @__PURE__ */ React__namespace.createElement("div", { className: "relative flex-1 p-4" }, /* @__PURE__ */ React__namespace.createElement(Loader, { isLoading: props.isLoading }, visible.length === 0 && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-slate-400" }, "No badges to display."), visible.length > 0 && /* @__PURE__ */ React__namespace.createElement("div", { className: gridClassName }, visible.map((badge, i) => /* @__PURE__ */ React__namespace.createElement(BadgeTile, __spreadValues$1({ key: badge.badgeId || i }, badge)))))));
6503
+ };
6504
+ const groupBadges = (badges) => {
6505
+ const groups = {
6506
+ "In Progress": [],
6507
+ Completed: [],
6508
+ Available: [],
6509
+ Locked: []
6510
+ };
6511
+ badges.forEach((b) => {
6512
+ if (b.finishedAt) {
6513
+ groups.Completed.push(b);
6514
+ } else if (b.isLocked) {
6515
+ groups.Locked.push(b);
6516
+ } else if (b.startedAt) {
6517
+ groups["In Progress"].push(b);
6518
+ } else {
6519
+ groups.Available.push(b);
6520
+ }
6521
+ });
6522
+ return groups;
6523
+ };
6524
+ const BadgeTile = (props) => {
6525
+ const hasProgress = !!props.startedAt || !!props.finishedAt || !!props.progress && props.progress > 0;
6526
+ const isDisabled = props.isLocked || !props.onOpen;
6527
+ const onClick = () => !isDisabled && props.onOpen && props.onOpen();
6528
+ const status = props.isLocked ? { label: "Locked", accent: "slate" } : props.finishedAt ? { label: "Done", accent: "mint" } : hasProgress ? { label: "Active", accent: "cyan" } : { label: "Open", accent: "gold" };
6529
+ return /* @__PURE__ */ React__namespace.createElement(
6530
+ "div",
6531
+ {
6532
+ onClick,
6533
+ className: `flex flex-col items-center gap-2 rounded-xl border border-slate-200 p-3 text-center ${isDisabled ? "" : "cursor-pointer hover:bg-slate-50"}`
6534
+ },
6535
+ /* @__PURE__ */ React__namespace.createElement("div", { className: props.isLocked ? "opacity-40" : "" }, /* @__PURE__ */ React__namespace.createElement(
6536
+ BadgeEmblem,
6537
+ {
6538
+ icon: props.icon,
6539
+ iconURL: props.iconURL,
6540
+ imageURL: props.imageURL,
6541
+ alt: props.displayName,
6542
+ level: props.level,
6543
+ size: "sm"
6544
+ }
6545
+ )),
6546
+ /* @__PURE__ */ React__namespace.createElement("div", { className: "w-full truncate text-xs font-semibold text-dark-blue-400" }, props.displayName),
6547
+ /* @__PURE__ */ React__namespace.createElement(Pill, { label: status.label, accent: status.accent })
6548
+ );
6549
+ };
6550
+
6551
+ const DashboardShell = (props) => {
6552
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex h-screen w-full overflow-hidden bg-[linear-gradient(150deg,#EEF9FF_0%,#F0FEFA_40%,#FFFBEA_100%)] font-proxima" }, props.sidebar, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-1 flex-col overflow-hidden" }, props.topBar, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1 overflow-y-auto" }, /* @__PURE__ */ React__namespace.createElement(Loader, { isLoading: props.isLoading }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex min-h-full flex-col" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-1 flex-col gap-3.5 p-5" }, props.children), /* @__PURE__ */ React__namespace.createElement(Footer, null))))));
6093
6553
  };
6094
6554
 
6095
6555
  var __defProp = Object.defineProperty;
6096
- var __defProps = Object.defineProperties;
6097
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6098
6556
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6099
6557
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6100
6558
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -6110,26 +6568,170 @@ var __spreadValues = (a, b) => {
6110
6568
  }
6111
6569
  return a;
6112
6570
  };
6113
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6114
- const SidebarLayout = (props) => {
6571
+ const TABS = [
6572
+ { name: "profile", label: "My Profile", icon: icons$1.IconUser, accent: "cyan" },
6573
+ { name: "pathways", label: "Pathways", icon: icons$1.IconRoute, accent: "mint" },
6574
+ { name: "badges", label: "Badges", icon: icons$1.IconAlbum, accent: "gold" },
6575
+ { name: "file-locker", label: "File Locker", icon: icons$1.IconClipboard, accent: "cyan" },
6576
+ { name: "transcript", label: "Transcript", icon: icons$1.IconFileText, accent: "mint" },
6577
+ { name: "portfolio", label: "Portfolio", icon: icons$1.IconBriefcase, accent: "gold" },
6578
+ { name: "comments", label: "Comments", icon: icons$1.IconMessageCircle, accent: "cyan" }
6579
+ ];
6580
+ const DashboardSidebar = (props) => {
6581
+ return /* @__PURE__ */ React.createElement("nav", { className: "flex h-full w-[230px] shrink-0 flex-col border-r border-slate-200 bg-white" }, /* @__PURE__ */ React.createElement("div", { className: "border-b border-slate-100 p-4" }, /* @__PURE__ */ React.createElement("div", { className: "w-24" }, /* @__PURE__ */ React.createElement(Logo, null))), props.identity && /* @__PURE__ */ React.createElement(DashboardIdentityChip, __spreadValues({}, props.identity)), /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 flex-col gap-0.5 overflow-y-auto p-2.5" }, TABS.map((tab) => {
6582
+ const link = props.links[tab.name];
6583
+ return /* @__PURE__ */ React.createElement(
6584
+ DashboardSidebarLink,
6585
+ {
6586
+ key: tab.name,
6587
+ label: tab.label,
6588
+ icon: tab.icon,
6589
+ accent: tab.accent,
6590
+ href: link == null ? void 0 : link.href,
6591
+ active: props.active === tab.name,
6592
+ disabled: props.disabled || !link
6593
+ }
6594
+ );
6595
+ })), (props.onSwitchAccount || props.onLogout) && /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-0.5 border-t border-slate-200 p-2.5" }, props.onSwitchAccount && /* @__PURE__ */ React.createElement(DashboardSidebarUtilLink, { label: "Change Account", icon: icons$1.IconSwitchHorizontal, onClick: props.onSwitchAccount }), props.onLogout && /* @__PURE__ */ React.createElement(DashboardSidebarUtilLink, { label: "Logout", icon: icons$1.IconLogout, onClick: props.onLogout })));
6596
+ };
6597
+ const DashboardIdentityChip = (props) => /* @__PURE__ */ React.createElement("div", { className: "m-3 flex items-center gap-2.5 rounded-xl border border-mint-400/30 bg-gradient-to-r from-sky-blue-400/15 to-mint-400/15 p-2.5 shadow-[0_2px_10px_rgba(30,226,175,0.15)]" }, /* @__PURE__ */ React.createElement("div", { className: "relative shrink-0" }, /* @__PURE__ */ React.createElement(
6598
+ "img",
6599
+ {
6600
+ className: "h-8 w-8 rounded-full border-2 border-white object-cover shadow-sm",
6601
+ src: props.avatarURL || "https://cdn.localcivics.io/hub/avatar.jpg",
6602
+ alt: "avatar"
6603
+ }
6604
+ ), props.online && /* @__PURE__ */ React.createElement("span", { className: "absolute -right-0.5 -top-0.5 h-2.5 w-2.5 rounded-full border-2 border-white bg-mint-400" })), /* @__PURE__ */ React.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React.createElement("div", { className: "truncate text-xs font-bold text-dark-blue-400" }, props.name), props.subtitle && /* @__PURE__ */ React.createElement("div", { className: "truncate text-[10px] text-slate-500" }, props.subtitle)));
6605
+ const DashboardSidebarLink = (props) => {
6606
+ const config = defaultLinkConfig();
6607
+ withAccent(config, props.accent, props.active);
6608
+ withDisabled(config, props.disabled);
6609
+ const Icon = props.icon;
6610
+ const content = /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: classname(config.chip) }, /* @__PURE__ */ React.createElement(Icon, { size: 14, stroke: props.active ? 2.2 : 1.75, className: config.icon.color })), /* @__PURE__ */ React.createElement("span", { className: classname(config.label) }, props.label), /* @__PURE__ */ React.createElement("span", { className: classname(config.dot) }));
6611
+ if (props.disabled || !props.href) {
6612
+ return /* @__PURE__ */ React.createElement("div", { className: classname(config.row) }, content);
6613
+ }
6614
+ return /* @__PURE__ */ React.createElement(reactRouterDom.Link, { to: props.href, className: classname(config.row) }, content);
6615
+ };
6616
+ const DashboardSidebarUtilLink = (props) => {
6617
+ const Icon = props.icon;
6115
6618
  return /* @__PURE__ */ React.createElement(
6116
- AuthLayout,
6117
- __spreadProps(__spreadValues({}, props), {
6118
- topNav: false,
6119
- sidebar: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
6120
- Sidebar,
6121
- {
6122
- active: props.active,
6123
- links: props.links,
6124
- identity: props.identity,
6125
- settingsHref: props.settingsHref,
6126
- disabled: props.disabled,
6127
- onLogout: props.onLogout
6128
- }
6129
- ), props.sidebarExtra)
6130
- })
6619
+ "div",
6620
+ {
6621
+ onClick: props.onClick,
6622
+ className: "flex cursor-pointer items-center gap-2.5 rounded-[10px] px-3.5 py-2 text-slate-400 hover:bg-slate-50 hover:text-slate-500"
6623
+ },
6624
+ /* @__PURE__ */ React.createElement(Icon, { size: 13, stroke: 1.75 }),
6625
+ /* @__PURE__ */ React.createElement("span", { className: "text-[11.5px]" }, props.label)
6131
6626
  );
6132
6627
  };
6628
+ const defaultLinkConfig = () => ({
6629
+ row: {
6630
+ base: "flex items-center gap-2.5 rounded-[10px] px-3.5 py-2.5 transition-colors",
6631
+ cursor: "cursor-pointer hover:bg-slate-50",
6632
+ bg: "bg-transparent",
6633
+ border: "border border-transparent"
6634
+ },
6635
+ chip: {
6636
+ base: "flex h-[30px] w-[30px] shrink-0 items-center justify-center rounded-lg",
6637
+ bg: "bg-slate-50",
6638
+ shadow: ""
6639
+ },
6640
+ icon: {
6641
+ color: "text-slate-400"
6642
+ },
6643
+ label: {
6644
+ base: "flex-1 text-xs",
6645
+ weight: "font-medium",
6646
+ color: "text-slate-500"
6647
+ },
6648
+ dot: {
6649
+ base: "h-[5px] w-[5px] shrink-0 rounded-full",
6650
+ bg: "bg-transparent"
6651
+ }
6652
+ });
6653
+ const withAccent = (config, accent, active) => {
6654
+ if (!active) {
6655
+ return;
6656
+ }
6657
+ config.row.cursor = "cursor-default";
6658
+ config.label.weight = "font-bold";
6659
+ config.label.color = "text-dark-blue-400";
6660
+ switch (accent) {
6661
+ case "cyan":
6662
+ config.row.bg = "bg-sky-blue-400/15";
6663
+ config.row.border = "border border-sky-blue-400/30";
6664
+ config.chip.bg = "bg-sky-blue-400/25";
6665
+ config.chip.shadow = "shadow-[0_0_8px_rgba(59,208,242,0.5)]";
6666
+ config.icon.color = "text-sky-blue-400";
6667
+ config.dot.bg = "bg-sky-blue-400";
6668
+ break;
6669
+ case "mint":
6670
+ config.row.bg = "bg-mint-400/15";
6671
+ config.row.border = "border border-mint-400/30";
6672
+ config.chip.bg = "bg-mint-400/25";
6673
+ config.chip.shadow = "shadow-[0_0_8px_rgba(30,226,175,0.5)]";
6674
+ config.icon.color = "text-mint-400";
6675
+ config.dot.bg = "bg-mint-400";
6676
+ break;
6677
+ case "gold":
6678
+ config.row.bg = "bg-gold-400/15";
6679
+ config.row.border = "border border-gold-400/30";
6680
+ config.chip.bg = "bg-gold-400/25";
6681
+ config.chip.shadow = "shadow-[0_0_8px_rgba(255,212,77,0.5)]";
6682
+ config.icon.color = "text-gold-400";
6683
+ config.dot.bg = "bg-gold-400";
6684
+ break;
6685
+ }
6686
+ };
6687
+ const withDisabled = (config, disabled) => {
6688
+ if (!disabled) {
6689
+ return;
6690
+ }
6691
+ config.row.cursor = "cursor-default";
6692
+ config.icon.color = "text-slate-300";
6693
+ config.label.color = "text-slate-300";
6694
+ };
6695
+
6696
+ const DashboardTopBar = (props) => {
6697
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: "flex shrink-0 items-center justify-between gap-4 border-b border-sky-blue-400/20 bg-white px-5 py-3.5 shadow-[0_2px_10px_rgba(59,208,242,0.08)]" }, /* @__PURE__ */ React__namespace.createElement("div", null, props.eyebrow && /* @__PURE__ */ React__namespace.createElement("p", { className: "text-[10px] font-bold uppercase tracking-wide text-slate-400" }, props.eyebrow), /* @__PURE__ */ React__namespace.createElement("h1", { className: "text-lg font-extrabold text-dark-blue-400" }, props.title)), /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-center gap-3" }, props.onNotifications && /* @__PURE__ */ React__namespace.createElement(
6698
+ "button",
6699
+ {
6700
+ type: "button",
6701
+ onClick: props.onNotifications,
6702
+ className: "flex h-9 w-9 items-center justify-center rounded-full border border-sky-blue-400/20 bg-sky-blue-400/10 text-sky-blue-400 hover:bg-sky-blue-400/15"
6703
+ },
6704
+ /* @__PURE__ */ React__namespace.createElement(icons$1.IconBell, { size: 16, stroke: 1.75 })
6705
+ ), props.children));
6706
+ };
6707
+
6708
+ const AuthLayout = (props) => {
6709
+ return /* @__PURE__ */ React.createElement("main", { className: "relative h-screen w-full bg-white font-proxima" }, /* @__PURE__ */ React.createElement(Loader, { isLoading: props.isLoading }, props.topNav !== false && /* @__PURE__ */ React.createElement(NavBar, null, /* @__PURE__ */ React.createElement(NavLink, { disabled: !props.onHome || props.disabled, name: "home", onClick: props.onHome }), props.onProfile && /* @__PURE__ */ React.createElement(
6710
+ NavLink,
6711
+ {
6712
+ disabled: props.disabled,
6713
+ name: "profile",
6714
+ onClick: props.onProfile,
6715
+ active: props.page === "profile"
6716
+ }
6717
+ ), props.onSwitchAccount && /* @__PURE__ */ React.createElement(NavLink, { name: "switch accounts", onClick: props.onSwitchAccount }), props.onLogout && /* @__PURE__ */ React.createElement(NavLink, { name: "Logout", onClick: props.onLogout })), props.children && /* @__PURE__ */ React.createElement("section", { className: "absolute top-0 left-0 h-full overflow-auto pt-16 w-full" }, props.children), !props.children && /* @__PURE__ */ React.createElement("section", { className: "w-full px-4 py-5 lg:px-36 flex flex-col gap-4" }, props.header && /* @__PURE__ */ React.createElement("div", { className: "w-full max-w-[64rem] m-auto min-h-16 lg:min-h-24 lg:flex" }, props.header), /* @__PURE__ */ React.createElement("div", { className: "grow w-full min-h-96" }, /* @__PURE__ */ React.createElement("div", { className: "w-full max-w-[64rem] m-auto grid grid-cols-1 gap-y-4 lg:flex lg:gap-x-2" }, props.sidebar && /* @__PURE__ */ React.createElement("div", { className: "grid grid-cols-1 max-w-full md:flex md:flex-col gap-2 lg:w-[230px] shrink-0 lg:sticky lg:top-0 lg:h-screen lg:self-start lg:overflow-y-auto" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-4 lg:gap-x-2 lg:gap-y-3" }, props.sidebar)), (props.subheader || props.main) && /* @__PURE__ */ React.createElement("div", { className: "grow grid grid-cols-1 max-w-full overflow-x-hidden md:flex md:flex-col gap-4 lg:gap-2" }, props.subheader && /* @__PURE__ */ React.createElement("div", { className: "relative grid grid-cols-1 md:flex w-full gap-4 lg:gap-2" }, props.subheader), props.main && /* @__PURE__ */ React.createElement("div", { className: "relative grid grid-cols-1 w-full gap-4 lg:gap-2" }, props.main)))), /* @__PURE__ */ React.createElement(Footer, null))), props.outlet);
6718
+ };
6719
+
6720
+ const HomeLayout = (props) => {
6721
+ const onProfile = () => props.onProfile && props.onProfile();
6722
+ React.useEffect(() => {
6723
+ if (props.isLoading) {
6724
+ return;
6725
+ }
6726
+ if (props.nickname) {
6727
+ if (props.pathname === `/`) {
6728
+ onProfile();
6729
+ return;
6730
+ }
6731
+ }
6732
+ }, [props.isLoading, props.pathname, props.nickname]);
6733
+ return /* @__PURE__ */ React.createElement("main", { className: "relative h-screen w-full overflow-hidden bg-white font-proxima" }, /* @__PURE__ */ React.createElement(NavBar, null, /* @__PURE__ */ React.createElement(NavLink, { name: "home", onClick: props.onHome, active: true }), /* @__PURE__ */ React.createElement(NavLink, { name: "login", onClick: props.onLogin }), /* @__PURE__ */ React.createElement(NavLink, { name: "faq", onClick: props.onFAQ }), /* @__PURE__ */ React.createElement(NavLink, { name: "privacy", onClick: props.onPrivacy }), /* @__PURE__ */ React.createElement(NavLink, { name: "terms", onClick: props.onTerms })), /* @__PURE__ */ React.createElement("section", { className: "absolute top-0 left-0 h-full overflow-hidden pt-16 w-full" }, props.children));
6734
+ };
6133
6735
 
6134
6736
  exports.AboutWidget = AboutWidget;
6135
6737
  exports.AchievementWidget = AchievementWidget;
@@ -6140,11 +6742,17 @@ exports.ActivityReflection = ActivityReflection;
6140
6742
  exports.AuthLayout = AuthLayout;
6141
6743
  exports.Badge = Badge;
6142
6744
  exports.BadgeActivityMenu = BadgeActivityMenu;
6745
+ exports.BadgeDetail = BadgeDetail;
6143
6746
  exports.BadgeSection = BadgeSection;
6144
6747
  exports.BadgeSuccessDialog = BadgeSuccessDialog;
6748
+ exports.BadgesCard = BadgesCard;
6749
+ exports.BadgesList = BadgesList;
6145
6750
  exports.Board = Board;
6146
6751
  exports.Button = Button;
6147
6752
  exports.Card = Card;
6753
+ exports.DashboardShell = DashboardShell;
6754
+ exports.DashboardSidebar = DashboardSidebar;
6755
+ exports.DashboardTopBar = DashboardTopBar;
6148
6756
  exports.DateSelection = DateSelection;
6149
6757
  exports.EventItem = EventItem;
6150
6758
  exports.EventList = EventList;
@@ -6165,18 +6773,24 @@ exports.Onboarding = Onboarding;
6165
6773
  exports.Overlay = Overlay;
6166
6774
  exports.Pathway = Pathway;
6167
6775
  exports.PathwayButton = PathwayButton;
6776
+ exports.PathwayDetail = PathwayDetail;
6168
6777
  exports.PathwayFilter = PathwayFilter;
6169
6778
  exports.PathwayProgress = PathwayProgress;
6170
6779
  exports.PathwaySection = PathwaySection;
6780
+ exports.PathwayTranscript = PathwayTranscript;
6171
6781
  exports.PathwayWidget = PathwayWidget;
6782
+ exports.PathwaysCard = PathwaysCard;
6783
+ exports.PathwaysList = PathwaysList;
6784
+ exports.Pill = Pill;
6785
+ exports.ProfileHeroCard = ProfileHeroCard;
6172
6786
  exports.ProfileWidget = ProfileWidget;
6173
6787
  exports.Progress = Progress;
6174
6788
  exports.Search = Search;
6175
6789
  exports.SearchButton = SearchButton;
6176
6790
  exports.SearchResult = SearchResult;
6177
6791
  exports.SettingsCard = SettingsCard;
6178
- exports.Sidebar = Sidebar;
6179
- exports.SidebarLayout = SidebarLayout;
6792
+ exports.StatTile = StatTile;
6793
+ exports.StatTileRow = StatTileRow;
6180
6794
  exports.Stopwatch = Stopwatch;
6181
6795
  exports.Tab = Tab;
6182
6796
  exports.TagFilter = TagFilter;