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