react-ui89 0.22.0 → 0.23.0

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.
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { Ui89Theme } from "../theme";
2
3
  export declare enum Ui89HrLook {
3
4
  straight = "straight",
4
5
  dotted = "dotted",
@@ -7,5 +8,6 @@ export declare enum Ui89HrLook {
7
8
  }
8
9
  export interface Ui89HrProps {
9
10
  look?: keyof typeof Ui89HrLook;
11
+ theme?: keyof typeof Ui89Theme;
10
12
  }
11
- export declare function Ui89Hr({ look }: Ui89HrProps): React.JSX.Element;
13
+ export declare function Ui89Hr({ look, theme }: Ui89HrProps): React.JSX.Element;
@@ -7,3 +7,4 @@ export declare const Straight: Story;
7
7
  export declare const Dotted: Story;
8
8
  export declare const Dashed: Story;
9
9
  export declare const Double: Story;
10
+ export declare const ThemePrimary: Story;
@@ -1,2 +1,2 @@
1
- :root{--ui89-palette-black:#000;--ui89-palette-dark-blue:#00a;--ui89-palette-dark-green:#0a0;--ui89-palette-dark-cyan:#0aa;--ui89-palette-dark-red:#a00;--ui89-palette-dark-pink:#a0a;--ui89-palette-dark-yellow:#a50;--ui89-palette-light-gray:#aaa;--ui89-palette-dark-gray:#555;--ui89-palette-light-blue:#5454ff;--ui89-palette-light-green:#5f5;--ui89-palette-light-cyan:#5ff;--ui89-palette-light-red:#f55;--ui89-palette-light-pink:#f5f;--ui89-palette-light-yellow:#ff5;--ui89-palette-white:#fff;--ui89-theme-primary-text-color:var(--ui89-palette-black);--ui89-theme-primary-bg-color:var(--ui89-palette-light-yellow);--ui89-theme-secondary-text-color:var(--ui89-palette-black);--ui89-theme-secondary-bg-color:var(--ui89-palette-white);--ui89-theme-success-text-color:var(--ui89-palette-white);--ui89-theme-success-bg-color:var(--ui89-palette-dark-green);--ui89-theme-info-text-color:var(--ui89-palette-white);--ui89-theme-info-bg-color:var(--ui89-palette-light-blue);--ui89-theme-warning-text-color:var(--ui89-palette-white);--ui89-theme-warning-bg-color:var(--ui89-palette-dark-yellow);--ui89-theme-danger-text-color:var(--ui89-palette-white);--ui89-theme-danger-bg-color:var(--ui89-palette-dark-red);--ui89-safe-space:8px;--ui89-input-height:32px;--ui89-font-size-huge:32px;--ui89-font-size-big:20px;--ui89-font-size-normal:16px;--ui89-font-size-small:14px;--ui89-font-size-tiny:10px;--ui89-input-bg-color:var(--ui89-palette-black);--ui89-input-text-color:var(--ui89-palette-light-yellow);--ui89-animation-speed:100ms;--ui89-cursor-default:default;--ui89-cursor-pointer:pointer}.ui89-toaster:before{border:var(--ui89-toaster-border-width) solid var(--ui89-chosen-theme-text-color);content:"";inset:0;margin:var(--ui89-safe-space);position:absolute}.ui89-toaster:after{content:"";left:50%;padding:0 var(--ui89-safe-space);position:absolute;top:0;transform:translateX(-50%)}.ui89-toaster.Toastify__toast--default,.ui89-toaster:after{background:var(--ui89-chosen-theme-bg-color);color:var(--ui89-chosen-theme-text-color);display:block}.ui89-toaster.Toastify__toast--default{--ui89-toaster-border-width:1px;border-radius:0;box-shadow:10px 10px 0 #000;min-height:auto;padding:calc(var(--ui89-safe-space)*2 + var(--ui89-toaster-border-width))}.ui89-toaster .Toastify__progress-bar--wrp{border-radius:0}.Ui89Breadcrumbs-module_breadcrumbs__3qjJ-{display:flex;flex-direction:row-reverse;justify-content:flex-end;overflow:hidden;padding:var(--ui89-safe-space)}.Ui89Breadcrumbs-module_breadcrumbsItem__al4m-{animation:Ui89Breadcrumbs-module_appear__571eC var(--ui89-animation-speed);clip-path:polygon(0 0,calc(100% - var(--ui89-safe-space)) 0,100% 50%,calc(100% - var(--ui89-safe-space)) 100%,0 100%);color:var(--ui89-chosen-theme-text-color);display:block;margin:calc(var(--ui89-safe-space)*-1);padding-left:calc(var(--ui89-safe-space)*3);padding-right:calc(var(--ui89-safe-space)*2);position:relative}.Ui89Breadcrumbs-module_breadcrumbsItem__al4m-:last-child{padding-left:calc(var(--ui89-safe-space)*2)}@keyframes Ui89Breadcrumbs-module_appear__571eC{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.Ui89Breadcrumbs-module_breadcrumbsItemBackground__mTAdT{background-color:var(--ui89-chosen-theme-bg-color);filter:brightness(calc(1 - var(--ui89-index)*.1));inset:0;position:absolute;z-index:-1}.typo-module_big__NWXQv{font-family:monospace;font-size:var(--ui89-font-size-big);line-height:25px}.typo-module_normalBold__6Mx0C,.typo-module_normal__a1-s-{font-family:monospace;font-size:var(--ui89-font-size-normal);line-height:16px}.typo-module_normalBold__6Mx0C{font-weight:700}.typo-module_smallBold__BRDCu,.typo-module_small__cdnMc{font-family:monospace;font-size:var(--ui89-font-size-small);line-height:16px}.typo-module_smallBold__BRDCu{font-weight:700}.typo-module_special__PiPuc{font-family:monospace;font-size:var(--ui89-font-size-small);font-weight:700}.reset-module_a__dpZ8C{text-decoration:none}.chosen-theme-module_primary__GwEqU{--ui89-chosen-theme-text-color:var(--ui89-theme-primary-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-primary-bg-color)}.chosen-theme-module_secondary__DI5Gk{--ui89-chosen-theme-text-color:var(--ui89-theme-secondary-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-secondary-bg-color)}.chosen-theme-module_info__KYP2h{--ui89-chosen-theme-text-color:var(--ui89-theme-info-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-info-bg-color)}.chosen-theme-module_success__l3hFS{--ui89-chosen-theme-text-color:var(--ui89-theme-success-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-success-bg-color)}.chosen-theme-module_warning__A7IOL{--ui89-chosen-theme-text-color:var(--ui89-theme-warning-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-warning-bg-color)}.chosen-theme-module_danger__CZ3Iq{--ui89-chosen-theme-text-color:var(--ui89-theme-danger-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-danger-bg-color)}.Ui89Button-module_container__V4tWM{display:inline-block}.Ui89Button-module_button__wl9cp{align-items:center;background-color:var(--ui89-chosen-theme-bg-color);border:1px solid #00000010;border-radius:1px;box-sizing:border-box;color:var(--ui89-chosen-theme-text-color);cursor:var(--ui89-cursor-pointer);display:inline-flex;font-weight:700;justify-content:center;min-width:60px;padding:0 16px;position:relative;text-align:center;transition:transform var(--ui89-animation-speed);user-select:none}.Ui89Button-module_button__wl9cp:before{inset:0;position:absolute}.Ui89Button-module_block__3sGjT{display:flex}.Ui89Button-module_button__wl9cp:hover:not(.Ui89Button-module_disabled__I5nOu):not(.Ui89Button-module_active__ZN0AN):before{background-color:#ffffff40;content:"";cursor:var(--ui89-cursor-pointer)}.Ui89Button-module_active__ZN0AN,.Ui89Button-module_button__wl9cp:active:not(.Ui89Button-module_disabled__I5nOu){transform:translate3d(calc(var(--ui89-safe-space)/2),calc(var(--ui89-safe-space)/2),0)}.Ui89Button-module_button__wl9cp:active:not(.Ui89Button-module_disabled__I5nOu):not(.Ui89Button-module_active__ZN0AN):before{background-color:#00000040;content:none;cursor:var(--ui89-cursor-pointer)}.Ui89Button-module_disabled__I5nOu{cursor:var(--ui89-cursor-default);opacity:.5}.Ui89Button-module_size--normal__Pht3J{height:22px}.Ui89Button-module_size--small__-4-4v{height:24px}.Ui89Button-module_click__INMSh{inset:0;position:absolute}.Ui89Button-module_active__ZN0AN>.Ui89Button-module_click__INMSh,.Ui89Button-module_button__wl9cp:active:not(.Ui89Button-module_disabled__I5nOu)>.Ui89Button-module_click__INMSh{transform:translate3d(calc(var(--ui89-safe-space)/2*-1),calc(var(--ui89-safe-space)/2*-1),0)}.HoverShadow-module_hoverShadow__-cRBn{display:grid;padding-bottom:var(--ui89-safe-space);padding-right:var(--ui89-safe-space);position:relative}.HoverShadow-module_hoverShadow__-cRBn>*{min-height:min-content;min-width:min-content}.HoverShadow-module_hoverShadowRight__u1rW-{height:calc(100% - var(--ui89-safe-space));width:var(--ui89-safe-space)}.HoverShadow-module_hoverShadowBottom__mTTdA,.HoverShadow-module_hoverShadowRight__u1rW-{background:#000;bottom:0;box-sizing:border-box;display:block;position:absolute;right:0;z-index:0}.HoverShadow-module_hoverShadowBottom__mTTdA{height:var(--ui89-safe-space);width:calc(100% - var(--ui89-safe-space))}.Ui89Card-module_container__-8hhJ{background:var(--ui89-scene-card-bg-color);border-bottom:calc(var(--ui89-safe-space)) solid #00000040;border-left:calc(var(--ui89-safe-space)) solid #ffffff20;border-radius:var(--ui89-box-border-radius);border-right:calc(var(--ui89-safe-space)) solid #00000040;border-top:calc(var(--ui89-safe-space)) solid #ffffff20;border:1px solid var(--ui89-scene-card-text-color);box-shadow:0 1px 2px 0 #0000000d;color:var(--ui89-scene-card-text-color);display:flex;flex-direction:column;padding:calc(var(--ui89-safe-space)/4) calc(var(--ui89-safe-space)/2);position:relative}.Ui89Card-module_container__-8hhJ>*{flex:1}.Ui89Card-module_containerHasTop__UsQUD{margin-top:var(--ui89-safe-space)}.Ui89Card-module_inside__91GoJ{border:1px solid #fff;padding:calc(var(--ui89-safe-space))}.Ui89Card-module_topLeftCenter__r9PD6{bottom:100%;left:0;padding-left:var(--ui89-safe-space);position:absolute;transform:translateY(50%)}.Ui89Card-module_topCenter__SZWfR{display:flex;justify-content:center;left:var(--ui89-safe-space);position:absolute;right:var(--ui89-safe-space);top:0;transform:translateY(-50%)}.Ui89Card-module_cardHorizontalConnection__WEoNx{background:var(--ui89-scene-card-bg-color);margin:0 calc(var(--ui89-safe-space)*-1)}.Ui89Card-module_cardHorizontalConnection--overflow__wuaL1{margin:0 calc(var(--ui89-safe-space)*-1 - 1px)}.Ui89HighlightText-module_container__gap-L{background-color:var(--ui89-chosen-theme-bg-color);color:var(--ui89-chosen-theme-text-color)}.Ui89HighlightText-module_container--block__BDJUL{display:block}.Ui89Hr-module_hr--straight__xLovR{border-top:1px solid var(--ui89-scene-card-text-color)}.Ui89Hr-module_hr--dotted__jChvp{border-top:1px dotted var(--ui89-scene-card-text-color)}.Ui89Hr-module_hr--dashed__bbsS2{border-top:1px dashed var(--ui89-scene-card-text-color)}.Ui89Hr-module_hr--double__DoNtB{border-top:1px solid var(--ui89-scene-card-text-color)}.Ui89Hr-module_hr--double__DoNtB .Ui89Hr-module_hrDouble__7oh3f{border-top:1px solid var(--ui89-scene-card-text-color);margin-top:4px}.Ui89InputFileUpload-module_inputFileUpload__-sTRV{align-items:center;display:flex;gap:calc(var(--ui89-safe-space)*1)}.Ui89InputFileUpload-module_inputFileUpload__info__VFVuy{min-width:0}.text-module_unbreakable__3eDe3{white-space:nowrap}.text-module_ellipsis__3-f-B,.text-module_singleLine__X6pYL{overflow:hidden;text-overflow:ellipsis}.text-module_singleLine__X6pYL{white-space:nowrap}.text-module_singleLine--ellipsisLeft__n1auO{direction:rtl}.Ui89InputSelect-module_inputSelect__R3-fU{position:relative}.Ui89InputSelect-module_menu__T-rDA{background:var(--ui89-input-bg-color);color:var(--ui89-input-text-color);display:none;left:0;max-height:300px;overflow:auto;position:absolute;top:100%;width:100%;z-index:1}.Ui89InputSelect-module_menuContent__poCdH{display:inline-flex;flex-direction:column;min-width:100%}.Ui89InputSelect-module_inputSelect__R3-fU:focus-within .Ui89InputSelect-module_menu__T-rDA{animation:Ui89InputSelect-module_appear__S2gIU var(--ui89-animation-speed);display:block}@keyframes Ui89InputSelect-module_appear__S2gIU{0%{transform:translateY(-5px)}to{transform:translateY(0)}}.Ui89InputSelect-module_menuItem__3l1y0{align-items:center;background:var(--ui89-input-bg-color);color:var(--ui89-input-text-color);display:inline-flex;height:var(--ui89-input-height);padding:0 var(--ui89-safe-space);user-select:none;white-space:nowrap}.Ui89InputSelect-module_menuItem__3l1y0:not(.Ui89InputSelect-module_menuItem--disabled__eEjvv){cursor:pointer}.Ui89InputSelect-module_menuItem__3l1y0.Ui89InputSelect-module_selected__AbSbK,.Ui89InputSelect-module_menuItem__3l1y0:not(.Ui89InputSelect-module_menuItem--disabled__eEjvv):hover{background:var(--ui89-input-text-color);color:var(--ui89-input-bg-color)}.Ui89InputSelect-module_menuItem--disabled__eEjvv{color:var(--ui89-palette-white)}.input-box-module_inputBox__hMERT{background:var(--ui89-input-bg-color);border:0;border-radius:0;box-sizing:border-box;color:var(--ui89-input-text-color);display:block;height:var(--ui89-input-height);line-height:var(--ui89-input-height);outline:none;padding:0 var(--ui89-safe-space);width:100%}.input-box-module_inputBox--unselectable__1VrB-{user-select:none}.input-box-module_inputBox--clickable__CXeLj{cursor:var(--ui89-cursor-pointer)}.Ui89MenuBar-module_menuBar__IlnEP{background:var(--ui89-theme-primary-bg-color);color:var(--ui89-theme-primary-text-color);display:flex;height:16px}.Ui89MenuBar-module_menuBarItem__UVFg2{cursor:var(--ui89-cursor-pointer);padding:0 calc(var(--ui89-safe-space)*2)}.Ui89MenuBar-module_menuBarItem__UVFg2:active,.Ui89MenuBar-module_menuBarItem__UVFg2:hover{background:var(--ui89-theme-primary-text-color);color:var(--ui89-theme-primary-bg-color)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar{background:var(--ui89-scene-bg-color);width:calc(var(--ui89-safe-space)*2)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-track{background:var(--ui89-scene-bg-color);background:var(--ui89-palette-dark-gray);border:1px solid var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-thumb{background:var(--ui89-palette-light-gray);border:1px solid #0000}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-thumb:vertical{border-bottom-color:var(--ui89-palette-dark-gray);border-top-color:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-thumb:horizontal{border-left-color:var(--ui89-palette-dark-gray);border-right-color:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button{background-color:#bbb;border-style:solid;display:block;height:calc(var(--ui89-safe-space)*2)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:decrement{border-color:#0000 #0000 var(--ui89-palette-black) #0000;border-width:0 var(--ui89-safe-space) var(--ui89-safe-space) var(--ui89-safe-space)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:decrement:active{background:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:increment{border-color:var(--ui89-palette-black) #0000 #0000 #0000;border-width:var(--ui89-safe-space) var(--ui89-safe-space) 0 var(--ui89-safe-space)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:increment:active{background:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:decrement{border-color:#0000 var(--ui89-palette-black) #0000 #0000;border-width:var(--ui89-safe-space) var(--ui89-safe-space) var(--ui89-safe-space) 0}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:decrement:active{background:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:increment{border-color:#0000 #0000 #0000 var(--ui89-palette-black);border-width:var(--ui89-safe-space) 0 var(--ui89-safe-space) var(--ui89-safe-space)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:increment:active{background:var(--ui89-palette-dark-gray)}.Ui89ModalDialog-module_dialog__JtOw1{animation:Ui89ModalDialog-module_appear__Xt-kk var(--ui89-animation-speed);display:none;inset:0;position:fixed}.Ui89ModalDialog-module_dialog--open__9o2xZ{display:block}.Ui89ModalDialog-module_dialogBackdrop__pw9Av{background-color:#0006;inset:0;position:absolute}.Ui89ModalDialog-module_dialogBox__ilddn{border:none;border-radius:0;inset:0;bottom:auto;display:flex;flex-direction:column;margin:auto;max-height:100%;min-height:0;outline:none;overflow:auto;position:absolute;word-break:break-word}.Ui89ModalDialog-module_spacer__fS17b{height:100px;min-height:0}.Ui89ModalDialog-module_dialogBox__ilddn>:not(.Ui89ModalDialog-module_spacer__fS17b){flex:1 0;min-height:0}.Ui89ModalDialog-module_dialogBox--size-big__YT0xb{max-width:700px}.Ui89ModalDialog-module_dialogBox--size-medium__lZrJR{max-width:500px}.Ui89ModalDialog-module_dialogBox--size-small__-2nH-{max-width:300px}@keyframes Ui89ModalDialog-module_appear__Xt-kk{0%{opacity:0}to{opacity:1}}.Ui89Scene-module_scene__5uNRp{background-color:var(--ui89-scene-bg-color);color:var(--ui89-scene-text-color);overflow:visible}.look-module_main__dCtZk{--ui89-scene-text-color:var(--ui89-palette-white);--ui89-scene-text-subtle-color:var(--ui89-palette-light-gray);--ui89-scene-bg-color:var(--ui89-palette-dark-blue);--ui89-scene-highlight-color:#fff3;--ui89-scene-card-bg-color:var(--ui89-palette-dark-blue);--ui89-scene-card-text-color:var(--ui89-palette-white);--ui89-theme-primary-text-color:var(--ui89-palette-white);--ui89-theme-primary-bg-color:var(--ui89-palette-light-blue);--ui89-theme-secondary-text-color:var(--ui89-palette-black);--ui89-theme-secondary-bg-color:var(--ui89-palette-light-gray)}.look-module_side__bCbry{--ui89-scene-text-color:var(--ui89-palette-white);--ui89-scene-text-subtle-color:var(--ui89-palette-dark-gray);--ui89-scene-bg-color:var(--ui89-palette-light-gray);--ui89-scene-highlight-color:#fff3;--ui89-scene-card-bg-color:var(--ui89-palette-light-gray);--ui89-scene-card-text-color:var(--ui89-palette-white);--ui89-theme-primary-text-color:var(--ui89-palette-white);--ui89-theme-primary-bg-color:var(--ui89-palette-light-blue);--ui89-theme-secondary-text-color:var(--ui89-palette-black);--ui89-theme-secondary-bg-color:var(--ui89-palette-white)}.GridExpandTrick-module_gridExpandTrick__10Eg5{display:grid}.GridExpandTrick-module_gridExpandTrick__10Eg5>*{min-height:0;min-width:0}.ScrollContainer-module_scrollContainer__J82cj{overflow:auto}.Ui89NameValuePair-module_nameValuePair__eRuAY{display:flex;gap:1px}.Ui89NameValuePair-module_nameValuePair__name__gJ4ne,.Ui89NameValuePair-module_nameValuePair__value__b5q4u{text-align:justify}.Ui89NameValuePair-module_nameValuePair__dots__BaHp6{border-bottom:1px dashed;flex:1 1;min-width:calc(var(--ui89-safe-space)*2)}.Ui89Shortcut-module_container__L07CL{box-sizing:border-box;cursor:var(--ui89-cursor-pointer);display:inline-flex;flex-direction:column;position:relative;text-align:center;user-select:none}.Ui89Shortcut-module_label__Q2ffs{max-width:140px}.Ui89Shortcut-module_container__L07CL:hover{border-color:currentColor}.Ui89Shortcut-module_container__L07CL:hover .Ui89Shortcut-module_label__Q2ffs{background:var(--ui89-scene-text-color);color:var(--ui89-scene-bg-color)}.Ui89Shortcut-module_imageContainer__tCoZK{align-items:flex-end;display:flex;justify-content:center;position:relative}.Ui89Shortcut-module_image__f4Hsg{display:block;height:140px;width:140px}.Ui89Shortcut-module_shortcutIconContainer__t30jR{position:relative;width:0}.Ui89Shortcut-module_shortcutIcon__SjZkr{bottom:0;pointer-events:none;position:absolute;right:0}.Ui89Tabs-module_navigation__y1WSG{display:flex;flex-wrap:wrap}.Ui89Tabs-module_navigation--stretch__N6YL5 .Ui89Tabs-module_navigationItem__keX-1{flex-grow:1}.Ui89Tabs-module_navigationItem__keX-1{background-color:var(--ui89-scene-bg-color);color:var(--ui89-scene-text-color);cursor:var(--ui89-cursor-pointer);padding:0 calc(var(--ui89-safe-space)*3);text-align:center}.Ui89Tabs-module_navigationItemSelected__R7dba,.Ui89Tabs-module_navigationItem__keX-1:hover{background-color:var(--ui89-scene-text-color);color:var(--ui89-scene-bg-color)}.Ui89TagBox-module_container__2GXMj{border-radius:var(--box-border-radius);display:inline-block;line-height:1;padding:calc(var(--ui89-safe-space)/2) calc(var(--ui89-safe-space)*2)}.Ui89TagBox-module_container__2GXMj,.Ui89ThemeBackground-module_background__4C-5t{background-color:var(--ui89-chosen-theme-bg-color);color:var(--ui89-chosen-theme-text-color)}.Ui89TitleBox-module_container__M-b7J{display:flex}.Ui89TitleBox-module_inside__GWTlP{background-color:var(--ui89-scene-text-color);color:var(--ui89-scene-bg-color);min-width:0;padding:0 var(--ui89-safe-space)}.Ui89TitleUnderline-module_container__EaGZi{display:flex;line-height:1}.Ui89TitleUnderline-module_inside__uwwxa{border-bottom:1px solid;min-width:0;padding-bottom:calc(var(--ui89-safe-space)/2);position:relative}.Ui89TitleUnderline-module_inside__uwwxa:after{border-bottom:1px solid;content:"";inset:0;position:absolute;transform:translateY(-2px);z-index:0}.Ui89VirtualTable-module_table__TkJv-{box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:auto}.Ui89VirtualTable-module_table__TkJv->.Ui89VirtualTable-module_empty__0TQZA,.Ui89VirtualTable-module_table__TkJv->.Ui89VirtualTable-module_tableBody__S53mE{flex:1}.Ui89VirtualTable-module_tableHeader__gK1W1{display:flex;position:sticky;top:0;z-index:2}.Ui89VirtualTable-module_empty__0TQZA{align-items:center;display:flex;justify-content:center;text-align:center}.Ui89VirtualTable-module_cell__yecQB{align-items:center;background:var(--ui89-scene-bg-color);border-bottom:2px solid var(--ui89-scene-text-color);box-sizing:border-box;display:flex;overflow:hidden;padding:var(--ui89-safe-space)}.Ui89VirtualTable-module_cell--column-first__ymIC-{padding-left:var(--ui89-safe-space)}.Ui89VirtualTable-module_cell--column-last__fEGx6{padding-right:var(--ui89-safe-space)}.Ui89VirtualTable-module_cell--row-first__aWHap{border-top:none}
1
+ :root{--ui89-palette-black:#000;--ui89-palette-dark-blue:#00a;--ui89-palette-dark-green:#0a0;--ui89-palette-dark-cyan:#0aa;--ui89-palette-dark-red:#a00;--ui89-palette-dark-pink:#a0a;--ui89-palette-dark-yellow:#a50;--ui89-palette-light-gray:#aaa;--ui89-palette-dark-gray:#555;--ui89-palette-light-blue:#5454ff;--ui89-palette-light-green:#5f5;--ui89-palette-light-cyan:#5ff;--ui89-palette-light-red:#f55;--ui89-palette-light-pink:#f5f;--ui89-palette-light-yellow:#ff5;--ui89-palette-white:#fff;--ui89-theme-primary-text-color:var(--ui89-palette-black);--ui89-theme-primary-bg-color:var(--ui89-palette-light-yellow);--ui89-theme-secondary-text-color:var(--ui89-palette-black);--ui89-theme-secondary-bg-color:var(--ui89-palette-white);--ui89-theme-success-text-color:var(--ui89-palette-white);--ui89-theme-success-bg-color:var(--ui89-palette-dark-green);--ui89-theme-info-text-color:var(--ui89-palette-white);--ui89-theme-info-bg-color:var(--ui89-palette-light-blue);--ui89-theme-warning-text-color:var(--ui89-palette-white);--ui89-theme-warning-bg-color:var(--ui89-palette-dark-yellow);--ui89-theme-danger-text-color:var(--ui89-palette-white);--ui89-theme-danger-bg-color:var(--ui89-palette-dark-red);--ui89-safe-space:8px;--ui89-input-height:32px;--ui89-font-size-huge:32px;--ui89-font-size-big:20px;--ui89-font-size-normal:16px;--ui89-font-size-small:14px;--ui89-font-size-tiny:10px;--ui89-input-bg-color:var(--ui89-palette-black);--ui89-input-text-color:var(--ui89-palette-light-yellow);--ui89-animation-speed:100ms;--ui89-cursor-default:default;--ui89-cursor-pointer:pointer}.ui89-toaster:before{border:var(--ui89-toaster-border-width) solid var(--ui89-chosen-theme-text-color);content:"";inset:0;margin:var(--ui89-safe-space);position:absolute}.ui89-toaster:after{content:"";left:50%;padding:0 var(--ui89-safe-space);position:absolute;top:0;transform:translateX(-50%)}.ui89-toaster.Toastify__toast--default,.ui89-toaster:after{background:var(--ui89-chosen-theme-bg-color);color:var(--ui89-chosen-theme-text-color);display:block}.ui89-toaster.Toastify__toast--default{--ui89-toaster-border-width:1px;border-radius:0;box-shadow:10px 10px 0 #000;min-height:auto;padding:calc(var(--ui89-safe-space)*2 + var(--ui89-toaster-border-width))}.ui89-toaster .Toastify__progress-bar--wrp{border-radius:0}.Ui89Breadcrumbs-module_breadcrumbs__3qjJ-{display:flex;flex-direction:row-reverse;justify-content:flex-end;overflow:hidden;padding:var(--ui89-safe-space)}.Ui89Breadcrumbs-module_breadcrumbsItem__al4m-{animation:Ui89Breadcrumbs-module_appear__571eC var(--ui89-animation-speed);clip-path:polygon(0 0,calc(100% - var(--ui89-safe-space)) 0,100% 50%,calc(100% - var(--ui89-safe-space)) 100%,0 100%);color:var(--ui89-chosen-theme-text-color);display:block;margin:calc(var(--ui89-safe-space)*-1);padding-left:calc(var(--ui89-safe-space)*3);padding-right:calc(var(--ui89-safe-space)*2);position:relative}.Ui89Breadcrumbs-module_breadcrumbsItem__al4m-:last-child{padding-left:calc(var(--ui89-safe-space)*2)}@keyframes Ui89Breadcrumbs-module_appear__571eC{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.Ui89Breadcrumbs-module_breadcrumbsItemBackground__mTAdT{background-color:var(--ui89-chosen-theme-bg-color);filter:brightness(calc(1 - var(--ui89-index)*.1));inset:0;position:absolute;z-index:-1}.typo-module_big__NWXQv{font-family:monospace;font-size:var(--ui89-font-size-big);line-height:25px}.typo-module_normalBold__6Mx0C,.typo-module_normal__a1-s-{font-family:monospace;font-size:var(--ui89-font-size-normal);line-height:16px}.typo-module_normalBold__6Mx0C{font-weight:700}.typo-module_smallBold__BRDCu,.typo-module_small__cdnMc{font-family:monospace;font-size:var(--ui89-font-size-small);line-height:16px}.typo-module_smallBold__BRDCu{font-weight:700}.typo-module_special__PiPuc{font-family:monospace;font-size:var(--ui89-font-size-small);font-weight:700}.reset-module_a__dpZ8C{text-decoration:none}.chosen-theme-module_primary__GwEqU{--ui89-chosen-theme-text-color:var(--ui89-theme-primary-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-primary-bg-color)}.chosen-theme-module_secondary__DI5Gk{--ui89-chosen-theme-text-color:var(--ui89-theme-secondary-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-secondary-bg-color)}.chosen-theme-module_info__KYP2h{--ui89-chosen-theme-text-color:var(--ui89-theme-info-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-info-bg-color)}.chosen-theme-module_success__l3hFS{--ui89-chosen-theme-text-color:var(--ui89-theme-success-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-success-bg-color)}.chosen-theme-module_warning__A7IOL{--ui89-chosen-theme-text-color:var(--ui89-theme-warning-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-warning-bg-color)}.chosen-theme-module_danger__CZ3Iq{--ui89-chosen-theme-text-color:var(--ui89-theme-danger-text-color);--ui89-chosen-theme-bg-color:var(--ui89-theme-danger-bg-color)}.Ui89Button-module_container__V4tWM{display:inline-block}.Ui89Button-module_button__wl9cp{align-items:center;background-color:var(--ui89-chosen-theme-bg-color);border:1px solid #00000010;border-radius:1px;box-sizing:border-box;color:var(--ui89-chosen-theme-text-color);cursor:var(--ui89-cursor-pointer);display:inline-flex;font-weight:700;justify-content:center;min-width:60px;padding:0 16px;position:relative;text-align:center;transition:transform var(--ui89-animation-speed);user-select:none}.Ui89Button-module_button__wl9cp:before{inset:0;position:absolute}.Ui89Button-module_block__3sGjT{display:flex}.Ui89Button-module_button__wl9cp:hover:not(.Ui89Button-module_disabled__I5nOu):not(.Ui89Button-module_active__ZN0AN):before{background-color:#ffffff40;content:"";cursor:var(--ui89-cursor-pointer)}.Ui89Button-module_active__ZN0AN,.Ui89Button-module_button__wl9cp:active:not(.Ui89Button-module_disabled__I5nOu){transform:translate3d(calc(var(--ui89-safe-space)/2),calc(var(--ui89-safe-space)/2),0)}.Ui89Button-module_button__wl9cp:active:not(.Ui89Button-module_disabled__I5nOu):not(.Ui89Button-module_active__ZN0AN):before{background-color:#00000040;content:none;cursor:var(--ui89-cursor-pointer)}.Ui89Button-module_disabled__I5nOu{cursor:var(--ui89-cursor-default);opacity:.5}.Ui89Button-module_size--normal__Pht3J{height:22px}.Ui89Button-module_size--small__-4-4v{height:24px}.Ui89Button-module_click__INMSh{inset:0;position:absolute}.Ui89Button-module_active__ZN0AN>.Ui89Button-module_click__INMSh,.Ui89Button-module_button__wl9cp:active:not(.Ui89Button-module_disabled__I5nOu)>.Ui89Button-module_click__INMSh{transform:translate3d(calc(var(--ui89-safe-space)/2*-1),calc(var(--ui89-safe-space)/2*-1),0)}.HoverShadow-module_hoverShadow__-cRBn{display:grid;padding-bottom:var(--ui89-safe-space);padding-right:var(--ui89-safe-space);position:relative}.HoverShadow-module_hoverShadow__-cRBn>*{min-height:min-content;min-width:min-content}.HoverShadow-module_hoverShadowRight__u1rW-{height:calc(100% - var(--ui89-safe-space));width:var(--ui89-safe-space)}.HoverShadow-module_hoverShadowBottom__mTTdA,.HoverShadow-module_hoverShadowRight__u1rW-{background:#000;bottom:0;box-sizing:border-box;display:block;position:absolute;right:0;z-index:0}.HoverShadow-module_hoverShadowBottom__mTTdA{height:var(--ui89-safe-space);width:calc(100% - var(--ui89-safe-space))}.Ui89Card-module_container__-8hhJ{background:var(--ui89-scene-card-bg-color);border-bottom:calc(var(--ui89-safe-space)) solid #00000040;border-left:calc(var(--ui89-safe-space)) solid #ffffff20;border-radius:var(--ui89-box-border-radius);border-right:calc(var(--ui89-safe-space)) solid #00000040;border-top:calc(var(--ui89-safe-space)) solid #ffffff20;border:1px solid var(--ui89-scene-card-text-color);box-shadow:0 1px 2px 0 #0000000d;color:var(--ui89-scene-card-text-color);display:flex;flex-direction:column;padding:calc(var(--ui89-safe-space)/4) calc(var(--ui89-safe-space)/2);position:relative}.Ui89Card-module_container__-8hhJ>*{flex:1}.Ui89Card-module_containerHasTop__UsQUD{margin-top:var(--ui89-safe-space)}.Ui89Card-module_inside__91GoJ{border:1px solid #fff;padding:calc(var(--ui89-safe-space))}.Ui89Card-module_topLeftCenter__r9PD6{bottom:100%;left:0;padding-left:var(--ui89-safe-space);position:absolute;transform:translateY(50%)}.Ui89Card-module_topCenter__SZWfR{display:flex;justify-content:center;left:var(--ui89-safe-space);position:absolute;right:var(--ui89-safe-space);top:0;transform:translateY(-50%)}.Ui89Card-module_cardHorizontalConnection__WEoNx{background:var(--ui89-scene-card-bg-color);margin:0 calc(var(--ui89-safe-space)*-1)}.Ui89Card-module_cardHorizontalConnection--overflow__wuaL1{margin:0 calc(var(--ui89-safe-space)*-1 - 1px)}.Ui89HighlightText-module_container__gap-L{background-color:var(--ui89-chosen-theme-bg-color);color:var(--ui89-chosen-theme-text-color)}.Ui89HighlightText-module_container--block__BDJUL{display:block}.Ui89Hr-module_hr__64TZQ{--ui89-hr-color:var(--ui89-scene-card-text-color)}.Ui89Hr-module_hr--straight__xLovR{border-top:1px solid var(--ui89-hr-color)}.Ui89Hr-module_hr--dotted__jChvp{border-top:1px dotted var(--ui89-hr-color)}.Ui89Hr-module_hr--dashed__bbsS2{border-top:1px dashed var(--ui89-hr-color)}.Ui89Hr-module_hr--double__DoNtB{border-top:1px solid var(--ui89-hr-color)}.Ui89Hr-module_hr--double__DoNtB .Ui89Hr-module_hrDouble__7oh3f{border-top:1px solid var(--ui89-hr-color);margin-top:4px}.Ui89Hr-module_hr--use-theme__-AhkX{--ui89-hr-color:var(--ui89-chosen-theme-bg-color)}.Ui89InputFileUpload-module_inputFileUpload__-sTRV{align-items:center;display:flex;gap:calc(var(--ui89-safe-space)*1)}.Ui89InputFileUpload-module_inputFileUpload__info__VFVuy{min-width:0}.text-module_unbreakable__3eDe3{white-space:nowrap}.text-module_ellipsis__3-f-B,.text-module_singleLine__X6pYL{overflow:hidden;text-overflow:ellipsis}.text-module_singleLine__X6pYL{white-space:nowrap}.text-module_singleLine--ellipsisLeft__n1auO{direction:rtl}.Ui89InputSelect-module_inputSelect__R3-fU{position:relative}.Ui89InputSelect-module_menu__T-rDA{background:var(--ui89-input-bg-color);color:var(--ui89-input-text-color);display:none;left:0;max-height:300px;overflow:auto;position:absolute;top:100%;width:100%;z-index:1}.Ui89InputSelect-module_menuContent__poCdH{display:inline-flex;flex-direction:column;min-width:100%}.Ui89InputSelect-module_inputSelect__R3-fU:focus-within .Ui89InputSelect-module_menu__T-rDA{animation:Ui89InputSelect-module_appear__S2gIU var(--ui89-animation-speed);display:block}@keyframes Ui89InputSelect-module_appear__S2gIU{0%{transform:translateY(-5px)}to{transform:translateY(0)}}.Ui89InputSelect-module_menuItem__3l1y0{align-items:center;background:var(--ui89-input-bg-color);color:var(--ui89-input-text-color);display:inline-flex;height:var(--ui89-input-height);padding:0 var(--ui89-safe-space);user-select:none;white-space:nowrap}.Ui89InputSelect-module_menuItem__3l1y0:not(.Ui89InputSelect-module_menuItem--disabled__eEjvv){cursor:pointer}.Ui89InputSelect-module_menuItem__3l1y0.Ui89InputSelect-module_selected__AbSbK,.Ui89InputSelect-module_menuItem__3l1y0:not(.Ui89InputSelect-module_menuItem--disabled__eEjvv):hover{background:var(--ui89-input-text-color);color:var(--ui89-input-bg-color)}.Ui89InputSelect-module_menuItem--disabled__eEjvv{color:var(--ui89-palette-white)}.input-box-module_inputBox__hMERT{background:var(--ui89-input-bg-color);border:0;border-radius:0;box-sizing:border-box;color:var(--ui89-input-text-color);display:block;height:var(--ui89-input-height);line-height:var(--ui89-input-height);outline:none;padding:0 var(--ui89-safe-space);width:100%}.input-box-module_inputBox--unselectable__1VrB-{user-select:none}.input-box-module_inputBox--clickable__CXeLj{cursor:var(--ui89-cursor-pointer)}.Ui89MenuBar-module_menuBar__IlnEP{background:var(--ui89-theme-primary-bg-color);color:var(--ui89-theme-primary-text-color);display:flex;height:16px}.Ui89MenuBar-module_menuBarItem__UVFg2{cursor:var(--ui89-cursor-pointer);padding:0 calc(var(--ui89-safe-space)*2)}.Ui89MenuBar-module_menuBarItem__UVFg2:active,.Ui89MenuBar-module_menuBarItem__UVFg2:hover{background:var(--ui89-theme-primary-text-color);color:var(--ui89-theme-primary-bg-color)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar{background:var(--ui89-scene-bg-color);width:calc(var(--ui89-safe-space)*2)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-track{background:var(--ui89-scene-bg-color);background:var(--ui89-palette-dark-gray);border:1px solid var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-thumb{background:var(--ui89-palette-light-gray);border:1px solid #0000}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-thumb:vertical{border-bottom-color:var(--ui89-palette-dark-gray);border-top-color:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-thumb:horizontal{border-left-color:var(--ui89-palette-dark-gray);border-right-color:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button{background-color:#bbb;border-style:solid;display:block;height:calc(var(--ui89-safe-space)*2)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:decrement{border-color:#0000 #0000 var(--ui89-palette-black) #0000;border-width:0 var(--ui89-safe-space) var(--ui89-safe-space) var(--ui89-safe-space)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:decrement:active{background:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:increment{border-color:var(--ui89-palette-black) #0000 #0000 #0000;border-width:var(--ui89-safe-space) var(--ui89-safe-space) 0 var(--ui89-safe-space)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:vertical:increment:active{background:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:decrement{border-color:#0000 var(--ui89-palette-black) #0000 #0000;border-width:var(--ui89-safe-space) var(--ui89-safe-space) var(--ui89-safe-space) 0}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:decrement:active{background:var(--ui89-palette-dark-gray)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:increment{border-color:#0000 #0000 #0000 var(--ui89-palette-black);border-width:var(--ui89-safe-space) 0 var(--ui89-safe-space) var(--ui89-safe-space)}.scrollbar-module_container__q4x0n ::-webkit-scrollbar-button:single-button:horizontal:increment:active{background:var(--ui89-palette-dark-gray)}.Ui89ModalDialog-module_dialog__JtOw1{animation:Ui89ModalDialog-module_appear__Xt-kk var(--ui89-animation-speed);display:none;inset:0;position:fixed}.Ui89ModalDialog-module_dialog--open__9o2xZ{display:block}.Ui89ModalDialog-module_dialogBackdrop__pw9Av{background-color:#0006;inset:0;position:absolute}.Ui89ModalDialog-module_dialogBox__ilddn{border:none;border-radius:0;inset:0;bottom:auto;display:flex;flex-direction:column;margin:auto;max-height:100%;min-height:0;outline:none;overflow:auto;position:absolute;word-break:break-word}.Ui89ModalDialog-module_spacer__fS17b{height:100px;min-height:0}.Ui89ModalDialog-module_dialogBox__ilddn>:not(.Ui89ModalDialog-module_spacer__fS17b){flex:1 0;min-height:0}.Ui89ModalDialog-module_dialogBox--size-big__YT0xb{max-width:700px}.Ui89ModalDialog-module_dialogBox--size-medium__lZrJR{max-width:500px}.Ui89ModalDialog-module_dialogBox--size-small__-2nH-{max-width:300px}@keyframes Ui89ModalDialog-module_appear__Xt-kk{0%{opacity:0}to{opacity:1}}.Ui89Scene-module_scene__5uNRp{background-color:var(--ui89-scene-bg-color);color:var(--ui89-scene-text-color);overflow:visible}.look-module_main__dCtZk{--ui89-scene-text-color:var(--ui89-palette-white);--ui89-scene-text-subtle-color:var(--ui89-palette-light-gray);--ui89-scene-bg-color:var(--ui89-palette-dark-blue);--ui89-scene-highlight-color:#fff3;--ui89-scene-card-bg-color:var(--ui89-palette-dark-blue);--ui89-scene-card-text-color:var(--ui89-palette-white);--ui89-theme-primary-text-color:var(--ui89-palette-white);--ui89-theme-primary-bg-color:var(--ui89-palette-light-blue);--ui89-theme-secondary-text-color:var(--ui89-palette-black);--ui89-theme-secondary-bg-color:var(--ui89-palette-light-gray)}.look-module_side__bCbry{--ui89-scene-text-color:var(--ui89-palette-white);--ui89-scene-text-subtle-color:var(--ui89-palette-dark-gray);--ui89-scene-bg-color:var(--ui89-palette-light-gray);--ui89-scene-highlight-color:#fff3;--ui89-scene-card-bg-color:var(--ui89-palette-light-gray);--ui89-scene-card-text-color:var(--ui89-palette-white);--ui89-theme-primary-text-color:var(--ui89-palette-white);--ui89-theme-primary-bg-color:var(--ui89-palette-light-blue);--ui89-theme-secondary-text-color:var(--ui89-palette-black);--ui89-theme-secondary-bg-color:var(--ui89-palette-white)}.GridExpandTrick-module_gridExpandTrick__10Eg5{display:grid}.GridExpandTrick-module_gridExpandTrick__10Eg5>*{min-height:0;min-width:0}.ScrollContainer-module_scrollContainer__J82cj{overflow:auto}.Ui89NameValuePair-module_nameValuePair__eRuAY{display:flex;gap:1px}.Ui89NameValuePair-module_nameValuePair__name__gJ4ne,.Ui89NameValuePair-module_nameValuePair__value__b5q4u{text-align:justify}.Ui89NameValuePair-module_nameValuePair__dots__BaHp6{border-bottom:1px dashed;flex:1 1;min-width:calc(var(--ui89-safe-space)*2)}.Ui89Shortcut-module_container__L07CL{box-sizing:border-box;cursor:var(--ui89-cursor-pointer);display:inline-flex;flex-direction:column;position:relative;text-align:center;user-select:none}.Ui89Shortcut-module_label__Q2ffs{max-width:140px}.Ui89Shortcut-module_container__L07CL:hover{border-color:currentColor}.Ui89Shortcut-module_container__L07CL:hover .Ui89Shortcut-module_label__Q2ffs{background:var(--ui89-scene-text-color);color:var(--ui89-scene-bg-color)}.Ui89Shortcut-module_imageContainer__tCoZK{align-items:flex-end;display:flex;justify-content:center;position:relative}.Ui89Shortcut-module_image__f4Hsg{display:block;height:140px;width:140px}.Ui89Shortcut-module_shortcutIconContainer__t30jR{position:relative;width:0}.Ui89Shortcut-module_shortcutIcon__SjZkr{bottom:0;pointer-events:none;position:absolute;right:0}.Ui89Tabs-module_navigation__y1WSG{display:flex;flex-wrap:wrap}.Ui89Tabs-module_navigation--stretch__N6YL5 .Ui89Tabs-module_navigationItem__keX-1{flex-grow:1}.Ui89Tabs-module_navigationItem__keX-1{background-color:var(--ui89-scene-bg-color);color:var(--ui89-scene-text-color);cursor:var(--ui89-cursor-pointer);padding:0 calc(var(--ui89-safe-space)*3);text-align:center}.Ui89Tabs-module_navigationItemSelected__R7dba,.Ui89Tabs-module_navigationItem__keX-1:hover{background-color:var(--ui89-scene-text-color);color:var(--ui89-scene-bg-color)}.Ui89TagBox-module_container__2GXMj{border-radius:var(--box-border-radius);display:inline-block;line-height:1;padding:calc(var(--ui89-safe-space)/2) calc(var(--ui89-safe-space)*2)}.Ui89TagBox-module_container__2GXMj,.Ui89ThemeBackground-module_background__4C-5t{background-color:var(--ui89-chosen-theme-bg-color);color:var(--ui89-chosen-theme-text-color)}.Ui89TitleBox-module_container__M-b7J{display:flex}.Ui89TitleBox-module_inside__GWTlP{background-color:var(--ui89-scene-text-color);color:var(--ui89-scene-bg-color);min-width:0;padding:0 var(--ui89-safe-space)}.Ui89TitleUnderline-module_container__EaGZi{display:flex;line-height:1}.Ui89TitleUnderline-module_inside__uwwxa{border-bottom:1px solid;min-width:0;padding-bottom:calc(var(--ui89-safe-space)/2);position:relative}.Ui89TitleUnderline-module_inside__uwwxa:after{border-bottom:1px solid;content:"";inset:0;position:absolute;transform:translateY(-2px);z-index:0}.Ui89VirtualTable-module_table__TkJv-{box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:auto}.Ui89VirtualTable-module_table__TkJv->.Ui89VirtualTable-module_empty__0TQZA,.Ui89VirtualTable-module_table__TkJv->.Ui89VirtualTable-module_tableBody__S53mE{flex:1}.Ui89VirtualTable-module_tableHeader__gK1W1{display:flex;position:sticky;top:0;z-index:2}.Ui89VirtualTable-module_empty__0TQZA{align-items:center;display:flex;justify-content:center;text-align:center}.Ui89VirtualTable-module_cell__yecQB{align-items:center;background:var(--ui89-scene-bg-color);border-bottom:2px solid var(--ui89-scene-text-color);box-sizing:border-box;display:flex;overflow:hidden;padding:var(--ui89-safe-space)}.Ui89VirtualTable-module_cell--column-first__ymIC-{padding-left:var(--ui89-safe-space)}.Ui89VirtualTable-module_cell--column-last__fEGx6{padding-right:var(--ui89-safe-space)}.Ui89VirtualTable-module_cell--row-first__aWHap{border-top:none}
2
2
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["global.css","Ui89Toaster.css","Ui89Breadcrumbs.module.css","typo.module.css","reset.module.css","chosen-theme.module.css","Ui89Button.module.css","HoverShadow.module.css","Ui89Card.module.css","Ui89HighlightText.module.css","Ui89Hr.module.css","Ui89InputFileUpload.module.css","text.module.css","Ui89InputSelect.module.css","input-box.module.css","Ui89MenuBar.module.css","scrollbar.module.css","Ui89ModalDialog.module.css","Ui89Scene.module.css","look.module.css","GridExpandTrick.module.css","ScrollContainer.module.css","Ui89NameValuePair.module.css","Ui89Shortcut.module.css","Ui89Tabs.module.css","Ui89TagBox.module.css","Ui89ThemeBackground.module.css","Ui89TitleBox.module.css","Ui89TitleUnderline.module.css","Ui89VirtualTable.module.css"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n * Variables.\n */\n:root {\n /* Leet colors. */\n --ui89-palette-black: #000000;\n --ui89-palette-dark-blue: #0000aa;\n --ui89-palette-dark-green: #00aa00;\n --ui89-palette-dark-cyan: #00aaaa;\n --ui89-palette-dark-red: #aa0000;\n --ui89-palette-dark-pink: #aa00aa;\n --ui89-palette-dark-yellow: #aa5500;\n --ui89-palette-light-gray: #aaaaaa;\n --ui89-palette-dark-gray: #555555;\n --ui89-palette-light-blue: #5454ff;\n --ui89-palette-light-green: #55ff55;\n --ui89-palette-light-cyan: #55ffff;\n --ui89-palette-light-red: #ff5555;\n --ui89-palette-light-pink: #ff55ff;\n --ui89-palette-light-yellow: #ffff55;\n --ui89-palette-white: #ffffff;\n\n /* Themes */\n --ui89-theme-primary-text-color: var(--ui89-palette-black);\n --ui89-theme-primary-bg-color: var(--ui89-palette-light-yellow);\n\n --ui89-theme-secondary-text-color: var(--ui89-palette-black);\n --ui89-theme-secondary-bg-color: var(--ui89-palette-white);\n\n --ui89-theme-success-text-color: var(--ui89-palette-white);\n --ui89-theme-success-bg-color: var(--ui89-palette-dark-green);\n\n --ui89-theme-info-text-color: var(--ui89-palette-white);\n --ui89-theme-info-bg-color: var(--ui89-palette-light-blue);\n\n --ui89-theme-warning-text-color: var(--ui89-palette-white);\n --ui89-theme-warning-bg-color: var(--ui89-palette-dark-yellow);\n\n --ui89-theme-danger-text-color: var(--ui89-palette-white);\n --ui89-theme-danger-bg-color: var(--ui89-palette-dark-red);\n\n /* Size and alignment */\n --ui89-safe-space: 8px;\n --ui89-input-height: 32px;\n\n /* Typography */\n --ui89-font-size-huge: 32px;\n --ui89-font-size-big: 20px;\n --ui89-font-size-normal: 16px;\n --ui89-font-size-small: 14px;\n --ui89-font-size-tiny: 10px;\n\n /* Input box */\n --ui89-input-bg-color: var(--ui89-palette-black);\n --ui89-input-text-color: var(--ui89-palette-light-yellow);\n\n /* Animation */\n --ui89-animation-speed: 100ms;\n\n /* Cursors */\n --ui89-cursor-default: default;\n --ui89-cursor-pointer: pointer;\n}\n",".ui89-toaster::before {\n content: \"\";\n position: absolute;\n inset: 0;\n border: var(--ui89-toaster-border-width) solid\n var(--ui89-chosen-theme-text-color);\n margin: var(--ui89-safe-space);\n}\n\n.ui89-toaster::after {\n /* This is the title */\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n background: var(--ui89-chosen-theme-bg-color);\n color: var(--ui89-chosen-theme-text-color);\n padding: 0 var(--ui89-safe-space);\n}\n\n.ui89-toaster.Toastify__toast--default {\n --ui89-toaster-border-width: 1px;\n\n /* Tostify uses display flex by default. */\n display: block;\n\n /* We want to be as flexible as possible. */\n min-height: auto;\n\n padding: calc(var(--ui89-safe-space) * 2 + var(--ui89-toaster-border-width));\n\n border-radius: 0;\n box-shadow: 10px 10px 0px black;\n background: var(--ui89-chosen-theme-bg-color);\n color: var(--ui89-chosen-theme-text-color);\n}\n\n.ui89-toaster .Toastify__progress-bar--wrp {\n border-radius: 0;\n}\n",".breadcrumbs {\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n overflow: hidden;\n padding: var(--ui89-safe-space);\n}\n\n.breadcrumbsItem {\n display: block;\n color: var(--ui89-chosen-theme-text-color);\n padding-left: calc(var(--ui89-safe-space) * 3);\n padding-right: calc(var(--ui89-safe-space) * 2);\n margin: calc(var(--ui89-safe-space) * -1);\n\n /* For background */\n position: relative;\n clip-path: polygon(\n 0% 0%,\n calc(100% - var(--ui89-safe-space)) 0%,\n 100% 50%,\n calc(100% - var(--ui89-safe-space)) 100%,\n 0% 100%\n );\n\n /* Animation */\n animation: appear var(--ui89-animation-speed);\n}\n\n.breadcrumbsItem:last-child {\n padding-left: calc(var(--ui89-safe-space) * 2);\n}\n\n@keyframes appear {\n from {\n transform: translateX(-100%);\n }\n\n to {\n transform: translateX(0%);\n }\n}\n\n.breadcrumbsItemBackground {\n position: absolute;\n z-index: -1;\n inset: 0;\n background-color: var(--ui89-chosen-theme-bg-color);\n filter: brightness(calc(1 - var(--ui89-index) * 0.1));\n}\n",".big {\n font-family: monospace;\n font-size: var(--ui89-font-size-big);\n line-height: 25px;\n}\n\n.normal {\n font-family: monospace;\n font-size: var(--ui89-font-size-normal);\n line-height: 16px;\n}\n\n.normalBold {\n font-family: monospace;\n font-size: var(--ui89-font-size-normal);\n line-height: 16px;\n font-weight: bold;\n}\n\n.small {\n font-family: monospace;\n font-size: var(--ui89-font-size-small);\n line-height: 16px;\n}\n\n.smallBold {\n font-family: monospace;\n font-size: var(--ui89-font-size-small);\n line-height: 16px;\n font-weight: bold;\n}\n\n/* For buttons and such. */\n.special {\n font-family: monospace;\n font-size: var(--ui89-font-size-small);\n font-weight: bold;\n}\n",".a {\n text-decoration: none;\n}\n",".primary {\n --ui89-chosen-theme-text-color: var(--ui89-theme-primary-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-primary-bg-color);\n}\n\n.secondary {\n --ui89-chosen-theme-text-color: var(--ui89-theme-secondary-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-secondary-bg-color);\n}\n\n.info {\n --ui89-chosen-theme-text-color: var(--ui89-theme-info-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-info-bg-color);\n}\n\n.success {\n --ui89-chosen-theme-text-color: var(--ui89-theme-success-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-success-bg-color);\n}\n\n.warning {\n --ui89-chosen-theme-text-color: var(--ui89-theme-warning-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-warning-bg-color);\n}\n\n.danger {\n --ui89-chosen-theme-text-color: var(--ui89-theme-danger-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-danger-bg-color);\n}\n",".container {\n display: inline-block;\n}\n\n.button {\n display: inline-flex;\n justify-content: center;\n align-items: center; /* align vertical */\n border: 0;\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n min-width: 60px;\n border-radius: 1px;\n font-weight: bold;\n padding: 0 16px;\n user-select: none;\n text-align: center;\n box-sizing: border-box;\n border: 1px solid #00000010;\n\n transition: transform var(--ui89-animation-speed);\n\n /* For the button active/hover/focus state */\n position: relative;\n\n cursor: var(--ui89-cursor-pointer);\n}\n\n.button:before {\n position: absolute;\n inset: 0;\n}\n\n.block {\n display: flex;\n}\n\n.button:hover:not(.disabled):not(.active):before {\n content: \"\";\n background-color: #ffffff40;\n cursor: var(--ui89-cursor-pointer);\n}\n\n.button:active:not(.disabled),\n.active {\n transform: translate3d(\n calc(var(--ui89-safe-space) / 2),\n calc(var(--ui89-safe-space) / 2),\n 0\n );\n}\n\n.button:active:not(.disabled):not(.active):before {\n content: none;\n background-color: #00000040;\n cursor: var(--ui89-cursor-pointer);\n}\n\n.disabled {\n opacity: 0.5;\n cursor: var(--ui89-cursor-default);\n}\n\n.size--normal {\n height: 22px;\n}\n\n.size--small {\n height: 24px;\n}\n\n.click {\n position: absolute;\n inset: 0;\n}\n\n.button:active:not(.disabled) > .click,\n.active > .click {\n transform: translate3d(\n calc(var(--ui89-safe-space) / 2 * -1),\n calc(var(--ui89-safe-space) / 2 * -1),\n 0\n );\n}\n",".hoverShadow {\n display: grid;\n padding-right: var(--ui89-safe-space);\n padding-bottom: var(--ui89-safe-space);\n position: relative;\n}\n\n.hoverShadow > * {\n min-height: min-content;\n min-width: min-content;\n}\n\n.hoverShadowRight {\n display: block;\n position: absolute;\n right: 0;\n bottom: 0;\n height: calc(100% - var(--ui89-safe-space));\n width: var(--ui89-safe-space);\n box-sizing: border-box;\n background: black;\n z-index: 0;\n}\n\n.hoverShadowBottom {\n display: block;\n position: absolute;\n right: 0;\n bottom: 0;\n width: calc(100% - var(--ui89-safe-space));\n height: var(--ui89-safe-space);\n box-sizing: border-box;\n background: black;\n z-index: 0;\n}\n",".container {\n background: var(--ui89-scene-card-bg-color);\n color: var(--ui89-scene-card-text-color);\n border-radius: var(--ui89-box-border-radius);\n position: relative;\n box-shadow: rgb(0 0 0 / 5%) 0px 1px 2px 0px;\n border-top: calc(var(--ui89-safe-space)) solid #ffffff20;\n border-left: calc(var(--ui89-safe-space)) solid #ffffff20;\n border-right: calc(var(--ui89-safe-space)) solid #00000040;\n border-bottom: calc(var(--ui89-safe-space)) solid #00000040;\n padding: calc(var(--ui89-safe-space) / 4) calc(var(--ui89-safe-space) / 2);\n border: 1px solid var(--ui89-scene-card-text-color);\n\n display: flex;\n flex-direction: column;\n}\n\n.container > * {\n flex: 1;\n}\n\n.containerHasTop {\n margin-top: var(--ui89-safe-space);\n}\n\n.inside {\n border: 1px solid white;\n padding: calc(var(--ui89-safe-space));\n}\n\n.topLeftCenter {\n position: absolute;\n bottom: 100%;\n left: 0;\n padding-left: var(--ui89-safe-space);\n transform: translateY(50%);\n}\n\n.topCenter {\n position: absolute;\n top: 0;\n transform: translateY(-50%);\n left: var(--ui89-safe-space);\n right: var(--ui89-safe-space);\n display: flex;\n justify-content: center;\n}\n\n.cardHorizontalConnection {\n margin: 0 calc(var(--ui89-safe-space) * -1);\n background: var(--ui89-scene-card-bg-color);\n}\n\n.cardHorizontalConnection--overflow {\n margin: 0 calc(var(--ui89-safe-space) * -1 - 1px);\n}\n",".container {\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n}\n\n.container--block {\n display: block;\n}\n",".hr--straight {\n border-top: 1px solid var(--ui89-scene-card-text-color);\n}\n\n.hr--dotted {\n border-top: 1px dotted var(--ui89-scene-card-text-color);\n}\n\n.hr--dashed {\n border-top: 1px dashed var(--ui89-scene-card-text-color);\n}\n\n.hr--double {\n border-top: 1px solid var(--ui89-scene-card-text-color);\n}\n\n.hr--double .hrDouble {\n margin-top: 4px;\n border-top: 1px solid var(--ui89-scene-card-text-color);\n}\n",".inputFileUpload {\n display: flex;\n gap: calc(var(--ui89-safe-space) * 1);\n align-items: center;\n}\n\n.inputFileUpload__info {\n /* We do not want to squish the button */\n min-width: 0;\n}\n",".unbreakable {\n white-space: nowrap;\n}\n\n.ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.singleLine {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.singleLine--ellipsisLeft {\n direction: rtl;\n}\n",".inputSelect {\n position: relative;\n}\n\n.menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n max-height: 300px;\n overflow: auto;\n display: none;\n background: var(--ui89-input-bg-color);\n color: var(--ui89-input-text-color);\n z-index: 1;\n}\n\n.menuContent {\n display: inline-flex;\n flex-direction: column;\n\n /* We want to make sure that all items occupy at least the width of the menu */\n min-width: 100%;\n}\n\n.inputSelect:focus-within .menu {\n display: block;\n\n animation: appear var(--ui89-animation-speed);\n}\n\n@keyframes appear {\n from {\n transform: translateY(-5px);\n }\n\n to {\n transform: translateY(0%);\n }\n}\n\n.menuItem {\n display: inline-flex;\n align-items: center;\n background: var(--ui89-input-bg-color);\n color: var(--ui89-input-text-color);\n height: var(--ui89-input-height);\n padding: 0 var(--ui89-safe-space);\n white-space: nowrap;\n user-select: none;\n}\n\n.menuItem:not(.menuItem--disabled) {\n cursor: pointer;\n}\n\n.menuItem:not(.menuItem--disabled):hover,\n.menuItem.selected {\n background: var(--ui89-input-text-color);\n color: var(--ui89-input-bg-color);\n}\n\n.menuItem--disabled {\n color: var(--ui89-palette-white);\n}\n",".inputBox {\n box-sizing: border-box;\n display: block;\n width: 100%;\n\n height: var(--ui89-input-height);\n line-height: var(--ui89-input-height);\n padding: 0 var(--ui89-safe-space);\n border: 0;\n\n border-radius: 0;\n outline: none;\n\n background: var(--ui89-input-bg-color);\n color: var(--ui89-input-text-color);\n}\n\n.inputBox--unselectable {\n user-select: none;\n}\n\n.inputBox--clickable {\n cursor: var(--ui89-cursor-pointer);\n}\n",".menuBar {\n display: flex;\n\n height: 16px;\n\n color: var(--ui89-theme-primary-text-color);\n background: var(--ui89-theme-primary-bg-color);\n}\n\n.menuBarItem {\n cursor: var(--ui89-cursor-pointer);\n padding: 0 calc(var(--ui89-safe-space) * 2);\n}\n\n.menuBarItem:hover,\n.menuBarItem:active {\n color: var(--ui89-theme-primary-bg-color);\n background: var(--ui89-theme-primary-text-color);\n}\n",".container ::-webkit-scrollbar {\n background: var(--ui89-scene-bg-color);\n width: calc(var(--ui89-safe-space) * 2);\n}\n\n.container ::-webkit-scrollbar-track {\n background: var(--ui89-scene-bg-color);\n background: var(--ui89-palette-dark-gray);\n border: 1px solid var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-thumb {\n background: var(--ui89-palette-light-gray);\n border: 1px solid transparent;\n}\n.container ::-webkit-scrollbar-thumb:vertical {\n border-top-color: var(--ui89-palette-dark-gray);\n border-bottom-color: var(--ui89-palette-dark-gray);\n}\n.container ::-webkit-scrollbar-thumb:horizontal {\n border-left-color: var(--ui89-palette-dark-gray);\n border-right-color: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button {\n background-color: #bbbbbb;\n display: block;\n border-style: solid;\n height: calc(var(--ui89-safe-space) * 2);\n}\n.container ::-webkit-scrollbar-button:single-button:vertical:decrement {\n border-width: 0 var(--ui89-safe-space) var(--ui89-safe-space)\n var(--ui89-safe-space);\n border-color: transparent transparent var(--ui89-palette-black) transparent;\n}\n.container ::-webkit-scrollbar-button:single-button:vertical:decrement:active {\n background: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button:vertical:increment {\n border-width: var(--ui89-safe-space) var(--ui89-safe-space) 0\n var(--ui89-safe-space);\n border-color: var(--ui89-palette-black) transparent transparent transparent;\n}\n.container ::-webkit-scrollbar-button:single-button:vertical:increment:active {\n background: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button:horizontal:decrement {\n border-width: var(--ui89-safe-space) var(--ui89-safe-space)\n var(--ui89-safe-space) 0;\n border-color: transparent var(--ui89-palette-black) transparent transparent;\n}\n.container\n ::-webkit-scrollbar-button:single-button:horizontal:decrement:active {\n background: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button:horizontal:increment {\n border-width: var(--ui89-safe-space) 0 var(--ui89-safe-space)\n var(--ui89-safe-space);\n border-color: transparent transparent transparent var(--ui89-palette-black);\n}\n.container\n ::-webkit-scrollbar-button:single-button:horizontal:increment:active {\n background: var(--ui89-palette-dark-gray);\n}\n",".dialog {\n position: fixed;\n inset: 0px;\n\n display: none;\n animation: appear var(--ui89-animation-speed);\n}\n\n.dialog--open {\n display: block;\n}\n\n.dialogBackdrop {\n position: absolute;\n inset: 0px;\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.dialogBox {\n position: absolute;\n inset: 0;\n border: none;\n border-radius: 0;\n outline: none;\n margin: auto;\n word-break: break-word;\n\n /*\n Need to make sure that the dialog does not overflow page.\n The contents inside must overflow.\n */\n max-height: 100%;\n min-height: 0;\n bottom: auto;\n overflow: auto;\n\n display: flex;\n flex-direction: column;\n}\n\n.spacer {\n min-height: 0;\n height: 100px;\n}\n\n.dialogBox > *:not(.spacer) {\n flex: 1 0;\n min-height: 0;\n}\n\n.dialogBox--size-big {\n max-width: 700px;\n}\n\n.dialogBox--size-medium {\n max-width: 500px;\n}\n\n.dialogBox--size-small {\n max-width: 300px;\n}\n\n@keyframes appear {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n",".scene {\n background-color: var(--ui89-scene-bg-color);\n color: var(--ui89-scene-text-color);\n overflow: visible;\n}\n",".main {\n --ui89-scene-text-color: var(--ui89-palette-white);\n --ui89-scene-text-subtle-color: var(--ui89-palette-light-gray);\n --ui89-scene-bg-color: var(--ui89-palette-dark-blue);\n --ui89-scene-highlight-color: rgba(255, 255, 255, 0.2);\n --ui89-scene-card-bg-color: var(--ui89-palette-dark-blue);\n --ui89-scene-card-text-color: var(--ui89-palette-white);\n\n --ui89-theme-primary-text-color: var(--ui89-palette-white);\n --ui89-theme-primary-bg-color: var(--ui89-palette-light-blue);\n\n --ui89-theme-secondary-text-color: var(--ui89-palette-black);\n --ui89-theme-secondary-bg-color: var(--ui89-palette-light-gray);\n}\n\n.side {\n --ui89-scene-text-color: var(--ui89-palette-white);\n --ui89-scene-text-subtle-color: var(--ui89-palette-dark-gray);\n --ui89-scene-bg-color: var(--ui89-palette-light-gray);\n --ui89-scene-highlight-color: rgba(255, 255, 255, 0.2);\n --ui89-scene-card-bg-color: var(--ui89-palette-light-gray);\n --ui89-scene-card-text-color: var(--ui89-palette-white);\n\n --ui89-theme-primary-text-color: var(--ui89-palette-white);\n --ui89-theme-primary-bg-color: var(--ui89-palette-light-blue);\n\n --ui89-theme-secondary-text-color: var(--ui89-palette-black);\n --ui89-theme-secondary-bg-color: var(--ui89-palette-white);\n}\n",".gridExpandTrick {\n display: grid;\n}\n\n.gridExpandTrick > * {\n min-height: 0;\n min-width: 0;\n}\n",".scrollContainer {\n overflow: auto;\n}\n",".nameValuePair {\n display: flex;\n\n /* So that the dots are not too close to the text */\n gap: 1px;\n}\n\n.nameValuePair__name,\n.nameValuePair__value {\n text-align: justify;\n}\n\n.nameValuePair__dots {\n flex: 1 1;\n min-width: calc(var(--ui89-safe-space) * 2);\n border-bottom: 1px dashed currentColor;\n}\n",".container {\n display: inline-flex;\n flex-direction: column;\n\n position: relative;\n text-align: center;\n\n box-sizing: border-box;\n\n user-select: none;\n cursor: var(--ui89-cursor-pointer);\n}\n\n.label {\n max-width: 140px;\n}\n\n.container:hover {\n border-color: currentColor;\n}\n.container:hover .label {\n background: var(--ui89-scene-text-color);\n color: var(--ui89-scene-bg-color);\n}\n\n.imageContainer {\n display: flex;\n align-items: flex-end;\n justify-content: center;\n position: relative;\n}\n\n.image {\n display: block;\n width: 140px;\n height: 140px;\n}\n\n.shortcutIconContainer {\n position: relative;\n width: 0;\n}\n\n.shortcutIcon {\n position: absolute;\n bottom: 0;\n right: 0;\n pointer-events: none;\n}\n",".navigation {\n display: flex;\n flex-wrap: wrap;\n}\n\n.navigation--stretch .navigationItem {\n flex-grow: 1;\n}\n\n.navigationItem {\n color: var(--ui89-scene-text-color);\n background-color: var(--ui89-scene-bg-color);\n padding: 0 calc(var(--ui89-safe-space) * 3);\n cursor: var(--ui89-cursor-pointer);\n text-align: center;\n}\n\n.navigationItem:hover,\n.navigationItemSelected {\n background-color: var(--ui89-scene-text-color);\n color: var(--ui89-scene-bg-color);\n}\n",".container {\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n\n display: inline-block;\n padding: calc(var(--ui89-safe-space) / 2) calc(var(--ui89-safe-space) * 2);\n border-radius: var(--box-border-radius);\n line-height: 1;\n}\n",".background {\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n}\n",".container {\n display: flex;\n}\n\n.inside {\n min-width: 0;\n color: var(--ui89-scene-bg-color);\n background-color: var(--ui89-scene-text-color);\n padding: 0px var(--ui89-safe-space);\n}\n",".container {\n display: flex;\n line-height: 1;\n}\n\n.inside {\n min-width: 0;\n border-bottom: 1px solid;\n position: relative;\n padding-bottom: calc(var(--ui89-safe-space) / 2);\n}\n\n.inside:after {\n content: \"\";\n position: absolute;\n inset: 0;\n transform: translateY(-2px);\n border-bottom: 1px solid;\n z-index: 0;\n}\n",".table {\n display: flex;\n flex-direction: column;\n overflow: auto;\n height: 100%;\n box-sizing: border-box;\n}\n\n.table > .tableBody,\n.table > .empty {\n flex: 1;\n}\n\n.tableHeader {\n position: sticky;\n top: 0;\n display: flex;\n z-index: 2;\n}\n\n.empty {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.cell {\n display: flex;\n align-items: center;\n padding: var(--ui89-safe-space);\n border-bottom: 2px solid var(--ui89-scene-text-color);\n\n /* The width of the column will include padding and border. */\n box-sizing: border-box;\n\n overflow: hidden;\n\n /* So that the floating headers remain visible. */\n background: var(--ui89-scene-bg-color);\n}\n\n.cell--column-first {\n padding-left: var(--ui89-safe-space);\n}\n\n.cell--column-last {\n padding-right: var(--ui89-safe-space);\n}\n\n.cell--row-first {\n border-top: none;\n}\n\n.cell--row-last {\n}\n"]}
1
+ {"version":3,"sources":["global.css","Ui89Toaster.css","Ui89Breadcrumbs.module.css","typo.module.css","reset.module.css","chosen-theme.module.css","Ui89Button.module.css","HoverShadow.module.css","Ui89Card.module.css","Ui89HighlightText.module.css","Ui89Hr.module.css","Ui89InputFileUpload.module.css","text.module.css","Ui89InputSelect.module.css","input-box.module.css","Ui89MenuBar.module.css","scrollbar.module.css","Ui89ModalDialog.module.css","Ui89Scene.module.css","look.module.css","GridExpandTrick.module.css","ScrollContainer.module.css","Ui89NameValuePair.module.css","Ui89Shortcut.module.css","Ui89Tabs.module.css","Ui89TagBox.module.css","Ui89ThemeBackground.module.css","Ui89TitleBox.module.css","Ui89TitleUnderline.module.css","Ui89VirtualTable.module.css"],"names":[],"mappings":"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","file":"index.css","sourcesContent":["/*\n * Variables.\n */\n:root {\n /* Leet colors. */\n --ui89-palette-black: #000000;\n --ui89-palette-dark-blue: #0000aa;\n --ui89-palette-dark-green: #00aa00;\n --ui89-palette-dark-cyan: #00aaaa;\n --ui89-palette-dark-red: #aa0000;\n --ui89-palette-dark-pink: #aa00aa;\n --ui89-palette-dark-yellow: #aa5500;\n --ui89-palette-light-gray: #aaaaaa;\n --ui89-palette-dark-gray: #555555;\n --ui89-palette-light-blue: #5454ff;\n --ui89-palette-light-green: #55ff55;\n --ui89-palette-light-cyan: #55ffff;\n --ui89-palette-light-red: #ff5555;\n --ui89-palette-light-pink: #ff55ff;\n --ui89-palette-light-yellow: #ffff55;\n --ui89-palette-white: #ffffff;\n\n /* Themes */\n --ui89-theme-primary-text-color: var(--ui89-palette-black);\n --ui89-theme-primary-bg-color: var(--ui89-palette-light-yellow);\n\n --ui89-theme-secondary-text-color: var(--ui89-palette-black);\n --ui89-theme-secondary-bg-color: var(--ui89-palette-white);\n\n --ui89-theme-success-text-color: var(--ui89-palette-white);\n --ui89-theme-success-bg-color: var(--ui89-palette-dark-green);\n\n --ui89-theme-info-text-color: var(--ui89-palette-white);\n --ui89-theme-info-bg-color: var(--ui89-palette-light-blue);\n\n --ui89-theme-warning-text-color: var(--ui89-palette-white);\n --ui89-theme-warning-bg-color: var(--ui89-palette-dark-yellow);\n\n --ui89-theme-danger-text-color: var(--ui89-palette-white);\n --ui89-theme-danger-bg-color: var(--ui89-palette-dark-red);\n\n /* Size and alignment */\n --ui89-safe-space: 8px;\n --ui89-input-height: 32px;\n\n /* Typography */\n --ui89-font-size-huge: 32px;\n --ui89-font-size-big: 20px;\n --ui89-font-size-normal: 16px;\n --ui89-font-size-small: 14px;\n --ui89-font-size-tiny: 10px;\n\n /* Input box */\n --ui89-input-bg-color: var(--ui89-palette-black);\n --ui89-input-text-color: var(--ui89-palette-light-yellow);\n\n /* Animation */\n --ui89-animation-speed: 100ms;\n\n /* Cursors */\n --ui89-cursor-default: default;\n --ui89-cursor-pointer: pointer;\n}\n",".ui89-toaster::before {\n content: \"\";\n position: absolute;\n inset: 0;\n border: var(--ui89-toaster-border-width) solid\n var(--ui89-chosen-theme-text-color);\n margin: var(--ui89-safe-space);\n}\n\n.ui89-toaster::after {\n /* This is the title */\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n background: var(--ui89-chosen-theme-bg-color);\n color: var(--ui89-chosen-theme-text-color);\n padding: 0 var(--ui89-safe-space);\n}\n\n.ui89-toaster.Toastify__toast--default {\n --ui89-toaster-border-width: 1px;\n\n /* Tostify uses display flex by default. */\n display: block;\n\n /* We want to be as flexible as possible. */\n min-height: auto;\n\n padding: calc(var(--ui89-safe-space) * 2 + var(--ui89-toaster-border-width));\n\n border-radius: 0;\n box-shadow: 10px 10px 0px black;\n background: var(--ui89-chosen-theme-bg-color);\n color: var(--ui89-chosen-theme-text-color);\n}\n\n.ui89-toaster .Toastify__progress-bar--wrp {\n border-radius: 0;\n}\n",".breadcrumbs {\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n overflow: hidden;\n padding: var(--ui89-safe-space);\n}\n\n.breadcrumbsItem {\n display: block;\n color: var(--ui89-chosen-theme-text-color);\n padding-left: calc(var(--ui89-safe-space) * 3);\n padding-right: calc(var(--ui89-safe-space) * 2);\n margin: calc(var(--ui89-safe-space) * -1);\n\n /* For background */\n position: relative;\n clip-path: polygon(\n 0% 0%,\n calc(100% - var(--ui89-safe-space)) 0%,\n 100% 50%,\n calc(100% - var(--ui89-safe-space)) 100%,\n 0% 100%\n );\n\n /* Animation */\n animation: appear var(--ui89-animation-speed);\n}\n\n.breadcrumbsItem:last-child {\n padding-left: calc(var(--ui89-safe-space) * 2);\n}\n\n@keyframes appear {\n from {\n transform: translateX(-100%);\n }\n\n to {\n transform: translateX(0%);\n }\n}\n\n.breadcrumbsItemBackground {\n position: absolute;\n z-index: -1;\n inset: 0;\n background-color: var(--ui89-chosen-theme-bg-color);\n filter: brightness(calc(1 - var(--ui89-index) * 0.1));\n}\n",".big {\n font-family: monospace;\n font-size: var(--ui89-font-size-big);\n line-height: 25px;\n}\n\n.normal {\n font-family: monospace;\n font-size: var(--ui89-font-size-normal);\n line-height: 16px;\n}\n\n.normalBold {\n font-family: monospace;\n font-size: var(--ui89-font-size-normal);\n line-height: 16px;\n font-weight: bold;\n}\n\n.small {\n font-family: monospace;\n font-size: var(--ui89-font-size-small);\n line-height: 16px;\n}\n\n.smallBold {\n font-family: monospace;\n font-size: var(--ui89-font-size-small);\n line-height: 16px;\n font-weight: bold;\n}\n\n/* For buttons and such. */\n.special {\n font-family: monospace;\n font-size: var(--ui89-font-size-small);\n font-weight: bold;\n}\n",".a {\n text-decoration: none;\n}\n",".primary {\n --ui89-chosen-theme-text-color: var(--ui89-theme-primary-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-primary-bg-color);\n}\n\n.secondary {\n --ui89-chosen-theme-text-color: var(--ui89-theme-secondary-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-secondary-bg-color);\n}\n\n.info {\n --ui89-chosen-theme-text-color: var(--ui89-theme-info-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-info-bg-color);\n}\n\n.success {\n --ui89-chosen-theme-text-color: var(--ui89-theme-success-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-success-bg-color);\n}\n\n.warning {\n --ui89-chosen-theme-text-color: var(--ui89-theme-warning-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-warning-bg-color);\n}\n\n.danger {\n --ui89-chosen-theme-text-color: var(--ui89-theme-danger-text-color);\n --ui89-chosen-theme-bg-color: var(--ui89-theme-danger-bg-color);\n}\n",".container {\n display: inline-block;\n}\n\n.button {\n display: inline-flex;\n justify-content: center;\n align-items: center; /* align vertical */\n border: 0;\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n min-width: 60px;\n border-radius: 1px;\n font-weight: bold;\n padding: 0 16px;\n user-select: none;\n text-align: center;\n box-sizing: border-box;\n border: 1px solid #00000010;\n\n transition: transform var(--ui89-animation-speed);\n\n /* For the button active/hover/focus state */\n position: relative;\n\n cursor: var(--ui89-cursor-pointer);\n}\n\n.button:before {\n position: absolute;\n inset: 0;\n}\n\n.block {\n display: flex;\n}\n\n.button:hover:not(.disabled):not(.active):before {\n content: \"\";\n background-color: #ffffff40;\n cursor: var(--ui89-cursor-pointer);\n}\n\n.button:active:not(.disabled),\n.active {\n transform: translate3d(\n calc(var(--ui89-safe-space) / 2),\n calc(var(--ui89-safe-space) / 2),\n 0\n );\n}\n\n.button:active:not(.disabled):not(.active):before {\n content: none;\n background-color: #00000040;\n cursor: var(--ui89-cursor-pointer);\n}\n\n.disabled {\n opacity: 0.5;\n cursor: var(--ui89-cursor-default);\n}\n\n.size--normal {\n height: 22px;\n}\n\n.size--small {\n height: 24px;\n}\n\n.click {\n position: absolute;\n inset: 0;\n}\n\n.button:active:not(.disabled) > .click,\n.active > .click {\n transform: translate3d(\n calc(var(--ui89-safe-space) / 2 * -1),\n calc(var(--ui89-safe-space) / 2 * -1),\n 0\n );\n}\n",".hoverShadow {\n display: grid;\n padding-right: var(--ui89-safe-space);\n padding-bottom: var(--ui89-safe-space);\n position: relative;\n}\n\n.hoverShadow > * {\n min-height: min-content;\n min-width: min-content;\n}\n\n.hoverShadowRight {\n display: block;\n position: absolute;\n right: 0;\n bottom: 0;\n height: calc(100% - var(--ui89-safe-space));\n width: var(--ui89-safe-space);\n box-sizing: border-box;\n background: black;\n z-index: 0;\n}\n\n.hoverShadowBottom {\n display: block;\n position: absolute;\n right: 0;\n bottom: 0;\n width: calc(100% - var(--ui89-safe-space));\n height: var(--ui89-safe-space);\n box-sizing: border-box;\n background: black;\n z-index: 0;\n}\n",".container {\n background: var(--ui89-scene-card-bg-color);\n color: var(--ui89-scene-card-text-color);\n border-radius: var(--ui89-box-border-radius);\n position: relative;\n box-shadow: rgb(0 0 0 / 5%) 0px 1px 2px 0px;\n border-top: calc(var(--ui89-safe-space)) solid #ffffff20;\n border-left: calc(var(--ui89-safe-space)) solid #ffffff20;\n border-right: calc(var(--ui89-safe-space)) solid #00000040;\n border-bottom: calc(var(--ui89-safe-space)) solid #00000040;\n padding: calc(var(--ui89-safe-space) / 4) calc(var(--ui89-safe-space) / 2);\n border: 1px solid var(--ui89-scene-card-text-color);\n\n display: flex;\n flex-direction: column;\n}\n\n.container > * {\n flex: 1;\n}\n\n.containerHasTop {\n margin-top: var(--ui89-safe-space);\n}\n\n.inside {\n border: 1px solid white;\n padding: calc(var(--ui89-safe-space));\n}\n\n.topLeftCenter {\n position: absolute;\n bottom: 100%;\n left: 0;\n padding-left: var(--ui89-safe-space);\n transform: translateY(50%);\n}\n\n.topCenter {\n position: absolute;\n top: 0;\n transform: translateY(-50%);\n left: var(--ui89-safe-space);\n right: var(--ui89-safe-space);\n display: flex;\n justify-content: center;\n}\n\n.cardHorizontalConnection {\n margin: 0 calc(var(--ui89-safe-space) * -1);\n background: var(--ui89-scene-card-bg-color);\n}\n\n.cardHorizontalConnection--overflow {\n margin: 0 calc(var(--ui89-safe-space) * -1 - 1px);\n}\n",".container {\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n}\n\n.container--block {\n display: block;\n}\n",".hr {\n --ui89-hr-color: var(--ui89-scene-card-text-color);\n}\n\n.hr--straight {\n border-top: 1px solid var(--ui89-hr-color);\n}\n\n.hr--dotted {\n border-top: 1px dotted var(--ui89-hr-color);\n}\n\n.hr--dashed {\n border-top: 1px dashed var(--ui89-hr-color);\n}\n\n.hr--double {\n border-top: 1px solid var(--ui89-hr-color);\n}\n\n.hr--double .hrDouble {\n margin-top: 4px;\n border-top: 1px solid var(--ui89-hr-color);\n}\n\n.hr--use-theme {\n --ui89-hr-color: var(--ui89-chosen-theme-bg-color);\n}\n",".inputFileUpload {\n display: flex;\n gap: calc(var(--ui89-safe-space) * 1);\n align-items: center;\n}\n\n.inputFileUpload__info {\n /* We do not want to squish the button */\n min-width: 0;\n}\n",".unbreakable {\n white-space: nowrap;\n}\n\n.ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.singleLine {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.singleLine--ellipsisLeft {\n direction: rtl;\n}\n",".inputSelect {\n position: relative;\n}\n\n.menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n max-height: 300px;\n overflow: auto;\n display: none;\n background: var(--ui89-input-bg-color);\n color: var(--ui89-input-text-color);\n z-index: 1;\n}\n\n.menuContent {\n display: inline-flex;\n flex-direction: column;\n\n /* We want to make sure that all items occupy at least the width of the menu */\n min-width: 100%;\n}\n\n.inputSelect:focus-within .menu {\n display: block;\n\n animation: appear var(--ui89-animation-speed);\n}\n\n@keyframes appear {\n from {\n transform: translateY(-5px);\n }\n\n to {\n transform: translateY(0%);\n }\n}\n\n.menuItem {\n display: inline-flex;\n align-items: center;\n background: var(--ui89-input-bg-color);\n color: var(--ui89-input-text-color);\n height: var(--ui89-input-height);\n padding: 0 var(--ui89-safe-space);\n white-space: nowrap;\n user-select: none;\n}\n\n.menuItem:not(.menuItem--disabled) {\n cursor: pointer;\n}\n\n.menuItem:not(.menuItem--disabled):hover,\n.menuItem.selected {\n background: var(--ui89-input-text-color);\n color: var(--ui89-input-bg-color);\n}\n\n.menuItem--disabled {\n color: var(--ui89-palette-white);\n}\n",".inputBox {\n box-sizing: border-box;\n display: block;\n width: 100%;\n\n height: var(--ui89-input-height);\n line-height: var(--ui89-input-height);\n padding: 0 var(--ui89-safe-space);\n border: 0;\n\n border-radius: 0;\n outline: none;\n\n background: var(--ui89-input-bg-color);\n color: var(--ui89-input-text-color);\n}\n\n.inputBox--unselectable {\n user-select: none;\n}\n\n.inputBox--clickable {\n cursor: var(--ui89-cursor-pointer);\n}\n",".menuBar {\n display: flex;\n\n height: 16px;\n\n color: var(--ui89-theme-primary-text-color);\n background: var(--ui89-theme-primary-bg-color);\n}\n\n.menuBarItem {\n cursor: var(--ui89-cursor-pointer);\n padding: 0 calc(var(--ui89-safe-space) * 2);\n}\n\n.menuBarItem:hover,\n.menuBarItem:active {\n color: var(--ui89-theme-primary-bg-color);\n background: var(--ui89-theme-primary-text-color);\n}\n",".container ::-webkit-scrollbar {\n background: var(--ui89-scene-bg-color);\n width: calc(var(--ui89-safe-space) * 2);\n}\n\n.container ::-webkit-scrollbar-track {\n background: var(--ui89-scene-bg-color);\n background: var(--ui89-palette-dark-gray);\n border: 1px solid var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-thumb {\n background: var(--ui89-palette-light-gray);\n border: 1px solid transparent;\n}\n.container ::-webkit-scrollbar-thumb:vertical {\n border-top-color: var(--ui89-palette-dark-gray);\n border-bottom-color: var(--ui89-palette-dark-gray);\n}\n.container ::-webkit-scrollbar-thumb:horizontal {\n border-left-color: var(--ui89-palette-dark-gray);\n border-right-color: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button {\n background-color: #bbbbbb;\n display: block;\n border-style: solid;\n height: calc(var(--ui89-safe-space) * 2);\n}\n.container ::-webkit-scrollbar-button:single-button:vertical:decrement {\n border-width: 0 var(--ui89-safe-space) var(--ui89-safe-space)\n var(--ui89-safe-space);\n border-color: transparent transparent var(--ui89-palette-black) transparent;\n}\n.container ::-webkit-scrollbar-button:single-button:vertical:decrement:active {\n background: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button:vertical:increment {\n border-width: var(--ui89-safe-space) var(--ui89-safe-space) 0\n var(--ui89-safe-space);\n border-color: var(--ui89-palette-black) transparent transparent transparent;\n}\n.container ::-webkit-scrollbar-button:single-button:vertical:increment:active {\n background: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button:horizontal:decrement {\n border-width: var(--ui89-safe-space) var(--ui89-safe-space)\n var(--ui89-safe-space) 0;\n border-color: transparent var(--ui89-palette-black) transparent transparent;\n}\n.container\n ::-webkit-scrollbar-button:single-button:horizontal:decrement:active {\n background: var(--ui89-palette-dark-gray);\n}\n\n.container ::-webkit-scrollbar-button:single-button:horizontal:increment {\n border-width: var(--ui89-safe-space) 0 var(--ui89-safe-space)\n var(--ui89-safe-space);\n border-color: transparent transparent transparent var(--ui89-palette-black);\n}\n.container\n ::-webkit-scrollbar-button:single-button:horizontal:increment:active {\n background: var(--ui89-palette-dark-gray);\n}\n",".dialog {\n position: fixed;\n inset: 0px;\n\n display: none;\n animation: appear var(--ui89-animation-speed);\n}\n\n.dialog--open {\n display: block;\n}\n\n.dialogBackdrop {\n position: absolute;\n inset: 0px;\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.dialogBox {\n position: absolute;\n inset: 0;\n border: none;\n border-radius: 0;\n outline: none;\n margin: auto;\n word-break: break-word;\n\n /*\n Need to make sure that the dialog does not overflow page.\n The contents inside must overflow.\n */\n max-height: 100%;\n min-height: 0;\n bottom: auto;\n overflow: auto;\n\n display: flex;\n flex-direction: column;\n}\n\n.spacer {\n min-height: 0;\n height: 100px;\n}\n\n.dialogBox > *:not(.spacer) {\n flex: 1 0;\n min-height: 0;\n}\n\n.dialogBox--size-big {\n max-width: 700px;\n}\n\n.dialogBox--size-medium {\n max-width: 500px;\n}\n\n.dialogBox--size-small {\n max-width: 300px;\n}\n\n@keyframes appear {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n",".scene {\n background-color: var(--ui89-scene-bg-color);\n color: var(--ui89-scene-text-color);\n overflow: visible;\n}\n",".main {\n --ui89-scene-text-color: var(--ui89-palette-white);\n --ui89-scene-text-subtle-color: var(--ui89-palette-light-gray);\n --ui89-scene-bg-color: var(--ui89-palette-dark-blue);\n --ui89-scene-highlight-color: rgba(255, 255, 255, 0.2);\n --ui89-scene-card-bg-color: var(--ui89-palette-dark-blue);\n --ui89-scene-card-text-color: var(--ui89-palette-white);\n\n --ui89-theme-primary-text-color: var(--ui89-palette-white);\n --ui89-theme-primary-bg-color: var(--ui89-palette-light-blue);\n\n --ui89-theme-secondary-text-color: var(--ui89-palette-black);\n --ui89-theme-secondary-bg-color: var(--ui89-palette-light-gray);\n}\n\n.side {\n --ui89-scene-text-color: var(--ui89-palette-white);\n --ui89-scene-text-subtle-color: var(--ui89-palette-dark-gray);\n --ui89-scene-bg-color: var(--ui89-palette-light-gray);\n --ui89-scene-highlight-color: rgba(255, 255, 255, 0.2);\n --ui89-scene-card-bg-color: var(--ui89-palette-light-gray);\n --ui89-scene-card-text-color: var(--ui89-palette-white);\n\n --ui89-theme-primary-text-color: var(--ui89-palette-white);\n --ui89-theme-primary-bg-color: var(--ui89-palette-light-blue);\n\n --ui89-theme-secondary-text-color: var(--ui89-palette-black);\n --ui89-theme-secondary-bg-color: var(--ui89-palette-white);\n}\n",".gridExpandTrick {\n display: grid;\n}\n\n.gridExpandTrick > * {\n min-height: 0;\n min-width: 0;\n}\n",".scrollContainer {\n overflow: auto;\n}\n",".nameValuePair {\n display: flex;\n\n /* So that the dots are not too close to the text */\n gap: 1px;\n}\n\n.nameValuePair__name,\n.nameValuePair__value {\n text-align: justify;\n}\n\n.nameValuePair__dots {\n flex: 1 1;\n min-width: calc(var(--ui89-safe-space) * 2);\n border-bottom: 1px dashed currentColor;\n}\n",".container {\n display: inline-flex;\n flex-direction: column;\n\n position: relative;\n text-align: center;\n\n box-sizing: border-box;\n\n user-select: none;\n cursor: var(--ui89-cursor-pointer);\n}\n\n.label {\n max-width: 140px;\n}\n\n.container:hover {\n border-color: currentColor;\n}\n.container:hover .label {\n background: var(--ui89-scene-text-color);\n color: var(--ui89-scene-bg-color);\n}\n\n.imageContainer {\n display: flex;\n align-items: flex-end;\n justify-content: center;\n position: relative;\n}\n\n.image {\n display: block;\n width: 140px;\n height: 140px;\n}\n\n.shortcutIconContainer {\n position: relative;\n width: 0;\n}\n\n.shortcutIcon {\n position: absolute;\n bottom: 0;\n right: 0;\n pointer-events: none;\n}\n",".navigation {\n display: flex;\n flex-wrap: wrap;\n}\n\n.navigation--stretch .navigationItem {\n flex-grow: 1;\n}\n\n.navigationItem {\n color: var(--ui89-scene-text-color);\n background-color: var(--ui89-scene-bg-color);\n padding: 0 calc(var(--ui89-safe-space) * 3);\n cursor: var(--ui89-cursor-pointer);\n text-align: center;\n}\n\n.navigationItem:hover,\n.navigationItemSelected {\n background-color: var(--ui89-scene-text-color);\n color: var(--ui89-scene-bg-color);\n}\n",".container {\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n\n display: inline-block;\n padding: calc(var(--ui89-safe-space) / 2) calc(var(--ui89-safe-space) * 2);\n border-radius: var(--box-border-radius);\n line-height: 1;\n}\n",".background {\n color: var(--ui89-chosen-theme-text-color);\n background-color: var(--ui89-chosen-theme-bg-color);\n}\n",".container {\n display: flex;\n}\n\n.inside {\n min-width: 0;\n color: var(--ui89-scene-bg-color);\n background-color: var(--ui89-scene-text-color);\n padding: 0px var(--ui89-safe-space);\n}\n",".container {\n display: flex;\n line-height: 1;\n}\n\n.inside {\n min-width: 0;\n border-bottom: 1px solid;\n position: relative;\n padding-bottom: calc(var(--ui89-safe-space) / 2);\n}\n\n.inside:after {\n content: \"\";\n position: absolute;\n inset: 0;\n transform: translateY(-2px);\n border-bottom: 1px solid;\n z-index: 0;\n}\n",".table {\n display: flex;\n flex-direction: column;\n overflow: auto;\n height: 100%;\n box-sizing: border-box;\n}\n\n.table > .tableBody,\n.table > .empty {\n flex: 1;\n}\n\n.tableHeader {\n position: sticky;\n top: 0;\n display: flex;\n z-index: 2;\n}\n\n.empty {\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.cell {\n display: flex;\n align-items: center;\n padding: var(--ui89-safe-space);\n border-bottom: 2px solid var(--ui89-scene-text-color);\n\n /* The width of the column will include padding and border. */\n box-sizing: border-box;\n\n overflow: hidden;\n\n /* So that the floating headers remain visible. */\n background: var(--ui89-scene-bg-color);\n}\n\n.cell--column-first {\n padding-left: var(--ui89-safe-space);\n}\n\n.cell--column-last {\n padding-right: var(--ui89-safe-space);\n}\n\n.cell--row-first {\n border-top: none;\n}\n\n.cell--row-last {\n}\n"]}
package/dist/esm/index.js CHANGED
@@ -209,7 +209,7 @@ function Ui89HighlightText({ theme, block, children, }) {
209
209
  return (React__default.createElement("span", { className: `${style$3.container} ${chosenThemeStyles[theme]} ${block ? style$3["container--block"] : null}` }, children));
210
210
  }
211
211
 
212
- var style$2 = {"hr--straight":"Ui89Hr-module_hr--straight__xLovR","hr--dotted":"Ui89Hr-module_hr--dotted__jChvp","hr--dashed":"Ui89Hr-module_hr--dashed__bbsS2","hr--double":"Ui89Hr-module_hr--double__DoNtB","hrDouble":"Ui89Hr-module_hrDouble__7oh3f"};
212
+ var style$2 = {"hr":"Ui89Hr-module_hr__64TZQ","hr--straight":"Ui89Hr-module_hr--straight__xLovR","hr--dotted":"Ui89Hr-module_hr--dotted__jChvp","hr--dashed":"Ui89Hr-module_hr--dashed__bbsS2","hr--double":"Ui89Hr-module_hr--double__DoNtB","hrDouble":"Ui89Hr-module_hrDouble__7oh3f","hr--use-theme":"Ui89Hr-module_hr--use-theme__-AhkX"};
213
213
 
214
214
  var Ui89HrLook;
215
215
  (function (Ui89HrLook) {
@@ -218,8 +218,8 @@ var Ui89HrLook;
218
218
  Ui89HrLook["dashed"] = "dashed";
219
219
  Ui89HrLook["double"] = "double";
220
220
  })(Ui89HrLook || (Ui89HrLook = {}));
221
- function Ui89Hr({ look = "straight" }) {
222
- return (React__default.createElement("div", { className: `${style$2.hr} ${style$2[`hr--${look}`]}` },
221
+ function Ui89Hr({ look = "straight", theme }) {
222
+ return (React__default.createElement("div", { className: `${style$2.hr} ${style$2[`hr--${look}`]} ${theme !== undefined ? style$2["hr--use-theme"] : ""} ${theme !== undefined ? chosenThemeStyles[theme] : ""}` },
223
223
  React__default.createElement("div", { className: style$2.hrDouble })));
224
224
  }
225
225
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/theme.ts","../../src/Ui89Override.tsx","../../src/components/Ui89Breadcrumbs.tsx","../../src/components/HoverShadow.tsx","../../src/components/Ui89Button.tsx","../../src/components/Ui89Card.tsx","../../src/components/TimeAnimation.tsx","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/Ui89InputSelect.tsx","../../src/timeout.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89MenuBar.tsx","../../src/components/Ui89Scene.tsx","../../src/components/GridExpandTrick.tsx","../../src/components/ScrollContainer.tsx","../../src/components/Ui89ModalDialog.tsx","../../src/components/Ui89NameValuePair.tsx","../../src/images/shortcut.svg","../../src/components/Ui89SpaceVertical.tsx","../../src/components/Ui89Shortcut.tsx","../../src/components/Ui89Tabs.tsx","../../src/components/Ui89TabbedCard.tsx","../../src/components/Ui89TagBox.tsx","../../src/components/Ui89ThemeBackground.tsx","../../src/components/Ui89TitleBox.tsx","../../src/components/Ui89TitleUnderline.tsx","../../src/components/Ui89Toaster.tsx","../../src/components/Ui89VirtualTable.tsx"],"sourcesContent":["export enum Ui89Theme {\n primary = \"primary\",\n secondary = \"secondary\",\n info = \"info\",\n success = \"success\",\n warning = \"warning\",\n danger = \"danger\",\n}\n\nexport enum Ui89Look {\n main = \"main\",\n side = \"side\",\n}\n","import React, { createContext, useContext, ReactNode } from \"react\"\n\ntype RouterPush = (url: string) => void | Promise<void>\n\ninterface Ui89OverrideContextType {\n routerPush?: RouterPush\n}\n\nexport interface Ui89OverrideProviderProps {\n children?: ReactNode\n routerPush?: RouterPush\n}\n\nconst Ui89OverrideContext = createContext<Ui89OverrideContextType>({})\n\nexport const Ui89OverrideProvider: React.FC<Ui89OverrideProviderProps> = ({\n routerPush,\n children,\n}) => {\n return (\n <Ui89OverrideContext.Provider value={{ routerPush }}>\n {children}\n </Ui89OverrideContext.Provider>\n )\n}\n\nexport const useUi89Overrides = (): Ui89OverrideContextType => {\n const context = useContext(Ui89OverrideContext)\n\n if (context === undefined) {\n throw new Error(\n \"useUi89Overrides must be used within a Ui89OverrideProvider\",\n )\n }\n\n return context\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Breadcrumbs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport type Ui89BreadcrumbsPropsOnSelect = (e: {\n item: Ui89BreadcrumbsPropsItem\n}) => void | Promise<void>\n\nexport interface Ui89BreadcrumbsPropsItem {\n label: React.ReactNode\n url?: string\n}\n\nexport interface Ui89BreadcrumbsProps {\n theme?: Ui89Theme\n items: Ui89BreadcrumbsPropsItem[]\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}\n\nexport function Ui89BreadcrumbsItem({\n index,\n item,\n onSelect,\n}: {\n index: number\n item: Ui89BreadcrumbsPropsItem\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}) {\n const style = { \"--ui89-index\": index } as React.CSSProperties\n const tagname = item.url !== undefined ? \"a\" : \"div\"\n const overrides = useUi89Overrides()\n\n const onClick: React.MouseEventHandler<HTMLAnchorElement> = (e) => {\n if (item.url !== undefined) {\n if (item.url.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(item.url)\n }\n }\n }\n }\n\n return (\n <a\n className={`${resetStyles.a} ${styles.breadcrumbsItem}`}\n href={item.url}\n style={style}\n onClick={onClick}\n >\n <div className={styles.breadcrumbsItemBackground}></div>\n {item.label}\n </a>\n )\n}\n\nexport function Ui89Breadcrumbs({\n theme = Ui89Theme.primary,\n items,\n onSelect,\n}: Ui89BreadcrumbsProps) {\n return (\n <div\n className={`${styles.breadcrumbs} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {[...items.entries()].reverse().map(([index, item]) => (\n <Ui89BreadcrumbsItem\n key={index}\n index={index}\n item={item}\n onSelect={onSelect}\n />\n ))}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./HoverShadow.module.css\"\n\nexport default function HoverShadow({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <span className={styles.hoverShadow}>\n <span className={styles.hoverShadowBottom}></span>\n <span className={styles.hoverShadowRight}></span>\n {children}\n </span>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Button.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\n\nimport HoverShadow from \"./HoverShadow\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\ninterface Ui89ButtonProps {\n theme?: Ui89Theme | string\n size?: string\n block?: boolean\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n activated?: boolean\n}\n\nexport function Ui89Button({\n theme = Ui89Theme.primary,\n size = \"normal\",\n block,\n onClick,\n href,\n children,\n autoDisableOnClick = true,\n disabled,\n activated,\n}: Ui89ButtonProps) {\n const overrides = useUi89Overrides()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled = disabled || (autoDisableOnClick && clicking)\n\n async function onAnchorClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (href !== undefined) {\n if (href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(href)\n }\n }\n }\n } finally {\n setClicking(false)\n }\n }\n\n async function onButtonClick(e: React.MouseEvent<HTMLButtonElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (onClick === undefined) {\n // No handler.\n return\n }\n\n await onClick()\n } finally {\n setClicking(false)\n }\n }\n\n let buttonClass = [\n styles.button,\n typoStyles.special,\n chosenThemeStyles[theme],\n styles[\"size--\" + size],\n activated ? styles.active : undefined,\n block ? styles.block : undefined,\n disabled ? styles.disabled : undefined,\n clicking ? styles.active : undefined,\n ].join(\" \")\n\n if (href) {\n return (\n <span className={styles.container}>\n <HoverShadow>\n <a\n className={`${resetStyles.a} ${buttonClass}`}\n role=\"button\"\n href={href}\n onClick={onAnchorClick}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </a>\n </HoverShadow>\n </span>\n )\n } else {\n return (\n <span className={styles.container}>\n <HoverShadow>\n <button\n className={buttonClass}\n type=\"button\"\n onClick={onButtonClick}\n disabled={localDisabled}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </button>\n </HoverShadow>\n </span>\n )\n }\n}\n","import React from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport function Ui89Card({\n topLeftCenter,\n topCenter,\n children,\n}: {\n topLeftCenter?: React.ReactNode\n topCenter?: React.ReactNode\n children: React.ReactNode\n}) {\n const hasTopContent = topLeftCenter || topCenter\n\n return (\n <div\n className={`${styles.container} ${hasTopContent ? styles.containerHasTop : \"\"}`}\n >\n <div className={styles.inside}>\n {topLeftCenter && (\n <div className={styles.topLeftCenter}>{topLeftCenter}</div>\n )}\n {topCenter && <div className={styles.topCenter}>{topCenter}</div>}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n\n {children}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n </div>\n </div>\n )\n}\n","import React, { useState, useEffect } from \"react\"\n\nexport interface TimeAnimationPropsChildrenProps {\n now: Date\n}\n\nexport interface TimeAnimationProps {\n children: (props: TimeAnimationPropsChildrenProps) => React.ReactNode\n}\n\nexport const TimeAnimation: React.FC<TimeAnimationProps> = ({ children }) => {\n const [currentTime, setCurrentTime] = useState(new Date())\n\n useEffect(() => {\n const tick = () => {\n const now = new Date()\n setCurrentTime(now)\n\n // Calculate time until the next exact second\n const msUntilNextSecond = 1000 - now.getMilliseconds()\n setTimeout(tick, msUntilNextSecond)\n }\n\n // Start the first tick\n const msUntilNextSecond = 1000 - currentTime.getMilliseconds()\n const timeoutId = setTimeout(tick, msUntilNextSecond)\n\n return () => clearTimeout(timeoutId)\n }, [])\n\n return <>{children({ now: currentTime })}</>\n}\n","import React, { useRef } from \"react\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { TimeAnimation, TimeAnimationPropsChildrenProps } from \"./TimeAnimation\"\n\nexport interface Ui89DigitalClockProps {\n format?: string // Custom format string\n}\n\nexport function Ui89DigitalClock({\n format = \"HH:mm:ss\",\n}: Ui89DigitalClockProps) {\n function render({ now }: TimeAnimationPropsChildrenProps) {\n const placeholders: Record<string, string> = {\n YYYY: now.getFullYear().toString(),\n MM: (now.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: now.getDate().toString().padStart(2, \"0\"),\n HH: now.getHours().toString().padStart(2, \"0\"),\n mm: now.getMinutes().toString().padStart(2, \"0\"),\n ss: now.getSeconds().toString().padStart(2, \"0\"),\n hh: (now.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: now.getHours() >= 12 ? \"PM\" : \"AM\",\n }\n\n // Replace placeholders in the format string\n let formattedDate = format\n for (const [key, value] of Object.entries(placeholders)) {\n formattedDate = formattedDate.replace(key, value)\n }\n\n return formattedDate\n }\n\n return (\n <span className={`${typoStyles.special}`}>\n <TimeAnimation>{render}</TimeAnimation>\n </span>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89HighlightText.module.css\"\n\nexport function Ui89HighlightText({\n theme,\n block,\n children,\n}: {\n theme: Ui89Theme | string\n block?: boolean\n children: React.ReactNode\n}) {\n return (\n <span\n className={`${style.container} ${chosenThemeStyles[theme]} ${block ? style[\"container--block\"] : null}`}\n >\n {children}\n </span>\n )\n}\n","import React from \"react\"\n\nimport style from \"./Ui89Hr.module.css\"\n\nexport enum Ui89HrLook {\n straight = \"straight\",\n dotted = \"dotted\",\n dashed = \"dashed\",\n double = \"double\",\n}\n\nexport interface Ui89HrProps {\n look?: keyof typeof Ui89HrLook\n}\n\nexport function Ui89Hr({ look = \"straight\" }: Ui89HrProps) {\n return (\n <div className={`${style.hr} ${style[`hr--${look}`]}`}>\n <div className={style.hrDouble}></div>\n </div>\n )\n}\n","import React, { useRef } from \"react\"\n\nimport styles from \"./Ui89InputFileUpload.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\nimport { Ui89Button } from \"./Ui89Button\"\n\nexport function Ui89InputFileUpload({\n value,\n onChange,\n}: {\n value?: any\n onChange?: (value: File | null) => void\n}) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!onChange) {\n return\n }\n\n if (e.target.files === null) {\n onChange(null)\n return\n }\n\n if (e.target.files.length === 0) {\n onChange(null)\n return\n }\n\n onChange(e.target.files[0])\n }\n\n function onClick() {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.click()\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n className={typoStyles.special}\n type=\"file\"\n onChange={implOnChange}\n hidden\n />\n\n {value ? (\n <div className={styles.inputFileUpload}>\n <Ui89Button onClick={onClick}>Change</Ui89Button>\n <span\n className={`${styles.inputFileUpload__info} ${textStyles.singleLine} ${textStyles[\"singleLine--ellipsisLeft\"]}`}\n title={value.name}\n >\n {value.name}\n </span>\n </div>\n ) : (\n <Ui89Button onClick={onClick}>Upload</Ui89Button>\n )}\n </div>\n )\n}\n","import React, { useMemo, useState } from \"react\"\n\nimport styles from \"./Ui89InputSelect.module.css\"\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89InputSelectPropsOption {\n value: string | number\n label: string\n}\n\nexport interface Ui89InputSelectProps {\n options?: (Ui89InputSelectPropsOption | string | number)[]\n value?: string | number\n onChange?: (value: string | number) => void\n}\n\nexport function Ui89InputSelect({\n options,\n value,\n onChange,\n}: Ui89InputSelectProps) {\n const realOptions = useMemo(() => {\n if (options === undefined) {\n return []\n }\n\n return options.map((option) => {\n if (typeof option !== \"object\") {\n return {\n value: option,\n label: String(option),\n }\n } else {\n return option\n }\n })\n }, [options])\n\n const selectedOption = useMemo(() => {\n return (\n realOptions.find((option) => {\n return option.value === value\n }) ?? null\n )\n }, [realOptions, value])\n\n function selectOption(option: Ui89InputSelectPropsOption) {\n if (onChange) {\n onChange(option.value)\n }\n\n if (document.activeElement !== null) {\n // @ts-expect-error\n document.activeElement.blur()\n }\n }\n\n return (\n <div className={`${styles.inputSelect}`}>\n <div\n className={[\n inputBoxStyles.inputBox,\n inputBoxStyles[\"inputBox--unselectable\"],\n inputBoxStyles[\"inputBox--clickable\"],\n textStyles.singleLine,\n ].join(\" \")}\n tabIndex={0}\n title={selectedOption !== null ? selectedOption.label : undefined}\n >\n {selectedOption !== null ? <>{selectedOption.label}</> : <>Select...</>}\n </div>\n\n <div className={[styles.menu].join(\" \")} tabIndex={0}>\n <div className={styles.menuContent}>\n {realOptions.length > 0 ? (\n realOptions.map((o) => {\n const isSelected =\n selectedOption && selectedOption.value === o.value\n\n return (\n <div\n className={[\n styles.menuItem,\n isSelected ? styles.selected : null,\n ].join(\" \")}\n key={o.value}\n onClick={() => selectOption(o)}\n >\n {o.label}\n </div>\n )\n })\n ) : (\n <div\n className={[styles.menuItem, styles[\"menuItem--disabled\"]].join(\n \" \",\n )}\n >\n &lt;empty&gt;\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import Timeout from \"smart-timeout\"\n\nlet uniqueId = 0\n\nexport function throttledTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (Timeout.pending(id)) {\n Timeout.restart(id)\n } else {\n Timeout.set(id, () => callback(), delay)\n }\n },\n\n /**\n * If there is a call that has been scheduled, remove it from the queue.\n */\n abort() {\n Timeout.clear(id, true)\n },\n }\n}\n\nexport function spacedTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (!Timeout.pending(id)) {\n Timeout.set(id, () => callback(), delay)\n }\n },\n }\n}\n","import React, { useMemo } from \"react\"\nimport { useState, useEffect, useRef } from \"react\"\nimport { throttledTimeout } from \"../timeout\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nconst THROTTLE_DELAY = 200\n\nfunction convertAnyToText(value: any) {\n return value ?? \"\"\n}\n\nexport function Ui89InputText({\n value,\n placeholder,\n autoTrim = true,\n onChange,\n onTyping,\n onFocus,\n onBlur,\n}: {\n value?: any\n placeholder?: string\n autoTrim?: boolean\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [intermediateValue, setIntermediateValue] = useState(value)\n const [isTyping, setIsTyping] = useState(false)\n const onChangeThrottled = useMemo(() => throttledTimeout(), [])\n\n useEffect(() => {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.onfocus = () => {\n setIsTyping(true)\n\n if (onTyping) {\n onTyping(true)\n }\n\n if (onFocus) {\n onFocus()\n }\n }\n\n inputRef.current.onblur = () => {\n onChangeThrottled.abort()\n update()\n\n setIsTyping(false)\n\n if (onTyping) {\n onTyping(false)\n }\n\n if (onBlur) {\n onBlur()\n }\n }\n }, [inputRef.current, onBlur, onFocus])\n\n useEffect(() => {\n if (!isTyping) {\n // Lets show the user what the actual value is.\n onChangeThrottled.call(THROTTLE_DELAY, () => {\n setIntermediateValue(value)\n })\n }\n }, [value])\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n setIntermediateValue(e.target.value)\n onChangeThrottled.call(THROTTLE_DELAY, update)\n }\n\n function update() {\n if (!onChange) {\n return\n }\n\n if (inputRef.current === null) {\n return\n }\n\n // We get the current value straight from the element because this function\n // may have been queued.\n let newVal = inputRef.current.value\n\n if (autoTrim) {\n // Must trim after setting intermediate value. Do not want to disturb\n // user.\n newVal = newVal.replace(/\\s+/g, \" \").trim()\n }\n\n if (newVal === value) {\n // Same value.\n return\n }\n\n onChange(newVal)\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n value={intermediateValue}\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n type=\"text\"\n onChange={implOnChange}\n placeholder={placeholder}\n />\n </div>\n )\n}\n","export function stringRemoveAllWhitespace(str: string): string {\n return str.replace(/\\s+/g, \"\")\n}\n","import React from \"react\"\nimport { useState, useEffect } from \"react\"\nimport { Ui89InputText } from \"./Ui89InputText\"\nimport { stringRemoveAllWhitespace } from \"../text-utils\"\n\nexport function isTextNumber(text: string): boolean {\n return /\\b\\d+(\\.\\d+)?\\b/.test(text)\n}\n\nfunction displayText(value: any, emptyValue: any) {\n if (value === undefined) {\n // No idea how to display this.\n return \"\"\n } else if (value === emptyValue) {\n // Display emptiness.\n return \"\"\n } else if (isNaN(value)) {\n // No idea what to display.\n return \"\"\n }\n\n return value.toString()\n}\n\nexport function Ui89InputTextNumber({\n /**\n * The value that is emitted when the input is emptied.\n */\n emptyValue = null,\n value,\n min,\n max,\n onChange,\n precision,\n}: {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n onChange?: (value: any) => void\n precision?: number\n}) {\n const [isTyping, setIsTyping] = useState(false)\n const [intermediateValue, setIntermediateValue] = useState(\n displayText(value, emptyValue),\n )\n\n function implOnChange(value: string) {\n if (onChange === undefined) {\n return\n }\n\n if (value === \"\") {\n // Use empty value.\n onChange(emptyValue)\n return\n }\n\n value = stringRemoveAllWhitespace(value)\n\n if (!isTextNumber(value)) {\n // We end here.\n return\n }\n\n const numberValue = Number(value)\n\n if (min !== undefined) {\n if (numberValue <= min) {\n value = String(min)\n }\n }\n\n if (max !== undefined) {\n if (numberValue >= max) {\n value = String(max)\n }\n }\n\n onChange(value)\n }\n\n useEffect(() => {\n if (!isTyping) {\n setIntermediateValue(displayText(value, emptyValue))\n }\n }, [isTyping, value])\n\n return (\n <Ui89InputText\n value={intermediateValue}\n onChange={implOnChange}\n onTyping={setIsTyping}\n />\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89MenuBar.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport interface Ui89MenuBarItem {\n label: React.ReactNode\n onClick?: () => void\n children?: Ui89MenuBarItem[]\n}\n\nexport interface Ui89MenuBarProps {\n items: Ui89MenuBarItem[]\n}\n\nexport function Ui89MenuBar({ items }: Ui89MenuBarProps) {\n return (\n <div\n className={`${styles.menuBar} ${typoStyles.special} ${scrollbarStyles.container}`}\n >\n {items.map((item, index) => {\n function onNativeClick() {\n if (item.onClick !== undefined) {\n item.onClick()\n }\n }\n\n return (\n <div\n key={index}\n className={styles.menuBarItem}\n onClick={onNativeClick}\n >\n {item.label}\n </div>\n )\n })}\n </div>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Look } from \"../theme\"\n\nimport styles from \"./Ui89Scene.module.css\"\nimport lookStyles from \"../style/look.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport function Ui89Scene({\n look = Ui89Look.main,\n children,\n}: {\n look?: Ui89Look | string\n children: React.ReactNode\n}) {\n return (\n <div\n className={`${styles.scene} ${lookStyles[look]} ${typoStyles.normal} ${scrollbarStyles.container}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./GridExpandTrick.module.css\"\n\nexport default function GridExpandTrick({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.gridExpandTrick}>{children}</span>\n}\n","import React from \"react\"\nimport styles from \"./ScrollContainer.module.css\"\n\nexport default function ScrollContainer({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.scrollContainer}>{children}</span>\n}\n","import styles from \"./Ui89ModalDialog.module.css\"\nimport React, { useMemo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport HoverShadow from \"./HoverShadow\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport GridExpandTrick from \"./GridExpandTrick\"\nimport ScrollContainer from \"./ScrollContainer\"\n\nconst portalRoot: HTMLElement | null =\n typeof document !== \"undefined\" ? document.body : null\n\nexport function Ui89ModalDialog({\n open,\n size = \"medium\",\n children,\n topCenter,\n onRequestClose,\n}: {\n open: boolean\n size?: string\n children?: React.ReactNode\n topCenter?: React.ReactNode\n onRequestClose?: () => void\n}) {\n const dialogClass = useMemo(() => {\n return [styles.dialog, open ? styles[\"dialog--open\"] : \"\"].join(\" \")\n }, [size, open])\n\n const dialogBoxClass = useMemo(() => {\n return [styles.dialogBox, styles[`dialogBox--size-${size}`]].join(\" \")\n }, [size, open])\n\n function onClickBackdrop() {\n if (onRequestClose !== undefined) {\n onRequestClose()\n }\n }\n\n const vdom = (\n <div className={dialogClass} role=\"dialog\">\n <div\n className={styles.dialogBackdrop}\n role=\"presentation\"\n onClick={onClickBackdrop}\n ></div>\n\n <div className={dialogBoxClass}>\n <div className={styles.spacer}></div>\n\n <HoverShadow>\n <GridExpandTrick>\n <Ui89Scene>\n <Ui89Card topCenter={topCenter}>\n <ScrollContainer>{children}</ScrollContainer>\n </Ui89Card>\n </Ui89Scene>\n </GridExpandTrick>\n </HoverShadow>\n </div>\n </div>\n )\n\n return portalRoot !== null ? createPortal(vdom, portalRoot) : vdom\n}\n","import React from \"react\"\n\nimport style from \"./Ui89NameValuePair.module.css\"\n\nexport function Ui89NameValuePair({\n name,\n value,\n}: {\n name: string | number\n value: string | number\n}) {\n return (\n <div className={style.nameValuePair}>\n <div className={style.nameValuePair__name}>{name}</div>\n <div className={style.nameValuePair__dots}></div>\n <div className={style.nameValuePair__value}>{value}</div>\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgShortcut = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 100, height: 100, viewBox: \"0 0 100 100\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { x: 0, y: 0, width: 100, height: 100, fill: \"white\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 80, y1: 80, x2: 20, y2: 20, stroke: \"black\", strokeWidth: 15 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 50, y2: 20, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 20, y2: 50, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }));\nexport default SvgShortcut;\n","import React from \"react\"\n\nexport function Ui89SpaceVertical({ gap = 1 }: { gap?: number }) {\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${gap})`,\n }\n\n return <div style={style}></div>\n}\n","import React from \"react\"\n\nimport ShortcutSvg from \"../images/shortcut.svg\"\n\nimport styles from \"./Ui89Shortcut.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nimport { Ui89SpaceVertical } from \"./Ui89SpaceVertical\"\n\nexport function Ui89Shortcut({\n imageUrl,\n label,\n onClick = () => {},\n}: {\n imageUrl: string\n label: string\n onClick?: () => void\n}) {\n function onNativeClick() {\n onClick()\n }\n\n return (\n <div className={styles.container} onClick={onNativeClick}>\n <div className={styles.imageContainer}>\n <img className={styles.image} src={imageUrl} />\n\n <div className={styles.shortcutIconContainer}>\n <ShortcutSvg className={styles.shortcutIcon} width={16} height={16} />\n </div>\n </div>\n\n <Ui89SpaceVertical gap={1} />\n\n <div\n className={`${styles.label} ${typoStyles.smallBold}`}\n onClick={onNativeClick}\n >\n {label}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89Tabs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport interface Ui89TabsPropsOption {\n value: string | number\n label: string\n}\n\nexport interface Ui89TabsProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabsPropsOption[]\n\n /**\n * Stretch options such that they evenly take up the entire width.\n */\n stretch?: boolean\n}\n\nexport function Ui89Tabs({\n selected,\n onChange = () => {},\n options = [],\n stretch,\n}: Ui89TabsProps) {\n function handleOnChange(value: string | number) {\n onChange(value)\n }\n\n return (\n <div\n className={[\n styles.navigation,\n stretch ? styles[\"navigation--stretch\"] : \"\",\n ].join(\" \")}\n >\n {options.map((option) => (\n <div\n className={[\n styles.navigationItem,\n typoStyles.smallBold,\n selected === option.value ? styles.navigationItemSelected : \"\",\n ].join(\" \")}\n key={option.value}\n onClick={() => handleOnChange(option.value)}\n >\n {option.label}\n </div>\n ))}\n </div>\n )\n}\n","import { Ui89Card } from \"./Ui89Card\"\nimport { Ui89Tabs } from \"./Ui89Tabs\"\nimport React, { useCallback, useMemo } from \"react\"\n\nexport interface Ui89TabbedCardProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabbedCardPropsOption[]\n}\n\nexport interface Ui89TabbedCardPropsOption {\n value: string | number\n label: string\n render: () => React.JSX.Element\n}\n\nexport function Ui89TabbedCard({\n selected,\n onChange,\n options = [],\n}: Ui89TabbedCardProps) {\n const selectedItem = useMemo<Ui89TabbedCardPropsOption | null>(() => {\n return options.find((item) => item.value === selected) ?? null\n }, [selected, options])\n\n const render = useMemo(() => {\n return selectedItem !== null ? selectedItem.render : () => <></>\n }, [selectedItem])\n\n const renderKey = useMemo(() => {\n return selectedItem !== null ? selectedItem.value : undefined\n }, [selectedItem])\n\n return (\n <Ui89Card\n topCenter={\n <Ui89Tabs selected={selected} options={options} onChange={onChange} />\n }\n >\n <React.Fragment key={renderKey}>{render()}</React.Fragment>\n </Ui89Card>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89TagBox.module.css\"\n\nexport function Ui89TagBox({\n theme,\n children,\n}: {\n theme: Ui89Theme | string\n children: React.ReactNode\n}) {\n return (\n <div\n className={`${style.container} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89ThemeBackground.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\n\ninterface Ui89ThemeBackgroundProps {\n theme?: Ui89Theme | string\n children: React.ReactNode\n}\n\nexport function Ui89ThemeBackground({\n theme = Ui89Theme.primary,\n children,\n}: Ui89ThemeBackgroundProps) {\n return (\n <div className={`${styles.background} ${chosenThemeStyles[theme]}`}>\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleBox.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport function Ui89TitleBox({ children }: { children: React.ReactNode }) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleUnderline.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport function Ui89TitleUnderline({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { ToastContainer, toast } from \"react-toastify\"\n\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport { Ui89Theme } from \"../theme\"\n\ninterface Ui89ToasterOptions {\n theme?: Ui89Theme\n autoClose?: boolean\n duration?: number\n}\n\nexport function useUi89Toaster() {\n return {\n toast(\n content: React.ReactNode,\n options: Ui89ToasterOptions = { theme: Ui89Theme.primary },\n ) {\n const classNames = [\"ui89-toaster\", typoStyles.normal]\n\n if (options.theme !== undefined) {\n classNames.push(chosenThemeStyles[options.theme])\n }\n\n let autoClose: boolean | number = 5000\n\n if (options.duration !== undefined) {\n autoClose = options.duration\n }\n\n if (options.autoClose !== undefined) {\n if (!options.autoClose) {\n autoClose = false\n }\n }\n\n return toast(() => content, {\n className: classNames.join(\" \"),\n type: \"default\",\n autoClose,\n closeButton: false,\n hideProgressBar: true,\n closeOnClick: true,\n })\n },\n }\n}\n\nexport function Ui89Toaster() {\n return <ToastContainer />\n}\n","import React, { forwardRef, useMemo } from \"react\"\n// @ts-ignore\nimport { VariableSizeGrid } from \"react-window\"\nimport AutoSizer from \"react-virtualized-auto-sizer\"\nimport styles from \"./Ui89VirtualTable.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { Ui89TagBox } from \"./Ui89TagBox\"\n\nconst HEADER_HEIGHT = 30\n\ninterface VariableSizeGridProps {\n columnIndex: number\n rowIndex: number\n style: React.CSSProperties\n}\n\nexport interface Ui89VirtualTableColumnRenderHeaderParams<T> {\n index: number\n column: Ui89VirtualTableColumn<T>\n}\n\nexport interface Ui89VirtualTableColumnRenderBodyParams<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualTableColumn<T> {\n width?: number\n renderHeader?: React.FC<Ui89VirtualTableColumnRenderHeaderParams<T>>\n renderBody: React.FC<Ui89VirtualTableColumnRenderBodyParams<T>>\n}\n\nexport interface Ui89VirtualTableProps<T> {\n rows?: T[]\n columns?: Ui89VirtualTableColumn<T>[]\n rowHeight?: number\n}\n\nexport function Ui89VirtualTable<T>(props: Ui89VirtualTableProps<T>) {\n const rows = useMemo(() => {\n return props.rows !== undefined ? props.rows : []\n }, [props.rows])\n\n const columns = useMemo(() => {\n return props.columns !== undefined ? props.columns : []\n }, [props.columns])\n\n function getRowHeight(index: number): number {\n if (index === 0) {\n // Header.\n return HEADER_HEIGHT\n } else {\n // Body\n return props.rowHeight ?? 50\n }\n }\n\n function getColumnWidth(index: number): number {\n return columns[index].width ?? 100\n }\n\n function getColumnHorizontalOffset(columnIndex: number) {\n let offset = 0\n\n for (let i = 0; i < columnIndex; i++) {\n offset += getColumnWidth(columnIndex)\n }\n\n return offset\n }\n\n function getColumnClass(columnIndex: number, rowIndex: number): string {\n const classes = [styles.cell]\n\n if (rowIndex === 0) {\n classes.push(styles[\"cell--row-first\"])\n }\n\n if (rowIndex === rows.length) {\n classes.push(styles[\"cell--row-last\"])\n }\n\n if (columnIndex === 0) {\n classes.push(styles[\"cell--column-first\"])\n }\n\n if (columnIndex === columns.length - 1) {\n classes.push(styles[\"cell--column-last\"])\n }\n\n return classes.join(\" \")\n }\n\n // This is the secret to having sticky headers.\n const innerElementType = forwardRef(({ children, ...rest }: any, ref) => (\n <div ref={ref} {...rest}>\n <div className={styles.tableHeader}>\n {columns.map((column, index) => (\n <div\n key={index}\n className={[getColumnClass(index, 0), typoStyles.normalBold].join(\n \" \",\n )}\n style={{\n left: getColumnHorizontalOffset(index),\n width: getColumnWidth(index) + \"px\",\n height: getRowHeight(0) + \"px\",\n }}\n >\n {column.renderHeader !== undefined && (\n <column.renderHeader index={index} column={column} />\n )}\n </div>\n ))}\n </div>\n\n {children}\n </div>\n ))\n\n return (\n <div className={styles.table}>\n {rows.length > 0 ? (\n <div className={styles.tableBody}>\n <AutoSizer>\n {({ height, width }) => (\n <VariableSizeGrid\n columnCount={columns.length}\n columnWidth={getColumnWidth}\n rowCount={rows.length + 1}\n rowHeight={getRowHeight}\n width={width}\n height={height}\n innerElementType={innerElementType}\n >\n {({ columnIndex, rowIndex, style }: VariableSizeGridProps) => (\n <div\n className={getColumnClass(columnIndex, rowIndex)}\n style={style}\n >\n {/* We do not render the first column. That space is reserved for the header */}\n {rowIndex !== 0 &&\n [columns[columnIndex].renderBody].map((BodyContent) => (\n <BodyContent\n key={rowIndex}\n index={rowIndex - 1}\n row={rows[rowIndex - 1]}\n />\n ))}\n </div>\n )}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </div>\n ) : (\n <div className={styles.empty}>\n <Ui89TagBox theme=\"warn\">Empty</Ui89TagBox>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","styles","style","ShortcutSvg"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/theme.ts","../../src/Ui89Override.tsx","../../src/components/Ui89Breadcrumbs.tsx","../../src/components/HoverShadow.tsx","../../src/components/Ui89Button.tsx","../../src/components/Ui89Card.tsx","../../src/components/TimeAnimation.tsx","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/Ui89InputSelect.tsx","../../src/timeout.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89MenuBar.tsx","../../src/components/Ui89Scene.tsx","../../src/components/GridExpandTrick.tsx","../../src/components/ScrollContainer.tsx","../../src/components/Ui89ModalDialog.tsx","../../src/components/Ui89NameValuePair.tsx","../../src/images/shortcut.svg","../../src/components/Ui89SpaceVertical.tsx","../../src/components/Ui89Shortcut.tsx","../../src/components/Ui89Tabs.tsx","../../src/components/Ui89TabbedCard.tsx","../../src/components/Ui89TagBox.tsx","../../src/components/Ui89ThemeBackground.tsx","../../src/components/Ui89TitleBox.tsx","../../src/components/Ui89TitleUnderline.tsx","../../src/components/Ui89Toaster.tsx","../../src/components/Ui89VirtualTable.tsx"],"sourcesContent":["export enum Ui89Theme {\n primary = \"primary\",\n secondary = \"secondary\",\n info = \"info\",\n success = \"success\",\n warning = \"warning\",\n danger = \"danger\",\n}\n\nexport enum Ui89Look {\n main = \"main\",\n side = \"side\",\n}\n","import React, { createContext, useContext, ReactNode } from \"react\"\n\ntype RouterPush = (url: string) => void | Promise<void>\n\ninterface Ui89OverrideContextType {\n routerPush?: RouterPush\n}\n\nexport interface Ui89OverrideProviderProps {\n children?: ReactNode\n routerPush?: RouterPush\n}\n\nconst Ui89OverrideContext = createContext<Ui89OverrideContextType>({})\n\nexport const Ui89OverrideProvider: React.FC<Ui89OverrideProviderProps> = ({\n routerPush,\n children,\n}) => {\n return (\n <Ui89OverrideContext.Provider value={{ routerPush }}>\n {children}\n </Ui89OverrideContext.Provider>\n )\n}\n\nexport const useUi89Overrides = (): Ui89OverrideContextType => {\n const context = useContext(Ui89OverrideContext)\n\n if (context === undefined) {\n throw new Error(\n \"useUi89Overrides must be used within a Ui89OverrideProvider\",\n )\n }\n\n return context\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Breadcrumbs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport type Ui89BreadcrumbsPropsOnSelect = (e: {\n item: Ui89BreadcrumbsPropsItem\n}) => void | Promise<void>\n\nexport interface Ui89BreadcrumbsPropsItem {\n label: React.ReactNode\n url?: string\n}\n\nexport interface Ui89BreadcrumbsProps {\n theme?: Ui89Theme\n items: Ui89BreadcrumbsPropsItem[]\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}\n\nexport function Ui89BreadcrumbsItem({\n index,\n item,\n onSelect,\n}: {\n index: number\n item: Ui89BreadcrumbsPropsItem\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}) {\n const style = { \"--ui89-index\": index } as React.CSSProperties\n const tagname = item.url !== undefined ? \"a\" : \"div\"\n const overrides = useUi89Overrides()\n\n const onClick: React.MouseEventHandler<HTMLAnchorElement> = (e) => {\n if (item.url !== undefined) {\n if (item.url.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(item.url)\n }\n }\n }\n }\n\n return (\n <a\n className={`${resetStyles.a} ${styles.breadcrumbsItem}`}\n href={item.url}\n style={style}\n onClick={onClick}\n >\n <div className={styles.breadcrumbsItemBackground}></div>\n {item.label}\n </a>\n )\n}\n\nexport function Ui89Breadcrumbs({\n theme = Ui89Theme.primary,\n items,\n onSelect,\n}: Ui89BreadcrumbsProps) {\n return (\n <div\n className={`${styles.breadcrumbs} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {[...items.entries()].reverse().map(([index, item]) => (\n <Ui89BreadcrumbsItem\n key={index}\n index={index}\n item={item}\n onSelect={onSelect}\n />\n ))}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./HoverShadow.module.css\"\n\nexport default function HoverShadow({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <span className={styles.hoverShadow}>\n <span className={styles.hoverShadowBottom}></span>\n <span className={styles.hoverShadowRight}></span>\n {children}\n </span>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Button.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\n\nimport HoverShadow from \"./HoverShadow\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\ninterface Ui89ButtonProps {\n theme?: Ui89Theme | string\n size?: string\n block?: boolean\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n activated?: boolean\n}\n\nexport function Ui89Button({\n theme = Ui89Theme.primary,\n size = \"normal\",\n block,\n onClick,\n href,\n children,\n autoDisableOnClick = true,\n disabled,\n activated,\n}: Ui89ButtonProps) {\n const overrides = useUi89Overrides()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled = disabled || (autoDisableOnClick && clicking)\n\n async function onAnchorClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (href !== undefined) {\n if (href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(href)\n }\n }\n }\n } finally {\n setClicking(false)\n }\n }\n\n async function onButtonClick(e: React.MouseEvent<HTMLButtonElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (onClick === undefined) {\n // No handler.\n return\n }\n\n await onClick()\n } finally {\n setClicking(false)\n }\n }\n\n let buttonClass = [\n styles.button,\n typoStyles.special,\n chosenThemeStyles[theme],\n styles[\"size--\" + size],\n activated ? styles.active : undefined,\n block ? styles.block : undefined,\n disabled ? styles.disabled : undefined,\n clicking ? styles.active : undefined,\n ].join(\" \")\n\n if (href) {\n return (\n <span className={styles.container}>\n <HoverShadow>\n <a\n className={`${resetStyles.a} ${buttonClass}`}\n role=\"button\"\n href={href}\n onClick={onAnchorClick}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </a>\n </HoverShadow>\n </span>\n )\n } else {\n return (\n <span className={styles.container}>\n <HoverShadow>\n <button\n className={buttonClass}\n type=\"button\"\n onClick={onButtonClick}\n disabled={localDisabled}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </button>\n </HoverShadow>\n </span>\n )\n }\n}\n","import React from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport function Ui89Card({\n topLeftCenter,\n topCenter,\n children,\n}: {\n topLeftCenter?: React.ReactNode\n topCenter?: React.ReactNode\n children: React.ReactNode\n}) {\n const hasTopContent = topLeftCenter || topCenter\n\n return (\n <div\n className={`${styles.container} ${hasTopContent ? styles.containerHasTop : \"\"}`}\n >\n <div className={styles.inside}>\n {topLeftCenter && (\n <div className={styles.topLeftCenter}>{topLeftCenter}</div>\n )}\n {topCenter && <div className={styles.topCenter}>{topCenter}</div>}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n\n {children}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n </div>\n </div>\n )\n}\n","import React, { useState, useEffect } from \"react\"\n\nexport interface TimeAnimationPropsChildrenProps {\n now: Date\n}\n\nexport interface TimeAnimationProps {\n children: (props: TimeAnimationPropsChildrenProps) => React.ReactNode\n}\n\nexport const TimeAnimation: React.FC<TimeAnimationProps> = ({ children }) => {\n const [currentTime, setCurrentTime] = useState(new Date())\n\n useEffect(() => {\n const tick = () => {\n const now = new Date()\n setCurrentTime(now)\n\n // Calculate time until the next exact second\n const msUntilNextSecond = 1000 - now.getMilliseconds()\n setTimeout(tick, msUntilNextSecond)\n }\n\n // Start the first tick\n const msUntilNextSecond = 1000 - currentTime.getMilliseconds()\n const timeoutId = setTimeout(tick, msUntilNextSecond)\n\n return () => clearTimeout(timeoutId)\n }, [])\n\n return <>{children({ now: currentTime })}</>\n}\n","import React, { useRef } from \"react\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { TimeAnimation, TimeAnimationPropsChildrenProps } from \"./TimeAnimation\"\n\nexport interface Ui89DigitalClockProps {\n format?: string // Custom format string\n}\n\nexport function Ui89DigitalClock({\n format = \"HH:mm:ss\",\n}: Ui89DigitalClockProps) {\n function render({ now }: TimeAnimationPropsChildrenProps) {\n const placeholders: Record<string, string> = {\n YYYY: now.getFullYear().toString(),\n MM: (now.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: now.getDate().toString().padStart(2, \"0\"),\n HH: now.getHours().toString().padStart(2, \"0\"),\n mm: now.getMinutes().toString().padStart(2, \"0\"),\n ss: now.getSeconds().toString().padStart(2, \"0\"),\n hh: (now.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: now.getHours() >= 12 ? \"PM\" : \"AM\",\n }\n\n // Replace placeholders in the format string\n let formattedDate = format\n for (const [key, value] of Object.entries(placeholders)) {\n formattedDate = formattedDate.replace(key, value)\n }\n\n return formattedDate\n }\n\n return (\n <span className={`${typoStyles.special}`}>\n <TimeAnimation>{render}</TimeAnimation>\n </span>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89HighlightText.module.css\"\n\nexport function Ui89HighlightText({\n theme,\n block,\n children,\n}: {\n theme: Ui89Theme | string\n block?: boolean\n children: React.ReactNode\n}) {\n return (\n <span\n className={`${style.container} ${chosenThemeStyles[theme]} ${block ? style[\"container--block\"] : null}`}\n >\n {children}\n </span>\n )\n}\n","import React from \"react\"\n\nimport style from \"./Ui89Hr.module.css\"\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport enum Ui89HrLook {\n straight = \"straight\",\n dotted = \"dotted\",\n dashed = \"dashed\",\n double = \"double\",\n}\n\nexport interface Ui89HrProps {\n look?: keyof typeof Ui89HrLook\n theme?: keyof typeof Ui89Theme\n}\n\nexport function Ui89Hr({ look = \"straight\", theme }: Ui89HrProps) {\n return (\n <div\n className={`${style.hr} ${style[`hr--${look}`]} ${theme !== undefined ? style[\"hr--use-theme\"] : \"\"} ${theme !== undefined ? chosenThemeStyles[theme] : \"\"}`}\n >\n <div className={style.hrDouble}></div>\n </div>\n )\n}\n","import React, { useRef } from \"react\"\n\nimport styles from \"./Ui89InputFileUpload.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\nimport { Ui89Button } from \"./Ui89Button\"\n\nexport function Ui89InputFileUpload({\n value,\n onChange,\n}: {\n value?: any\n onChange?: (value: File | null) => void\n}) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!onChange) {\n return\n }\n\n if (e.target.files === null) {\n onChange(null)\n return\n }\n\n if (e.target.files.length === 0) {\n onChange(null)\n return\n }\n\n onChange(e.target.files[0])\n }\n\n function onClick() {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.click()\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n className={typoStyles.special}\n type=\"file\"\n onChange={implOnChange}\n hidden\n />\n\n {value ? (\n <div className={styles.inputFileUpload}>\n <Ui89Button onClick={onClick}>Change</Ui89Button>\n <span\n className={`${styles.inputFileUpload__info} ${textStyles.singleLine} ${textStyles[\"singleLine--ellipsisLeft\"]}`}\n title={value.name}\n >\n {value.name}\n </span>\n </div>\n ) : (\n <Ui89Button onClick={onClick}>Upload</Ui89Button>\n )}\n </div>\n )\n}\n","import React, { useMemo, useState } from \"react\"\n\nimport styles from \"./Ui89InputSelect.module.css\"\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89InputSelectPropsOption {\n value: string | number\n label: string\n}\n\nexport interface Ui89InputSelectProps {\n options?: (Ui89InputSelectPropsOption | string | number)[]\n value?: string | number\n onChange?: (value: string | number) => void\n}\n\nexport function Ui89InputSelect({\n options,\n value,\n onChange,\n}: Ui89InputSelectProps) {\n const realOptions = useMemo(() => {\n if (options === undefined) {\n return []\n }\n\n return options.map((option) => {\n if (typeof option !== \"object\") {\n return {\n value: option,\n label: String(option),\n }\n } else {\n return option\n }\n })\n }, [options])\n\n const selectedOption = useMemo(() => {\n return (\n realOptions.find((option) => {\n return option.value === value\n }) ?? null\n )\n }, [realOptions, value])\n\n function selectOption(option: Ui89InputSelectPropsOption) {\n if (onChange) {\n onChange(option.value)\n }\n\n if (document.activeElement !== null) {\n // @ts-expect-error\n document.activeElement.blur()\n }\n }\n\n return (\n <div className={`${styles.inputSelect}`}>\n <div\n className={[\n inputBoxStyles.inputBox,\n inputBoxStyles[\"inputBox--unselectable\"],\n inputBoxStyles[\"inputBox--clickable\"],\n textStyles.singleLine,\n ].join(\" \")}\n tabIndex={0}\n title={selectedOption !== null ? selectedOption.label : undefined}\n >\n {selectedOption !== null ? <>{selectedOption.label}</> : <>Select...</>}\n </div>\n\n <div className={[styles.menu].join(\" \")} tabIndex={0}>\n <div className={styles.menuContent}>\n {realOptions.length > 0 ? (\n realOptions.map((o) => {\n const isSelected =\n selectedOption && selectedOption.value === o.value\n\n return (\n <div\n className={[\n styles.menuItem,\n isSelected ? styles.selected : null,\n ].join(\" \")}\n key={o.value}\n onClick={() => selectOption(o)}\n >\n {o.label}\n </div>\n )\n })\n ) : (\n <div\n className={[styles.menuItem, styles[\"menuItem--disabled\"]].join(\n \" \",\n )}\n >\n &lt;empty&gt;\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import Timeout from \"smart-timeout\"\n\nlet uniqueId = 0\n\nexport function throttledTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (Timeout.pending(id)) {\n Timeout.restart(id)\n } else {\n Timeout.set(id, () => callback(), delay)\n }\n },\n\n /**\n * If there is a call that has been scheduled, remove it from the queue.\n */\n abort() {\n Timeout.clear(id, true)\n },\n }\n}\n\nexport function spacedTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (!Timeout.pending(id)) {\n Timeout.set(id, () => callback(), delay)\n }\n },\n }\n}\n","import React, { useMemo } from \"react\"\nimport { useState, useEffect, useRef } from \"react\"\nimport { throttledTimeout } from \"../timeout\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nconst THROTTLE_DELAY = 200\n\nfunction convertAnyToText(value: any) {\n return value ?? \"\"\n}\n\nexport function Ui89InputText({\n value,\n placeholder,\n autoTrim = true,\n onChange,\n onTyping,\n onFocus,\n onBlur,\n}: {\n value?: any\n placeholder?: string\n autoTrim?: boolean\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [intermediateValue, setIntermediateValue] = useState(value)\n const [isTyping, setIsTyping] = useState(false)\n const onChangeThrottled = useMemo(() => throttledTimeout(), [])\n\n useEffect(() => {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.onfocus = () => {\n setIsTyping(true)\n\n if (onTyping) {\n onTyping(true)\n }\n\n if (onFocus) {\n onFocus()\n }\n }\n\n inputRef.current.onblur = () => {\n onChangeThrottled.abort()\n update()\n\n setIsTyping(false)\n\n if (onTyping) {\n onTyping(false)\n }\n\n if (onBlur) {\n onBlur()\n }\n }\n }, [inputRef.current, onBlur, onFocus])\n\n useEffect(() => {\n if (!isTyping) {\n // Lets show the user what the actual value is.\n onChangeThrottled.call(THROTTLE_DELAY, () => {\n setIntermediateValue(value)\n })\n }\n }, [value])\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n setIntermediateValue(e.target.value)\n onChangeThrottled.call(THROTTLE_DELAY, update)\n }\n\n function update() {\n if (!onChange) {\n return\n }\n\n if (inputRef.current === null) {\n return\n }\n\n // We get the current value straight from the element because this function\n // may have been queued.\n let newVal = inputRef.current.value\n\n if (autoTrim) {\n // Must trim after setting intermediate value. Do not want to disturb\n // user.\n newVal = newVal.replace(/\\s+/g, \" \").trim()\n }\n\n if (newVal === value) {\n // Same value.\n return\n }\n\n onChange(newVal)\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n value={intermediateValue}\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n type=\"text\"\n onChange={implOnChange}\n placeholder={placeholder}\n />\n </div>\n )\n}\n","export function stringRemoveAllWhitespace(str: string): string {\n return str.replace(/\\s+/g, \"\")\n}\n","import React from \"react\"\nimport { useState, useEffect } from \"react\"\nimport { Ui89InputText } from \"./Ui89InputText\"\nimport { stringRemoveAllWhitespace } from \"../text-utils\"\n\nexport function isTextNumber(text: string): boolean {\n return /\\b\\d+(\\.\\d+)?\\b/.test(text)\n}\n\nfunction displayText(value: any, emptyValue: any) {\n if (value === undefined) {\n // No idea how to display this.\n return \"\"\n } else if (value === emptyValue) {\n // Display emptiness.\n return \"\"\n } else if (isNaN(value)) {\n // No idea what to display.\n return \"\"\n }\n\n return value.toString()\n}\n\nexport function Ui89InputTextNumber({\n /**\n * The value that is emitted when the input is emptied.\n */\n emptyValue = null,\n value,\n min,\n max,\n onChange,\n precision,\n}: {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n onChange?: (value: any) => void\n precision?: number\n}) {\n const [isTyping, setIsTyping] = useState(false)\n const [intermediateValue, setIntermediateValue] = useState(\n displayText(value, emptyValue),\n )\n\n function implOnChange(value: string) {\n if (onChange === undefined) {\n return\n }\n\n if (value === \"\") {\n // Use empty value.\n onChange(emptyValue)\n return\n }\n\n value = stringRemoveAllWhitespace(value)\n\n if (!isTextNumber(value)) {\n // We end here.\n return\n }\n\n const numberValue = Number(value)\n\n if (min !== undefined) {\n if (numberValue <= min) {\n value = String(min)\n }\n }\n\n if (max !== undefined) {\n if (numberValue >= max) {\n value = String(max)\n }\n }\n\n onChange(value)\n }\n\n useEffect(() => {\n if (!isTyping) {\n setIntermediateValue(displayText(value, emptyValue))\n }\n }, [isTyping, value])\n\n return (\n <Ui89InputText\n value={intermediateValue}\n onChange={implOnChange}\n onTyping={setIsTyping}\n />\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89MenuBar.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport interface Ui89MenuBarItem {\n label: React.ReactNode\n onClick?: () => void\n children?: Ui89MenuBarItem[]\n}\n\nexport interface Ui89MenuBarProps {\n items: Ui89MenuBarItem[]\n}\n\nexport function Ui89MenuBar({ items }: Ui89MenuBarProps) {\n return (\n <div\n className={`${styles.menuBar} ${typoStyles.special} ${scrollbarStyles.container}`}\n >\n {items.map((item, index) => {\n function onNativeClick() {\n if (item.onClick !== undefined) {\n item.onClick()\n }\n }\n\n return (\n <div\n key={index}\n className={styles.menuBarItem}\n onClick={onNativeClick}\n >\n {item.label}\n </div>\n )\n })}\n </div>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Look } from \"../theme\"\n\nimport styles from \"./Ui89Scene.module.css\"\nimport lookStyles from \"../style/look.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport function Ui89Scene({\n look = Ui89Look.main,\n children,\n}: {\n look?: Ui89Look | string\n children: React.ReactNode\n}) {\n return (\n <div\n className={`${styles.scene} ${lookStyles[look]} ${typoStyles.normal} ${scrollbarStyles.container}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./GridExpandTrick.module.css\"\n\nexport default function GridExpandTrick({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.gridExpandTrick}>{children}</span>\n}\n","import React from \"react\"\nimport styles from \"./ScrollContainer.module.css\"\n\nexport default function ScrollContainer({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.scrollContainer}>{children}</span>\n}\n","import styles from \"./Ui89ModalDialog.module.css\"\nimport React, { useMemo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport HoverShadow from \"./HoverShadow\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport GridExpandTrick from \"./GridExpandTrick\"\nimport ScrollContainer from \"./ScrollContainer\"\n\nconst portalRoot: HTMLElement | null =\n typeof document !== \"undefined\" ? document.body : null\n\nexport function Ui89ModalDialog({\n open,\n size = \"medium\",\n children,\n topCenter,\n onRequestClose,\n}: {\n open: boolean\n size?: string\n children?: React.ReactNode\n topCenter?: React.ReactNode\n onRequestClose?: () => void\n}) {\n const dialogClass = useMemo(() => {\n return [styles.dialog, open ? styles[\"dialog--open\"] : \"\"].join(\" \")\n }, [size, open])\n\n const dialogBoxClass = useMemo(() => {\n return [styles.dialogBox, styles[`dialogBox--size-${size}`]].join(\" \")\n }, [size, open])\n\n function onClickBackdrop() {\n if (onRequestClose !== undefined) {\n onRequestClose()\n }\n }\n\n const vdom = (\n <div className={dialogClass} role=\"dialog\">\n <div\n className={styles.dialogBackdrop}\n role=\"presentation\"\n onClick={onClickBackdrop}\n ></div>\n\n <div className={dialogBoxClass}>\n <div className={styles.spacer}></div>\n\n <HoverShadow>\n <GridExpandTrick>\n <Ui89Scene>\n <Ui89Card topCenter={topCenter}>\n <ScrollContainer>{children}</ScrollContainer>\n </Ui89Card>\n </Ui89Scene>\n </GridExpandTrick>\n </HoverShadow>\n </div>\n </div>\n )\n\n return portalRoot !== null ? createPortal(vdom, portalRoot) : vdom\n}\n","import React from \"react\"\n\nimport style from \"./Ui89NameValuePair.module.css\"\n\nexport function Ui89NameValuePair({\n name,\n value,\n}: {\n name: string | number\n value: string | number\n}) {\n return (\n <div className={style.nameValuePair}>\n <div className={style.nameValuePair__name}>{name}</div>\n <div className={style.nameValuePair__dots}></div>\n <div className={style.nameValuePair__value}>{value}</div>\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgShortcut = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 100, height: 100, viewBox: \"0 0 100 100\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { x: 0, y: 0, width: 100, height: 100, fill: \"white\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 80, y1: 80, x2: 20, y2: 20, stroke: \"black\", strokeWidth: 15 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 50, y2: 20, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 20, y2: 50, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }));\nexport default SvgShortcut;\n","import React from \"react\"\n\nexport function Ui89SpaceVertical({ gap = 1 }: { gap?: number }) {\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${gap})`,\n }\n\n return <div style={style}></div>\n}\n","import React from \"react\"\n\nimport ShortcutSvg from \"../images/shortcut.svg\"\n\nimport styles from \"./Ui89Shortcut.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nimport { Ui89SpaceVertical } from \"./Ui89SpaceVertical\"\n\nexport function Ui89Shortcut({\n imageUrl,\n label,\n onClick = () => {},\n}: {\n imageUrl: string\n label: string\n onClick?: () => void\n}) {\n function onNativeClick() {\n onClick()\n }\n\n return (\n <div className={styles.container} onClick={onNativeClick}>\n <div className={styles.imageContainer}>\n <img className={styles.image} src={imageUrl} />\n\n <div className={styles.shortcutIconContainer}>\n <ShortcutSvg className={styles.shortcutIcon} width={16} height={16} />\n </div>\n </div>\n\n <Ui89SpaceVertical gap={1} />\n\n <div\n className={`${styles.label} ${typoStyles.smallBold}`}\n onClick={onNativeClick}\n >\n {label}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89Tabs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport interface Ui89TabsPropsOption {\n value: string | number\n label: string\n}\n\nexport interface Ui89TabsProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabsPropsOption[]\n\n /**\n * Stretch options such that they evenly take up the entire width.\n */\n stretch?: boolean\n}\n\nexport function Ui89Tabs({\n selected,\n onChange = () => {},\n options = [],\n stretch,\n}: Ui89TabsProps) {\n function handleOnChange(value: string | number) {\n onChange(value)\n }\n\n return (\n <div\n className={[\n styles.navigation,\n stretch ? styles[\"navigation--stretch\"] : \"\",\n ].join(\" \")}\n >\n {options.map((option) => (\n <div\n className={[\n styles.navigationItem,\n typoStyles.smallBold,\n selected === option.value ? styles.navigationItemSelected : \"\",\n ].join(\" \")}\n key={option.value}\n onClick={() => handleOnChange(option.value)}\n >\n {option.label}\n </div>\n ))}\n </div>\n )\n}\n","import { Ui89Card } from \"./Ui89Card\"\nimport { Ui89Tabs } from \"./Ui89Tabs\"\nimport React, { useCallback, useMemo } from \"react\"\n\nexport interface Ui89TabbedCardProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabbedCardPropsOption[]\n}\n\nexport interface Ui89TabbedCardPropsOption {\n value: string | number\n label: string\n render: () => React.JSX.Element\n}\n\nexport function Ui89TabbedCard({\n selected,\n onChange,\n options = [],\n}: Ui89TabbedCardProps) {\n const selectedItem = useMemo<Ui89TabbedCardPropsOption | null>(() => {\n return options.find((item) => item.value === selected) ?? null\n }, [selected, options])\n\n const render = useMemo(() => {\n return selectedItem !== null ? selectedItem.render : () => <></>\n }, [selectedItem])\n\n const renderKey = useMemo(() => {\n return selectedItem !== null ? selectedItem.value : undefined\n }, [selectedItem])\n\n return (\n <Ui89Card\n topCenter={\n <Ui89Tabs selected={selected} options={options} onChange={onChange} />\n }\n >\n <React.Fragment key={renderKey}>{render()}</React.Fragment>\n </Ui89Card>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89TagBox.module.css\"\n\nexport function Ui89TagBox({\n theme,\n children,\n}: {\n theme: Ui89Theme | string\n children: React.ReactNode\n}) {\n return (\n <div\n className={`${style.container} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89ThemeBackground.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\n\ninterface Ui89ThemeBackgroundProps {\n theme?: Ui89Theme | string\n children: React.ReactNode\n}\n\nexport function Ui89ThemeBackground({\n theme = Ui89Theme.primary,\n children,\n}: Ui89ThemeBackgroundProps) {\n return (\n <div className={`${styles.background} ${chosenThemeStyles[theme]}`}>\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleBox.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport function Ui89TitleBox({ children }: { children: React.ReactNode }) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleUnderline.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport function Ui89TitleUnderline({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { ToastContainer, toast } from \"react-toastify\"\n\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport { Ui89Theme } from \"../theme\"\n\ninterface Ui89ToasterOptions {\n theme?: Ui89Theme\n autoClose?: boolean\n duration?: number\n}\n\nexport function useUi89Toaster() {\n return {\n toast(\n content: React.ReactNode,\n options: Ui89ToasterOptions = { theme: Ui89Theme.primary },\n ) {\n const classNames = [\"ui89-toaster\", typoStyles.normal]\n\n if (options.theme !== undefined) {\n classNames.push(chosenThemeStyles[options.theme])\n }\n\n let autoClose: boolean | number = 5000\n\n if (options.duration !== undefined) {\n autoClose = options.duration\n }\n\n if (options.autoClose !== undefined) {\n if (!options.autoClose) {\n autoClose = false\n }\n }\n\n return toast(() => content, {\n className: classNames.join(\" \"),\n type: \"default\",\n autoClose,\n closeButton: false,\n hideProgressBar: true,\n closeOnClick: true,\n })\n },\n }\n}\n\nexport function Ui89Toaster() {\n return <ToastContainer />\n}\n","import React, { forwardRef, useMemo } from \"react\"\n// @ts-ignore\nimport { VariableSizeGrid } from \"react-window\"\nimport AutoSizer from \"react-virtualized-auto-sizer\"\nimport styles from \"./Ui89VirtualTable.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { Ui89TagBox } from \"./Ui89TagBox\"\n\nconst HEADER_HEIGHT = 30\n\ninterface VariableSizeGridProps {\n columnIndex: number\n rowIndex: number\n style: React.CSSProperties\n}\n\nexport interface Ui89VirtualTableColumnRenderHeaderParams<T> {\n index: number\n column: Ui89VirtualTableColumn<T>\n}\n\nexport interface Ui89VirtualTableColumnRenderBodyParams<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualTableColumn<T> {\n width?: number\n renderHeader?: React.FC<Ui89VirtualTableColumnRenderHeaderParams<T>>\n renderBody: React.FC<Ui89VirtualTableColumnRenderBodyParams<T>>\n}\n\nexport interface Ui89VirtualTableProps<T> {\n rows?: T[]\n columns?: Ui89VirtualTableColumn<T>[]\n rowHeight?: number\n}\n\nexport function Ui89VirtualTable<T>(props: Ui89VirtualTableProps<T>) {\n const rows = useMemo(() => {\n return props.rows !== undefined ? props.rows : []\n }, [props.rows])\n\n const columns = useMemo(() => {\n return props.columns !== undefined ? props.columns : []\n }, [props.columns])\n\n function getRowHeight(index: number): number {\n if (index === 0) {\n // Header.\n return HEADER_HEIGHT\n } else {\n // Body\n return props.rowHeight ?? 50\n }\n }\n\n function getColumnWidth(index: number): number {\n return columns[index].width ?? 100\n }\n\n function getColumnHorizontalOffset(columnIndex: number) {\n let offset = 0\n\n for (let i = 0; i < columnIndex; i++) {\n offset += getColumnWidth(columnIndex)\n }\n\n return offset\n }\n\n function getColumnClass(columnIndex: number, rowIndex: number): string {\n const classes = [styles.cell]\n\n if (rowIndex === 0) {\n classes.push(styles[\"cell--row-first\"])\n }\n\n if (rowIndex === rows.length) {\n classes.push(styles[\"cell--row-last\"])\n }\n\n if (columnIndex === 0) {\n classes.push(styles[\"cell--column-first\"])\n }\n\n if (columnIndex === columns.length - 1) {\n classes.push(styles[\"cell--column-last\"])\n }\n\n return classes.join(\" \")\n }\n\n // This is the secret to having sticky headers.\n const innerElementType = forwardRef(({ children, ...rest }: any, ref) => (\n <div ref={ref} {...rest}>\n <div className={styles.tableHeader}>\n {columns.map((column, index) => (\n <div\n key={index}\n className={[getColumnClass(index, 0), typoStyles.normalBold].join(\n \" \",\n )}\n style={{\n left: getColumnHorizontalOffset(index),\n width: getColumnWidth(index) + \"px\",\n height: getRowHeight(0) + \"px\",\n }}\n >\n {column.renderHeader !== undefined && (\n <column.renderHeader index={index} column={column} />\n )}\n </div>\n ))}\n </div>\n\n {children}\n </div>\n ))\n\n return (\n <div className={styles.table}>\n {rows.length > 0 ? (\n <div className={styles.tableBody}>\n <AutoSizer>\n {({ height, width }) => (\n <VariableSizeGrid\n columnCount={columns.length}\n columnWidth={getColumnWidth}\n rowCount={rows.length + 1}\n rowHeight={getRowHeight}\n width={width}\n height={height}\n innerElementType={innerElementType}\n >\n {({ columnIndex, rowIndex, style }: VariableSizeGridProps) => (\n <div\n className={getColumnClass(columnIndex, rowIndex)}\n style={style}\n >\n {/* We do not render the first column. That space is reserved for the header */}\n {rowIndex !== 0 &&\n [columns[columnIndex].renderBody].map((BodyContent) => (\n <BodyContent\n key={rowIndex}\n index={rowIndex - 1}\n row={rows[rowIndex - 1]}\n />\n ))}\n </div>\n )}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </div>\n ) : (\n <div className={styles.empty}>\n <Ui89TagBox theme=\"warn\">Empty</Ui89TagBox>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","styles","style","ShortcutSvg"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-ui89",
3
3
  "description": "A collection of React components that mimic a common style of user interfaces from the late 80s and early 90s.",
4
- "version": "0.22.0",
4
+ "version": "0.23.0",
5
5
  "author": "Daniel Araujo",
6
6
  "module": "dist/esm/index.js",
7
7
  "files": [