@epfl-sti/poesis 0.1.1 → 0.1.2

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,21 +1,21 @@
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-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-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}.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-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-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-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)}.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-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-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 $, useCallback as k, useEffect as z, createContext as D, useContext as F, useSyncExternalStore as ce, useMemo as de } from "react";
3
- import { useTranslation as J } from "react-i18next";
4
- import { jsx as e, jsxs as m, Fragment as S } from "react/jsx-runtime";
5
- import { SunFill as me, MoonFill as ue, List as be, ChevronDown as E, XLg as pe, ChevronUp as Y, InfoCircleFill as Q, XCircleFill as Z, ExclamationTriangleFill as P, CheckCircleFill as ee, X as B } from "react-bootstrap-icons";
6
- import { createPortal as fe } from "react-dom";
7
- import { useFloating as L, autoUpdate as R, offset as T, flip as M, shift as O, useClick as te, useDismiss as U, useRole as H, useListNavigation as xe, useInteractions as V, FloatingPortal as q, FloatingFocusManager as re, arrow as ge, useHover as he, useFocus as ye } from "@floating-ui/react";
8
- import ve from "react-select";
9
- const we = {
1
+ (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode(`@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-6xl:72rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #0000001f;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-epfl-red:red;--color-epfl-red-dark:#b51f1f;--color-epfl-leman:#00a79f;--color-epfl-canard:#007480;--color-epfl-canard-dark:#004248;--color-primary:var(--action-primary);--color-primary-hover:var(--action-primary-hover);--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-border:var(--border-default);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-success:var(--semantic-success);--color-success-bg:var(--semantic-success-bg);--color-warning:var(--semantic-warning);--color-warning-bg:var(--semantic-warning-bg);--color-error:var(--semantic-error);--color-error-bg:var(--semantic-error-bg);--color-info:var(--semantic-info);--color-info-bg:var(--semantic-info-bg);--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--text-h1:2rem;--text-h1--line-height:1.2;--text-h2:1.5rem;--text-h2--line-height:1.3;--text-h3:1.25rem;--text-h3--line-height:1.4;--text-body:.9375rem;--text-body--line-height:1.5;--text-small:.8125rem;--text-small--line-height:1.5;--text-caption:.75rem;--text-caption--line-height:1.4}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.right-lg{right:var(--spacing-lg)}.bottom-lg{bottom:var(--spacing-lg)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-xs{margin-top:var(--spacing-xs)}.mr-lg{margin-right:var(--spacing-lg)}.mr-sm{margin-right:var(--spacing-sm)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\\[4px\\]{width:4px}.w-\\[8px\\]{width:8px}.w-\\[16px\\]{width:16px}.w-\\[24px\\]{width:24px}.w-\\[32px\\]{width:32px}.w-\\[48px\\]{width:48px}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\\[24rem\\]{max-width:24rem}.max-w-\\[32rem\\]{max-width:32rem}.max-w-\\[42rem\\]{max-width:42rem}.max-w-\\[600px\\]{max-width:600px}.max-w-\\[var\\(--container-6xl\\)\\]{max-width:var(--container-6xl)}.max-w-\\[var\\(--container-md\\)\\]{max-width:var(--container-md)}.max-w-\\[var\\(--container-xl\\)\\]{max-width:var(--container-xl)}.max-w-\\[var\\(--container-xs\\)\\]{max-width:var(--container-xs)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--spacing-md)}.max-w-screen{max-width:100vw}.max-w-sm{max-width:var(--spacing-sm)}.max-w-xl{max-width:var(--spacing-xl)}.max-w-xs{max-width:var(--spacing-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[500px\\]{min-width:500px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-dialog-in{animation:.2s ease-out dialog-in}.animate-floating-in{animation:.15s ease-out floating-in}.animate-slide-in{animation:.25s ease-out slide-in}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-px{gap:1px}.gap-sm{gap:var(--spacing-sm)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.\\!rounded-md{border-radius:var(--radius-md)!important}.\\!rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.\\!border-border{border-color:var(--color-border)!important}.\\!border-epfl-canard{border-color:var(--color-epfl-canard)!important}.\\!border-error{border-color:var(--color-error)!important}.\\!border-primary{border-color:var(--color-primary)!important}.border-border{border-color:var(--color-border)}.border-border-strong{border-color:var(--color-border-strong)}.border-error,.border-error\\/30{border-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.border-error\\/30{border-color:color-mix(in oklab,var(--color-error) 30%,transparent)}}.border-info\\/30{border-color:var(--color-info)}@supports (color:color-mix(in lab,red,red)){.border-info\\/30{border-color:color-mix(in oklab,var(--color-info) 30%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab,red,red)){.border-success\\/30{border-color:color-mix(in oklab,var(--color-success) 30%,transparent)}}.border-transparent{border-color:#0000}.border-warning\\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab,red,red)){.border-warning\\/30{border-color:color-mix(in oklab,var(--color-warning) 30%,transparent)}}.\\!bg-bg-tertiary{background-color:var(--color-bg-tertiary)!important}.\\!bg-epfl-canard{background-color:var(--color-epfl-canard)!important}.\\!bg-primary{background-color:var(--color-primary)!important}.bg-bg-primary{background-color:var(--color-bg-primary)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-tertiary,.bg-bg-tertiary\\/50{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab,red,red)){.bg-bg-tertiary\\/50{background-color:color-mix(in oklab,var(--color-bg-tertiary) 50%,transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-epfl-canard{background-color:var(--color-epfl-canard)}.bg-epfl-canard-dark{background-color:var(--color-epfl-canard-dark)}.bg-epfl-leman{background-color:var(--color-epfl-leman)}.bg-epfl-red{background-color:var(--color-epfl-red)}.bg-epfl-red-dark{background-color:var(--color-epfl-red-dark)}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-info{background-color:var(--color-info)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-primary,.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-text-muted{background-color:var(--color-text-muted)}.bg-text-primary{background-color:var(--color-text-primary)}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.object-cover{object-fit:cover}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2xl{padding:var(--spacing-2xl)}.p-16{padding:calc(var(--spacing) * 16)}.p-lg{padding:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.p-sm{padding:var(--spacing-sm)}.p-xl{padding:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-lg{padding-inline:var(--spacing-lg)}.px-md{padding-inline:var(--spacing-md)}.px-sm{padding-inline:var(--spacing-sm)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-2xl{padding-block:var(--spacing-2xl)}.py-lg{padding-block:var(--spacing-lg)}.py-md{padding-block:var(--spacing-md)}.py-sm{padding-block:var(--spacing-sm)}.py-xl{padding-block:var(--spacing-xl)}.py-xs{padding-block:var(--spacing-xs)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pt-xl{padding-top:var(--spacing-xl)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-10{padding-left:calc(var(--spacing) * 10)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-h1{font-size:var(--text-h1);line-height:var(--tw-leading,var(--text-h1--line-height))}.text-h2{font-size:var(--text-h2);line-height:var(--tw-leading,var(--text-h2--line-height))}.text-h3{font-size:var(--text-h3);line-height:var(--tw-leading,var(--text-h3--line-height))}.text-small{font-size:var(--text-small);line-height:var(--tw-leading,var(--text-small--line-height))}.leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.leading-\\[1\\.3\\]{--tw-leading:1.3;line-height:1.3}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.\\!text-white{color:var(--color-white)!important}.text-bg-primary{color:var(--color-bg-primary)}.text-epfl-canard{color:var(--color-epfl-canard)}.text-epfl-leman{color:var(--color-epfl-leman)}.text-epfl-red{color:var(--color-epfl-red)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.\\!shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.\\!shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 4px 16px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 2px 8px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 8px 32px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\\!ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.\\!ring-epfl-canard{--tw-ring-color:var(--color-epfl-canard)!important}.\\!ring-primary{--tw-ring-color:var(--color-primary)!important}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\\:bg-primary:is(:where(.peer):checked~*){background-color:var(--color-primary)}.peer-focus-visible\\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-focus-visible\\:ring-primary:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-primary)}.peer-focus-visible\\:ring-offset-2:is(:where(.peer):focus-visible~*){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.peer-focus-visible\\:ring-offset-bg-primary:is(:where(.peer):focus-visible~*){--tw-ring-offset-color:var(--color-bg-primary)}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\\:text-text-muted::placeholder{color:var(--color-text-muted)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\\:left-0\\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\\:size-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.after\\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.after\\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\\:after\\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\\:border-\\[5px\\]:checked{border-style:var(--tw-border-style);border-width:5px}.checked\\:border-primary:checked{border-color:var(--color-primary)}.checked\\:bg-primary:checked{background-color:var(--color-primary)}.checked\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Cpath\\%20d\\%3D\\%22M12\\.207\\%204\\.793a1\\%201\\%200\\%20010\\%201\\.414l-5\\%205a1\\%201\\%200\\%2001-1\\.414\\%200l-2-2a1\\%201\\%200\\%20011\\.414-1\\.414L6\\.5\\%209\\.086l4\\.293-4\\.293a1\\%201\\%200\\%20011\\.414\\%200z\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:checked{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%20010%201.414l-5%205a1%201%200%2001-1.414%200l-2-2a1%201%200%20011.414-1.414L6.5%209.086l4.293-4.293a1%201%200%20011.414%200z%22%2F%3E%3C%2Fsvg%3E)}.checked\\:bg-center:checked{background-position:50%}.checked\\:bg-no-repeat:checked{background-repeat:no-repeat}.indeterminate\\:border-primary:indeterminate{border-color:var(--color-primary)}.indeterminate\\:bg-primary:indeterminate{background-color:var(--color-primary)}.indeterminate\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Crect\\%20x\\%3D\\%223\\%22\\%20y\\%3D\\%227\\%22\\%20width\\%3D\\%2210\\%22\\%20height\\%3D\\%222\\%22\\%20rx\\%3D\\%221\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:indeterminate{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2210%22%20height%3D%222%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E)}.indeterminate\\:bg-center:indeterminate{background-position:50%}.indeterminate\\:bg-no-repeat:indeterminate{background-repeat:no-repeat}@media(hover:hover){.hover\\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\\:bg-bg-tertiary:hover,.hover\\:bg-bg-tertiary\\/70:hover{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-bg-tertiary\\/70:hover{background-color:color-mix(in oklab,var(--color-bg-tertiary) 70%,transparent)}}.hover\\:bg-error-bg:hover{background-color:var(--color-error-bg)}.hover\\:bg-error\\/80:hover{background-color:var(--color-error)}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-error\\/80:hover{background-color:color-mix(in oklab,var(--color-error) 80%,transparent)}}.hover\\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\\:text-text-primary:hover{color:var(--color-text-primary)}.hover\\:text-text-secondary:hover{color:var(--color-text-secondary)}.hover\\:opacity-90:hover{opacity:.9}}.focus\\:border-error:focus{border-color:var(--color-error)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.focus\\:bg-bg-tertiary:focus{background-color:var(--color-bg-tertiary)}.focus\\:bg-error-bg:focus{background-color:var(--color-error-bg)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-error:focus{--tw-ring-color:var(--color-error)}.focus\\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-error:focus-visible{--tw-ring-color:var(--color-error)}.focus-visible\\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-bg-primary:focus-visible{--tw-ring-offset-color:var(--color-bg-primary)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-bg-secondary:disabled{background-color:var(--color-bg-secondary)}.disabled\\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\\:col-span-2{grid-column:span 2/span 2}.sm\\:w-1\\/3{width:33.3333%}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:gap-lg{gap:var(--spacing-lg)}}@media(min-width:48rem){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:px-lg{padding-inline:var(--spacing-lg)}}.\\[\\&\\>svg\\]\\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\\[\\&\\>svg\\]\\:size-5>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}}:root{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e6e6e6;--border-default:#d5d5d5;--border-strong:#c1c1c1;--text-primary:#212121;--text-secondary:#707070;--text-muted:#8e8e8e;--semantic-success:#1b874b;--semantic-success-bg:#e8f5e9;--semantic-warning:#d4860a;--semantic-warning-bg:#fff3e0;--semantic-error:#d32f2f;--semantic-error-bg:#ffebee;--semantic-info:#1976d2;--semantic-info-bg:#e3f2fd;--action-primary:#007480;--action-primary-hover:#004248}.dark{--bg-primary:#1a1a1a;--bg-secondary:#242424;--bg-tertiary:#2e2e2e;--border-default:#3a3a3a;--border-strong:#505050;--text-primary:#f0f0f0;--text-secondary:#a0a0a0;--text-muted:#707070;--semantic-success:#34d37a;--semantic-success-bg:#1a2e1a;--semantic-warning:#ffad33;--semantic-warning-bg:#2e2410;--semantic-error:#ff6b6b;--semantic-error-bg:#2e1515;--semantic-info:#64b5f6;--semantic-info-bg:#152538;--action-primary:#009ba6;--action-primary-hover:#007480;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009}@keyframes slide-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes floating-in{0%{opacity:0}to{opacity:1}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}`)),document.head.appendChild(r)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})();
2
+ import { useState as N, forwardRef as C, useId as I, useRef as D, useCallback as k, useEffect as $, createContext as S, useContext as A, useSyncExternalStore as ue, useMemo as L } from "react";
3
+ import { useTranslation as Z } from "react-i18next";
4
+ import { jsx as e, jsxs as m, Fragment as B } from "react/jsx-runtime";
5
+ import { SunFill as be, MoonFill as pe, List as fe, ChevronDown as ee, XLg as xe, SortDown as ge, SortNumericDown as he, SortNumericDownAlt as ye, SortAlphaDown as ve, SortAlphaDownAlt as we, InfoCircleFill as te, XCircleFill as re, ExclamationTriangleFill as T, CheckCircleFill as ne, X as M } from "react-bootstrap-icons";
6
+ import { createPortal as Ne } from "react-dom";
7
+ import { useFloating as O, autoUpdate as V, offset as U, flip as H, shift as q, useClick as oe, useDismiss as K, useRole as G, useListNavigation as ke, useInteractions as X, FloatingPortal as Y, FloatingFocusManager as ie, arrow as Ce, useHover as ze, useFocus as $e } from "@floating-ui/react";
8
+ import De from "react-select";
9
+ const Ie = {
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 Ne(t) {
14
+ function je(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 bt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }) {
18
+ function wt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }) {
19
19
  const [a, c] = N(!1), d = !!t && !a;
20
20
  return /* @__PURE__ */ e(
21
21
  "span",
@@ -25,7 +25,7 @@ function bt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }
25
25
  className: [
26
26
  "inline-flex items-center justify-center rounded-full overflow-hidden",
27
27
  "bg-primary text-white font-semibold select-none shrink-0",
28
- we[o],
28
+ Ie[o],
29
29
  s
30
30
  ].join(" "),
31
31
  ...i,
@@ -37,29 +37,29 @@ function bt({ src: t, name: r, size: o = "md", alt: n, className: s = "", ...i }
37
37
  className: "size-full object-cover",
38
38
  onError: () => c(!0)
39
39
  }
40
- ) : /* @__PURE__ */ e("span", { "aria-hidden": "true", children: Ne(r) })
40
+ ) : /* @__PURE__ */ e("span", { "aria-hidden": "true", children: je(r) })
41
41
  }
