@epfl-sti/poesis 0.2.0 → 0.2.1
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/components/layout/BurgerDrawer.d.ts.map +1 -1
- package/dist/components/layout/SideNav.d.ts.map +1 -1
- package/dist/components/layout/index.d.ts +1 -1
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/types.d.ts +17 -2
- package/dist/components/layout/types.d.ts.map +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/poesis.js +183 -147
- package/dist/poesis.js.map +1 -1
- package/package.json +1 -1
package/dist/poesis.js
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-600:oklch(57.7% .245 27.325);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--shadow-xl:0 8px 32px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-epfl-red:red;--color-epfl-red-dark:#b51f1f;--color-epfl-leman:#00a79f;--color-epfl-canard:#007480;--color-epfl-canard-dark:#004248;--color-primary:var(--action-primary);--color-primary-hover:var(--action-primary-hover);--color-bg-primary:var(--bg-primary);--color-bg-secondary:var(--bg-secondary);--color-bg-tertiary:var(--bg-tertiary);--color-border:var(--border-default);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-success:var(--semantic-success);--color-success-bg:var(--semantic-success-bg);--color-warning:var(--semantic-warning);--color-warning-bg:var(--semantic-warning-bg);--color-error:var(--semantic-error);--color-error-bg:var(--semantic-error-bg);--color-info:var(--semantic-info);--color-info-bg:var(--semantic-info-bg);--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--text-h1:2rem;--text-h1--line-height:1.2;--text-h2:1.5rem;--text-h2--line-height:1.3;--text-h3:1.25rem;--text-h3--line-height:1.4;--text-body:.9375rem;--text-body--line-height:1.5;--text-small:.8125rem;--text-small--line-height:1.5;--text-caption:.75rem;--text-caption--line-height:1.4}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration: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 (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mt-lg{margin-top:var(--spacing-lg)}.mt-md{margin-top:var(--spacing-md)}.mt-sm{margin-top:var(--spacing-sm)}.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-2{margin-bottom:calc(var(--spacing) * 2)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xs{margin-bottom:var(--spacing-xs)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.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-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.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-\\[30px\\]{height:30px}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\\[4px\\]{width:4px}.w-\\[8px\\]{width:8px}.w-\\[16px\\]{width:16px}.w-\\[24px\\]{width:24px}.w-\\[32px\\]{width:32px}.w-\\[48px\\]{width:48px}.w-auto{width:auto}.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-7{min-width:calc(var(--spacing) * 7)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-\\[10rem\\]{min-width:10rem}.min-w-\\[280px\\]{min-width:280px}.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}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2xl{gap:var(--spacing-2xl)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-lg{gap:var(--spacing-lg)}.gap-md{gap:var(--spacing-md)}.gap-px{gap:1px}.gap-sm{gap:var(--spacing-sm)}.gap-xl{gap:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.\\!rounded-lg{border-radius:var(--radius-lg)!important}.\\!rounded-md{border-radius:var(--radius-md)!important}.\\!rounded-sm{border-radius:var(--radius-sm)!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.\\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.\\!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-red-600{border-color:var(--color-red-600)}.border-success\\/30{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.border-success\\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-transparent{border-color:#0000}.border-warning\\/30{border-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.border-warning\\/30{border-color:color-mix(in oklab, var(--color-warning) 30%, transparent)}}.\\!bg-bg-tertiary{background-color:var(--color-bg-tertiary)!important}.\\!bg-epfl-canard{background-color:var(--color-epfl-canard)!important}.\\!bg-primary{background-color:var(--color-primary)!important}.bg-bg-primary{background-color:var(--color-bg-primary)}.bg-bg-secondary{background-color:var(--color-bg-secondary)}.bg-bg-tertiary,.bg-bg-tertiary\\/50{background-color:var(--color-bg-tertiary)}@supports (color:color-mix(in lab, red, red)){.bg-bg-tertiary\\/50{background-color:color-mix(in oklab, var(--color-bg-tertiary) 50%, transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-strong{background-color:var(--color-border-strong)}.bg-epfl-canard{background-color:var(--color-epfl-canard)}.bg-epfl-canard-dark{background-color:var(--color-epfl-canard-dark)}.bg-epfl-leman{background-color:var(--color-epfl-leman)}.bg-epfl-red{background-color:var(--color-epfl-red)}.bg-epfl-red-dark{background-color:var(--color-epfl-red-dark)}.bg-error{background-color:var(--color-error)}.bg-error-bg{background-color:var(--color-error-bg)}.bg-info{background-color:var(--color-info)}.bg-info-bg{background-color:var(--color-info-bg)}.bg-primary,.bg-primary\\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/5{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-success{background-color:var(--color-success)}.bg-success-bg{background-color:var(--color-success-bg)}.bg-text-muted{background-color:var(--color-text-muted)}.bg-text-primary{background-color:var(--color-text-primary)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-bg{background-color:var(--color-warning-bg)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.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-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.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)}.px-xs{padding-inline:var(--spacing-xs)}.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-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.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-md{padding-top:var(--spacing-md)}.pt-sm{padding-top:var(--spacing-sm)}.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)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.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-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-small{font-size:var(--text-small);line-height:var(--tw-leading,var(--text-small--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--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)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.\\!text-white{color:var(--color-white)!important}.text-bg-primary{color:var(--color-bg-primary)}.text-epfl-canard{color:var(--color-epfl-canard)}.text-epfl-leman{color:var(--color-epfl-leman)}.text-epfl-red{color:var(--color-epfl-red)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.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}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.peer-checked\\:bg-primary:is(:where(.peer):checked~*){background-color:var(--color-primary)}.peer-focus-visible\\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-focus-visible\\:ring-primary:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-primary)}.peer-focus-visible\\:ring-offset-2:is(:where(.peer):focus-visible~*){--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.peer-focus-visible\\:ring-offset-bg-primary:is(:where(.peer):focus-visible~*){--tw-ring-offset-color:var(--color-bg-primary)}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\\:text-text-muted::placeholder{color:var(--color-text-muted)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:top-0\\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\\:left-0\\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\\:size-5:after{content:var(--tw-content);width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.after\\:rounded-full:after{content:var(--tw-content);border-radius:var(--radius-full)}.after\\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.after\\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\\:after\\:translate-x-5:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.last\\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\\:border-\\[5px\\]:checked{border-style:var(--tw-border-style);border-width:5px}.checked\\:border-primary:checked{border-color:var(--color-primary)}.checked\\:bg-primary:checked{background-color:var(--color-primary)}.checked\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Cpath\\%20d\\%3D\\%22M12\\.207\\%204\\.793a1\\%201\\%200\\%20010\\%201\\.414l-5\\%205a1\\%201\\%200\\%2001-1\\.414\\%200l-2-2a1\\%201\\%200\\%20011\\.414-1\\.414L6\\.5\\%209\\.086l4\\.293-4\\.293a1\\%201\\%200\\%20011\\.414\\%200z\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:checked{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M12.207%204.793a1%201%200%20010%201.414l-5%205a1%201%200%2001-1.414%200l-2-2a1%201%200%20011.414-1.414L6.5%209.086l4.293-4.293a1%201%200%20011.414%200z%22%2F%3E%3C%2Fsvg%3E)}.checked\\:bg-center:checked{background-position:50%}.checked\\:bg-no-repeat:checked{background-repeat:no-repeat}.indeterminate\\:border-primary:indeterminate{border-color:var(--color-primary)}.indeterminate\\:bg-primary:indeterminate{background-color:var(--color-primary)}.indeterminate\\:bg-\\[url\\(\\'data\\:image\\/svg\\+xml\\,\\%3Csvg\\%20viewBox\\%3D\\%220\\%200\\%2016\\%2016\\%22\\%20fill\\%3D\\%22white\\%22\\%20xmlns\\%3D\\%22http\\%3A\\%2F\\%2Fwww\\.w3\\.org\\%2F2000\\%2Fsvg\\%22\\%3E\\%3Crect\\%20x\\%3D\\%223\\%22\\%20y\\%3D\\%227\\%22\\%20width\\%3D\\%2210\\%22\\%20height\\%3D\\%222\\%22\\%20rx\\%3D\\%221\\%22\\%2F\\%3E\\%3C\\%2Fsvg\\%3E\\'\\)\\]:indeterminate{background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22white%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2210%22%20height%3D%222%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E)}.indeterminate\\:bg-center:indeterminate{background-position:50%}.indeterminate\\:bg-no-repeat:indeterminate{background-repeat:no-repeat}@media (hover:hover){.hover\\:border-border-strong:hover{border-color:var(--color-border-strong)}.hover\\:border-error:hover{border-color:var(--color-error)}.hover\\:border-primary:hover{border-color:var(--color-primary)}.hover\\:bg-bg-secondary:hover{background-color:var(--color-bg-secondary)}.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-primary:hover{color:var(--color-primary)}.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-epfl-canard:focus-visible{--tw-ring-color:var(--color-epfl-canard)}.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 (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 (width>=48rem){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (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;--logo-filter:brightness(0);--logo-opacity:.5}.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;--logo-filter:brightness(0) invert(1);--logo-opacity:1;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--shadow-xl:0 8px 32px #0009}@keyframes slide-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes dialog-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes floating-in{0%{opacity:0}to{opacity:1}}body{font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--text-body--line-height);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}
|
|
3
3
|
/*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();import { createContext as e, forwardRef as t, useCallback as n, useContext as r, useEffect as i, useId as a, useMemo as o, useRef as s, useState as c, useSyncExternalStore as l } from "react";
|
|
4
4
|
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
5
|
-
import { BoxArrowInRight as p, BoxArrowRight as m, CheckCircleFill as h, ChevronBarLeft as g, ChevronBarRight as _, ChevronDown as v, ChevronLeft as y, ChevronRight as b, CloudArrowUp as x, ExclamationTriangleFill as S, InfoCircleFill as C, List as w, MoonFill as T, SortAlphaDown as E, SortAlphaDownAlt as D, SortDown as O, SortNumericDown as k, SortNumericDownAlt as A, SunFill as
|
|
6
|
-
import { useTranslation as
|
|
7
|
-
import
|
|
8
|
-
import { FloatingFocusManager as
|
|
9
|
-
import { createPortal as
|
|
5
|
+
import { BoxArrowInRight as p, BoxArrowRight as m, CheckCircleFill as h, ChevronBarLeft as g, ChevronBarRight as _, ChevronDown as v, ChevronLeft as y, ChevronRight as b, CloudArrowUp as x, ExclamationTriangleFill as S, InfoCircleFill as C, List as w, MoonFill as T, SortAlphaDown as E, SortAlphaDownAlt as D, SortDown as O, SortNumericDown as k, SortNumericDownAlt as A, SunFill as ee, X as j, XCircleFill as te, XLg as ne } from "react-bootstrap-icons";
|
|
6
|
+
import { useTranslation as M } from "react-i18next";
|
|
7
|
+
import re from "react-select";
|
|
8
|
+
import { FloatingFocusManager as ie, FloatingPortal as N, arrow as ae, autoUpdate as P, flip as F, offset as I, shift as L, useClick as oe, useDismiss as R, useFloating as z, useFocus as se, useHover as ce, useInteractions as B, useListNavigation as le, useRole as V } from "@floating-ui/react";
|
|
9
|
+
import { createPortal as ue } from "react-dom";
|
|
10
10
|
//#region src/components/ui/Avatar.tsx
|
|
11
|
-
var
|
|
11
|
+
var de = {
|
|
12
12
|
sm: "size-8 text-caption",
|
|
13
13
|
md: "size-10 text-small",
|
|
14
14
|
lg: "size-14 text-body"
|
|
15
15
|
};
|
|
16
|
-
function
|
|
16
|
+
function fe(e) {
|
|
17
17
|
let t = e.trim().split(/\s+/);
|
|
18
18
|
return t.length === 0 ? "?" : t.length === 1 ? t[0][0].toUpperCase() : (t[0][0] + t[t.length - 1][0]).toUpperCase();
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function pe({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }) {
|
|
21
21
|
let [o, s] = c(!1), l = !!e && !o;
|
|
22
22
|
return /* @__PURE__ */ d("span", {
|
|
23
23
|
role: "img",
|
|
@@ -25,7 +25,7 @@ function fe({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }
|
|
|
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
|
-
|
|
28
|
+
de[n],
|
|
29
29
|
i
|
|
30
30
|
].join(" "),
|
|
31
31
|
...a,
|
|
@@ -36,35 +36,35 @@ function fe({ src: e, name: t, size: n = "md", alt: r, className: i = "", ...a }
|
|
|
36
36
|
onError: () => s(!0)
|
|
37
37
|
}) : /* @__PURE__ */ d("span", {
|
|
38
38
|
"aria-hidden": "true",
|
|
39
|
-
children:
|
|
39
|
+
children: fe(t)
|
|
40
40
|
})
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
44
|
//#region src/components/ui/Badge.tsx
|
|
45
|
-
var
|
|
45
|
+
var me = {
|
|
46
46
|
default: "bg-bg-tertiary text-text-primary",
|
|
47
47
|
success: "bg-success-bg text-success",
|
|
48
48
|
warning: "bg-warning-bg text-warning",
|
|
49
49
|
error: "bg-error-bg text-error",
|
|
50
50
|
info: "bg-info-bg text-info"
|
|
51
|
-
},
|
|
51
|
+
}, he = {
|
|
52
52
|
default: "bg-text-muted",
|
|
53
53
|
success: "bg-success",
|
|
54
54
|
warning: "bg-warning",
|
|
55
55
|
error: "bg-error",
|
|
56
56
|
info: "bg-info"
|
|
57
57
|
};
|
|
58
|
-
function
|
|
58
|
+
function H({ color: e = "default", dot: t, className: n = "", children: r, ...i }) {
|
|
59
59
|
return t ? /* @__PURE__ */ d("span", {
|
|
60
60
|
role: "status",
|
|
61
|
-
className: `inline-block size-2.5 rounded-full ${
|
|
61
|
+
className: `inline-block size-2.5 rounded-full ${he[e]} ${n}`,
|
|
62
62
|
...i
|
|
63
63
|
}) : /* @__PURE__ */ d("span", {
|
|
64
64
|
className: [
|
|
65
65
|
"inline-flex items-center rounded-sm px-2 py-0.5",
|
|
66
66
|
"text-caption font-medium leading-none",
|
|
67
|
-
|
|
67
|
+
me[e],
|
|
68
68
|
n
|
|
69
69
|
].join(" "),
|
|
70
70
|
...i,
|
|
@@ -193,7 +193,7 @@ function Te(e, t, n, r) {
|
|
|
193
193
|
return u.push(...a), u;
|
|
194
194
|
}
|
|
195
195
|
var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, siblingCount: a = 1, boundaryCount: o = 1, showFirstLast: s = !1, size: l = "md", disabled: u = !1, className: p = "", ...m }, h) {
|
|
196
|
-
let { t: v } =
|
|
196
|
+
let { t: v } = M(), x = t !== void 0, [S, C] = c(r), w = Math.min(Math.max(x ? t : S, 1), e), T = n((t) => {
|
|
197
197
|
let n = Math.min(Math.max(t, 1), e);
|
|
198
198
|
x || C(n), i?.(n);
|
|
199
199
|
}, [
|
|
@@ -205,7 +205,7 @@ var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
|
|
|
205
205
|
"transition-colors duration-150 cursor-pointer",
|
|
206
206
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-epfl-canard",
|
|
207
207
|
W[l]
|
|
208
|
-
].join(" "),
|
|
208
|
+
].join(" "), ee = (e) => [A, e ? "bg-epfl-canard text-white" : "text-text-primary hover:bg-bg-tertiary"].filter(Boolean).join(" "), j = (e) => [
|
|
209
209
|
A,
|
|
210
210
|
"text-text-secondary hover:bg-bg-tertiary",
|
|
211
211
|
(u || e) && "opacity-40 pointer-events-none"
|
|
@@ -220,7 +220,7 @@ var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
|
|
|
220
220
|
type: "button",
|
|
221
221
|
"aria-label": v("common.first"),
|
|
222
222
|
disabled: u || O,
|
|
223
|
-
className:
|
|
223
|
+
className: j(O),
|
|
224
224
|
onClick: () => T(1),
|
|
225
225
|
children: /* @__PURE__ */ d(g, {
|
|
226
226
|
size: D,
|
|
@@ -231,7 +231,7 @@ var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
|
|
|
231
231
|
type: "button",
|
|
232
232
|
"aria-label": v("common.previous"),
|
|
233
233
|
disabled: u || O,
|
|
234
|
-
className:
|
|
234
|
+
className: j(O),
|
|
235
235
|
onClick: () => T(w - 1),
|
|
236
236
|
children: /* @__PURE__ */ d(y, {
|
|
237
237
|
size: D,
|
|
@@ -250,7 +250,7 @@ var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
|
|
|
250
250
|
"aria-current": t ? "page" : void 0,
|
|
251
251
|
"aria-label": v("common.goToPage", { page: e }),
|
|
252
252
|
disabled: u,
|
|
253
|
-
className: [
|
|
253
|
+
className: [ee(t), u && "opacity-40 pointer-events-none"].filter(Boolean).join(" "),
|
|
254
254
|
onClick: () => T(e),
|
|
255
255
|
children: e
|
|
256
256
|
}, e);
|
|
@@ -259,7 +259,7 @@ var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
|
|
|
259
259
|
type: "button",
|
|
260
260
|
"aria-label": v("common.next"),
|
|
261
261
|
disabled: u || k,
|
|
262
|
-
className:
|
|
262
|
+
className: j(k),
|
|
263
263
|
onClick: () => T(w + 1),
|
|
264
264
|
children: /* @__PURE__ */ d(b, {
|
|
265
265
|
size: D,
|
|
@@ -270,7 +270,7 @@ var Ee = t(function({ totalPages: e, page: t, defaultPage: r = 1, onChange: i, s
|
|
|
270
270
|
type: "button",
|
|
271
271
|
"aria-label": v("common.last"),
|
|
272
272
|
disabled: u || k,
|
|
273
|
-
className:
|
|
273
|
+
className: j(k),
|
|
274
274
|
onClick: () => T(e),
|
|
275
275
|
children: /* @__PURE__ */ d(_, {
|
|
276
276
|
size: D,
|
|
@@ -384,7 +384,7 @@ function Oe({ accept: e, multiple: t = !1, maxSize: r, onFilesSelected: i, onRej
|
|
|
384
384
|
},
|
|
385
385
|
className: "shrink-0 p-0.5 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
|
|
386
386
|
"aria-label": `Remove ${e.name}`,
|
|
387
|
-
children: /* @__PURE__ */ d(
|
|
387
|
+
children: /* @__PURE__ */ d(j, { size: 14 })
|
|
388
388
|
})
|
|
389
389
|
]
|
|
390
390
|
}, `${e.name}-${e.size}-${t}`))
|
|
@@ -606,7 +606,7 @@ function Re({ value: e, label: t, description: n, disabled: r }) {
|
|
|
606
606
|
q.Item = Re;
|
|
607
607
|
//#endregion
|
|
608
608
|
//#region src/theme/reactSelectStyles.ts
|
|
609
|
-
var
|
|
609
|
+
var ze = (e) => ({
|
|
610
610
|
...e,
|
|
611
611
|
borderRadius: 8,
|
|
612
612
|
colors: {
|
|
@@ -629,7 +629,7 @@ var J = (e) => ({
|
|
|
629
629
|
danger: "var(--color-error)",
|
|
630
630
|
dangerLight: "var(--color-error-bg)"
|
|
631
631
|
}
|
|
632
|
-
}),
|
|
632
|
+
}), J = {
|
|
633
633
|
control: ({ isFocused: e }) => `!shadow-sm !rounded-md !border-border ${e ? "!border-primary !ring-1 !ring-primary" : ""}`,
|
|
634
634
|
menu: () => "!rounded-lg !shadow-lg !border !border-border",
|
|
635
635
|
option: ({ isFocused: e, isSelected: t }) => `${t ? "!bg-primary !text-white" : e ? "!bg-bg-tertiary" : ""}`,
|
|
@@ -637,7 +637,7 @@ var J = (e) => ({
|
|
|
637
637
|
};
|
|
638
638
|
//#endregion
|
|
639
639
|
//#region src/components/ui/Select.tsx
|
|
640
|
-
function
|
|
640
|
+
function Be({ label: e, helperText: t, error: n, className: r = "", ...i }) {
|
|
641
641
|
let o = a(), s = i.inputId ?? o, c = `${s}-helper`, l = !!n;
|
|
642
642
|
return /* @__PURE__ */ f("div", {
|
|
643
643
|
className: `flex flex-col gap-1.5 ${r}`,
|
|
@@ -647,9 +647,9 @@ function ze({ label: e, helperText: t, error: n, className: r = "", ...i }) {
|
|
|
647
647
|
className: "text-small font-medium text-text-primary",
|
|
648
648
|
children: e
|
|
649
649
|
}),
|
|
650
|
-
/* @__PURE__ */ d(
|
|
650
|
+
/* @__PURE__ */ d(re, {
|
|
651
651
|
inputId: s,
|
|
652
|
-
theme:
|
|
652
|
+
theme: ze,
|
|
653
653
|
menuPortalTarget: document.body,
|
|
654
654
|
styles: {
|
|
655
655
|
menuPortal: (e) => ({
|
|
@@ -659,9 +659,9 @@ function ze({ label: e, helperText: t, error: n, className: r = "", ...i }) {
|
|
|
659
659
|
...i.styles
|
|
660
660
|
},
|
|
661
661
|
classNames: {
|
|
662
|
-
...
|
|
662
|
+
...J,
|
|
663
663
|
control: (e) => {
|
|
664
|
-
let t =
|
|
664
|
+
let t = J.control?.(e) ?? "";
|
|
665
665
|
return l ? `${t} !border-error !focus:ring-error` : t;
|
|
666
666
|
}
|
|
667
667
|
},
|
|
@@ -679,7 +679,7 @@ function ze({ label: e, helperText: t, error: n, className: r = "", ...i }) {
|
|
|
679
679
|
}
|
|
680
680
|
//#endregion
|
|
681
681
|
//#region src/components/ui/Switch.tsx
|
|
682
|
-
var
|
|
682
|
+
var Ve = t(function({ label: e, helperText: t, className: n = "", id: r, disabled: i, ...o }, s) {
|
|
683
683
|
let c = a(), l = r ?? c, u = `${l}-helper`;
|
|
684
684
|
return /* @__PURE__ */ f("div", {
|
|
685
685
|
className: `flex flex-col gap-1 ${n}`,
|
|
@@ -722,7 +722,7 @@ var Be = t(function({ label: e, helperText: t, className: n = "", id: r, disable
|
|
|
722
722
|
children: t
|
|
723
723
|
})]
|
|
724
724
|
});
|
|
725
|
-
}),
|
|
725
|
+
}), He = t(function({ label: e, helperText: t, error: r, autoGrow: o = !1, minRows: c = 3, className: l = "", id: u, disabled: p, onChange: m, ...h }, g) {
|
|
726
726
|
let _ = a(), v = u ?? _, y = `${v}-helper`, b = !!r, x = s(null), S = n(() => {
|
|
727
727
|
let e = x.current;
|
|
728
728
|
!e || !o || (e.style.height = "auto", e.style.height = `${e.scrollHeight}px`);
|
|
@@ -772,20 +772,20 @@ var Be = t(function({ label: e, helperText: t, className: n = "", id: r, disable
|
|
|
772
772
|
})
|
|
773
773
|
]
|
|
774
774
|
});
|
|
775
|
-
}),
|
|
775
|
+
}), Ue = e({
|
|
776
776
|
close: () => {},
|
|
777
777
|
getItemProps: () => ({}),
|
|
778
778
|
activeIndex: null,
|
|
779
779
|
setActiveIndex: () => {}
|
|
780
780
|
});
|
|
781
|
-
function
|
|
781
|
+
function We() {
|
|
782
782
|
return /* @__PURE__ */ d("div", {
|
|
783
783
|
role: "separator",
|
|
784
784
|
className: "my-1 border-t border-border"
|
|
785
785
|
});
|
|
786
786
|
}
|
|
787
|
-
var
|
|
788
|
-
let { close: l } = r(
|
|
787
|
+
var Ge = t(function({ children: e, icon: t, danger: n = !1, disabled: i = !1, onClick: a, className: o = "", ...s }, c) {
|
|
788
|
+
let { close: l } = r(Ue);
|
|
789
789
|
return /* @__PURE__ */ f("button", {
|
|
790
790
|
ref: c,
|
|
791
791
|
type: "button",
|
|
@@ -808,22 +808,22 @@ var We = t(function({ children: e, icon: t, danger: n = !1, disabled: i = !1, on
|
|
|
808
808
|
}), e]
|
|
809
809
|
});
|
|
810
810
|
});
|
|
811
|
-
function
|
|
812
|
-
let [a, o] = c(!1), [l, p] = c(null), m = s([]), { refs: h, floatingStyles: g, context: _ } =
|
|
811
|
+
function Ke({ trigger: e, children: t, placement: r = "bottom-start", className: i = "" }) {
|
|
812
|
+
let [a, o] = c(!1), [l, p] = c(null), m = s([]), { refs: h, floatingStyles: g, context: _ } = z({
|
|
813
813
|
open: a,
|
|
814
814
|
onOpenChange: o,
|
|
815
815
|
placement: r,
|
|
816
816
|
middleware: [
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
817
|
+
I(4),
|
|
818
|
+
F(),
|
|
819
|
+
L({ padding: 8 })
|
|
820
820
|
],
|
|
821
|
-
whileElementsMounted:
|
|
822
|
-
}), { getReferenceProps: v, getFloatingProps: y, getItemProps: b } =
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
821
|
+
whileElementsMounted: P
|
|
822
|
+
}), { getReferenceProps: v, getFloatingProps: y, getItemProps: b } = B([
|
|
823
|
+
oe(_),
|
|
824
|
+
R(_),
|
|
825
|
+
V(_, { role: "menu" }),
|
|
826
|
+
le(_, {
|
|
827
827
|
listRef: m,
|
|
828
828
|
activeIndex: l,
|
|
829
829
|
onNavigate: p,
|
|
@@ -835,7 +835,7 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
|
|
|
835
835
|
className: "inline-flex",
|
|
836
836
|
...v(),
|
|
837
837
|
children: e
|
|
838
|
-
}), a && /* @__PURE__ */ d(
|
|
838
|
+
}), a && /* @__PURE__ */ d(N, { children: /* @__PURE__ */ d(ie, {
|
|
839
839
|
context: _,
|
|
840
840
|
modal: !1,
|
|
841
841
|
children: /* @__PURE__ */ d("div", {
|
|
@@ -847,7 +847,7 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
|
|
|
847
847
|
i
|
|
848
848
|
].join(" "),
|
|
849
849
|
...y(),
|
|
850
|
-
children: /* @__PURE__ */ d(
|
|
850
|
+
children: /* @__PURE__ */ d(Ue.Provider, {
|
|
851
851
|
value: {
|
|
852
852
|
close: x,
|
|
853
853
|
getItemProps: b,
|
|
@@ -861,28 +861,28 @@ function Ge({ trigger: e, children: t, placement: r = "bottom-start", className:
|
|
|
861
861
|
}
|
|
862
862
|
//#endregion
|
|
863
863
|
//#region src/components/ui/Popover.tsx
|
|
864
|
-
function
|
|
865
|
-
let [o, s] = c(!1), l = r !== void 0, p = l ? r : o, { refs: m, floatingStyles: h, context: g } =
|
|
864
|
+
function qe({ trigger: e, children: t, placement: n = "bottom", open: r, onOpenChange: i, className: a = "" }) {
|
|
865
|
+
let [o, s] = c(!1), l = r !== void 0, p = l ? r : o, { refs: m, floatingStyles: h, context: g } = z({
|
|
866
866
|
open: p,
|
|
867
867
|
onOpenChange: l ? (e) => i?.(e) : s,
|
|
868
868
|
placement: n,
|
|
869
869
|
middleware: [
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
870
|
+
I(8),
|
|
871
|
+
F(),
|
|
872
|
+
L({ padding: 8 })
|
|
873
873
|
],
|
|
874
|
-
whileElementsMounted:
|
|
875
|
-
}), { getReferenceProps: _, getFloatingProps: v } =
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
874
|
+
whileElementsMounted: P
|
|
875
|
+
}), { getReferenceProps: _, getFloatingProps: v } = B([
|
|
876
|
+
oe(g),
|
|
877
|
+
R(g),
|
|
878
|
+
V(g)
|
|
879
879
|
]);
|
|
880
880
|
return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
|
|
881
881
|
ref: m.setReference,
|
|
882
882
|
className: "inline-flex",
|
|
883
883
|
..._(),
|
|
884
884
|
children: e
|
|
885
|
-
}), p && /* @__PURE__ */ d(
|
|
885
|
+
}), p && /* @__PURE__ */ d(N, { children: /* @__PURE__ */ d(ie, {
|
|
886
886
|
context: g,
|
|
887
887
|
modal: !1,
|
|
888
888
|
children: /* @__PURE__ */ d("div", {
|
|
@@ -900,12 +900,12 @@ function Ke({ trigger: e, children: t, placement: n = "bottom", open: r, onOpenC
|
|
|
900
900
|
}
|
|
901
901
|
//#endregion
|
|
902
902
|
//#region src/components/ui/Tabs.tsx
|
|
903
|
-
var
|
|
903
|
+
var Je = e({
|
|
904
904
|
activeValue: "",
|
|
905
905
|
idPrefix: ""
|
|
906
906
|
});
|
|
907
|
-
function
|
|
908
|
-
let { activeValue: i, idPrefix: a } = r(
|
|
907
|
+
function Ye({ value: e, children: t, className: n = "" }) {
|
|
908
|
+
let { activeValue: i, idPrefix: a } = r(Je), o = i === e;
|
|
909
909
|
return /* @__PURE__ */ d("div", {
|
|
910
910
|
id: `${a}-panel-${e}`,
|
|
911
911
|
role: "tabpanel",
|
|
@@ -916,7 +916,7 @@ function Je({ value: e, children: t, className: n = "" }) {
|
|
|
916
916
|
children: o && t
|
|
917
917
|
});
|
|
918
918
|
}
|
|
919
|
-
function
|
|
919
|
+
function Xe({ items: e, value: t, defaultValue: r, onChange: i, children: o, className: l = "" }) {
|
|
920
920
|
let u = a().replace(/:/g, ""), p = s(null), m = t !== void 0, [h, g] = c(() => r ?? e.find((e) => !e.disabled)?.value ?? e[0]?.value ?? ""), _ = m ? t : h, v = n((e) => {
|
|
921
921
|
m || g(e), i?.(e);
|
|
922
922
|
}, [m, i]), y = e.filter((e) => !e.disabled), b = (e) => {
|
|
@@ -941,7 +941,7 @@ function Ye({ items: e, value: t, defaultValue: r, onChange: i, children: o, cla
|
|
|
941
941
|
let r = y[n];
|
|
942
942
|
r && (v(r.value), (p.current?.querySelector(`[data-tab-value="${r.value}"]`))?.focus());
|
|
943
943
|
};
|
|
944
|
-
return /* @__PURE__ */ d(
|
|
944
|
+
return /* @__PURE__ */ d(Je.Provider, {
|
|
945
945
|
value: {
|
|
946
946
|
activeValue: _,
|
|
947
947
|
idPrefix: u
|
|
@@ -985,39 +985,39 @@ function Ye({ items: e, value: t, defaultValue: r, onChange: i, children: o, cla
|
|
|
985
985
|
}
|
|
986
986
|
//#endregion
|
|
987
987
|
//#region src/components/ui/Tooltip.tsx
|
|
988
|
-
var
|
|
988
|
+
var Ze = {
|
|
989
989
|
top: "bottom",
|
|
990
990
|
bottom: "top",
|
|
991
991
|
left: "right",
|
|
992
992
|
right: "left"
|
|
993
993
|
};
|
|
994
|
-
function
|
|
995
|
-
let [a, o] = c(!1), l = s(null), { refs: p, floatingStyles: m, context: h, middlewareData: g, placement: _ } =
|
|
994
|
+
function Y({ children: e, content: t, placement: n = "top", delay: r = 200, className: i = "" }) {
|
|
995
|
+
let [a, o] = c(!1), l = s(null), { refs: p, floatingStyles: m, context: h, middlewareData: g, placement: _ } = z({
|
|
996
996
|
open: a,
|
|
997
997
|
onOpenChange: o,
|
|
998
998
|
placement: n,
|
|
999
999
|
middleware: [
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1000
|
+
I(8),
|
|
1001
|
+
F(),
|
|
1002
|
+
L({ padding: 8 }),
|
|
1003
|
+
ae({ element: l })
|
|
1004
1004
|
],
|
|
1005
|
-
whileElementsMounted:
|
|
1006
|
-
}), { getReferenceProps: v, getFloatingProps: y } =
|
|
1007
|
-
|
|
1005
|
+
whileElementsMounted: P
|
|
1006
|
+
}), { getReferenceProps: v, getFloatingProps: y } = B([
|
|
1007
|
+
ce(h, {
|
|
1008
1008
|
delay: r,
|
|
1009
1009
|
move: !1
|
|
1010
1010
|
}),
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1011
|
+
se(h),
|
|
1012
|
+
R(h),
|
|
1013
|
+
V(h, { role: "tooltip" })
|
|
1014
1014
|
]), b = _.split("-")[0], x = g.arrow?.x, S = g.arrow?.y;
|
|
1015
1015
|
return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("span", {
|
|
1016
1016
|
ref: p.setReference,
|
|
1017
1017
|
className: "inline-flex",
|
|
1018
1018
|
...v(),
|
|
1019
1019
|
children: e
|
|
1020
|
-
}), a && t && /* @__PURE__ */ d(
|
|
1020
|
+
}), a && t && /* @__PURE__ */ d(N, { children: /* @__PURE__ */ f("div", {
|
|
1021
1021
|
ref: p.setFloating,
|
|
1022
1022
|
style: m,
|
|
1023
1023
|
role: "tooltip",
|
|
@@ -1034,7 +1034,7 @@ function Ze({ children: e, content: t, placement: n = "top", delay: r = 200, cla
|
|
|
1034
1034
|
style: {
|
|
1035
1035
|
left: x == null ? "" : `${x}px`,
|
|
1036
1036
|
top: S == null ? "" : `${S}px`,
|
|
1037
|
-
[
|
|
1037
|
+
[Ze[b]]: "-4px"
|
|
1038
1038
|
}
|
|
1039
1039
|
})]
|
|
1040
1040
|
}) })] });
|
|
@@ -1042,7 +1042,7 @@ function Ze({ children: e, content: t, placement: n = "top", delay: r = 200, cla
|
|
|
1042
1042
|
//#endregion
|
|
1043
1043
|
//#region src/hooks/useLanguage.ts
|
|
1044
1044
|
function Qe() {
|
|
1045
|
-
let { i18n: e } =
|
|
1045
|
+
let { i18n: e } = M(), t = e.language ?? "en", r = n((t) => {
|
|
1046
1046
|
e.changeLanguage(t);
|
|
1047
1047
|
}, [e]);
|
|
1048
1048
|
return {
|
|
@@ -1129,11 +1129,11 @@ function ot() {
|
|
|
1129
1129
|
//#endregion
|
|
1130
1130
|
//#region src/components/ui/ThemeToggle.tsx
|
|
1131
1131
|
function st({ variant: e = "ghost", size: t = "md", className: n }) {
|
|
1132
|
-
let { isDark: r, toggleTheme: i } = ot(), { t: a } =
|
|
1132
|
+
let { isDark: r, toggleTheme: i } = ot(), { t: a } = M();
|
|
1133
1133
|
return /* @__PURE__ */ d(Ce, {
|
|
1134
1134
|
variant: e,
|
|
1135
1135
|
size: t,
|
|
1136
|
-
icon: d(r ?
|
|
1136
|
+
icon: d(r ? ee : T, { size: 16 }),
|
|
1137
1137
|
"aria-label": a("theme.toggleTheme"),
|
|
1138
1138
|
onClick: i,
|
|
1139
1139
|
className: n
|
|
@@ -1220,7 +1220,7 @@ function mt({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r =
|
|
|
1220
1220
|
children: /* @__PURE__ */ f("button", {
|
|
1221
1221
|
type: "button",
|
|
1222
1222
|
onClick: () => n?.(a.href),
|
|
1223
|
-
title: r ? a.label : void 0,
|
|
1223
|
+
title: r && typeof a.label == "string" ? a.label : void 0,
|
|
1224
1224
|
className: [
|
|
1225
1225
|
"flex w-full items-center gap-3 px-4 py-3.5 text-sm no-underline font-medium transition-colors",
|
|
1226
1226
|
r ? "justify-center" : "",
|
|
@@ -1232,7 +1232,7 @@ function mt({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r =
|
|
|
1232
1232
|
className: "shrink-0"
|
|
1233
1233
|
}), !r && /* @__PURE__ */ d("span", { children: a.label })]
|
|
1234
1234
|
})
|
|
1235
|
-
}), e.map((e) => /* @__PURE__ */ d(
|
|
1235
|
+
}), e.map((e) => /* @__PURE__ */ d(gt, {
|
|
1236
1236
|
section: e,
|
|
1237
1237
|
activeLinkId: t,
|
|
1238
1238
|
onLinkClick: n,
|
|
@@ -1243,7 +1243,21 @@ function mt({ sections: e = [], activeLinkId: t, onLinkClick: n, collapsed: r =
|
|
|
1243
1243
|
})
|
|
1244
1244
|
});
|
|
1245
1245
|
}
|
|
1246
|
-
function ht({
|
|
1246
|
+
function ht({ counters: e }) {
|
|
1247
|
+
let t = e?.filter((e) => e.count > 0);
|
|
1248
|
+
return t?.length ? /* @__PURE__ */ d("span", {
|
|
1249
|
+
className: "ml-auto flex items-center gap-1",
|
|
1250
|
+
children: t.map((e, t) => /* @__PURE__ */ d(Y, {
|
|
1251
|
+
content: e.tooltip,
|
|
1252
|
+
placement: "top",
|
|
1253
|
+
children: /* @__PURE__ */ d(H, {
|
|
1254
|
+
color: e.color,
|
|
1255
|
+
children: e.count > 99 ? "99+" : e.count
|
|
1256
|
+
})
|
|
1257
|
+
}, t))
|
|
1258
|
+
}) : null;
|
|
1259
|
+
}
|
|
1260
|
+
function gt({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldable: i }) {
|
|
1247
1261
|
let { isOpen: a, toggle: o } = pt(e.title, i);
|
|
1248
1262
|
return /* @__PURE__ */ f("li", {
|
|
1249
1263
|
className: "border-b border-border last:border-b-0",
|
|
@@ -1262,14 +1276,18 @@ function ht({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldabl
|
|
|
1262
1276
|
return /* @__PURE__ */ d("li", { children: /* @__PURE__ */ f("button", {
|
|
1263
1277
|
type: "button",
|
|
1264
1278
|
onClick: () => n?.(e.href),
|
|
1265
|
-
title: r ? e.label : void 0,
|
|
1279
|
+
title: r ? e.titleText ?? (typeof e.label == "string" ? e.label : void 0) : void 0,
|
|
1266
1280
|
className: [
|
|
1267
1281
|
"flex w-full items-center gap-sm px-4 py-3 text-sm no-underline transition-colors",
|
|
1268
1282
|
r ? "justify-center" : "",
|
|
1269
1283
|
i ? "bg-bg-tertiary text-text-primary font-medium border-r-2 border-red-600" : "text-text-secondary hover:bg-bg-secondary hover:text-text-primary"
|
|
1270
1284
|
].join(" "),
|
|
1271
1285
|
"aria-current": i ? "page" : void 0,
|
|
1272
|
-
children: [
|
|
1286
|
+
children: [
|
|
1287
|
+
e.icon && /* @__PURE__ */ d(e.icon, { size: 18 }),
|
|
1288
|
+
!r && /* @__PURE__ */ d("span", { children: e.label }),
|
|
1289
|
+
!r && /* @__PURE__ */ d(ht, { counters: e.counters })
|
|
1290
|
+
]
|
|
1273
1291
|
}) }, e.id);
|
|
1274
1292
|
})
|
|
1275
1293
|
})]
|
|
@@ -1277,7 +1295,7 @@ function ht({ section: e, activeLinkId: t, onLinkClick: n, collapsed: r, foldabl
|
|
|
1277
1295
|
}
|
|
1278
1296
|
//#endregion
|
|
1279
1297
|
//#region src/components/layout/BurgerDrawer.tsx
|
|
1280
|
-
function
|
|
1298
|
+
function _t({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCategoryChange: a, sections: o = [], activeLinkId: c, onLinkClick: l }) {
|
|
1281
1299
|
let p = s(null);
|
|
1282
1300
|
return i(() => {
|
|
1283
1301
|
if (!e) return;
|
|
@@ -1310,7 +1328,7 @@ function gt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCa
|
|
|
1310
1328
|
onClick: t,
|
|
1311
1329
|
className: "flex size-9 items-center justify-center rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary",
|
|
1312
1330
|
"aria-label": "Close menu",
|
|
1313
|
-
children: /* @__PURE__ */ d(
|
|
1331
|
+
children: /* @__PURE__ */ d(ne, { size: 18 })
|
|
1314
1332
|
})]
|
|
1315
1333
|
}), /* @__PURE__ */ f("div", {
|
|
1316
1334
|
className: "flex-1 overflow-y-auto p-sm",
|
|
@@ -1327,7 +1345,7 @@ function gt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCa
|
|
|
1327
1345
|
className: ["flex items-center gap-sm rounded-md px-sm py-xs text-small font-medium transition-colors", e.id === r ? "bg-primary/10 text-primary" : "text-text-secondary hover:bg-bg-tertiary hover:text-text-primary"].join(" "),
|
|
1328
1346
|
children: [e.icon && /* @__PURE__ */ d(e.icon, { size: 16 }), e.label]
|
|
1329
1347
|
}, e.id))]
|
|
1330
|
-
}), o.map((e) => /* @__PURE__ */ d(
|
|
1348
|
+
}), o.map((e) => /* @__PURE__ */ d(yt, {
|
|
1331
1349
|
section: e,
|
|
1332
1350
|
activeLinkId: c,
|
|
1333
1351
|
onLinkClick: (e) => {
|
|
@@ -1337,7 +1355,21 @@ function gt({ open: e, onClose: t, categories: n = [], activeCategoryId: r, onCa
|
|
|
1337
1355
|
})]
|
|
1338
1356
|
})] });
|
|
1339
1357
|
}
|
|
1340
|
-
function
|
|
1358
|
+
function vt({ counters: e }) {
|
|
1359
|
+
let t = e?.filter((e) => e.count > 0);
|
|
1360
|
+
return t?.length ? /* @__PURE__ */ d("span", {
|
|
1361
|
+
className: "ml-auto flex items-center gap-1",
|
|
1362
|
+
children: t.map((e, t) => /* @__PURE__ */ d(Y, {
|
|
1363
|
+
content: e.tooltip,
|
|
1364
|
+
placement: "top",
|
|
1365
|
+
children: /* @__PURE__ */ d(H, {
|
|
1366
|
+
color: e.color,
|
|
1367
|
+
children: e.count > 99 ? "99+" : e.count
|
|
1368
|
+
})
|
|
1369
|
+
}, t))
|
|
1370
|
+
}) : null;
|
|
1371
|
+
}
|
|
1372
|
+
function yt({ section: e, activeLinkId: t, onLinkClick: n }) {
|
|
1341
1373
|
let [r, i] = c(!0);
|
|
1342
1374
|
return /* @__PURE__ */ f("div", {
|
|
1343
1375
|
className: "mb-xs flex flex-col",
|
|
@@ -1358,7 +1390,11 @@ function _t({ section: e, activeLinkId: t, onLinkClick: n }) {
|
|
|
1358
1390
|
onClick: () => n?.(e.href),
|
|
1359
1391
|
className: ["flex w-full items-center gap-sm rounded-md px-sm py-xs text-small transition-colors", r ? "bg-primary/10 font-medium text-primary" : "text-text-secondary hover:bg-bg-tertiary hover:text-text-primary"].join(" "),
|
|
1360
1392
|
"aria-current": r ? "page" : void 0,
|
|
1361
|
-
children: [
|
|
1393
|
+
children: [
|
|
1394
|
+
e.icon && /* @__PURE__ */ d(e.icon, { size: 18 }),
|
|
1395
|
+
/* @__PURE__ */ d("span", { children: e.label }),
|
|
1396
|
+
/* @__PURE__ */ d(vt, { counters: e.counters })
|
|
1397
|
+
]
|
|
1362
1398
|
}) }, e.id);
|
|
1363
1399
|
})
|
|
1364
1400
|
})]
|
|
@@ -1366,8 +1402,8 @@ function _t({ section: e, activeLinkId: t, onLinkClick: n }) {
|
|
|
1366
1402
|
}
|
|
1367
1403
|
//#endregion
|
|
1368
1404
|
//#region src/components/layout/Footer.tsx
|
|
1369
|
-
var
|
|
1370
|
-
function
|
|
1405
|
+
var bt = "https://www.epfl.ch/campus/services/website//wp-content/themes/wp-theme-2018/assets/svg/epfl-logo.svg?refresh=now", xt = () => (/* @__PURE__ */ new Date()).getFullYear();
|
|
1406
|
+
function St() {
|
|
1371
1407
|
return /* @__PURE__ */ d("footer", {
|
|
1372
1408
|
role: "contentinfo",
|
|
1373
1409
|
className: "bg-bg-secondary border-t border-border mt-auto",
|
|
@@ -1380,7 +1416,7 @@ function bt() {
|
|
|
1380
1416
|
children: /* @__PURE__ */ d("a", {
|
|
1381
1417
|
href: "https://www.epfl.ch/en/",
|
|
1382
1418
|
children: /* @__PURE__ */ d("img", {
|
|
1383
|
-
src:
|
|
1419
|
+
src: bt,
|
|
1384
1420
|
alt: "Logo EPFL",
|
|
1385
1421
|
className: "h-8 w-auto",
|
|
1386
1422
|
style: {
|
|
@@ -1432,7 +1468,7 @@ function bt() {
|
|
|
1432
1468
|
className: "m-0 text-text-muted text-small",
|
|
1433
1469
|
children: [
|
|
1434
1470
|
"© ",
|
|
1435
|
-
|
|
1471
|
+
xt(),
|
|
1436
1472
|
" EPFL, all rights reserved"
|
|
1437
1473
|
]
|
|
1438
1474
|
})]
|
|
@@ -1471,8 +1507,8 @@ function bt() {
|
|
|
1471
1507
|
}
|
|
1472
1508
|
//#endregion
|
|
1473
1509
|
//#region src/components/layout/UserMenu.tsx
|
|
1474
|
-
function
|
|
1475
|
-
let { t } =
|
|
1510
|
+
function Ct({ onLogin: e }) {
|
|
1511
|
+
let { t } = M();
|
|
1476
1512
|
return /* @__PURE__ */ d(be, {
|
|
1477
1513
|
variant: "primary",
|
|
1478
1514
|
size: "sm",
|
|
@@ -1481,10 +1517,10 @@ function xt({ onLogin: e }) {
|
|
|
1481
1517
|
children: t("auth.login")
|
|
1482
1518
|
});
|
|
1483
1519
|
}
|
|
1484
|
-
function
|
|
1485
|
-
let { t: n } =
|
|
1486
|
-
return /* @__PURE__ */ f(
|
|
1487
|
-
trigger: /* @__PURE__ */ d(
|
|
1520
|
+
function wt({ user: e, onLogout: t }) {
|
|
1521
|
+
let { t: n } = M();
|
|
1522
|
+
return /* @__PURE__ */ f(Ke, {
|
|
1523
|
+
trigger: /* @__PURE__ */ d(pe, {
|
|
1488
1524
|
src: e.avatarUrl,
|
|
1489
1525
|
name: e.name,
|
|
1490
1526
|
size: "sm",
|
|
@@ -1502,8 +1538,8 @@ function St({ user: e, onLogout: t }) {
|
|
|
1502
1538
|
children: e.email
|
|
1503
1539
|
})]
|
|
1504
1540
|
}),
|
|
1505
|
-
/* @__PURE__ */ d(
|
|
1506
|
-
/* @__PURE__ */ d(
|
|
1541
|
+
/* @__PURE__ */ d(We, {}),
|
|
1542
|
+
/* @__PURE__ */ d(Ge, {
|
|
1507
1543
|
icon: /* @__PURE__ */ d(m, { size: 14 }),
|
|
1508
1544
|
onClick: t,
|
|
1509
1545
|
children: n("auth.logout")
|
|
@@ -1513,7 +1549,7 @@ function St({ user: e, onLogout: t }) {
|
|
|
1513
1549
|
}
|
|
1514
1550
|
//#endregion
|
|
1515
1551
|
//#region src/components/layout/PageShell.tsx
|
|
1516
|
-
function
|
|
1552
|
+
function Tt({ children: e, logo: t, logoUrl: n, categories: r = [], activeCategoryId: i, onCategoryChange: a, sections: o = [], activeLinkId: s, onLinkClick: l, actions: u, sideNavCollapsed: p = !1, sideNavFoldable: m = !1, sideNavHomeLink: h, showFooter: g = !0 }) {
|
|
1517
1553
|
let [_, v] = c(!1);
|
|
1518
1554
|
return /* @__PURE__ */ f("div", {
|
|
1519
1555
|
className: "flex h-screen flex-col bg-bg-primary",
|
|
@@ -1545,10 +1581,10 @@ function Ct({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
|
|
|
1545
1581
|
className: "mx-auto max-w-[var(--container-6xl)]",
|
|
1546
1582
|
children: e
|
|
1547
1583
|
})
|
|
1548
|
-
}), g && /* @__PURE__ */ d(
|
|
1584
|
+
}), g && /* @__PURE__ */ d(St, {})]
|
|
1549
1585
|
})]
|
|
1550
1586
|
}),
|
|
1551
|
-
/* @__PURE__ */ d(
|
|
1587
|
+
/* @__PURE__ */ d(_t, {
|
|
1552
1588
|
open: _,
|
|
1553
1589
|
onClose: () => v(!1),
|
|
1554
1590
|
categories: r,
|
|
@@ -1567,7 +1603,7 @@ function Ct({ children: e, logo: t, logoUrl: n, categories: r = [], activeCatego
|
|
|
1567
1603
|
}
|
|
1568
1604
|
//#endregion
|
|
1569
1605
|
//#region src/components/data-display/Card.tsx
|
|
1570
|
-
var
|
|
1606
|
+
var Et = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, className: i = "", children: a, ...o }, s) {
|
|
1571
1607
|
let c = t || n;
|
|
1572
1608
|
return /* @__PURE__ */ f("div", {
|
|
1573
1609
|
ref: s,
|
|
@@ -1601,7 +1637,7 @@ var wt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, class
|
|
|
1601
1637
|
})
|
|
1602
1638
|
]
|
|
1603
1639
|
});
|
|
1604
|
-
}),
|
|
1640
|
+
}), Dt = t(function({ items: e, layout: t = "horizontal", dividers: n = !0, className: r = "", ...i }, a) {
|
|
1605
1641
|
let o = t === "horizontal";
|
|
1606
1642
|
return /* @__PURE__ */ d("dl", {
|
|
1607
1643
|
ref: a,
|
|
@@ -1622,7 +1658,7 @@ var wt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, class
|
|
|
1622
1658
|
})]
|
|
1623
1659
|
}, t))
|
|
1624
1660
|
});
|
|
1625
|
-
}),
|
|
1661
|
+
}), Ot = t(function({ illustration: e, title: t, description: n, action: r, className: i = "", ...a }, o) {
|
|
1626
1662
|
return /* @__PURE__ */ f("div", {
|
|
1627
1663
|
ref: o,
|
|
1628
1664
|
className: ["flex flex-col items-center justify-center text-center py-2xl px-lg", i].filter(Boolean).join(" "),
|
|
@@ -1649,7 +1685,7 @@ var wt = t(function({ header: e, footer: t, actions: n, noPadding: r = !1, class
|
|
|
1649
1685
|
});
|
|
1650
1686
|
//#endregion
|
|
1651
1687
|
//#region src/components/data-display/Table.tsx
|
|
1652
|
-
function
|
|
1688
|
+
function kt(e, t) {
|
|
1653
1689
|
if (!e.sortValue || t.length === 0) return "text";
|
|
1654
1690
|
for (let n of t) {
|
|
1655
1691
|
let t = e.sortValue(n);
|
|
@@ -1657,7 +1693,7 @@ function Dt(e, t) {
|
|
|
1657
1693
|
}
|
|
1658
1694
|
return "text";
|
|
1659
1695
|
}
|
|
1660
|
-
function
|
|
1696
|
+
function At({ active: e, direction: t, columnType: n }) {
|
|
1661
1697
|
return e ? d(n === "numeric" ? t === "asc" ? k : A : t === "asc" ? E : D, {
|
|
1662
1698
|
size: 14,
|
|
1663
1699
|
className: "ml-1 inline",
|
|
@@ -1668,7 +1704,7 @@ function Ot({ active: e, direction: t, columnType: n }) {
|
|
|
1668
1704
|
"aria-hidden": !0
|
|
1669
1705
|
});
|
|
1670
1706
|
}
|
|
1671
|
-
var
|
|
1707
|
+
var jt = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a, onSortChange: s, emptyContent: l, className: u = "", ...p }, m) {
|
|
1672
1708
|
let [h, g] = c(), _ = a ?? h, v = n((e) => {
|
|
1673
1709
|
let t = _?.column === e && _.direction === "asc" ? {
|
|
1674
1710
|
column: e,
|
|
@@ -1698,7 +1734,7 @@ var kt = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
|
|
|
1698
1734
|
s
|
|
1699
1735
|
]), b = o(() => {
|
|
1700
1736
|
let n = /* @__PURE__ */ new Map();
|
|
1701
|
-
for (let r of e) r.sortable && n.set(r.key,
|
|
1737
|
+
for (let r of e) r.sortable && n.set(r.key, kt(r, t));
|
|
1702
1738
|
return n;
|
|
1703
1739
|
}, [e, t]), x = y.length === 0;
|
|
1704
1740
|
return /* @__PURE__ */ d("div", {
|
|
@@ -1721,7 +1757,7 @@ var kt = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
|
|
|
1721
1757
|
"aria-sort": t ? _.direction === "asc" ? "ascending" : "descending" : e.sortable ? "none" : void 0,
|
|
1722
1758
|
children: /* @__PURE__ */ f("span", {
|
|
1723
1759
|
className: "inline-flex items-center",
|
|
1724
|
-
children: [e.header, e.sortable && /* @__PURE__ */ d(
|
|
1760
|
+
children: [e.header, e.sortable && /* @__PURE__ */ d(At, {
|
|
1725
1761
|
active: t,
|
|
1726
1762
|
direction: t ? _.direction : void 0,
|
|
1727
1763
|
columnType: b.get(e.key) ?? "text"
|
|
@@ -1746,7 +1782,7 @@ var kt = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
|
|
|
1746
1782
|
}, r(t, n))) })]
|
|
1747
1783
|
})
|
|
1748
1784
|
});
|
|
1749
|
-
}),
|
|
1785
|
+
}), Mt = {
|
|
1750
1786
|
success: {
|
|
1751
1787
|
bg: "bg-success-bg",
|
|
1752
1788
|
border: "border-success/30",
|
|
@@ -1763,7 +1799,7 @@ var kt = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
|
|
|
1763
1799
|
bg: "bg-error-bg",
|
|
1764
1800
|
border: "border-error/30",
|
|
1765
1801
|
text: "text-error",
|
|
1766
|
-
icon:
|
|
1802
|
+
icon: te
|
|
1767
1803
|
},
|
|
1768
1804
|
info: {
|
|
1769
1805
|
bg: "bg-info-bg",
|
|
@@ -1772,8 +1808,8 @@ var kt = t(function({ columns: e, data: t, rowKey: r, striped: i = !1, sort: a,
|
|
|
1772
1808
|
icon: C
|
|
1773
1809
|
}
|
|
1774
1810
|
};
|
|
1775
|
-
function
|
|
1776
|
-
let [o, s] = c(!0), { bg: l, border: u, text: p, icon: m } =
|
|
1811
|
+
function Nt({ variant: e, title: t, children: n, dismissible: r = !1, onDismiss: i, className: a = "" }) {
|
|
1812
|
+
let [o, s] = c(!0), { bg: l, border: u, text: p, icon: m } = Mt[e];
|
|
1777
1813
|
if (!o) return null;
|
|
1778
1814
|
let h = () => {
|
|
1779
1815
|
s(!1), i?.();
|
|
@@ -1802,19 +1838,19 @@ function jt({ variant: e, title: t, children: n, dismissible: r = !1, onDismiss:
|
|
|
1802
1838
|
onClick: h,
|
|
1803
1839
|
className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
|
|
1804
1840
|
"aria-label": "Dismiss alert",
|
|
1805
|
-
children: /* @__PURE__ */ d(
|
|
1841
|
+
children: /* @__PURE__ */ d(j, { size: 16 })
|
|
1806
1842
|
})
|
|
1807
1843
|
]
|
|
1808
1844
|
});
|
|
1809
1845
|
}
|
|
1810
1846
|
//#endregion
|
|
1811
1847
|
//#region src/components/feedback/Dialog.tsx
|
|
1812
|
-
var
|
|
1848
|
+
var Pt = {
|
|
1813
1849
|
sm: "max-w-[24rem]",
|
|
1814
1850
|
md: "max-w-[32rem]",
|
|
1815
1851
|
lg: "max-w-[42rem]"
|
|
1816
1852
|
};
|
|
1817
|
-
function
|
|
1853
|
+
function Ft({ open: e, onClose: t, title: n, size: r = "md", children: a, footer: o, className: c = "" }) {
|
|
1818
1854
|
let l = s(null);
|
|
1819
1855
|
i(() => {
|
|
1820
1856
|
if (!e) return;
|
|
@@ -1841,7 +1877,7 @@ function Nt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
|
|
|
1841
1877
|
e.shiftKey && document.activeElement === n ? (e.preventDefault(), r.focus()) : !e.shiftKey && document.activeElement === r && (e.preventDefault(), n.focus());
|
|
1842
1878
|
}
|
|
1843
1879
|
};
|
|
1844
|
-
return e ?
|
|
1880
|
+
return e ? ue(/* @__PURE__ */ f("div", {
|
|
1845
1881
|
style: {
|
|
1846
1882
|
position: "fixed",
|
|
1847
1883
|
inset: 0,
|
|
@@ -1873,7 +1909,7 @@ function Nt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
|
|
|
1873
1909
|
children: /* @__PURE__ */ f("div", {
|
|
1874
1910
|
ref: l,
|
|
1875
1911
|
tabIndex: -1,
|
|
1876
|
-
className: `relative z-10 flex flex-col w-full ${
|
|
1912
|
+
className: `relative z-10 flex flex-col w-full ${Pt[r]} rounded-lg border border-border bg-bg-primary shadow-xl outline-none animate-dialog-in ${c}`,
|
|
1877
1913
|
children: [
|
|
1878
1914
|
n && /* @__PURE__ */ f("div", {
|
|
1879
1915
|
className: "flex items-center justify-between px-lg py-md border-b border-border",
|
|
@@ -1886,7 +1922,7 @@ function Nt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
|
|
|
1886
1922
|
onClick: t,
|
|
1887
1923
|
className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
|
|
1888
1924
|
"aria-label": "Close dialog",
|
|
1889
|
-
children: /* @__PURE__ */ d(
|
|
1925
|
+
children: /* @__PURE__ */ d(j, { size: 18 })
|
|
1890
1926
|
})]
|
|
1891
1927
|
}),
|
|
1892
1928
|
/* @__PURE__ */ d("div", {
|
|
@@ -1904,8 +1940,8 @@ function Nt({ open: e, onClose: t, title: n, size: r = "md", children: a, footer
|
|
|
1904
1940
|
}
|
|
1905
1941
|
//#endregion
|
|
1906
1942
|
//#region src/components/feedback/ConfirmDialog.tsx
|
|
1907
|
-
function
|
|
1908
|
-
return /* @__PURE__ */ f(
|
|
1943
|
+
function It({ open: e, onCancel: t, onConfirm: n, title: r, children: i, confirmLabel: a = "Confirm", cancelLabel: o = "Cancel", danger: s = !1, submitting: c = !1, size: l = "sm" }) {
|
|
1944
|
+
return /* @__PURE__ */ f(Ft, {
|
|
1909
1945
|
open: e,
|
|
1910
1946
|
onClose: t,
|
|
1911
1947
|
title: r,
|
|
@@ -1944,15 +1980,15 @@ function Pt({ open: e, onCancel: t, onConfirm: n, title: r, children: i, confirm
|
|
|
1944
1980
|
}
|
|
1945
1981
|
//#endregion
|
|
1946
1982
|
//#region src/components/feedback/toastContext.ts
|
|
1947
|
-
var
|
|
1948
|
-
function
|
|
1949
|
-
let e = r(
|
|
1983
|
+
var Lt = e(null);
|
|
1984
|
+
function Rt() {
|
|
1985
|
+
let e = r(Lt);
|
|
1950
1986
|
if (!e) throw Error("useToast must be used within a <ToastProvider>");
|
|
1951
1987
|
return e;
|
|
1952
1988
|
}
|
|
1953
1989
|
//#endregion
|
|
1954
1990
|
//#region src/components/feedback/Toast.tsx
|
|
1955
|
-
var
|
|
1991
|
+
var zt = {
|
|
1956
1992
|
success: {
|
|
1957
1993
|
bg: "bg-bg-primary",
|
|
1958
1994
|
accent: "bg-success",
|
|
@@ -1969,7 +2005,7 @@ var Lt = {
|
|
|
1969
2005
|
bg: "bg-bg-primary",
|
|
1970
2006
|
accent: "bg-error",
|
|
1971
2007
|
text: "text-error",
|
|
1972
|
-
icon:
|
|
2008
|
+
icon: te
|
|
1973
2009
|
},
|
|
1974
2010
|
info: {
|
|
1975
2011
|
bg: "bg-bg-primary",
|
|
@@ -1978,8 +2014,8 @@ var Lt = {
|
|
|
1978
2014
|
icon: C
|
|
1979
2015
|
}
|
|
1980
2016
|
};
|
|
1981
|
-
function
|
|
1982
|
-
let { variant: n, title: r, message: a, duration: o = 5e3 } = e, { bg: l, accent: u, text: p, icon: m } =
|
|
2017
|
+
function Bt({ toast: e, onRemove: t }) {
|
|
2018
|
+
let { variant: n, title: r, message: a, duration: o = 5e3 } = e, { bg: l, accent: u, text: p, icon: m } = zt[n], [h, g] = c(100), _ = s(0), v = s(0);
|
|
1983
2019
|
return i(() => {
|
|
1984
2020
|
if (o <= 0) return;
|
|
1985
2021
|
_.current = performance.now();
|
|
@@ -2023,7 +2059,7 @@ function Rt({ toast: e, onRemove: t }) {
|
|
|
2023
2059
|
onClick: () => t(e.id),
|
|
2024
2060
|
className: "shrink-0 p-1 rounded-sm text-text-secondary hover:text-text-primary hover:bg-bg-tertiary transition-colors cursor-pointer",
|
|
2025
2061
|
"aria-label": "Dismiss notification",
|
|
2026
|
-
children: /* @__PURE__ */ d(
|
|
2062
|
+
children: /* @__PURE__ */ d(j, { size: 14 })
|
|
2027
2063
|
})
|
|
2028
2064
|
]
|
|
2029
2065
|
}), o > 0 && /* @__PURE__ */ d("div", {
|
|
@@ -2035,10 +2071,10 @@ function Rt({ toast: e, onRemove: t }) {
|
|
|
2035
2071
|
})]
|
|
2036
2072
|
});
|
|
2037
2073
|
}
|
|
2038
|
-
var
|
|
2039
|
-
function
|
|
2074
|
+
var Vt = 0;
|
|
2075
|
+
function Ht({ children: e }) {
|
|
2040
2076
|
let [t, r] = c([]), i = n((e) => {
|
|
2041
|
-
let t = `toast-${++
|
|
2077
|
+
let t = `toast-${++Vt}`;
|
|
2042
2078
|
return r((n) => [...n, {
|
|
2043
2079
|
...e,
|
|
2044
2080
|
id: t
|
|
@@ -2046,7 +2082,7 @@ function Bt({ children: e }) {
|
|
|
2046
2082
|
}, []), a = n((e) => {
|
|
2047
2083
|
r((t) => t.filter((t) => t.id !== e));
|
|
2048
2084
|
}, []);
|
|
2049
|
-
return /* @__PURE__ */ f(
|
|
2085
|
+
return /* @__PURE__ */ f(Lt, {
|
|
2050
2086
|
value: {
|
|
2051
2087
|
addToast: i,
|
|
2052
2088
|
removeToast: a
|
|
@@ -2056,7 +2092,7 @@ function Bt({ children: e }) {
|
|
|
2056
2092
|
className: "fixed bottom-lg right-lg z-50 flex flex-col-reverse gap-sm pointer-events-none",
|
|
2057
2093
|
children: t.map((e) => /* @__PURE__ */ d("div", {
|
|
2058
2094
|
className: "pointer-events-auto",
|
|
2059
|
-
children: /* @__PURE__ */ d(
|
|
2095
|
+
children: /* @__PURE__ */ d(Bt, {
|
|
2060
2096
|
toast: e,
|
|
2061
2097
|
onRemove: a
|
|
2062
2098
|
})
|
|
@@ -2066,12 +2102,12 @@ function Bt({ children: e }) {
|
|
|
2066
2102
|
}
|
|
2067
2103
|
//#endregion
|
|
2068
2104
|
//#region src/hooks/useAuth.tsx
|
|
2069
|
-
var
|
|
2105
|
+
var Ut = e(null), Wt = {
|
|
2070
2106
|
name: "Alice Martin",
|
|
2071
2107
|
email: "alice.martin@epfl.ch",
|
|
2072
2108
|
role: "admin"
|
|
2073
2109
|
};
|
|
2074
|
-
function
|
|
2110
|
+
function Gt({ initialUser: e = Wt, children: t }) {
|
|
2075
2111
|
let [n, r] = c(e), i = (e) => r((t) => ({
|
|
2076
2112
|
...t,
|
|
2077
2113
|
role: e
|
|
@@ -2079,17 +2115,17 @@ function Ut({ initialUser: e = Ht, children: t }) {
|
|
|
2079
2115
|
user: n,
|
|
2080
2116
|
setRole: i
|
|
2081
2117
|
}), [n]);
|
|
2082
|
-
return /* @__PURE__ */ d(
|
|
2118
|
+
return /* @__PURE__ */ d(Ut.Provider, {
|
|
2083
2119
|
value: a,
|
|
2084
2120
|
children: t
|
|
2085
2121
|
});
|
|
2086
2122
|
}
|
|
2087
|
-
function
|
|
2088
|
-
let e = r(
|
|
2123
|
+
function Kt() {
|
|
2124
|
+
let e = r(Ut);
|
|
2089
2125
|
if (!e) throw Error("useAuth must be used within an AuthProvider");
|
|
2090
2126
|
return e;
|
|
2091
2127
|
}
|
|
2092
2128
|
//#endregion
|
|
2093
|
-
export {
|
|
2129
|
+
export { Nt as Alert, Gt as AuthProvider, pe as Avatar, H as Badge, _t as BurgerDrawer, be as Button, Et as Card, Me as Checkbox, It as ConfirmDialog, Dt as DescriptionList, Ft as Dialog, We as DropdownDivider, Ge as DropdownItem, Ke as DropdownMenu, Ot as EmptyState, Oe as FileUpload, St as Footer, Ce as IconButton, Ie as Input, et as LanguageSwitcher, Ct as LoginButton, Tt as PageShell, Ee as Pagination, qe as Popover, je as ProgressBar, q as RadioGroup, Be as Select, mt as SideNav, U as Spinner, Ve as Switch, Ye as TabPanel, jt as Table, Xe as Tabs, He as Textarea, st as ThemeToggle, Ht as ToastProvider, Y as Tooltip, lt as TopNav, wt as UserMenu, J as epflSelectClassNames, ze as epflSelectTheme, at as initTheme, Kt as useAuth, Qe as useLanguage, ot as useTheme, Rt as useToast };
|
|
2094
2130
|
|
|
2095
2131
|
//# sourceMappingURL=poesis.js.map
|