react-ui89 0.28.1 → 0.29.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.
- package/dist/esm/components/Ui89DateTimePicker.d.ts +8 -0
- package/dist/esm/components/Ui89DateTimePicker.stories.d.ts +8 -0
- package/dist/esm/date-utils.d.ts +1 -0
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.css.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +35 -19
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "react-datepicker/dist/react-datepicker.css";
|
|
3
|
+
import "./Ui89DateTimePicker.css";
|
|
4
|
+
export interface Ui89DateTimePickerProps {
|
|
5
|
+
value?: Date | null;
|
|
6
|
+
onChange?: (value: Date | null) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function Ui89DateTimePicker(props: Ui89DateTimePickerProps): React.JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89DateTimePicker } from "./Ui89DateTimePicker";
|
|
3
|
+
declare const meta: Meta<typeof Ui89DateTimePicker>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const NoDateSelected: Story;
|
|
7
|
+
export declare const DateSelected: Story;
|
|
8
|
+
export declare const ChangesSelectedDateWhenTyping: Story;
|
package/dist/esm/date-utils.d.ts
CHANGED
package/dist/esm/index.css
CHANGED
|
@@ -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-grid;height:fit-content}.Ui89Button-module_container--size-standard__Zinc- .Ui89Button-module_button__wl9cp{height:22px;min-width:60px;padding:0 calc(var(--ui89-safe-space)*2)}.Ui89Button-module_container--size-square__5tJnr{width:fit-content}.Ui89Button-module_container--size-square__5tJnr .Ui89Button-module_button__wl9cp{flex-basis:22px;height:22px;overflow:hidden;width:22px}.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;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_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_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)}.Ui89LinkUnderline-module_link__m34Mq{color:currentColor;text-decoration:underline}.Ui89LinkUnderline-module_link__m34Mq:hover{color:currentColor}.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}.Ui89NameValuePair-module_nameValuePair__nameWrapper__CstZ0{display:flex;flex:1}.Ui89NameValuePair-module_nameValuePair__dots__BaHp6{border-bottom:1px dashed;flex:1 1;height:.75em;margin:0 2px;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)}.Ui89ThemeBackground-module_background__4C-5t{--ui89-scene-card-bg-color:var(--ui89-chosen-theme-bg-color);--ui89-scene-card-text-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;min-width:100%;position:absolute;top:0;z-index:2}.Ui89VirtualTable-module_rowBorder__ZKCjF{border-bottom:2px solid var(--ui89-scene-text-color);left:0;margin-top:-2px;position:absolute;right:0}.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-box-shadow:10px 10px 0px #000}.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:var(--ui89-box-shadow);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-grid;height:fit-content}.Ui89Button-module_container--size-standard__Zinc- .Ui89Button-module_button__wl9cp{height:22px;min-width:60px;padding:0 calc(var(--ui89-safe-space)*2)}.Ui89Button-module_container--size-square__5tJnr{width:fit-content}.Ui89Button-module_container--size-square__5tJnr .Ui89Button-module_button__wl9cp{flex-basis:22px;height:22px;overflow:hidden;width:22px}.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;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_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_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)}.ui89-date-time-picker>.react-datepicker-wrapper{display:block}.ui89-date-time-picker .react-datepicker__triangle{display:none}.ui89-date-time-picker .react-datepicker{background:var(--ui89-scene-bg-color);border:1px solid;border-radius:0;box-shadow:var(--ui89-box-shadow);color:var(--ui89-scene-text-color)}.ui89-date-time-picker .react-datepicker__current-month{margin-bottom:calc(var(--ui89-safe-space)/2);margin-top:calc(var(--ui89-safe-space)/2)}.ui89-date-time-picker .react-datepicker-time__header,.ui89-date-time-picker .react-datepicker-year-header,.ui89-date-time-picker .react-datepicker__current-month,.ui89-date-time-picker .react-datepicker__day,.ui89-date-time-picker .react-datepicker__day-name,.ui89-date-time-picker .react-datepicker__time-name{color:currentColor}.ui89-date-time-picker .react-datepicker__day--outside-month{color:var(--ui89-scene-text-subtle-color)}.ui89-date-time-picker .react-datepicker__header{background:#0000;border:0}.ui89-date-time-picker .react-datepicker__time-container .react-datepicker__time{background:#0000}.ui89-date-time-picker .react-datepicker__day--keyboard-selected,.ui89-date-time-picker .react-datepicker__month-text--keyboard-selected,.ui89-date-time-picker .react-datepicker__quarter-text--keyboard-selected,.ui89-date-time-picker .react-datepicker__year-text--keyboard-selected{background:var(--ui89-theme-secondary-bg-color);color:var(--ui89-theme-secondary-text-color)}.ui89-date-time-picker .react-datepicker__day--in-range,.ui89-date-time-picker .react-datepicker__day--in-selecting-range,.ui89-date-time-picker .react-datepicker__day--selected,.ui89-date-time-picker .react-datepicker__month-text--in-range,.ui89-date-time-picker .react-datepicker__month-text--in-selecting-range,.ui89-date-time-picker .react-datepicker__month-text--selected,.ui89-date-time-picker .react-datepicker__quarter-text--in-range,.ui89-date-time-picker .react-datepicker__quarter-text--in-selecting-range,.ui89-date-time-picker .react-datepicker__quarter-text--selected,.ui89-date-time-picker .react-datepicker__year-text--in-range,.ui89-date-time-picker .react-datepicker__year-text--in-selecting-range,.ui89-date-time-picker .react-datepicker__year-text--selected{background:var(--ui89-theme-primary-bg-color);border-radius:0;color:var(--ui89-theme-primary-text-color)}.ui89-date-time-picker .react-datepicker__day--in-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__day--selected:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__year-text--in-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__year-text--selected:not([aria-disabled=true]):hover{background:var(--ui89-theme-primary-bg-color);color:var(--ui89-theme-primary-text-color)}.ui89-date-time-picker .react-datepicker__day:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__month-text:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__quarter-text:not([aria-disabled=true]):hover,.ui89-date-time-picker .react-datepicker__year-text:not([aria-disabled=true]):hover{background:var(--ui89-theme-secondary-bg-color);border-radius:0;color:var(--ui89-theme-secondary-text-color)}.ui89-date-time-picker .react-datepicker__month-container{border-right:1px solid}.ui89-date-time-picker .react-datepicker__time-container{border-left:0}.ui89-date-time-picker .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:auto}.ui89-date-time-picker .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background:var(--ui89-theme-primary-bg-color);color:var(--ui89-theme-primary-text-color)}.ui89-date-time-picker .react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{background:var(--ui89-theme-secondary-bg-color);color:var(--ui89-theme-secondary-text-color)}.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)}.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)}.Ui89LinkUnderline-module_link__m34Mq{color:currentColor;text-decoration:underline}.Ui89LinkUnderline-module_link__m34Mq:hover{color:currentColor}.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}.Ui89NameValuePair-module_nameValuePair__nameWrapper__CstZ0{display:flex;flex:1}.Ui89NameValuePair-module_nameValuePair__dots__BaHp6{border-bottom:1px dashed;flex:1 1;height:.75em;margin:0 2px;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)}.Ui89ThemeBackground-module_background__4C-5t{--ui89-scene-card-bg-color:var(--ui89-chosen-theme-bg-color);--ui89-scene-card-text-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;min-width:100%;position:absolute;top:0;z-index:2}.Ui89VirtualTable-module_rowBorder__ZKCjF{border-bottom:2px solid var(--ui89-scene-text-color);left:0;margin-top:-2px;pointer-events:none;position:absolute;right:0}.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 */
|
package/dist/esm/index.css.map
CHANGED
|
@@ -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","Ui89LinkUnderline.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-grid;\n height: fit-content;\n}\n\n.container--size-standard .button {\n height: 22px;\n padding: 0 calc(var(--ui89-safe-space) * 2);\n min-width: 60px;\n}\n\n.container--size-square {\n /* We want to keep it square. */\n width: fit-content;\n}\n\n.container--size-square .button {\n width: 22px;\n height: 22px;\n flex-basis: 22px;\n\n /* The user is more likely to put something here that does not fit. */\n overflow: hidden;\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 border-radius: 1px;\n font-weight: bold;\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.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.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",".link {\n color: currentColor;\n text-decoration: underline;\n}\n\n.link:hover {\n color: currentColor;\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\n.nameValuePair__nameWrapper {\n display: flex;\n flex: 1;\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 /* Want to make sure that the dots are at the baseline */\n height: calc(1em * 0.75);\n\n /* So that the dots are not too close to the text */\n margin: 0 2px;\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 /* Must affect cards */\n --ui89-scene-card-bg-color: var(--ui89-chosen-theme-bg-color);\n --ui89-scene-card-text-color: var(--ui89-chosen-theme-text-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: absolute;\n top: 0;\n z-index: 2;\n\n /* Making sure that the row border can occupy the entire width */\n min-width: 100%;\n\n display: flex;\n}\n\n.rowBorder {\n margin-top: -2px;\n border-bottom: 2px solid var(--ui89-scene-text-color);\n position: absolute;\n left: 0;\n right: 0;\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\n /* Have to render border in case last column is not visible. */\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","Ui89DateTimePicker.css","input-box.module.css","Ui89HighlightText.module.css","Ui89Hr.module.css","Ui89InputFileUpload.module.css","text.module.css","Ui89InputSelect.module.css","Ui89LinkUnderline.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 /* Shadows */\n --ui89-box-shadow: 10px 10px 0px black;\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: var(--ui89-box-shadow);\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-grid;\n height: fit-content;\n}\n\n.container--size-standard .button {\n height: 22px;\n padding: 0 calc(var(--ui89-safe-space) * 2);\n min-width: 60px;\n}\n\n.container--size-square {\n /* We want to keep it square. */\n width: fit-content;\n}\n\n.container--size-square .button {\n width: 22px;\n height: 22px;\n flex-basis: 22px;\n\n /* The user is more likely to put something here that does not fit. */\n overflow: hidden;\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 border-radius: 1px;\n font-weight: bold;\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.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.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",".ui89-date-time-picker > .react-datepicker-wrapper {\n /* The library uses display inline. We don't. */\n display: block;\n}\n\n.ui89-date-time-picker .react-datepicker__triangle {\n /* We do not need the triangle */\n display: none;\n}\n\n/* This is the menu */\n.ui89-date-time-picker .react-datepicker {\n color: var(--ui89-scene-text-color);\n background: var(--ui89-scene-bg-color);\n\n border: 1px solid currentColor;\n border-radius: 0;\n\n box-shadow: var(--ui89-box-shadow);\n}\n\n/* Selected month, year */\n.ui89-date-time-picker .react-datepicker__current-month {\n margin-top: calc(var(--ui89-safe-space) / 2);\n margin-bottom: calc(var(--ui89-safe-space) / 2);\n}\n\n.ui89-date-time-picker .react-datepicker__current-month,\n.ui89-date-time-picker .react-datepicker-time__header,\n.ui89-date-time-picker .react-datepicker-year-header {\n color: currentColor;\n}\n\n.ui89-date-time-picker .react-datepicker__day-name,\n.ui89-date-time-picker .react-datepicker__day,\n.ui89-date-time-picker .react-datepicker__time-name {\n color: currentColor;\n}\n\n.ui89-date-time-picker .react-datepicker__day--outside-month {\n color: var(--ui89-scene-text-subtle-color);\n}\n\n/* Month, year and week days */\n.ui89-date-time-picker .react-datepicker__header {\n background: transparent;\n border: 0;\n}\n\n.ui89-date-time-picker\n .react-datepicker__time-container\n .react-datepicker__time {\n background: transparent;\n}\n\n.ui89-date-time-picker .react-datepicker__day--keyboard-selected,\n.ui89-date-time-picker .react-datepicker__month-text--keyboard-selected,\n.ui89-date-time-picker .react-datepicker__quarter-text--keyboard-selected,\n.ui89-date-time-picker .react-datepicker__year-text--keyboard-selected {\n color: var(--ui89-theme-secondary-text-color);\n background: var(--ui89-theme-secondary-bg-color);\n}\n\n.ui89-date-time-picker .react-datepicker__day--selected,\n.ui89-date-time-picker .react-datepicker__day--in-selecting-range,\n.ui89-date-time-picker .react-datepicker__day--in-range,\n.ui89-date-time-picker .react-datepicker__month-text--selected,\n.ui89-date-time-picker .react-datepicker__month-text--in-selecting-range,\n.ui89-date-time-picker .react-datepicker__month-text--in-range,\n.ui89-date-time-picker .react-datepicker__quarter-text--selected,\n.ui89-date-time-picker .react-datepicker__quarter-text--in-selecting-range,\n.ui89-date-time-picker .react-datepicker__quarter-text--in-range,\n.ui89-date-time-picker .react-datepicker__year-text--selected,\n.ui89-date-time-picker .react-datepicker__year-text--in-selecting-range,\n.ui89-date-time-picker .react-datepicker__year-text--in-range {\n border-radius: 0;\n color: var(--ui89-theme-primary-text-color);\n background: var(--ui89-theme-primary-bg-color);\n}\n\n.ui89-date-time-picker\n .react-datepicker__day--selected:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__day--in-selecting-range:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__day--in-range:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__month-text--selected:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__month-text--in-selecting-range:not(\n [aria-disabled=\"true\"]\n ):hover,\n.ui89-date-time-picker\n .react-datepicker__month-text--in-range:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__quarter-text--selected:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__quarter-text--in-selecting-range:not(\n [aria-disabled=\"true\"]\n ):hover,\n.ui89-date-time-picker\n .react-datepicker__quarter-text--in-range:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__year-text--selected:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__year-text--in-selecting-range:not(\n [aria-disabled=\"true\"]\n ):hover,\n.ui89-date-time-picker\n .react-datepicker__year-text--in-range:not([aria-disabled=\"true\"]):hover {\n color: var(--ui89-theme-primary-text-color);\n background: var(--ui89-theme-primary-bg-color);\n}\n\n.ui89-date-time-picker .react-datepicker__day:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__month-text:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__quarter-text:not([aria-disabled=\"true\"]):hover,\n.ui89-date-time-picker\n .react-datepicker__year-text:not([aria-disabled=\"true\"]):hover {\n border-radius: 0;\n color: var(--ui89-theme-secondary-text-color);\n background: var(--ui89-theme-secondary-bg-color);\n}\n\n/* Date section */\n.ui89-date-time-picker .react-datepicker__month-container {\n border-right: 1px solid currentColor;\n}\n\n/* Time section */\n.ui89-date-time-picker .react-datepicker__time-container {\n /* The border will be cut if the month shows 6 weeks */\n border-left: 0;\n}\n\n/* Time option */\n.ui89-date-time-picker\n .react-datepicker__time-container\n .react-datepicker__time\n .react-datepicker__time-box\n ul.react-datepicker__time-list\n li.react-datepicker__time-list-item {\n /* Why did it set a fixed height? It looks so bad */\n height: auto;\n}\n\n/* Time option selected */\n.ui89-date-time-picker\n .react-datepicker__time-container\n .react-datepicker__time\n .react-datepicker__time-box\n ul.react-datepicker__time-list\n li.react-datepicker__time-list-item--selected {\n color: var(--ui89-theme-primary-text-color);\n background: var(--ui89-theme-primary-bg-color);\n}\n\n/* Time option hover */\n.ui89-date-time-picker\n .react-datepicker__time-container\n .react-datepicker__time\n .react-datepicker__time-box\n ul.react-datepicker__time-list\n li.react-datepicker__time-list-item:hover {\n color: var(--ui89-theme-secondary-text-color);\n background: var(--ui89-theme-secondary-bg-color);\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",".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",".link {\n color: currentColor;\n text-decoration: underline;\n}\n\n.link:hover {\n color: currentColor;\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\n.nameValuePair__nameWrapper {\n display: flex;\n flex: 1;\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 /* Want to make sure that the dots are at the baseline */\n height: calc(1em * 0.75);\n\n /* So that the dots are not too close to the text */\n margin: 0 2px;\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 /* Must affect cards */\n --ui89-scene-card-bg-color: var(--ui89-chosen-theme-bg-color);\n --ui89-scene-card-text-color: var(--ui89-chosen-theme-text-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: absolute;\n top: 0;\n z-index: 2;\n\n /* Making sure that the row border can occupy the entire width */\n min-width: 100%;\n\n display: flex;\n}\n\n.rowBorder {\n margin-top: -2px;\n border-bottom: 2px solid var(--ui89-scene-text-color);\n position: absolute;\n left: 0;\n right: 0;\n\n /* This element can appear on top of other elements. */\n pointer-events: none;\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\n /* Have to render border in case last column is not visible. */\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.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export { Ui89Card } from "./components/Ui89Card";
|
|
|
9
9
|
export type { Ui89CardProps } from "./components/Ui89Card";
|
|
10
10
|
export { Ui89CardHorizontalConnection } from "./components/Ui89CardHorizontalConnection";
|
|
11
11
|
export type { Ui89CardHorizontalConnectionProps } from "./components/Ui89CardHorizontalConnection";
|
|
12
|
+
export { Ui89DateTimePicker } from "./components/Ui89DateTimePicker";
|
|
13
|
+
export type { Ui89DateTimePickerProps } from "./components/Ui89DateTimePicker";
|
|
12
14
|
export { Ui89DigitalClock } from "./components/Ui89DigitalClock";
|
|
13
15
|
export type { Ui89DigitalClockProps } from "./components/Ui89DigitalClock";
|
|
14
16
|
export { Ui89HighlightText } from "./components/Ui89HighlightText";
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { createContext, useContext, useState, useEffect, useRef, useMemo, forwardRef } from 'react';
|
|
3
|
+
import DatePicker from 'react-datepicker';
|
|
4
|
+
import 'react-datepicker/dist/react-datepicker.css';
|
|
3
5
|
import Timeout from 'smart-timeout';
|
|
4
6
|
import { createPortal } from 'react-dom';
|
|
5
7
|
import { toast, ToastContainer } from 'react-toastify';
|
|
@@ -174,6 +176,18 @@ function Ui89CardHorizontalConnection({ children, overflow, }) {
|
|
|
174
176
|
return (React__default.createElement("div", { className: `${styles$e.cardHorizontalConnection} ${overflow ? styles$e["cardHorizontalConnection--overflow"] : ""}` }, children));
|
|
175
177
|
}
|
|
176
178
|
|
|
179
|
+
var inputBoxStyles = {"inputBox":"input-box-module_inputBox__hMERT","inputBox--unselectable":"input-box-module_inputBox--unselectable__1VrB-","inputBox--clickable":"input-box-module_inputBox--clickable__CXeLj"};
|
|
180
|
+
|
|
181
|
+
function Ui89DateTimePicker(props) {
|
|
182
|
+
function datepickerOnChange(value) {
|
|
183
|
+
if (props.onChange) {
|
|
184
|
+
props.onChange(value);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return (React__default.createElement("span", { className: "ui89-date-time-picker" },
|
|
188
|
+
React__default.createElement(DatePicker, { className: [inputBoxStyles.inputBox, typoStyles.normal].join(" "), calendarClassName: typoStyles.normal, showTimeSelect: true, dateFormat: "MM/dd/yyyy HH:mm:ss", timeFormat: "HH:mm", selected: props.value, onChange: datepickerOnChange, popperPlacement: "bottom-start" })));
|
|
189
|
+
}
|
|
190
|
+
|
|
177
191
|
const TimeAnimation = ({ children }) => {
|
|
178
192
|
const [currentTime, setCurrentTime] = useState(new Date());
|
|
179
193
|
useEffect(() => {
|
|
@@ -192,24 +206,28 @@ const TimeAnimation = ({ children }) => {
|
|
|
192
206
|
return React__default.createElement(React__default.Fragment, null, children({ now: currentTime }));
|
|
193
207
|
};
|
|
194
208
|
|
|
209
|
+
function dateFormat(date, format) {
|
|
210
|
+
const placeholders = {
|
|
211
|
+
YYYY: date.getFullYear().toString(),
|
|
212
|
+
MM: (date.getMonth() + 1).toString().padStart(2, "0"),
|
|
213
|
+
DD: date.getDate().toString().padStart(2, "0"),
|
|
214
|
+
HH: date.getHours().toString().padStart(2, "0"),
|
|
215
|
+
mm: date.getMinutes().toString().padStart(2, "0"),
|
|
216
|
+
ss: date.getSeconds().toString().padStart(2, "0"),
|
|
217
|
+
hh: (date.getHours() % 12 || 12).toString().padStart(2, "0"),
|
|
218
|
+
A: date.getHours() >= 12 ? "PM" : "AM",
|
|
219
|
+
};
|
|
220
|
+
// Replace placeholders in the format string
|
|
221
|
+
let formattedDate = format;
|
|
222
|
+
for (const [key, value] of Object.entries(placeholders)) {
|
|
223
|
+
formattedDate = formattedDate.replace(key, value);
|
|
224
|
+
}
|
|
225
|
+
return formattedDate;
|
|
226
|
+
}
|
|
227
|
+
|
|
195
228
|
function Ui89DigitalClock({ format = "HH:mm:ss", }) {
|
|
196
229
|
function render({ now }) {
|
|
197
|
-
|
|
198
|
-
YYYY: now.getFullYear().toString(),
|
|
199
|
-
MM: (now.getMonth() + 1).toString().padStart(2, "0"),
|
|
200
|
-
DD: now.getDate().toString().padStart(2, "0"),
|
|
201
|
-
HH: now.getHours().toString().padStart(2, "0"),
|
|
202
|
-
mm: now.getMinutes().toString().padStart(2, "0"),
|
|
203
|
-
ss: now.getSeconds().toString().padStart(2, "0"),
|
|
204
|
-
hh: (now.getHours() % 12 || 12).toString().padStart(2, "0"),
|
|
205
|
-
A: now.getHours() >= 12 ? "PM" : "AM",
|
|
206
|
-
};
|
|
207
|
-
// Replace placeholders in the format string
|
|
208
|
-
let formattedDate = format;
|
|
209
|
-
for (const [key, value] of Object.entries(placeholders)) {
|
|
210
|
-
formattedDate = formattedDate.replace(key, value);
|
|
211
|
-
}
|
|
212
|
-
return formattedDate;
|
|
230
|
+
return dateFormat(now, format);
|
|
213
231
|
}
|
|
214
232
|
return (React__default.createElement("span", { className: `${typoStyles.special}` },
|
|
215
233
|
React__default.createElement(TimeAnimation, null, render)));
|
|
@@ -270,8 +288,6 @@ function Ui89InputFileUpload({ value, onChange, }) {
|
|
|
270
288
|
|
|
271
289
|
var styles$c = {"inputSelect":"Ui89InputSelect-module_inputSelect__R3-fU","menu":"Ui89InputSelect-module_menu__T-rDA","menuContent":"Ui89InputSelect-module_menuContent__poCdH","appear":"Ui89InputSelect-module_appear__S2gIU","menuItem":"Ui89InputSelect-module_menuItem__3l1y0","menuItem--disabled":"Ui89InputSelect-module_menuItem--disabled__eEjvv","selected":"Ui89InputSelect-module_selected__AbSbK"};
|
|
272
290
|
|
|
273
|
-
var inputBoxStyles = {"inputBox":"input-box-module_inputBox__hMERT","inputBox--unselectable":"input-box-module_inputBox--unselectable__1VrB-","inputBox--clickable":"input-box-module_inputBox--clickable__CXeLj"};
|
|
274
|
-
|
|
275
291
|
function Ui89InputSelect({ options, value, onChange, }) {
|
|
276
292
|
const realOptions = useMemo(() => {
|
|
277
293
|
if (options === undefined) {
|
|
@@ -809,5 +825,5 @@ function Ui89VirtualTable(props) {
|
|
|
809
825
|
React__default.createElement(Ui89TagBox, { theme: "warning" }, "Empty")))));
|
|
810
826
|
}
|
|
811
827
|
|
|
812
|
-
export { Ui89Breadcrumbs, Ui89Button, Ui89Card, Ui89CardHorizontalConnection, Ui89DigitalClock, Ui89HighlightText, Ui89Hr, Ui89InputFileUpload, Ui89InputPassword, Ui89InputSelect, Ui89InputText, Ui89InputTextNumber, Ui89LinkUnderline, Ui89Look, Ui89MenuBar, Ui89ModalDialog, Ui89NameValuePair, Ui89OverrideProvider, Ui89Scene, Ui89Shortcut, Ui89SpacePadding, Ui89SpaceVertical, Ui89TabbedCard, Ui89Tabs, Ui89TagBox, Ui89Theme, Ui89ThemeBackground, Ui89TitleBox, Ui89TitleUnderline, Ui89Toaster, Ui89VirtualTable, useUi89Toaster };
|
|
828
|
+
export { Ui89Breadcrumbs, Ui89Button, Ui89Card, Ui89CardHorizontalConnection, Ui89DateTimePicker, Ui89DigitalClock, Ui89HighlightText, Ui89Hr, Ui89InputFileUpload, Ui89InputPassword, Ui89InputSelect, Ui89InputText, Ui89InputTextNumber, Ui89LinkUnderline, Ui89Look, Ui89MenuBar, Ui89ModalDialog, Ui89NameValuePair, Ui89OverrideProvider, Ui89Scene, Ui89Shortcut, Ui89SpacePadding, Ui89SpaceVertical, Ui89TabbedCard, Ui89Tabs, Ui89TagBox, Ui89Theme, Ui89ThemeBackground, Ui89TitleBox, Ui89TitleUnderline, Ui89Toaster, Ui89VirtualTable, useUi89Toaster };
|
|
813
829
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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/Ui89CardHorizontalConnection.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/components/Ui89InputPassword.tsx","../../src/timeout.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89LinkUnderline.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/Ui89SpacePadding.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 | keyof typeof 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\nexport enum Ui89ButtonPropsSize {\n standard = \"standard\",\n square = \"square\",\n}\n\nexport interface Ui89ButtonProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n size?: Ui89ButtonPropsSize | keyof typeof Ui89ButtonPropsSize\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 = Ui89ButtonPropsSize.standard,\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 containerClass = [\n styles.container,\n styles[\"container--size-\" + size],\n ].join(\" \")\n\n let buttonClass = [\n styles.button,\n typoStyles.special,\n chosenThemeStyles[theme],\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={containerClass}>\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={containerClass}>\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 interface Ui89CardProps {\n topLeftCenter?: React.ReactNode\n topCenter?: React.ReactNode\n children: React.ReactNode\n}\n\nexport function Ui89Card({\n topLeftCenter,\n topCenter,\n children,\n}: Ui89CardProps) {\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 from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport interface Ui89CardHorizontalConnectionProps {\n children: React.ReactNode\n overflow?: boolean\n}\n\nexport function Ui89CardHorizontalConnection({\n children,\n overflow,\n}: Ui89CardHorizontalConnectionProps) {\n return (\n <div\n className={`${styles.cardHorizontalConnection} ${overflow ? styles[\"cardHorizontalConnection--overflow\"] : \"\"}`}\n >\n {children}\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 interface Ui89HighlightTextProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n block?: boolean\n children: React.ReactNode\n}\n\nexport function Ui89HighlightText({\n theme,\n block,\n children,\n}: Ui89HighlightTextProps) {\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 Ui89HrPropsLook {\n straight = \"straight\",\n dotted = \"dotted\",\n dashed = \"dashed\",\n double = \"double\",\n}\n\nexport interface Ui89HrProps {\n look?: Ui89HrPropsLook | keyof typeof Ui89HrPropsLook\n theme?: Ui89Theme | 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 interface Ui89InputFileUploadProps {\n value?: any\n onChange?: (value: File | null) => void\n}\n\nexport function Ui89InputFileUpload({\n value,\n onChange,\n}: Ui89InputFileUploadProps) {\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: React.ReactNode\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 function optionTitle(option: Ui89InputSelectPropsOption) {\n return typeof option.label === \"string\" ? option.label : undefined\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={\n selectedOption !== null ? optionTitle(selectedOption) : undefined\n }\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 title={optionTitle(o)}\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 <empty>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { useState } from \"react\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nexport interface Ui89InputPasswordProps {\n value?: any\n placeholder?: string\n onChange?: (value: any) => void\n}\n\nexport function Ui89InputPassword({\n value,\n placeholder,\n onChange,\n}: Ui89InputPasswordProps) {\n const [intermediateValue, setIntermediateValue] = useState(value ?? \"\")\n\n const implOnChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n const newValue = e.target.value\n\n setIntermediateValue(newValue)\n\n if (onChange) {\n onChange(newValue)\n }\n }\n\n return (\n <div>\n <input\n type=\"password\"\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n role=\"textbox\"\n value={intermediateValue}\n onChange={implOnChange}\n placeholder={placeholder}\n />\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\nexport interface Ui89InputTextProps {\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\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}: Ui89InputTextProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [intermediateValue, setIntermediateValue] = useState(value)\n const [isTyping, setIsTyping] = useState(false)\n const onChangeRef = useRef(onChange)\n const onChangeThrottled = useMemo(() => throttledTimeout(), [])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\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 (!onChangeRef.current) {\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 onChangeRef.current(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 interface Ui89InputTextNumberProps {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n onChange?: (value: any) => void\n precision?: number\n}\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}: Ui89InputTextNumberProps) {\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, { useState } from \"react\"\n\nimport resetStyles from \"../style/reset.module.css\"\nimport styles from \"./Ui89LinkUnderline.module.css\"\n\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport interface Ui89LinkUnderlineProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkUnderline(props: Ui89LinkUnderlineProps) {\n const overrides = useUi89Overrides()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled =\n props.disabled || ((props.autoDisableOnClick ?? true) && clicking)\n\n async function onClick(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 try {\n setClicking(true)\n\n if (props.onClick !== undefined) {\n // A function takes over control.\n e.preventDefault()\n await props.onClick()\n } else if (props.href !== undefined) {\n if (props.href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(props.href)\n }\n }\n } else {\n // Do nothing.\n e.preventDefault()\n }\n } finally {\n setClicking(false)\n }\n }\n\n let containerClass = [styles.link].join(\" \")\n\n return (\n <a\n className={`${resetStyles.a} ${containerClass}`}\n role=\"link\"\n href={props.href}\n onClick={onClick}\n >\n {props.children}\n </a>\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 Ui89MenuBarPropsItem {\n label: React.ReactNode\n onClick?: () => void\n children?: Ui89MenuBarPropsItem[]\n}\n\nexport interface Ui89MenuBarProps {\n items: Ui89MenuBarPropsItem[]\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 interface Ui89SceneProps {\n look?: Ui89Look | string\n children: React.ReactNode\n}\n\nexport function Ui89Scene({ look = Ui89Look.main, children }: Ui89SceneProps) {\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\nexport interface Ui89ModalDialogProps {\n open: boolean\n size?: string\n children?: React.ReactNode\n topCenter?: React.ReactNode\n onRequestClose?: () => void\n}\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}: Ui89ModalDialogProps) {\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 interface Ui89NameValuePairProps {\n name: React.ReactNode\n value: React.ReactNode\n leftMaxWidth?: number\n}\n\nexport function Ui89NameValuePair({\n name,\n value,\n leftMaxWidth,\n}: Ui89NameValuePairProps) {\n return (\n <div className={style.nameValuePair}>\n <div\n className={style.nameValuePair__nameWrapper}\n style={{ maxWidth: `${leftMaxWidth}px` }}\n >\n <div className={style.nameValuePair__name}>{name}</div>\n <div className={style.nameValuePair__dots}></div>\n </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 interface Ui89SpaceVerticalProps {\n gap?: number\n}\n\nexport function Ui89SpaceVertical({ gap = 1 }: Ui89SpaceVerticalProps) {\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 interface Ui89ShortcutProps {\n imageUrl: string\n label: React.ReactNode\n onClick?: () => void\n}\n\nexport function Ui89Shortcut({\n imageUrl,\n label,\n onClick = () => {},\n}: Ui89ShortcutProps) {\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\nexport interface Ui89SpacePaddingProps {\n gap?: number\n gapVertical?: number\n gapHorizontal?: number\n gapTop?: number\n gapRight?: number\n gapBottom?: number\n gapLeft?: number\n children?: React.ReactNode\n}\n\nexport function Ui89SpacePadding(props: Ui89SpacePaddingProps) {\n const gap = props.gap ?? 1\n\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${props.gapTop ?? props.gapVertical ?? gap})`,\n paddingRight: `calc(var(--ui89-safe-space) * ${props.gapRight ?? props.gapHorizontal ?? gap})`,\n paddingBottom: `calc(var(--ui89-safe-space) * ${props.gapBottom ?? props.gapVertical ?? gap})`,\n paddingLeft: `calc(var(--ui89-safe-space) * ${props.gapLeft ?? props.gapHorizontal ?? gap})`,\n }\n\n return <div style={style}>{props.children}</div>\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: React.ReactNode\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: React.ReactNode\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 interface Ui89TagBoxProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n children: React.ReactNode\n}\n\nexport function Ui89TagBox({ theme, children }: Ui89TagBoxProps) {\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\nexport interface Ui89ThemeBackgroundProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\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 interface Ui89TitleBoxProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleBox({ children }: Ui89TitleBoxProps) {\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 interface Ui89TitleUnderlineProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleUnderline({ children }: Ui89TitleUnderlineProps) {\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\nexport interface Ui89ToasterOptions {\n theme?: Ui89Theme | keyof typeof 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 Ui89VirtualTablePropsColumnRenderHeaderParams<T> {\n index: number\n column: Ui89VirtualTablePropsColumn<T>\n}\n\nexport interface Ui89VirtualTablePropsColumnRenderBodyParams<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualTablePropsColumn<T> {\n width?: number\n renderHeader?: React.FC<Ui89VirtualTablePropsColumnRenderHeaderParams<T>>\n renderBody: React.FC<Ui89VirtualTablePropsColumnRenderBodyParams<T>>\n}\n\nexport interface Ui89VirtualTableProps<T> {\n rows?: T[]\n columns?: Ui89VirtualTablePropsColumn<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(i)\n }\n\n return offset\n }\n\n function isLastColumn(columnIndex: number): boolean {\n return columnIndex === columns.length - 1\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 (isLastColumn(columnIndex)) {\n classes.push(styles[\"cell--column-last\"])\n }\n\n return classes.join(\" \")\n }\n\n /**\n * The width of an entire row.\n */\n function rowWidth() {\n return getColumnHorizontalOffset(columns.length)\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\n <div\n className={styles.rowBorder}\n style={{ top: 0, transform: `translateY(${getRowHeight(0) + \"px\"})` }}\n ></div>\n </div>\n\n {children}\n </div>\n ))\n\n function renderRowBorder(columnIndex: number, style: React.CSSProperties) {\n if (!isLastColumn(columnIndex)) {\n // Do nothing.\n return\n }\n\n let rowBorderStyle = {\n ...style,\n\n // Will want to stretch width.\n left: 0,\n right: 0,\n width: undefined,\n }\n\n return <div className={styles.rowBorder} style={rowBorderStyle}></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 <>\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 {renderRowBorder(columnIndex, style)}\n </>\n )}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </div>\n ) : (\n <div className={styles.empty}>\n <Ui89TagBox theme=\"warning\">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/Ui89CardHorizontalConnection.tsx","../../src/components/Ui89DateTimePicker.tsx","../../src/components/TimeAnimation.tsx","../../src/date-utils.ts","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/Ui89InputSelect.tsx","../../src/components/Ui89InputPassword.tsx","../../src/timeout.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89LinkUnderline.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/Ui89SpacePadding.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 | keyof typeof 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\nexport enum Ui89ButtonPropsSize {\n standard = \"standard\",\n square = \"square\",\n}\n\nexport interface Ui89ButtonProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n size?: Ui89ButtonPropsSize | keyof typeof Ui89ButtonPropsSize\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 = Ui89ButtonPropsSize.standard,\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 containerClass = [\n styles.container,\n styles[\"container--size-\" + size],\n ].join(\" \")\n\n let buttonClass = [\n styles.button,\n typoStyles.special,\n chosenThemeStyles[theme],\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={containerClass}>\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={containerClass}>\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 interface Ui89CardProps {\n topLeftCenter?: React.ReactNode\n topCenter?: React.ReactNode\n children: React.ReactNode\n}\n\nexport function Ui89Card({\n topLeftCenter,\n topCenter,\n children,\n}: Ui89CardProps) {\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 from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport interface Ui89CardHorizontalConnectionProps {\n children: React.ReactNode\n overflow?: boolean\n}\n\nexport function Ui89CardHorizontalConnection({\n children,\n overflow,\n}: Ui89CardHorizontalConnectionProps) {\n return (\n <div\n className={`${styles.cardHorizontalConnection} ${overflow ? styles[\"cardHorizontalConnection--overflow\"] : \"\"}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\nimport DatePicker from \"react-datepicker\"\n\nimport \"react-datepicker/dist/react-datepicker.css\"\nimport \"./Ui89DateTimePicker.css\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nexport interface Ui89DateTimePickerProps {\n value?: Date | null\n onChange?: (value: Date | null) => void\n}\n\nexport function Ui89DateTimePicker(props: Ui89DateTimePickerProps) {\n function datepickerOnChange(value: Date | null) {\n if (props.onChange) {\n props.onChange(value)\n }\n }\n\n return (\n <span className=\"ui89-date-time-picker\">\n <DatePicker\n className={[inputBoxStyles.inputBox, typoStyles.normal].join(\" \")}\n calendarClassName={typoStyles.normal}\n showTimeSelect\n dateFormat=\"MM/dd/yyyy HH:mm:ss\"\n timeFormat=\"HH:mm\"\n selected={props.value}\n onChange={datepickerOnChange}\n popperPlacement=\"bottom-start\"\n />\n </span>\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","export interface DateComponents {\n hours: number\n minutes: number\n seconds: number\n milliseconds: number\n day: number\n month: number\n year: number\n}\n\nfunction dateComponents(date: Date): DateComponents {\n return {\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n milliseconds: date.getMilliseconds(),\n day: date.getDate(),\n month: date.getMonth() + 1,\n year: date.getFullYear(),\n }\n}\n\nexport function dateFormat(date: Date, format: string) {\n const placeholders: Record<string, string> = {\n YYYY: date.getFullYear().toString(),\n MM: (date.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: date.getDate().toString().padStart(2, \"0\"),\n HH: date.getHours().toString().padStart(2, \"0\"),\n mm: date.getMinutes().toString().padStart(2, \"0\"),\n ss: date.getSeconds().toString().padStart(2, \"0\"),\n hh: (date.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: date.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","import React, { useRef } from \"react\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { TimeAnimation, TimeAnimationPropsChildrenProps } from \"./TimeAnimation\"\nimport { dateFormat } from \"../date-utils\"\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 return dateFormat(now, format)\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 interface Ui89HighlightTextProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n block?: boolean\n children: React.ReactNode\n}\n\nexport function Ui89HighlightText({\n theme,\n block,\n children,\n}: Ui89HighlightTextProps) {\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 Ui89HrPropsLook {\n straight = \"straight\",\n dotted = \"dotted\",\n dashed = \"dashed\",\n double = \"double\",\n}\n\nexport interface Ui89HrProps {\n look?: Ui89HrPropsLook | keyof typeof Ui89HrPropsLook\n theme?: Ui89Theme | 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 interface Ui89InputFileUploadProps {\n value?: any\n onChange?: (value: File | null) => void\n}\n\nexport function Ui89InputFileUpload({\n value,\n onChange,\n}: Ui89InputFileUploadProps) {\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: React.ReactNode\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 function optionTitle(option: Ui89InputSelectPropsOption) {\n return typeof option.label === \"string\" ? option.label : undefined\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={\n selectedOption !== null ? optionTitle(selectedOption) : undefined\n }\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 title={optionTitle(o)}\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 <empty>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { useState } from \"react\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nexport interface Ui89InputPasswordProps {\n value?: any\n placeholder?: string\n onChange?: (value: any) => void\n}\n\nexport function Ui89InputPassword({\n value,\n placeholder,\n onChange,\n}: Ui89InputPasswordProps) {\n const [intermediateValue, setIntermediateValue] = useState(value ?? \"\")\n\n const implOnChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n const newValue = e.target.value\n\n setIntermediateValue(newValue)\n\n if (onChange) {\n onChange(newValue)\n }\n }\n\n return (\n <div>\n <input\n type=\"password\"\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n role=\"textbox\"\n value={intermediateValue}\n onChange={implOnChange}\n placeholder={placeholder}\n />\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\nexport interface Ui89InputTextProps {\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\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}: Ui89InputTextProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [intermediateValue, setIntermediateValue] = useState(value)\n const [isTyping, setIsTyping] = useState(false)\n const onChangeRef = useRef(onChange)\n const onChangeThrottled = useMemo(() => throttledTimeout(), [])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\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 (!onChangeRef.current) {\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 onChangeRef.current(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 interface Ui89InputTextNumberProps {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n onChange?: (value: any) => void\n precision?: number\n}\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}: Ui89InputTextNumberProps) {\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, { useState } from \"react\"\n\nimport resetStyles from \"../style/reset.module.css\"\nimport styles from \"./Ui89LinkUnderline.module.css\"\n\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport interface Ui89LinkUnderlineProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkUnderline(props: Ui89LinkUnderlineProps) {\n const overrides = useUi89Overrides()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled =\n props.disabled || ((props.autoDisableOnClick ?? true) && clicking)\n\n async function onClick(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 try {\n setClicking(true)\n\n if (props.onClick !== undefined) {\n // A function takes over control.\n e.preventDefault()\n await props.onClick()\n } else if (props.href !== undefined) {\n if (props.href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(props.href)\n }\n }\n } else {\n // Do nothing.\n e.preventDefault()\n }\n } finally {\n setClicking(false)\n }\n }\n\n let containerClass = [styles.link].join(\" \")\n\n return (\n <a\n className={`${resetStyles.a} ${containerClass}`}\n role=\"link\"\n href={props.href}\n onClick={onClick}\n >\n {props.children}\n </a>\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 Ui89MenuBarPropsItem {\n label: React.ReactNode\n onClick?: () => void\n children?: Ui89MenuBarPropsItem[]\n}\n\nexport interface Ui89MenuBarProps {\n items: Ui89MenuBarPropsItem[]\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 interface Ui89SceneProps {\n look?: Ui89Look | string\n children: React.ReactNode\n}\n\nexport function Ui89Scene({ look = Ui89Look.main, children }: Ui89SceneProps) {\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\nexport interface Ui89ModalDialogProps {\n open: boolean\n size?: string\n children?: React.ReactNode\n topCenter?: React.ReactNode\n onRequestClose?: () => void\n}\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}: Ui89ModalDialogProps) {\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 interface Ui89NameValuePairProps {\n name: React.ReactNode\n value: React.ReactNode\n leftMaxWidth?: number\n}\n\nexport function Ui89NameValuePair({\n name,\n value,\n leftMaxWidth,\n}: Ui89NameValuePairProps) {\n return (\n <div className={style.nameValuePair}>\n <div\n className={style.nameValuePair__nameWrapper}\n style={{ maxWidth: `${leftMaxWidth}px` }}\n >\n <div className={style.nameValuePair__name}>{name}</div>\n <div className={style.nameValuePair__dots}></div>\n </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 interface Ui89SpaceVerticalProps {\n gap?: number\n}\n\nexport function Ui89SpaceVertical({ gap = 1 }: Ui89SpaceVerticalProps) {\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 interface Ui89ShortcutProps {\n imageUrl: string\n label: React.ReactNode\n onClick?: () => void\n}\n\nexport function Ui89Shortcut({\n imageUrl,\n label,\n onClick = () => {},\n}: Ui89ShortcutProps) {\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\nexport interface Ui89SpacePaddingProps {\n gap?: number\n gapVertical?: number\n gapHorizontal?: number\n gapTop?: number\n gapRight?: number\n gapBottom?: number\n gapLeft?: number\n children?: React.ReactNode\n}\n\nexport function Ui89SpacePadding(props: Ui89SpacePaddingProps) {\n const gap = props.gap ?? 1\n\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${props.gapTop ?? props.gapVertical ?? gap})`,\n paddingRight: `calc(var(--ui89-safe-space) * ${props.gapRight ?? props.gapHorizontal ?? gap})`,\n paddingBottom: `calc(var(--ui89-safe-space) * ${props.gapBottom ?? props.gapVertical ?? gap})`,\n paddingLeft: `calc(var(--ui89-safe-space) * ${props.gapLeft ?? props.gapHorizontal ?? gap})`,\n }\n\n return <div style={style}>{props.children}</div>\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: React.ReactNode\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: React.ReactNode\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 interface Ui89TagBoxProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n children: React.ReactNode\n}\n\nexport function Ui89TagBox({ theme, children }: Ui89TagBoxProps) {\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\nexport interface Ui89ThemeBackgroundProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\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 interface Ui89TitleBoxProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleBox({ children }: Ui89TitleBoxProps) {\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 interface Ui89TitleUnderlineProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleUnderline({ children }: Ui89TitleUnderlineProps) {\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\nexport interface Ui89ToasterOptions {\n theme?: Ui89Theme | keyof typeof 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 Ui89VirtualTablePropsColumnRenderHeaderParams<T> {\n index: number\n column: Ui89VirtualTablePropsColumn<T>\n}\n\nexport interface Ui89VirtualTablePropsColumnRenderBodyParams<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualTablePropsColumn<T> {\n width?: number\n renderHeader?: React.FC<Ui89VirtualTablePropsColumnRenderHeaderParams<T>>\n renderBody: React.FC<Ui89VirtualTablePropsColumnRenderBodyParams<T>>\n}\n\nexport interface Ui89VirtualTableProps<T> {\n rows?: T[]\n columns?: Ui89VirtualTablePropsColumn<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(i)\n }\n\n return offset\n }\n\n function isLastColumn(columnIndex: number): boolean {\n return columnIndex === columns.length - 1\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 (isLastColumn(columnIndex)) {\n classes.push(styles[\"cell--column-last\"])\n }\n\n return classes.join(\" \")\n }\n\n /**\n * The width of an entire row.\n */\n function rowWidth() {\n return getColumnHorizontalOffset(columns.length)\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\n <div\n className={styles.rowBorder}\n style={{ top: 0, transform: `translateY(${getRowHeight(0) + \"px\"})` }}\n ></div>\n </div>\n\n {children}\n </div>\n ))\n\n function renderRowBorder(columnIndex: number, style: React.CSSProperties) {\n if (!isLastColumn(columnIndex)) {\n // Do nothing.\n return\n }\n\n let rowBorderStyle = {\n ...style,\n\n // Will want to stretch width.\n left: 0,\n right: 0,\n width: undefined,\n }\n\n return <div className={styles.rowBorder} style={rowBorderStyle}></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 <>\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 {renderRowBorder(columnIndex, style)}\n </>\n )}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </div>\n ) : (\n <div className={styles.empty}>\n <Ui89TagBox theme=\"warning\">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.
|
|
4
|
+
"version": "0.29.0",
|
|
5
5
|
"author": "Daniel Araujo",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"files": [
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
"vite-plugin-svgr": "^4.3.0"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
+
"react-datepicker": "^7.6.0",
|
|
77
78
|
"react-toastify": "^11.0.2",
|
|
78
79
|
"react-virtualized-auto-sizer": "^1.0.24",
|
|
79
80
|
"react-window": "^1.8.10",
|