42
42
  );
43
43
  }
44
- const ke = {
44
+ const Fe = {
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
- }, Ce = {
50
+ }, Ee = {
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 pt({ color: t = "default", dot: r, className: o = "", children: n, ...s }) {
57
+ function Nt({ 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 ${Ce[t]} ${o}`,
62
+ className: `inline-block size-2.5 rounded-full ${Ee[t]} ${o}`,
63
63
  ...s
64
64
  }
65
65
  ) : /* @__PURE__ */ e(
@@ -68,7 +68,7 @@ function pt({ color: t = "default", dot: r, className: o = "", children: n, ...s
68
68
  className: [
69
69
  "inline-flex items-center rounded-sm px-2 py-0.5",
70
70
  "text-caption font-medium leading-none",
71
- ke[t],
71
+ Fe[t],
72
72
  o
73
73
  ].join(" "),
74
74
  ...s,
@@ -76,19 +76,19 @@ function pt({ color: t = "default", dot: r, className: o = "", children: n, ...s
76
76
  }
77
77
  );
78
78
  }
79
- const ze = {
79
+ const Se = {
80
80
  sm: "size-4",
81
81
  md: "size-6",
82
82
  lg: "size-8"
83
83
  };
84
- function ne({ size: t = "md", className: r = "", ...o }) {
84
+ function se({ 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 ${ze[t]} ${r}`,
91
+ className: `animate-spin ${Se[t]} ${r}`,
92
92
  role: "status",
93
93
  "aria-label": "Loading",
94
94
  ...o,
@@ -116,20 +116,20 @@ function ne({ size: t = "md", className: r = "", ...o }) {
116
116
  }
117
117
  );
118
118
  }
119
- const $e = {
119
+ const Ae = {
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
- }, Ie = {
124
+ }, Pe = {
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
- }, je = {
128
+ }, Be = {
129
129
  sm: "sm",
130
130
  md: "sm",
131
131
  lg: "md"
132
- }, ft = C(function({
132
+ }, kt = C(function({
133
133
  variant: r = "primary",
134
134
  size: o = "md",
135
135
  loading: n = !1,
@@ -154,30 +154,30 @@ const $e = {
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
- $e[r],
158
- Ie[o],
157
+ Ae[r],
158
+ Pe[o],
159
159
  // disabled / loading
160
160
  b && "opacity-50 pointer-events-none",
161
161
  c
162
162
  ].filter(Boolean).join(" "),
163
163
  ...l,
164
164
  children: [
165
- n ? /* @__PURE__ */ e(ne, { size: je[o], "aria-hidden": "true" }) : i,
165
+ n ? /* @__PURE__ */ e(se, { size: Be[o], "aria-hidden": "true" }) : i,
166
166
  d,
167
167
  !n && a
168
168
  ]
169
169
  }
170
170
  );
171
- }), De = {
171
+ }), Le = {
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
- }, Fe = {
176
+ }, Re = {
177
177
  sm: "size-7 text-small",
178
178
  md: "size-9 text-body",
179
179
  lg: "size-11 text-body"
180
- }, Ee = C(function({ variant: r = "ghost", size: o = "md", loading: n = !1, disabled: s, icon: i, className: a = "", ...c }, d) {
180
+ }, Te = C(function({ variant: r = "ghost", size: o = "md", loading: n = !1, disabled: s, icon: i, className: a = "", ...c }, d) {
181
181
  const l = s || n;
182
182
  return /* @__PURE__ */ e(
183
183
  "button",
@@ -192,17 +192,17 @@ const $e = {
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
- De[r],
196
- Fe[o],
195
+ Le[r],
196
+ Re[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(ne, { size: "sm", "aria-hidden": "true" }) : i
202
+ children: n ? /* @__PURE__ */ e(se, { size: "sm", "aria-hidden": "true" }) : i
203
203
  }
204
204
  );
205
- }), xt = C(function({
205
+ }), Ct = C(function({
206
206
  label: r,
207
207
  indeterminate: o = !1,
208
208
  helperText: n,
@@ -212,25 +212,25 @@ const $e = {
212
212
  disabled: c,
213
213
  ...d
214
214
  }, l) {
215
- const u = I(), b = a ?? u, g = `${b}-helper`, f = !!s, y = $(null), p = k(
216
- (x) => {
217
- y.current = x, typeof l == "function" ? l(x) : l && (l.current = x);
215
+ const u = I(), b = a ?? u, h = `${b}-helper`, p = !!s, y = D(null), f = k(
216
+ (v) => {
217
+ y.current = v, typeof l == "function" ? l(v) : l && (l.current = v);
218
218
  },
219
219
  [l]
220
220
  );
221
- return z(() => {
221
+ return $(() => {
222
222
  y.current && (y.current.indeterminate = o);
223
223
  }, [o]), /* @__PURE__ */ m("div", { className: `flex flex-col gap-1 ${i}`, children: [
224
224
  /* @__PURE__ */ m("div", { className: "flex items-start gap-2", children: [
225
225
  /* @__PURE__ */ e(
226
226
  "input",
227
227
  {
228
- ref: p,
228
+ ref: f,
229
229
  id: b,
230
230
  type: "checkbox",
231
231
  disabled: c,
232
- "aria-invalid": f || void 0,
233
- "aria-describedby": n || s ? g : void 0,
232
+ "aria-invalid": p || void 0,
233
+ "aria-describedby": n || s ? h : void 0,
234
234
  className: [
235
235
  "mt-0.5 size-4 shrink-0 cursor-pointer rounded-sm border appearance-none",
236
236
  "bg-bg-primary transition-colors",
@@ -238,7 +238,7 @@ const $e = {
238
238
  "indeterminate:bg-primary indeterminate:border-primary",
239
239
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-bg-primary",
240
240
  "disabled:cursor-not-allowed disabled:opacity-50",
241
- f ? "border-error" : "border-border hover:border-border-strong",
241
+ p ? "border-error" : "border-border hover:border-border-strong",
242
242
  // Checkmark via background SVG
243
243
  "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:bg-center checked:bg-no-repeat",
244
244
  // Indeterminate dash
@@ -259,29 +259,29 @@ const $e = {
259
259
  (n || s) && /* @__PURE__ */ e(
260
260
  "p",
261
261
  {
262
- id: g,
263
- className: `text-caption pl-6 ${f ? "text-error" : "text-text-secondary"}`,
262
+ id: h,
263
+ className: `text-caption pl-6 ${p ? "text-error" : "text-text-secondary"}`,
264
264
  children: s ?? n
265
265
  }
266
266
  )
267
267
  ] });
268
- }), Se = {
268
+ }), Me = {
269
269
  sm: "h-8 text-small px-2.5",
270
270
  md: "h-10 text-body px-3",
271
271
  lg: "h-12 text-body px-3.5"
272
- }, Ae = {
272
+ }, Oe = {
273
273
  sm: "pl-8",
274
274
  md: "pl-10",
275
275
  lg: "pl-11"
276
- }, Pe = {
276
+ }, Ve = {
277
277
  sm: "pr-8",
278
278
  md: "pr-10",
279
279
  lg: "pr-11"
280
- }, _ = {
280
+ }, J = {
281
281
  sm: "[&>svg]:size-4",
282
282
  md: "[&>svg]:size-5",
283
283
  lg: "[&>svg]:size-5"
284
- }, gt = C(function({
284
+ }, zt = C(function({
285
285
  label: r,
286
286
  helperText: o,
287
287
  error: n,
@@ -293,14 +293,14 @@ const $e = {
293
293
  disabled: l,
294
294
  ...u
295
295
  }, b) {
296
- const g = I(), f = d ?? g, y = `${f}-helper`, p = !!n;
296
+ const h = I(), p = d ?? h, y = `${p}-helper`, f = !!n;
297
297
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${c}`, children: [
298
- r && /* @__PURE__ */ e("label", { htmlFor: f, className: "text-small font-medium text-text-primary", children: r }),
298
+ r && /* @__PURE__ */ e("label", { htmlFor: p, className: "text-small font-medium text-text-primary", children: r }),
299
299
  /* @__PURE__ */ m("div", { className: "relative", children: [
300
300
  s && /* @__PURE__ */ e(
301
301
  "span",
302
302
  {
303
- className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${_[a]}`,
303
+ className: `pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3 text-text-secondary ${J[a]}`,
304
304
  "aria-hidden": "true",
305
305
  children: s
306
306
  }
@@ -309,19 +309,19 @@ const $e = {
309
309
  "input",
310
310
  {
311
311
  ref: b,
312
- id: f,
312
+ id: p,
313
313
  disabled: l,
314
- "aria-invalid": p || void 0,
314
+ "aria-invalid": f || void 0,
315
315
  "aria-describedby": o || n ? y : void 0,
316
316
  className: [
317
317
  "w-full rounded-md border bg-bg-primary text-text-primary placeholder:text-text-muted",
318
318
  "outline-none transition-colors",
319
319
  "focus:border-primary focus:ring-1 focus:ring-primary",
320
320
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
321
- p ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong",
322
- Se[a],
323
- s ? Ae[a] : "",
324
- i ? Pe[a] : ""
321
+ f ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong",
322
+ Me[a],
323
+ s ? Oe[a] : "",
324
+ i ? Ve[a] : ""
325
325
  ].join(" "),
326
326
  ...u
327
327
  }
@@ -329,7 +329,7 @@ const $e = {
329
329
  i && /* @__PURE__ */ e(
330
330
  "span",
331
331
  {
332
- className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${_[a]}`,
332
+ className: `pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3 text-text-secondary ${J[a]}`,
333
333
  "aria-hidden": "true",
334
334
  children: i
335
335
  }
@@ -339,18 +339,18 @@ const $e = {
339
339
  "p",
340
340
  {
341
341
  id: y,
342
- className: `text-caption ${p ? "text-error" : "text-text-secondary"}`,
342
+ className: `text-caption ${f ? "text-error" : "text-text-secondary"}`,
343
343
  children: n ?? o
344
344
  }
345
345
  )
346
346
  ] });
347
- }), oe = D(null);
348
- function Be() {
349
- const t = F(oe);
347
+ }), ae = S(null);
348
+ function Ue() {
349
+ const t = A(ae);
350
350
  if (!t) throw new Error("RadioGroup.Item must be used within RadioGroup");
351
351
  return t;
352
352
  }
353
- function Le({
353
+ function He({
354
354
  name: t,
355
355
  value: r,
356
356
  onChange: o,
@@ -362,12 +362,12 @@ function Le({
362
362
  children: d,
363
363
  className: l = ""
364
364
  }) {
365
- const u = I(), b = t ?? u, f = `${`${b}-group`}-helper`, y = !!i;
366
- return /* @__PURE__ */ e(oe.Provider, { value: { name: b, value: r, onChange: o, disabled: c, hasError: y }, children: /* @__PURE__ */ m(
365
+ const u = I(), b = t ?? u, p = `${`${b}-group`}-helper`, y = !!i;
366
+ return /* @__PURE__ */ e(ae.Provider, { value: { name: b, value: r, onChange: o, disabled: c, hasError: y }, children: /* @__PURE__ */ m(
367
367
  "fieldset",
368
368
  {
369
369
  className: `flex flex-col gap-2 ${l}`,
370
- "aria-describedby": s || i ? f : void 0,
370
+ "aria-describedby": s || i ? p : void 0,
371
371
  disabled: c,
372
372
  children: [
373
373
  n && /* @__PURE__ */ e("legend", { className: "text-small font-medium text-text-primary mb-1", children: n }),
@@ -382,7 +382,7 @@ function Le({
382
382
  (s || i) && /* @__PURE__ */ e(
383
383
  "p",
384
384
  {
385
- id: f,
385
+ id: p,
386
386
  className: `text-caption ${y ? "text-error" : "text-text-secondary"}`,
387
387
  children: i ?? s
388
388
  }
@@ -391,14 +391,14 @@ function Le({
391
391
  }
392
392
  ) });
393
393
  }
394
- function Re({ value: t, label: r, description: o, disabled: n }) {
394
+ function qe({ value: t, label: r, description: o, disabled: n }) {
395
395
  const {
396
396
  name: s,
397
397
  value: i,
398
398
  onChange: a,
399
399
  disabled: c,
400
400
  hasError: d
401
- } = Be(), l = I(), u = c || n;
401
+ } = Ue(), l = I(), u = c || n;
402
402
  return /* @__PURE__ */ m("div", { className: "flex items-start gap-2", children: [
403
403
  /* @__PURE__ */ e(
404
404
  "input",
@@ -433,8 +433,8 @@ function Re({ value: t, label: r, description: o, disabled: n }) {
433
433
  ] })
434
434
  ] });
435
435
  }
436
- Le.Item = Re;
437
- const Te = (t) => ({
436
+ He.Item = qe;
437
+ const Ke = (t) => ({
438
438
  ...t,
439
439
  borderRadius: 8,
440
440
  colors: {
@@ -467,25 +467,25 @@ const Te = (t) => ({
467
467
  danger: "var(--color-error)",
468
468
  dangerLight: "var(--color-error-bg)"
469
469
  }
470
- }), W = {
470
+ }), Q = {
471
471
  control: ({ isFocused: t }) => `!shadow-sm !rounded-md !border-border ${t ? "!border-primary !ring-1 !ring-primary" : ""}`,
472
472
  menu: () => "!rounded-lg !shadow-lg !border !border-border",
473
473
  option: ({ isFocused: t, isSelected: r }) => `${r ? "!bg-primary !text-white" : t ? "!bg-bg-tertiary" : ""}`,
474
474
  multiValue: () => "!rounded-sm !bg-bg-tertiary"
475
475
  };
476
- function ht({ label: t, helperText: r, error: o, className: n = "", ...s }) {
476
+ function $t({ label: t, helperText: r, error: o, className: n = "", ...s }) {
477
477
  const i = I(), a = s.inputId ?? i, c = `${a}-helper`, d = !!o;
478
478
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${n}`, children: [
479
479
  t && /* @__PURE__ */ e("label", { htmlFor: a, className: "text-small font-medium text-text-primary", children: t }),
480
480
  /* @__PURE__ */ e(
481
- ve,
481
+ De,
482
482
  {
483
483
  inputId: a,
484
- theme: Te,
484
+ theme: Ke,
485
485
  classNames: {
486
- ...W,
486
+ ...Q,
487
487
  control: (l) => {
488
- const u = W.control?.(l) ?? "";
488
+ const u = Q.control?.(l) ?? "";
489
489
  return d ? `${u} !border-error !focus:ring-error` : u;
490
490
  }
491
491
  },
@@ -504,7 +504,7 @@ function ht({ label: t, helperText: r, error: o, className: n = "", ...s }) {
504
504
  )
505
505
  ] });
506
506
  }
507
- const yt = C(function({ label: r, helperText: o, className: n = "", id: s, disabled: i, ...a }, c) {
507
+ const Dt = C(function({ label: r, helperText: o, className: n = "", id: s, disabled: i, ...a }, c) {
508
508
  const d = I(), l = s ?? d, u = `${l}-helper`;
509
509
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1 ${n}`, children: [
510
510
  /* @__PURE__ */ m("div", { className: "flex items-center gap-3", children: [
@@ -553,7 +553,7 @@ const yt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
553
553
  ] }),
554
554
  o && /* @__PURE__ */ e("p", { id: u, className: "text-caption text-text-secondary pl-14", children: o })
555
555
  ] });
556
- }), vt = C(function({
556
+ }), It = C(function({
557
557
  label: r,
558
558
  helperText: o,
559
559
  error: n,
@@ -565,32 +565,32 @@ const yt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
565
565
  onChange: l,
566
566
  ...u
567
567
  }, b) {
568
- const g = I(), f = c ?? g, y = `${f}-helper`, p = !!n, x = $(null), h = k(() => {
569
- const v = x.current;
570
- !v || !s || (v.style.height = "auto", v.style.height = `${v.scrollHeight}px`);
568
+ const h = I(), p = c ?? h, y = `${p}-helper`, f = !!n, v = D(null), w = k(() => {
569
+ const x = v.current;
570
+ !x || !s || (x.style.height = "auto", x.style.height = `${x.scrollHeight}px`);
571
571
  }, [s]);
572
- z(() => {
573
- h();
574
- }, [h, u.value, u.defaultValue]);
575
- const w = k(
576
- (v) => {
577
- x.current = v, typeof b == "function" ? b(v) : b && (b.current = v);
572
+ $(() => {
573
+ w();
574
+ }, [w, u.value, u.defaultValue]);
575
+ const g = k(
576
+ (x) => {
577
+ v.current = x, typeof b == "function" ? b(x) : b && (b.current = x);
578
578
  },
579
579
  [b]
580
580
  );
581
581
  return /* @__PURE__ */ m("div", { className: `flex flex-col gap-1.5 ${a}`, children: [
582
- r && /* @__PURE__ */ e("label", { htmlFor: f, className: "text-small font-medium text-text-primary", children: r }),
582
+ r && /* @__PURE__ */ e("label", { htmlFor: p, className: "text-small font-medium text-text-primary", children: r }),
583
583
  /* @__PURE__ */ e(
584
584
  "textarea",
585
585
  {
586
- ref: w,
587
- id: f,
586
+ ref: g,
587
+ id: p,
588
588
  rows: i,
589
589
  disabled: d,
590
- "aria-invalid": p || void 0,
590
+ "aria-invalid": f || void 0,
591
591
  "aria-describedby": o || n ? y : void 0,
592
- onChange: (v) => {
593
- l?.(v), h();
592
+ onChange: (x) => {
593
+ l?.(x), w();
594
594
  },
595
595
  className: [
596
596
  "w-full rounded-md border bg-bg-primary text-text-primary placeholder:text-text-muted",
@@ -598,7 +598,7 @@ const yt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
598
598
  "focus:border-primary focus:ring-1 focus:ring-primary",
599
599
  "disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-bg-secondary",
600
600
  s ? "resize-none overflow-hidden" : "resize-y",
601
- p ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong"
601
+ f ? "border-error focus:border-error focus:ring-error" : "border-border hover:border-border-strong"
602
602
  ].join(" "),
603
603
  ...u
604
604
  }
@@ -607,12 +607,12 @@ const yt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
607
607
  "p",
608
608
  {
609
609
  id: y,
610
- className: `text-caption ${p ? "text-error" : "text-text-secondary"}`,
610
+ className: `text-caption ${f ? "text-error" : "text-text-secondary"}`,
611
611
  children: n ?? o
612
612
  }
613
613
  )
614
614
  ] });
615
- }), ie = D({
615
+ }), le = S({
616
616
  close: () => {
617
617
  },
618
618
  getItemProps: () => ({}),
@@ -620,11 +620,11 @@ const yt = C(function({ label: r, helperText: o, className: n = "", id: s, disab
620
620
  setActiveIndex: () => {
621
621
  }
622
622
  });
623
- function wt() {
623
+ function jt() {
624
624
  return /* @__PURE__ */ e("div", { role: "separator", className: "my-1 border-t border-border" });
625
625
  }
626
- const Nt = C(function({ children: r, icon: o, danger: n = !1, disabled: s = !1, onClick: i, className: a = "", ...c }, d) {
627
- const { close: l } = F(ie);
626
+ const Ft = C(function({ children: r, icon: o, danger: n = !1, disabled: s = !1, onClick: i, className: a = "", ...c }, d) {
627
+ const { close: l } = A(le);
628
628
  return /* @__PURE__ */ m(
629
629
  "button",
630
630
  {
@@ -650,32 +650,32 @@ const Nt = C(function({ children: r, icon: o, danger: n = !1, disabled: s = !1,
650
650
  }
651
651
  );
652
652
  });
653
- function kt({
653
+ function Et({
654
654
  trigger: t,
655
655
  children: r,
656
656
  placement: o = "bottom-start",
657
657
  className: n = ""
658
658
  }) {
659
- const [s, i] = N(!1), [a, c] = N(null), d = $([]), { refs: l, floatingStyles: u, context: b } = L({
659
+ const [s, i] = N(!1), [a, c] = N(null), d = D([]), { refs: l, floatingStyles: u, context: b } = O({
660
660
  open: s,
661
661
  onOpenChange: i,
662
662
  placement: o,
663
- middleware: [T(4), M(), O({ padding: 8 })],
664
- whileElementsMounted: R
665
- }), g = te(b), f = U(b), y = H(b, { role: "menu" }), p = xe(b, {
663
+ middleware: [U(4), H(), q({ padding: 8 })],
664
+ whileElementsMounted: V
665
+ }), h = oe(b), p = K(b), y = G(b, { role: "menu" }), f = ke(b, {
666
666
  listRef: d,
667
667
  activeIndex: a,
668
668
  onNavigate: c,
669
669
  loop: !0
670
- }), { getReferenceProps: x, getFloatingProps: h, getItemProps: w } = V([
671
- g,
672
- f,
670
+ }), { getReferenceProps: v, getFloatingProps: w, getItemProps: g } = X([
671
+ h,
672
+ p,
673
673
  y,
674
- p
675
- ]), v = k(() => i(!1), []);
676
- return /* @__PURE__ */ m(S, { children: [
677
- /* @__PURE__ */ e("span", { ref: l.setReference, className: "inline-flex", ...x(), children: t }),
678
- s && /* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(re, { context: b, modal: !1, children: /* @__PURE__ */ e(
674
+ f
675
+ ]), x = k(() => i(!1), []);
676
+ return /* @__PURE__ */ m(B, { children: [
677
+ /* @__PURE__ */ e("span", { ref: l.setReference, className: "inline-flex", ...v(), children: t }),
678
+ s && /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ e(ie, { context: b, modal: !1, children: /* @__PURE__ */ e(
679
679
  "div",
680
680
  {
681
681
  ref: l.setFloating,
@@ -685,11 +685,11 @@ function kt({
685
685
  "bg-bg-primary shadow-lg animate-floating-in",
686
686
  n
687
687
  ].join(" "),
688
- ...h(),
688
+ ...w(),
689
689
  children: /* @__PURE__ */ e(
690
- ie.Provider,
690
+ le.Provider,
691
691
  {
692
- value: { close: v, getItemProps: w, activeIndex: a, setActiveIndex: c },
692
+ value: { close: x, getItemProps: g, activeIndex: a, setActiveIndex: c },
693
693
  children: r
694
694
  }
695
695
  )
@@ -697,7 +697,7 @@ function kt({
697
697
  ) }) })
698
698
  ] });
699
699
  }
700
- function Ct({
700
+ function St({
701
701
  trigger: t,
702
702
  children: r,
703
703
  placement: o = "bottom",
@@ -705,37 +705,37 @@ function Ct({
705
705
  onOpenChange: s,
706
706
  className: i = ""
707
707
  }) {
708
- const [a, c] = N(!1), d = n !== void 0, l = d ? n : a, u = d ? (v) => s?.(v) : c, { refs: b, floatingStyles: g, context: f } = L({
708
+ const [a, c] = N(!1), d = n !== void 0, l = d ? n : a, u = d ? (x) => s?.(x) : c, { refs: b, floatingStyles: h, context: p } = O({
709
709
  open: l,
710
710
  onOpenChange: u,
711
711
  placement: o,
712
- middleware: [T(8), M(), O({ padding: 8 })],
713
- whileElementsMounted: R
714
- }), y = te(f), p = U(f), x = H(f), { getReferenceProps: h, getFloatingProps: w } = V([y, p, x]);
715
- return /* @__PURE__ */ m(S, { children: [
716
- /* @__PURE__ */ e("span", { ref: b.setReference, className: "inline-flex", ...h(), children: t }),
717
- l && /* @__PURE__ */ e(q, { children: /* @__PURE__ */ e(re, { context: f, modal: !1, children: /* @__PURE__ */ e(
712
+ middleware: [U(8), H(), q({ padding: 8 })],
713
+ whileElementsMounted: V
714
+ }), y = oe(p), f = K(p), v = G(p), { getReferenceProps: w, getFloatingProps: g } = X([y, f, v]);
715
+ return /* @__PURE__ */ m(B, { children: [
716
+ /* @__PURE__ */ e("span", { ref: b.setReference, className: "inline-flex", ...w(), children: t }),
717
+ l && /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ e(ie, { context: p, modal: !1, children: /* @__PURE__ */ e(
718
718
  "div",
719
719
  {
720
720
  ref: b.setFloating,
721
- style: g,
721
+ style: h,
722
722
  className: [
723
723
  "z-50 rounded-lg border border-border p-md",
724
724
  "bg-bg-primary shadow-lg animate-floating-in",
725
725
  i
726
726
  ].join(" "),
727
- ...w(),
727
+ ...g(),
728
728
  children: r
729
729
  }
730
730
  ) }) })
731
731
  ] });
732
732
  }
733
- const se = D({
733
+ const ce = S({
734
734
  activeValue: "",
735
735
  idPrefix: ""
736
736
  });
737
- function zt({ value: t, children: r, className: o = "" }) {
738
- const { activeValue: n, idPrefix: s } = F(se), i = n === t;
737
+ function At({ value: t, children: r, className: o = "" }) {
738
+ const { activeValue: n, idPrefix: s } = A(ce), i = n === t;
739
739
  return /* @__PURE__ */ e(
740
740
  "div",
741
741
  {
@@ -749,7 +749,7 @@ function zt({ value: t, children: r, className: o = "" }) {
749
749
  }
750
750
  );
751
751
  }
752
- function $t({
752
+ function Pt({
753
753
  items: t,
754
754
  value: r,
755
755
  defaultValue: o,
@@ -757,40 +757,40 @@ function $t({
757
757
  children: s,
758
758
  className: i = ""
759
759
  }) {
760
- const a = I().replace(/:/g, ""), c = $(null), d = r !== void 0, [l, u] = N(
761
- () => o ?? t.find((p) => !p.disabled)?.value ?? t[0]?.value ?? ""
762
- ), b = d ? r : l, g = k(
763
- (p) => {
764
- d || u(p), n?.(p);
760
+ const a = I().replace(/:/g, ""), c = D(null), d = r !== void 0, [l, u] = N(
761
+ () => o ?? t.find((f) => !f.disabled)?.value ?? t[0]?.value ?? ""
762
+ ), b = d ? r : l, h = k(
763
+ (f) => {
764
+ d || u(f), n?.(f);
765
765
  },
766
766
  [d, n]
767
- ), f = t.filter((p) => !p.disabled), y = (p) => {
768
- const x = f.findIndex((v) => v.value === b);
769
- let h = x;
770
- switch (p.key) {
767
+ ), p = t.filter((f) => !f.disabled), y = (f) => {
768
+ const v = p.findIndex((x) => x.value === b);
769
+ let w = v;
770
+ switch (f.key) {
771
771
  case "ArrowRight":
772
772
  case "ArrowDown":
773
- p.preventDefault(), h = (x + 1) % f.length;
773
+ f.preventDefault(), w = (v + 1) % p.length;
774
774
  break;
775
775
  case "ArrowLeft":
776
776
  case "ArrowUp":
777
- p.preventDefault(), h = (x - 1 + f.length) % f.length;
777
+ f.preventDefault(), w = (v - 1 + p.length) % p.length;
778
778
  break;
779
779
  case "Home":
780
- p.preventDefault(), h = 0;
780
+ f.preventDefault(), w = 0;
781
781
  break;
782
782
  case "End":
783
- p.preventDefault(), h = f.length - 1;
783
+ f.preventDefault(), w = p.length - 1;
784
784
  break;
785
785
  default:
786
786
  return;
787
787
  }
788
- const w = f[h];
789
- w && (g(w.value), c.current?.querySelector(
790
- `[data-tab-value="${w.value}"]`
788
+ const g = p[w];
789
+ g && (h(g.value), c.current?.querySelector(
790
+ `[data-tab-value="${g.value}"]`
791
791
  )?.focus());
792
792
  };
793
- return /* @__PURE__ */ e(se.Provider, { value: { activeValue: b, idPrefix: a }, children: /* @__PURE__ */ m("div", { className: i, children: [
793
+ return /* @__PURE__ */ e(ce.Provider, { value: { activeValue: b, idPrefix: a }, children: /* @__PURE__ */ m("div", { className: i, children: [
794
794
  /* @__PURE__ */ e(
795
795
  "div",
796
796
  {
@@ -799,33 +799,33 @@ function $t({
799
799
  "aria-orientation": "horizontal",
800
800
  onKeyDown: y,
801
801
  className: "flex border-b border-border",
802
- children: t.map((p) => {
803
- const x = p.value === b;
802
+ children: t.map((f) => {
803
+ const v = f.value === b;
804
804
  return /* @__PURE__ */ m(
805
805
  "button",
806
806
  {
807
- id: `${a}-tab-${p.value}`,
807
+ id: `${a}-tab-${f.value}`,
808
808
  role: "tab",
809
809
  type: "button",
810
- "data-tab-value": p.value,
811
- "aria-selected": x,
812
- "aria-controls": `${a}-panel-${p.value}`,
813
- tabIndex: x ? 0 : -1,
814
- disabled: p.disabled,
815
- onClick: () => g(p.value),
810
+ "data-tab-value": f.value,
811
+ "aria-selected": v,
812
+ "aria-controls": `${a}-panel-${f.value}`,
813
+ tabIndex: v ? 0 : -1,
814
+ disabled: f.disabled,
815
+ onClick: () => h(f.value),
816
816
  className: [
817
817
  "inline-flex items-center gap-1.5 px-4 py-2.5 text-small font-medium",
818
818
  "border-b-2 -mb-px transition-colors outline-none cursor-pointer",
819
819
  "focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
820
- x ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-strong",
821
- p.disabled && "opacity-50 pointer-events-none"
820
+ v ? "border-primary text-primary" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-strong",
821
+ f.disabled && "opacity-50 pointer-events-none"
822
822
  ].filter(Boolean).join(" "),
823
823
  children: [
824
- p.icon && /* @__PURE__ */ e("span", { className: "shrink-0 size-4", children: p.icon }),
825
- p.label
824
+ f.icon && /* @__PURE__ */ e("span", { className: "shrink-0 size-4", children: f.icon }),
825
+ f.label
826
826
  ]
827
827
  },
828
- p.value
828
+ f.value
829
829
  );
830
830
  })
831
831
  }
@@ -833,41 +833,41 @@ function $t({
833
833
  s
834
834
  ] }) });
835
835
  }
836
- const Me = {
836
+ const Ge = {
837
837
  top: "bottom",
838
838
  bottom: "top",
839
839
  left: "right",
840
840
  right: "left"
841
841
  };
842
- function It({
842
+ function Bt({
843
843
  children: t,
844
844
  content: r,
845
845
  placement: o = "top",
846
846
  delay: n = 200,
847
847
  className: s = ""
848
848
  }) {
849
- const [i, a] = N(!1), c = $(null), {
849
+ const [i, a] = N(!1), c = D(null), {
850
850
  refs: d,
851
851
  floatingStyles: l,
852
852
  context: u,
853
853
  middlewareData: b,
854
- placement: g
855
- } = L({
854
+ placement: h
855
+ } = O({
856
856
  open: i,
857
857
  onOpenChange: a,
858
858
  placement: o,
859
859
  middleware: [
860
- T(8),
861
- M(),
862
- O({ padding: 8 }),
860
+ U(8),
861
+ H(),
862
+ q({ padding: 8 }),
863
863
  // eslint-disable-next-line react-hooks/refs -- floating-ui arrow middleware needs ref object
864
- ge({ element: c })
864
+ Ce({ element: c })
865
865
  ],
866
- whileElementsMounted: R
867
- }), f = he(u, { delay: n, move: !1 }), y = ye(u), p = U(u), x = H(u, { role: "tooltip" }), { getReferenceProps: h, getFloatingProps: w } = V([f, y, p, x]), v = g.split("-")[0], G = b.arrow?.x, X = b.arrow?.y;
868
- return /* @__PURE__ */ m(S, { children: [
869
- /* @__PURE__ */ e("span", { ref: d.setReference, className: "inline-flex", ...h(), children: t }),
870
- i && r && /* @__PURE__ */ e(q, { children: /* @__PURE__ */ m(
866
+ whileElementsMounted: V
867
+ }), p = ze(u, { delay: n, move: !1 }), y = $e(u), f = K(u), v = G(u, { role: "tooltip" }), { getReferenceProps: w, getFloatingProps: g } = X([p, y, f, v]), x = h.split("-")[0], z = b.arrow?.x, P = b.arrow?.y;
868
+ return /* @__PURE__ */ m(B, { children: [
869
+ /* @__PURE__ */ e("span", { ref: d.setReference, className: "inline-flex", ...w(), children: t }),
870
+ i && r && /* @__PURE__ */ e(Y, { children: /* @__PURE__ */ m(
871
871
  "div",
872
872
  {
873
873
  ref: d.setFloating,
@@ -879,7 +879,7 @@ function It({
879
879
  "pointer-events-none animate-floating-in",
880
880
  s
881
881
  ].join(" "),
882
- ...w(),
882
+ ...g(),
883
883
  children: [
884
884
  r,
885
885
  /* @__PURE__ */ e(
@@ -888,9 +888,9 @@ function It({
888
888
  ref: c,
889
889
  className: "absolute size-2 bg-text-primary rotate-45",
890
890
  style: {
891
- left: G != null ? `${G}px` : "",
892
- top: X != null ? `${X}px` : "",
893
- [Me[v]]: "-4px"
891
+ left: z != null ? `${z}px` : "",
892
+ top: P != null ? `${P}px` : "",
893
+ [Ge[x]]: "-4px"
894
894
  }
895
895
  }
896
896
  )
@@ -899,8 +899,8 @@ function It({
899
899
  ) })
900
900
  ] });
901
901
  }
902
- function Oe() {
903
- const { i18n: t } = J(), r = t.language ?? "en", o = k(
902
+ function Xe() {
903
+ const { i18n: t } = Z(), r = t.language ?? "en", o = k(
904
904
  (s) => {
905
905
  t.changeLanguage(s);
906
906
  },
@@ -910,12 +910,12 @@ function Oe() {
910
910
  }, [r, o]);
911
911
  return { language: r, toggleLanguage: n, setLanguage: o };
912
912
  }
913
- const Ue = [
913
+ const Ye = [
914
914
  { value: "en", label: "EN" },
915
915
  { value: "fr", label: "FR" }
916
916
  ];
917
- function jt({ className: t = "" }) {
918
- const { language: r, setLanguage: o } = Oe();
917
+ function Lt({ className: t = "" }) {
918
+ const { language: r, setLanguage: o } = Xe();
919
919
  return /* @__PURE__ */ e(
920
920
  "div",
921
921
  {
@@ -925,7 +925,7 @@ function jt({ className: t = "" }) {
925
925
  "inline-flex items-center rounded-full border border-border bg-bg-secondary p-0.5",
926
926
  t
927
927
  ].filter(Boolean).join(" "),
928
- children: Ue.map(({ value: n, label: s }) => {
928
+ children: Ye.map(({ value: n, label: s }) => {
929
929
  const i = r === n;
930
930
  return /* @__PURE__ */ e(
931
931
  "button",
@@ -946,61 +946,61 @@ function jt({ className: t = "" }) {
946
946
  }
947
947
  );
948
948
  }
949
- const K = "poesis-theme", A = /* @__PURE__ */ new Set();
950
- function He() {
951
- A.forEach((t) => t());
949
+ const _ = "poesis-theme", R = /* @__PURE__ */ new Set();
950
+ function _e() {
951
+ R.forEach((t) => t());
952
952
  }
953
- function Ve(t) {
954
- return A.add(t), () => A.delete(t);
953
+ function We(t) {
954
+ return R.add(t), () => R.delete(t);
955
955
  }
956
- function qe() {
956
+ function Je() {
957
957
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
958
958
  }
959
- function Ke() {
959
+ function Qe() {
960
960
  return "light";
961
961
  }
962
- function j(t) {
963
- t === "dark" ? document.documentElement.classList.add("dark") : document.documentElement.classList.remove("dark"), localStorage.setItem(K, t), He();
962
+ function E(t) {
963
+ t === "dark" ? document.documentElement.classList.add("dark") : document.documentElement.classList.remove("dark"), localStorage.setItem(_, t), _e();
964
964
  }
965
- function Dt() {
966
- const t = localStorage.getItem(K);
965
+ function Rt() {
966
+ const t = localStorage.getItem(_);
967
967
  if (t) {
968
- j(t);
968
+ E(t);
969
969
  return;
970
970
  }
971
971
  const r = window.matchMedia("(prefers-color-scheme: dark)").matches;
972
- j(r ? "dark" : "light");
972
+ E(r ? "dark" : "light");
973
973
  }
974
- function Ge() {
975
- const t = ce(Ve, qe, Ke);
976
- z(() => {
974
+ function Ze() {
975
+ const t = ue(We, Je, Qe);
976
+ $(() => {
977
977
  const n = window.matchMedia("(prefers-color-scheme: dark)"), s = (i) => {
978
- localStorage.getItem(K) || j(i.matches ? "dark" : "light");
978
+ localStorage.getItem(_) || E(i.matches ? "dark" : "light");
979
979
  };
980
980
  return n.addEventListener("change", s), () => n.removeEventListener("change", s);
981
981
  }, []);
982
982
  const r = k(() => {
983
- j(t === "dark" ? "light" : "dark");
983
+ E(t === "dark" ? "light" : "dark");
984
984
  }, [t]), o = k((n) => {
985
- j(n);
985
+ E(n);
986
986
  }, []);
987
987
  return { theme: t, toggleTheme: r, setTheme: o, isDark: t === "dark" };
988
988
  }
989
- function Ft({ variant: t = "ghost", size: r = "md", className: o }) {
990
- const { isDark: n, toggleTheme: s } = Ge(), { t: i } = J();
989
+ function Tt({ variant: t = "ghost", size: r = "md", className: o }) {
990
+ const { isDark: n, toggleTheme: s } = Ze(), { t: i } = Z();
991
991
  return /* @__PURE__ */ e(
992
- Ee,
992
+ Te,
993
993
  {
994
994
  variant: t,
995
995
  size: r,
996
- icon: n ? /* @__PURE__ */ e(me, { size: 16 }) : /* @__PURE__ */ e(ue, { size: 16 }),
996
+ icon: n ? /* @__PURE__ */ e(be, { size: 16 }) : /* @__PURE__ */ e(pe, { size: 16 }),
997
997
  "aria-label": i("theme.toggleTheme"),
998
998
  onClick: s,
999
999
  className: o
1000
1000
  }
1001
1001
  );
1002
1002
  }
1003
- function Xe({
1003
+ function et({
1004
1004
  logo: t,
1005
1005
  categories: r = [],
1006
1006
  activeCategoryId: o,
@@ -1016,7 +1016,7 @@ function Xe({
1016
1016
  onClick: i,
1017
1017
  className: "mr-sm flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary lg:hidden",
1018
1018
  "aria-label": "Open menu",
1019
- children: /* @__PURE__ */ e(be, { size: 22 })
1019
+ children: /* @__PURE__ */ e(fe, { size: 22 })
1020
1020
  }
1021
1021
  ),
1022
1022
  /* @__PURE__ */ e("div", { className: "mr-lg flex shrink-0 items-center", children: t ?? /* @__PURE__ */ e("span", { className: "text-h3 font-bold text-epfl-red", children: "EPFL" }) }),
@@ -1044,7 +1044,7 @@ function Xe({
1044
1044
  s && /* @__PURE__ */ e("div", { className: "flex items-center gap-xs", children: s })
1045
1045
  ] });
1046
1046
  }
1047
- function Ye({
1047
+ function tt({
1048
1048
  sections: t = [],
1049
1049
  activeLinkId: r,
1050
1050
  onLinkClick: o,
@@ -1058,7 +1058,7 @@ function Ye({
1058
1058
  n ? "w-16" : "w-64"
1059
1059
  ].join(" "),
1060
1060
  children: /* @__PURE__ */ e("nav", { className: "flex flex-col gap-xs p-sm", "aria-label": "Page navigation", children: t.map((s) => /* @__PURE__ */ e(
1061
- _e,
1061
+ rt,
1062
1062
  {
1063
1063
  section: s,
1064
1064
  activeLinkId: r,
@@ -1070,7 +1070,7 @@ function Ye({
1070
1070
  }
1071
1071
  );
1072
1072
  }
1073
- function _e({
1073
+ function rt({
1074
1074
  section: t,
1075
1075
  activeLinkId: r,
1076
1076
  onLinkClick: o,
@@ -1087,7 +1087,7 @@ function _e({
1087
1087
  children: [
1088
1088
  /* @__PURE__ */ e("span", { children: t.title }),
1089
1089
  /* @__PURE__ */ e(
1090
- E,
1090
+ ee,
1091
1091
  {
1092
1092
  size: 14,
1093
1093
  className: `transition-transform ${s ? "" : "-rotate-90"}`
@@ -1119,7 +1119,7 @@ function _e({
1119
1119
  }) })
1120
1120
  ] });
1121
1121
  }
1122
- function We({
1122
+ function nt({
1123
1123
  open: t,
1124
1124
  onClose: r,
1125
1125
  categories: o = [],
@@ -1129,19 +1129,19 @@ function We({
1129
1129
  activeLinkId: a,
1130
1130
  onLinkClick: c
1131
1131
  }) {
1132
- const d = $(null);
1133
- return z(() => {
1132
+ const d = D(null);
1133
+ return $(() => {
1134
1134
  if (!t) return;
1135
1135
  const l = (u) => {
1136
1136
  u.key === "Escape" && r();
1137
1137
  };
1138
1138
  return document.addEventListener("keydown", l), () => document.removeEventListener("keydown", l);
1139
- }, [t, r]), z(() => {
1139
+ }, [t, r]), $(() => {
1140
1140
  if (!t) return;
1141
1141
  d.current?.focus();
1142
- }, [t]), z(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
1142
+ }, [t]), $(() => (t ? document.body.style.overflow = "hidden" : document.body.style.overflow = "", () => {
1143
1143
  document.body.style.overflow = "";
1144
- }), [t]), /* @__PURE__ */ m(S, { children: [
1144
+ }), [t]), /* @__PURE__ */ m(B, { children: [
1145
1145
  /* @__PURE__ */ e(
1146
1146
  "div",
1147
1147
  {
@@ -1175,7 +1175,7 @@ function We({
1175
1175
  onClick: r,
1176
1176
  className: "flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary",
1177
1177
  "aria-label": "Close menu",
1178
- children: /* @__PURE__ */ e(pe, { size: 18 })
1178
+ children: /* @__PURE__ */ e(xe, { size: 18 })
1179
1179
  }
1180
1180
  )
1181
1181
  ] }),
@@ -1205,7 +1205,7 @@ function We({
1205
1205
  })
1206
1206
  ] }),
1207
1207
  i.map((l) => /* @__PURE__ */ e(
1208
- Je,
1208
+ ot,
1209
1209
  {
1210
1210
  section: l,
1211
1211
  activeLinkId: a,
@@ -1221,7 +1221,7 @@ function We({
1221
1221
  )
1222
1222
  ] });
1223
1223
  }
1224
- function Je({
1224
+ function ot({
1225
1225
  section: t,
1226
1226
  activeLinkId: r,
1227
1227
  onLinkClick: o
@@ -1237,7 +1237,7 @@ function Je({
1237
1237
  children: [
1238
1238
  /* @__PURE__ */ e("span", { children: t.title }),
1239
1239
  /* @__PURE__ */ e(
1240
- E,
1240
+ ee,
1241
1241
  {
1242
1242
  size: 14,
1243
1243
  className: `transition-transform ${n ? "" : "-rotate-90"}`
@@ -1267,7 +1267,7 @@ function Je({
1267
1267
  }) })
1268
1268
  ] });
1269
1269
  }
1270
- function Et({
1270
+ function Mt({
1271
1271
  children: t,
1272
1272
  logo: r,
1273
1273
  categories: o = [],
@@ -1282,7 +1282,7 @@ function Et({
1282
1282
  const [u, b] = N(!1);
1283
1283
  return /* @__PURE__ */ m("div", { className: "flex h-screen flex-col bg-bg-primary", children: [
1284
1284
  /* @__PURE__ */ e(
1285
- Xe,
1285
+ et,
1286
1286
  {
1287
1287
  logo: r,
1288
1288
  categories: o,
@@ -1294,7 +1294,7 @@ function Et({
1294
1294
  ),
1295
1295
  /* @__PURE__ */ m("div", { className: "flex flex-1 overflow-hidden pt-14", children: [
1296
1296
  /* @__PURE__ */ e(
1297
- Ye,
1297
+ tt,
1298
1298
  {
1299
1299
  sections: i,
1300
1300
  activeLinkId: a,
@@ -1305,25 +1305,25 @@ function Et({
1305
1305
  /* @__PURE__ */ e("main", { className: "flex-1 overflow-y-auto px-md py-lg lg:px-lg", children: /* @__PURE__ */ e("div", { className: "mx-auto max-w-[var(--container-6xl)]", children: t }) })
1306
1306
  ] }),
1307
1307
  /* @__PURE__ */ e(
1308
- We,
1308
+ nt,
1309
1309
  {
1310
1310
  open: u,
1311
1311
  onClose: () => b(!1),
1312
1312
  categories: o,
1313
1313
  activeCategoryId: n,
1314
- onCategoryChange: (g) => {
1315
- s?.(g), b(!1);
1314
+ onCategoryChange: (h) => {
1315
+ s?.(h), b(!1);
1316
1316
  },
1317
1317
  sections: i,
1318
1318
  activeLinkId: a,
1319
- onLinkClick: (g) => {
1320
- c?.(g), b(!1);
1319
+ onLinkClick: (h) => {
1320
+ c?.(h), b(!1);
1321
1321
  }
1322
1322
  }
1323
1323
  )
1324
1324
  ] });
1325
1325
  }
1326
- const St = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, className: i = "", children: a, ...c }, d) {
1326
+ const Ot = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, className: i = "", children: a, ...c }, d) {
1327
1327
  const l = o || n;
1328
1328
  return /* @__PURE__ */ m(
1329
1329
  "div",
@@ -1345,7 +1345,7 @@ const St = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, cla
1345
1345
  ]
1346
1346
  }
1347
1347
  );
1348
- }), At = C(
1348
+ }), Vt = C(
1349
1349
  function({ items: r, layout: o = "horizontal", dividers: n = !0, className: s = "", ...i }, a) {
1350
1350
  const c = o === "horizontal";
1351
1351
  return /* @__PURE__ */ e(
@@ -1380,7 +1380,7 @@ const St = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, cla
1380
1380
  }
1381
1381
  );
1382
1382
  }
1383
- ), Pt = C(function({ illustration: r, title: o, description: n, action: s, className: i = "", ...a }, c) {
1383
+ ), Ut = C(function({ illustration: r, title: o, description: n, action: s, className: i = "", ...a }, c) {
1384
1384
  return /* @__PURE__ */ m(
1385
1385
  "div",
1386
1386
  {
@@ -1399,13 +1399,22 @@ const St = C(function({ header: r, footer: o, actions: n, noPadding: s = !1, cla
1399
1399
  }
1400
1400
  );
1401
1401
  });
1402
- function Qe({ active: t, direction: r }) {
1403
- return t ? r === "asc" ? /* @__PURE__ */ e(Y, { size: 12, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(E, { size: 12, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ m("span", { className: "inline-flex flex-col ml-1 opacity-30", "aria-hidden": !0, children: [
1404
- /* @__PURE__ */ e(Y, { size: 10 }),
1405
- /* @__PURE__ */ e(E, { size: 10, className: "-mt-0.5" })
1406
- ] });
1402
+ function it(t, r) {
1403
+ if (!t.sortValue || r.length === 0) return "text";
1404
+ for (const o of r) {
1405
+ const n = t.sortValue(o);
1406
+ if (n != null) return typeof n == "number" ? "numeric" : "text";
1407
+ }
1408
+ return "text";
1409
+ }
1410
+ function st({
1411
+ active: t,
1412
+ direction: r,
1413
+ columnType: o
1414
+ }) {
1415
+ return t ? o === "numeric" ? r === "asc" ? /* @__PURE__ */ e(he, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(ye, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : r === "asc" ? /* @__PURE__ */ e(ve, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(we, { size: 14, className: "ml-1 inline", "aria-hidden": !0 }) : /* @__PURE__ */ e(ge, { size: 14, className: "ml-1 inline opacity-30", "aria-hidden": !0 });
1407
1416
  }
1408
- const Bt = C(function({
1417
+ const Ht = C(function({
1409
1418
  columns: r,
1410
1419
  data: o,
1411
1420
  rowKey: n,
@@ -1416,13 +1425,31 @@ const Bt = C(function({
1416
1425
  className: d = "",
1417
1426
  ...l
1418
1427
  }, u) {
1419
- const [b, g] = N(), f = i ?? b, y = k(
1420
- (x) => {
1421
- const h = f?.column === x && f.direction === "asc" ? { column: x, direction: "desc" } : { column: x, direction: "asc" };
1422
- a ? a(h) : g(h);
1428
+ const [b, h] = N(), p = i ?? b, y = k(
1429
+ (g) => {
1430
+ const x = p?.column === g && p.direction === "asc" ? { column: g, direction: "desc" } : { column: g, direction: "asc" };
1431
+ a ? a(x) : h(x);
1423
1432
  },
1424
- [f, a]
1425
- ), p = o.length === 0;
1433
+ [p, a]
1434
+ ), f = L(() => {
1435
+ if (!p || a) return o;
1436
+ const g = r.find((z) => z.key === p.column);
1437
+ if (!g?.sortValue) return o;
1438
+ const x = g.sortValue;
1439
+ return [...o].sort((z, P) => {
1440
+ const j = x(z), F = x(P);
1441
+ if (j == null && F == null) return 0;
1442
+ if (j == null) return 1;
1443
+ if (F == null) return -1;
1444
+ const W = typeof j == "number" && typeof F == "number" ? j - F : String(j).localeCompare(String(F));
1445
+ return p.direction === "asc" ? W : -W;
1446
+ });
1447
+ }, [o, p, r, a]), v = L(() => {
1448
+ const g = /* @__PURE__ */ new Map();
1449
+ for (const x of r)
1450
+ x.sortable && g.set(x.key, it(x, o));
1451
+ return g;
1452
+ }, [r, o]), w = f.length === 0;
1426
1453
  return /* @__PURE__ */ e(
1427
1454
  "div",
1428
1455
  {
@@ -1430,91 +1457,92 @@ const Bt = C(function({
1430
1457
  className: ["overflow-x-auto rounded-md border border-border", d].filter(Boolean).join(" "),
1431
1458
  ...l,
1432
1459
  children: /* @__PURE__ */ m("table", { className: "w-full text-body text-left", children: [
1433
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { className: "bg-bg-secondary border-b border-border", children: r.map((x) => {
1434
- const h = f?.column === x.key;
1460
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { className: "bg-bg-secondary border-b border-border", children: r.map((g) => {
1461
+ const x = p?.column === g.key;
1435
1462
  return /* @__PURE__ */ e(
1436
1463
  "th",
1437
1464
  {
1438
1465
  className: [
1439
1466
  "px-md py-sm font-semibold text-small text-text-secondary whitespace-nowrap",
1440
- x.sortable && "cursor-pointer select-none hover:text-text-primary",
1441
- x.headerClassName
1467
+ g.sortable && "cursor-pointer select-none hover:text-text-primary",
1468
+ g.headerClassName
1442
1469
  ].filter(Boolean).join(" "),
1443
- onClick: x.sortable ? () => y(x.key) : void 0,
1444
- "aria-sort": h ? f.direction === "asc" ? "ascending" : "descending" : x.sortable ? "none" : void 0,
1470
+ onClick: g.sortable ? () => y(g.key) : void 0,
1471
+ "aria-sort": x ? p.direction === "asc" ? "ascending" : "descending" : g.sortable ? "none" : void 0,
1445
1472
  children: /* @__PURE__ */ m("span", { className: "inline-flex items-center", children: [
1446
- x.header,
1447
- x.sortable && /* @__PURE__ */ e(
1448
- Qe,
1473
+ g.header,
1474
+ g.sortable && /* @__PURE__ */ e(
1475
+ st,
1449
1476
  {
1450
- active: h,
1451
- direction: h ? f.direction : void 0
1477
+ active: x,
1478
+ direction: x ? p.direction : void 0,
1479
+ columnType: v.get(g.key) ?? "text"
1452
1480
  }
1453
1481
  )
1454
1482
  ] })
1455
1483
  },
1456
- x.key
1484
+ g.key
1457
1485
  );
1458
1486
  }) }) }),
1459
- /* @__PURE__ */ e("tbody", { children: p ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
1487
+ /* @__PURE__ */ e("tbody", { children: w ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
1460
1488
  "td",
1461
1489
  {
1462
1490
  colSpan: r.length,
1463
1491
  className: "px-md py-xl text-center text-text-secondary",
1464
1492
  children: c ?? "No data available."
1465
1493
  }
1466
- ) }) : o.map((x, h) => /* @__PURE__ */ e(
1494
+ ) }) : f.map((g, x) => /* @__PURE__ */ e(
1467
1495
  "tr",
1468
1496
  {
1469
1497
  className: [
1470
1498
  "border-b border-border last:border-b-0 transition-colors",
1471
- s && h % 2 === 1 && "bg-bg-tertiary/50",
1499
+ s && x % 2 === 1 && "bg-bg-tertiary/50",
1472
1500
  "hover:bg-bg-tertiary/70"
1473
1501
  ].filter(Boolean).join(" "),
1474
- children: r.map((w) => /* @__PURE__ */ e(
1502
+ children: r.map((z) => /* @__PURE__ */ e(
1475
1503
  "td",
1476
1504
  {
1477
1505
  className: [
1478
1506
  "px-md py-sm text-text-primary",
1479
- w.cellClassName
1507
+ z.cellClassName
1480
1508
  ].filter(Boolean).join(" "),
1481
- children: w.cell(x, h)
1509
+ children: z.cell(g, x)
1482
1510
  },
1483
- w.key
1511
+ z.key
1484
1512
  ))
1485
1513
  },
1486
- n(x, h)
1514
+ n(g, x)
1487
1515
  )) })
1488
1516
  ] })
1489
1517
  }
1490
1518
  );
1491
- }), Ze = {
1519
+ }), at = {
1492
1520
  success: {
1493
1521
  bg: "bg-success-bg",
1494
1522
  border: "border-success/30",
1495
1523
  text: "text-success",
1496
- icon: ee
1524
+ icon: ne
1497
1525
  },
1498
1526
  warning: {
1499
1527
  bg: "bg-warning-bg",
1500
1528
  border: "border-warning/30",
1501
1529
  text: "text-warning",
1502
- icon: P
1530
+ icon: T
1503
1531
  },
1504
1532
  error: {
1505
1533
  bg: "bg-error-bg",
1506
1534
  border: "border-error/30",
1507
1535
  text: "text-error",
1508
- icon: Z
1536
+ icon: re
1509
1537
  },
1510
1538
  info: {
1511
1539
  bg: "bg-info-bg",
1512
1540
  border: "border-info/30",
1513
1541
  text: "text-info",
1514
- icon: Q
1542
+ icon: te
1515
1543
  }
1516
1544
  };
1517
- function Lt({
1545
+ function qt({
1518
1546
  variant: t,
1519
1547
  title: r,
1520
1548
  children: o,
@@ -1522,9 +1550,9 @@ function Lt({
1522
1550
  onDismiss: s,
1523
1551
  className: i = ""
1524
1552
  }) {
1525
- const [a, c] = N(!0), { bg: d, border: l, text: u, icon: b } = Ze[t];
1553
+ const [a, c] = N(!0), { bg: d, border: l, text: u, icon: b } = at[t];
1526
1554
  if (!a) return null;
1527
- const g = () => {
1555
+ const h = () => {
1528
1556
  c(!1), s?.();
1529
1557
  };
1530
1558
  return /* @__PURE__ */ m(
@@ -1542,22 +1570,22 @@ function Lt({
1542
1570
  "button",
1543
1571
  {
1544
1572
  type: "button",
1545
- onClick: g,
1573
+ onClick: h,
1546
1574
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1547
1575
  "aria-label": "Dismiss alert",
1548
- children: /* @__PURE__ */ e(B, { size: 16 })
1576
+ children: /* @__PURE__ */ e(M, { size: 16 })
1549
1577
  }
1550
1578
  )
1551
1579
  ]
1552
1580
  }
1553
1581
  );
1554
1582
  }
1555
- const et = {
1583
+ const lt = {
1556
1584
  sm: "max-w-[24rem]",
1557
1585
  md: "max-w-[32rem]",
1558
1586
  lg: "max-w-[42rem]"
1559
1587
  };
1560
- function tt({
1588
+ function ct({
1561
1589
  open: t,
1562
1590
  onClose: r,
1563
1591
  title: o,
@@ -1566,14 +1594,14 @@ function tt({
1566
1594
  footer: i,
1567
1595
  className: a = ""
1568
1596
  }) {
1569
- const c = $(null);
1570
- z(() => {
1597
+ const c = D(null);
1598
+ $(() => {
1571
1599
  if (!t) return;
1572
1600
  const l = document.activeElement;
1573
1601
  return c.current?.focus(), () => {
1574
1602
  l?.focus();
1575
1603
  };
1576
- }, [t]), z(() => {
1604
+ }, [t]), $(() => {
1577
1605
  if (!t) return;
1578
1606
  const l = document.body.style.overflow;
1579
1607
  return document.body.style.overflow = "hidden", () => {
@@ -1590,11 +1618,11 @@ function tt({
1590
1618
  'a[href], button:not([disabled]), textarea, input:not([disabled]), select, [tabindex]:not([tabindex="-1"])'
1591
1619
  );
1592
1620
  if (u.length === 0) return;
1593
- const b = u[0], g = u[u.length - 1];
1594
- l.shiftKey && document.activeElement === b ? (l.preventDefault(), g.focus()) : !l.shiftKey && document.activeElement === g && (l.preventDefault(), b.focus());
1621
+ const b = u[0], h = u[u.length - 1];
1622
+ l.shiftKey && document.activeElement === b ? (l.preventDefault(), h.focus()) : !l.shiftKey && document.activeElement === h && (l.preventDefault(), b.focus());
1595
1623
  }
1596
1624
  };
1597
- return t ? fe(
1625
+ return t ? Ne(
1598
1626
  /* @__PURE__ */ m(
1599
1627
  "div",
1600
1628
  {
@@ -1630,7 +1658,7 @@ function tt({
1630
1658
  {
1631
1659
  ref: c,
1632
1660
  tabIndex: -1,
1633
- className: `relative z-10 flex flex-col w-full ${et[n]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${a}`,
1661
+ className: `relative z-10 flex flex-col w-full ${lt[n]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${a}`,
1634
1662
  children: [
1635
1663
  o && /* @__PURE__ */ m("div", { className: "flex items-center justify-between px-lg py-md border-b border-border", children: [
1636
1664
  /* @__PURE__ */ e(
@@ -1648,7 +1676,7 @@ function tt({
1648
1676
  onClick: r,
1649
1677
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1650
1678
  "aria-label": "Close dialog",
1651
- children: /* @__PURE__ */ e(B, { size: 18 })
1679
+ children: /* @__PURE__ */ e(M, { size: 18 })
1652
1680
  }
1653
1681
  )
1654
1682
  ] }),
@@ -1665,7 +1693,7 @@ function tt({
1665
1693
  document.body
1666
1694
  ) : null;
1667
1695
  }
1668
- function Rt({
1696
+ function Kt({
1669
1697
  open: t,
1670
1698
  onCancel: r,
1671
1699
  onConfirm: o,
@@ -1676,10 +1704,10 @@ function Rt({
1676
1704
  danger: c = !1,
1677
1705
  size: d = "sm"
1678
1706
  }) {
1679
- return /* @__PURE__ */ m(tt, { open: t, onClose: r, title: n, size: d, children: [
1707
+ return /* @__PURE__ */ m(ct, { open: t, onClose: r, title: n, size: d, children: [
1680
1708
  /* @__PURE__ */ m("div", { className: "flex gap-3", children: [
1681
1709
  c && /* @__PURE__ */ e(
1682
- P,
1710
+ T,
1683
1711
  {
1684
1712
  size: 22,
1685
1713
  className: "shrink-0 mt-0.5 text-error",
@@ -1710,52 +1738,52 @@ function Rt({
1710
1738
  ] })
1711
1739
  ] });
1712
1740
  }
1713
- const ae = D(null);
1714
- function Tt() {
1715
- const t = F(ae);
1741
+ const de = S(null);
1742
+ function Gt() {
1743
+ const t = A(de);
1716
1744
  if (!t) throw new Error("useToast must be used within a <ToastProvider>");
1717
1745
  return t;
1718
1746
  }
1719
- const rt = {
1747
+ const dt = {
1720
1748
  success: {
1721
1749
  bg: "bg-bg-primary",
1722
1750
  accent: "bg-success",
1723
1751
  text: "text-success",
1724
- icon: ee
1752
+ icon: ne
1725
1753
  },
1726
1754
  warning: {
1727
1755
  bg: "bg-bg-primary",
1728
1756
  accent: "bg-warning",
1729
1757
  text: "text-warning",
1730
- icon: P
1758
+ icon: T
1731
1759
  },
1732
1760
  error: {
1733
1761
  bg: "bg-bg-primary",
1734
1762
  accent: "bg-error",
1735
1763
  text: "text-error",
1736
- icon: Z
1764
+ icon: re
1737
1765
  },
1738
1766
  info: {
1739
1767
  bg: "bg-bg-primary",
1740
1768
  accent: "bg-info",
1741
1769
  text: "text-info",
1742
- icon: Q
1770
+ icon: te
1743
1771
  }
1744
1772
  };
1745
- function nt({ toast: t, onRemove: r }) {
1746
- const { variant: o, title: n, message: s, duration: i = 5e3 } = t, { bg: a, accent: c, text: d, icon: l } = rt[o], [u, b] = N(100), g = $(0), f = $(0);
1747
- return z(() => {
1773
+ function mt({ toast: t, onRemove: r }) {
1774
+ const { variant: o, title: n, message: s, duration: i = 5e3 } = t, { bg: a, accent: c, text: d, icon: l } = dt[o], [u, b] = N(100), h = D(0), p = D(0);
1775
+ return $(() => {
1748
1776
  if (i <= 0) return;
1749
- g.current = performance.now();
1750
- const y = (p) => {
1751
- const x = p - g.current, h = Math.max(0, 100 - x / i * 100);
1752
- if (b(h), h <= 0) {
1777
+ h.current = performance.now();
1778
+ const y = (f) => {
1779
+ const v = f - h.current, w = Math.max(0, 100 - v / i * 100);
1780
+ if (b(w), w <= 0) {
1753
1781
  r(t.id);
1754
1782
  return;
1755
1783
  }
1756
- f.current = requestAnimationFrame(y);
1784
+ p.current = requestAnimationFrame(y);
1757
1785
  };
1758
- return f.current = requestAnimationFrame(y), () => cancelAnimationFrame(f.current);
1786
+ return p.current = requestAnimationFrame(y), () => cancelAnimationFrame(p.current);
1759
1787
  }, [i, t.id, r]), /* @__PURE__ */ m(
1760
1788
  "div",
1761
1789
  {
@@ -1776,7 +1804,7 @@ function nt({ toast: t, onRemove: r }) {
1776
1804
  onClick: () => r(t.id),
1777
1805
  className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
1778
1806
  "aria-label": "Dismiss notification",
1779
- children: /* @__PURE__ */ e(B, { size: 14 })
1807
+ children: /* @__PURE__ */ e(M, { size: 14 })
1780
1808
  }
1781
1809
  )
1782
1810
  ] }),
@@ -1791,80 +1819,80 @@ function nt({ toast: t, onRemove: r }) {
1791
1819
  }
1792
1820
  );
1793
1821
  }
1794
- let ot = 0;
1795
- function Mt({ children: t }) {
1822
+ let ut = 0;
1823
+ function Xt({ children: t }) {
1796
1824
  const [r, o] = N([]), n = k((i) => {
1797
- const a = `toast-${++ot}`;
1825
+ const a = `toast-${++ut}`;
1798
1826
  return o((c) => [...c, { ...i, id: a }]), a;
1799
1827
  }, []), s = k((i) => {
1800
1828
  o((a) => a.filter((c) => c.id !== i));
1801
1829
  }, []);
1802
- return /* @__PURE__ */ m(ae, { value: { addToast: n, removeToast: s }, children: [
1830
+ return /* @__PURE__ */ m(de, { value: { addToast: n, removeToast: s }, children: [
1803
1831
  t,
1804
1832
  /* @__PURE__ */ e(
1805
1833
  "div",
1806
1834
  {
1807
1835
  "aria-label": "Notifications",
1808
1836
  className: "fixed bottom-lg right-lg z-50 flex flex-col-reverse gap-sm pointer-events-none",
1809
- children: r.map((i) => /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(nt, { toast: i, onRemove: s }) }, i.id))
1837
+ children: r.map((i) => /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(mt, { toast: i, onRemove: s }) }, i.id))
1810
1838
  }
1811
1839
  )
1812
1840
  ] });
1813
1841
  }
1814
- const le = D(null), it = {
1842
+ const me = S(null), bt = {
1815
1843
  name: "Alice Martin",
1816
1844
  email: "alice.martin@epfl.ch",
1817
1845
  role: "admin"
1818
1846
  };
1819
- function Ot({ initialUser: t = it, children: r }) {
1820
- const [o, n] = N(t), s = (a) => n((c) => ({ ...c, role: a })), i = de(() => ({ user: o, setRole: s }), [o]);
1821
- return /* @__PURE__ */ e(le.Provider, { value: i, children: r });
1847
+ function Yt({ initialUser: t = bt, children: r }) {
1848
+ const [o, n] = N(t), s = (a) => n((c) => ({ ...c, role: a })), i = L(() => ({ user: o, setRole: s }), [o]);
1849
+ return /* @__PURE__ */ e(me.Provider, { value: i, children: r });
1822
1850
  }
1823
- function Ut() {
1824
- const t = F(le);
1851
+ function _t() {
1852
+ const t = A(me);
1825
1853
  if (!t) throw new Error("useAuth must be used within an AuthProvider");
1826
1854
  return t;
1827
1855
  }
1828
1856
  export {
1829
- Lt as Alert,
1830
- Ot as AuthProvider,
1831
- bt as Avatar,
1832
- pt as Badge,
1833
- We as BurgerDrawer,
1834
- ft as Button,
1835
- St as Card,
1836
- xt as Checkbox,
1837
- Rt as ConfirmDialog,
1838
- At as DescriptionList,
1839
- tt as Dialog,
1840
- wt as DropdownDivider,
1841
- Nt as DropdownItem,
1842
- kt as DropdownMenu,
1843
- Pt as EmptyState,
1844
- Ee as IconButton,
1845
- gt as Input,
1846
- jt as LanguageSwitcher,
1847
- Et as PageShell,
1848
- Ct as Popover,
1849
- Le as RadioGroup,
1850
- ht as Select,
1851
- Ye as SideNav,
1852
- ne as Spinner,
1853
- yt as Switch,
1854
- zt as TabPanel,
1855
- Bt as Table,
1856
- $t as Tabs,
1857
- vt as Textarea,
1858
- Ft as ThemeToggle,
1859
- Mt as ToastProvider,
1860
- It as Tooltip,
1861
- Xe as TopNav,
1862
- W as epflSelectClassNames,
1863
- Te as epflSelectTheme,
1864
- Dt as initTheme,
1865
- Ut as useAuth,
1866
- Oe as useLanguage,
1867
- Ge as useTheme,
1868
- Tt as useToast
1857
+ qt as Alert,
1858
+ Yt as AuthProvider,
1859
+ wt as Avatar,
1860
+ Nt as Badge,
1861
+ nt as BurgerDrawer,
1862
+ kt as Button,
1863
+ Ot as Card,
1864
+ Ct as Checkbox,
1865
+ Kt as ConfirmDialog,
1866
+ Vt as DescriptionList,
1867
+ ct as Dialog,
1868
+ jt as DropdownDivider,
1869
+ Ft as DropdownItem,
1870
+ Et as DropdownMenu,
1871
+ Ut as EmptyState,
1872
+ Te as IconButton,
1873
+ zt as Input,
1874
+ Lt as LanguageSwitcher,
1875
+ Mt as PageShell,
1876
+ St as Popover,
1877
+ He as RadioGroup,
1878
+ $t as Select,
1879
+ tt as SideNav,
1880
+ se as Spinner,
1881
+ Dt as Switch,
1882
+ At as TabPanel,
1883
+ Ht as Table,
1884
+ Pt as Tabs,
1885
+ It as Textarea,
1886
+ Tt as ThemeToggle,
1887
+ Xt as ToastProvider,
1888
+ Bt as Tooltip,
1889
+ et as TopNav,
1890
+ Q as epflSelectClassNames,
1891
+ Ke as epflSelectTheme,
1892
+ Rt as initTheme,
1893
+ _t as useAuth,
1894
+ Xe as useLanguage,
1895
+ Ze as useTheme,
1896
+ Gt as useToast
1869
1897
  };
1870
1898
  //# sourceMappingURL=poesis.js.map