@epfl-sti/poesis 0.1.4 → 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 R, 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: i = "", ...s }) {
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,10 +25,10 @@ function wt({ src: t, name: r, size: o = "md", alt: n, className: i = "", ...s }
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],
29
- i
28
+ Be[o],
29
+ s
30
30
  ].join(" "),
31
- ...s,
31
+ ...i,
32
32
  children: d ? /* @__PURE__ */ e(
33
33
  "img",
34
34
  {
@@ -37,30 +37,30 @@ function wt({ src: t, name: r, size: o = "md", alt: n, className: i = "", ...s }
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, ...i }) {
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}`,
63
- ...i
62
+ className: `inline-block size-2.5 rounded-full ${Te[t]} ${o}`,
63
+ ...s
64
64
  }
65
65
  ) : /* @__PURE__ */ e(
66
66
  "span",
@@ -68,27 +68,27 @@ function Nt({ color: t = "default", dot: r, className: o = "", children: n, ...i
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
- ...i,
74
+ ...s,
75
75
  children: n
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,37 +116,37 @@ 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,
136
- disabled: i,
137
- iconLeft: s,
136
+ disabled: s,
137
+ iconLeft: i,
138
138
  iconRight: a,
139
139
  className: c = "",
140
140
  children: d,
141
141
  ...l
142
142
  }, u) {
143
- const b = i || 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,31 +154,31 @@ 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" }) : s,
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
- }, Te = {
176
+ }, Ke = {
177
177
  sm: "size-7 text-small",
178
178
  md: "size-9 text-body",
179
179
  lg: "size-11 text-body"
180
- }, Re = C(function({ variant: r = "ghost", size: o = "md", loading: n = !1, disabled: i, icon: s, className: a = "", ...c }, d) {
181
- const l = i || n;
180
+ }, He = z(function({ variant: r = "ghost", size: o = "md", loading: n = !1, disabled: s, icon: i, className: a = "", ...c }, d) {
181
+ const l = s || n;
182
182
  return /* @__PURE__ */ e(
183
183
  "button",
184
184
  {
@@ -192,45 +192,232 @@ 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
- Te[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" }) : s
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,
209
- error: i,
210
- className: s = "",
396
+ error: s,
397
+ className: i = "",
211
398
  id: a,
212
399
  disabled: c,
213
400
  ...d
214
401
  }, l) {
215
- const u = I(), b = a ?? u, h = `${b}-helper`, p = !!i, 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
- }, [o]), /* @__PURE__ */ m("div", { className: `flex flex-col gap-1 ${s}`, children: [
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,
233
- "aria-describedby": n || i ? h : void 0,
420
+ "aria-describedby": n || s ? h : void 0,
234
421
  className: [
235
422
  "mt-0.5 size-4 shrink-0 cursor-pointer rounded-sm border appearance-none",
236
423
  "bg-bg-primary transition-colors",
@@ -250,88 +437,88 @@ 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
  }
257
444
  )
258
445
  ] }),
259
- (n || i) && /* @__PURE__ */ e(
446
+ (n || s) && /* @__PURE__ */ e(
260
447
  "p",
261
448
  {
262
449
  id: h,
263
450
  className: `text-caption pl-6 ${p ? "text-error" : "text-text-secondary"}`,
264
- children: i ?? n
451
+ children: s ?? n
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,
288
- leftIcon: i,
289
- rightIcon: s,
475
+ leftIcon: s,
476
+ rightIcon: i,
290
477
  inputSize: a = "md",
291
478
  className: c = "",
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
- i && /* @__PURE__ */ e(
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
- children: i
492
+ children: s
306
493
  }
307
494
  ),
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
- i ? Oe[a] : "",
324
- s ? 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
  }
328
515
  ),
329
- s && /* @__PURE__ */ e(
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
- children: s
521
+ children: i
335
522
  }
336
523
  )
337
524
  ] }),
@@ -339,35 +526,35 @@ 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,
357
544
  label: n,
358
- helperText: i,
359
- error: s,
545
+ helperText: s,
546
+ error: i,
360
547
  orientation: a = "vertical",
361
548
  disabled: c = !1,
362
549
  children: d,
363
550
  className: l = ""
364
551
  }) {
365
- const u = I(), b = t ?? u, p = `${`${b}-group`}-helper`, y = !!s;
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}`,
370
- "aria-describedby": i || s ? p : void 0,
557
+ "aria-describedby": s || i ? p : void 0,
371
558
  disabled: c,
372
559
  children: [
373
560
  n && /* @__PURE__ */ e("legend", { className: "text-small font-medium text-text-primary mb-1", children: n }),
@@ -379,35 +566,35 @@ function He({
379
566
  children: d
380
567
  }
381
568
  ),
382
- (i || s) && /* @__PURE__ */ e(
569
+ (s || i) && /* @__PURE__ */ e(
383
570
  "p",
384
571
  {
385
572
  id: p,
386
573
  className: `text-caption ${y ? "text-error" : "text-text-secondary"}`,
387
- children: s ?? i
574
+ children: i ?? s
388
575
  }
389
576
  )
390
577
  ]
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
- name: i,
397
- value: s,
583
+ name: s,
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",
405
592
  {
406
593
  id: l,
407
594
  type: "radio",
408
- name: i,
595
+ name: s,
409
596
  value: t,
410
- checked: s !== void 0 ? s === t : void 0,
597
+ checked: i !== void 0 ? i === t : void 0,
411
598
  disabled: u,
412
599
  onChange: () => a?.(t),
413
600
  className: [
@@ -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,36 +654,36 @@ 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 = "", ...i }) {
477
- const s = I(), a = i.inputId ?? s, 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,
485
672
  menuPortalTarget: document.body,
486
673
  styles: {
487
674
  menuPortal: (l) => ({ ...l, zIndex: 50 }),
488
- ...i.styles
675
+ ...s.styles
489
676
  },
490
677
  classNames: {
491
- ...Q,
678
+ ...ne,
492
679
  control: (l) => {
493
- const u = Q.control?.(l) ?? "";
680
+ const u = ne.control?.(l) ?? "";
494
681
  return d ? `${u} !border-error !focus:ring-error` : u;
495
682
  }
496
683
  },
497
684
  "aria-invalid": d || void 0,
498
685
  "aria-errormessage": d ? c : void 0,
499
- ...i
686
+ ...s
500
687
  }
501
688
  ),
502
689
  (r || o) && /* @__PURE__ */ e(
@@ -509,8 +696,8 @@ function $t({ label: t, helperText: r, error: o, className: n = "", ...i }) {
509
696
  )
510
697
  ] });
511
698
  }
512
- const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disabled: s, ...a }, c) {
513
- const d = I(), l = i ?? 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`;
514
701
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1 ${n}`, children: [
515
702
  /* @__PURE__ */ m("div", { className: "flex items-center gap-3", children: [
516
703
  /* @__PURE__ */ m("div", { className: "relative inline-flex items-center", children: [
@@ -521,7 +708,7 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disab
521
708
  id: l,
522
709
  type: "checkbox",
523
710
  role: "switch",
524
- disabled: s,
711
+ disabled: i,
525
712
  "aria-describedby": o ? u : void 0,
526
713
  className: "peer sr-only",
527
714
  ...a
@@ -537,7 +724,7 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disab
537
724
  "peer-checked:bg-primary",
538
725
  "peer-focus-visible:ring-2 peer-focus-visible:ring-primary peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-bg-primary",
539
726
  "peer-disabled:opacity-50 peer-disabled:cursor-not-allowed",
540
- s ? "cursor-not-allowed" : "cursor-pointer",
727
+ i ? "cursor-not-allowed" : "cursor-pointer",
541
728
  // Thumb
542
729
  "after:content-[''] after:absolute after:top-0.5 after:left-0.5",
543
730
  "after:size-5 after:rounded-full after:bg-white after:shadow-sm",
@@ -551,37 +738,37 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disab
551
738
  "label",
552
739
  {
553
740
  htmlFor: l,
554
- className: `text-body select-none ${s ? "text-text-muted cursor-not-allowed" : "text-text-primary cursor-pointer"}`,
741
+ className: `text-body select-none ${i ? "text-text-muted cursor-not-allowed" : "text-text-primary cursor-pointer"}`,
555
742
  children: r
556
743
  }
557
744
  )
558
745
  ] }),
559
746
  o && /* @__PURE__ */ e("p", { id: u, className: "text-caption text-text-secondary pl-14", children: o })
560
747
  ] });
561
- }), It = C(function({
748
+ }), Mt = z(function({
562
749
  label: r,
563
750
  helperText: o,
564
751
  error: n,
565
- autoGrow: i = !1,
566
- minRows: s = 3,
752
+ autoGrow: s = !1,
753
+ minRows: i = 3,
567
754
  className: a = "",
568
755
  id: c,
569
756
  disabled: d,
570
757
  onChange: l,
571
758
  ...u
572
- }, b) {
573
- 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(() => {
574
761
  const x = v.current;
575
- !x || !i || (x.style.height = "auto", x.style.height = `${x.scrollHeight}px`);
576
- }, [i]);
577
- $(() => {
578
- w();
579
- }, [w, u.value, u.defaultValue]);
762
+ !x || !s || (x.style.height = "auto", x.style.height = `${x.scrollHeight}px`);
763
+ }, [s]);
764
+ I(() => {
765
+ N();
766
+ }, [N, u.value, u.defaultValue]);
580
767
  const g = k(
581
768
  (x) => {
582
- 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);
583
770
  },
584
- [b]
771
+ [f]
585
772
  );
