@epfl-sti/poesis 0.1.3 → 0.1.5

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/poesis.js CHANGED
@@ -1,22 +1,22 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode(`@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-6xl:72rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #0000001f;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-epfl-red:red;--color-epfl-red-dark:#b51f1f;--color-epfl-leman:#00a79f;--color-epfl-canard:#007480;--color-epfl-canard-dark:#004248;--color-primary:var(--action-primary);--color-primary-hover:var(--action-primary-hover);--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-border:var(--border-default);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-success:var(--semantic-success);--color-success-bg:var(--semantic-success-bg);--color-warning:var(--semantic-warning);--color-warning-bg:var(--semantic-warning-bg);--color-error:var(--semantic-error);--color-error-bg:var(--semantic-error-bg);--color-info:var(--semantic-info);--color-info-bg:var(--semantic-info-bg);--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--text-h1:2rem;--text-h1--line-height:1.2;--text-h2:1.5rem;--text-h2--line-height:1.3;--text-h3:1.25rem;--text-h3--line-height:1.4;--text-body:.9375rem;--text-body--line-height:1.5;--text-small:.8125rem;--text-small--line-height:1.5;--text-caption:.75rem;--text-caption--line-height:1.4}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.right-lg{right:var(--spacing-lg)}.bottom-lg{bottom:var(--spacing-lg)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-xs{margin-top:var(--spacing-xs)}.mr-lg{margin-right:var(--spacing-lg)}.mr-sm{margin-right:var(--spacing-sm)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\\[4px\\]{width:4px}.w-\\[8px\\]{width:8px}.w-\\[16px\\]{width:16px}.w-\\[24px\\]{width:24px}.w-\\[32px\\]{width:32px}.w-\\[48px\\]{width:48px}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\\[24rem\\]{max-width:24rem}.max-w-\\[32rem\\]{max-width:32rem}.max-w-\\[42rem\\]{max-width:42rem}.max-w-\\[600px\\]{max-width:600px}.max-w-\\[var\\(--container-6xl\\)\\]{max-width:var(--container-6xl)}.max-w-\\[var\\(--container-md\\)\\]{max-width:var(--container-md)}.max-w-\\[var\\(--container-xl\\)\\]{max-width:var(--container-xl)}.max-w-\\[var\\(--container-xs\\)\\]{max-width:var(--container-xs)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--spacing-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--spacing-sm)}.max-w-xl{max-width:var(--spacing-xl)}.max-w-xs{max-width:var(--spacing-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[500px\\]{min-width:500px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-dialog-in{animation:.2s ease-out dialog-in}.animate-floating-in{animation:.15s ease-out floating-in}.animate-slide-in{animation:.25s ease-out slide-in}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-px{gap:1px}.gap-sm{gap:var(--spacing-sm)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.\\!rounded-md{border-radius:var(--radius-md)!important}.\\!rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.\\!border-border{border-color:var(--color-border)!important}.\\!border-epfl-canard{border-color:var(--color-epfl-canard)!important}.\\!border-error{border-color:var(--color-error)!important}.\\!border-primary{border-color:var(--color-primary)!important}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-error,.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/30{border-color:color-mix(in oklab,var(--color-error) 30%,transparent)}}.border-info\\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\\/30{border-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-transparent{border-color:#0000}.border-warning\\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.\\!bg-bg-tertiary{background-color:var(--color-bg-tertiary)!important}.\\!bg-epfl-canard{background-color:var(--color-epfl-canard)!important}.\\!bg-primary{background-color:var(--color-primary)!important}.bg-bg-primary{background-color:var(--color-bg-primary)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-tertiary,.bg-bg-tertiary\\/50{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab,red,red)){.bg-bg-tertiary\\/50{background-color:color-mix(in oklab,var(--color-bg-tertiary) 50%,transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-epfl-canard{background-color:var(--color-epfl-canard)}.bg-epfl-canard-dark{background-color:var(--color-epfl-canard-dark)}.bg-epfl-leman{background-color:var(--color-epfl-leman)}.bg-epfl-red{background-color:var(--color-epfl-red)}.bg-epfl-red-dark{background-color:var(--color-epfl-red-dark)}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-info{background-color:var(--color-info)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-primary,.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-text-muted{background-color:var(--color-text-muted)}.bg-text-primary{background-color:var(--color-text-primary)}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.object-cover{object-fit:cover}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2xl{padding:var(--spacing-2xl)}.p-16{padding:calc(var(--spacing) * 16)}.p-lg{padding:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.p-sm{padding:var(--spacing-sm)}.p-xl{padding:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-lg{padding-inline:var(--spacing-lg)}.px-md{padding-inline:var(--spacing-md)}.px-sm{padding-inline:var(--spacing-sm)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-2xl{padding-block:var(--spacing-2xl)}.py-lg{padding-block:var(--spacing-lg)}.py-md{padding-block:var(--spacing-md)}.py-sm{padding-block:var(--spacing-sm)}.py-xl{padding-block:var(--spacing-xl)}.py-xs{padding-block:var(--spacing-xs)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-xl{padding-top:var(--spacing-xl)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-h1{font-size:var(--text-h1);line-height:var(--tw-leading,var(--text-h1--line-height))}.text-h2{font-size:var(--text-h2);line-height:var(--tw-leading,var(--text-h2--line-height))}.text-h3{font-size:var(--text-h3);line-height:var(--tw-leading,var(--text-h3--line-height))}.text-small{font-size:var(--text-small);line-height:var(--tw-leading,var(--text-small--line-height))}.leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.leading-\\[1\\.3\\]{--tw-leading:1.3;line-height:1.3}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.\\!text-white{color:var(--color-white)!important}.text-bg-primary{color:var(--color-bg-primary)}.text-epfl-canard{color:var(--color-epfl-canard)}.text-epfl-leman{color:var(--color-epfl-leman)}.text-epfl-red{color:var(--color-epfl-red)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.\\!shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.\\!shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\\!ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.\\!ring-epfl-canard{--tw-ring-color:var(--color-epfl-canard)!important}.\\!ring-primary{--tw-ring-color:var(--color-primary)!important}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\\:bg-primary:is(:where(.peer):checked~*){background-color:var(--color-primary)}.peer-focus-visible\\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-focus-visible\\:ring-primary:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-primary)}.peer-focus-visible\\:ring-offset-2:is(:where(.peer):focus-visible~*){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.peer-focus-visible\\:ring-offset-bg-primary:is(:where(.peer):focus-visible~*){--tw-ring-offset-color:var(--color-bg-primary)}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\\:text-text-muted::placeholder{color:var(--color-text-muted)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\\:left-0\\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\\:size-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.after\\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\\:after\\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\\:border-\\[5px\\]:checked{border-style:var(--tw-border-style);border-width:5px}.checked\\:border-primary:checked{border-color:var(--color-primary)}.checked\\:bg-primary:checked{background-color:var(--color-primary)}.checked\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Cpath\\%20d\\%3D\\%22M12\\.207\\%204\\.793a1\\%201\\%200\\%20010\\%201\\.414l-5\\%205a1\\%201\\%200\\%2001-1\\.414\\%200l-2-2a1\\%201\\%200\\%20011\\.414-1\\.414L6\\.5\\%209\\.086l4\\.293-4\\.293a1\\%201\\%200\\%20011\\.414\\%200z\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:checked{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%20010%201.414l-5%205a1%201%200%2001-1.414%200l-2-2a1%201%200%20011.414-1.414L6.5%209.086l4.293-4.293a1%201%200%20011.414%200z%22%2F%3E%3C%2Fsvg%3E)}.checked\\:bg-center:checked{background-position:50%}.checked\\:bg-no-repeat:checked{background-repeat:no-repeat}.indeterminate\\:border-primary:indeterminate{border-color:var(--color-primary)}.indeterminate\\:bg-primary:indeterminate{background-color:var(--color-primary)}.indeterminate\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Crect\\%20x\\%3D\\%223\\%22\\%20y\\%3D\\%227\\%22\\%20width\\%3D\\%2210\\%22\\%20height\\%3D\\%222\\%22\\%20rx\\%3D\\%221\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:indeterminate{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2210%22%20height%3D%222%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E)}.indeterminate\\:bg-center:indeterminate{background-position:50%}.indeterminate\\:bg-no-repeat:indeterminate{background-repeat:no-repeat}@media(hover:hover){.hover\\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\\:bg-bg-tertiary:hover,.hover\\:bg-bg-tertiary\\/70:hover{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-tertiary\\/70:hover{background-color:color-mix(in oklab,var(--color-bg-tertiary) 70%,transparent)}}.hover\\:bg-error-bg:hover{background-color:var(--color-error-bg)}.hover\\:bg-error\\/80:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/80:hover{background-color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.hover\\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\\:opacity-90:hover{opacity:.9}}.focus\\:border-error:focus{border-color:var(--color-error)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.focus\\:bg-bg-tertiary:focus{background-color:var(--color-bg-tertiary)}.focus\\:bg-error-bg:focus{background-color:var(--color-error-bg)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-error:focus-visible{--tw-ring-color:var(--color-error)}.focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-bg-primary:focus-visible{--tw-ring-offset-color:var(--color-bg-primary)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-bg-secondary:disabled{background-color:var(--color-bg-secondary)}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:col-span-2{grid-column:span 2/span 2}.sm\\:w-1\\/3{width:33.3333%}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:gap-lg{gap:var(--spacing-lg)}}@media(min-width:48rem){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:px-lg{padding-inline:var(--spacing-lg)}}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}}:root{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e6e6e6;--border-default:#d5d5d5;--border-strong:#c1c1c1;--text-primary:#212121;--text-secondary:#707070;--text-muted:#8e8e8e;--semantic-success:#1b874b;--semantic-success-bg:#e8f5e9;--semantic-warning:#d4860a;--semantic-warning-bg:#fff3e0;--semantic-error:#d32f2f;--semantic-error-bg:#ffebee;--semantic-info:#1976d2;--semantic-info-bg:#e3f2fd;--action-primary:#007480;--action-primary-hover:#004248}.dark{--bg-primary:#1a1a1a;--bg-secondary:#242424;--bg-tertiary:#2e2e2e;--border-default:#3a3a3a;--border-strong:#505050;--text-primary:#f0f0f0;--text-secondary:#a0a0a0;--text-muted:#707070;--semantic-success:#34d37a;--semantic-success-bg:#1a2e1a;--semantic-warning:#ffad33;--semantic-warning-bg:#2e2410;--semantic-error:#ff6b6b;--semantic-error-bg:#2e1515;--semantic-info:#64b5f6;--semantic-info-bg:#152538;--action-primary:#009ba6;--action-primary-hover:#007480;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009}@keyframes slide-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes floating-in{0%{opacity:0}to{opacity:1}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}`)),document.head.appendChild(r)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
- import { useState as N, forwardRef as C, useId as I, useRef as D, useCallback as k, useEffect as $, createContext as S, useContext as A, useSyncExternalStore as ue, useMemo as L } from "react";
3
- import { useTranslation as Z } from "react-i18next";
4
- import { jsx as e, jsxs as m, Fragment as B } from "react/jsx-runtime";
5
- import { SunFill as be, MoonFill as pe, List as fe, ChevronDown as ee, XLg as xe, SortDown as ge, SortNumericDown as he, SortNumericDownAlt as ye, SortAlphaDown as ve, SortAlphaDownAlt as we, InfoCircleFill as te, XCircleFill as re, ExclamationTriangleFill as T, CheckCircleFill as ne, X as M } from "react-bootstrap-icons";
6
- import { createPortal as Ne } from "react-dom";
7
- import { useFloating as O, autoUpdate as V, offset as U, flip as H, shift as q, useClick as oe, useDismiss as K, useRole as G, useListNavigation as ke, useInteractions as X, FloatingPortal as Y, FloatingFocusManager as ie, arrow as Ce, useHover as ze, useFocus as $e } from "@floating-ui/react";
8
- import De from "react-select";
9
- const Ie = {
1
+ (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode(`@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-6xl:72rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-epfl-red:red;--color-epfl-red-dark:#b51f1f;--color-epfl-leman:#00a79f;--color-epfl-canard:#007480;--color-epfl-canard-dark:#004248;--color-primary:var(--action-primary);--color-primary-hover:var(--action-primary-hover);--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-border:var(--border-default);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-success:var(--semantic-success);--color-success-bg:var(--semantic-success-bg);--color-warning:var(--semantic-warning);--color-warning-bg:var(--semantic-warning-bg);--color-error:var(--semantic-error);--color-error-bg:var(--semantic-error-bg);--color-info:var(--semantic-info);--color-info-bg:var(--semantic-info-bg);--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--text-h1:2rem;--text-h1--line-height:1.2;--text-h2:1.5rem;--text-h2--line-height:1.3;--text-h3:1.25rem;--text-h3--line-height:1.4;--text-body:.9375rem;--text-body--line-height:1.5;--text-small:.8125rem;--text-small--line-height:1.5;--text-caption:.75rem;--text-caption--line-height:1.4}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.right-lg{right:var(--spacing-lg)}.bottom-lg{bottom:var(--spacing-lg)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-xs{margin-top:var(--spacing-xs)}.mr-lg{margin-right:var(--spacing-lg)}.mr-sm{margin-right:var(--spacing-sm)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\\[4px\\]{width:4px}.w-\\[8px\\]{width:8px}.w-\\[16px\\]{width:16px}.w-\\[24px\\]{width:24px}.w-\\[32px\\]{width:32px}.w-\\[48px\\]{width:48px}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\\[24rem\\]{max-width:24rem}.max-w-\\[32rem\\]{max-width:32rem}.max-w-\\[42rem\\]{max-width:42rem}.max-w-\\[600px\\]{max-width:600px}.max-w-\\[var\\(--container-6xl\\)\\]{max-width:var(--container-6xl)}.max-w-\\[var\\(--container-md\\)\\]{max-width:var(--container-md)}.max-w-\\[var\\(--container-xl\\)\\]{max-width:var(--container-xl)}.max-w-\\[var\\(--container-xs\\)\\]{max-width:var(--container-xs)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--spacing-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--spacing-sm)}.max-w-xl{max-width:var(--spacing-xl)}.max-w-xs{max-width:var(--spacing-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[500px\\]{min-width:500px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-dialog-in{animation:.2s ease-out dialog-in}.animate-floating-in{animation:.15s ease-out floating-in}.animate-slide-in{animation:.25s ease-out slide-in}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-px{gap:1px}.gap-sm{gap:var(--spacing-sm)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.\\!rounded-md{border-radius:var(--radius-md)!important}.\\!rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.\\!border-border{border-color:var(--color-border)!important}.\\!border-epfl-canard{border-color:var(--color-epfl-canard)!important}.\\!border-error{border-color:var(--color-error)!important}.\\!border-primary{border-color:var(--color-primary)!important}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-error,.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/30{border-color:color-mix(in oklab,var(--color-error) 30%,transparent)}}.border-info\\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\\/30{border-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-transparent{border-color:#0000}.border-warning\\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.\\!bg-bg-tertiary{background-color:var(--color-bg-tertiary)!important}.\\!bg-epfl-canard{background-color:var(--color-epfl-canard)!important}.\\!bg-primary{background-color:var(--color-primary)!important}.bg-bg-primary{background-color:var(--color-bg-primary)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-tertiary,.bg-bg-tertiary\\/50{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab,red,red)){.bg-bg-tertiary\\/50{background-color:color-mix(in oklab,var(--color-bg-tertiary) 50%,transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-epfl-canard{background-color:var(--color-epfl-canard)}.bg-epfl-canard-dark{background-color:var(--color-epfl-canard-dark)}.bg-epfl-leman{background-color:var(--color-epfl-leman)}.bg-epfl-red{background-color:var(--color-epfl-red)}.bg-epfl-red-dark{background-color:var(--color-epfl-red-dark)}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-info{background-color:var(--color-info)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-primary,.bg-primary\\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\\/5{background-color:color-mix(in oklab,var(--color-primary) 5%,transparent)}}.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-text-muted{background-color:var(--color-text-muted)}.bg-text-primary{background-color:var(--color-text-primary)}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.object-cover{object-fit:cover}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2xl{padding:var(--spacing-2xl)}.p-16{padding:calc(var(--spacing) * 16)}.p-lg{padding:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.p-sm{padding:var(--spacing-sm)}.p-xl{padding:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-lg{padding-inline:var(--spacing-lg)}.px-md{padding-inline:var(--spacing-md)}.px-sm{padding-inline:var(--spacing-sm)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-2xl{padding-block:var(--spacing-2xl)}.py-lg{padding-block:var(--spacing-lg)}.py-md{padding-block:var(--spacing-md)}.py-sm{padding-block:var(--spacing-sm)}.py-xl{padding-block:var(--spacing-xl)}.py-xs{padding-block:var(--spacing-xs)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-xl{padding-top:var(--spacing-xl)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-h1{font-size:var(--text-h1);line-height:var(--tw-leading,var(--text-h1--line-height))}.text-h2{font-size:var(--text-h2);line-height:var(--tw-leading,var(--text-h2--line-height))}.text-h3{font-size:var(--text-h3);line-height:var(--tw-leading,var(--text-h3--line-height))}.text-small{font-size:var(--text-small);line-height:var(--tw-leading,var(--text-small--line-height))}.leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.leading-\\[1\\.3\\]{--tw-leading:1.3;line-height:1.3}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.\\!text-white{color:var(--color-white)!important}.text-bg-primary{color:var(--color-bg-primary)}.text-epfl-canard{color:var(--color-epfl-canard)}.text-epfl-leman{color:var(--color-epfl-leman)}.text-epfl-red{color:var(--color-epfl-red)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.\\!shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.\\!shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\\!ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.\\!ring-epfl-canard{--tw-ring-color:var(--color-epfl-canard)!important}.\\!ring-primary{--tw-ring-color:var(--color-primary)!important}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\\:bg-primary:is(:where(.peer):checked~*){background-color:var(--color-primary)}.peer-focus-visible\\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-focus-visible\\:ring-primary:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-primary)}.peer-focus-visible\\:ring-offset-2:is(:where(.peer):focus-visible~*){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.peer-focus-visible\\:ring-offset-bg-primary:is(:where(.peer):focus-visible~*){--tw-ring-offset-color:var(--color-bg-primary)}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\\:text-text-muted::placeholder{color:var(--color-text-muted)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\\:left-0\\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\\:size-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.after\\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\\:after\\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\\:border-\\[5px\\]:checked{border-style:var(--tw-border-style);border-width:5px}.checked\\:border-primary:checked{border-color:var(--color-primary)}.checked\\:bg-primary:checked{background-color:var(--color-primary)}.checked\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Cpath\\%20d\\%3D\\%22M12\\.207\\%204\\.793a1\\%201\\%200\\%20010\\%201\\.414l-5\\%205a1\\%201\\%200\\%2001-1\\.414\\%200l-2-2a1\\%201\\%200\\%20011\\.414-1\\.414L6\\.5\\%209\\.086l4\\.293-4\\.293a1\\%201\\%200\\%20011\\.414\\%200z\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:checked{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%20010%201.414l-5%205a1%201%200%2001-1.414%200l-2-2a1%201%200%20011.414-1.414L6.5%209.086l4.293-4.293a1%201%200%20011.414%200z%22%2F%3E%3C%2Fsvg%3E)}.checked\\:bg-center:checked{background-position:50%}.checked\\:bg-no-repeat:checked{background-repeat:no-repeat}.indeterminate\\:border-primary:indeterminate{border-color:var(--color-primary)}.indeterminate\\:bg-primary:indeterminate{background-color:var(--color-primary)}.indeterminate\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Crect\\%20x\\%3D\\%223\\%22\\%20y\\%3D\\%227\\%22\\%20width\\%3D\\%2210\\%22\\%20height\\%3D\\%222\\%22\\%20rx\\%3D\\%221\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:indeterminate{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2210%22%20height%3D%222%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E)}.indeterminate\\:bg-center:indeterminate{background-position:50%}.indeterminate\\:bg-no-repeat:indeterminate{background-repeat:no-repeat}@media(hover:hover){.hover\\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\\:border-error:hover{border-color:var(--color-error)}.hover\\:border-primary:hover{border-color:var(--color-primary)}.hover\\:bg-bg-tertiary:hover,.hover\\:bg-bg-tertiary\\/70:hover{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-tertiary\\/70:hover{background-color:color-mix(in oklab,var(--color-bg-tertiary) 70%,transparent)}}.hover\\:bg-error-bg:hover{background-color:var(--color-error-bg)}.hover\\:bg-error\\/80:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/80:hover{background-color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.hover\\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\\:opacity-90:hover{opacity:.9}}.focus\\:border-error:focus{border-color:var(--color-error)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.focus\\:bg-bg-tertiary:focus{background-color:var(--color-bg-tertiary)}.focus\\:bg-error-bg:focus{background-color:var(--color-error-bg)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-error:focus-visible{--tw-ring-color:var(--color-error)}.focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-bg-primary:focus-visible{--tw-ring-offset-color:var(--color-bg-primary)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-bg-secondary:disabled{background-color:var(--color-bg-secondary)}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:col-span-2{grid-column:span 2/span 2}.sm\\:w-1\\/3{width:33.3333%}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:gap-lg{gap:var(--spacing-lg)}}@media(min-width:48rem){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:px-lg{padding-inline:var(--spacing-lg)}}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}}:root{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e6e6e6;--border-default:#d5d5d5;--border-strong:#c1c1c1;--text-primary:#212121;--text-secondary:#707070;--text-muted:#8e8e8e;--semantic-success:#1b874b;--semantic-success-bg:#e8f5e9;--semantic-warning:#d4860a;--semantic-warning-bg:#fff3e0;--semantic-error:#d32f2f;--semantic-error-bg:#ffebee;--semantic-info:#1976d2;--semantic-info-bg:#e3f2fd;--action-primary:#007480;--action-primary-hover:#004248}.dark{--bg-primary:#1a1a1a;--bg-secondary:#242424;--bg-tertiary:#2e2e2e;--border-default:#3a3a3a;--border-strong:#505050;--text-primary:#f0f0f0;--text-secondary:#a0a0a0;--text-muted:#707070;--semantic-success:#34d37a;--semantic-success-bg:#1a2e1a;--semantic-warning:#ffad33;--semantic-warning-bg:#2e2410;--semantic-error:#ff6b6b;--semantic-error-bg:#2e1515;--semantic-info:#64b5f6;--semantic-info-bg:#152538;--action-primary:#009ba6;--action-primary-hover:#007480;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009}@keyframes slide-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes floating-in{0%{opacity:0}to{opacity:1}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}`)),document.head.appendChild(r)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
+ import { jsx as e, jsxs as m, Fragment as V } from "react/jsx-runtime";
3
+ import { useState as C, forwardRef as z, useRef as D, useCallback as k, useId as j, useEffect as I, createContext as R, useContext as M, useSyncExternalStore as ge, useMemo as K } from "react";
4
+ import { useTranslation as oe } from "react-i18next";
5
+ import { CloudArrowUp as he, X as U, SunFill as ye, MoonFill as ve, List as Ne, ChevronDown as ie, XLg as we, SortDown as ke, SortNumericDown as Ce, SortNumericDownAlt as $e, SortAlphaDown as ze, SortAlphaDownAlt as De, InfoCircleFill as se, XCircleFill as ae, ExclamationTriangleFill as q, CheckCircleFill as le } from "react-bootstrap-icons";
6
+ import { createPortal as Ie } from "react-dom";
7
+ import { useFloating as G, autoUpdate as X, offset as Y, flip as _, shift as W, useClick as ce, useDismiss as J, useRole as Q, useListNavigation as je, useInteractions as Z, FloatingPortal as ee, FloatingFocusManager as de, arrow as Fe, useHover as Ee, useFocus as Se } from "@floating-ui/react";
8
+ import Ae from "react-select";
9
+ const Be = {
10
10
  sm: "size-8 text-caption",
11
11
  md: "size-10 text-small",
12
12
  lg: "size-14 text-body"
13
13
  };
14
- function je(t) {
14
+ function Pe(t) {
15
15
  const r = t.trim().split(/\s+/);
16
16
  return r.length === 0 ? "?" : r.length === 1 ? r[0][0].toUpperCase() : (r[0][0] + r[r.length - 1][0]).toUpperCase();
17
17
  }
18
- function wt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }) {
19
- const [a, c] = N(!1), d = !!t && !a;
18
+ function Ft({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }) {
19
+ const [a, c] = C(!1), d = !!t && !a;
20
20
  return /* @__PURE__ */ e(
21
21
  "span",
22
22
  {
@@ -25,7 +25,7 @@ function wt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }
25
25
  className: [
26
26
  "inline-flex items-center justify-center rounded-full overflow-hidden",
27
27
  "bg-primary text-white font-semibold select-none shrink-0",
28
- Ie[o],
28
+ Be[o],
29
29
  s
30
30
  ].join(" "),
31
31
  ...i,
@@ -37,29 +37,29 @@ function wt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }
37
37
  className: "size-full object-cover",
38
38
  onError: () => c(!0)
39
39
  }
40
- ) : /* @__PURE__ */ e("span", { "aria-hidden": "true", children: je(r) })
40
+ ) : /* @__PURE__ */ e("span", { "aria-hidden": "true", children: Pe(r) })
41
41
  }
