@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.d.ts +302 -60
- package/dist/index.js +1159 -545
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1147 -545
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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$
|
|
958
|
-
var __getOwnPropSymbols$
|
|
959
|
-
var __hasOwnProp$
|
|
960
|
-
var __propIsEnum$
|
|
961
|
-
var __defNormalProp$
|
|
962
|
-
var __spreadValues$
|
|
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$
|
|
965
|
-
__defNormalProp$
|
|
966
|
-
if (__getOwnPropSymbols$
|
|
967
|
-
for (var prop of __getOwnPropSymbols$
|
|
968
|
-
if (__propIsEnum$
|
|
969
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
1577
|
-
var __defProps$
|
|
1578
|
-
var __getOwnPropDescs$
|
|
1579
|
-
var __getOwnPropSymbols$
|
|
1580
|
-
var __hasOwnProp$
|
|
1581
|
-
var __propIsEnum$
|
|
1582
|
-
var __defNormalProp$
|
|
1583
|
-
var __spreadValues$
|
|
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$
|
|
1586
|
-
__defNormalProp$
|
|
1587
|
-
if (__getOwnPropSymbols$
|
|
1588
|
-
for (var prop of __getOwnPropSymbols$
|
|
1589
|
-
if (__propIsEnum$
|
|
1590
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
1607
|
-
const tags = Object.entries(__spreadProps$
|
|
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$
|
|
1611
|
-
const tags = Object.entries(__spreadProps$
|
|
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$
|
|
1658
|
-
var __defProps$
|
|
1659
|
-
var __getOwnPropDescs$
|
|
1660
|
-
var __getOwnPropSymbols$
|
|
1661
|
-
var __hasOwnProp$
|
|
1662
|
-
var __propIsEnum$
|
|
1663
|
-
var __defNormalProp$
|
|
1664
|
-
var __spreadValues$
|
|
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$
|
|
1667
|
-
__defNormalProp$
|
|
1668
|
-
if (__getOwnPropSymbols$
|
|
1669
|
-
for (var prop of __getOwnPropSymbols$
|
|
1670
|
-
if (__propIsEnum$
|
|
1671
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
1758
|
-
var __defProps$
|
|
1759
|
-
var __getOwnPropDescs$
|
|
1760
|
-
var __getOwnPropSymbols$
|
|
1761
|
-
var __hasOwnProp$
|
|
1762
|
-
var __propIsEnum$
|
|
1763
|
-
var __defNormalProp$
|
|
1764
|
-
var __spreadValues$
|
|
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$
|
|
1767
|
-
__defNormalProp$
|
|
1768
|
-
if (__getOwnPropSymbols$
|
|
1769
|
-
for (var prop of __getOwnPropSymbols$
|
|
1770
|
-
if (__propIsEnum$
|
|
1771
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
1784
|
-
const setRating = (rating) => setReaction(__spreadProps$
|
|
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$
|
|
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$
|
|
3218
|
-
var __defProps$
|
|
3219
|
-
var __getOwnPropDescs$
|
|
3220
|
-
var __getOwnPropSymbols$
|
|
3221
|
-
var __hasOwnProp$
|
|
3222
|
-
var __propIsEnum$
|
|
3223
|
-
var __defNormalProp$
|
|
3224
|
-
var __spreadValues$
|
|
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$
|
|
3227
|
-
__defNormalProp$
|
|
3228
|
-
if (__getOwnPropSymbols$
|
|
3229
|
-
for (var prop of __getOwnPropSymbols$
|
|
3230
|
-
if (__propIsEnum$
|
|
3231
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
3289
|
-
var __defProps$
|
|
3290
|
-
var __getOwnPropDescs$
|
|
3291
|
-
var __getOwnPropSymbols$
|
|
3292
|
-
var __hasOwnProp$
|
|
3293
|
-
var __propIsEnum$
|
|
3294
|
-
var __defNormalProp$
|
|
3295
|
-
var __spreadValues$
|
|
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$
|
|
3298
|
-
__defNormalProp$
|
|
3299
|
-
if (__getOwnPropSymbols$
|
|
3300
|
-
for (var prop of __getOwnPropSymbols$
|
|
3301
|
-
if (__propIsEnum$
|
|
3302
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
3369
|
-
var __defProps$
|
|
3370
|
-
var __getOwnPropDescs$
|
|
3371
|
-
var __getOwnPropSymbols$
|
|
3372
|
-
var __hasOwnProp$
|
|
3373
|
-
var __propIsEnum$
|
|
3374
|
-
var __defNormalProp$
|
|
3375
|
-
var __spreadValues$
|
|
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$
|
|
3378
|
-
__defNormalProp$
|
|
3379
|
-
if (__getOwnPropSymbols$
|
|
3380
|
-
for (var prop of __getOwnPropSymbols$
|
|
3381
|
-
if (__propIsEnum$
|
|
3382
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
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
|
|
3600
|
-
const
|
|
3601
|
-
|
|
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
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
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
|
|
3633
|
-
|
|
3634
|
-
|
|
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
|
|
3637
|
-
const
|
|
3638
|
-
const
|
|
3639
|
-
const
|
|
3640
|
-
|
|
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
|
|
3643
|
-
|
|
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$
|
|
3803
|
-
var __defProps$
|
|
3804
|
-
var __getOwnPropDescs$
|
|
3805
|
-
var __getOwnPropSymbols$
|
|
3806
|
-
var __hasOwnProp$
|
|
3807
|
-
var __propIsEnum$
|
|
3808
|
-
var __defNormalProp$
|
|
3809
|
-
var __spreadValues$
|
|
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$
|
|
3812
|
-
__defNormalProp$
|
|
3813
|
-
if (__getOwnPropSymbols$
|
|
3814
|
-
for (var prop of __getOwnPropSymbols$
|
|
3815
|
-
if (__propIsEnum$
|
|
3816
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
4098
|
+
return /* @__PURE__ */ React.createElement(Embed, __spreadValues$f({}, props));
|
|
3853
4099
|
case props.format === "image":
|
|
3854
|
-
return /* @__PURE__ */ React.createElement(Image, __spreadValues$
|
|
4100
|
+
return /* @__PURE__ */ React.createElement(Image, __spreadValues$f({}, props));
|
|
3855
4101
|
case props.questionType === "radio":
|
|
3856
|
-
return /* @__PURE__ */ React.createElement(RadioQuestion, __spreadValues$
|
|
4102
|
+
return /* @__PURE__ */ React.createElement(RadioQuestion, __spreadValues$f({}, props));
|
|
3857
4103
|
case props.questionType === "checkbox":
|
|
3858
|
-
return /* @__PURE__ */ React.createElement(CheckboxQuestion, __spreadValues$
|
|
4104
|
+
return /* @__PURE__ */ React.createElement(CheckboxQuestion, __spreadValues$f({}, props));
|
|
3859
4105
|
case props.questionType === "drop down":
|
|
3860
|
-
return /* @__PURE__ */ React.createElement(DropDownQuestion, __spreadValues$
|
|
4106
|
+
return /* @__PURE__ */ React.createElement(DropDownQuestion, __spreadValues$f({}, props));
|
|
3861
4107
|
case props.questionType === "file upload":
|
|
3862
|
-
return /* @__PURE__ */ React.createElement(FileUploadQuestion, __spreadValues$
|
|
4108
|
+
return /* @__PURE__ */ React.createElement(FileUploadQuestion, __spreadValues$f({}, props));
|
|
3863
4109
|
case props.questionType === "text":
|
|
3864
|
-
return /* @__PURE__ */ React.createElement(TextQuestion, __spreadValues$
|
|
4110
|
+
return /* @__PURE__ */ React.createElement(TextQuestion, __spreadValues$f({}, props));
|
|
3865
4111
|
case props.questionType === "date":
|
|
3866
|
-
return /* @__PURE__ */ React.createElement(DateQuestion, __spreadValues$
|
|
4112
|
+
return /* @__PURE__ */ React.createElement(DateQuestion, __spreadValues$f({}, props));
|
|
3867
4113
|
case props.questionType === "time":
|
|
3868
|
-
return /* @__PURE__ */ React.createElement(TimeQuestion, __spreadValues$
|
|
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$
|
|
4226
|
-
var __defProps$
|
|
4227
|
-
var __getOwnPropDescs$
|
|
4228
|
-
var __getOwnPropSymbols$
|
|
4229
|
-
var __hasOwnProp$
|
|
4230
|
-
var __propIsEnum$
|
|
4231
|
-
var __defNormalProp$
|
|
4232
|
-
var __spreadValues$
|
|
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$
|
|
4235
|
-
__defNormalProp$
|
|
4236
|
-
if (__getOwnPropSymbols$
|
|
4237
|
-
for (var prop of __getOwnPropSymbols$
|
|
4238
|
-
if (__propIsEnum$
|
|
4239
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
4434
|
-
var __getOwnPropSymbols$
|
|
4435
|
-
var __hasOwnProp$
|
|
4436
|
-
var __propIsEnum$
|
|
4437
|
-
var __defNormalProp$
|
|
4438
|
-
var __spreadValues$
|
|
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$
|
|
4441
|
-
__defNormalProp$
|
|
4442
|
-
if (__getOwnPropSymbols$
|
|
4443
|
-
for (var prop of __getOwnPropSymbols$
|
|
4444
|
-
if (__propIsEnum$
|
|
4445
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
4530
|
-
var __defProps$
|
|
4531
|
-
var __getOwnPropDescs$
|
|
4532
|
-
var __getOwnPropSymbols$
|
|
4533
|
-
var __hasOwnProp$
|
|
4534
|
-
var __propIsEnum$
|
|
4535
|
-
var __defNormalProp$
|
|
4536
|
-
var __spreadValues$
|
|
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$
|
|
4539
|
-
__defNormalProp$
|
|
4540
|
-
if (__getOwnPropSymbols$
|
|
4541
|
-
for (var prop of __getOwnPropSymbols$
|
|
4542
|
-
if (__propIsEnum$
|
|
4543
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
4663
|
-
var __defProps$
|
|
4664
|
-
var __getOwnPropDescs$
|
|
4665
|
-
var __getOwnPropSymbols$
|
|
4666
|
-
var __hasOwnProp$
|
|
4667
|
-
var __propIsEnum$
|
|
4668
|
-
var __defNormalProp$
|
|
4669
|
-
var __spreadValues$
|
|
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$
|
|
4672
|
-
__defNormalProp$
|
|
4673
|
-
if (__getOwnPropSymbols$
|
|
4674
|
-
for (var prop of __getOwnPropSymbols$
|
|
4675
|
-
if (__propIsEnum$
|
|
4676
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
4819
|
-
var __defProps$
|
|
4820
|
-
var __getOwnPropDescs$
|
|
4821
|
-
var __getOwnPropSymbols$
|
|
4822
|
-
var __hasOwnProp$
|
|
4823
|
-
var __propIsEnum$
|
|
4824
|
-
var __defNormalProp$
|
|
4825
|
-
var __spreadValues$
|
|
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$
|
|
4828
|
-
__defNormalProp$
|
|
4829
|
-
if (__getOwnPropSymbols$
|
|
4830
|
-
for (var prop of __getOwnPropSymbols$
|
|
4831
|
-
if (__propIsEnum$
|
|
4832
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
5169
|
-
var __getOwnPropSymbols$
|
|
5170
|
-
var __hasOwnProp$
|
|
5171
|
-
var __propIsEnum$
|
|
5172
|
-
var __defNormalProp$
|
|
5173
|
-
var __spreadValues$
|
|
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$
|
|
5176
|
-
__defNormalProp$
|
|
5177
|
-
if (__getOwnPropSymbols$
|
|
5178
|
-
for (var prop of __getOwnPropSymbols$
|
|
5179
|
-
if (__propIsEnum$
|
|
5180
|
-
__defNormalProp$
|
|
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$
|
|
5434
|
+
return /* @__PURE__ */ React.createElement(DropDownInput, __spreadValues$9({}, props));
|
|
5189
5435
|
default:
|
|
5190
|
-
return /* @__PURE__ */ React.createElement(Input, __spreadValues$
|
|
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$
|
|
5299
|
-
var __defProps$
|
|
5300
|
-
var __getOwnPropDescs$
|
|
5301
|
-
var __getOwnPropSymbols$
|
|
5302
|
-
var __hasOwnProp$
|
|
5303
|
-
var __propIsEnum$
|
|
5304
|
-
var __defNormalProp$
|
|
5305
|
-
var __spreadValues$
|
|
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$
|
|
5308
|
-
__defNormalProp$
|
|
5309
|
-
if (__getOwnPropSymbols$
|
|
5310
|
-
for (var prop of __getOwnPropSymbols$
|
|
5311
|
-
if (__propIsEnum$
|
|
5312
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
5443
|
-
var __defProps$
|
|
5444
|
-
var __getOwnPropDescs$
|
|
5445
|
-
var __getOwnPropSymbols$
|
|
5446
|
-
var __hasOwnProp$
|
|
5447
|
-
var __propIsEnum$
|
|
5448
|
-
var __defNormalProp$
|
|
5449
|
-
var __spreadValues$
|
|
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$
|
|
5452
|
-
__defNormalProp$
|
|
5453
|
-
if (__getOwnPropSymbols$
|
|
5454
|
-
for (var prop of __getOwnPropSymbols$
|
|
5455
|
-
if (__propIsEnum$
|
|
5456
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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" },
|
|
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$
|
|
5847
|
-
var __defProps$
|
|
5848
|
-
var __getOwnPropDescs$
|
|
5849
|
-
var __getOwnPropSymbols$
|
|
5850
|
-
var __hasOwnProp$
|
|
5851
|
-
var __propIsEnum$
|
|
5852
|
-
var __defNormalProp$
|
|
5853
|
-
var __spreadValues$
|
|
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$
|
|
5856
|
-
__defNormalProp$
|
|
5857
|
-
if (__getOwnPropSymbols$
|
|
5858
|
-
for (var prop of __getOwnPropSymbols$
|
|
5859
|
-
if (__propIsEnum$
|
|
5860
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
6063
|
+
)))) : /* @__PURE__ */ React__namespace.createElement(PathwayTranscript, __spreadValues$6({}, sharedProps))));
|
|
5929
6064
|
};
|
|
5930
6065
|
|
|
5931
|
-
var __defProp$
|
|
5932
|
-
var __getOwnPropSymbols$
|
|
5933
|
-
var __hasOwnProp$
|
|
5934
|
-
var __propIsEnum$
|
|
5935
|
-
var __defNormalProp$
|
|
5936
|
-
var __spreadValues$
|
|
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$
|
|
5939
|
-
__defNormalProp$
|
|
5940
|
-
if (__getOwnPropSymbols$
|
|
5941
|
-
for (var prop of __getOwnPropSymbols$
|
|
5942
|
-
if (__propIsEnum$
|
|
5943
|
-
__defNormalProp$
|
|
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$
|
|
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$
|
|
5993
|
-
var __defProps
|
|
5994
|
-
var __getOwnPropDescs
|
|
5995
|
-
var __getOwnPropSymbols$
|
|
5996
|
-
var __hasOwnProp$
|
|
5997
|
-
var __propIsEnum$
|
|
5998
|
-
var __defNormalProp$
|
|
5999
|
-
var __spreadValues$
|
|
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$
|
|
6002
|
-
__defNormalProp$
|
|
6003
|
-
if (__getOwnPropSymbols$
|
|
6004
|
-
for (var prop of __getOwnPropSymbols$
|
|
6005
|
-
if (__propIsEnum$
|
|
6006
|
-
__defNormalProp$
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
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
|
-
|
|
6072
|
-
|
|
6073
|
-
|
|
6074
|
-
|
|
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.
|
|
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
|
-
|
|
6080
|
-
|
|
6081
|
-
|
|
6082
|
-
|
|
6083
|
-
|
|
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
|
-
|
|
6086
|
-
|
|
6087
|
-
|
|
6088
|
-
|
|
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
|
-
}, [
|
|
6092
|
-
|
|
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
|
-
|
|
6114
|
-
|
|
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
|
-
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
|
|
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.
|
|
6179
|
-
exports.
|
|
6792
|
+
exports.StatTile = StatTile;
|
|
6793
|
+
exports.StatTileRow = StatTileRow;
|
|
6180
6794
|
exports.Stopwatch = Stopwatch;
|
|
6181
6795
|
exports.Tab = Tab;
|
|
6182
6796
|
exports.TagFilter = TagFilter;
|