586
773
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${a}`, children: [
587
774
  r && /* @__PURE__ */ e("label", { htmlFor: p, className: "text-small font-medium text-text-primary", children: r }),
@@ -590,20 +777,20 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disab
590
777
  {
591
778
  ref: g,
592
779
  id: p,
593
- rows: s,
780
+ rows: i,
594
781
  disabled: d,
595
- "aria-invalid": f || void 0,
782
+ "aria-invalid": b || void 0,
596
783
  "aria-describedby": o || n ? y : void 0,
597
784
  onChange: (x) => {
598
- l?.(x), w();
785
+ l?.(x), N();
599
786
  },
600
787
  className: [
601
788
  "w-full rounded-md border bg-bg-primary text-text-primary placeholder:text-text-muted",
602
789
  "px-3 py-2 text-body outline-none transition-colors",
603
790
  "focus:border-primary focus:ring-1 focus:ring-primary",
604
791
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
605
- i ? "resize-none overflow-hidden" : "resize-y",
606
- f ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong"
792
+ s ? "resize-none overflow-hidden" : "resize-y",
793
+ b ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong"
607
794
  ].join(" "),
608
795
  ...u
609
796
  }
@@ -612,12 +799,12 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disab
612
799
  "p",
613
800
  {
614
801
  id: y,
615
- className: `text-caption ${f ? "text-error" : "text-text-secondary"}`,
802
+ className: `text-caption ${b ? "text-error" : "text-text-secondary"}`,
616
803
  children: n ?? o
617
804
  }
618
805
  )
619
806
  ] });
620
- }), le = S({
807
+ }), pe = R({
621
808
  close: () => {
622
809
  },
623
810
  getItemProps: () => ({}),
@@ -625,26 +812,26 @@ const Dt = C(function({ label: r, helperText: o, className: n = "", id: i, disab
625
812
  setActiveIndex: () => {
626
813
  }
627
814
  });
628
- function jt() {
815
+ function Ot() {
629
816
  return /* @__PURE__ */ e("div", { role: "separator", className: "my-1 border-t border-border" });
630
817
  }
631
- const Ft = C(function({ children: r, icon: o, danger: n = !1, disabled: i = !1, onClick: s, className: a = "", ...c }, d) {
632
- 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);
633
820
  return /* @__PURE__ */ m(
634
821
  "button",
635
822
  {
636
823
  ref: d,
637
824
  type: "button",
638
825
  role: "menuitem",
639
- disabled: i,
826
+ disabled: s,
640
827
  onClick: () => {
641
- i || (s?.(), l());
828
+ s || (i?.(), l());
642
829
  },
643
830
  className: [
644
831
  "flex w-full items-center gap-2 px-3 py-2 text-small rounded-md",
645
832
  "text-left transition-colors outline-none cursor-pointer",
646
833
  n ? "text-error hover:bg-error-bg focus:bg-error-bg" : "text-text-primary hover:bg-bg-tertiary focus:bg-bg-tertiary",
647
- i && "opacity-50 pointer-events-none",
834
+ s && "opacity-50 pointer-events-none",
648
835
  a
649
836
  ].filter(Boolean).join(" "),
650
837
  ...c,
@@ -655,32 +842,32 @@ const Ft = C(function({ children: r, icon: o, danger: n = !1, disabled: i = !1,
655
842
  }
656
843
  );
657
844
  });
658
- function Et({
845
+ function Ut({
659
846
  trigger: t,
660
847
  children: r,
661
848
  placement: o = "bottom-start",
662
849
  className: n = ""
663
850
  }) {
664
- const [i, s] = N(!1), [a, c] = N(null), d = D([]), { refs: l, floatingStyles: u, context: b } = O({
665
- open: i,
666
- onOpenChange: s,
851
+ const [s, i] = C(!1), [a, c] = C(null), d = D([]), { refs: l, floatingStyles: u, context: f } = G({
852
+ open: s,
853
+ onOpenChange: i,
667
854
  placement: o,
668
- middleware: [U(4), H(), q({ padding: 8 })],
669
- whileElementsMounted: V
670
- }), 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, {
671
858
  listRef: d,
672
859
  activeIndex: a,
673
860
  onNavigate: c,
674
861
  loop: !0
675
- }), { getReferenceProps: v, getFloatingProps: w, getItemProps: g } = X([
862
+ }), { getReferenceProps: v, getFloatingProps: N, getItemProps: g } = Z([
676
863
  h,
677
864
  p,
678
865
  y,
679
- f
680
- ]), x = k(() => s(!1), []);
681
- return /* @__PURE__ */ m(B, { children: [
866
+ b
867
+ ]), x = k(() => i(!1), []);
868
+ return /* @__PURE__ */ m(V, { children: [
682
869
  /* @__PURE__ */ e("span", { ref: l.setReference, className: "inline-flex", ...v(), children: t }),
683
- i && /* @__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(
684
871
  "div",
685
872
  {
686
873
  ref: l.setFloating,
@@ -690,9 +877,9 @@ function Et({
690
877
  "bg-bg-primary shadow-lg animate-floating-in",
691
878
  n
692
879
  ].join(" "),
693
- ...w(),
880
+ ...N(),
694
881
  children: /* @__PURE__ */ e(
695
- le.Provider,
882
+ pe.Provider,
696
883
  {
697
884
  value: { close: x, getItemProps: g, activeIndex: a, setActiveIndex: c },
698
885
  children: r
@@ -702,32 +889,32 @@ function Et({
702
889
  ) }) })
703
890
  ] });
704
891
  }
705
- function St({
892
+ function Kt({
706
893
  trigger: t,
707
894
  children: r,
708
895
  placement: o = "bottom",
709
896
  open: n,
710
- onOpenChange: i,
711
- className: s = ""
897
+ onOpenChange: s,
898
+ className: i = ""
712
899
  }) {
713
- const [a, c] = N(!1), d = n !== void 0, l = d ? n : a, u = d ? (x) => i?.(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({
714
901
  open: l,
715
902
  onOpenChange: u,
716
903
  placement: o,
717
- middleware: [U(8), H(), q({ padding: 8 })],
718
- whileElementsMounted: V
719
- }), y = oe(p), f = K(p), v = G(p), { getReferenceProps: w, getFloatingProps: g } = X([y, f, v]);
720
- return /* @__PURE__ */ m(B, { children: [
721
- /* @__PURE__ */ e("span", { ref: b.setReference, className: "inline-flex", ...w(), children: t }),
722
- 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(
723
910
  "div",
724
911
  {
725
- ref: b.setFloating,
912
+ ref: f.setFloating,
726
913
  style: h,
727
914
  className: [
728
915
  "z-50 rounded-lg border border-border p-md",
729
916
  "bg-bg-primary shadow-lg animate-floating-in",
730
- s
917
+ i
731
918
  ].join(" "),
732
919
  ...g(),
733
920
  children: r
@@ -735,67 +922,67 @@ function St({
735
922
  ) }) })
736
923
  ] });
737
924
  }
738
- const ce = S({
925
+ const fe = R({
739
926
  activeValue: "",
740
927
  idPrefix: ""
741
928
  });
742
- function At({ value: t, children: r, className: o = "" }) {
743
- const { activeValue: n, idPrefix: i } = A(ce), s = n === t;
929
+ function Ht({ value: t, children: r, className: o = "" }) {
930
+ const { activeValue: n, idPrefix: s } = M(fe), i = n === t;
744
931
  return /* @__PURE__ */ e(
745
932
  "div",
746
933
  {
747
- id: `${i}-panel-${t}`,
934
+ id: `${s}-panel-${t}`,
748
935
  role: "tabpanel",
749
- "aria-labelledby": `${i}-tab-${t}`,
750
- hidden: !s,
936
+ "aria-labelledby": `${s}-tab-${t}`,
937
+ hidden: !i,
751
938
  tabIndex: 0,
752
939
  className: o,
753
- children: s && r
940
+ children: i && r
754
941
  }
755
942
  );
756
943
  }
757
- function Pt({
944
+ function qt({
758
945
  items: t,
759
946
  value: r,
760
947
  defaultValue: o,
761
948
  onChange: n,
762
- children: i,
763
- className: s = ""
949
+ children: s,
950
+ className: i = ""
764
951
  }) {
765
- const a = I().replace(/:/g, ""), c = D(null), d = r !== void 0, [l, u] = N(
766
- () => o ?? t.find((f) => !f.disabled)?.value ?? t[0]?.value ?? ""
767
- ), b = d ? r : l, h = k(
768
- (f) => {
769
- 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);
770
957
  },
771
958
  [d, n]
772
- ), p = t.filter((f) => !f.disabled), y = (f) => {
773
- const v = p.findIndex((x) => x.value === b);
774
- let w = v;
775
- 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) {
776
963
  case "ArrowRight":
777
964
  case "ArrowDown":
778
- f.preventDefault(), w = (v + 1) % p.length;
965
+ b.preventDefault(), N = (v + 1) % p.length;
779
966
  break;
780
967
  case "ArrowLeft":
781
968
  case "ArrowUp":
782
- f.preventDefault(), w = (v - 1 + p.length) % p.length;
969
+ b.preventDefault(), N = (v - 1 + p.length) % p.length;
783
970
  break;
784
971
  case "Home":
785
- f.preventDefault(), w = 0;
972
+ b.preventDefault(), N = 0;
786
973
  break;
787
974
  case "End":
788
- f.preventDefault(), w = p.length - 1;
975
+ b.preventDefault(), N = p.length - 1;
789
976
  break;
790
977
  default:
791
978
  return;
792
979
  }
793
- const g = p[w];
980
+ const g = p[N];
794
981
  g && (h(g.value), c.current?.querySelector(
795
982
  `[data-tab-value="${g.value}"]`
796
983
  )?.focus());
797
984
  };
798
- return /* @__PURE__ */ e(ce.Provider, { value: { activeValue: b, idPrefix: a }, children: /* @__PURE__ */ m("div", { className: s, children: [
985
+ return /* @__PURE__ */ e(fe.Provider, { value: { activeValue: f, idPrefix: a }, children: /* @__PURE__ */ m("div", { className: i, children: [
799
986
  /* @__PURE__ */ e(
800
987
  "div",
801
988
  {
@@ -804,75 +991,75 @@ function Pt({
804
991
  "aria-orientation": "horizontal",
805
992
  onKeyDown: y,
806
993
  className: "flex border-b border-border",
807
- children: t.map((f) => {
808
- const v = f.value === b;
994
+ children: t.map((b) => {
995
+ const v = b.value === f;
809
996
  return /* @__PURE__ */ m(
810
997
  "button",
811
998
  {
812
- id: `${a}-tab-${f.value}`,
999
+ id: `${a}-tab-${b.value}`,
813
1000
  role: "tab",
814
1001
  type: "button",
815
- "data-tab-value": f.value,
1002
+ "data-tab-value": b.value,
816
1003
  "aria-selected": v,
817
- "aria-controls": `${a}-panel-${f.value}`,
1004
+ "aria-controls": `${a}-panel-${b.value}`,
818
1005
  tabIndex: v ? 0 : -1,
819
- disabled: f.disabled,
820
- onClick: () => h(f.value),
1006
+ disabled: b.disabled,
1007
+ onClick: () => h(b.value),
821
1008
  className: [
822
1009
  "inline-flex items-center gap-1.5 px-4 py-2.5 text-small font-medium",
823
1010
  "border-b-2 -mb-px transition-colors outline-none cursor-pointer",
824
1011
  "focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
825
1012
  v ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-strong",
826
- f.disabled && "opacity-50 pointer-events-none"
1013
+ b.disabled && "opacity-50 pointer-events-none"
827
1014
  ].filter(Boolean).join(" "),
828
1015
  children: [
829
- f.icon && /* @__PURE__ */ e("span", { className: "shrink-0 size-4", children: f.icon }),
830
- f.label
1016
+ b.icon && /* @__PURE__ */ e("span", { className: "shrink-0 size-4", children: b.icon }),
1017
+ b.label
831
1018
  ]
832
1019
  },
833
- f.value
1020
+ b.value
834
1021
  );
835
1022
  })
836
1023
  }
837
1024
  ),
838
- i
1025
+ s
839
1026
  ] }) });
840
1027
  }
841
- const Ge = {
1028
+ const tt = {
842
1029
  top: "bottom",
843
1030
  bottom: "top",
844
1031
  left: "right",
845
1032
  right: "left"
846
1033
  };
847
- function Bt({
1034
+ function Gt({
848
1035
  children: t,
849
1036
  content: r,
850
1037
  placement: o = "top",
851
1038
  delay: n = 200,
852
- className: i = ""
1039
+ className: s = ""
853
1040
  }) {
854
- const [s, a] = N(!1), c = D(null), {
1041
+ const [i, a] = C(!1), c = D(null), {
855
1042
  refs: d,
856
1043
  floatingStyles: l,
857
1044
  context: u,
858
- middlewareData: b,
1045
+ middlewareData: f,
859
1046
  placement: h
860
- } = O({
861
- open: s,
1047
+ } = G({
1048
+ open: i,
862
1049
  onOpenChange: a,
863
1050
  placement: o,
864
1051
  middleware: [
865
- U(8),
866
- H(),
867
- q({ padding: 8 }),
1052
+ Y(8),
1053
+ _(),
1054
+ W({ padding: 8 }),
868
1055
  // eslint-disable-next-line react-hooks/refs -- floating-ui arrow middleware needs ref object
869
- Ce({ element: c })
1056
+ Fe({ element: c })
870
1057
  ],
871
- whileElementsMounted: V
872
- }), 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;
873
- return /* @__PURE__ */ m(B, { children: [
874
- /* @__PURE__ */ e("span", { ref: d.setReference, className: "inline-flex", ...w(), children: t }),
875
- s && 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(
876
1063
  "div",
877
1064
  {
878
1065
  ref: d.setFloating,
@@ -882,7 +1069,7 @@ function Bt({
882
1069
  "z-50 max-w-[var(--container-xs)] px-3 py-1.5 rounded-md text-small",
883
1070
  "bg-text-primary text-bg-primary shadow-md",
884
1071
  "pointer-events-none animate-floating-in",
885
- i
1072
+ s
886
1073
  ].join(" "),
887
1074
  ...g(),
888
1075
  children: [
@@ -893,9 +1080,9 @@ function Bt({
893
1080
  ref: c,
894
1081
  className: "absolute size-2 bg-text-primary rotate-45",
895
1082
  style: {
896
- left: z != null ? `${z}px` : "",
897
- top: P != null ? `${P}px` : "",
898
- [Ge[x]]: "-4px"
1083
+ left: $ != null ? `${$}px` : "",
1084
+ top: B != null ? `${B}px` : "",
1085
+ [tt[x]]: "-4px"
899
1086
  }
900
1087
  }
901
1088
  )
@@ -904,10 +1091,10 @@ function Bt({
904
1091
  ) })
905
1092
  ] });
906
1093
  }
907
- function Xe() {
908
- const { i18n: t } = Z(), r = t.language ?? "en", o = k(
909
- (i) => {
910
- t.changeLanguage(i);
1094
+ function rt() {
1095
+ const { i18n: t } = oe(), r = t.language ?? "en", o = k(
1096
+ (s) => {
1097
+ t.changeLanguage(s);
911
1098
  },
912
1099
  [t]
913
1100
  ), n = k(() => {
@@ -915,12 +1102,12 @@ function Xe() {
915
1102
  }, [r, o]);
916
1103
  return { language: r, toggleLanguage: n, setLanguage: o };
917
1104
  }
918
- const Ye = [
1105
+ const nt = [
919
1106
  { value: "en", label: "EN" },
920
1107
  { value: "fr", label: "FR" }
921
1108
  ];
922
- function Lt({ className: t = "" }) {
923
- const { language: r, setLanguage: o } = Xe();
1109
+ function Xt({ className: t = "" }) {
1110
+ const { language: r, setLanguage: o } = rt();
924
1111
  return /* @__PURE__ */ e(
925
1112
  "div",
926
1113
  {
@@ -930,20 +1117,20 @@ function Lt({ className: t = "" }) {
930
1117
  "inline-flex items-center rounded-full border border-border bg-bg-secondary p-0.5",
931
1118
  t
932
1119
  ].filter(Boolean).join(" "),
933
- children: Ye.map(({ value: n, label: i }) => {
934
- const s = r === n;
1120
+ children: nt.map(({ value: n, label: s }) => {
1121
+ const i = r === n;
935
1122
  return /* @__PURE__ */ e(
936
1123
  "button",
937
1124
  {
938
1125
  type: "button",
939
1126
  role: "radio",
940
- "aria-checked": s,
1127
+ "aria-checked": i,
941
1128
  onClick: () => o(n),
942
1129
  className: [
943
1130
  "rounded-full px-2.5 py-0.5 text-caption font-medium transition-colors cursor-pointer",
944
- s ? "bg-primary text-white shadow-sm" : "text-text-secondary hover:text-text-primary"
1131
+ i ? "bg-primary text-white shadow-sm" : "text-text-secondary hover:text-text-primary"
945
1132
  ].join(" "),
946
- children: i
1133
+ children: s
947
1134
  },
948
1135
  n
949
1136
  );
@@ -951,77 +1138,77 @@ function Lt({ className: t = "" }) {
951
1138
  }
952
1139
  );
953
1140
  }
954
- const _ = "poesis-theme", T = /* @__PURE__ */ new Set();
955
- function _e() {
956
- T.forEach((t) => t());
1141
+ const te = "poesis-theme", H = /* @__PURE__ */ new Set();
1142
+ function ot() {
1143
+ H.forEach((t) => t());
957
1144
  }
958
- function We(t) {
959
- return T.add(t), () => T.delete(t);
1145
+ function it(t) {
1146
+ return H.add(t), () => H.delete(t);
960
1147
  }
961
- function Je() {
1148
+ function st() {
962
1149
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
963
1150
  }
964
- function Qe() {
1151
+ function at() {
965
1152
  return "light";
966
1153
  }
967
- function E(t) {
968
- 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();
969
1156
  }
970
- function Tt() {
971
- const t = localStorage.getItem(_);
1157
+ function Yt() {
1158
+ const t = localStorage.getItem(te);
972
1159
  if (t) {
973
- E(t);
1160
+ T(t);
974
1161
  return;
975
1162
  }
976
1163
  const r = window.matchMedia("(prefers-color-scheme: dark)").matches;
977
- E(r ? "dark" : "light");
1164
+ T(r ? "dark" : "light");
978
1165
  }
979
- function Ze() {
980
- const t = ue(We, Je, Qe);
981
- $(() => {
982
- const n = window.matchMedia("(prefers-color-scheme: dark)"), i = (s) => {
983
- localStorage.getItem(_) || E(s.matches ? "dark" : "light");
1166
+ function lt() {
1167
+ const t = ge(it, st, at);
1168
+ I(() => {
1169
+ const n = window.matchMedia("(prefers-color-scheme: dark)"), s = (i) => {
1170
+ localStorage.getItem(te) || T(i.matches ? "dark" : "light");
984
1171
  };
985
- return n.addEventListener("change", i), () => n.removeEventListener("change", i);
1172
+ return n.addEventListener("change", s), () => n.removeEventListener("change", s);
986
1173
  }, []);
987
1174
  const r = k(() => {
988
- E(t === "dark" ? "light" : "dark");
1175
+ T(t === "dark" ? "light" : "dark");
989
1176
  }, [t]), o = k((n) => {
990
- E(n);
1177
+ T(n);
991
1178
  }, []);
992
1179
  return { theme: t, toggleTheme: r, setTheme: o, isDark: t === "dark" };
993
1180
  }
994
- function Rt({ variant: t = "ghost", size: r = "md", className: o }) {
995
- const { isDark: n, toggleTheme: i } = Ze(), { t: s } = Z();
1181
+ function _t({ variant: t = "ghost", size: r = "md", className: o }) {
1182
+ const { isDark: n, toggleTheme: s } = lt(), { t: i } = oe();
996
1183
  return /* @__PURE__ */ e(
997
- Re,
1184
+ He,
998
1185
  {
999
1186
  variant: t,
1000
1187
  size: r,
1001
- icon: n ? /* @__PURE__ */ e(be, { size: 16 }) : /* @__PURE__ */ e(pe, { size: 16 }),
1002
- "aria-label": s("theme.toggleTheme"),
1003
- onClick: i,
1188
+ icon: n ? /* @__PURE__ */ e(ye, { size: 16 }) : /* @__PURE__ */ e(ve, { size: 16 }),
1189
+ "aria-label": i("theme.toggleTheme"),
1190
+ onClick: s,
1004
1191
  className: o
1005
1192
  }
1006
1193
  );
1007
1194
  }
1008
- function et({
1195
+ function ct({
1009
1196
  logo: t,
1010
1197
  categories: r = [],
1011
1198
  activeCategoryId: o,
1012
1199
  onCategoryChange: n,
1013
- actions: i,
1014
- onBurgerClick: s
1200
+ actions: s,
1201
+ onBurgerClick: i
1015
1202
  }) {
1016
1203
  return /* @__PURE__ */ m("header", { className: "fixed inset-x-0 top-0 z-40 flex h-14 items-center border-b border-border bg-bg-primary px-md", children: [
1017
1204
  /* @__PURE__ */ e(
1018
1205
  "button",
1019
1206
  {
1020
1207
  type: "button",
1021
- onClick: s,
1208
+ onClick: i,
1022
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",
1023
1210
  "aria-label": "Open menu",
1024
- children: /* @__PURE__ */ e(fe, { size: 22 })
1211
+ children: /* @__PURE__ */ e(Ne, { size: 22 })
1025
1212
  }
1026
1213
  ),
1027
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" }) }),
@@ -1046,10 +1233,10 @@ function et({
1046
1233
  );
1047
1234
  }) }),
1048
1235
  /* @__PURE__ */ e("div", { className: "flex-1 lg:hidden" }),
1049
- i && /* @__PURE__ */ e("div", { className: "flex items-center gap-xs", children: i })
1236
+ s && /* @__PURE__ */ e("div", { className: "flex items-center gap-xs", children: s })
1050
1237
  ] });
1051
1238
  }
1052
- function tt({
1239
+ function dt({
1053
1240
  sections: t = [],
1054
1241
  activeLinkId: r,
1055
1242
  onLinkClick: o,
@@ -1062,46 +1249,46 @@ function tt({
1062
1249
  "hidden lg:flex flex-col border-r border-border bg-bg-secondary overflow-y-auto transition-[width] duration-200",
1063
1250
  n ? "w-16" : "w-64"
1064
1251
  ].join(" "),
1065
- children: /* @__PURE__ */ e("nav", { className: "flex flex-col gap-xs p-sm", "aria-label": "Page navigation", children: t.map((i) => /* @__PURE__ */ e(
1066
- rt,
1252
+ children: /* @__PURE__ */ e("nav", { className: "flex flex-col gap-xs p-sm", "aria-label": "Page navigation", children: t.map((s) => /* @__PURE__ */ e(
1253
+ mt,
1067
1254
  {
1068
- section: i,
1255
+ section: s,
1069
1256
  activeLinkId: r,
1070
1257
  onLinkClick: o,
1071
1258
  collapsed: n
1072
1259
  },
1073
- i.id
1260
+ s.id
1074
1261
  )) })
1075
1262
  }
1076
1263
  );
1077
1264
  }
1078
- function rt({
1265
+ function mt({
1079
1266
  section: t,
1080
1267
  activeLinkId: r,
1081
1268
  onLinkClick: o,
1082
1269
  collapsed: n
1083
1270
  }) {
1084
- const [i, s] = N(!0);
1271
+ const [s, i] = C(!0);
1085
1272
  return /* @__PURE__ */ m("div", { className: "flex flex-col", children: [
1086
1273
  t.title && !n && /* @__PURE__ */ m(
1087
1274
  "button",
1088
1275
  {
1089
1276
  type: "button",
1090
- onClick: () => s((a) => !a),
1277
+ onClick: () => i((a) => !a),
1091
1278
  className: "flex items-center justify-between rounded-md px-sm py-xs text-caption font-semibold uppercase tracking-wide text-text-muted hover:text-text-secondary",
1092
1279
  children: [
1093
1280
  /* @__PURE__ */ e("span", { children: t.title }),
1094
1281
  /* @__PURE__ */ e(
1095
- ee,
1282
+ ie,
1096
1283
  {
1097
1284
  size: 14,
1098
- className: `transition-transform ${i ? "" : "-rotate-90"}`
1285
+ className: `transition-transform ${s ? "" : "-rotate-90"}`
1099
1286
  }
1100
1287
  )
1101
1288
  ]
1102
1289
  }
1103
1290
  ),
1104
- (i || n) && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-px", children: t.links.map((a) => {
1291
+ (s || n) && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-px", children: t.links.map((a) => {
1105
1292
  const c = a.id === r;
1106
1293
  return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ m(
1107
1294
  "button",
@@ -1124,29 +1311,29 @@ function rt({
1124
1311
  }) })
1125
1312
  ] });
1126
1313
  }
1127
- function nt({
1314
+ function ut({
1128
1315
  open: t,
1129
1316
  onClose: r,
1130
1317
  categories: o = [],
1131
1318
  activeCategoryId: n,
1132
- onCategoryChange: i,
1133
- sections: s = [],
1319
+ onCategoryChange: s,
1320
+ sections: i = [],
1134
1321
  activeLinkId: a,
1135
1322
  onLinkClick: c
1136
1323
  }) {
1137
1324
  const d = D(null);
1138
- return $(() => {
1325
+ return I(() => {
1139
1326
  if (!t) return;
1140
1327
  const l = (u) => {
1141
1328
  u.key === "Escape" && r();
1142
1329
  };
1143
1330
  return document.addEventListener("keydown", l), () => document.removeEventListener("keydown", l);
1144
- }, [t, r]), $(() => {
1331
+ }, [t, r]), I(() => {
1145
1332
  if (!t) return;
1146
1333
  d.current?.focus();
1147
- }, [t]), $(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
1334
+ }, [t]), I(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
1148
1335
  document.body.style.overflow = "";
1149
- }), [t]), /* @__PURE__ */ m(B, { children: [
1336
+ }), [t]), /* @__PURE__ */ m(V, { children: [
1150
1337
  /* @__PURE__ */ e(
1151
1338
  "div",
1152
1339
  {
@@ -1180,7 +1367,7 @@ function nt({
1180
1367
  onClick: r,
1181
1368
  className: "flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary",
1182
1369
  "aria-label": "Close menu",
1183
- children: /* @__PURE__ */ e(xe, { size: 18 })
1370
+ children: /* @__PURE__ */ e(we, { size: 18 })
1184
1371
  }
1185
1372
  )
1186
1373
  ] }),
@@ -1194,7 +1381,7 @@ function nt({
1194
1381
  {
1195
1382
  type: "button",
1196
1383
  onClick: () => {
1197
- i?.(l.id);
1384
+ s?.(l.id);
1198
1385
  },
1199
1386
  className: [
1200
1387
  "flex items-center gap-sm rounded-md px-sm py-xs text-small font-medium transition-colors",
@@ -1209,8 +1396,8 @@ function nt({
1209
1396
  );
1210
1397
  })
1211
1398
  ] }),
1212
- s.map((l) => /* @__PURE__ */ e(
1213
- ot,
1399
+ i.map((l) => /* @__PURE__ */ e(
1400
+ pt,
1214
1401
  {
1215
1402
  section: l,
1216
1403
  activeLinkId: a,
@@ -1226,23 +1413,23 @@ function nt({
1226
1413
  )
1227
1414
  ] });
1228
1415
  }
1229
- function ot({
1416
+ function pt({
1230
1417
  section: t,
1231
1418
  activeLinkId: r,
1232
1419
  onLinkClick: o
1233
1420
  }) {
1234
- const [n, i] = N(!0);
1421
+ const [n, s] = C(!0);
1235
1422
  return /* @__PURE__ */ m("div", { className: "mb-xs flex flex-col", children: [
1236
1423
  t.title && /* @__PURE__ */ m(
1237
1424
  "button",
1238
1425
  {
1239
1426
  type: "button",
1240
- onClick: () => i((s) => !s),
1427
+ onClick: () => s((i) => !i),
1241
1428
  className: "flex items-center justify-between rounded-md px-sm py-xs text-caption font-semibold uppercase tracking-wide text-text-muted hover:text-text-secondary",
1242
1429
  children: [
1243
1430
  /* @__PURE__ */ e("span", { children: t.title }),
1244
1431
  /* @__PURE__ */ e(
1245
- ee,
1432
+ ie,
1246
1433
  {
1247
1434
  size: 14,
1248
1435
  className: `transition-transform ${n ? "" : "-rotate-90"}`
@@ -1251,57 +1438,57 @@ function ot({
1251
1438
  ]
1252
1439
  }
1253
1440
  ),
1254
- n && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-px", children: t.links.map((s) => {
1255
- const a = s.id === r;
1441
+ n && /* @__PURE__ */ e("ul", { className: "flex flex-col gap-px", children: t.links.map((i) => {
1442
+ const a = i.id === r;
1256
1443
  return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ m(
1257
1444
  "button",
1258
1445
  {
1259
1446
  type: "button",
1260
- onClick: () => o?.(s.href),
1447
+ onClick: () => o?.(i.href),
1261
1448
  className: [
1262
1449
  "flex w-full items-center gap-sm rounded-md px-sm py-xs text-small transition-colors",
1263
1450
  a ? "bg-primary/10 font-medium text-primary" : "text-text-secondary hover:bg-bg-tertiary hover:text-text-primary"
1264
1451
  ].join(" "),
1265
1452
  "aria-current": a ? "page" : void 0,
1266
1453
  children: [
1267
- s.icon && /* @__PURE__ */ e(s.icon, { size: 18 }),
1268
- /* @__PURE__ */ e("span", { children: s.label })
1454
+ i.icon && /* @__PURE__ */ e(i.icon, { size: 18 }),
1455
+ /* @__PURE__ */ e("span", { children: i.label })
1269
1456
  ]
1270
1457
  }
1271
- ) }, s.id);
1458
+ ) }, i.id);
1272
1459
  }) })
1273
1460
  ] });
1274
1461
  }
1275
- function Mt({
1462
+ function Wt({
1276
1463
  children: t,
1277
1464
  logo: r,
1278
1465
  categories: o = [],
1279
1466
  activeCategoryId: n,
1280
- onCategoryChange: i,
1281
- sections: s = [],
1467
+ onCategoryChange: s,
1468
+ sections: i = [],
1282
1469
  activeLinkId: a,
1283
1470
  onLinkClick: c,
1284
1471
  actions: d,
1285
1472
  sideNavCollapsed: l = !1
1286
1473
  }) {
1287
- const [u, b] = N(!1);
1474
+ const [u, f] = C(!1);
1288
1475
  return /* @__PURE__ */ m("div", { className: "flex h-screen flex-col bg-bg-primary", children: [
1289
1476
  /* @__PURE__ */ e(
1290
- et,
1477
+ ct,
1291
1478
  {
1292
1479
  logo: r,
1293
1480
  categories: o,
1294
1481
  activeCategoryId: n,
1295
- onCategoryChange: i,
1482
+ onCategoryChange: s,
1296
1483
  actions: d,
1297
- onBurgerClick: () => b(!0)
1484
+ onBurgerClick: () => f(!0)
1298
1485
  }
1299
1486
  ),
1300
1487
  /* @__PURE__ */ m("div", { className: "flex flex-1 overflow-hidden pt-14", children: [
1301
1488
  /* @__PURE__ */ e(
1302
- tt,
1489
+ dt,
1303
1490
  {
1304
- sections: s,
1491
+ sections: i,
1305
1492
  activeLinkId: a,
1306
1493
  onLinkClick: c,
1307
1494
  collapsed: l
@@ -1310,25 +1497,25 @@ function Mt({
1310
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 }) })
1311
1498
  ] }),
1312
1499
  /* @__PURE__ */ e(
1313
- nt,
1500
+ ut,
1314
1501
  {
1315
1502
  open: u,
1316
- onClose: () => b(!1),
1503
+ onClose: () => f(!1),
1317
1504
  categories: o,
1318
1505
  activeCategoryId: n,
1319
1506
  onCategoryChange: (h) => {
1320
- i?.(h), b(!1);
1507
+ s?.(h), f(!1);
1321
1508
  },
1322
- sections: s,
1509
+ sections: i,
1323
1510
  activeLinkId: a,
1324
1511
  onLinkClick: (h) => {
1325
- c?.(h), b(!1);
1512
+ c?.(h), f(!1);
1326
1513
  }
1327
1514
  }
1328
1515
  )
1329
1516
  ] });
1330
1517
  }
1331
- const Ot = C(function({ header: r, footer: o, actions: n, noPadding: i = !1, className: s = "", children: a, ...c }, d) {
1518
+ const Jt = z(function({ header: r, footer: o, actions: n, noPadding: s = !1, className: i = "", children: a, ...c }, d) {
1332
1519
  const l = o || n;
1333
1520
  return /* @__PURE__ */ m(
1334
1521
  "div",
@@ -1337,12 +1524,12 @@ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: i = !1, cla
1337
1524
  className: [
1338
1525
  "rounded-md shadow-md border border-border bg-bg-secondary",
1339
1526
  "flex flex-col overflow-hidden",
1340
- s
1527
+ i
1341
1528
  ].filter(Boolean).join(" "),
1342
1529
  ...c,
1343
1530
  children: [
1344
1531
  r && /* @__PURE__ */ e("div", { className: "px-lg py-md border-b border-border", children: /* @__PURE__ */ e("div", { className: "font-semibold text-body text-text-primary", children: r }) }),
1345
- /* @__PURE__ */ e("div", { className: i ? "" : "p-lg", children: a }),
1532
+ /* @__PURE__ */ e("div", { className: s ? "" : "p-lg", children: a }),
1346
1533
  l && /* @__PURE__ */ m("div", { className: "px-lg py-md border-t border-border flex items-center gap-3", children: [
1347
1534
  o && /* @__PURE__ */ e("div", { className: "flex-1 min-w-0", children: o }),
1348
1535
  n && /* @__PURE__ */ e("div", { className: "ml-auto flex items-center gap-2", children: n })
@@ -1350,15 +1537,15 @@ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: i = !1, cla
1350
1537
  ]
1351
1538
  }
1352
1539
  );
1353
- }), Vt = C(
1354
- function({ items: r, layout: o = "horizontal", dividers: n = !0, className: i = "", ...s }, a) {
1540
+ }), Qt = z(
1541
+ function({ items: r, layout: o = "horizontal", dividers: n = !0, className: s = "", ...i }, a) {
1355
1542
  const c = o === "horizontal";
1356
1543
  return /* @__PURE__ */ e(
1357
1544
  "dl",
1358
1545
  {
1359
1546
  ref: a,
1360
- className: ["text-body", n && "divide-y divide-border", i].filter(Boolean).join(" "),
1361
- ...s,
1547
+ className: ["text-body", n && "divide-y divide-border", s].filter(Boolean).join(" "),
1548
+ ...i,
1362
1549
  children: r.map((d, l) => /* @__PURE__ */ m(
1363
1550
  "div",
1364
1551
  {
@@ -1385,26 +1572,26 @@ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: i = !1, cla
1385
1572
  }
1386
1573
  );
1387
1574
  }
1388
- ), Ut = C(function({ illustration: r, title: o, description: n, action: i, className: s = "", ...a }, c) {
1575
+ ), Zt = z(function({ illustration: r, title: o, description: n, action: s, className: i = "", ...a }, c) {
1389
1576
  return /* @__PURE__ */ m(
1390
1577
  "div",
1391
1578
  {
1392
1579
  ref: c,
1393
1580
  className: [
1394
1581
  "flex flex-col items-center justify-center text-center py-2xl px-lg",
1395
- s
1582
+ i
1396
1583
  ].filter(Boolean).join(" "),
1397
1584
  ...a,
1398
1585
  children: [
1399
1586
  r && /* @__PURE__ */ e("div", { className: "mb-lg text-text-secondary", children: r }),
1400
1587
  /* @__PURE__ */ e("h3", { className: "text-h3 font-semibold text-text-primary", children: o }),
1401
1588
  n && /* @__PURE__ */ e("p", { className: "mt-xs text-body text-text-secondary max-w-[var(--container-md)]", children: n }),
1402
- i && /* @__PURE__ */ e("div", { className: "mt-lg", children: i })
1589
+ s && /* @__PURE__ */ e("div", { className: "mt-lg", children: s })
1403
1590
  ]
1404
1591
  }
1405
1592
  );
1406
1593
  });
1407
- function it(t, r) {
1594
+ function ft(t, r) {
1408
1595
  if (!t.sortValue || r.length === 0) return "text";
1409
1596
  for (const o of r) {
1410
1597
  const n = t.sortValue(o);
@@ -1412,49 +1599,49 @@ function it(t, r) {
1412
1599
  }
1413
1600
  return "text";
1414
1601
  }
1415
- function st({
1602
+ function bt({
1416
1603
  active: t,
1417
1604
  direction: r,
1418
1605
  columnType: o
1419
1606
  }) {
1420
- 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 });
1421
1608
  }
1422
- const Ht = C(function({
1609
+ const er = z(function({
1423
1610
  columns: r,
1424
1611
  data: o,
1425
1612
  rowKey: n,
1426
- striped: i = !1,
1427
- sort: s,
1613
+ striped: s = !1,
1614
+ sort: i,
1428
1615
  onSortChange: a,
1429
1616
  emptyContent: c,
1430
1617
  className: d = "",
1431
1618
  ...l
1432
1619
  }, u) {
1433
- const [b, h] = N(), p = s ?? b, y = k(
1620
+ const [f, h] = C(), p = i ?? f, y = k(
1434
1621
  (g) => {
1435
1622
  const x = p?.column === g && p.direction === "asc" ? { column: g, direction: "desc" } : { column: g, direction: "asc" };
1436
1623
  a ? a(x) : h(x);
1437
1624
  },
1438
1625
  [p, a]
1439
- ), f = L(() => {
1626
+ ), b = K(() => {
1440
1627
  if (!p || a) return o;
1441
- const g = r.find((z) => z.key === p.column);
1628
+ const g = r.find(($) => $.key === p.column);
1442
1629
  if (!g?.sortValue) return o;
1443
1630
  const x = g.sortValue;
1444
- return [...o].sort((z, P) => {
1445
- const j = x(z), F = x(P);
1446
- if (j == null && F == null) return 0;
1447
- if (j == null) return 1;
1448
- if (F == null) return -1;
1449
- const W = typeof j == "number" && typeof F == "number" ? j - F : String(j).localeCompare(String(F));
1450
- 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;
1451
1638
  });
1452
- }, [o, p, r, a]), v = L(() => {
1639
+ }, [o, p, r, a]), v = K(() => {
1453
1640
  const g = /* @__PURE__ */ new Map();
1454
1641
  for (const x of r)
1455
- x.sortable && g.set(x.key, it(x, o));
1642
+ x.sortable && g.set(x.key, ft(x, o));
1456
1643
  return g;
1457
- }, [r, o]), w = f.length === 0;
1644
+ }, [r, o]), N = b.length === 0;
1458
1645
  return /* @__PURE__ */ e(
1459
1646
  "div",
1460
1647
  {
@@ -1477,7 +1664,7 @@ const Ht = C(function({
1477
1664
  children: /* @__PURE__ */ m("span", { className: "inline-flex items-center", children: [
1478
1665
  g.header,
1479
1666
  g.sortable && /* @__PURE__ */ e(
1480
- st,
1667
+ bt,
1481
1668
  {
1482
1669
  active: x,
1483
1670
  direction: x ? p.direction : void 0,
@@ -1489,31 +1676,31 @@ const Ht = C(function({
1489
1676
  g.key
1490
1677
  );
1491
1678
  }) }) }),
1492
- /* @__PURE__ */ e("tbody", { children: w ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
1679
+ /* @__PURE__ */ e("tbody", { children: N ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
1493
1680
  "td",
1494
1681
  {
1495
1682
  colSpan: r.length,
1496
1683
  className: "px-md py-xl text-center text-text-secondary",
1497
1684
  children: c ?? "No data available."
1498
1685
  }
1499
- ) }) : f.map((g, x) => /* @__PURE__ */ e(
1686
+ ) }) : b.map((g, x) => /* @__PURE__ */ e(
1500
1687
  "tr",
1501
1688
  {
1502
1689
  className: [
1503
1690
  "border-b border-border last:border-b-0 transition-colors",
1504
- i && x % 2 === 1 && "bg-bg-tertiary/50",
1691
+ s && x % 2 === 1 && "bg-bg-tertiary/50",
1505
1692
  "hover:bg-bg-tertiary/70"
1506
1693
  ].filter(Boolean).join(" "),
1507
- children: r.map((z) => /* @__PURE__ */ e(
1694
+ children: r.map(($) => /* @__PURE__ */ e(
1508
1695
  "td",
1509
1696
  {
1510
1697
  className: [
1511
1698
  "px-md py-sm text-text-primary",
1512
- z.cellClassName
1699
+ $.cellClassName
1513
1700
  ].filter(Boolean).join(" "),
1514
- children: z.cell(g, x)
1701
+ children: $.cell(g, x)
1515
1702
  },
1516
- z.key
1703
+ $.key
1517
1704
  ))
1518
1705
  },
1519
1706
  n(g, x)
@@ -1521,52 +1708,52 @@ const Ht = C(function({
1521
1708
  ] })
1522
1709
  }
1523
1710
  );
1524
- }), at = {
1711
+ }), xt = {
1525
1712
  success: {
1526
1713
  bg: "bg-success-bg",
1527
1714
  border: "border-success/30",
1528
1715
  text: "text-success",
1529
- icon: ne
1716
+ icon: le
1530
1717
  },
1531
1718
  warning: {
1532
1719
  bg: "bg-warning-bg",
1533
1720
  border: "border-warning/30",
1534
1721
  text: "text-warning",
1535
- icon: R
1722
+ icon: q
1536
1723
  },
1537
1724
  error: {
1538
1725
  bg: "bg-error-bg",
1539
1726
  border: "border-error/30",
1540
1727
  text: "text-error",
1541
- icon: re
1728
+ icon: ae
1542
1729
  },
1543
1730
  info: {
1544
1731
  bg: "bg-info-bg",
1545
1732
  border: "border-info/30",
1546
1733
  text: "text-info",
1547
- icon: te
1734
+ icon: se
1548
1735
  }
1549
1736
  };
1550
- function qt({
1737
+ function tr({
1551
1738
  variant: t,
1552
1739
  title: r,
1553
1740
  children: o,
1554
1741
  dismissible: n = !1,
1555
- onDismiss: i,
1556
- className: s = ""
1742
+ onDismiss: s,
1743
+ className: i = ""
1557
1744
  }) {
1558
- 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];
1559
1746
  if (!a) return null;
1560
1747
  const h = () => {
1561
- c(!1), i?.();
1748
+ c(!1), s?.();
1562
1749
  };
1563
1750
  return /* @__PURE__ */ m(
1564
1751
  "div",
1565
1752
  {
1566
1753
  role: "alert",
1567
- className: `flex gap-3 rounded-md border p-md ${d} ${l} ${s}`,
1754
+ className: `flex gap-3 rounded-md border p-md ${d} ${l} ${i}`,
1568
1755
  children: [
1569
- /* @__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 }),
1570
1757
  /* @__PURE__ */ m("div", { className: "flex-1 min-w-0", children: [
1571
1758
  r && /* @__PURE__ */ e("p", { className: `font-semibold text-body ${u}`, children: r }),
1572
1759
  /* @__PURE__ */ e("div", { className: "text-body text-text-primary", children: o })
@@ -1578,35 +1765,35 @@ function qt({
1578
1765
  onClick: h,
1579
1766
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1580
1767
  "aria-label": "Dismiss alert",
1581
- children: /* @__PURE__ */ e(M, { size: 16 })
1768
+ children: /* @__PURE__ */ e(U, { size: 16 })
1582
1769
  }
1583
1770
  )
1584
1771
  ]
1585
1772
  }
1586
1773
  );
1587
1774
  }
1588
- const lt = {
1775
+ const gt = {
1589
1776
  sm: "max-w-[24rem]",
1590
1777
  md: "max-w-[32rem]",
1591
1778
  lg: "max-w-[42rem]"
1592
1779
  };
1593
- function ct({
1780
+ function ht({
1594
1781
  open: t,
1595
1782
  onClose: r,
1596
1783
  title: o,
1597
1784
  size: n = "md",
1598
- children: i,
1599
- footer: s,
1785
+ children: s,
1786
+ footer: i,
1600
1787
  className: a = ""
1601
1788
  }) {
1602
1789
  const c = D(null);
1603
- $(() => {
1790
+ I(() => {
1604
1791
  if (!t) return;
1605
1792
  const l = document.activeElement;
1606
1793
  return c.current?.focus(), () => {
1607
1794
  l?.focus();
1608
1795
  };
1609
- }, [t]), $(() => {
1796
+ }, [t]), I(() => {
1610
1797
  if (!t) return;
1611
1798
  const l = document.body.style.overflow;
1612
1799
  return document.body.style.overflow = "hidden", () => {
@@ -1623,11 +1810,11 @@ function ct({
1623
1810
  'a[href], button:not([disabled]), textarea, input:not([disabled]), select, [tabindex]:not([tabindex="-1"])'
1624
1811
  );
1625
1812
  if (u.length === 0) return;
1626
- const b = u[0], h = u[u.length - 1];
1627
- 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());
1628
1815
  }
1629
1816
  };
1630
- return t ? Ne(
1817
+ return t ? Ie(
1631
1818
  /* @__PURE__ */ m(
1632
1819
  "div",
1633
1820
  {
@@ -1663,7 +1850,7 @@ function ct({
1663
1850
  {
1664
1851
  ref: c,
1665
1852
  tabIndex: -1,
1666
- 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}`,
1667
1854
  children: [
1668
1855
  o && /* @__PURE__ */ m("div", { className: "flex items-center justify-between px-lg py-md border-b border-border", children: [
1669
1856
  /* @__PURE__ */ e(
@@ -1681,12 +1868,12 @@ function ct({
1681
1868
  onClick: r,
1682
1869
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1683
1870
  "aria-label": "Close dialog",
1684
- children: /* @__PURE__ */ e(M, { size: 18 })
1871
+ children: /* @__PURE__ */ e(U, { size: 18 })
1685
1872
  }
1686
1873
  )
1687
1874
  ] }),
1688
- /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto px-lg py-md text-body text-text-primary", children: i }),
1689
- s && /* @__PURE__ */ e("div", { className: "flex items-center justify-end gap-sm px-lg py-md border-t border-border", children: s })
1875
+ /* @__PURE__ */ e("div", { className: "flex-1 overflow-y-auto px-lg py-md text-body text-text-primary", children: s }),
1876
+ i && /* @__PURE__ */ e("div", { className: "flex items-center justify-end gap-sm px-lg py-md border-t border-border", children: i })
1690
1877
  ]
1691
1878
  }