42
42
  );
43
43
  }
44
- const Fe = {
44
+ const Le = {
45
45
  default: "bg-bg-tertiary text-text-primary",
46
46
  success: "bg-success-bg text-success",
47
47
  warning: "bg-warning-bg text-warning",
48
48
  error: "bg-error-bg text-error",
49
49
  info: "bg-info-bg text-info"
50
- }, Ee = {
50
+ }, Te = {
51
51
  default: "bg-text-muted",
52
52
  success: "bg-success",
53
53
  warning: "bg-warning",
54
54
  error: "bg-error",
55
55
  info: "bg-info"
56
56
  };
57
- function Nt({ color: t = "default", dot: r, className: o = "", children: n, ...s }) {
57
+ function Et({ color: t = "default", dot: r, className: o = "", children: n, ...s }) {
58
58
  return r ? /* @__PURE__ */ e(
59
59
  "span",
60
60
  {
61
61
  role: "status",
62
- className: `inline-block size-2.5 rounded-full ${Ee[t]} ${o}`,
62
+ className: `inline-block size-2.5 rounded-full ${Te[t]} ${o}`,
63
63
  ...s
64
64
  }
65
65
  ) : /* @__PURE__ */ e(
@@ -68,7 +68,7 @@ function Nt({ color: t = "default", dot: r, className: o = "", children: n, ...s
68
68
  className: [
69
69
  "inline-flex items-center rounded-sm px-2 py-0.5",
70
70
  "text-caption font-medium leading-none",
71
- Fe[t],
71
+ Le[t],
72
72
  o
73
73
  ].join(" "),
74
74
  ...s,
@@ -76,19 +76,19 @@ function Nt({ color: t = "default", dot: r, className: o = "", children: n, ...s
76
76
  }
77
77
  );
78
78
  }
79
- const Se = {
79
+ const Re = {
80
80
  sm: "size-4",
81
81
  md: "size-6",
82
82
  lg: "size-8"
83
83
  };
84
- function se({ size: t = "md", className: r = "", ...o }) {
84
+ function me({ size: t = "md", className: r = "", ...o }) {
85
85
  return /* @__PURE__ */ m(
86
86
  "svg",
87
87
  {
88
88
  viewBox: "0 0 24 24",
89
89
  fill: "none",
90
90
  xmlns: "http://www.w3.org/2000/svg",
91
- className: `animate-spin ${Se[t]} ${r}`,
91
+ className: `animate-spin ${Re[t]} ${r}`,
92
92
  role: "status",
93
93
  "aria-label": "Loading",
94
94
  ...o,
@@ -116,20 +116,20 @@ function se({ size: t = "md", className: r = "", ...o }) {
116
116
  }
117
117
  );
118
118
  }
119
- const Ae = {
119
+ const Me = {
120
120
  primary: "bg-primary text-white hover:bg-primary-hover focus-visible:ring-primary",
121
121
  secondary: "border border-border text-text-primary bg-bg-primary hover:bg-bg-tertiary focus-visible:ring-primary",
122
122
  ghost: "text-text-primary hover:bg-bg-tertiary focus-visible:ring-primary",
123
123
  danger: "bg-error text-white hover:opacity-90 focus-visible:ring-error"
124
- }, Pe = {
124
+ }, Oe = {
125
125
  sm: "text-small px-3 py-1 gap-1.5",
126
126
  md: "text-body px-4 py-2 gap-2",
127
127
  lg: "text-body px-5 py-2.5 gap-2"
128
- }, Be = {
128
+ }, Ve = {
129
129
  sm: "sm",
130
130
  md: "sm",
131
131
  lg: "md"
132
- }, kt = C(function({
132
+ }, St = z(function({
133
133
  variant: r = "primary",
134
134
  size: o = "md",
135
135
  loading: n = !1,
@@ -140,13 +140,13 @@ const Ae = {
140
140
  children: d,
141
141
  ...l
142
142
  }, u) {
143
- const b = s || n;
143
+ const f = s || n;
144
144
  return /* @__PURE__ */ m(
145
145
  "button",
146
146
  {
147
147
  ref: u,
148
148
  type: "button",
149
- disabled: b,
149
+ disabled: f,
150
150
  "aria-busy": n || void 0,
151
151
  className: [
152
152
  // base
@@ -154,30 +154,30 @@ const Ae = {
154
154
  "transition-colors duration-150 cursor-pointer",
155
155
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
156
156
  // variant + size
157
- Ae[r],
158
- Pe[o],
157
+ Me[r],
158
+ Oe[o],
159
159
  // disabled / loading
160
- b && "opacity-50 pointer-events-none",
160
+ f && "opacity-50 pointer-events-none",
161
161
  c
162
162
  ].filter(Boolean).join(" "),
163
163
  ...l,
164
164
  children: [
165
- n ? /* @__PURE__ */ e(se, { size: Be[o], "aria-hidden": "true" }) : i,
165
+ n ? /* @__PURE__ */ e(me, { size: Ve[o], "aria-hidden": "true" }) : i,
166
166
  d,
167
167
  !n && a
168
168
  ]
169
169
  }
170
170
  );
171
- }), Le = {
171
+ }), Ue = {
172
172
  primary: "bg-primary text-white hover:bg-primary-hover focus-visible:ring-primary",
173
173
  secondary: "border border-border text-text-primary bg-bg-primary hover:bg-bg-tertiary focus-visible:ring-primary",
174
174
  ghost: "text-text-primary hover:bg-bg-tertiary focus-visible:ring-primary",
175
175
  danger: "bg-error text-white hover:opacity-90 focus-visible:ring-error"
176
- }, Re = {
176
+ }, Ke = {
177
177
  sm: "size-7 text-small",
178
178
  md: "size-9 text-body",
179
179
  lg: "size-11 text-body"
180
- }, Te = C(function({ variant: r = "ghost", size: o = "md", loading: n = !1, disabled: s, icon: i, className: a = "", ...c }, d) {
180
+ }, He = z(function({ variant: r = "ghost", size: o = "md", loading: n = !1, disabled: s, icon: i, className: a = "", ...c }, d) {
181
181
  const l = s || n;
182
182
  return /* @__PURE__ */ e(
183
183
  "button",
@@ -192,17 +192,204 @@ const Ae = {
192
192
  "transition-colors duration-150 cursor-pointer",
193
193
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
194
194
  // variant + size
195
- Le[r],
196
- Re[o],
195
+ Ue[r],
196
+ Ke[o],
197
197
  // disabled / loading
198
198
  l && "opacity-50 pointer-events-none",
199
199
  a
200
200
  ].filter(Boolean).join(" "),
201
201
  ...c,
202
- children: n ? /* @__PURE__ */ e(se, { size: "sm", "aria-hidden": "true" }) : i
202
+ children: n ? /* @__PURE__ */ e(me, { size: "sm", "aria-hidden": "true" }) : i
203
203
  }
204
204
  );
205
- }), Ct = C(function({
205
+ });
206
+ function qe(t) {
207
+ return t < 1024 ? `${t} B` : t < 1024 * 1024 ? `${(t / 1024).toFixed(1)} KB` : `${(t / (1024 * 1024)).toFixed(1)} MB`;
208
+ }
209
+ function At({
210
+ accept: t,
211
+ multiple: r = !1,
212
+ maxSize: o,
213
+ onFilesSelected: n,
214
+ onReject: s,
215
+ disabled: i = !1,
216
+ label: a = "Drop files here or click to browse",
217
+ helperText: c,
218
+ error: d,
219
+ illustration: l,
220
+ className: u = ""
221
+ }) {
222
+ const [f, h] = C(!1), [p, y] = C([]), b = D(null), v = !!d, N = k(
223
+ (w) => {
224
+ const S = Array.from(w), A = [], L = [];
225
+ for (const P of S)
226
+ o && P.size > o ? L.push(P) : A.push(P);
227
+ if (A.length > 0) {
228
+ const P = r ? [...p, ...A] : A.slice(0, 1);
229
+ y(P), n?.(P);
230
+ }
231
+ L.length > 0 && s?.(L);
232
+ },
233
+ [o, r, n, s, p]
234
+ ), g = k(
235
+ (w) => {
236
+ w.preventDefault(), i || h(!0);
237
+ },
238
+ [i]
239
+ ), x = k((w) => {
240
+ w.preventDefault(), h(!1);
241
+ }, []), $ = k(
242
+ (w) => {
243
+ w.preventDefault(), h(!1), !(i || !w.dataTransfer.files.length) && N(w.dataTransfer.files);
244
+ },
245
+ [i, N]
246
+ ), B = k(
247
+ (w) => {
248
+ w.target.files?.length && N(w.target.files);
249
+ },
250
+ [N]
251
+ ), F = k(() => {
252
+ i || b.current?.click();
253
+ }, [i]), E = k(
254
+ (w) => {
255
+ !i && (w.key === "Enter" || w.key === " ") && (w.preventDefault(), b.current?.click());
256
+ },
257
+ [i]
258
+ ), O = k(
259
+ (w) => {
260
+ const S = p.filter((A, L) => L !== w);
261
+ y(S), n?.(S);
262
+ },
263
+ [p, n]
264
+ );
265
+ return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${u}`, children: [
266
+ /* @__PURE__ */ m(
267
+ "div",
268
+ {
269
+ role: "button",
270
+ tabIndex: i ? -1 : 0,
271
+ onClick: F,
272
+ onKeyDown: E,
273
+ onDragOver: g,
274
+ onDragLeave: x,
275
+ onDrop: $,
276
+ className: [
277
+ "flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-lg",
278
+ "transition-colors cursor-pointer select-none",
279
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
280
+ i ? "opacity-50 pointer-events-none bg-bg-secondary" : f ? "border-primary bg-primary/5" : v ? "border-error hover:border-error bg-bg-primary" : "border-border hover:border-primary bg-bg-primary"
281
+ ].filter(Boolean).join(" "),
282
+ "aria-disabled": i,
283
+ children: [
284
+ l ?? /* @__PURE__ */ e(
285
+ he,
286
+ {
287
+ size: 32,
288
+ className: f ? "text-primary" : "text-text-muted",
289
+ "aria-hidden": !0
290
+ }
291
+ ),
292
+ /* @__PURE__ */ e("span", { className: "text-body font-medium text-text-primary text-center", children: a }),
293
+ c && /* @__PURE__ */ e("span", { className: "text-caption text-text-secondary text-center", children: c })
294
+ ]
295
+ }
296
+ ),
297
+ /* @__PURE__ */ e(
298
+ "input",
299
+ {
300
+ ref: b,
301
+ type: "file",
302
+ accept: t,
303
+ multiple: r,
304
+ onChange: B,
305
+ className: "hidden",
306
+ tabIndex: -1,
307
+ "aria-hidden": !0
308
+ }
309
+ ),
310
+ d && /* @__PURE__ */ e("p", { className: "text-caption text-error", children: d }),
311
+ p.length > 0 && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-1 mt-1", children: p.map((w, S) => /* @__PURE__ */ m(
312
+ "li",
313
+ {
314
+ className: "flex items-center gap-2 rounded-md bg-bg-secondary px-3 py-1.5 text-small text-text-primary",
315
+ children: [
316
+ /* @__PURE__ */ e("span", { className: "truncate flex-1", children: w.name }),
317
+ /* @__PURE__ */ e("span", { className: "shrink-0 text-text-secondary", children: qe(w.size) }),
318
+ /* @__PURE__ */ e(
319
+ "button",
320
+ {
321
+ type: "button",
322
+ onClick: (A) => {
323
+ A.stopPropagation(), O(S);
324
+ },
325
+ className: "shrink-0 p-0.5 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
326
+ "aria-label": `Remove ${w.name}`,
327
+ children: /* @__PURE__ */ e(U, { size: 14 })
328
+ }
329
+ )
330
+ ]
331
+ },
332
+ `${w.name}-${w.size}-${S}`
333
+ )) })
334
+ ] });
335
+ }
336
+ const Ge = {
337
+ sm: "h-1.5",
338
+ md: "h-2.5",
339
+ lg: "h-4"
340
+ }, Xe = {
341
+ primary: "bg-primary",
342
+ success: "bg-success",
343
+ warning: "bg-warning",
344
+ error: "bg-error",
345
+ info: "bg-info"
346
+ }, Bt = z(
347
+ function({
348
+ value: r,
349
+ variant: o = "primary",
350
+ size: n = "md",
351
+ showLabel: s = !1,
352
+ formatLabel: i,
353
+ className: a = "",
354
+ ...c
355
+ }, d) {
356
+ const l = Math.round(Math.min(100, Math.max(0, r))), u = i ? i(l) : `${l}%`;
357
+ return /* @__PURE__ */ m(
358
+ "div",
359
+ {
360
+ ref: d,
361
+ className: `flex items-center gap-2 ${a}`,
362
+ ...c,
363
+ children: [
364
+ /* @__PURE__ */ e(
365
+ "div",
366
+ {
367
+ className: [
368
+ "flex-1 overflow-hidden rounded-full bg-bg-tertiary",
369
+ Ge[n]
370
+ ].join(" "),
371
+ role: "progressbar",
372
+ "aria-valuenow": l,
373
+ "aria-valuemin": 0,
374
+ "aria-valuemax": 100,
375
+ children: /* @__PURE__ */ e(
376
+ "div",
377
+ {
378
+ className: [
379
+ "h-full rounded-full transition-all duration-300 ease-out",
380
+ Xe[o]
381
+ ].join(" "),
382
+ style: { width: `${l}%` }
383
+ }
384
+ )
385
+ }
386
+ ),
387
+ s && /* @__PURE__ */ e("span", { className: "text-small font-medium text-text-secondary tabular-nums shrink-0", children: u })
388
+ ]
389
+ }
390
+ );
391
+ }
392
+ ), Pt = z(function({
206
393
  label: r,
207
394
  indeterminate: o = !1,
208
395
  helperText: n,
@@ -212,21 +399,21 @@ const Ae = {
212
399
  disabled: c,
213
400
  ...d
214
401
  }, l) {
215
- const u = I(), b = a ?? u, h = `${b}-helper`, p = !!s, y = D(null), f = k(
402
+ const u = j(), f = a ?? u, h = `${f}-helper`, p = !!s, y = D(null), b = k(
216
403
  (v) => {
217
404
  y.current = v, typeof l == "function" ? l(v) : l && (l.current = v);
218
405
  },
219
406
  [l]
220
407
  );
221
- return $(() => {
408
+ return I(() => {
222
409
  y.current && (y.current.indeterminate = o);
223
410
  }, [o]), /* @__PURE__ */ m("div", { className: `flex flex-col gap-1 ${i}`, children: [
224
411
  /* @__PURE__ */ m("div", { className: "flex items-start gap-2", children: [
225
412
  /* @__PURE__ */ e(
226
413
  "input",
227
414
  {
228
- ref: f,
229
- id: b,
415
+ ref: b,
416
+ id: f,
230
417
  type: "checkbox",
231
418
  disabled: c,
232
419
  "aria-invalid": p || void 0,
@@ -250,7 +437,7 @@ const Ae = {
250
437
  r && /* @__PURE__ */ e(
251
438
  "label",
252
439
  {
253
- htmlFor: b,
440
+ htmlFor: f,
254
441
  className: `text-body select-none ${c ? "text-text-muted cursor-not-allowed" : "text-text-primary cursor-pointer"}`,
255
442
  children: r
256
443
  }
@@ -265,23 +452,23 @@ const Ae = {
265
452
  }
266
453
  )
267
454
  ] });
268
- }), Me = {
455
+ }), Ye = {
269
456
  sm: "h-8 text-small px-2.5",
270
457
  md: "h-10 text-body px-3",
271
458
  lg: "h-12 text-body px-3.5"
272
- }, Oe = {
459
+ }, _e = {
273
460
  sm: "pl-8",
274
461
  md: "pl-10",
275
462
  lg: "pl-11"
276
- }, Ve = {
463
+ }, We = {
277
464
  sm: "pr-8",
278
465
  md: "pr-10",
279
466
  lg: "pr-11"
280
- }, J = {
467
+ }, re = {
281
468
  sm: "[&>svg]:size-4",
282
469
  md: "[&>svg]:size-5",
283
470
  lg: "[&>svg]:size-5"
284
- }, zt = C(function({
471
+ }, Lt = z(function({
285
472
  label: r,
286
473
  helperText: o,
287
474
  error: n,
@@ -292,15 +479,15 @@ const Ae = {
292
479
  id: d,
293
480
  disabled: l,
294
481
  ...u
295
- }, b) {
296
- const h = I(), p = d ?? h, y = `${p}-helper`, f = !!n;
482
+ }, f) {
483
+ const h = j(), p = d ?? h, y = `${p}-helper`, b = !!n;
297
484
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${c}`, children: [
298
485
  r && /* @__PURE__ */ e("label", { htmlFor: p, className: "text-small font-medium text-text-primary", children: r }),
299
486
  /* @__PURE__ */ m("div", { className: "relative", children: [
300
487
  s && /* @__PURE__ */ e(
301
488
  "span",
302
489
  {
303
- className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${J[a]}`,
490
+ className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${re[a]}`,
304
491
  "aria-hidden": "true",
305
492
  children: s
306
493
  }
@@ -308,20 +495,20 @@ const Ae = {
308
495
  /* @__PURE__ */ e(
309
496
  "input",
310
497
  {
311
- ref: b,
498
+ ref: f,
312
499
  id: p,
313
500
  disabled: l,
314
- "aria-invalid": f || void 0,
501
+ "aria-invalid": b || void 0,
315
502
  "aria-describedby": o || n ? y : void 0,
316
503
  className: [
317
504
  "w-full rounded-md border bg-bg-primary text-text-primary placeholder:text-text-muted",
318
505
  "outline-none transition-colors",
319
506
  "focus:border-primary focus:ring-1 focus:ring-primary",
320
507
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
321
- f ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong",
322
- Me[a],
323
- s ? Oe[a] : "",
324
- i ? Ve[a] : ""
508
+ b ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong",
509
+ Ye[a],
510
+ s ? _e[a] : "",
511
+ i ? We[a] : ""
325
512
  ].join(" "),
326
513
  ...u
327
514
  }
@@ -329,7 +516,7 @@ const Ae = {
329
516
  i && /* @__PURE__ */ e(
330
517
  "span",
331
518
  {
332
- className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${J[a]}`,
519
+ className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${re[a]}`,
333
520
  "aria-hidden": "true",
334
521
  children: i
335
522
  }
@@ -339,18 +526,18 @@ const Ae = {
339
526
  "p",
340
527
  {
341
528
  id: y,
342
- className: `text-caption ${f ? "text-error" : "text-text-secondary"}`,
529
+ className: `text-caption ${b ? "text-error" : "text-text-secondary"}`,
343
530
  children: n ?? o
344
531
  }
345
532
  )
346
533
  ] });
347
- }), ae = S(null);
348
- function Ue() {
349
- const t = A(ae);
534
+ }), ue = R(null);
535
+ function Je() {
536
+ const t = M(ue);
350
537
  if (!t) throw new Error("RadioGroup.Item must be used within RadioGroup");
351
538
  return t;
352
539
  }
353
- function He({
540
+ function Qe({
354
541
  name: t,
355
542
  value: r,
356
543
  onChange: o,
@@ -362,8 +549,8 @@ function He({
362
549
  children: d,
363
550
  className: l = ""
364
551
  }) {
365
- const u = I(), b = t ?? u, p = `${`${b}-group`}-helper`, y = !!i;
366
- return /* @__PURE__ */ e(ae.Provider, { value: { name: b, value: r, onChange: o, disabled: c, hasError: y }, children: /* @__PURE__ */ m(
552
+ const u = j(), f = t ?? u, p = `${`${f}-group`}-helper`, y = !!i;
553
+ return /* @__PURE__ */ e(ue.Provider, { value: { name: f, value: r, onChange: o, disabled: c, hasError: y }, children: /* @__PURE__ */ m(
367
554
  "fieldset",
368
555
  {
369
556
  className: `flex flex-col gap-2 ${l}`,
@@ -391,14 +578,14 @@ function He({
391
578
  }
392
579
  ) });
393
580
  }
394
- function qe({ value: t, label: r, description: o, disabled: n }) {
581
+ function Ze({ value: t, label: r, description: o, disabled: n }) {
395
582
  const {
396
583
  name: s,
397
584
  value: i,
398
585
  onChange: a,
399
586
  disabled: c,
400
587
  hasError: d
401
- } = Ue(), l = I(), u = c || n;
588
+ } = Je(), l = j(), u = c || n;
402
589
  return /* @__PURE__ */ m("div", { className: "flex items-start gap-2", children: [
403
590
  /* @__PURE__ */ e(
404
591
  "input",
@@ -433,8 +620,8 @@ function qe({ value: t, label: r, description: o, disabled: n }) {
433
620
  ] })
434
621
  ] });
435
622
  }
436
- He.Item = qe;
437
- const Ke = (t) => ({
623
+ Qe.Item = Ze;
624
+ const et = (t) => ({
438
625
  ...t,
439
626
  borderRadius: 8,
440
627
  colors: {
@@ -467,25 +654,30 @@ const Ke = (t) => ({
467
654
  danger: "var(--color-error)",
468
655
  dangerLight: "var(--color-error-bg)"
469
656
  }
470
- }), Q = {
657
+ }), ne = {
471
658
  control: ({ isFocused: t }) => `!shadow-sm !rounded-md !border-border ${t ? "!border-primary !ring-1 !ring-primary" : ""}`,
472
659
  menu: () => "!rounded-lg !shadow-lg !border !border-border",
473
660
  option: ({ isFocused: t, isSelected: r }) => `${r ? "!bg-primary !text-white" : t ? "!bg-bg-tertiary" : ""}`,
474
661
  multiValue: () => "!rounded-sm !bg-bg-tertiary"
475
662
  };
476
- function $t({ label: t, helperText: r, error: o, className: n = "", ...s }) {
477
- const i = I(), a = s.inputId ?? i, c = `${a}-helper`, d = !!o;
663
+ function Tt({ label: t, helperText: r, error: o, className: n = "", ...s }) {
664
+ const i = j(), a = s.inputId ?? i, c = `${a}-helper`, d = !!o;
478
665
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${n}`, children: [
479
666
  t && /* @__PURE__ */ e("label", { htmlFor: a, className: "text-small font-medium text-text-primary", children: t }),
480
667
  /* @__PURE__ */ e(
481
- De,
668
+ Ae,
482
669
  {
483
670
  inputId: a,
484
- theme: Ke,
671
+ theme: et,
672
+ menuPortalTarget: document.body,
673
+ styles: {
674
+ menuPortal: (l) => ({ ...l, zIndex: 50 }),
675
+ ...s.styles
676
+ },
485
677
  classNames: {
486
- ...Q,
678
+ ...ne,
487
679
  control: (l) => {
488
- const u = Q.control?.(l) ?? "";
680
+ const u = ne.control?.(l) ?? "";
489
681
  return d ? `${u} !border-error !focus:ring-error` : u;
490
682
  }
491
683
  },
@@ -504,8 +696,8 @@ function $t({ label: t, helperText: r, error: o, className: n = "", ...s }) {
504
696
  )
505
697
  ] });
506
698
  }
507
- const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disabled: i, ...a }, c) {
508
- const d = I(), l = s ?? d, u = `${l}-helper`;
699
+ const Rt = z(function({ label: r, helperText: o, className: n = "", id: s, disabled: i, ...a }, c) {
700
+ const d = j(), l = s ?? d, u = `${l}-helper`;
509
701
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1 ${n}`, children: [
510
702
  /* @__PURE__ */ m("div", { className: "flex items-center gap-3", children: [
511
703
  /* @__PURE__ */ m("div", { className: "relative inline-flex items-center", children: [
@@ -553,7 +745,7 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
553
745
  ] }),
554
746
  o && /* @__PURE__ */ e("p", { id: u, className: "text-caption text-text-secondary pl-14", children: o })
555
747
  ] });
556
- }), It = C(function({
748
+ }), Mt = z(function({
557
749
  label: r,
558
750
  helperText: o,
559
751
  error: n,
@@ -564,19 +756,19 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
564
756
  disabled: d,
565
757
  onChange: l,
566
758
  ...u
567
- }, b) {
568
- const h = I(), p = c ?? h, y = `${p}-helper`, f = !!n, v = D(null), w = k(() => {
759
+ }, f) {
760
+ const h = j(), p = c ?? h, y = `${p}-helper`, b = !!n, v = D(null), N = k(() => {
569
761
  const x = v.current;
570
762
  !x || !s || (x.style.height = "auto", x.style.height = `${x.scrollHeight}px`);
571
763
  }, [s]);
572
- $(() => {
573
- w();
574
- }, [w, u.value, u.defaultValue]);
764
+ I(() => {
765
+ N();
766
+ }, [N, u.value, u.defaultValue]);
575
767
  const g = k(
576
768
  (x) => {
577
- v.current = x, typeof b == "function" ? b(x) : b && (b.current = x);
769
+ v.current = x, typeof f == "function" ? f(x) : f && (f.current = x);
578
770
  },
579
- [b]
771
+ [f]
580
772
  );
581
773
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${a}`, children: [
582
774
  r && /* @__PURE__ */ e("label", { htmlFor: p, className: "text-small font-medium text-text-primary", children: r }),
@@ -587,10 +779,10 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
587
779
  id: p,
588
780
  rows: i,
589
781
  disabled: d,
590
- "aria-invalid": f || void 0,
782
+ "aria-invalid": b || void 0,
591
783
  "aria-describedby": o || n ? y : void 0,
592
784
  onChange: (x) => {
593
- l?.(x), w();
785
+ l?.(x), N();
594
786
  },
595
787
  className: [
596
788
  "w-full rounded-md border bg-bg-primary text-text-primary placeholder:text-text-muted",
@@ -598,7 +790,7 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
598
790
  "focus:border-primary focus:ring-1 focus:ring-primary",
599
791
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
600
792
  s ? "resize-none overflow-hidden" : "resize-y",
601
- f ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong"
793
+ b ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong"
602
794
  ].join(" "),
603
795
  ...u
604
796
  }
@@ -607,12 +799,12 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
607
799
  "p",
608
800
  {
609
801
  id: y,
610
- className: `text-caption ${f ? "text-error" : "text-text-secondary"}`,
802
+ className: `text-caption ${b ? "text-error" : "text-text-secondary"}`,
611
803
  children: n ?? o
612
804
  }
613
805
  )
614
806
  ] });
615
- }), le = S({
807
+ }), pe = R({
616
808
  close: () => {
617
809
  },
618
810
  getItemProps: () => ({}),
@@ -620,11 +812,11 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
620
812
  setActiveIndex: () => {
621
813
  }
622
814
  });
623
- function jt() {
815
+ function Ot() {
624
816
  return /* @__PURE__ */ e("div", { role: "separator", className: "my-1 border-t border-border" });
625
817
  }
626
- const Ft = C(function({ children: r, icon: o, danger: n = !1, disabled: s = !1, onClick: i, className: a = "", ...c }, d) {
627
- const { close: l } = A(le);
818
+ const Vt = z(function({ children: r, icon: o, danger: n = !1, disabled: s = !1, onClick: i, className: a = "", ...c }, d) {
819
+ const { close: l } = M(pe);
628
820
  return /* @__PURE__ */ m(
629
821
  "button",
630
822
  {
@@ -650,32 +842,32 @@ const Ft = C(function({ children: r, icon: o, danger: n = !1, disabled: s = !1,
650
842
  }
651
843
  );
652
844
  });
653
- function Et({
845
+ function Ut({
654
846
  trigger: t,
655
847
  children: r,
656
848
  placement: o = "bottom-start",
657
849
  className: n = ""
658
850
  }) {
659
- const [s, i] = N(!1), [a, c] = N(null), d = D([]), { refs: l, floatingStyles: u, context: b } = O({
851
+ const [s, i] = C(!1), [a, c] = C(null), d = D([]), { refs: l, floatingStyles: u, context: f } = G({
660
852
  open: s,
661
853
  onOpenChange: i,
662
854
  placement: o,
663
- middleware: [U(4), H(), q({ padding: 8 })],
664
- whileElementsMounted: V
665
- }), h = oe(b), p = K(b), y = G(b, { role: "menu" }), f = ke(b, {
855
+ middleware: [Y(4), _(), W({ padding: 8 })],
856
+ whileElementsMounted: X
857
+ }), h = ce(f), p = J(f), y = Q(f, { role: "menu" }), b = je(f, {
666
858
  listRef: d,
667
859
  activeIndex: a,
668
860
  onNavigate: c,
669
861
  loop: !0
670
- }), { getReferenceProps: v, getFloatingProps: w, getItemProps: g } = X([
862
+ }), { getReferenceProps: v, getFloatingProps: N, getItemProps: g } = Z([
671
863
  h,
672
864
  p,
673
865
  y,
674
- f
866
+ b
675
867
  ]), x = k(() => i(!1), []);
676
- return /* @__PURE__ */ m(B, { children: [
868
+ return /* @__PURE__ */ m(V, { children: [
677
869
  /* @__PURE__ */ e("span", { ref: l.setReference, className: "inline-flex", ...v(), children: t }),
678
- s && /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ e(ie, { context: b, modal: !1, children: /* @__PURE__ */ e(
870
+ s && /* @__PURE__ */ e(ee, { children: /* @__PURE__ */ e(de, { context: f, modal: !1, children: /* @__PURE__ */ e(
679
871
  "div",
680
872
  {
681
873
  ref: l.setFloating,
@@ -685,9 +877,9 @@ function Et({
685
877
  "bg-bg-primary shadow-lg animate-floating-in",
686
878
  n
687
879
  ].join(" "),
688
- ...w(),
880
+ ...N(),
689
881
  children: /* @__PURE__ */ e(
690
- le.Provider,
882
+ pe.Provider,
691
883
  {
692
884
  value: { close: x, getItemProps: g, activeIndex: a, setActiveIndex: c },
693
885
  children: r
@@ -697,7 +889,7 @@ function Et({
697
889
  ) }) })
698
890
  ] });
699
891
  }
700
- function St({
892
+ function Kt({
701
893
  trigger: t,
702
894
  children: r,
703
895
  placement: o = "bottom",
@@ -705,19 +897,19 @@ function St({
705
897
  onOpenChange: s,
706
898
  className: i = ""
707
899
  }) {
708
- const [a, c] = N(!1), d = n !== void 0, l = d ? n : a, u = d ? (x) => s?.(x) : c, { refs: b, floatingStyles: h, context: p } = O({
900
+ const [a, c] = C(!1), d = n !== void 0, l = d ? n : a, u = d ? (x) => s?.(x) : c, { refs: f, floatingStyles: h, context: p } = G({
709
901
  open: l,
710
902
  onOpenChange: u,
711
903
  placement: o,
712
- middleware: [U(8), H(), q({ padding: 8 })],
713
- whileElementsMounted: V
714
- }), y = oe(p), f = K(p), v = G(p), { getReferenceProps: w, getFloatingProps: g } = X([y, f, v]);
715
- return /* @__PURE__ */ m(B, { children: [
716
- /* @__PURE__ */ e("span", { ref: b.setReference, className: "inline-flex", ...w(), children: t }),
717
- l && /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ e(ie, { context: p, modal: !1, children: /* @__PURE__ */ e(
904
+ middleware: [Y(8), _(), W({ padding: 8 })],
905
+ whileElementsMounted: X
906
+ }), y = ce(p), b = J(p), v = Q(p), { getReferenceProps: N, getFloatingProps: g } = Z([y, b, v]);
907
+ return /* @__PURE__ */ m(V, { children: [
908
+ /* @__PURE__ */ e("span", { ref: f.setReference, className: "inline-flex", ...N(), children: t }),
909
+ l && /* @__PURE__ */ e(ee, { children: /* @__PURE__ */ e(de, { context: p, modal: !1, children: /* @__PURE__ */ e(
718
910
  "div",
719
911
  {
720
- ref: b.setFloating,
912
+ ref: f.setFloating,
721
913
  style: h,
722
914
  className: [
723
915
  "z-50 rounded-lg border border-border p-md",
@@ -730,12 +922,12 @@ function St({
730
922
  ) }) })
731
923
  ] });
732
924
  }
733
- const ce = S({
925
+ const fe = R({
734
926
  activeValue: "",
735
927
  idPrefix: ""
736
928
  });
737
- function At({ value: t, children: r, className: o = "" }) {
738
- const { activeValue: n, idPrefix: s } = A(ce), i = n === t;
929
+ function Ht({ value: t, children: r, className: o = "" }) {
930
+ const { activeValue: n, idPrefix: s } = M(fe), i = n === t;
739
931
  return /* @__PURE__ */ e(
740
932
  "div",
741
933
  {
@@ -749,7 +941,7 @@ function At({ value: t, children: r, className: o = "" }) {
749
941
  }
750
942
  );
751
943
  }
752
- function Pt({
944
+ function qt({
753
945
  items: t,
754
946
  value: r,
755
947
  defaultValue: o,
@@ -757,40 +949,40 @@ function Pt({
757
949
  children: s,
758
950
  className: i = ""
759
951
  }) {
760
- const a = I().replace(/:/g, ""), c = D(null), d = r !== void 0, [l, u] = N(
761
- () => o ?? t.find((f) => !f.disabled)?.value ?? t[0]?.value ?? ""
762
- ), b = d ? r : l, h = k(
763
- (f) => {
764
- d || u(f), n?.(f);
952
+ const a = j().replace(/:/g, ""), c = D(null), d = r !== void 0, [l, u] = C(
953
+ () => o ?? t.find((b) => !b.disabled)?.value ?? t[0]?.value ?? ""
954
+ ), f = d ? r : l, h = k(
955
+ (b) => {
956
+ d || u(b), n?.(b);
765
957
  },
766
958
  [d, n]
767
- ), p = t.filter((f) => !f.disabled), y = (f) => {
768
- const v = p.findIndex((x) => x.value === b);
769
- let w = v;
770
- switch (f.key) {
959
+ ), p = t.filter((b) => !b.disabled), y = (b) => {
960
+ const v = p.findIndex((x) => x.value === f);
961
+ let N = v;
962
+ switch (b.key) {
771
963
  case "ArrowRight":
772
964
  case "ArrowDown":
773
- f.preventDefault(), w = (v + 1) % p.length;
965
+ b.preventDefault(), N = (v + 1) % p.length;
774
966
  break;
775
967
  case "ArrowLeft":
776
968
  case "ArrowUp":
777
- f.preventDefault(), w = (v - 1 + p.length) % p.length;
969
+ b.preventDefault(), N = (v - 1 + p.length) % p.length;
778
970
  break;
779
971
  case "Home":
780
- f.preventDefault(), w = 0;
972
+ b.preventDefault(), N = 0;
781
973
  break;
782
974
  case "End":
783
- f.preventDefault(), w = p.length - 1;
975
+ b.preventDefault(), N = p.length - 1;
784
976
  break;
785
977
  default:
786
978
  return;
787
979
  }
788
- const g = p[w];
980
+ const g = p[N];
789
981
  g && (h(g.value), c.current?.querySelector(
790
982
  `[data-tab-value="${g.value}"]`
791
983
  )?.focus());
792
984
  };
793
- return /* @__PURE__ */ e(ce.Provider, { value: { activeValue: b, idPrefix: a }, children: /* @__PURE__ */ m("div", { className: i, children: [
985
+ return /* @__PURE__ */ e(fe.Provider, { value: { activeValue: f, idPrefix: a }, children: /* @__PURE__ */ m("div", { className: i, children: [
794
986
  /* @__PURE__ */ e(
795
987
  "div",
796
988
  {
@@ -799,33 +991,33 @@ function Pt({
799
991
  "aria-orientation": "horizontal",
800
992
  onKeyDown: y,
801
993
  className: "flex border-b border-border",
802
- children: t.map((f) => {
803
- const v = f.value === b;
994
+ children: t.map((b) => {
995
+ const v = b.value === f;
804
996
  return /* @__PURE__ */ m(
805
997
  "button",
806
998
  {
807
- id: `${a}-tab-${f.value}`,
999
+ id: `${a}-tab-${b.value}`,
808
1000
  role: "tab",
809
1001
  type: "button",
810
- "data-tab-value": f.value,
1002
+ "data-tab-value": b.value,
811
1003
  "aria-selected": v,
812
- "aria-controls": `${a}-panel-${f.value}`,
1004
+ "aria-controls": `${a}-panel-${b.value}`,
813
1005
  tabIndex: v ? 0 : -1,
814
- disabled: f.disabled,
815
- onClick: () => h(f.value),
1006
+ disabled: b.disabled,
1007
+ onClick: () => h(b.value),
816
1008
  className: [
817
1009
  "inline-flex items-center gap-1.5 px-4 py-2.5 text-small font-medium",
818
1010
  "border-b-2 -mb-px transition-colors outline-none cursor-pointer",
819
1011
  "focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
820
1012
  v ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-strong",
821
- f.disabled && "opacity-50 pointer-events-none"
1013
+ b.disabled && "opacity-50 pointer-events-none"
822
1014
  ].filter(Boolean).join(" "),
823
1015
  children: [
824
- f.icon && /* @__PURE__ */ e("span", { className: "shrink-0 size-4", children: f.icon }),
825
- f.label
1016
+ b.icon && /* @__PURE__ */ e("span", { className: "shrink-0 size-4", children: b.icon }),
1017
+ b.label
826
1018
  ]
827
1019
  },
828
- f.value
1020
+ b.value
829
1021
  );
830
1022
  })
831
1023
  }
@@ -833,41 +1025,41 @@ function Pt({
833
1025
  s
834
1026
  ] }) });
835
1027
  }
836
- const Ge = {
1028
+ const tt = {
837
1029
  top: "bottom",
838
1030
  bottom: "top",
839
1031
  left: "right",
840
1032
  right: "left"
841
1033
  };
842
- function Bt({
1034
+ function Gt({
843
1035
  children: t,
844
1036
  content: r,
845
1037
  placement: o = "top",
846
1038
  delay: n = 200,
847
1039
  className: s = ""
848
1040
  }) {
849
- const [i, a] = N(!1), c = D(null), {
1041
+ const [i, a] = C(!1), c = D(null), {
850
1042
  refs: d,
851
1043
  floatingStyles: l,
852
1044
  context: u,
853
- middlewareData: b,
1045
+ middlewareData: f,
854
1046
  placement: h
855
- } = O({
1047
+ } = G({
856
1048
  open: i,
857
1049
  onOpenChange: a,
858
1050
  placement: o,
859
1051
  middleware: [
860
- U(8),
861
- H(),
862
- q({ padding: 8 }),
1052
+ Y(8),
1053
+ _(),
1054
+ W({ padding: 8 }),
863
1055
  // eslint-disable-next-line react-hooks/refs -- floating-ui arrow middleware needs ref object
864
- Ce({ element: c })
1056
+ Fe({ element: c })
865
1057
  ],
866
- whileElementsMounted: V
867
- }), p = ze(u, { delay: n, move: !1 }), y = $e(u), f = K(u), v = G(u, { role: "tooltip" }), { getReferenceProps: w, getFloatingProps: g } = X([p, y, f, v]), x = h.split("-")[0], z = b.arrow?.x, P = b.arrow?.y;
868
- return /* @__PURE__ */ m(B, { children: [
869
- /* @__PURE__ */ e("span", { ref: d.setReference, className: "inline-flex", ...w(), children: t }),
870
- i && r && /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ m(
1058
+ whileElementsMounted: X
1059
+ }), p = Ee(u, { delay: n, move: !1 }), y = Se(u), b = J(u), v = Q(u, { role: "tooltip" }), { getReferenceProps: N, getFloatingProps: g } = Z([p, y, b, v]), x = h.split("-")[0], $ = f.arrow?.x, B = f.arrow?.y;
1060
+ return /* @__PURE__ */ m(V, { children: [
1061
+ /* @__PURE__ */ e("span", { ref: d.setReference, className: "inline-flex", ...N(), children: t }),
1062
+ i && r && /* @__PURE__ */ e(ee, { children: /* @__PURE__ */ m(
871
1063
  "div",
872
1064
  {
873
1065
  ref: d.setFloating,
@@ -888,9 +1080,9 @@ function Bt({
888
1080
  ref: c,
889
1081
  className: "absolute size-2 bg-text-primary rotate-45",
890
1082
  style: {
891
- left: z != null ? `${z}px` : "",
892
- top: P != null ? `${P}px` : "",
893
- [Ge[x]]: "-4px"
1083
+ left: $ != null ? `${$}px` : "",
1084
+ top: B != null ? `${B}px` : "",
1085
+ [tt[x]]: "-4px"
894
1086
  }
895
1087
  }
896
1088
  )
@@ -899,8 +1091,8 @@ function Bt({
899
1091
  ) })
900
1092
  ] });
901
1093
  }
902
- function Xe() {
903
- const { i18n: t } = Z(), r = t.language ?? "en", o = k(
1094
+ function rt() {
1095
+ const { i18n: t } = oe(), r = t.language ?? "en", o = k(
904
1096
  (s) => {
905
1097
  t.changeLanguage(s);
906
1098
  },
@@ -910,12 +1102,12 @@ function Xe() {
910
1102
  }, [r, o]);
911
1103
  return { language: r, toggleLanguage: n, setLanguage: o };
912
1104
  }
913
- const Ye = [
1105
+ const nt = [
914
1106
  { value: "en", label: "EN" },
915
1107
  { value: "fr", label: "FR" }
916
1108
  ];
917
- function Lt({ className: t = "" }) {
918
- const { language: r, setLanguage: o } = Xe();
1109
+ function Xt({ className: t = "" }) {
1110
+ const { language: r, setLanguage: o } = rt();
919
1111
  return /* @__PURE__ */ e(
920
1112
  "div",
921
1113
  {
@@ -925,7 +1117,7 @@ function Lt({ className: t = "" }) {
925
1117
  "inline-flex items-center rounded-full border border-border bg-bg-secondary p-0.5",
926
1118
  t
927
1119
  ].filter(Boolean).join(" "),
928
- children: Ye.map(({ value: n, label: s }) => {
1120
+ children: nt.map(({ value: n, label: s }) => {
929
1121
  const i = r === n;
930
1122
  return /* @__PURE__ */ e(
931
1123
  "button",
@@ -946,61 +1138,61 @@ function Lt({ className: t = "" }) {
946
1138
  }
947
1139
  );
948
1140
  }
949
- const _ = "poesis-theme", R = /* @__PURE__ */ new Set();
950
- function _e() {
951
- R.forEach((t) => t());
1141
+ const te = "poesis-theme", H = /* @__PURE__ */ new Set();
1142
+ function ot() {
1143
+ H.forEach((t) => t());
952
1144
  }
953
- function We(t) {
954
- return R.add(t), () => R.delete(t);
1145
+ function it(t) {
1146
+ return H.add(t), () => H.delete(t);
955
1147
  }
956
- function Je() {
1148
+ function st() {
957
1149
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
958
1150
  }
959
- function Qe() {
1151
+ function at() {
960
1152
  return "light";
961
1153
  }
962
- function E(t) {
963
- t === "dark" ? document.documentElement.classList.add("dark") : document.documentElement.classList.remove("dark"), localStorage.setItem(_, t), _e();
1154
+ function T(t) {
1155
+ t === "dark" ? document.documentElement.classList.add("dark") : document.documentElement.classList.remove("dark"), localStorage.setItem(te, t), ot();
964
1156
  }
965
- function Rt() {
966
- const t = localStorage.getItem(_);
1157
+ function Yt() {
1158
+ const t = localStorage.getItem(te);
967
1159
  if (t) {
968
- E(t);
1160
+ T(t);
969
1161
  return;
970
1162
  }
971
1163
  const r = window.matchMedia("(prefers-color-scheme: dark)").matches;
972
- E(r ? "dark" : "light");
1164
+ T(r ? "dark" : "light");
973
1165
  }
974
- function Ze() {
975
- const t = ue(We, Je, Qe);
976
- $(() => {
1166
+ function lt() {
1167
+ const t = ge(it, st, at);
1168
+ I(() => {
977
1169
  const n = window.matchMedia("(prefers-color-scheme: dark)"), s = (i) => {
978
- localStorage.getItem(_) || E(i.matches ? "dark" : "light");
1170
+ localStorage.getItem(te) || T(i.matches ? "dark" : "light");
979
1171
  };
980
1172
  return n.addEventListener("change", s), () => n.removeEventListener("change", s);
981
1173
  }, []);
982
1174
  const r = k(() => {
983
- E(t === "dark" ? "light" : "dark");
1175
+ T(t === "dark" ? "light" : "dark");
984
1176
  }, [t]), o = k((n) => {
985
- E(n);
1177
+ T(n);
986
1178
  }, []);
987
1179
  return { theme: t, toggleTheme: r, setTheme: o, isDark: t === "dark" };
988
1180
  }
989
- function Tt({ variant: t = "ghost", size: r = "md", className: o }) {
990
- const { isDark: n, toggleTheme: s } = Ze(), { t: i } = Z();
1181
+ function _t({ variant: t = "ghost", size: r = "md", className: o }) {
1182
+ const { isDark: n, toggleTheme: s } = lt(), { t: i } = oe();
991
1183
  return /* @__PURE__ */ e(
992
- Te,
1184
+ He,
993
1185
  {
994
1186
  variant: t,
995
1187
  size: r,
996
- icon: n ? /* @__PURE__ */ e(be, { size: 16 }) : /* @__PURE__ */ e(pe, { size: 16 }),
1188
+ icon: n ? /* @__PURE__ */ e(ye, { size: 16 }) : /* @__PURE__ */ e(ve, { size: 16 }),
997
1189
  "aria-label": i("theme.toggleTheme"),
998
1190
  onClick: s,
999
1191
  className: o
1000
1192
  }
1001
1193
  );
1002
1194
  }
1003
- function et({
1195
+ function ct({
1004
1196
  logo: t,
1005
1197
  categories: r = [],
1006
1198
  activeCategoryId: o,
@@ -1016,7 +1208,7 @@ function et({
1016
1208
  onClick: i,
1017
1209
  className: "mr-sm flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary lg:hidden",
1018
1210
  "aria-label": "Open menu",
1019
- children: /* @__PURE__ */ e(fe, { size: 22 })
1211
+ children: /* @__PURE__ */ e(Ne, { size: 22 })
1020
1212
  }
1021
1213
  ),
1022
1214
  /* @__PURE__ */ e("div", { className: "mr-lg flex shrink-0 items-center", children: t ?? /* @__PURE__ */ e("span", { className: "text-h3 font-bold text-epfl-red", children: "EPFL" }) }),
@@ -1044,7 +1236,7 @@ function et({
1044
1236
  s && /* @__PURE__ */ e("div", { className: "flex items-center gap-xs", children: s })
1045
1237
  ] });
1046
1238
  }
1047
- function tt({
1239
+ function dt({
1048
1240
  sections: t = [],
1049
1241
  activeLinkId: r,
1050
1242
  onLinkClick: o,
@@ -1058,7 +1250,7 @@ function tt({
1058
1250
  n ? "w-16" : "w-64"
1059
1251
  ].join(" "),
1060
1252
  children: /* @__PURE__ */ e("nav", { className: "flex flex-col gap-xs p-sm", "aria-label": "Page navigation", children: t.map((s) => /* @__PURE__ */ e(
1061
- rt,
1253
+ mt,
1062
1254
  {
1063
1255
  section: s,
1064
1256
  activeLinkId: r,
@@ -1070,13 +1262,13 @@ function tt({
1070
1262
  }
1071
1263
  );
1072
1264
  }
1073
- function rt({
1265
+ function mt({
1074
1266
  section: t,
1075
1267
  activeLinkId: r,
1076
1268
  onLinkClick: o,
1077
1269
  collapsed: n
1078
1270
  }) {
1079
- const [s, i] = N(!0);
1271
+ const [s, i] = C(!0);
1080
1272
  return /* @__PURE__ */ m("div", { className: "flex flex-col", children: [
1081
1273
  t.title && !n && /* @__PURE__ */ m(
1082
1274
  "button",
@@ -1087,7 +1279,7 @@ function rt({
1087
1279
  children: [
1088
1280
  /* @__PURE__ */ e("span", { children: t.title }),
1089
1281
  /* @__PURE__ */ e(
1090
- ee,
1282
+ ie,
1091
1283
  {
1092
1284
  size: 14,
1093
1285
  className: `transition-transform ${s ? "" : "-rotate-90"}`
@@ -1119,7 +1311,7 @@ function rt({
1119
1311
  }) })
1120
1312
  ] });
1121
1313
  }
1122
- function nt({
1314
+ function ut({
1123
1315
  open: t,
1124
1316
  onClose: r,
1125
1317
  categories: o = [],
@@ -1130,18 +1322,18 @@ function nt({
1130
1322
  onLinkClick: c
1131
1323
  }) {
1132
1324
  const d = D(null);
1133
- return $(() => {
1325
+ return I(() => {
1134
1326
  if (!t) return;
1135
1327
  const l = (u) => {
1136
1328
  u.key === "Escape" && r();
1137
1329
  };
1138
1330
  return document.addEventListener("keydown", l), () => document.removeEventListener("keydown", l);
1139
- }, [t, r]), $(() => {
1331
+ }, [t, r]), I(() => {
1140
1332
  if (!t) return;
1141
1333
  d.current?.focus();
1142
- }, [t]), $(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
1334
+ }, [t]), I(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
1143
1335
  document.body.style.overflow = "";
1144
- }), [t]), /* @__PURE__ */ m(B, { children: [
1336
+ }), [t]), /* @__PURE__ */ m(V, { children: [
1145
1337
  /* @__PURE__ */ e(
1146
1338
  "div",
1147
1339
  {
@@ -1175,7 +1367,7 @@ function nt({
1175
1367
  onClick: r,
1176
1368
  className: "flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary",
1177
1369
  "aria-label": "Close menu",
1178
- children: /* @__PURE__ */ e(xe, { size: 18 })
1370
+ children: /* @__PURE__ */ e(we, { size: 18 })
1179
1371
  }
1180
1372
  )
1181
1373
  ] }),
@@ -1205,7 +1397,7 @@ function nt({
1205
1397
  })
1206
1398
  ] }),
1207
1399
  i.map((l) => /* @__PURE__ */ e(
1208
- ot,
1400
+ pt,
1209
1401
  {
1210
1402
  section: l,
1211
1403
  activeLinkId: a,
@@ -1221,12 +1413,12 @@ function nt({
1221
1413
  )
1222
1414
  ] });
1223
1415
  }
1224
- function ot({
1416
+ function pt({
1225
1417
  section: t,
1226
1418
  activeLinkId: r,
1227
1419
  onLinkClick: o
1228
1420
  }) {
1229
- const [n, s] = N(!0);
1421
+ const [n, s] = C(!0);
1230
1422
  return /* @__PURE__ */ m("div", { className: "mb-xs flex flex-col", children: [
1231
1423
  t.title && /* @__PURE__ */ m(
1232
1424
  "button",
@@ -1237,7 +1429,7 @@ function ot({
1237
1429
  children: [
1238
1430
  /* @__PURE__ */ e("span", { children: t.title }),
1239
1431
  /* @__PURE__ */ e(
1240
- ee,
1432
+ ie,
1241
1433
  {
1242
1434
  size: 14,
1243
1435
  className: `transition-transform ${n ? "" : "-rotate-90"}`
@@ -1267,7 +1459,7 @@ function ot({
1267
1459
  }) })
1268
1460
  ] });
1269
1461
  }
1270
- function Mt({
1462
+ function Wt({
1271
1463
  children: t,
1272
1464
  logo: r,
1273
1465
  categories: o = [],
@@ -1279,22 +1471,22 @@ function Mt({
1279
1471
  actions: d,
1280
1472
  sideNavCollapsed: l = !1
1281
1473
  }) {
1282
- const [u, b] = N(!1);
1474
+ const [u, f] = C(!1);
1283
1475
  return /* @__PURE__ */ m("div", { className: "flex h-screen flex-col bg-bg-primary", children: [
1284
1476
  /* @__PURE__ */ e(
1285
- et,
1477
+ ct,
1286
1478
  {
1287
1479
  logo: r,
1288
1480
  categories: o,
1289
1481
  activeCategoryId: n,
1290
1482
  onCategoryChange: s,
1291
1483
  actions: d,
1292
- onBurgerClick: () => b(!0)
1484
+ onBurgerClick: () => f(!0)
1293
1485
  }
1294
1486
  ),
1295
1487
  /* @__PURE__ */ m("div", { className: "flex flex-1 overflow-hidden pt-14", children: [
1296
1488
  /* @__PURE__ */ e(
1297
- tt,
1489
+ dt,
1298
1490
  {
1299
1491
  sections: i,
1300
1492
  activeLinkId: a,
@@ -1305,25 +1497,25 @@ function Mt({
1305
1497
  /* @__PURE__ */ e("main", { className: "flex-1 overflow-y-auto px-md py-lg lg:px-lg", children: /* @__PURE__ */ e("div", { className: "mx-auto max-w-[var(--container-6xl)]", children: t }) })
1306
1498
  ] }),
1307
1499
  /* @__PURE__ */ e(
1308
- nt,
1500
+ ut,
1309
1501
  {
1310
1502
  open: u,
1311
- onClose: () => b(!1),
1503
+ onClose: () => f(!1),
1312
1504
  categories: o,
1313
1505
  activeCategoryId: n,
1314
1506
  onCategoryChange: (h) => {
1315
- s?.(h), b(!1);
1507
+ s?.(h), f(!1);
1316
1508
  },
1317
1509
  sections: i,
1318
1510
  activeLinkId: a,
1319
1511
  onLinkClick: (h) => {
1320
- c?.(h), b(!1);
1512
+ c?.(h), f(!1);
1321
1513
  }
1322
1514
  }
1323
1515
  )
1324
1516
  ] });
1325
1517
  }
1326
- const Ot = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, className: i = "", children: a, ...c }, d) {
1518
+ const Jt = z(function({ header: r, footer: o, actions: n, noPadding: s = !1, className: i = "", children: a, ...c }, d) {
1327
1519
  const l = o || n;
1328
1520
  return /* @__PURE__ */ m(
1329
1521
  "div",
@@ -1345,7 +1537,7 @@ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, cla
1345
1537
  ]
1346
1538
  }
1347
1539
  );
1348
- }), Vt = C(
1540
+ }), Qt = z(
1349
1541
  function({ items: r, layout: o = "horizontal", dividers: n = !0, className: s = "", ...i }, a) {
1350
1542
  const c = o === "horizontal";
1351
1543
  return /* @__PURE__ */ e(
@@ -1380,7 +1572,7 @@ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, cla
1380
1572
  }
1381
1573
  );
1382
1574
  }
1383
- ), Ut = C(function({ illustration: r, title: o, description: n, action: s, className: i = "", ...a }, c) {
1575
+ ), Zt = z(function({ illustration: r, title: o, description: n, action: s, className: i = "", ...a }, c) {
1384
1576
  return /* @__PURE__ */ m(
1385
1577
  "div",
1386
1578
  {
@@ -1399,7 +1591,7 @@ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, cla
1399
1591
  }
1400
1592
  );
1401
1593
  });
1402
- function it(t, r) {
1594
+ function ft(t, r) {
1403
1595
  if (!t.sortValue || r.length === 0) return "text";
1404
1596
  for (const o of r) {
1405
1597
  const n = t.sortValue(o);
@@ -1407,14 +1599,14 @@ function it(t, r) {
1407
1599
  }
1408
1600
  return "text";
1409
1601
  }
1410
- function st({
1602
+ function bt({
1411
1603
  active: t,
1412
1604
  direction: r,
1413
1605
  columnType: o
1414
1606
  }) {
1415
- return t ? o === "numeric" ? r === "asc" ? /* @__PURE__ */ e(he, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(ye, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : r === "asc" ? /* @__PURE__ */ e(ve, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(we, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(ge, { size: 14, className: "ml-1 inline opacity-30", "aria-hidden": !0 });
1607
+ return t ? o === "numeric" ? r === "asc" ? /* @__PURE__ */ e(Ce, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e($e, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : r === "asc" ? /* @__PURE__ */ e(ze, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(De, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(ke, { size: 14, className: "ml-1 inline opacity-30", "aria-hidden": !0 });
1416
1608
  }
1417
- const Ht = C(function({
1609
+ const er = z(function({
1418
1610
  columns: r,
1419
1611
  data: o,
1420
1612
  rowKey: n,
@@ -1425,31 +1617,31 @@ const Ht = C(function({
1425
1617
  className: d = "",
1426
1618
  ...l
1427
1619
  }, u) {
1428
- const [b, h] = N(), p = i ?? b, y = k(
1620
+ const [f, h] = C(), p = i ?? f, y = k(
1429
1621
  (g) => {
1430
1622
  const x = p?.column === g && p.direction === "asc" ? { column: g, direction: "desc" } : { column: g, direction: "asc" };
1431
1623
  a ? a(x) : h(x);
1432
1624
  },
1433
1625
  [p, a]
1434
- ), f = L(() => {
1626
+ ), b = K(() => {
1435
1627
  if (!p || a) return o;
1436
- const g = r.find((z) => z.key === p.column);
1628
+ const g = r.find(($) => $.key === p.column);
1437
1629
  if (!g?.sortValue) return o;
1438
1630
  const x = g.sortValue;
1439
- return [...o].sort((z, P) => {
1440
- const j = x(z), F = x(P);
1441
- if (j == null && F == null) return 0;
1442
- if (j == null) return 1;
1443
- if (F == null) return -1;
1444
- const W = typeof j == "number" && typeof F == "number" ? j - F : String(j).localeCompare(String(F));
1445
- return p.direction === "asc" ? W : -W;
1631
+ return [...o].sort(($, B) => {
1632
+ const F = x($), E = x(B);
1633
+ if (F == null && E == null) return 0;
1634
+ if (F == null) return 1;
1635
+ if (E == null) return -1;
1636
+ const O = typeof F == "number" && typeof E == "number" ? F - E : String(F).localeCompare(String(E));
1637
+ return p.direction === "asc" ? O : -O;
1446
1638
  });
1447
- }, [o, p, r, a]), v = L(() => {
1639
+ }, [o, p, r, a]), v = K(() => {
1448
1640
  const g = /* @__PURE__ */ new Map();
1449
1641
  for (const x of r)
1450
- x.sortable && g.set(x.key, it(x, o));
1642
+ x.sortable && g.set(x.key, ft(x, o));
1451
1643
  return g;
1452
- }, [r, o]), w = f.length === 0;
1644
+ }, [r, o]), N = b.length === 0;
1453
1645
  return /* @__PURE__ */ e(
1454
1646
  "div",
1455
1647
  {
@@ -1472,7 +1664,7 @@ const Ht = C(function({
1472
1664
  children: /* @__PURE__ */ m("span", { className: "inline-flex items-center", children: [
1473
1665
  g.header,
1474
1666
  g.sortable && /* @__PURE__ */ e(
1475
- st,
1667
+ bt,
1476
1668
  {
1477
1669
  active: x,
1478
1670
  direction: x ? p.direction : void 0,
@@ -1484,14 +1676,14 @@ const Ht = C(function({
1484
1676
  g.key
1485
1677
  );
1486
1678
  }) }) }),
1487
- /* @__PURE__ */ e("tbody", { children: w ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
1679
+ /* @__PURE__ */ e("tbody", { children: N ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
1488
1680
  "td",
1489
1681
  {
1490
1682
  colSpan: r.length,
1491
1683
  className: "px-md py-xl text-center text-text-secondary",
1492
1684
  children: c ?? "No data available."
1493
1685
  }
1494
- ) }) : f.map((g, x) => /* @__PURE__ */ e(
1686
+ ) }) : b.map((g, x) => /* @__PURE__ */ e(
1495
1687
  "tr",
1496
1688
  {
1497
1689
  className: [
@@ -1499,16 +1691,16 @@ const Ht = C(function({
1499
1691
  s && x % 2 === 1 && "bg-bg-tertiary/50",
1500
1692
  "hover:bg-bg-tertiary/70"
1501
1693
  ].filter(Boolean).join(" "),
1502
- children: r.map((z) => /* @__PURE__ */ e(
1694
+ children: r.map(($) => /* @__PURE__ */ e(
1503
1695
  "td",
1504
1696
  {
1505
1697
  className: [
1506
1698
  "px-md py-sm text-text-primary",
1507
- z.cellClassName
1699
+ $.cellClassName
1508
1700
  ].filter(Boolean).join(" "),
1509
- children: z.cell(g, x)
1701
+ children: $.cell(g, x)
1510
1702
  },
1511
- z.key
1703
+ $.key
1512
1704
  ))
1513
1705
  },
1514
1706
  n(g, x)
@@ -1516,33 +1708,33 @@ const Ht = C(function({
1516
1708
  ] })
1517
1709
  }
1518
1710
  );
1519
- }), at = {
1711
+ }), xt = {
1520
1712
  success: {
1521
1713
  bg: "bg-success-bg",
1522
1714
  border: "border-success/30",
1523
1715
  text: "text-success",
1524
- icon: ne
1716
+ icon: le
1525
1717
  },
1526
1718
  warning: {
1527
1719
  bg: "bg-warning-bg",
1528
1720
  border: "border-warning/30",
1529
1721
  text: "text-warning",
1530
- icon: T
1722
+ icon: q
1531
1723
  },
1532
1724
  error: {
1533
1725
  bg: "bg-error-bg",
1534
1726
  border: "border-error/30",
1535
1727
  text: "text-error",
1536
- icon: re
1728
+ icon: ae
1537
1729
  },
1538
1730
  info: {
1539
1731
  bg: "bg-info-bg",
1540
1732
  border: "border-info/30",
1541
1733
  text: "text-info",
1542
- icon: te
1734
+ icon: se
1543
1735
  }
1544
1736
  };
1545
- function qt({
1737
+ function tr({
1546
1738
  variant: t,
1547
1739
  title: r,
1548
1740
  children: o,
@@ -1550,7 +1742,7 @@ function qt({
1550
1742
  onDismiss: s,
1551
1743
  className: i = ""
1552
1744
  }) {
1553
- const [a, c] = N(!0), { bg: d, border: l, text: u, icon: b } = at[t];
1745
+ const [a, c] = C(!0), { bg: d, border: l, text: u, icon: f } = xt[t];
1554
1746
  if (!a) return null;
1555
1747
  const h = () => {
1556
1748
  c(!1), s?.();
@@ -1561,7 +1753,7 @@ function qt({
1561
1753
  role: "alert",
1562
1754
  className: `flex gap-3 rounded-md border p-md ${d} ${l} ${i}`,
1563
1755
  children: [
1564
- /* @__PURE__ */ e(b, { size: 20, className: `shrink-0 mt-0.5 ${u}`, "aria-hidden": !0 }),
1756
+ /* @__PURE__ */ e(f, { size: 20, className: `shrink-0 mt-0.5 ${u}`, "aria-hidden": !0 }),
1565
1757
  /* @__PURE__ */ m("div", { className: "flex-1 min-w-0", children: [
1566
1758
  r && /* @__PURE__ */ e("p", { className: `font-semibold text-body ${u}`, children: r }),
1567
1759
  /* @__PURE__ */ e("div", { className: "text-body text-text-primary", children: o })
@@ -1573,19 +1765,19 @@ function qt({
1573
1765
  onClick: h,
1574
1766
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1575
1767
  "aria-label": "Dismiss alert",
1576
- children: /* @__PURE__ */ e(M, { size: 16 })
1768
+ children: /* @__PURE__ */ e(U, { size: 16 })
1577
1769
  }
1578
1770
  )
1579
1771
  ]
1580
1772
  }
1581
1773
  );
1582
1774
  }
1583
- const lt = {
1775
+ const gt = {
1584
1776
  sm: "max-w-[24rem]",
1585
1777
  md: "max-w-[32rem]",
1586
1778
  lg: "max-w-[42rem]"
1587
1779
  };
1588
- function ct({
1780
+ function ht({
1589
1781
  open: t,
1590
1782
  onClose: r,
1591
1783
  title: o,
@@ -1595,13 +1787,13 @@ function ct({
1595
1787
  className: a = ""
1596
1788
  }) {
1597
1789
  const c = D(null);
1598
- $(() => {
1790
+ I(() => {
1599
1791
  if (!t) return;
1600
1792
  const l = document.activeElement;
1601
1793
  return c.current?.focus(), () => {
1602
1794
  l?.focus();
1603
1795
  };
1604
- }, [t]), $(() => {
1796
+ }, [t]), I(() => {
1605
1797
  if (!t) return;
1606
1798
  const l = document.body.style.overflow;
1607
1799
  return document.body.style.overflow = "hidden", () => {
@@ -1618,11 +1810,11 @@ function ct({
1618
1810
  'a[href], button:not([disabled]), textarea, input:not([disabled]), select, [tabindex]:not([tabindex="-1"])'
1619
1811
  );
1620
1812
  if (u.length === 0) return;
1621
- const b = u[0], h = u[u.length - 1];
1622
- l.shiftKey && document.activeElement === b ? (l.preventDefault(), h.focus()) : !l.shiftKey && document.activeElement === h && (l.preventDefault(), b.focus());
1813
+ const f = u[0], h = u[u.length - 1];
1814
+ l.shiftKey && document.activeElement === f ? (l.preventDefault(), h.focus()) : !l.shiftKey && document.activeElement === h && (l.preventDefault(), f.focus());
1623
1815
  }
1624
1816
  };
1625
- return t ? Ne(
1817
+ return t ? Ie(
1626
1818
  /* @__PURE__ */ m(
1627
1819
  "div",
1628
1820
  {
@@ -1658,7 +1850,7 @@ function ct({
1658
1850
  {
1659
1851
  ref: c,
1660
1852
  tabIndex: -1,
1661
- className: `relative z-10 flex flex-col w-full ${lt[n]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${a}`,
1853
+ className: `relative z-10 flex flex-col w-full ${gt[n]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${a}`,
1662
1854
  children: [
1663
1855
  o && /* @__PURE__ */ m("div", { className: "flex items-center justify-between px-lg py-md border-b border-border", children: [
1664
1856
  /* @__PURE__ */ e(
@@ -1676,7 +1868,7 @@ function ct({
1676
1868
  onClick: r,
1677
1869
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1678
1870
  "aria-label": "Close dialog",
1679
- children: /* @__PURE__ */ e(M, { size: 18 })
1871
+ children: /* @__PURE__ */ e(U, { size: 18 })
1680
1872
  }
1681
1873
  )
1682
1874
  ] }),
@@ -1693,7 +1885,7 @@ function ct({
1693
1885
  document.body
1694
1886
  ) : null;
1695
1887
  }
1696
- function Kt({
1888
+ function rr({
1697
1889
  open: t,
1698
1890
  onCancel: r,
1699
1891
  onConfirm: o,
@@ -1704,10 +1896,10 @@ function Kt({
1704
1896
  danger: c = !1,
1705
1897
  size: d = "sm"
1706
1898
  }) {
1707
- return /* @__PURE__ */ m(ct, { open: t, onClose: r, title: n, size: d, children: [
1899
+ return /* @__PURE__ */ m(ht, { open: t, onClose: r, title: n, size: d, children: [
1708
1900
  /* @__PURE__ */ m("div", { className: "flex gap-3", children: [
1709
1901
  c && /* @__PURE__ */ e(
1710
- T,
1902
+ q,
1711
1903
  {
1712
1904
  size: 22,
1713
1905
  className: "shrink-0 mt-0.5 text-error",
@@ -1738,46 +1930,46 @@ function Kt({
1738
1930
  ] })
1739
1931
  ] });
1740
1932
  }
1741
- const de = S(null);
1742
- function Gt() {
1743
- const t = A(de);
1933
+ const be = R(null);
1934
+ function nr() {
1935
+ const t = M(be);
1744
1936
  if (!t) throw new Error("useToast must be used within a <ToastProvider>");
1745
1937
  return t;
1746
1938
  }
1747
- const dt = {
1939
+ const yt = {
1748
1940
  success: {
1749
1941
  bg: "bg-bg-primary",
1750
1942
  accent: "bg-success",
1751
1943
  text: "text-success",
1752
- icon: ne
1944
+ icon: le
1753
1945
  },
1754
1946
  warning: {
1755
1947
  bg: "bg-bg-primary",
1756
1948
  accent: "bg-warning",
1757
1949
  text: "text-warning",
1758
- icon: T
1950
+ icon: q
1759
1951
  },
1760
1952
  error: {
1761
1953
  bg: "bg-bg-primary",
1762
1954
  accent: "bg-error",
1763
1955
  text: "text-error",
1764
- icon: re
1956
+ icon: ae
1765
1957
  },
1766
1958
  info: {
1767
1959
  bg: "bg-bg-primary",
1768
1960
  accent: "bg-info",
1769
1961
  text: "text-info",
1770
- icon: te
1962
+ icon: se
1771
1963
  }
1772
1964
  };
1773
- function mt({ toast: t, onRemove: r }) {
1774
- const { variant: o, title: n, message: s, duration: i = 5e3 } = t, { bg: a, accent: c, text: d, icon: l } = dt[o], [u, b] = N(100), h = D(0), p = D(0);
1775
- return $(() => {
1965
+ function vt({ toast: t, onRemove: r }) {
1966
+ const { variant: o, title: n, message: s, duration: i = 5e3 } = t, { bg: a, accent: c, text: d, icon: l } = yt[o], [u, f] = C(100), h = D(0), p = D(0);
1967
+ return I(() => {
1776
1968
  if (i <= 0) return;
1777
1969
  h.current = performance.now();
1778
- const y = (f) => {
1779
- const v = f - h.current, w = Math.max(0, 100 - v / i * 100);
1780
- if (b(w), w <= 0) {
1970
+ const y = (b) => {
1971
+ const v = b - h.current, N = Math.max(0, 100 - v / i * 100);
1972
+ if (f(N), N <= 0) {
1781
1973
  r(t.id);
1782
1974
  return;
1783
1975
  }
@@ -1804,7 +1996,7 @@ function mt({ toast: t, onRemove: r }) {
1804
1996
  onClick: () => r(t.id),
1805
1997
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1806
1998
  "aria-label": "Dismiss notification",
1807
- children: /* @__PURE__ */ e(M, { size: 14 })
1999
+ children: /* @__PURE__ */ e(U, { size: 14 })
1808
2000
  }
1809
2001
  )
1810
2002
  ] }),
@@ -1819,80 +2011,82 @@ function mt({ toast: t, onRemove: r }) {
1819
2011
  }
1820
2012
  );
1821
2013
  }
1822
- let ut = 0;
1823
- function Xt({ children: t }) {
1824
- const [r, o] = N([]), n = k((i) => {
1825
- const a = `toast-${++ut}`;
2014
+ let Nt = 0;
2015
+ function or({ children: t }) {
2016
+ const [r, o] = C([]), n = k((i) => {
2017
+ const a = `toast-${++Nt}`;
1826
2018
  return o((c) => [...c, { ...i, id: a }]), a;
1827
2019
  }, []), s = k((i) => {
1828
2020
  o((a) => a.filter((c) => c.id !== i));
1829
2021
  }, []);
1830
- return /* @__PURE__ */ m(de, { value: { addToast: n, removeToast: s }, children: [
2022
+ return /* @__PURE__ */ m(be, { value: { addToast: n, removeToast: s }, children: [
1831
2023
  t,
1832
2024
  /* @__PURE__ */ e(
1833
2025
  "div",
1834
2026
  {
1835
2027
  "aria-label": "Notifications",
1836
2028
  className: "fixed bottom-lg right-lg z-50 flex flex-col-reverse gap-sm pointer-events-none",
1837
- children: r.map((i) => /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(mt, { toast: i, onRemove: s }) }, i.id))
2029
+ children: r.map((i) => /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(vt, { toast: i, onRemove: s }) }, i.id))
1838
2030
  }
1839
2031
  )
1840
2032
  ] });
1841
2033
  }
1842
- const me = S(null), bt = {
2034
+ const xe = R(null), wt = {
1843
2035
  name: "Alice Martin",
1844
2036
  email: "alice.martin@epfl.ch",
1845
2037
  role: "admin"
1846
2038
  };
1847
- function Yt({ initialUser: t = bt, children: r }) {
1848
- const [o, n] = N(t), s = (a) => n((c) => ({ ...c, role: a })), i = L(() => ({ user: o, setRole: s }), [o]);
1849
- return /* @__PURE__ */ e(me.Provider, { value: i, children: r });
2039
+ function ir({ initialUser: t = wt, children: r }) {
2040
+ const [o, n] = C(t), s = (a) => n((c) => ({ ...c, role: a })), i = K(() => ({ user: o, setRole: s }), [o]);
2041
+ return /* @__PURE__ */ e(xe.Provider, { value: i, children: r });
1850
2042
  }
1851
- function _t() {
1852
- const t = A(me);
2043
+ function sr() {
2044
+ const t = M(xe);
1853
2045
  if (!t) throw new Error("useAuth must be used within an AuthProvider");
1854
2046
  return t;
1855
2047
  }
1856
2048
  export {
1857
- qt as Alert,
1858
- Yt as AuthProvider,
1859
- wt as Avatar,
1860
- Nt as Badge,
1861
- nt as BurgerDrawer,
1862
- kt as Button,
1863
- Ot as Card,
1864
- Ct as Checkbox,
1865
- Kt as ConfirmDialog,
1866
- Vt as DescriptionList,
1867
- ct as Dialog,
1868
- jt as DropdownDivider,
1869
- Ft as DropdownItem,
1870
- Et as DropdownMenu,
1871
- Ut as EmptyState,
1872
- Te as IconButton,
1873
- zt as Input,
1874
- Lt as LanguageSwitcher,
1875
- Mt as PageShell,
1876
- St as Popover,
1877
- He as RadioGroup,
1878
- $t as Select,
1879
- tt as SideNav,
1880
- se as Spinner,
1881
- Dt as Switch,
1882
- At as TabPanel,
1883
- Ht as Table,
1884
- Pt as Tabs,
1885
- It as Textarea,
1886
- Tt as ThemeToggle,
1887
- Xt as ToastProvider,
1888
- Bt as Tooltip,
1889
- et as TopNav,
1890
- Q as epflSelectClassNames,
1891
- Ke as epflSelectTheme,
1892
- Rt as initTheme,
1893
- _t as useAuth,
1894
- Xe as useLanguage,
1895
- Ze as useTheme,
1896
- Gt as useToast
2049
+ tr as Alert,
2050
+ ir as AuthProvider,
2051
+ Ft as Avatar,
2052
+ Et as Badge,
2053
+ ut as BurgerDrawer,
2054
+ St as Button,
2055
+ Jt as Card,
2056
+ Pt as Checkbox,
2057
+ rr as ConfirmDialog,
2058
+ Qt as DescriptionList,
2059
+ ht as Dialog,
2060
+ Ot as DropdownDivider,
2061
+ Vt as DropdownItem,
2062
+ Ut as DropdownMenu,
2063
+ Zt as EmptyState,
2064
+ At as FileUpload,
2065
+ He as IconButton,
2066
+ Lt as Input,
2067
+ Xt as LanguageSwitcher,
2068
+ Wt as PageShell,
2069
+ Kt as Popover,
2070
+ Bt as ProgressBar,
2071
+ Qe as RadioGroup,
2072
+ Tt as Select,
2073
+ dt as SideNav,
2074
+ me as Spinner,
2075
+ Rt as Switch,
2076
+ Ht as TabPanel,
2077
+ er as Table,
2078
+ qt as Tabs,
2079
+ Mt as Textarea,
2080
+ _t as ThemeToggle,
2081
+ or as ToastProvider,
2082
+ Gt as Tooltip,
2083
+ ct as TopNav,
2084
+ ne as epflSelectClassNames,
2085
+ et as epflSelectTheme,
2086
+ Yt as initTheme,
2087
+ sr as useAuth,
2088
+ rt as useLanguage,
2089
+ lt as useTheme,
2090
+ nr as useToast
1897
2091
  };
1898
2092
  //# sourceMappingURL=poesis.js.map