1692
1879
  )
@@ -1698,28 +1885,28 @@ function ct({
1698
1885
  document.body
1699
1886
  ) : null;
1700
1887
  }
1701
- function Kt({
1888
+ function rr({
1702
1889
  open: t,
1703
1890
  onCancel: r,
1704
1891
  onConfirm: o,
1705
1892
  title: n,
1706
- children: i,
1707
- confirmLabel: s = "Confirm",
1893
+ children: s,
1894
+ confirmLabel: i = "Confirm",
1708
1895
  cancelLabel: a = "Cancel",
1709
1896
  danger: c = !1,
1710
1897
  size: d = "sm"
1711
1898
  }) {
1712
- 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: [
1713
1900
  /* @__PURE__ */ m("div", { className: "flex gap-3", children: [
1714
1901
  c && /* @__PURE__ */ e(
1715
- R,
1902
+ q,
1716
1903
  {
1717
1904
  size: 22,
1718
1905
  className: "shrink-0 mt-0.5 text-error",
1719
1906
  "aria-hidden": !0
1720
1907
  }
1721
1908
  ),
1722
- /* @__PURE__ */ e("div", { className: "text-body text-text-secondary", children: i })
1909
+ /* @__PURE__ */ e("div", { className: "text-body text-text-secondary", children: s })
1723
1910
  ] }),
1724
1911
  /* @__PURE__ */ m("div", { className: "flex items-center justify-end gap-sm mt-lg", children: [
1725
1912
  /* @__PURE__ */ e(
@@ -1737,59 +1924,59 @@ function Kt({
1737
1924
  type: "button",
1738
1925
  onClick: o,
1739
1926
  className: `px-4 py-2 rounded-md text-small font-medium text-white transition-colors cursor-pointer ${c ? "bg-error hover:bg-error/80" : "bg-primary hover:bg-primary-hover"}`,
1740
- children: s
1927
+ children: i
1741
1928
  }
1742
1929
  )
1743
1930
  ] })
1744
1931
  ] });
1745
1932
  }
1746
- const de = S(null);
1747
- function Gt() {
1748
- const t = A(de);
1933
+ const be = R(null);
1934
+ function nr() {
1935
+ const t = M(be);
1749
1936
  if (!t) throw new Error("useToast must be used within a <ToastProvider>");
1750
1937
  return t;
1751
1938
  }
1752
- const dt = {
1939
+ const yt = {
1753
1940
  success: {
1754
1941
  bg: "bg-bg-primary",
1755
1942
  accent: "bg-success",
1756
1943
  text: "text-success",
1757
- icon: ne
1944
+ icon: le
1758
1945
  },
1759
1946
  warning: {
1760
1947
  bg: "bg-bg-primary",
1761
1948
  accent: "bg-warning",
1762
1949
  text: "text-warning",
1763
- icon: R
1950
+ icon: q
1764
1951
  },
1765
1952
  error: {
1766
1953
  bg: "bg-bg-primary",
1767
1954
  accent: "bg-error",
1768
1955
  text: "text-error",
1769
- icon: re
1956
+ icon: ae
1770
1957
  },
1771
1958
  info: {
1772
1959
  bg: "bg-bg-primary",
1773
1960
  accent: "bg-info",
1774
1961
  text: "text-info",
1775
- icon: te
1962
+ icon: se
1776
1963
  }
1777
1964
  };
1778
- function mt({ toast: t, onRemove: r }) {
1779
- const { variant: o, title: n, message: i, duration: s = 5e3 } = t, { bg: a, accent: c, text: d, icon: l } = dt[o], [u, b] = N(100), h = D(0), p = D(0);
1780
- return $(() => {
1781
- if (s <= 0) 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(() => {
1968
+ if (i <= 0) return;
1782
1969
  h.current = performance.now();
1783
- const y = (f) => {
1784
- const v = f - h.current, w = Math.max(0, 100 - v / s * 100);
1785
- 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) {
1786
1973
  r(t.id);
1787
1974
  return;
1788
1975
  }
1789
1976
  p.current = requestAnimationFrame(y);
1790
1977
  };
1791
1978
  return p.current = requestAnimationFrame(y), () => cancelAnimationFrame(p.current);
1792
- }, [s, t.id, r]), /* @__PURE__ */ m(
1979
+ }, [i, t.id, r]), /* @__PURE__ */ m(
1793
1980
  "div",
1794
1981
  {
1795
1982
  role: "status",
@@ -1800,7 +1987,7 @@ function mt({ toast: t, onRemove: r }) {
1800
1987
  /* @__PURE__ */ e(l, { size: 18, className: `shrink-0 mt-0.5 ${d}`, "aria-hidden": !0 }),
1801
1988
  /* @__PURE__ */ m("div", { className: "flex-1 min-w-0", children: [
1802
1989
  n && /* @__PURE__ */ e("p", { className: "font-semibold text-small text-text-primary", children: n }),
1803
- /* @__PURE__ */ e("p", { className: "text-small text-text-secondary", children: i })
1990
+ /* @__PURE__ */ e("p", { className: "text-small text-text-secondary", children: s })
1804
1991
  ] }),
1805
1992
  /* @__PURE__ */ e(
1806
1993
  "button",
@@ -1809,11 +1996,11 @@ function mt({ toast: t, onRemove: r }) {
1809
1996
  onClick: () => r(t.id),
1810
1997
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1811
1998
  "aria-label": "Dismiss notification",
1812
- children: /* @__PURE__ */ e(M, { size: 14 })
1999
+ children: /* @__PURE__ */ e(U, { size: 14 })
1813
2000
  }
1814
2001
  )
1815
2002
  ] }),
1816
- s > 0 && /* @__PURE__ */ e("div", { className: "h-0.5 w-full bg-bg-tertiary", children: /* @__PURE__ */ e(
2003
+ i > 0 && /* @__PURE__ */ e("div", { className: "h-0.5 w-full bg-bg-tertiary", children: /* @__PURE__ */ e(
1817
2004
  "div",
1818
2005
  {
1819
2006
  className: `h-full ${c} transition-none`,
@@ -1824,80 +2011,82 @@ function mt({ toast: t, onRemove: r }) {
1824
2011
  }
1825
2012
  );
1826
2013
  }
1827
- let ut = 0;
1828
- function Xt({ children: t }) {
1829
- const [r, o] = N([]), n = k((s) => {
1830
- const a = `toast-${++ut}`;
1831
- return o((c) => [...c, { ...s, id: a }]), a;
1832
- }, []), i = k((s) => {
1833
- o((a) => a.filter((c) => c.id !== s));
2014
+ let Nt = 0;
2015
+ function or({ children: t }) {
2016
+ const [r, o] = C([]), n = k((i) => {
2017
+ const a = `toast-${++Nt}`;
2018
+ return o((c) => [...c, { ...i, id: a }]), a;
2019
+ }, []), s = k((i) => {
2020
+ o((a) => a.filter((c) => c.id !== i));
1834
2021
  }, []);
1835
- return /* @__PURE__ */ m(de, { value: { addToast: n, removeToast: i }, children: [
2022
+ return /* @__PURE__ */ m(be, { value: { addToast: n, removeToast: s }, children: [
1836
2023
  t,
1837
2024
  /* @__PURE__ */ e(
1838
2025
  "div",
1839
2026
  {
1840
2027
  "aria-label": "Notifications",
1841
2028
  className: "fixed bottom-lg right-lg z-50 flex flex-col-reverse gap-sm pointer-events-none",
1842
- children: r.map((s) => /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(mt, { toast: s, onRemove: i }) }, s.id))
2029
+ children: r.map((i) => /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(vt, { toast: i, onRemove: s }) }, i.id))
1843
2030
  }
1844
2031
  )
1845
2032
  ] });
1846
2033
  }
1847
- const me = S(null), bt = {
2034
+ const xe = R(null), wt = {
1848
2035
  name: "Alice Martin",
1849
2036
  email: "alice.martin@epfl.ch",
1850
2037
  role: "admin"
1851
2038
  };
1852
- function Yt({ initialUser: t = bt, children: r }) {
1853
- const [o, n] = N(t), i = (a) => n((c) => ({ ...c, role: a })), s = L(() => ({ user: o, setRole: i }), [o]);
1854
- return /* @__PURE__ */ e(me.Provider, { value: s, 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 });
1855
2042
  }
1856
- function _t() {
1857
- const t = A(me);
2043
+ function sr() {
2044
+ const t = M(xe);
1858
2045
  if (!t) throw new Error("useAuth must be used within an AuthProvider");
1859
2046
  return t;
1860
2047
  }
1861
2048
  export {
1862
- qt as Alert,
1863
- Yt as AuthProvider,
1864
- wt as Avatar,
1865
- Nt as Badge,
1866
- nt as BurgerDrawer,
1867
- kt as Button,
1868
- Ot as Card,
1869
- Ct as Checkbox,
1870
- Kt as ConfirmDialog,
1871
- Vt as DescriptionList,
1872
- ct as Dialog,
1873
- jt as DropdownDivider,
1874
- Ft as DropdownItem,
1875
- Et as DropdownMenu,
1876
- Ut as EmptyState,
1877
- Re as IconButton,
1878
- zt as Input,
1879
- Lt as LanguageSwitcher,
1880
- Mt as PageShell,
1881
- St as Popover,
1882
- He as RadioGroup,
1883
- $t as Select,
1884
- tt as SideNav,
1885
- se as Spinner,
1886
- Dt as Switch,
1887
- At as TabPanel,
1888
- Ht as Table,
1889
- Pt as Tabs,
1890
- It as Textarea,
1891
- Rt as ThemeToggle,
1892
- Xt as ToastProvider,
1893
- Bt as Tooltip,
1894
- et as TopNav,
1895
- Q as epflSelectClassNames,
1896
- Ke as epflSelectTheme,
1897
- Tt as initTheme,
1898
- _t as useAuth,
1899
- Xe as useLanguage,
1900
- Ze as useTheme,
1901
- 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
1902
2091
  };
1903
2092
  //# sourceMappingURL=poesis.js.map