react-ui89 0.65.0 → 0.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/Ui89BoxShadow.d.ts +18 -0
- package/dist/esm/components/Ui89BoxShadow.stories.d.ts +10 -0
- package/dist/esm/components/Ui89LinkBracket.d.ts +10 -0
- package/dist/esm/components/Ui89LinkBracket.stories.d.ts +10 -0
- package/dist/esm/components/Ui89SpaceHorizontal.d.ts +5 -0
- package/dist/esm/components/Ui89SpaceHorizontal.stories.d.ts +6 -0
- package/dist/esm/components/Ui89TitleBracket.d.ts +6 -0
- package/dist/esm/components/Ui89TitleBracket.stories.d.ts +9 -0
- package/dist/esm/components/Ui89TitleSideLine.d.ts +6 -0
- package/dist/esm/components/Ui89TitleSideLine.stories.d.ts +9 -0
- package/dist/esm/components/Ui89TitleSpace.d.ts +6 -0
- package/dist/esm/components/Ui89TitleSpace.stories.d.ts +9 -0
- package/dist/esm/examples/README.stories.d.ts +1 -0
- package/dist/esm/index.css +6 -2
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.js +47 -8
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./Ui89BoxShadow.css";
|
|
3
|
+
export interface Ui89BoxShadowProps {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* The size of the shadow gap.
|
|
7
|
+
*/
|
|
8
|
+
gap?: number;
|
|
9
|
+
/**
|
|
10
|
+
* The size of the shadow row gap.
|
|
11
|
+
*/
|
|
12
|
+
rowGap?: number;
|
|
13
|
+
/**
|
|
14
|
+
* The size of the shadow column gap.
|
|
15
|
+
*/
|
|
16
|
+
columnGap?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function Ui89BoxShadow({ children, gap, rowGap, columnGap, }: Ui89BoxShadowProps): React.JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89BoxShadow } from "./Ui89BoxShadow";
|
|
3
|
+
declare const meta: Meta<typeof Ui89BoxShadow>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const DisplayInlineBlockChild: Story;
|
|
8
|
+
export declare const WithRowGap: Story;
|
|
9
|
+
export declare const WithColumnGap: Story;
|
|
10
|
+
export declare const WithRowAndColumnGap: Story;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./Ui89LinkBracket.css";
|
|
3
|
+
export interface Ui89LinkBracketProps {
|
|
4
|
+
onClick?: () => void | Promise<void>;
|
|
5
|
+
href?: string;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
autoDisableOnClick?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function Ui89LinkBracket({ children, ...props }: Ui89LinkBracketProps): React.JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89LinkBracket } from "./Ui89LinkBracket";
|
|
3
|
+
import { Ui89OverrideProps } from "../Ui89Provider";
|
|
4
|
+
declare const meta: Meta<typeof Ui89LinkBracket>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof Ui89LinkBracket>;
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
export declare const AsLink: StoryObj<Ui89OverrideProps>;
|
|
9
|
+
export declare const AsButton: Story;
|
|
10
|
+
export declare const Disabled: Story;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89SpaceHorizontal } from "./Ui89SpaceHorizontal";
|
|
3
|
+
declare const meta: Meta<typeof Ui89SpaceHorizontal>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Gap: Story;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89TitleBracket } from "./Ui89TitleBracket";
|
|
3
|
+
declare const meta: Meta<typeof Ui89TitleBracket>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Ellipsis: Story;
|
|
8
|
+
export declare const WithThemeBackground: Story;
|
|
9
|
+
export declare const WithCard: Story;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89TitleSideLine } from "./Ui89TitleSideLine";
|
|
3
|
+
declare const meta: Meta<typeof Ui89TitleSideLine>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Ellipsis: Story;
|
|
8
|
+
export declare const WithThemeBackground: Story;
|
|
9
|
+
export declare const WithCard: Story;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89TitleSpace } from "./Ui89TitleSpace";
|
|
3
|
+
declare const meta: Meta<typeof Ui89TitleSpace>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Ellipsis: Story;
|
|
8
|
+
export declare const WithThemeBackground: Story;
|
|
9
|
+
export declare const WithCard: Story;
|
package/dist/esm/index.css
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
.ui89-typo-big{font-family:monospace;font-size:var(--ui89-font-size-big);line-height:25px;}.ui89-typo-normal{font-family:monospace;font-size:var(--ui89-font-size-normal);line-height:16px;}.ui89-typo-normal-bold{font-family:monospace;font-size:var(--ui89-font-size-normal);line-height:16px;font-weight:bold;}.ui89-typo-small{font-family:monospace;font-size:var(--ui89-font-size-small);line-height:16px;}.ui89-typo-small-bold{font-family:monospace;font-size:var(--ui89-font-size-small);line-height:16px;font-weight:bold;}.ui89-typo-special{font-family:monospace;font-size:var(--ui89-font-size-small);font-weight:bold;}
|
|
4
4
|
.ui-89-reset-a{text-decoration:none;}.ui-89-reset-button{background:none;padding:0;border:0;}
|
|
5
5
|
.ui89-chosen-theme-primary{--ui89-chosen-theme-text-color:var(--ui89-theme-primary-text-color);--ui89-chosen-theme-text-disabled-color:var(--ui89-palette-light-gray);--ui89-chosen-theme-bg-color:var(--ui89-theme-primary-bg-color);}.ui89-chosen-theme-secondary{--ui89-chosen-theme-text-color:var(--ui89-theme-secondary-text-color);--ui89-chosen-theme-text-disabled-color:var(--ui89-palette-light-gray);--ui89-chosen-theme-bg-color:var(--ui89-theme-secondary-bg-color);}.ui89-chosen-theme-info{--ui89-chosen-theme-text-color:var(--ui89-theme-info-text-color);--ui89-chosen-theme-text-disabled-color:var(--ui89-palette-light-gray);--ui89-chosen-theme-bg-color:var(--ui89-theme-info-bg-color);}.ui89-chosen-theme-success{--ui89-chosen-theme-text-color:var(--ui89-theme-success-text-color);--ui89-chosen-theme-text-disabled-color:var(--ui89-palette-light-gray);--ui89-chosen-theme-bg-color:var(--ui89-theme-success-bg-color);}.ui89-chosen-theme-warning{--ui89-chosen-theme-text-color:var(--ui89-theme-warning-text-color);--ui89-chosen-theme-text-disabled-color:var(--ui89-palette-light-gray);--ui89-chosen-theme-bg-color:var(--ui89-theme-warning-bg-color);}.ui89-chosen-theme-danger{--ui89-chosen-theme-text-color:var(--ui89-theme-danger-text-color);--ui89-chosen-theme-text-disabled-color:var(--ui89-palette-light-gray);--ui89-chosen-theme-bg-color:var(--ui89-theme-danger-bg-color);}
|
|
6
|
+
.ui89-box-shadow{display:grid;padding-right:var(--ui89-box-shadow-column-gap);padding-bottom:var(--ui89-box-shadow-row-gap);position:relative;}.ui89-box-shadow>*{}.ui89-box-shadow__right{display:block;position:absolute;right:0;bottom:0;height:calc(100% - var(--ui89-box-shadow-row-gap));width:var(--ui89-box-shadow-column-gap);box-sizing:border-box;background:black;z-index:0;}.ui89-box-shadow__bottom{display:block;position:absolute;right:0;bottom:0;width:calc(100% - var(--ui89-box-shadow-column-gap));height:var(--ui89-box-shadow-row-gap);box-sizing:border-box;background:black;z-index:0;}
|
|
6
7
|
.ui89-button{display:inline-grid;height:fit-content;position:relative;}.ui89-button--size-standard .ui89-button__button{height:22px;padding:0 calc(var(--ui89-safe-space) * 2);min-width:60px;}.ui89-button--size-square{max-width:fit-content;}.ui89-button__implementation{padding:0;border:0;}.ui89-button--size-square .ui89-button__button{width:22px;height:22px;flex-basis:22px;overflow:hidden;}.ui89-button__button{display:flex;justify-content:center;align-items:center;border:0;color:var(--ui89-chosen-theme-text-color);background-color:var(--ui89-chosen-theme-bg-color);border-radius:1px;font-weight:bold;user-select:none;text-align:center;box-sizing:border-box;border:1px solid #00000010;transition:transform var(--ui89-animation-speed);max-width:100%;white-space:nowrap;position:relative;cursor:var(--ui89-cursor-pointer);}.ui89-button__button__content{min-width:0;}.ui89-button__button:before{position:absolute;inset:0;}.ui89-button__button--block{display:flex;}.ui89-button__button:hover:not(.ui89-button__button--disabled):not(.ui89-button__button--active):before{content:"";background-color:#ffffff40;cursor:var(--ui89-cursor-pointer);}.ui89-button__button:active:not(.ui89-button__button--disabled),.ui89-button__button--active{transform:translate3d(calc(var(--ui89-safe-space) / 2),calc(var(--ui89-safe-space) / 2),0);}.ui89-button__button:active:not(.ui89-button__button--disabled):not(.ui89-button__button--active):before{content:none;background-color:#00000040;cursor:var(--ui89-cursor-pointer);}.ui89-button__button--disabled{opacity:0.5;cursor:var(--ui89-cursor-default);}
|
|
7
8
|
.ui89-text-unbreakable{white-space:nowrap;}.ui89-text-ellipsis{overflow:hidden;text-overflow:ellipsis;}.ui89-text-single-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.ui89-text-single-line--ellipsis-left{direction:rtl;}
|
|
8
|
-
.ui89-
|
|
9
|
-
.ui89-card{background:var(--ui89-scene-card-bg-color);color:var(--ui89-scene-card-text-color);border-radius:var(--ui89-box-border-radius);position:relative;box-shadow:rgb(0 0 0 / 5%) 0px 1px 2px 0px;border-top:calc(var(--ui89-safe-space)) solid #ffffff20;border-left:calc(var(--ui89-safe-space)) solid #ffffff20;border-right:calc(var(--ui89-safe-space)) solid #00000040;border-bottom:calc(var(--ui89-safe-space)) solid #00000040;padding:calc(var(--ui89-safe-space) / 4) calc(var(--ui89-safe-space) / 2);border:1px solid var(--ui89-scene-card-text-color);display:flex;flex-direction:column;}.ui89-card>*{flex:1;}.ui89-card__inside{border:1px solid white;padding:calc(var(--ui89-safe-space));}.ui89-card__top-left{position:absolute;bottom:100%;left:0;padding-left:var(--ui89-safe-space);transform:translateY(50%);max-width:100%;}.ui89-card__top-center{position:absolute;bottom:100%;left:50%;transform:translate(-50%,50%);padding:0 var(--ui89-safe-space);max-width:100%;box-sizing:border-box;}.ui89-card__top-right{position:absolute;bottom:100%;right:0;padding-right:var(--ui89-safe-space);transform:translateY(50%);max-width:100%;}.ui89-card__bottom-left{position:absolute;top:100%;left:0;padding-left:var(--ui89-safe-space);transform:translateY(-50%);max-width:100%;}.ui89-card__bottom-center{position:absolute;top:100%;left:50%;transform:translate(-50%,-50%);padding:0 var(--ui89-safe-space);max-width:100%;box-sizing:border-box;}.ui89-card__bottom-right{position:absolute;top:100%;right:0;padding-right:var(--ui89-safe-space);transform:translateY(-50%);max-width:100%;}.ui89-card__horizontal-connection{margin:0 calc(var(--ui89-safe-space) * -1);background:var(--ui89-scene-card-bg-color);}.ui89-card__horizontal-connection--overflow{margin:0 calc(var(--ui89-safe-space) * -1 - 1px);}
|
|
9
|
+
.ui89-card{background:var(--ui89-scene-card-bg-color);color:var(--ui89-scene-card-text-color);border-radius:var(--ui89-box-border-radius);position:relative;box-shadow:rgb(0 0 0 / 5%) 0px 1px 2px 0px;padding:calc(var(--ui89-safe-space)) calc(var(--ui89-safe-space) / 2);display:flex;flex-direction:column;}.ui89-card>*{flex:1;}.ui89-card__inside{border:1px solid white;padding:calc(var(--ui89-safe-space));}.ui89-card__top-left{position:absolute;bottom:100%;left:0;padding-left:var(--ui89-safe-space);padding-top:calc(var(--ui89-safe-space) * 2);transform:translateY(50%);max-width:100%;}.ui89-card__top-center{position:absolute;bottom:100%;left:50%;transform:translate(-50%,50%);padding:0 var(--ui89-safe-space);padding-top:calc(var(--ui89-safe-space) * 2);max-width:100%;box-sizing:border-box;}.ui89-card__top-right{position:absolute;bottom:100%;right:0;padding-right:var(--ui89-safe-space);padding-top:calc(var(--ui89-safe-space) * 2);transform:translateY(50%);max-width:100%;}.ui89-card__bottom-left{position:absolute;top:100%;left:0;padding-left:var(--ui89-safe-space);padding-bottom:calc(var(--ui89-safe-space) * 2);transform:translateY(-50%);max-width:100%;}.ui89-card__bottom-center{position:absolute;top:100%;left:50%;transform:translate(-50%,-50%);padding:0 var(--ui89-safe-space);padding-bottom:calc(var(--ui89-safe-space) * 2);max-width:100%;box-sizing:border-box;}.ui89-card__bottom-right{position:absolute;top:100%;right:0;padding-right:var(--ui89-safe-space);padding-bottom:calc(var(--ui89-safe-space) * 2);transform:translateY(-50%);max-width:100%;}.ui89-card__horizontal-connection{margin:0 calc(var(--ui89-safe-space) * -1);background:var(--ui89-scene-card-bg-color);}.ui89-card__horizontal-connection--overflow{margin:0 calc(var(--ui89-safe-space) * -1 - 1px);}
|
|
10
10
|
.ui89-scene{background-color:var(--ui89-scene-bg-color);color:var(--ui89-scene-text-color);overflow:visible;}
|
|
11
11
|
.ui-89-look-main{--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:rgba(255,255,255,0.2);--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);}.ui-89-look-side{--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:rgba(255,255,255,0.2);--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);}
|
|
12
12
|
.ui89-scrollbar ::-webkit-scrollbar{background:var(--ui89-scene-bg-color);width:calc(var(--ui89-safe-space) * 2);}.ui89-scrollbar ::-webkit-scrollbar-track{background:var(--ui89-scene-bg-color);background:var(--ui89-palette-dark-gray);border:1px solid var(--ui89-palette-dark-gray);}.ui89-scrollbar ::-webkit-scrollbar-thumb{background:var(--ui89-palette-light-gray);border:1px solid transparent;}.ui89-scrollbar ::-webkit-scrollbar-thumb:vertical{border-top-color:var(--ui89-palette-dark-gray);border-bottom-color:var(--ui89-palette-dark-gray);}.ui89-scrollbar ::-webkit-scrollbar-thumb:horizontal{border-left-color:var(--ui89-palette-dark-gray);border-right-color:var(--ui89-palette-dark-gray);}.ui89-scrollbar ::-webkit-scrollbar-button:single-button{background-color:#bbbbbb;display:block;border-style:solid;height:calc(var(--ui89-safe-space) * 2);}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:vertical:decrement{border-width:0 var(--ui89-safe-space) var(--ui89-safe-space) var(--ui89-safe-space);border-color:transparent transparent var(--ui89-palette-black) transparent;}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:vertical:decrement:active{background:var(--ui89-palette-dark-gray);}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:vertical:increment{border-width:var(--ui89-safe-space) var(--ui89-safe-space) 0 var(--ui89-safe-space);border-color:var(--ui89-palette-black) transparent transparent transparent;}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:vertical:increment:active{background:var(--ui89-palette-dark-gray);}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:horizontal:decrement{border-width:var(--ui89-safe-space) var(--ui89-safe-space) var(--ui89-safe-space) 0;border-color:transparent var(--ui89-palette-black) transparent transparent;}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:horizontal:decrement:active{background:var(--ui89-palette-dark-gray);}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:horizontal:increment{border-width:var(--ui89-safe-space) 0 var(--ui89-safe-space) var(--ui89-safe-space);border-color:transparent transparent transparent var(--ui89-palette-black);}.ui89-scrollbar ::-webkit-scrollbar-button:single-button:horizontal:increment:active{background:var(--ui89-palette-dark-gray);}
|
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
.ui89-input-check-text{display:inline-block;cursor:pointer;user-select:none;}
|
|
20
20
|
.ui89-input-file-upload{display:flex;gap:calc(var(--ui89-safe-space) * 1);align-items:center;word-break:initial;}.ui89-input-file-upload__info{min-width:0;}
|
|
21
21
|
.ui89-input-select{position:relative;}.ui89-input-select__menu{overflow:auto;background:var(--ui89-input-bg-color);color:var(--ui89-input-text-color);display:flex;flex-direction:column;animation:ui89-input-select__appear var(--ui89-animation-speed);}@keyframes ui89-input-select__appear{from{transform:translateY(-5px);}to{transform:translateY(0%);}}.ui89-input-select__menu__item{display:inline-flex;flex-direction:column;justify-content:center;min-width:100%;height:100%;background:var(--ui89-input-bg-color);color:var(--ui89-input-text-color);padding:0 var(--ui89-safe-space);white-space:nowrap;user-select:none;box-sizing:border-box;}.ui89-input-select__menu__item:not(.ui89-input-select__menu__item--disabled){cursor:pointer;}.ui89-input-select__menu__item:not(.ui89-input-select__menu__item--disabled):hover,.ui89-input-select__menu__item.ui89-input-select__menu__item--selected{background:var(--ui89-input-text-color);color:var(--ui89-input-bg-color);}.ui89-input-select__menu__item--disabled{color:var(--ui89-palette-white);}
|
|
22
|
+
.ui89-link-bracket{cursor:pointer;user-select:none;color:currentColor;}.ui89-link-bracket:hover{color:var(--ui89-scene-bg-color);background-color:var(--ui89-scene-text-color);}
|
|
22
23
|
.ui89-link-stealth{color:currentColor;cursor:pointer;}.ui89-link-stealth:hover{color:currentColor;background:var(--ui89-scene-highlight-color);}
|
|
24
|
+
.ui89-title-side-line{display:flex;align-items:center;gap:var(--ui89-safe-space);}.ui89-title-side-line__line{flex:1;overflow:hidden;}.ui89-title-side-line__inside{min-width:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
|
|
25
|
+
.ui89-title-bracket{display:flex;align-items:baseline;line-height:1;}.ui89-title-bracket__bracket{flex:0;background:var(--ui89-scene-card-bg-color);color:var(--ui89-scene-card-text-color);}.ui89-title-bracket__inside{padding:0 calc(var(--ui89-safe-space));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--ui89-scene-card-bg-color);color:var(--ui89-scene-card-text-color);}
|
|
26
|
+
.ui89-title-space{display:flex;align-items:baseline;line-height:1;}.ui89-title-space__inside{padding:0 calc(var(--ui89-safe-space));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--ui89-scene-card-bg-color);color:var(--ui89-scene-card-text-color);}
|
|
23
27
|
.ui89-link-underline{color:currentColor;text-decoration:underline;cursor:pointer;}.ui89-link-underline:hover{color:currentColor;}
|
|
24
28
|
.ui89-menu-bar{display:flex;height:16px;color:var(--ui89-theme-primary-text-color);background:var(--ui89-theme-primary-bg-color);}.ui89-menu-bar__item{cursor:var(--ui89-cursor-pointer);padding:0 calc(var(--ui89-safe-space) * 2);}.ui89-menu-bar__item:hover,.ui89-menu-bar__item:active{color:var(--ui89-theme-primary-bg-color);background:var(--ui89-theme-primary-text-color);}
|
|
25
29
|
.ui89-menu-card__list{}.ui89-menu-card__item{padding:0 calc(var(--ui89-safe-space));cursor:pointer;display:flex;justify-content:space-between;align-items:center;}.ui89-menu-card__item:hover:not(.ui89-menu-card__item--disabled){color:var(--ui89-scene-card-bg-color);background-color:var(--ui89-scene-card-text-color);}.ui89-menu-card__item--disabled{cursor:not-allowed;color:var(--ui89-scene-text-subtle-color);}.ui89-menu-card__separator{padding:0;}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import "./style/global.css";
|
|
|
2
2
|
export { Ui89Theme, Ui89Look } from "./theme";
|
|
3
3
|
export { Ui89Breadcrumbs } from "./components/Ui89Breadcrumbs";
|
|
4
4
|
export type { Ui89BreadcrumbsProps, Ui89BreadcrumbsPropsItem, Ui89BreadcrumbsPropsOnSelect, } from "./components/Ui89Breadcrumbs";
|
|
5
|
+
export { Ui89BoxShadow } from "./components/Ui89BoxShadow";
|
|
6
|
+
export type { Ui89BoxShadowProps } from "./components/Ui89BoxShadow";
|
|
5
7
|
export { Ui89Button } from "./components/Ui89Button";
|
|
6
8
|
export type { Ui89ButtonProps, Ui89ButtonPropsSize, Ui89ButtonPropsType, } from "./components/Ui89Button";
|
|
7
9
|
export { Ui89Card } from "./components/Ui89Card";
|
|
@@ -38,8 +40,16 @@ export { Ui89InputTextArea } from "./components/Ui89InputTextArea";
|
|
|
38
40
|
export type { Ui89InputTextAreaProps } from "./components/Ui89InputTextArea";
|
|
39
41
|
export { Ui89InputTextNumber } from "./components/Ui89InputTextNumber";
|
|
40
42
|
export type { Ui89InputTextNumberProps } from "./components/Ui89InputTextNumber";
|
|
43
|
+
export { Ui89LinkBracket } from "./components/Ui89LinkBracket";
|
|
44
|
+
export type { Ui89LinkBracketProps } from "./components/Ui89LinkBracket";
|
|
41
45
|
export { Ui89LinkStealth } from "./components/Ui89LinkStealth";
|
|
42
46
|
export type { Ui89LinkStealthProps } from "./components/Ui89LinkStealth";
|
|
47
|
+
export { Ui89TitleSideLine } from "./components/Ui89TitleSideLine";
|
|
48
|
+
export type { Ui89TitleSideLineProps } from "./components/Ui89TitleSideLine";
|
|
49
|
+
export { Ui89TitleBracket } from "./components/Ui89TitleBracket";
|
|
50
|
+
export type { Ui89TitleBracketProps } from "./components/Ui89TitleBracket";
|
|
51
|
+
export { Ui89TitleSpace } from "./components/Ui89TitleSpace";
|
|
52
|
+
export type { Ui89TitleSpaceProps } from "./components/Ui89TitleSpace";
|
|
43
53
|
export { Ui89LinkUnderline } from "./components/Ui89LinkUnderline";
|
|
44
54
|
export type { Ui89LinkUnderlineProps } from "./components/Ui89LinkUnderline";
|
|
45
55
|
export { Ui89MenuBar } from "./components/Ui89MenuBar";
|
|
@@ -58,6 +68,8 @@ export { Ui89Scene } from "./components/Ui89Scene";
|
|
|
58
68
|
export type { Ui89SceneProps } from "./components/Ui89Scene";
|
|
59
69
|
export { Ui89Shortcut } from "./components/Ui89Shortcut";
|
|
60
70
|
export type { Ui89ShortcutProps } from "./components/Ui89Shortcut";
|
|
71
|
+
export { Ui89SpaceHorizontal } from "./components/Ui89SpaceHorizontal";
|
|
72
|
+
export type { Ui89SpaceHorizontalProps } from "./components/Ui89SpaceHorizontal";
|
|
61
73
|
export { Ui89SpacePadding } from "./components/Ui89SpacePadding";
|
|
62
74
|
export type { Ui89SpacePaddingProps } from "./components/Ui89SpacePadding";
|
|
63
75
|
export { Ui89SpaceVertical } from "./components/Ui89SpaceVertical";
|
package/dist/esm/index.js
CHANGED
|
@@ -99,10 +99,14 @@ function Ui89Breadcrumbs({ theme = Ui89Theme.primary, items, getLabel, getUrl, o
|
|
|
99
99
|
})));
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
function
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
function Ui89BoxShadow({ children, gap = 1, rowGap, columnGap, }) {
|
|
103
|
+
const style = {
|
|
104
|
+
"--ui89-box-shadow-row-gap": `calc(var(--ui89-safe-space) * ${rowGap ?? gap})`,
|
|
105
|
+
"--ui89-box-shadow-column-gap": `calc(var(--ui89-safe-space) * ${columnGap ?? gap})`,
|
|
106
|
+
};
|
|
107
|
+
return (React__default.createElement("span", { className: "ui89-box-shadow", style: style },
|
|
108
|
+
React__default.createElement("span", { className: "ui89-box-shadow__bottom" }),
|
|
109
|
+
React__default.createElement("span", { className: "ui89-box-shadow__right" }),
|
|
106
110
|
children));
|
|
107
111
|
}
|
|
108
112
|
|
|
@@ -184,7 +188,7 @@ function Ui89Button({ theme = Ui89Theme.primary, size = Ui89ButtonPropsSize.stan
|
|
|
184
188
|
clicking ? "ui89-button__button--active" : undefined,
|
|
185
189
|
].join(" ");
|
|
186
190
|
return (React__default.createElement("div", { className: containerClass },
|
|
187
|
-
React__default.createElement(
|
|
191
|
+
React__default.createElement(Ui89BoxShadow, null, href ? (React__default.createElement("a", { className: "ui-89-reset-a", role: "button", href: href, onClick: onAnchorClick },
|
|
188
192
|
React__default.createElement("span", { className: buttonClass },
|
|
189
193
|
React__default.createElement("div", { className: "ui89-button__button__content" }, children)))) : (React__default.createElement("button", { className: "ui-89-reset-button", type: type || "button", onClick: onButtonClick, disabled: localDisabled },
|
|
190
194
|
React__default.createElement("span", { className: buttonClass },
|
|
@@ -795,7 +799,7 @@ function Ui89DateTimePicker(props) {
|
|
|
795
799
|
}
|
|
796
800
|
return (React__default.createElement(Ui89Popover, { open: open, onOpenChange: setOpen, popoverOverflowMaxWidth: 360, renderContainer: ({ setRef, props: popoverProps }) => (React__default.createElement("div", { className: "ui89-date-time-picker", ref: setRef, ...popoverProps },
|
|
797
801
|
React__default.createElement(Ui89InputText, { value: inputValue, onChange: handleInputChange, placeholder: dateFormat$1 }))), renderPopover: () => (React__default.createElement("div", { style: { maxWidth: "360px" } },
|
|
798
|
-
React__default.createElement(
|
|
802
|
+
React__default.createElement(Ui89BoxShadow, null,
|
|
799
803
|
React__default.createElement(Ui89Card, null, renderCalendar())))) }));
|
|
800
804
|
}
|
|
801
805
|
|
|
@@ -1278,10 +1282,38 @@ function Ui89InputTextArea(props) {
|
|
|
1278
1282
|
].join(" "), value: delayedState.value, onChange: (e) => delayedState.onChange(e.target.value), onBlur: delayedState.onBlur, onFocus: delayedState.onFocus, rows: props.rows ?? 4, placeholder: props.placeholder, disabled: props.disabled })));
|
|
1279
1283
|
}
|
|
1280
1284
|
|
|
1285
|
+
function Ui89LinkBracket({ children, ...props }) {
|
|
1286
|
+
return (React__default.createElement(Ui89LinkBase, { className: "ui89-link-bracket", ...props },
|
|
1287
|
+
"[",
|
|
1288
|
+
children,
|
|
1289
|
+
"]"));
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1281
1292
|
function Ui89LinkStealth(props) {
|
|
1282
1293
|
return React__default.createElement(Ui89LinkBase, { className: "ui89-link-stealth", ...props });
|
|
1283
1294
|
}
|
|
1284
1295
|
|
|
1296
|
+
const Ui89TitleSideLine = ({ children }) => {
|
|
1297
|
+
return (React__default.createElement("div", { className: "ui89-title-side-line" },
|
|
1298
|
+
React__default.createElement("div", { className: "ui89-title-side-line__line" },
|
|
1299
|
+
React__default.createElement(Ui89Hr, null)),
|
|
1300
|
+
React__default.createElement("div", { className: "ui89-title-side-line__inside" }, children),
|
|
1301
|
+
React__default.createElement("div", { className: "ui89-title-side-line__line" },
|
|
1302
|
+
React__default.createElement(Ui89Hr, null))));
|
|
1303
|
+
};
|
|
1304
|
+
|
|
1305
|
+
const Ui89TitleBracket = ({ children }) => {
|
|
1306
|
+
return (React__default.createElement("div", { className: "ui89-title-bracket" },
|
|
1307
|
+
React__default.createElement("span", { className: "ui89-title-bracket__bracket" }, "["),
|
|
1308
|
+
React__default.createElement("div", { className: "ui89-title-bracket__inside" }, children),
|
|
1309
|
+
React__default.createElement("span", { className: "ui89-title-bracket__bracket" }, "]")));
|
|
1310
|
+
};
|
|
1311
|
+
|
|
1312
|
+
const Ui89TitleSpace = ({ children }) => {
|
|
1313
|
+
return (React__default.createElement("div", { className: "ui89-title-space" },
|
|
1314
|
+
React__default.createElement("div", { className: "ui89-title-space__inside" }, children)));
|
|
1315
|
+
};
|
|
1316
|
+
|
|
1285
1317
|
function Ui89LinkUnderline(props) {
|
|
1286
1318
|
return React__default.createElement(Ui89LinkBase, { className: "ui89-link-underline", ...props });
|
|
1287
1319
|
}
|
|
@@ -1352,7 +1384,7 @@ function Ui89ModalDialog({ open, size, children, topCenter, onRequestClose, }) {
|
|
|
1352
1384
|
React__default.createElement("div", { className: "ui89-modal-dialog__content" },
|
|
1353
1385
|
React__default.createElement("div", { className: "ui89-modal-dialog__spacer" }),
|
|
1354
1386
|
React__default.createElement("div", { className: dialogBoxClass },
|
|
1355
|
-
React__default.createElement(
|
|
1387
|
+
React__default.createElement(Ui89BoxShadow, null,
|
|
1356
1388
|
React__default.createElement(GridExpandTrick, null,
|
|
1357
1389
|
React__default.createElement(Ui89Scene, null,
|
|
1358
1390
|
React__default.createElement(Ui89Card, { topCenter: topCenter },
|
|
@@ -1383,6 +1415,13 @@ function Ui89Shortcut({ imageUrl, label, onClick = () => { }, }) {
|
|
|
1383
1415
|
React__default.createElement("div", { className: `ui89-shortcut__label ui89-typo-small-bold`, onClick: onNativeClick }, label)));
|
|
1384
1416
|
}
|
|
1385
1417
|
|
|
1418
|
+
function Ui89SpaceHorizontal({ gap = 1 }) {
|
|
1419
|
+
const style = {
|
|
1420
|
+
paddingRight: `calc(var(--ui89-safe-space) * ${gap})`,
|
|
1421
|
+
};
|
|
1422
|
+
return React__default.createElement("span", { style: style });
|
|
1423
|
+
}
|
|
1424
|
+
|
|
1386
1425
|
function Ui89Tabs({ selected, onChange = () => { }, options = [], stretch, }) {
|
|
1387
1426
|
function handleOnChange(value) {
|
|
1388
1427
|
onChange(value);
|
|
@@ -1541,5 +1580,5 @@ const Ui89VirtualTable = React__default.memo((props) => {
|
|
|
1541
1580
|
React__default.createElement(Ui89TagBox, { theme: "warning" }, "Empty")))));
|
|
1542
1581
|
});
|
|
1543
1582
|
|
|
1544
|
-
export { Ui89Breadcrumbs, Ui89Button, Ui89Card, Ui89CardHorizontalConnection, Ui89DateTimePicker, Ui89DigitalClock, Ui89HighlightText, Ui89Hr, Ui89Indent, Ui89InputCheckBox, Ui89InputCheckList, Ui89InputCheckText, Ui89InputFileUpload, Ui89InputNumber, Ui89InputPassword, Ui89InputSelect, Ui89InputText, Ui89InputTextArea, Ui89InputTextNumber, Ui89LinkStealth, Ui89LinkUnderline, Ui89Look, Ui89MenuBar, Ui89MenuCard, Ui89ModalDialog, Ui89NameValuePair, Ui89Popover, Ui89Provider, Ui89Scene, Ui89Shortcut, Ui89SpacePadding, Ui89SpaceVertical, Ui89TabbedCard, Ui89Tabs, Ui89TagBox, Ui89Theme, Ui89ThemeBackground, Ui89TitleBox, Ui89TitleUnderline, Ui89Toaster, Ui89VirtualList, Ui89VirtualTable, useUi89Toaster };
|
|
1583
|
+
export { Ui89BoxShadow, Ui89Breadcrumbs, Ui89Button, Ui89Card, Ui89CardHorizontalConnection, Ui89DateTimePicker, Ui89DigitalClock, Ui89HighlightText, Ui89Hr, Ui89Indent, Ui89InputCheckBox, Ui89InputCheckList, Ui89InputCheckText, Ui89InputFileUpload, Ui89InputNumber, Ui89InputPassword, Ui89InputSelect, Ui89InputText, Ui89InputTextArea, Ui89InputTextNumber, Ui89LinkBracket, Ui89LinkStealth, Ui89LinkUnderline, Ui89Look, Ui89MenuBar, Ui89MenuCard, Ui89ModalDialog, Ui89NameValuePair, Ui89Popover, Ui89Provider, Ui89Scene, Ui89Shortcut, Ui89SpaceHorizontal, Ui89SpacePadding, Ui89SpaceVertical, Ui89TabbedCard, Ui89Tabs, Ui89TagBox, Ui89Theme, Ui89ThemeBackground, Ui89TitleBox, Ui89TitleBracket, Ui89TitleSideLine, Ui89TitleSpace, Ui89TitleUnderline, Ui89Toaster, Ui89VirtualList, Ui89VirtualTable, useUi89Toaster };
|
|
1545
1584
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/theme.ts","../../src/Ui89Provider.tsx","../../src/components/private/LinkBase.tsx","../../src/components/Ui89Breadcrumbs.tsx","../../src/components/private/HoverShadow.tsx","../../src/components/Ui89Button.tsx","../../src/components/Ui89Card.tsx","../../src/components/Ui89CardHorizontalConnection.tsx","../../src/components/Ui89Scene.tsx","../../src/useZIndexer.ts","../../src/components/Ui89Popover.tsx","../../src/date-utils.ts","../../src/timeout.ts","../../src/useUpdatedRef.ts","../../src/useDelayedOnChange.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89DateTimePicker.tsx","../../src/components/private/TimeAnimation.tsx","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89SpacePadding.tsx","../../src/components/Ui89Indent.tsx","../../src/components/Ui89InputCheckBox.tsx","../../src/useResizeObserver.ts","../../src/useScrollYPosition.ts","../../src/components/Ui89VirtualList.tsx","../../src/components/Ui89InputCheckList.tsx","../../src/components/Ui89InputCheckText.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/private/RenderCallback.tsx","../../src/components/Ui89InputSelect.tsx","../../src/components/Ui89InputNumber.tsx","../../src/components/Ui89InputPassword.tsx","../../src/components/Ui89InputTextArea.tsx","../../src/components/Ui89LinkStealth.tsx","../../src/components/Ui89LinkUnderline.tsx","../../src/components/Ui89MenuBar.tsx","../../src/components/Ui89SpaceVertical.tsx","../../src/components/Ui89MenuCard.tsx","../../src/components/private/GridExpandTrick.tsx","../../src/components/private/ScrollContainer.tsx","../../src/components/Ui89ModalDialog.tsx","../../src/components/Ui89NameValuePair.tsx","../../src/images/shortcut.svg","../../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, useState } from \"react\"\nimport { createPortal as domCreatePortal } from \"react-dom\"\n\ntype RouterPush = (url: string) => void | Promise<void>\ntype CreatePortal = typeof domCreatePortal\n\ninterface Ui89OverrideType {\n routerPush?: RouterPush\n currentZIndex: number\n nextZIndex: () => number\n createPortal: CreatePortal\n}\n\nexport interface Ui89OverrideProps {\n children?: ReactNode\n routerPush?: RouterPush\n createPortal?: CreatePortal\n}\n\nconst Ui89Context = createContext<Ui89OverrideType>({\n currentZIndex: 1,\n nextZIndex: () => 1,\n createPortal: domCreatePortal,\n})\n\nexport const Ui89Provider: React.FC<Ui89OverrideProps> = ({\n routerPush,\n children,\n createPortal = domCreatePortal,\n}) => {\n const [zIndex, setZIndex] = useState<number>(1)\n\n function nextZIndex() {\n const next = zIndex + 1\n setZIndex(next)\n return next\n }\n\n return (\n <Ui89Context.Provider\n value={{ routerPush, currentZIndex: zIndex, nextZIndex, createPortal }}\n >\n {children}\n </Ui89Context.Provider>\n )\n}\n\nexport const useUi89 = (): Ui89OverrideType => {\n return useContext(Ui89Context)\n}\n","import React, { CSSProperties, useState } from \"react\"\n\nimport \"../../style/reset.css\"\n\nimport { useUi89 } from \"../../Ui89Provider\"\n\nexport interface Ui89LinkBaseProps {\n className?: string\n style?: CSSProperties\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkBase(props: Ui89LinkBaseProps) {\n const overrides = useUi89()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled =\n props.disabled || ((props.autoDisableOnClick ?? true) && clicking)\n\n async function onClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n e.preventDefault()\n return\n }\n\n try {\n setClicking(true)\n\n if (props.onClick !== undefined) {\n // A function takes over control.\n e.preventDefault()\n await props.onClick()\n } else if (props.href !== undefined) {\n if (props.href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n await overrides.routerPush(props.href)\n }\n }\n } else {\n // Do nothing.\n e.preventDefault()\n }\n } finally {\n setClicking(false)\n }\n }\n\n return (\n <a\n className={`ui-89-reset-a ${props.className}`}\n style={props.style}\n role=\"link\"\n href={props.href}\n onClick={onClick}\n >\n {props.children}\n </a>\n )\n}\n","import React, { useState } from \"react\"\n\nimport \"./Ui89Breadcrumbs.css\"\nimport \"../style/typo.css\"\nimport \"../style/reset.css\"\nimport \"../style/chosen-theme.css\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89 } from \"../Ui89Provider\"\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89BreadcrumbsPropsItem {\n label: React.ReactNode\n url?: string\n}\n\nexport interface Ui89BreadcrumbsProps<T> {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n items: T[]\n getLabel?: (item: T) => React.ReactNode\n getUrl?: (item: T) => string | undefined\n onSelect?: (item: T) => void | Promise<void>\n}\n\nexport function Ui89BreadcrumbsItem({\n index,\n label,\n url,\n onClick,\n}: {\n index: number\n label: React.ReactNode\n url?: string\n onClick?: () => void | Promise<void>\n}) {\n const style = { \"--ui89-index\": index } as React.CSSProperties\n\n return (\n <Ui89LinkBase\n className={`ui-89-reset-a ui89-breadcrumbs__item`}\n href={url}\n style={style}\n onClick={onClick}\n >\n <div className=\"ui89-breadcrumbs__item__background\"></div>\n {label}\n </Ui89LinkBase>\n )\n}\n\nexport function Ui89Breadcrumbs<T = Ui89BreadcrumbsPropsItem>({\n theme = Ui89Theme.primary,\n items,\n getLabel,\n getUrl,\n onSelect,\n}: Ui89BreadcrumbsProps<T>) {\n return (\n <div\n className={`ui89-breadcrumbs ui89-typo-special ui89-chosen-theme-${theme}`}\n >\n {[...items.entries()].reverse().map(([index, item]) => {\n const label = getLabel ? getLabel(item) : (item as any).label\n const url = getUrl ? getUrl(item) : (item as any).url\n\n const onClick = (() => {\n if (onSelect) {\n return () => {\n return onSelect(item)\n }\n } else {\n return undefined\n }\n })()\n\n return (\n <Ui89BreadcrumbsItem\n key={index}\n index={index}\n label={label}\n url={url}\n onClick={onClick}\n />\n )\n })}\n </div>\n )\n}\n","import React from \"react\"\nimport \"./HoverShadow.css\"\n\nexport default function HoverShadow({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <span className=\"ui89-hover-shadow\">\n <span className=\"ui89-hover-shadow__bottom\"></span>\n <span className=\"ui89-hover-shadow__right\"></span>\n {children}\n </span>\n )\n}\n","import React, { useState } from \"react\"\n\nimport \"./Ui89Button.css\"\nimport \"../style/text.css\"\nimport \"../style/typo.css\"\nimport \"../style/chosen-theme.css\"\nimport \"../style/reset.css\"\n\nimport HoverShadow from \"./private/HoverShadow\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89 } from \"../Ui89Provider\"\n\nexport enum Ui89ButtonPropsSize {\n standard = \"standard\",\n square = \"square\",\n}\n\nexport enum Ui89ButtonPropsType {\n submit = \"submit\",\n reset = \"reset\",\n}\n\nexport interface Ui89ButtonProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n size?: Ui89ButtonPropsSize | keyof typeof Ui89ButtonPropsSize\n block?: boolean\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n activated?: boolean\n type?: keyof typeof Ui89ButtonPropsType\n}\n\nexport function Ui89Button({\n theme = Ui89Theme.primary,\n size = Ui89ButtonPropsSize.standard,\n type,\n block,\n onClick,\n href,\n children,\n autoDisableOnClick = true,\n disabled,\n activated,\n}: Ui89ButtonProps) {\n const overrides = useUi89()\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 (onClick !== undefined) {\n // Takes precedence over href.\n\n // Prevent anchor tag from taking over navigation.\n e.preventDefault()\n\n await onClick()\n } else if (href !== undefined) {\n if (href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n // Prevent anchor tag from taking over navigation.\n e.preventDefault()\n\n await overrides.routerPush(href)\n }\n }\n }\n } finally {\n setClicking(false)\n }\n }\n\n async function onButtonClick(e: React.MouseEvent<HTMLButtonElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (onClick === undefined) {\n // No handler.\n return\n }\n\n await onClick()\n } finally {\n setClicking(false)\n }\n }\n\n let containerClass = [\"ui89-button\", `ui89-button--size-${size}`].join(\" \")\n\n let buttonClass = [\n \"ui89-button__button\",\n \"ui89-typo-special\",\n \"ui89-text-ellipsis\",\n `ui89-chosen-theme-${theme}`,\n activated ? \"ui89-button__button--active\" : undefined,\n block ? \"ui89-button__button--block\" : undefined,\n disabled ? \"ui89-button__button--disabled\" : undefined,\n clicking ? \"ui89-button__button--active\" : undefined,\n ].join(\" \")\n\n return (\n <div className={containerClass}>\n <HoverShadow>\n {href ? (\n <a\n className=\"ui-89-reset-a\"\n role=\"button\"\n href={href}\n onClick={onAnchorClick}\n >\n <span className={buttonClass}>\n <div className=\"ui89-button__button__content\">{children}</div>\n </span>\n </a>\n ) : (\n <button\n className=\"ui-89-reset-button\"\n type={type || \"button\"}\n onClick={onButtonClick}\n disabled={localDisabled}\n >\n <span className={buttonClass}>\n <div className=\"ui89-button__button__content\">{children}</div>\n </span>\n </button>\n )}\n </HoverShadow>\n </div>\n )\n}\n","import React from \"react\"\nimport \"./Ui89Card.css\"\n\nexport interface Ui89CardProps {\n topLeft?: React.ReactNode\n topRight?: React.ReactNode\n topCenter?: React.ReactNode\n bottomLeft?: React.ReactNode\n bottomRight?: React.ReactNode\n bottomCenter?: React.ReactNode\n children: React.ReactNode\n}\n\nexport function Ui89Card(props: Ui89CardProps) {\n return (\n <div className={`ui89-card`}>\n <div className=\"ui89-card__inside\">\n {props.topLeft && (\n <div className=\"ui89-card__top-left\">{props.topLeft}</div>\n )}\n {props.topCenter && (\n <div className=\"ui89-card__top-center\">{props.topCenter}</div>\n )}\n {props.topRight && (\n <div className=\"ui89-card__top-right\">{props.topRight}</div>\n )}\n\n {props.children}\n\n {props.bottomLeft && (\n <div className=\"ui89-card__bottom-left\">{props.bottomLeft}</div>\n )}\n {props.bottomCenter && (\n <div className=\"ui89-card__bottom-center\">{props.bottomCenter}</div>\n )}\n {props.bottomRight && (\n <div className=\"ui89-card__bottom-right\">{props.bottomRight}</div>\n )}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport \"./Ui89Card.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={`ui89-card__horizontal-connection ${overflow ? \"ui89-card__horizontal-connection--overflow\" : \"\"}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Look } from \"../theme\"\n\nimport \"./Ui89Scene.css\"\nimport \"../style/look.css\"\nimport \"../style/typo.css\"\nimport \"../style/scrollbar.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={`ui89-scene ui-89-look-${look} ui89-typo-normal ui89-scrollbar`}\n >\n {children}\n </div>\n )\n}\n","import { useEffect, useState } from \"react\"\nimport { useUi89 } from \"./Ui89Provider\"\n\ninterface ZIndexer {\n value: number\n}\n\nexport function useZIndexer(open: boolean): ZIndexer {\n const overrides = useUi89()\n const [value, setValue] = useState<number>(overrides.currentZIndex)\n\n useEffect(() => {\n if (open) {\n setValue(overrides.nextZIndex())\n }\n }, [open])\n\n return {\n value,\n }\n}\n","import React from \"react\"\nimport {\n useFloating,\n autoUpdate,\n size,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n FloatingFocusManager,\n FloatingPortal,\n Placement,\n} from \"@floating-ui/react\"\nimport \"../style/text.css\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport { useZIndexer } from \"../useZIndexer\"\n\nexport enum Ui89PopoverPropsPlacement {\n top = \"top\",\n topStart = \"topStart\",\n topEnd = \"topEnd\",\n right = \"right\",\n rightStart = \"rightStart\",\n rightEnd = \"rightEnd\",\n bottom = \"bottom\",\n bottomStart = \"bottomStart\",\n bottomEnd = \"bottomEnd\",\n left = \"left\",\n leftStart = \"leftStart\",\n leftEnd = \"leftEnd\",\n}\n\nexport interface Ui89PopoverPropsRenderContainerProps {\n props: React.HTMLProps<Element>\n setRef: any\n}\n\nexport interface Ui89PopoverProps<T> {\n open: boolean\n\n placement?: Ui89PopoverPropsPlacement | keyof typeof Ui89PopoverPropsPlacement\n\n onOpenChange: (value: boolean) => void\n\n /**\n * Whether to force the popover to take up as much of the available width\n * as possible.\n */\n popoverOverflowForce?: boolean\n\n /**\n * How large the popover can be when it takes up available width.\n */\n popoverOverflowMaxWidth?: number\n\n renderContainer: (\n props: Ui89PopoverPropsRenderContainerProps,\n ) => React.ReactNode\n\n renderPopover: () => React.ReactNode\n}\n\nfunction toFloatingUiPlacement(\n placement: Ui89PopoverPropsPlacement | keyof typeof Ui89PopoverPropsPlacement,\n): Placement {\n switch (placement) {\n case Ui89PopoverPropsPlacement.top:\n return \"top\"\n case Ui89PopoverPropsPlacement.topStart:\n return \"top-start\"\n case Ui89PopoverPropsPlacement.topEnd:\n return \"top-end\"\n case Ui89PopoverPropsPlacement.right:\n return \"right\"\n case Ui89PopoverPropsPlacement.rightStart:\n return \"right-start\"\n case Ui89PopoverPropsPlacement.rightEnd:\n return \"right-end\"\n case Ui89PopoverPropsPlacement.bottom:\n return \"bottom\"\n case Ui89PopoverPropsPlacement.bottomStart:\n return \"bottom-start\"\n case Ui89PopoverPropsPlacement.bottomEnd:\n return \"bottom-end\"\n case Ui89PopoverPropsPlacement.left:\n return \"left\"\n case Ui89PopoverPropsPlacement.leftStart:\n return \"left-start\"\n case Ui89PopoverPropsPlacement.leftEnd:\n return \"left-end\"\n default:\n throw new Error(`Unknown placement: ${placement}`)\n }\n}\n\nexport function Ui89Popover<T>(props: Ui89PopoverProps<T>) {\n const zIndexer = useZIndexer(props.open)\n const { refs, floatingStyles, context } = useFloating({\n open: props.open,\n onOpenChange: props.onOpenChange,\n middleware: [\n size({\n apply({ availableWidth, availableHeight, elements }) {\n let width = elements.reference.getBoundingClientRect().width\n\n if (props.popoverOverflowMaxWidth !== undefined) {\n if (props.popoverOverflowMaxWidth > width) {\n width = props.popoverOverflowMaxWidth\n }\n }\n\n const style: any = {\n maxWidth: `${width}px`,\n maxHeight: `${Math.max(0, availableHeight)}px`,\n }\n\n if (props.popoverOverflowForce) {\n style.width = `${availableWidth}px`\n }\n\n // Change styles, e.g.\n Object.assign(elements.floating.style, style)\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n placement: toFloatingUiPlacement(\n props.placement ?? Ui89PopoverPropsPlacement.bottomStart,\n ),\n strategy: \"fixed\",\n })\n\n const click = useClick(context, {\n keyboardHandlers: false,\n })\n const dismiss = useDismiss(context)\n const role = useRole(context)\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n click,\n dismiss,\n role,\n ])\n\n return (\n <>\n {props.renderContainer({\n setRef: refs.setReference,\n props: getReferenceProps(),\n })}\n {props.open && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={-1}\n >\n <Ui89Scene>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n zIndex: zIndexer.value,\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {props.renderPopover()}\n </div>\n </Ui89Scene>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n )\n}\n","export interface DateComponents {\n hours: number\n minutes: number\n seconds: number\n milliseconds: number\n day: number\n month: number\n year: number\n}\n\nfunction dateComponents(date: Date): DateComponents {\n return {\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n milliseconds: date.getMilliseconds(),\n day: date.getDate(),\n month: date.getMonth() + 1,\n year: date.getFullYear(),\n }\n}\n\nexport function dateFormat(date: Date, format: string) {\n const placeholders: Record<string, string> = {\n YYYY: date.getFullYear().toString(),\n MM: (date.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: date.getDate().toString().padStart(2, \"0\"),\n HH: date.getHours().toString().padStart(2, \"0\"),\n mm: date.getMinutes().toString().padStart(2, \"0\"),\n ss: date.getSeconds().toString().padStart(2, \"0\"),\n hh: (date.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: date.getHours() >= 12 ? \"PM\" : \"AM\",\n }\n\n // Replace placeholders in the format string\n let formattedDate = format\n for (const [key, value] of Object.entries(placeholders)) {\n formattedDate = formattedDate.replace(new RegExp(key, \"g\"), value)\n }\n\n return formattedDate\n}\n\nexport function dateParse(dateStr: string, format: string): Date | null {\n const placeholderRegex: Record<string, string> = {\n YYYY: \"(\\\\d{4})\",\n MM: \"(\\\\d{2})\",\n DD: \"(\\\\d{2})\",\n HH: \"(\\\\d{2})\",\n mm: \"(\\\\d{2})\",\n ss: \"(\\\\d{2})\",\n hh: \"(\\\\d{2})\",\n A: \"(AM|PM)\",\n }\n const placeholderKeys = Object.keys(placeholderRegex).sort(\n (a, b) => b.length - a.length,\n )\n\n let regexPattern = \"^\"\n const partTypes: string[] = []\n let i = 0\n while (i < format.length) {\n let found = false\n for (const key of placeholderKeys) {\n if (format.startsWith(key, i)) {\n regexPattern += placeholderRegex[key]\n partTypes.push(key)\n i += key.length\n found = true\n break\n }\n }\n if (!found) {\n const char = format[i]\n regexPattern += char.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\")\n i++\n }\n }\n regexPattern += \"$\"\n\n const regex = new RegExp(regexPattern)\n const match = dateStr.match(regex)\n\n if (!match) {\n return null\n }\n\n const now = new Date()\n const parts = {\n year: now.getFullYear(),\n month: now.getMonth(),\n day: now.getDate(),\n hours: 0,\n minutes: 0,\n seconds: 0,\n }\n\n let ampm: \"AM\" | \"PM\" | undefined\n const parsedFields: Set<string> = new Set()\n\n for (let j = 1; j < match.length; j++) {\n const type = partTypes[j - 1]\n const value = match[j]\n parsedFields.add(type)\n\n if (type === \"YYYY\") parts.year = parseInt(value, 10)\n else if (type === \"MM\") parts.month = parseInt(value, 10) - 1\n else if (type === \"DD\") parts.day = parseInt(value, 10)\n else if (type === \"HH\") parts.hours = parseInt(value, 10)\n else if (type === \"mm\") parts.minutes = parseInt(value, 10)\n else if (type === \"ss\") parts.seconds = parseInt(value, 10)\n else if (type === \"hh\") parts.hours = parseInt(value, 10)\n else if (type === \"A\") ampm = value as \"AM\" | \"PM\"\n }\n\n if (ampm) {\n let hours = parts.hours\n if (ampm === \"PM\" && hours < 12) {\n hours += 12\n }\n if (ampm === \"AM\" && hours === 12) {\n // 12 AM is 00 hours\n hours = 0\n }\n parts.hours = hours\n }\n\n const date = new Date(\n parts.year,\n parts.month,\n parts.day,\n parts.hours,\n parts.minutes,\n parts.seconds,\n )\n\n // Validate date by checking if components overflowed for parsed fields\n if (parsedFields.has(\"YYYY\") && date.getFullYear() !== parts.year) return null\n if (parsedFields.has(\"MM\") && date.getMonth() !== parts.month) return null\n if (parsedFields.has(\"DD\") && date.getDate() !== parts.day) return null\n if (\n (parsedFields.has(\"HH\") || parsedFields.has(\"hh\")) &&\n date.getHours() !== parts.hours\n )\n return null\n if (parsedFields.has(\"mm\") && date.getMinutes() !== parts.minutes) return null\n if (parsedFields.has(\"ss\") && date.getSeconds() !== parts.seconds) return null\n\n return date\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 * Lets you know whether a call is pending.\n */\n isPending() {\n return Timeout.pending(id)\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 { useRef, useEffect, MutableRefObject } from \"react\"\n\nexport function useUpdatedRef<T>(value: T): MutableRefObject<T> {\n const valueRef = useRef<T>(value)\n\n useEffect(() => {\n valueRef.current = value\n }, [value])\n\n return valueRef\n}\n","import { useEffect, useRef, useState } from \"react\"\nimport { throttledTimeout } from \"./timeout\"\nimport { useUpdatedRef } from \"./useUpdatedRef\"\n\nconst LAST_VALUE_CHANGED = Symbol(\"LAST_VALUE_CHANGED\")\nconst OVERRIDEN_VALUE_UNDEFINED = Symbol(\"OVERRIDEN_VALUE_UNDEFINED\")\n\ninterface UseDelayedOnChangeState {\n value: any\n setValue: (newVal: any) => void\n onChange: (newVal: any) => void\n onFocus: () => void\n onBlur: () => void\n onConfirm: () => void\n}\n\nexport function useDelayedOnChange(props: {\n defaultValue?: any\n value: any\n onChange?: (value: any) => void\n filter?: (value: any) => any\n}): UseDelayedOnChangeState {\n const valueRef = useUpdatedRef(props.value)\n const onChangeRef = useUpdatedRef(props.onChange)\n\n const [intermediateValue, setIntermediateValue] = useState<any>(\n props.defaultValue || props.value,\n )\n\n useEffect(() => {\n stateRef.current.setValue(props.value)\n }, [props.value])\n\n function callOnChange() {\n let newVal = stateRef.current.value\n\n if (props.filter !== undefined) {\n newVal = props.filter(newVal)\n }\n\n if (newVal !== valueRef.current) {\n onChangeRef.current?.call(null, newVal)\n }\n\n return newVal\n }\n\n class StateUnknown implements UseDelayedOnChangeState {\n state = \"unknown\"\n\n value: any\n\n throttledTimeout: any\n\n constructor() {\n this.throttledTimeout = throttledTimeout()\n }\n\n setValue(newVal: any) {\n setIntermediateValue(newVal)\n }\n\n onChange(newVal: any) {\n setIntermediateValue(newVal)\n stateRef.current.throttledTimeout.call(300, callOnChange)\n }\n\n onFocus() {\n let newState = new StateFocus()\n newState.value = stateRef.current.value\n newState.lastValue = newState.value\n setState(newState)\n }\n\n onBlur() {}\n\n onConfirm() {\n callOnChange()\n }\n }\n\n class StateFocus implements UseDelayedOnChangeState {\n state = \"focus\"\n\n value: any\n\n lastValue: any\n\n /**\n * If we receive a new value, we keep track of it here. We set this to\n * OVERRIDEN_VALUE_UNDEFINED if the value is meant to be discarded.\n */\n overridenValue: any\n\n throttledTimeout: any\n\n constructor() {\n this.overridenValue = OVERRIDEN_VALUE_UNDEFINED\n this.throttledTimeout = throttledTimeout()\n }\n\n setValue(newVal: any) {\n if (stateRef.current.value === stateRef.current.lastValue) {\n // No changes.\n setIntermediateValue(newVal)\n\n // Making sure we keep updating.\n stateRef.current.lastValue = newVal\n } else {\n // There have been changes. Let's not bother the user.\n stateRef.current.overridenValue = newVal\n }\n }\n\n onChange(newVal: any) {\n // Discard last setValue call\n stateRef.current.overridenValue = OVERRIDEN_VALUE_UNDEFINED\n stateRef.current.lastValue = LAST_VALUE_CHANGED\n\n setIntermediateValue(newVal)\n stateRef.current.throttledTimeout.call(300, callOnChange)\n }\n\n onFocus() {}\n\n onBlur() {\n // We need to make sure that we emit immediately. Do not want to leave\n // user waiting.\n\n // We can cancel this one.\n stateRef.current.throttledTimeout.abort()\n\n if (stateRef.current.overridenValue !== OVERRIDEN_VALUE_UNDEFINED) {\n stateRef.current.value = stateRef.current.overridenValue\n }\n\n let newVal = callOnChange()\n\n setIntermediateValue(newVal)\n let newState = new StateUnknown()\n newState.value = newVal\n setState(newState)\n }\n\n onConfirm() {\n callOnChange()\n }\n }\n\n const [state, setState] = useState<UseDelayedOnChangeState>(() => {\n let newState = new StateUnknown()\n newState.value = intermediateValue\n return newState\n })\n\n const stateRef = useUpdatedRef(state)\n\n stateRef.current.value = intermediateValue\n\n return state\n}\n","import React, { useImperativeHandle, useRef } from \"react\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\nimport { useDelayedOnChange } from \"../useDelayedOnChange\"\n\nexport interface Ui89InputTextProps {\n value?: any\n placeholder?: string\n autoTrim?: boolean\n disabled?: boolean\n textAlign?: React.CSSProperties[\"textAlign\"]\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nexport interface Ui89InputTextRef {\n focus: () => void\n}\n\nexport const Ui89InputText = React.forwardRef<\n Ui89InputTextRef,\n Ui89InputTextProps\n>(function Ui89InputText(\n {\n value,\n placeholder,\n autoTrim = true,\n disabled,\n textAlign,\n onChange,\n onTyping,\n onFocus,\n onBlur,\n },\n ref,\n) {\n const inputRef = useRef<HTMLInputElement>(null)\n const delayedState = useDelayedOnChange({\n defaultValue: \"\",\n value,\n onChange,\n filter(value: any) {\n if (autoTrim) {\n if (typeof value === \"string\") {\n value = value.replace(/\\s+/g, \" \").trim()\n }\n }\n\n return value\n },\n })\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n }))\n\n return (\n <div>\n <input\n ref={inputRef}\n className={[\n \"ui89-input-box\",\n disabled ? \"ui89-input-box--disabled\" : \"\",\n ].join(\" \")}\n style={{ textAlign }}\n type=\"text\"\n disabled={disabled}\n value={delayedState.value}\n onChange={(e) => delayedState.onChange(e.target.value)}\n onBlur={delayedState.onBlur}\n onFocus={delayedState.onFocus}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n delayedState.onConfirm()\n }\n }}\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, { useMemo } 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 disabled?: boolean\n onChange?: (value: any) => void\n precision?: number\n textAlign?: React.CSSProperties[\"textAlign\"]\n}\n\nexport function isTextNumber(text: string): boolean {\n return /^\\d+(\\.\\d+)?$/.test(text)\n}\n\nfunction displayText(value: any) {\n if (value === undefined) {\n // No idea how to display this.\n return \"\"\n } else if (isNaN(value)) {\n // No idea what to display.\n return \"\"\n }\n\n return value.toString()\n}\n\nfunction dotsMakeMoreSense(value: string) {\n return value.replaceAll(\",\", \".\")\n}\n\nexport function Ui89InputTextNumber(props: Ui89InputTextNumberProps) {\n const wrappedValue = useMemo(() => {\n return displayText(props.value)\n }, [props.value])\n\n function implOnChange(value: string) {\n if (props.onChange === undefined) {\n return\n }\n\n if (value === \"\") {\n // Use empty value.\n props.onChange(props.emptyValue)\n return\n }\n\n value = stringRemoveAllWhitespace(value)\n value = dotsMakeMoreSense(value)\n\n if (!isTextNumber(value)) {\n // We end here.\n return\n }\n\n const numberValue = Number(value)\n\n if (props.min !== undefined) {\n if (numberValue <= props.min) {\n value = String(props.min)\n }\n }\n\n if (props.max !== undefined) {\n if (numberValue >= props.max) {\n value = String(props.max)\n }\n }\n\n props.onChange(value)\n }\n\n return (\n <Ui89InputText\n value={wrappedValue}\n onChange={implOnChange}\n disabled={props.disabled}\n textAlign={props.textAlign}\n />\n )\n}\n","import React, { useState, useEffect } from \"react\"\nimport { Ui89Popover } from \"./Ui89Popover\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89Button, Ui89ButtonPropsSize } from \"./Ui89Button\"\nimport { dateParse, dateFormat as formatDate } from \"../date-utils\"\nimport { Ui89InputText } from \"./Ui89InputText\"\nimport { Ui89InputTextNumber } from \"./Ui89InputTextNumber\"\n\nimport \"./Ui89DateTimePicker.css\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\nimport HoverShadow from \"./private/HoverShadow\"\n\nexport interface Ui89DateTimePickerProps {\n value?: Date | null\n onChange?: (value: Date | null) => void\n dateFormat?: string\n}\n\nexport function Ui89DateTimePicker(props: Ui89DateTimePickerProps) {\n const [open, setOpen] = useState(false)\n const [inputValue, setInputValue] = useState(\"\")\n const [viewDate, setViewDate] = useState(new Date())\n\n const dateFormat = props.dateFormat ?? \"YYYY/MM/DD HH:mm:ss\"\n\n useEffect(() => {\n if (props.value) {\n setInputValue(formatDate(props.value, dateFormat))\n setViewDate(props.value)\n } else {\n setInputValue(\"\")\n }\n }, [props.value, dateFormat])\n\n function handleInputChange(val: string) {\n setInputValue(val)\n const date = dateParse(val, dateFormat)\n if (date !== null) {\n if (props.onChange) props.onChange(date)\n setViewDate(date)\n } else if (val.trim() === \"\") {\n if (props.onChange) props.onChange(null)\n }\n }\n\n function adjustMonth(offset: number) {\n const newDate = new Date(viewDate)\n newDate.setMonth(newDate.getMonth() + offset)\n setViewDate(newDate)\n }\n\n function handleDayClick(day: Date) {\n const newDate = new Date(day)\n if (props.value) {\n newDate.setHours(props.value.getHours())\n newDate.setMinutes(props.value.getMinutes())\n newDate.setSeconds(props.value.getSeconds())\n } else {\n newDate.setHours(12, 0, 0, 0)\n }\n if (props.onChange) props.onChange(newDate)\n }\n\n function handleTimeChange(type: \"h\" | \"m\" | \"s\", val: any) {\n if (!props.value) return\n const num = parseInt(val, 10)\n if (isNaN(num)) return\n const newDate = new Date(props.value)\n if (type === \"h\") newDate.setHours(Math.min(23, Math.max(0, num)))\n if (type === \"m\") newDate.setMinutes(Math.min(59, Math.max(0, num)))\n if (type === \"s\") newDate.setSeconds(Math.min(59, Math.max(0, num)))\n if (props.onChange) props.onChange(newDate)\n }\n\n function renderCalendar() {\n const year = viewDate.getFullYear()\n const month = viewDate.getMonth()\n const firstDay = new Date(year, month, 1)\n const startDay = firstDay.getDay()\n const startDate = new Date(year, month, 1 - startDay)\n\n const days = []\n const current = new Date(startDate)\n for (let i = 0; i < 42; i++) {\n days.push(new Date(current))\n current.setDate(current.getDate() + 1)\n }\n\n return (\n <div style={{ width: \"300px\", padding: \"10px\" }}>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: \"10px\",\n }}\n >\n <Ui89Button\n size={Ui89ButtonPropsSize.square}\n onClick={() => adjustMonth(-1)}\n >\n <\n </Ui89Button>\n <div className=\"ui89-typo-normal\">\n {formatDate(viewDate, \"MM/YYYY\")}\n </div>\n <Ui89Button\n size={Ui89ButtonPropsSize.square}\n onClick={() => adjustMonth(1)}\n >\n >\n </Ui89Button>\n </div>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(7, 1fr)\",\n gap: \"2px\",\n }}\n >\n {[\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"].map((d) => (\n <div\n key={d}\n className=\"ui89-typo-small-bold\"\n style={{ textAlign: \"center\", padding: \"5px\" }}\n >\n {d}\n </div>\n ))}\n {days.map((d, i) => {\n const isSelected =\n props.value &&\n d.getDate() === props.value.getDate() &&\n d.getMonth() === props.value.getMonth() &&\n d.getFullYear() === props.value.getFullYear()\n const isCurrentMonth = d.getMonth() === month\n\n return (\n <div\n key={i}\n className=\"ui89-typo-normal\"\n onClick={() => handleDayClick(d)}\n style={{\n textAlign: \"center\",\n padding: \"5px\",\n cursor: \"pointer\",\n backgroundColor: isSelected\n ? \"var(--ui89-theme-primary-bg-color)\"\n : \"transparent\",\n opacity: isCurrentMonth ? 1 : 0.3,\n }}\n >\n {d.getDate()}\n </div>\n )\n })}\n </div>\n {props.value && (\n <div\n style={{\n display: \"flex\",\n gap: \"5px\",\n marginTop: \"10px\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <div style={{ width: \"35px\" }}>\n <Ui89InputTextNumber\n value={props.value.getHours()}\n onChange={(val) => handleTimeChange(\"h\", val)}\n min={0}\n max={23}\n textAlign=\"right\"\n />\n </div>\n :\n <div style={{ width: \"35px\" }}>\n <Ui89InputTextNumber\n value={props.value.getMinutes()}\n onChange={(val) => handleTimeChange(\"m\", val)}\n min={0}\n max={59}\n textAlign=\"right\"\n />\n </div>\n :\n <div style={{ width: \"35px\" }}>\n <Ui89InputTextNumber\n value={props.value.getSeconds()}\n onChange={(val) => handleTimeChange(\"s\", val)}\n min={0}\n max={59}\n textAlign=\"right\"\n />\n </div>\n </div>\n )}\n </div>\n )\n }\n\n return (\n <Ui89Popover\n open={open}\n onOpenChange={setOpen}\n popoverOverflowMaxWidth={360}\n renderContainer={({ setRef, props: popoverProps }) => (\n <div className=\"ui89-date-time-picker\" ref={setRef} {...popoverProps}>\n <Ui89InputText\n value={inputValue}\n onChange={handleInputChange}\n placeholder={dateFormat}\n />\n </div>\n )}\n renderPopover={() => (\n <div style={{ maxWidth: \"360px\" }}>\n <HoverShadow>\n <Ui89Card>{renderCalendar()}</Ui89Card>\n </HoverShadow>\n </div>\n )}\n />\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 \"../style/typo.css\"\nimport {\n TimeAnimation,\n TimeAnimationPropsChildrenProps,\n} from \"./private/TimeAnimation\"\nimport { dateFormat } from \"../date-utils\"\n\nexport interface Ui89DigitalClockProps {\n format?: string // Custom format string\n}\n\nexport function Ui89DigitalClock({\n format = \"HH:mm:ss\",\n}: Ui89DigitalClockProps) {\n function render({ now }: TimeAnimationPropsChildrenProps) {\n return dateFormat(now, format)\n }\n\n return (\n <span className=\"ui89-typo-special\">\n <TimeAnimation>{render}</TimeAnimation>\n </span>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport \"../style/chosen-theme.css\"\n\nimport \"./Ui89HighlightText.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={`ui89-highlight-text ui89-chosen-theme-${theme} ${block ? \"ui89-highlight-text--block\" : null}`}\n >\n {children}\n </span>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89Hr.css\"\nimport { Ui89Theme } from \"../theme\"\nimport \"../style/chosen-theme.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={`ui-89-hr ${`ui-89-hr--${look}`} ${theme !== undefined ? \"ui-89-hr--use-theme\" : \"\"} ${theme !== undefined ? `ui89-chosen-theme-${theme}` : \"\"}`}\n >\n <div className=\"ui-89-hr__double\"></div>\n </div>\n )\n}\n","import React from \"react\"\n\nexport interface Ui89SpacePaddingProps {\n gap?: number\n gapVertical?: number\n gapHorizontal?: number\n gapTop?: number\n gapRight?: number\n gapBottom?: number\n gapLeft?: number\n children?: React.ReactNode\n}\n\nexport function Ui89SpacePadding(props: Ui89SpacePaddingProps) {\n const gap = props.gap ?? 1\n\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${props.gapTop ?? props.gapVertical ?? gap})`,\n paddingRight: `calc(var(--ui89-safe-space) * ${props.gapRight ?? props.gapHorizontal ?? gap})`,\n paddingBottom: `calc(var(--ui89-safe-space) * ${props.gapBottom ?? props.gapVertical ?? gap})`,\n paddingLeft: `calc(var(--ui89-safe-space) * ${props.gapLeft ?? props.gapHorizontal ?? gap})`,\n }\n\n return <div style={style}>{props.children}</div>\n}\n","import React from \"react\"\nimport { Ui89SpacePadding } from \"./Ui89SpacePadding\"\n\nexport interface Ui89IndentProps {\n gap?: number\n children?: React.ReactNode\n}\n\nexport function Ui89Indent(props: Ui89IndentProps) {\n const gap = props.gap ?? 1\n return (\n <Ui89SpacePadding gap={0} gapLeft={gap}>\n {props.children}\n </Ui89SpacePadding>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89InputCheckBox.css\"\n\nexport interface Ui89InputCheckBoxProps {\n value: boolean\n onChange?: (value: boolean) => void\n}\n\nexport function Ui89InputCheckBox(props: Ui89InputCheckBoxProps) {\n function toggle() {\n if (props.onChange) {\n props.onChange(!props.value)\n }\n }\n\n return (\n <span\n className=\"ui89-input-check-box\"\n onClick={toggle}\n role=\"checkbox\"\n aria-checked={props.value ? \"true\" : \"false\"}\n >\n <span className=\"ui89-input-check-box__x\">\n {props.value ? <>X</> : <> </>}\n </span>\n </span>\n )\n}\n","import { useState, useEffect, useRef } from \"react\"\n\ntype Size = { width: number; height: number }\n\ninterface UseResizeObserverResult {\n size: Size\n}\n\nexport const useResizeObserver = <T extends HTMLElement>(\n ref: React.RefObject<T>,\n): UseResizeObserverResult => {\n const [size, setSize] = useState<Size>({ width: 0, height: 0 })\n\n useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n for (let entry of entries) {\n setSize({\n width:\n entry.borderBoxSize?.[0]?.inlineSize ?? entry.contentRect.width,\n height:\n entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height,\n })\n }\n })\n\n if (ref.current) {\n observer.observe(ref.current)\n }\n\n return () => {\n observer.disconnect()\n }\n }, [ref.current])\n\n return {\n size,\n }\n}\n","import { useState, useEffect, useRef, RefObject } from \"react\"\n\nexport const useScrollYPosition = (ref: RefObject<HTMLElement>): number => {\n const [scrollY, setScrollY] = useState(0)\n const ticking = useRef(false)\n const observer = useRef<MutationObserver | null>(null)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const handleScroll = () => {\n if (!ticking.current) {\n ticking.current = true\n requestAnimationFrame(() => {\n setScrollY(element.scrollTop)\n ticking.current = false\n })\n }\n }\n\n element.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n observer.current = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"childList\" && ref.current !== element) {\n element.removeEventListener(\"scroll\", handleScroll)\n ref.current?.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n }\n }\n })\n\n observer.current.observe(document.body, { childList: true, subtree: true })\n\n return () => {\n element.removeEventListener(\"scroll\", handleScroll)\n observer.current?.disconnect()\n observer.current = null\n }\n }, [ref])\n\n return scrollY\n}\n","import React, { useState, useEffect, useRef, useMemo } from \"react\"\n\nimport \"./Ui89VirtualList.css\"\nimport { useResizeObserver } from \"../useResizeObserver\"\nimport { useScrollYPosition } from \"../useScrollYPosition\"\n\nexport interface Ui89VirtualListPropsRenderRowProps<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualListProps<T> {\n maxHeight?: string\n rows: T[]\n rowHeight?: number\n renderRow: (props: Ui89VirtualListPropsRenderRowProps<T>) => React.ReactNode\n getRowKey?: (row: T) => string\n}\n\ninterface VisibleRow<T> {\n userKey: string\n index: number\n row: T\n key: number\n render: React.ReactNode\n style: React.CSSProperties\n}\n\nfunction popAnyEntry<K, V>(map: Map<K, V>): V | undefined {\n const iterator = map.keys().next()\n if (!iterator.done) {\n const key = iterator.value\n const value = map.get(key)!\n map.delete(key)\n return value\n }\n return undefined\n}\n\n/**\n * Virtualization at row level. Great for long lists.\n *\n * Can be used to implement table components with few columns.\n */\nexport const Ui89VirtualList = React.memo(\n <T,>(props: Ui89VirtualListProps<T>) => {\n const keyCounter = useRef<number>(0)\n const scrollContainer = useRef<HTMLDivElement>(null)\n const scrollAreaContainer = useRef<HTMLDivElement>(null)\n\n const { size } = useResizeObserver(scrollContainer)\n const scrollY = useScrollYPosition(scrollContainer)\n\n const rowHeight = props.rowHeight ?? 50\n\n const totalHeight = rowHeight * props.rows.length\n\n const [visibleRows, setVisibleRows] = useState<Map<string, VisibleRow<T>>>(\n new Map(),\n )\n\n function updateVisibleRows(cache: Map<string, VisibleRow<T>>) {\n if (size.height === 0) {\n setVisibleRows(new Map())\n return\n }\n\n const firstIndex = Math.max(0, Math.floor(scrollY / rowHeight) - 1)\n const length = Math.min(\n props.rows.length - firstIndex,\n Math.ceil(size.height / rowHeight) + 2,\n )\n\n const deletedRows = new Map(cache)\n\n // Must find the ones that are no longer visible.\n for (let index = firstIndex; index < firstIndex + length; index++) {\n let row = props.rows[index]\n let key = props.getRowKey ? props.getRowKey(row) : String(index)\n deletedRows.delete(key)\n }\n\n const newVisibleRows = new Map<string, VisibleRow<T>>()\n\n for (let index = firstIndex; index < firstIndex + length; index++) {\n let row = props.rows[index]\n let key = props.getRowKey ? props.getRowKey(row) : String(index)\n\n let existingRow = cache.get(key)\n\n if (existingRow !== undefined) {\n if (existingRow.row === row) {\n // Data has technically not changed so we can reuse.\n } else {\n // Data has changed, must update render.\n existingRow.render = props.renderRow({ index, row })\n }\n\n newVisibleRows.set(key, existingRow)\n\n continue\n }\n\n let oldRow = popAnyEntry(deletedRows)\n\n if (oldRow !== undefined) {\n oldRow.index = index\n oldRow.row = row\n oldRow.userKey = key\n oldRow.render = props.renderRow({ index, row })\n oldRow.style = {\n transform: `translateY(${index * rowHeight}px)`,\n height: `${rowHeight}px`,\n }\n newVisibleRows.set(key, oldRow)\n } else {\n // New row.\n newVisibleRows.set(key, {\n index,\n row,\n key: keyCounter.current++,\n userKey: key,\n render: props.renderRow({ index, row }),\n style: {\n transform: `translateY(${index * rowHeight}px)`,\n height: `${rowHeight}px`,\n },\n })\n }\n }\n\n setVisibleRows(newVisibleRows)\n }\n\n useEffect(() => {\n // The renderRow function may have a reference to the rows array. if we\n // do not throw away our cache we risk leaving rows referencing\n // stale data.\n updateVisibleRows(new Map())\n }, [props.rows, props.renderRow])\n\n useEffect(() => {\n updateVisibleRows(visibleRows)\n }, [scrollY, size.height])\n\n const orderedVisibleRows = useMemo(() => {\n return Array.from(visibleRows.values()).sort((a, b) => a.index - b.index)\n }, [visibleRows])\n\n return (\n <div\n ref={scrollContainer}\n className=\"ui89-virtual-list\"\n style={{ maxHeight: props.maxHeight }}\n >\n <div\n ref={scrollAreaContainer}\n className=\"ui89-virtual-list__scroll-area\"\n style={{ height: `${totalHeight}px` }}\n >\n {orderedVisibleRows.map((visibleRow) => (\n <div\n key={visibleRow.userKey}\n className=\"ui89-virtual-list__row\"\n style={visibleRow.style}\n >\n {visibleRow.render}\n </div>\n ))}\n </div>\n </div>\n )\n },\n) as <T>(props: Ui89VirtualListProps<T>) => JSX.Element\n","import React, { useMemo } from \"react\"\nimport {\n Ui89VirtualList,\n Ui89VirtualListPropsRenderRowProps,\n} from \"./Ui89VirtualList\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89InputCheckBox } from \"./Ui89InputCheckBox\"\nimport \"../style/text.css\"\n\nexport interface Ui89InputCheckListPropsRenderOption<T> {\n option: T\n index: number\n}\n\nexport interface Ui89InputCheckListProps<T> {\n value: T[]\n onChange?: (value: T[]) => void\n getValueKey?: (row: T) => string\n options: T[]\n renderOption?: (\n props: Ui89InputCheckListPropsRenderOption<T>,\n ) => React.ReactNode\n onSelect?: (option: T) => void\n onDeselect?: (option: T) => void\n optionHeight?: number\n maxHeight?: string\n}\n\nexport function Ui89InputCheckList<T>(props: Ui89InputCheckListProps<T>) {\n function getValueKey(value: T) {\n return props.getValueKey !== undefined\n ? props.getValueKey(value)\n : String(value)\n }\n\n const valueSet = useMemo<Set<string>>(() => {\n const set = new Set<string>()\n for (const value of props.value) {\n set.add(getValueKey(value))\n }\n return set\n }, [props.value])\n\n const renderRow = (props2: Ui89VirtualListPropsRenderRowProps<T>) => {\n const key = getValueKey(props2.row)\n const value = valueSet.has(key)\n const label =\n props.renderOption !== undefined\n ? props.renderOption({ option: props2.row, index: props2.index })\n : String(props2.row)\n\n function onChange(checked: boolean) {\n if (checked) {\n if (props.onSelect !== undefined) {\n props.onSelect(props2.row)\n }\n } else {\n if (props.onDeselect !== undefined) {\n props.onDeselect(props2.row)\n }\n }\n\n if (props.onChange !== undefined) {\n if (checked) {\n props.onChange([...props.value, props2.row])\n } else {\n props.onChange(\n props.value.filter((item) => getValueKey(item) !== key),\n )\n }\n }\n }\n\n function toggle() {\n onChange(!value)\n }\n\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"var(--ui89-safe-space)\",\n height: \"100%\",\n }}\n >\n <Ui89InputCheckBox value={value} onChange={onChange} />\n <div\n className=\"ui89-text-ellipsis\"\n style={{ minWidth: 0, cursor: \"pointer\" }}\n onClick={toggle}\n >\n {label}\n </div>\n </div>\n )\n }\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n maxHeight: props.maxHeight,\n }}\n >\n <Ui89VirtualList\n rows={props.options}\n renderRow={renderRow}\n getRowKey={props.getValueKey}\n rowHeight={props.optionHeight ?? 40}\n maxHeight={\"100%\"}\n />\n </div>\n )\n}\n\nexport default Ui89InputCheckList\n","import React from \"react\"\n\nimport \"./Ui89InputCheckText.css\"\n\nexport interface Ui89InputCheckTextProps {\n value: any\n onChange?: (value: boolean) => void\n}\n\nexport function Ui89InputCheckText(props: Ui89InputCheckTextProps) {\n function toggle() {\n if (props.onChange) {\n props.onChange(!props.value)\n }\n }\n\n return (\n <span className=\"ui89-input-check-text\" onClick={toggle}>\n {props.value ? \"[X]\" : \"[ ]\"}\n </span>\n )\n}\n","import React, { useRef } from \"react\"\n\nimport \"./Ui89InputFileUpload.css\"\nimport \"../style/typo.css\"\nimport \"../style/text.css\"\nimport { Ui89Button } from \"./Ui89Button\"\n\nexport interface Ui89InputFileUploadProps {\n /**\n * The file that is currently selected.\n */\n value?: any\n\n /**\n * Called when a new file is selected or when the currently selected file\n * is deselected.\n */\n onChange?: (value: File | null) => void\n\n /**\n * The `accept` attribute specifies the types of files that can be selected, using a\n * comma-separated list of file type specifiers. Valid values include:\n *\n * - File extensions (case-insensitive), beginning with a dot (e.g., `.jpg`, `.pdf`, `.doc`)\n * - MIME types (e.g., `application/pdf`, `image/png`)\n * - Wildcard types:\n * - `audio/*` for any audio files\n * - `video/*` for any video files\n * - `image/*` for any image files\n */\n accept?: string\n}\n\nexport function Ui89InputFileUpload(props: Ui89InputFileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!props.onChange) {\n return\n }\n\n if (e.target.files === null) {\n props.onChange(null)\n return\n }\n\n if (e.target.files.length === 0) {\n props.onChange(null)\n return\n }\n\n props.onChange(e.target.files[0])\n\n // Reset the file input's value to allow selecting the same file again.\n e.target.value = \"\"\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=\"ui89-typo-special\"\n type=\"file\"\n onChange={implOnChange}\n accept={props.accept}\n hidden\n />\n\n {props.value ? (\n <div className=\"ui89-input-file-upload\">\n <Ui89Button onClick={onClick}>Change</Ui89Button>\n <span\n className={`ui89-input-file-upload__info ui89-text-single-line ui89-text-single-line--ellipsis-left`}\n title={props.value.name}\n >\n {props.value.name}\n </span>\n </div>\n ) : (\n <Ui89Button onClick={onClick}>Upload</Ui89Button>\n )}\n </div>\n )\n}\n","import React, { useEffect, useRef } from \"react\"\n\n/**\n * Calls a callback when the component has rendered for the first time.\n *\n * This is useful for tests that need to wait for a component to render\n * before performing assertions.\n */\nexport default function RenderCallback(props: {\n /**\n * Called when the component has rendered for the first time.\n */\n onRender: () => void\n}) {\n useEffect(() => {\n props.onRender()\n }, [])\n\n return <></>\n}\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport \"./Ui89InputSelect.css\"\nimport \"../style/input-box.css\"\nimport \"../style/text.css\"\nimport {\n Ui89VirtualList,\n Ui89VirtualListPropsRenderRowProps,\n} from \"./Ui89VirtualList\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport { Ui89InputText, Ui89InputTextRef } from \"./Ui89InputText\"\nimport { Ui89Popover } from \"./Ui89Popover\"\nimport RenderCallback from \"./private/RenderCallback\"\n\nexport interface Ui89InputSelectProps<T> {\n /**\n * Available options.\n */\n options?: T[]\n\n /**\n * Option height. Options list uses a technique called DOM virtualization.\n */\n optionHeight?: number\n\n /**\n * The selected option.\n */\n value?: T\n\n /**\n * Display search input.\n *\n * Does not search automatically. You must filter the options yourself.\n */\n search?: boolean\n\n /**\n * Called whenever an option is selected.\n */\n onChange?: (option: T) => void\n\n /**\n * Called when the menu is opened or closed.\n */\n onOpenChange?: (open: boolean) => void\n\n /**\n * A search term was provided.\n */\n onSearch?: (search: string) => void\n\n /**\n * Retrieves the value that uniquely identifies the option. This is what is\n * used to determine which option is currently selected.\n */\n getOptionKey?: (option: T) => any\n\n /**\n * Customize how an option should be rendered.\n */\n renderOption?: (option: T) => any\n\n /**\n * Minimum width of the menu. The menu is still going to shrink if it\n * can't fit in the viewport.\n */\n menuOverflowMaxWidth?: number\n}\n\n/**\n * This is a very performant and customizable dropdown selector that\n * allows you to choose from a list of options.\n */\nexport function Ui89InputSelect<T>(props: Ui89InputSelectProps<T>) {\n const [search, setSearch] = useState(\"\")\n const [isOpen, setIsOpen] = useState(false)\n const searchInput = useRef<Ui89InputTextRef>(null)\n\n const getOptionKey = useMemo(() => {\n return props.getOptionKey ?? ((option: any) => option)\n }, [props.getOptionKey])\n\n const options = useMemo(() => {\n if (props.options === undefined) {\n return []\n }\n\n return props.options\n }, [props.options])\n\n function isOptionSelected(option: T) {\n if (props.value === undefined) {\n // Definitely not selected.\n return false\n }\n\n return getOptionKey(option) === getOptionKey(props.value)\n }\n\n function optionTitle(option: T) {\n return String(option)\n }\n\n const selectOption = useCallback(\n (option: T) => {\n if (props.onChange !== undefined) {\n props.onChange(option)\n }\n\n setIsOpen(false)\n },\n [props.onChange],\n )\n\n const renderOption = useCallback(\n ({ row }: Ui89VirtualListPropsRenderRowProps<T>) => {\n const isSelected = isOptionSelected(row)\n\n return (\n <div\n className={[\n \"ui89-input-select__menu__item\",\n isSelected ? \"ui89-input-select__menu__item--selected\" : null,\n ].join(\" \")}\n title={optionTitle(row)}\n key={getOptionKey(row)}\n onClick={() => selectOption(row)}\n >\n {props.renderOption !== undefined ? props.renderOption(row) : row}\n </div>\n )\n },\n [options, selectOption],\n )\n\n useEffect(() => {\n props.onOpenChange?.(isOpen)\n\n if (isOpen) {\n setSearch(\"\")\n }\n }, [isOpen])\n\n useEffect(() => {\n if (isOpen) {\n if (props.onSearch !== undefined) {\n props.onSearch(search)\n }\n }\n }, [search])\n\n function onRenderPopover() {\n // Making sure that the search input is focused when opening the menu.\n searchInput.current?.focus()\n }\n\n return (\n <div className=\"ui89-input-select\">\n <Ui89Popover\n open={isOpen}\n onOpenChange={setIsOpen}\n popoverOverflowForce={true}\n popoverOverflowMaxWidth={props.menuOverflowMaxWidth}\n renderContainer={(props2) => (\n <div\n ref={props2.setRef}\n className={[\n \"ui89-input-box\",\n \"ui89-input-box--unselectable\",\n \"ui89-input-box--clickable\",\n \"ui89-text-single-line\",\n ].join(\" \")}\n tabIndex={0}\n title={\n props.value !== undefined ? optionTitle(props.value) : undefined\n }\n {...props2.props}\n >\n {props.value !== undefined ? (\n <>\n {props.renderOption !== undefined\n ? props.renderOption(props.value)\n : props.value}\n </>\n ) : (\n <>Select...</>\n )}\n </div>\n )}\n renderPopover={() => (\n <div className=\"ui89-input-select__menu\">\n <RenderCallback onRender={onRenderPopover} />\n\n {props.search && (\n <Ui89InputText\n ref={searchInput}\n placeholder=\"Search...\"\n value={search}\n onChange={setSearch}\n />\n )}\n\n {options.length > 0 ? (\n <Ui89VirtualList\n maxHeight=\"300px\"\n rowHeight={props.optionHeight ?? 32}\n rows={options}\n renderRow={renderOption}\n />\n ) : (\n <div\n className={[\n \"ui89-input-select__menu__item\",\n \"ui89-input-select__menu__item--disabled\",\n ].join(\" \")}\n >\n <empty>\n </div>\n )}\n </div>\n )}\n />\n </div>\n )\n}\n","import React from \"react\"\nimport { useMemo } from \"react\"\n\nimport { Ui89InputTextNumber } from \"./Ui89InputTextNumber\"\n\nexport interface Ui89InputNumberProps {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n disabled?: boolean\n onChange?: (value: any) => void\n precision?: number\n textAlign?: React.CSSProperties[\"textAlign\"]\n}\n\nexport function Ui89InputNumber(props: Ui89InputNumberProps) {\n const wrappedValue = useMemo(() => {\n if (props.value !== undefined && props.value !== null) {\n return Number(props.value)\n } else {\n return undefined\n }\n }, [props.value])\n\n function wrappedOnChange(value: any) {\n if (props.onChange === undefined) {\n return\n }\n\n if (value === props.emptyValue) {\n // Pass along.\n props.onChange(value)\n } else {\n if (value !== undefined && value !== null) {\n props.onChange(Number(value))\n } else {\n props.onChange(null)\n }\n }\n }\n\n return (\n <Ui89InputTextNumber\n emptyValue={props.emptyValue}\n value={wrappedValue}\n onChange={wrappedOnChange}\n min={props.min}\n max={props.max}\n disabled={props.disabled}\n precision={props.precision}\n textAlign={props.textAlign}\n />\n )\n}\n","import React from \"react\"\nimport { useState } from \"react\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\n\nexport interface Ui89InputPasswordProps {\n value?: any\n placeholder?: string\n disabled?: boolean\n onChange?: (value: any) => void\n}\n\nexport function Ui89InputPassword({\n value,\n placeholder,\n disabled,\n onChange,\n}: Ui89InputPasswordProps) {\n const [intermediateValue, setIntermediateValue] = useState(value ?? \"\")\n\n const implOnChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n const newValue = e.target.value\n\n setIntermediateValue(newValue)\n\n if (onChange) {\n onChange(newValue)\n }\n }\n\n return (\n <div>\n <input\n type=\"password\"\n className={[\n \"ui89-input-box\",\n disabled ? \"ui89-input-box--disabled\" : \"\",\n ].join(\" \")}\n role=\"textbox\"\n value={intermediateValue}\n onChange={implOnChange}\n placeholder={placeholder}\n disabled={disabled}\n />\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\nimport { useDelayedOnChange } from \"../useDelayedOnChange\"\n\nexport interface Ui89InputTextAreaProps {\n rows?: number\n value?: any\n placeholder?: string\n autoTrim?: boolean\n disabled?: boolean\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nexport function Ui89InputTextArea(props: Ui89InputTextAreaProps) {\n const delayedState = useDelayedOnChange({\n defaultValue: \"\",\n value: props.value,\n onChange: props.onChange,\n filter(value: any) {\n if (props.autoTrim) {\n if (typeof value === \"string\") {\n value = value.replace(/\\s+/g, \" \").trim()\n }\n }\n\n return value\n },\n })\n\n return (\n <div>\n <textarea\n className={[\n \"ui89-input-box\",\n \"ui89-input-box--resizable\",\n props.disabled ? \"ui89-input-box--disabled\" : \"\",\n ].join(\" \")}\n value={delayedState.value}\n onChange={(e) => delayedState.onChange(e.target.value)}\n onBlur={delayedState.onBlur}\n onFocus={delayedState.onFocus}\n rows={props.rows ?? 4}\n placeholder={props.placeholder}\n disabled={props.disabled}\n />\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89LinkStealth.css\"\n\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89LinkStealthProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkStealth(props: Ui89LinkStealthProps) {\n return <Ui89LinkBase className=\"ui89-link-stealth\" {...props} />\n}\n","import React from \"react\"\n\nimport \"./Ui89LinkUnderline.css\"\n\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89LinkUnderlineProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkUnderline(props: Ui89LinkUnderlineProps) {\n return <Ui89LinkBase className=\"ui89-link-underline\" {...props} />\n}\n","import React from \"react\"\n\nimport \"./Ui89MenuBar.css\"\nimport \"../style/typo.css\"\nimport \"../style/scrollbar.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 className={`ui89-menu-bar ui89-typo-special ui89-scrollbar`}>\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=\"ui89-menu-bar__item\"\n onClick={onNativeClick}\n >\n {item.label}\n </div>\n )\n })}\n </div>\n )\n}\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\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89TitleBox } from \"./Ui89TitleBox\"\nimport { Ui89Hr } from \"./Ui89Hr\"\nimport \"./Ui89MenuCard.css\"\nimport { Ui89CardHorizontalConnection } from \"./Ui89CardHorizontalConnection\"\nimport { Ui89LinkStealth } from \"./Ui89LinkStealth\"\nimport { Ui89SpaceVertical } from \"./Ui89SpaceVertical\"\n\nexport interface Ui89MenuCardPropsOption {\n type?: \"item\" | \"separator\"\n label?: string\n onClick?: () => void\n href?: string\n disabled?: boolean\n oppositeLabel?: React.ReactNode\n}\n\nexport interface Ui89MenuCardProps {\n options: Ui89MenuCardPropsOption[]\n}\n\nexport const Ui89MenuCard: React.FC<Ui89MenuCardProps> = (props) => {\n return (\n <Ui89Card>\n <Ui89CardHorizontalConnection>\n <div className=\"ui89-menu-card__list\">\n {props.options.map((option, index) => {\n if (option.type === \"separator\") {\n return (\n <div key={index} className=\"ui89-menu-card__separator\">\n <Ui89SpaceVertical />\n <Ui89Hr />\n <Ui89SpaceVertical />\n </div>\n )\n }\n return (\n <Ui89LinkStealth\n key={index}\n href={option.href}\n onClick={!option.disabled ? option.onClick : undefined}\n >\n <div\n className={`ui89-menu-card__item ${\n option.disabled ? \"ui89-menu-card__item--disabled\" : \"\"\n }`}\n >\n <span>{option.label}</span>\n {option.oppositeLabel && <span>{option.oppositeLabel}</span>}\n </div>\n </Ui89LinkStealth>\n )\n })}\n </div>\n </Ui89CardHorizontalConnection>\n </Ui89Card>\n )\n}\n","import React from \"react\"\nimport \"./GridExpandTrick.css\"\n\nexport default function GridExpandTrick({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className=\"ui89-grid-expand-trick\">{children}</span>\n}\n","import React from \"react\"\nimport \"./ScrollContainer.css\"\n\nexport default function ScrollContainer({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className=\"ui89-scroll-container\">{children}</span>\n}\n","import React, { useMemo } from \"react\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport HoverShadow from \"./private/HoverShadow\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport GridExpandTrick from \"./private/GridExpandTrick\"\nimport ScrollContainer from \"./private/ScrollContainer\"\n\nimport \"./Ui89ModalDialog.css\"\nimport { useZIndexer } from \"../useZIndexer\"\nimport { useUi89 } from \"../Ui89Provider\"\n\nexport interface Ui89ModalDialogProps {\n open: boolean\n size?: \"small\" | \"medium\" | \"big\" | \"full\"\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,\n children,\n topCenter,\n onRequestClose,\n}: Ui89ModalDialogProps) {\n const zIndexer = useZIndexer(open)\n const { createPortal } = useUi89()\n\n const dialogClass = useMemo(() => {\n return [\"ui89-modal-dialog\", open ? \"ui89-modal-dialog--open\" : \"\"].join(\n \" \",\n )\n }, [open])\n\n const dialogBoxClass = useMemo(() => {\n return [\n \"ui89-modal-dialog__box\",\n `ui89-modal-dialog__box--size-${size ?? \"responsive\"}`,\n ].join(\" \")\n }, [size])\n\n function onClickBackdrop() {\n if (onRequestClose !== undefined) {\n onRequestClose()\n }\n }\n\n const vdom = (\n <div\n className={dialogClass}\n role=\"dialog\"\n style={{ zIndex: zIndexer.value }}\n >\n <div\n className=\"ui89-modal-dialog__backdrop\"\n role=\"presentation\"\n onClick={onClickBackdrop}\n ></div>\n\n <div className=\"ui89-modal-dialog__content\">\n <div className=\"ui89-modal-dialog__spacer\"></div>\n\n <div className={dialogBoxClass}>\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 </div>\n )\n\n return portalRoot !== null ? createPortal(vdom, portalRoot) : vdom\n}\n","import React from \"react\"\n\nimport \"./Ui89NameValuePair.css\"\n\nexport interface Ui89NameValuePairProps {\n name: React.ReactNode\n value: React.ReactNode\n leftMaxWidth?: number\n}\n\nexport function Ui89NameValuePair({\n name,\n value,\n leftMaxWidth,\n}: Ui89NameValuePairProps) {\n return (\n <div className=\"ui-89-name-value-pair\">\n <div\n className=\"ui-89-name-value-pair__name-wrapper\"\n style={{ maxWidth: `${leftMaxWidth}px` }}\n >\n <div className=\"ui-89-name-value-pair__name\">{name}</div>\n <div className=\"ui-89-name-value-pair__dots\"></div>\n </div>\n <div className=\"ui-89-name-value-pair__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\nimport ShortcutSvg from \"../images/shortcut.svg\"\n\nimport \"./Ui89Shortcut.css\"\nimport \"../style/typo.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=\"ui89-shortcut\" onClick={onNativeClick}>\n <div className=\"ui89-shortcut__image-container\">\n <img className=\"ui89-shortcut__image\" src={imageUrl} />\n\n <div className=\"ui89-shortcut__shortcut-icon-container\">\n <ShortcutSvg\n className=\"ui89-shortcut__shortcut-icon\"\n width={16}\n height={16}\n />\n </div>\n </div>\n\n <Ui89SpaceVertical gap={1} />\n\n <div\n className={`ui89-shortcut__label ui89-typo-small-bold`}\n onClick={onNativeClick}\n >\n {label}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89Tabs.css\"\nimport \"../style/typo.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={[\"ui89-tabs\", stretch ? \"ui89-tabs--stretch\" : \"\"].join(\" \")}\n >\n {options.map((option) => (\n <div\n className={[\n \"ui89-tabs__item\",\n \"ui89-typo-small-bold\",\n selected === option.value ? \"ui89-tabs__item--selected\" : \"\",\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 \"../style/typo.css\"\nimport \"../style/chosen-theme.css\"\n\nimport \"./Ui89TagBox.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={`ui89-tag-box ui89-typo-special ui89-chosen-theme-${theme}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState } from \"react\"\n\nimport \"./Ui89ThemeBackground.css\"\nimport \"../style/chosen-theme.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={`ui89-theme-background ui89-chosen-theme-${theme}`}>\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89TitleBox.css\"\nimport \"../style/typo.css\"\nimport \"../style/text.css\"\n\nexport interface Ui89TitleBoxProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleBox({ children }: Ui89TitleBoxProps) {\n return (\n <div className={`ui89-title-box ui89-typo-special`}>\n <div className={`ui89-title-box__inside ui89-text-single-line`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89TitleUnderline.css\"\nimport \"../style/typo.css\"\nimport \"../style/text.css\"\n\nexport interface Ui89TitleUnderlineProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleUnderline({ children }: Ui89TitleUnderlineProps) {\n return (\n <div className={`ui89-title-underline ui89-typo-special`}>\n <div className={`ui89-title-underline__inside ui89-text-single-line`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { ToastContainer, toast } from \"react-toastify\"\n\nimport \"./Ui89Toaster.css\"\nimport \"../style/typo.css\"\nimport \"../style/chosen-theme.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\", \"ui89-typo-normal\"]\n\n if (options.theme !== undefined) {\n classNames.push(`ui89-chosen-theme-${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, useCallback, useMemo } from \"react\"\nimport \"./Ui89VirtualTable.css\"\nimport \"../style/typo.css\"\nimport { Ui89TagBox } from \"./Ui89TagBox\"\nimport {\n Ui89VirtualList,\n Ui89VirtualListPropsRenderRowProps,\n} from \"./Ui89VirtualList\"\n\nexport enum Ui89VirtualTablePropsColumnAlign {\n left = \"left\",\n right = \"right\",\n center = \"center\",\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 halign?: keyof typeof Ui89VirtualTablePropsColumnAlign\n renderHeader?: (\n props: Ui89VirtualTablePropsColumnRenderHeaderParams<T>,\n ) => React.ReactNode\n renderBody: (\n props: Ui89VirtualTablePropsColumnRenderBodyParams<T>,\n ) => React.ReactNode\n}\n\nexport interface Ui89VirtualTableProps<T> {\n maxHeight?: string\n rows?: T[]\n columns?: Ui89VirtualTablePropsColumn<T>[]\n rowHeight?: number\n}\n\nexport const Ui89VirtualTable = React.memo(\n <T,>(props: Ui89VirtualTableProps<T>) => {\n const rows = useMemo<(T | undefined)[]>(() => {\n let rows: any[] = props.rows !== undefined ? props.rows.slice() : []\n\n rows.unshift(undefined)\n\n return rows\n }, [props.rows])\n\n const columns = useMemo(() => {\n return props.columns !== undefined ? props.columns : []\n }, [props.columns])\n\n const rowHeight = props.rowHeight ?? 20\n\n function getColumnWidth(index: number): number {\n return columns[index].width ?? 100\n }\n\n function getColumnHorizontalOffset(columnIndex: number) {\n let offset = 0\n\n for (let i = 0; i < columnIndex; i++) {\n offset += getColumnWidth(i)\n }\n\n return offset\n }\n\n function isLastColumn(columnIndex: number): boolean {\n return columnIndex === columns.length - 1\n }\n\n function getRowClass(rowIndex: number): string {\n const classes = [\"ui89-virtual-table__row\"]\n\n if (rowIndex === 0) {\n classes.push(\"ui89-virtual-table__row--first\")\n classes.push(\"ui89-typo-normal-bold\")\n }\n\n if (rowIndex === rows.length) {\n classes.push(\"ui89-virtual-table__row--last\")\n }\n\n return classes.join(\" \")\n }\n\n function getColumnClass(columnIndex: number): string {\n const halign = columns[columnIndex].halign ?? \"left\"\n\n const classes = [\n \"ui89-virtual-table__cell\",\n `ui89-virtual-table__cell--halign-${halign}`,\n ]\n\n if (columnIndex === 0) {\n classes.push(\"ui89-virtual-table__cell--column-first\")\n }\n\n if (isLastColumn(columnIndex)) {\n classes.push(\"ui89-virtual-table__cell--column-last\")\n }\n\n return classes.join(\" \")\n }\n\n /**\n * The width of an entire row.\n */\n function rowWidth() {\n return getColumnHorizontalOffset(columns.length)\n }\n\n const renderRow = useCallback(\n ({ index, row }: Ui89VirtualListPropsRenderRowProps<T>) => {\n return (\n <div\n className={getRowClass(index)}\n style={{ minWidth: rowWidth() + \"px\", height: \"100%\" }}\n >\n {columns.map((column, columnIndex) => {\n return (\n <div\n key={columnIndex}\n className={getColumnClass(columnIndex)}\n style={{\n top: 0,\n height: \"100%\",\n width: getColumnWidth(columnIndex) + \"px\",\n left: getColumnHorizontalOffset(columnIndex) + \"px\",\n }}\n >\n {index === 0\n ? columns[columnIndex].renderHeader\n ? columns[columnIndex].renderHeader({\n index: columnIndex,\n column: column,\n })\n : \"\"\n : columns[columnIndex].renderBody({\n index: index - 1,\n row: row,\n })}\n </div>\n )\n })}\n </div>\n )\n },\n [columns, rowHeight],\n )\n\n return (\n <>\n {rows.length > 1 ? (\n <Ui89VirtualList\n maxHeight={props.maxHeight}\n rows={rows as T[]}\n rowHeight={rowHeight}\n renderRow={renderRow}\n />\n ) : (\n <div className=\"ui89-virtual-table__empty\">\n <Ui89TagBox theme=\"warning\">Empty</Ui89TagBox>\n </div>\n )}\n </>\n )\n },\n) as <T>(props: Ui89VirtualTableProps<T>) => JSX.Element\n"],"names":["domCreatePortal","createPortal","React","dateFormat","formatDate","ShortcutSvg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/theme.ts","../../src/Ui89Provider.tsx","../../src/components/private/LinkBase.tsx","../../src/components/Ui89Breadcrumbs.tsx","../../src/components/Ui89BoxShadow.tsx","../../src/components/Ui89Button.tsx","../../src/components/Ui89Card.tsx","../../src/components/Ui89CardHorizontalConnection.tsx","../../src/components/Ui89Scene.tsx","../../src/useZIndexer.ts","../../src/components/Ui89Popover.tsx","../../src/date-utils.ts","../../src/timeout.ts","../../src/useUpdatedRef.ts","../../src/useDelayedOnChange.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89DateTimePicker.tsx","../../src/components/private/TimeAnimation.tsx","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89SpacePadding.tsx","../../src/components/Ui89Indent.tsx","../../src/components/Ui89InputCheckBox.tsx","../../src/useResizeObserver.ts","../../src/useScrollYPosition.ts","../../src/components/Ui89VirtualList.tsx","../../src/components/Ui89InputCheckList.tsx","../../src/components/Ui89InputCheckText.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/private/RenderCallback.tsx","../../src/components/Ui89InputSelect.tsx","../../src/components/Ui89InputNumber.tsx","../../src/components/Ui89InputPassword.tsx","../../src/components/Ui89InputTextArea.tsx","../../src/components/Ui89LinkBracket.tsx","../../src/components/Ui89LinkStealth.tsx","../../src/components/Ui89TitleSideLine.tsx","../../src/components/Ui89TitleBracket.tsx","../../src/components/Ui89TitleSpace.tsx","../../src/components/Ui89LinkUnderline.tsx","../../src/components/Ui89MenuBar.tsx","../../src/components/Ui89SpaceVertical.tsx","../../src/components/Ui89MenuCard.tsx","../../src/components/private/GridExpandTrick.tsx","../../src/components/private/ScrollContainer.tsx","../../src/components/Ui89ModalDialog.tsx","../../src/components/Ui89NameValuePair.tsx","../../src/images/shortcut.svg","../../src/components/Ui89Shortcut.tsx","../../src/components/Ui89SpaceHorizontal.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, useState } from \"react\"\nimport { createPortal as domCreatePortal } from \"react-dom\"\n\ntype RouterPush = (url: string) => void | Promise<void>\ntype CreatePortal = typeof domCreatePortal\n\ninterface Ui89OverrideType {\n routerPush?: RouterPush\n currentZIndex: number\n nextZIndex: () => number\n createPortal: CreatePortal\n}\n\nexport interface Ui89OverrideProps {\n children?: ReactNode\n routerPush?: RouterPush\n createPortal?: CreatePortal\n}\n\nconst Ui89Context = createContext<Ui89OverrideType>({\n currentZIndex: 1,\n nextZIndex: () => 1,\n createPortal: domCreatePortal,\n})\n\nexport const Ui89Provider: React.FC<Ui89OverrideProps> = ({\n routerPush,\n children,\n createPortal = domCreatePortal,\n}) => {\n const [zIndex, setZIndex] = useState<number>(1)\n\n function nextZIndex() {\n const next = zIndex + 1\n setZIndex(next)\n return next\n }\n\n return (\n <Ui89Context.Provider\n value={{ routerPush, currentZIndex: zIndex, nextZIndex, createPortal }}\n >\n {children}\n </Ui89Context.Provider>\n )\n}\n\nexport const useUi89 = (): Ui89OverrideType => {\n return useContext(Ui89Context)\n}\n","import React, { CSSProperties, useState } from \"react\"\n\nimport \"../../style/reset.css\"\n\nimport { useUi89 } from \"../../Ui89Provider\"\n\nexport interface Ui89LinkBaseProps {\n className?: string\n style?: CSSProperties\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkBase(props: Ui89LinkBaseProps) {\n const overrides = useUi89()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled =\n props.disabled || ((props.autoDisableOnClick ?? true) && clicking)\n\n async function onClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n e.preventDefault()\n return\n }\n\n try {\n setClicking(true)\n\n if (props.onClick !== undefined) {\n // A function takes over control.\n e.preventDefault()\n await props.onClick()\n } else if (props.href !== undefined) {\n if (props.href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n await overrides.routerPush(props.href)\n }\n }\n } else {\n // Do nothing.\n e.preventDefault()\n }\n } finally {\n setClicking(false)\n }\n }\n\n return (\n <a\n className={`ui-89-reset-a ${props.className}`}\n style={props.style}\n role=\"link\"\n href={props.href}\n onClick={onClick}\n >\n {props.children}\n </a>\n )\n}\n","import React, { useState } from \"react\"\n\nimport \"./Ui89Breadcrumbs.css\"\nimport \"../style/typo.css\"\nimport \"../style/reset.css\"\nimport \"../style/chosen-theme.css\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89 } from \"../Ui89Provider\"\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89BreadcrumbsPropsItem {\n label: React.ReactNode\n url?: string\n}\n\nexport interface Ui89BreadcrumbsProps<T> {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n items: T[]\n getLabel?: (item: T) => React.ReactNode\n getUrl?: (item: T) => string | undefined\n onSelect?: (item: T) => void | Promise<void>\n}\n\nexport function Ui89BreadcrumbsItem({\n index,\n label,\n url,\n onClick,\n}: {\n index: number\n label: React.ReactNode\n url?: string\n onClick?: () => void | Promise<void>\n}) {\n const style = { \"--ui89-index\": index } as React.CSSProperties\n\n return (\n <Ui89LinkBase\n className={`ui-89-reset-a ui89-breadcrumbs__item`}\n href={url}\n style={style}\n onClick={onClick}\n >\n <div className=\"ui89-breadcrumbs__item__background\"></div>\n {label}\n </Ui89LinkBase>\n )\n}\n\nexport function Ui89Breadcrumbs<T = Ui89BreadcrumbsPropsItem>({\n theme = Ui89Theme.primary,\n items,\n getLabel,\n getUrl,\n onSelect,\n}: Ui89BreadcrumbsProps<T>) {\n return (\n <div\n className={`ui89-breadcrumbs ui89-typo-special ui89-chosen-theme-${theme}`}\n >\n {[...items.entries()].reverse().map(([index, item]) => {\n const label = getLabel ? getLabel(item) : (item as any).label\n const url = getUrl ? getUrl(item) : (item as any).url\n\n const onClick = (() => {\n if (onSelect) {\n return () => {\n return onSelect(item)\n }\n } else {\n return undefined\n }\n })()\n\n return (\n <Ui89BreadcrumbsItem\n key={index}\n index={index}\n label={label}\n url={url}\n onClick={onClick}\n />\n )\n })}\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89BoxShadow.css\"\n\nexport interface Ui89BoxShadowProps {\n children?: React.ReactNode\n /**\n * The size of the shadow gap.\n */\n gap?: number\n /**\n * The size of the shadow row gap.\n */\n rowGap?: number\n /**\n * The size of the shadow column gap.\n */\n columnGap?: number\n}\n\nexport function Ui89BoxShadow({\n children,\n gap = 1,\n rowGap,\n columnGap,\n}: Ui89BoxShadowProps) {\n const style = {\n \"--ui89-box-shadow-row-gap\": `calc(var(--ui89-safe-space) * ${rowGap ?? gap})`,\n \"--ui89-box-shadow-column-gap\": `calc(var(--ui89-safe-space) * ${columnGap ?? gap})`,\n } as React.CSSProperties\n\n return (\n <span className=\"ui89-box-shadow\" style={style}>\n <span className=\"ui89-box-shadow__bottom\"></span>\n <span className=\"ui89-box-shadow__right\"></span>\n {children}\n </span>\n )\n}\n","import React, { useState } from \"react\"\n\nimport \"./Ui89Button.css\"\nimport \"../style/text.css\"\nimport \"../style/typo.css\"\nimport \"../style/chosen-theme.css\"\nimport \"../style/reset.css\"\n\nimport { Ui89BoxShadow } from \"./Ui89BoxShadow\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89 } from \"../Ui89Provider\"\n\nexport enum Ui89ButtonPropsSize {\n standard = \"standard\",\n square = \"square\",\n}\n\nexport enum Ui89ButtonPropsType {\n submit = \"submit\",\n reset = \"reset\",\n}\n\nexport interface Ui89ButtonProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n size?: Ui89ButtonPropsSize | keyof typeof Ui89ButtonPropsSize\n block?: boolean\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n activated?: boolean\n type?: keyof typeof Ui89ButtonPropsType\n}\n\nexport function Ui89Button({\n theme = Ui89Theme.primary,\n size = Ui89ButtonPropsSize.standard,\n type,\n block,\n onClick,\n href,\n children,\n autoDisableOnClick = true,\n disabled,\n activated,\n}: Ui89ButtonProps) {\n const overrides = useUi89()\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 (onClick !== undefined) {\n // Takes precedence over href.\n\n // Prevent anchor tag from taking over navigation.\n e.preventDefault()\n\n await onClick()\n } else if (href !== undefined) {\n if (href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n // Prevent anchor tag from taking over navigation.\n e.preventDefault()\n\n await overrides.routerPush(href)\n }\n }\n }\n } finally {\n setClicking(false)\n }\n }\n\n async function onButtonClick(e: React.MouseEvent<HTMLButtonElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (onClick === undefined) {\n // No handler.\n return\n }\n\n await onClick()\n } finally {\n setClicking(false)\n }\n }\n\n let containerClass = [\"ui89-button\", `ui89-button--size-${size}`].join(\" \")\n\n let buttonClass = [\n \"ui89-button__button\",\n \"ui89-typo-special\",\n \"ui89-text-ellipsis\",\n `ui89-chosen-theme-${theme}`,\n activated ? \"ui89-button__button--active\" : undefined,\n block ? \"ui89-button__button--block\" : undefined,\n disabled ? \"ui89-button__button--disabled\" : undefined,\n clicking ? \"ui89-button__button--active\" : undefined,\n ].join(\" \")\n\n return (\n <div className={containerClass}>\n <Ui89BoxShadow>\n {href ? (\n <a\n className=\"ui-89-reset-a\"\n role=\"button\"\n href={href}\n onClick={onAnchorClick}\n >\n <span className={buttonClass}>\n <div className=\"ui89-button__button__content\">{children}</div>\n </span>\n </a>\n ) : (\n <button\n className=\"ui-89-reset-button\"\n type={type || \"button\"}\n onClick={onButtonClick}\n disabled={localDisabled}\n >\n <span className={buttonClass}>\n <div className=\"ui89-button__button__content\">{children}</div>\n </span>\n </button>\n )}\n </Ui89BoxShadow>\n </div>\n )\n}\n","import React from \"react\"\nimport \"./Ui89Card.css\"\n\nexport interface Ui89CardProps {\n topLeft?: React.ReactNode\n topRight?: React.ReactNode\n topCenter?: React.ReactNode\n bottomLeft?: React.ReactNode\n bottomRight?: React.ReactNode\n bottomCenter?: React.ReactNode\n children: React.ReactNode\n}\n\nexport function Ui89Card(props: Ui89CardProps) {\n return (\n <div className={`ui89-card`}>\n <div className=\"ui89-card__inside\">\n {props.topLeft && (\n <div className=\"ui89-card__top-left\">{props.topLeft}</div>\n )}\n {props.topCenter && (\n <div className=\"ui89-card__top-center\">{props.topCenter}</div>\n )}\n {props.topRight && (\n <div className=\"ui89-card__top-right\">{props.topRight}</div>\n )}\n\n {props.children}\n\n {props.bottomLeft && (\n <div className=\"ui89-card__bottom-left\">{props.bottomLeft}</div>\n )}\n {props.bottomCenter && (\n <div className=\"ui89-card__bottom-center\">{props.bottomCenter}</div>\n )}\n {props.bottomRight && (\n <div className=\"ui89-card__bottom-right\">{props.bottomRight}</div>\n )}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport \"./Ui89Card.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={`ui89-card__horizontal-connection ${overflow ? \"ui89-card__horizontal-connection--overflow\" : \"\"}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Look } from \"../theme\"\n\nimport \"./Ui89Scene.css\"\nimport \"../style/look.css\"\nimport \"../style/typo.css\"\nimport \"../style/scrollbar.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={`ui89-scene ui-89-look-${look} ui89-typo-normal ui89-scrollbar`}\n >\n {children}\n </div>\n )\n}\n","import { useEffect, useState } from \"react\"\nimport { useUi89 } from \"./Ui89Provider\"\n\ninterface ZIndexer {\n value: number\n}\n\nexport function useZIndexer(open: boolean): ZIndexer {\n const overrides = useUi89()\n const [value, setValue] = useState<number>(overrides.currentZIndex)\n\n useEffect(() => {\n if (open) {\n setValue(overrides.nextZIndex())\n }\n }, [open])\n\n return {\n value,\n }\n}\n","import React from \"react\"\nimport {\n useFloating,\n autoUpdate,\n size,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n FloatingFocusManager,\n FloatingPortal,\n Placement,\n} from \"@floating-ui/react\"\nimport \"../style/text.css\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport { useZIndexer } from \"../useZIndexer\"\n\nexport enum Ui89PopoverPropsPlacement {\n top = \"top\",\n topStart = \"topStart\",\n topEnd = \"topEnd\",\n right = \"right\",\n rightStart = \"rightStart\",\n rightEnd = \"rightEnd\",\n bottom = \"bottom\",\n bottomStart = \"bottomStart\",\n bottomEnd = \"bottomEnd\",\n left = \"left\",\n leftStart = \"leftStart\",\n leftEnd = \"leftEnd\",\n}\n\nexport interface Ui89PopoverPropsRenderContainerProps {\n props: React.HTMLProps<Element>\n setRef: any\n}\n\nexport interface Ui89PopoverProps<T> {\n open: boolean\n\n placement?: Ui89PopoverPropsPlacement | keyof typeof Ui89PopoverPropsPlacement\n\n onOpenChange: (value: boolean) => void\n\n /**\n * Whether to force the popover to take up as much of the available width\n * as possible.\n */\n popoverOverflowForce?: boolean\n\n /**\n * How large the popover can be when it takes up available width.\n */\n popoverOverflowMaxWidth?: number\n\n renderContainer: (\n props: Ui89PopoverPropsRenderContainerProps,\n ) => React.ReactNode\n\n renderPopover: () => React.ReactNode\n}\n\nfunction toFloatingUiPlacement(\n placement: Ui89PopoverPropsPlacement | keyof typeof Ui89PopoverPropsPlacement,\n): Placement {\n switch (placement) {\n case Ui89PopoverPropsPlacement.top:\n return \"top\"\n case Ui89PopoverPropsPlacement.topStart:\n return \"top-start\"\n case Ui89PopoverPropsPlacement.topEnd:\n return \"top-end\"\n case Ui89PopoverPropsPlacement.right:\n return \"right\"\n case Ui89PopoverPropsPlacement.rightStart:\n return \"right-start\"\n case Ui89PopoverPropsPlacement.rightEnd:\n return \"right-end\"\n case Ui89PopoverPropsPlacement.bottom:\n return \"bottom\"\n case Ui89PopoverPropsPlacement.bottomStart:\n return \"bottom-start\"\n case Ui89PopoverPropsPlacement.bottomEnd:\n return \"bottom-end\"\n case Ui89PopoverPropsPlacement.left:\n return \"left\"\n case Ui89PopoverPropsPlacement.leftStart:\n return \"left-start\"\n case Ui89PopoverPropsPlacement.leftEnd:\n return \"left-end\"\n default:\n throw new Error(`Unknown placement: ${placement}`)\n }\n}\n\nexport function Ui89Popover<T>(props: Ui89PopoverProps<T>) {\n const zIndexer = useZIndexer(props.open)\n const { refs, floatingStyles, context } = useFloating({\n open: props.open,\n onOpenChange: props.onOpenChange,\n middleware: [\n size({\n apply({ availableWidth, availableHeight, elements }) {\n let width = elements.reference.getBoundingClientRect().width\n\n if (props.popoverOverflowMaxWidth !== undefined) {\n if (props.popoverOverflowMaxWidth > width) {\n width = props.popoverOverflowMaxWidth\n }\n }\n\n const style: any = {\n maxWidth: `${width}px`,\n maxHeight: `${Math.max(0, availableHeight)}px`,\n }\n\n if (props.popoverOverflowForce) {\n style.width = `${availableWidth}px`\n }\n\n // Change styles, e.g.\n Object.assign(elements.floating.style, style)\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n placement: toFloatingUiPlacement(\n props.placement ?? Ui89PopoverPropsPlacement.bottomStart,\n ),\n strategy: \"fixed\",\n })\n\n const click = useClick(context, {\n keyboardHandlers: false,\n })\n const dismiss = useDismiss(context)\n const role = useRole(context)\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n click,\n dismiss,\n role,\n ])\n\n return (\n <>\n {props.renderContainer({\n setRef: refs.setReference,\n props: getReferenceProps(),\n })}\n {props.open && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={-1}\n >\n <Ui89Scene>\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n zIndex: zIndexer.value,\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {props.renderPopover()}\n </div>\n </Ui89Scene>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n )\n}\n","export interface DateComponents {\n hours: number\n minutes: number\n seconds: number\n milliseconds: number\n day: number\n month: number\n year: number\n}\n\nfunction dateComponents(date: Date): DateComponents {\n return {\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n milliseconds: date.getMilliseconds(),\n day: date.getDate(),\n month: date.getMonth() + 1,\n year: date.getFullYear(),\n }\n}\n\nexport function dateFormat(date: Date, format: string) {\n const placeholders: Record<string, string> = {\n YYYY: date.getFullYear().toString(),\n MM: (date.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: date.getDate().toString().padStart(2, \"0\"),\n HH: date.getHours().toString().padStart(2, \"0\"),\n mm: date.getMinutes().toString().padStart(2, \"0\"),\n ss: date.getSeconds().toString().padStart(2, \"0\"),\n hh: (date.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: date.getHours() >= 12 ? \"PM\" : \"AM\",\n }\n\n // Replace placeholders in the format string\n let formattedDate = format\n for (const [key, value] of Object.entries(placeholders)) {\n formattedDate = formattedDate.replace(new RegExp(key, \"g\"), value)\n }\n\n return formattedDate\n}\n\nexport function dateParse(dateStr: string, format: string): Date | null {\n const placeholderRegex: Record<string, string> = {\n YYYY: \"(\\\\d{4})\",\n MM: \"(\\\\d{2})\",\n DD: \"(\\\\d{2})\",\n HH: \"(\\\\d{2})\",\n mm: \"(\\\\d{2})\",\n ss: \"(\\\\d{2})\",\n hh: \"(\\\\d{2})\",\n A: \"(AM|PM)\",\n }\n const placeholderKeys = Object.keys(placeholderRegex).sort(\n (a, b) => b.length - a.length,\n )\n\n let regexPattern = \"^\"\n const partTypes: string[] = []\n let i = 0\n while (i < format.length) {\n let found = false\n for (const key of placeholderKeys) {\n if (format.startsWith(key, i)) {\n regexPattern += placeholderRegex[key]\n partTypes.push(key)\n i += key.length\n found = true\n break\n }\n }\n if (!found) {\n const char = format[i]\n regexPattern += char.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\")\n i++\n }\n }\n regexPattern += \"$\"\n\n const regex = new RegExp(regexPattern)\n const match = dateStr.match(regex)\n\n if (!match) {\n return null\n }\n\n const now = new Date()\n const parts = {\n year: now.getFullYear(),\n month: now.getMonth(),\n day: now.getDate(),\n hours: 0,\n minutes: 0,\n seconds: 0,\n }\n\n let ampm: \"AM\" | \"PM\" | undefined\n const parsedFields: Set<string> = new Set()\n\n for (let j = 1; j < match.length; j++) {\n const type = partTypes[j - 1]\n const value = match[j]\n parsedFields.add(type)\n\n if (type === \"YYYY\") parts.year = parseInt(value, 10)\n else if (type === \"MM\") parts.month = parseInt(value, 10) - 1\n else if (type === \"DD\") parts.day = parseInt(value, 10)\n else if (type === \"HH\") parts.hours = parseInt(value, 10)\n else if (type === \"mm\") parts.minutes = parseInt(value, 10)\n else if (type === \"ss\") parts.seconds = parseInt(value, 10)\n else if (type === \"hh\") parts.hours = parseInt(value, 10)\n else if (type === \"A\") ampm = value as \"AM\" | \"PM\"\n }\n\n if (ampm) {\n let hours = parts.hours\n if (ampm === \"PM\" && hours < 12) {\n hours += 12\n }\n if (ampm === \"AM\" && hours === 12) {\n // 12 AM is 00 hours\n hours = 0\n }\n parts.hours = hours\n }\n\n const date = new Date(\n parts.year,\n parts.month,\n parts.day,\n parts.hours,\n parts.minutes,\n parts.seconds,\n )\n\n // Validate date by checking if components overflowed for parsed fields\n if (parsedFields.has(\"YYYY\") && date.getFullYear() !== parts.year) return null\n if (parsedFields.has(\"MM\") && date.getMonth() !== parts.month) return null\n if (parsedFields.has(\"DD\") && date.getDate() !== parts.day) return null\n if (\n (parsedFields.has(\"HH\") || parsedFields.has(\"hh\")) &&\n date.getHours() !== parts.hours\n )\n return null\n if (parsedFields.has(\"mm\") && date.getMinutes() !== parts.minutes) return null\n if (parsedFields.has(\"ss\") && date.getSeconds() !== parts.seconds) return null\n\n return date\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 * Lets you know whether a call is pending.\n */\n isPending() {\n return Timeout.pending(id)\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 { useRef, useEffect, MutableRefObject } from \"react\"\n\nexport function useUpdatedRef<T>(value: T): MutableRefObject<T> {\n const valueRef = useRef<T>(value)\n\n useEffect(() => {\n valueRef.current = value\n }, [value])\n\n return valueRef\n}\n","import { useEffect, useRef, useState } from \"react\"\nimport { throttledTimeout } from \"./timeout\"\nimport { useUpdatedRef } from \"./useUpdatedRef\"\n\nconst LAST_VALUE_CHANGED = Symbol(\"LAST_VALUE_CHANGED\")\nconst OVERRIDEN_VALUE_UNDEFINED = Symbol(\"OVERRIDEN_VALUE_UNDEFINED\")\n\ninterface UseDelayedOnChangeState {\n value: any\n setValue: (newVal: any) => void\n onChange: (newVal: any) => void\n onFocus: () => void\n onBlur: () => void\n onConfirm: () => void\n}\n\nexport function useDelayedOnChange(props: {\n defaultValue?: any\n value: any\n onChange?: (value: any) => void\n filter?: (value: any) => any\n}): UseDelayedOnChangeState {\n const valueRef = useUpdatedRef(props.value)\n const onChangeRef = useUpdatedRef(props.onChange)\n\n const [intermediateValue, setIntermediateValue] = useState<any>(\n props.defaultValue || props.value,\n )\n\n useEffect(() => {\n stateRef.current.setValue(props.value)\n }, [props.value])\n\n function callOnChange() {\n let newVal = stateRef.current.value\n\n if (props.filter !== undefined) {\n newVal = props.filter(newVal)\n }\n\n if (newVal !== valueRef.current) {\n onChangeRef.current?.call(null, newVal)\n }\n\n return newVal\n }\n\n class StateUnknown implements UseDelayedOnChangeState {\n state = \"unknown\"\n\n value: any\n\n throttledTimeout: any\n\n constructor() {\n this.throttledTimeout = throttledTimeout()\n }\n\n setValue(newVal: any) {\n setIntermediateValue(newVal)\n }\n\n onChange(newVal: any) {\n setIntermediateValue(newVal)\n stateRef.current.throttledTimeout.call(300, callOnChange)\n }\n\n onFocus() {\n let newState = new StateFocus()\n newState.value = stateRef.current.value\n newState.lastValue = newState.value\n setState(newState)\n }\n\n onBlur() {}\n\n onConfirm() {\n callOnChange()\n }\n }\n\n class StateFocus implements UseDelayedOnChangeState {\n state = \"focus\"\n\n value: any\n\n lastValue: any\n\n /**\n * If we receive a new value, we keep track of it here. We set this to\n * OVERRIDEN_VALUE_UNDEFINED if the value is meant to be discarded.\n */\n overridenValue: any\n\n throttledTimeout: any\n\n constructor() {\n this.overridenValue = OVERRIDEN_VALUE_UNDEFINED\n this.throttledTimeout = throttledTimeout()\n }\n\n setValue(newVal: any) {\n if (stateRef.current.value === stateRef.current.lastValue) {\n // No changes.\n setIntermediateValue(newVal)\n\n // Making sure we keep updating.\n stateRef.current.lastValue = newVal\n } else {\n // There have been changes. Let's not bother the user.\n stateRef.current.overridenValue = newVal\n }\n }\n\n onChange(newVal: any) {\n // Discard last setValue call\n stateRef.current.overridenValue = OVERRIDEN_VALUE_UNDEFINED\n stateRef.current.lastValue = LAST_VALUE_CHANGED\n\n setIntermediateValue(newVal)\n stateRef.current.throttledTimeout.call(300, callOnChange)\n }\n\n onFocus() {}\n\n onBlur() {\n // We need to make sure that we emit immediately. Do not want to leave\n // user waiting.\n\n // We can cancel this one.\n stateRef.current.throttledTimeout.abort()\n\n if (stateRef.current.overridenValue !== OVERRIDEN_VALUE_UNDEFINED) {\n stateRef.current.value = stateRef.current.overridenValue\n }\n\n let newVal = callOnChange()\n\n setIntermediateValue(newVal)\n let newState = new StateUnknown()\n newState.value = newVal\n setState(newState)\n }\n\n onConfirm() {\n callOnChange()\n }\n }\n\n const [state, setState] = useState<UseDelayedOnChangeState>(() => {\n let newState = new StateUnknown()\n newState.value = intermediateValue\n return newState\n })\n\n const stateRef = useUpdatedRef(state)\n\n stateRef.current.value = intermediateValue\n\n return state\n}\n","import React, { useImperativeHandle, useRef } from \"react\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\nimport { useDelayedOnChange } from \"../useDelayedOnChange\"\n\nexport interface Ui89InputTextProps {\n value?: any\n placeholder?: string\n autoTrim?: boolean\n disabled?: boolean\n textAlign?: React.CSSProperties[\"textAlign\"]\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nexport interface Ui89InputTextRef {\n focus: () => void\n}\n\nexport const Ui89InputText = React.forwardRef<\n Ui89InputTextRef,\n Ui89InputTextProps\n>(function Ui89InputText(\n {\n value,\n placeholder,\n autoTrim = true,\n disabled,\n textAlign,\n onChange,\n onTyping,\n onFocus,\n onBlur,\n },\n ref,\n) {\n const inputRef = useRef<HTMLInputElement>(null)\n const delayedState = useDelayedOnChange({\n defaultValue: \"\",\n value,\n onChange,\n filter(value: any) {\n if (autoTrim) {\n if (typeof value === \"string\") {\n value = value.replace(/\\s+/g, \" \").trim()\n }\n }\n\n return value\n },\n })\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n inputRef.current?.focus()\n },\n }))\n\n return (\n <div>\n <input\n ref={inputRef}\n className={[\n \"ui89-input-box\",\n disabled ? \"ui89-input-box--disabled\" : \"\",\n ].join(\" \")}\n style={{ textAlign }}\n type=\"text\"\n disabled={disabled}\n value={delayedState.value}\n onChange={(e) => delayedState.onChange(e.target.value)}\n onBlur={delayedState.onBlur}\n onFocus={delayedState.onFocus}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n delayedState.onConfirm()\n }\n }}\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, { useMemo } 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 disabled?: boolean\n onChange?: (value: any) => void\n precision?: number\n textAlign?: React.CSSProperties[\"textAlign\"]\n}\n\nexport function isTextNumber(text: string): boolean {\n return /^\\d+(\\.\\d+)?$/.test(text)\n}\n\nfunction displayText(value: any) {\n if (value === undefined) {\n // No idea how to display this.\n return \"\"\n } else if (isNaN(value)) {\n // No idea what to display.\n return \"\"\n }\n\n return value.toString()\n}\n\nfunction dotsMakeMoreSense(value: string) {\n return value.replaceAll(\",\", \".\")\n}\n\nexport function Ui89InputTextNumber(props: Ui89InputTextNumberProps) {\n const wrappedValue = useMemo(() => {\n return displayText(props.value)\n }, [props.value])\n\n function implOnChange(value: string) {\n if (props.onChange === undefined) {\n return\n }\n\n if (value === \"\") {\n // Use empty value.\n props.onChange(props.emptyValue)\n return\n }\n\n value = stringRemoveAllWhitespace(value)\n value = dotsMakeMoreSense(value)\n\n if (!isTextNumber(value)) {\n // We end here.\n return\n }\n\n const numberValue = Number(value)\n\n if (props.min !== undefined) {\n if (numberValue <= props.min) {\n value = String(props.min)\n }\n }\n\n if (props.max !== undefined) {\n if (numberValue >= props.max) {\n value = String(props.max)\n }\n }\n\n props.onChange(value)\n }\n\n return (\n <Ui89InputText\n value={wrappedValue}\n onChange={implOnChange}\n disabled={props.disabled}\n textAlign={props.textAlign}\n />\n )\n}\n","import React, { useState, useEffect } from \"react\"\nimport { Ui89Popover } from \"./Ui89Popover\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89Button, Ui89ButtonPropsSize } from \"./Ui89Button\"\nimport { dateParse, dateFormat as formatDate } from \"../date-utils\"\nimport { Ui89InputText } from \"./Ui89InputText\"\nimport { Ui89InputTextNumber } from \"./Ui89InputTextNumber\"\n\nimport \"./Ui89DateTimePicker.css\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\nimport { Ui89BoxShadow } from \"./Ui89BoxShadow\"\n\nexport interface Ui89DateTimePickerProps {\n value?: Date | null\n onChange?: (value: Date | null) => void\n dateFormat?: string\n}\n\nexport function Ui89DateTimePicker(props: Ui89DateTimePickerProps) {\n const [open, setOpen] = useState(false)\n const [inputValue, setInputValue] = useState(\"\")\n const [viewDate, setViewDate] = useState(new Date())\n\n const dateFormat = props.dateFormat ?? \"YYYY/MM/DD HH:mm:ss\"\n\n useEffect(() => {\n if (props.value) {\n setInputValue(formatDate(props.value, dateFormat))\n setViewDate(props.value)\n } else {\n setInputValue(\"\")\n }\n }, [props.value, dateFormat])\n\n function handleInputChange(val: string) {\n setInputValue(val)\n const date = dateParse(val, dateFormat)\n if (date !== null) {\n if (props.onChange) props.onChange(date)\n setViewDate(date)\n } else if (val.trim() === \"\") {\n if (props.onChange) props.onChange(null)\n }\n }\n\n function adjustMonth(offset: number) {\n const newDate = new Date(viewDate)\n newDate.setMonth(newDate.getMonth() + offset)\n setViewDate(newDate)\n }\n\n function handleDayClick(day: Date) {\n const newDate = new Date(day)\n if (props.value) {\n newDate.setHours(props.value.getHours())\n newDate.setMinutes(props.value.getMinutes())\n newDate.setSeconds(props.value.getSeconds())\n } else {\n newDate.setHours(12, 0, 0, 0)\n }\n if (props.onChange) props.onChange(newDate)\n }\n\n function handleTimeChange(type: \"h\" | \"m\" | \"s\", val: any) {\n if (!props.value) return\n const num = parseInt(val, 10)\n if (isNaN(num)) return\n const newDate = new Date(props.value)\n if (type === \"h\") newDate.setHours(Math.min(23, Math.max(0, num)))\n if (type === \"m\") newDate.setMinutes(Math.min(59, Math.max(0, num)))\n if (type === \"s\") newDate.setSeconds(Math.min(59, Math.max(0, num)))\n if (props.onChange) props.onChange(newDate)\n }\n\n function renderCalendar() {\n const year = viewDate.getFullYear()\n const month = viewDate.getMonth()\n const firstDay = new Date(year, month, 1)\n const startDay = firstDay.getDay()\n const startDate = new Date(year, month, 1 - startDay)\n\n const days = []\n const current = new Date(startDate)\n for (let i = 0; i < 42; i++) {\n days.push(new Date(current))\n current.setDate(current.getDate() + 1)\n }\n\n return (\n <div style={{ width: \"300px\", padding: \"10px\" }}>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: \"10px\",\n }}\n >\n <Ui89Button\n size={Ui89ButtonPropsSize.square}\n onClick={() => adjustMonth(-1)}\n >\n <\n </Ui89Button>\n <div className=\"ui89-typo-normal\">\n {formatDate(viewDate, \"MM/YYYY\")}\n </div>\n <Ui89Button\n size={Ui89ButtonPropsSize.square}\n onClick={() => adjustMonth(1)}\n >\n >\n </Ui89Button>\n </div>\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(7, 1fr)\",\n gap: \"2px\",\n }}\n >\n {[\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"].map((d) => (\n <div\n key={d}\n className=\"ui89-typo-small-bold\"\n style={{ textAlign: \"center\", padding: \"5px\" }}\n >\n {d}\n </div>\n ))}\n {days.map((d, i) => {\n const isSelected =\n props.value &&\n d.getDate() === props.value.getDate() &&\n d.getMonth() === props.value.getMonth() &&\n d.getFullYear() === props.value.getFullYear()\n const isCurrentMonth = d.getMonth() === month\n\n return (\n <div\n key={i}\n className=\"ui89-typo-normal\"\n onClick={() => handleDayClick(d)}\n style={{\n textAlign: \"center\",\n padding: \"5px\",\n cursor: \"pointer\",\n backgroundColor: isSelected\n ? \"var(--ui89-theme-primary-bg-color)\"\n : \"transparent\",\n opacity: isCurrentMonth ? 1 : 0.3,\n }}\n >\n {d.getDate()}\n </div>\n )\n })}\n </div>\n {props.value && (\n <div\n style={{\n display: \"flex\",\n gap: \"5px\",\n marginTop: \"10px\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <div style={{ width: \"35px\" }}>\n <Ui89InputTextNumber\n value={props.value.getHours()}\n onChange={(val) => handleTimeChange(\"h\", val)}\n min={0}\n max={23}\n textAlign=\"right\"\n />\n </div>\n :\n <div style={{ width: \"35px\" }}>\n <Ui89InputTextNumber\n value={props.value.getMinutes()}\n onChange={(val) => handleTimeChange(\"m\", val)}\n min={0}\n max={59}\n textAlign=\"right\"\n />\n </div>\n :\n <div style={{ width: \"35px\" }}>\n <Ui89InputTextNumber\n value={props.value.getSeconds()}\n onChange={(val) => handleTimeChange(\"s\", val)}\n min={0}\n max={59}\n textAlign=\"right\"\n />\n </div>\n </div>\n )}\n </div>\n )\n }\n\n return (\n <Ui89Popover\n open={open}\n onOpenChange={setOpen}\n popoverOverflowMaxWidth={360}\n renderContainer={({ setRef, props: popoverProps }) => (\n <div className=\"ui89-date-time-picker\" ref={setRef} {...popoverProps}>\n <Ui89InputText\n value={inputValue}\n onChange={handleInputChange}\n placeholder={dateFormat}\n />\n </div>\n )}\n renderPopover={() => (\n <div style={{ maxWidth: \"360px\" }}>\n <Ui89BoxShadow>\n <Ui89Card>{renderCalendar()}</Ui89Card>\n </Ui89BoxShadow>\n </div>\n )}\n />\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 \"../style/typo.css\"\nimport {\n TimeAnimation,\n TimeAnimationPropsChildrenProps,\n} from \"./private/TimeAnimation\"\nimport { dateFormat } from \"../date-utils\"\n\nexport interface Ui89DigitalClockProps {\n format?: string // Custom format string\n}\n\nexport function Ui89DigitalClock({\n format = \"HH:mm:ss\",\n}: Ui89DigitalClockProps) {\n function render({ now }: TimeAnimationPropsChildrenProps) {\n return dateFormat(now, format)\n }\n\n return (\n <span className=\"ui89-typo-special\">\n <TimeAnimation>{render}</TimeAnimation>\n </span>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport \"../style/chosen-theme.css\"\n\nimport \"./Ui89HighlightText.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={`ui89-highlight-text ui89-chosen-theme-${theme} ${block ? \"ui89-highlight-text--block\" : null}`}\n >\n {children}\n </span>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89Hr.css\"\nimport { Ui89Theme } from \"../theme\"\nimport \"../style/chosen-theme.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={`ui-89-hr ${`ui-89-hr--${look}`} ${theme !== undefined ? \"ui-89-hr--use-theme\" : \"\"} ${theme !== undefined ? `ui89-chosen-theme-${theme}` : \"\"}`}\n >\n <div className=\"ui-89-hr__double\"></div>\n </div>\n )\n}\n","import React from \"react\"\n\nexport interface Ui89SpacePaddingProps {\n gap?: number\n gapVertical?: number\n gapHorizontal?: number\n gapTop?: number\n gapRight?: number\n gapBottom?: number\n gapLeft?: number\n children?: React.ReactNode\n}\n\nexport function Ui89SpacePadding(props: Ui89SpacePaddingProps) {\n const gap = props.gap ?? 1\n\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${props.gapTop ?? props.gapVertical ?? gap})`,\n paddingRight: `calc(var(--ui89-safe-space) * ${props.gapRight ?? props.gapHorizontal ?? gap})`,\n paddingBottom: `calc(var(--ui89-safe-space) * ${props.gapBottom ?? props.gapVertical ?? gap})`,\n paddingLeft: `calc(var(--ui89-safe-space) * ${props.gapLeft ?? props.gapHorizontal ?? gap})`,\n }\n\n return <div style={style}>{props.children}</div>\n}\n","import React from \"react\"\nimport { Ui89SpacePadding } from \"./Ui89SpacePadding\"\n\nexport interface Ui89IndentProps {\n gap?: number\n children?: React.ReactNode\n}\n\nexport function Ui89Indent(props: Ui89IndentProps) {\n const gap = props.gap ?? 1\n return (\n <Ui89SpacePadding gap={0} gapLeft={gap}>\n {props.children}\n </Ui89SpacePadding>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89InputCheckBox.css\"\n\nexport interface Ui89InputCheckBoxProps {\n value: boolean\n onChange?: (value: boolean) => void\n}\n\nexport function Ui89InputCheckBox(props: Ui89InputCheckBoxProps) {\n function toggle() {\n if (props.onChange) {\n props.onChange(!props.value)\n }\n }\n\n return (\n <span\n className=\"ui89-input-check-box\"\n onClick={toggle}\n role=\"checkbox\"\n aria-checked={props.value ? \"true\" : \"false\"}\n >\n <span className=\"ui89-input-check-box__x\">\n {props.value ? <>X</> : <> </>}\n </span>\n </span>\n )\n}\n","import { useState, useEffect, useRef } from \"react\"\n\ntype Size = { width: number; height: number }\n\ninterface UseResizeObserverResult {\n size: Size\n}\n\nexport const useResizeObserver = <T extends HTMLElement>(\n ref: React.RefObject<T>,\n): UseResizeObserverResult => {\n const [size, setSize] = useState<Size>({ width: 0, height: 0 })\n\n useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n for (let entry of entries) {\n setSize({\n width:\n entry.borderBoxSize?.[0]?.inlineSize ?? entry.contentRect.width,\n height:\n entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height,\n })\n }\n })\n\n if (ref.current) {\n observer.observe(ref.current)\n }\n\n return () => {\n observer.disconnect()\n }\n }, [ref.current])\n\n return {\n size,\n }\n}\n","import { useState, useEffect, useRef, RefObject } from \"react\"\n\nexport const useScrollYPosition = (ref: RefObject<HTMLElement>): number => {\n const [scrollY, setScrollY] = useState(0)\n const ticking = useRef(false)\n const observer = useRef<MutationObserver | null>(null)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const handleScroll = () => {\n if (!ticking.current) {\n ticking.current = true\n requestAnimationFrame(() => {\n setScrollY(element.scrollTop)\n ticking.current = false\n })\n }\n }\n\n element.addEventListener(\"scroll\", handleScroll, { passive: true })\n\n observer.current = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === \"childList\" && ref.current !== element) {\n element.removeEventListener(\"scroll\", handleScroll)\n ref.current?.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n }\n }\n })\n\n observer.current.observe(document.body, { childList: true, subtree: true })\n\n return () => {\n element.removeEventListener(\"scroll\", handleScroll)\n observer.current?.disconnect()\n observer.current = null\n }\n }, [ref])\n\n return scrollY\n}\n","import React, { useState, useEffect, useRef, useMemo } from \"react\"\n\nimport \"./Ui89VirtualList.css\"\nimport { useResizeObserver } from \"../useResizeObserver\"\nimport { useScrollYPosition } from \"../useScrollYPosition\"\n\nexport interface Ui89VirtualListPropsRenderRowProps<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualListProps<T> {\n maxHeight?: string\n rows: T[]\n rowHeight?: number\n renderRow: (props: Ui89VirtualListPropsRenderRowProps<T>) => React.ReactNode\n getRowKey?: (row: T) => string\n}\n\ninterface VisibleRow<T> {\n userKey: string\n index: number\n row: T\n key: number\n render: React.ReactNode\n style: React.CSSProperties\n}\n\nfunction popAnyEntry<K, V>(map: Map<K, V>): V | undefined {\n const iterator = map.keys().next()\n if (!iterator.done) {\n const key = iterator.value\n const value = map.get(key)!\n map.delete(key)\n return value\n }\n return undefined\n}\n\n/**\n * Virtualization at row level. Great for long lists.\n *\n * Can be used to implement table components with few columns.\n */\nexport const Ui89VirtualList = React.memo(\n <T,>(props: Ui89VirtualListProps<T>) => {\n const keyCounter = useRef<number>(0)\n const scrollContainer = useRef<HTMLDivElement>(null)\n const scrollAreaContainer = useRef<HTMLDivElement>(null)\n\n const { size } = useResizeObserver(scrollContainer)\n const scrollY = useScrollYPosition(scrollContainer)\n\n const rowHeight = props.rowHeight ?? 50\n\n const totalHeight = rowHeight * props.rows.length\n\n const [visibleRows, setVisibleRows] = useState<Map<string, VisibleRow<T>>>(\n new Map(),\n )\n\n function updateVisibleRows(cache: Map<string, VisibleRow<T>>) {\n if (size.height === 0) {\n setVisibleRows(new Map())\n return\n }\n\n const firstIndex = Math.max(0, Math.floor(scrollY / rowHeight) - 1)\n const length = Math.min(\n props.rows.length - firstIndex,\n Math.ceil(size.height / rowHeight) + 2,\n )\n\n const deletedRows = new Map(cache)\n\n // Must find the ones that are no longer visible.\n for (let index = firstIndex; index < firstIndex + length; index++) {\n let row = props.rows[index]\n let key = props.getRowKey ? props.getRowKey(row) : String(index)\n deletedRows.delete(key)\n }\n\n const newVisibleRows = new Map<string, VisibleRow<T>>()\n\n for (let index = firstIndex; index < firstIndex + length; index++) {\n let row = props.rows[index]\n let key = props.getRowKey ? props.getRowKey(row) : String(index)\n\n let existingRow = cache.get(key)\n\n if (existingRow !== undefined) {\n if (existingRow.row === row) {\n // Data has technically not changed so we can reuse.\n } else {\n // Data has changed, must update render.\n existingRow.render = props.renderRow({ index, row })\n }\n\n newVisibleRows.set(key, existingRow)\n\n continue\n }\n\n let oldRow = popAnyEntry(deletedRows)\n\n if (oldRow !== undefined) {\n oldRow.index = index\n oldRow.row = row\n oldRow.userKey = key\n oldRow.render = props.renderRow({ index, row })\n oldRow.style = {\n transform: `translateY(${index * rowHeight}px)`,\n height: `${rowHeight}px`,\n }\n newVisibleRows.set(key, oldRow)\n } else {\n // New row.\n newVisibleRows.set(key, {\n index,\n row,\n key: keyCounter.current++,\n userKey: key,\n render: props.renderRow({ index, row }),\n style: {\n transform: `translateY(${index * rowHeight}px)`,\n height: `${rowHeight}px`,\n },\n })\n }\n }\n\n setVisibleRows(newVisibleRows)\n }\n\n useEffect(() => {\n // The renderRow function may have a reference to the rows array. if we\n // do not throw away our cache we risk leaving rows referencing\n // stale data.\n updateVisibleRows(new Map())\n }, [props.rows, props.renderRow])\n\n useEffect(() => {\n updateVisibleRows(visibleRows)\n }, [scrollY, size.height])\n\n const orderedVisibleRows = useMemo(() => {\n return Array.from(visibleRows.values()).sort((a, b) => a.index - b.index)\n }, [visibleRows])\n\n return (\n <div\n ref={scrollContainer}\n className=\"ui89-virtual-list\"\n style={{ maxHeight: props.maxHeight }}\n >\n <div\n ref={scrollAreaContainer}\n className=\"ui89-virtual-list__scroll-area\"\n style={{ height: `${totalHeight}px` }}\n >\n {orderedVisibleRows.map((visibleRow) => (\n <div\n key={visibleRow.userKey}\n className=\"ui89-virtual-list__row\"\n style={visibleRow.style}\n >\n {visibleRow.render}\n </div>\n ))}\n </div>\n </div>\n )\n },\n) as <T>(props: Ui89VirtualListProps<T>) => JSX.Element\n","import React, { useMemo } from \"react\"\nimport {\n Ui89VirtualList,\n Ui89VirtualListPropsRenderRowProps,\n} from \"./Ui89VirtualList\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89InputCheckBox } from \"./Ui89InputCheckBox\"\nimport \"../style/text.css\"\n\nexport interface Ui89InputCheckListPropsRenderOption<T> {\n option: T\n index: number\n}\n\nexport interface Ui89InputCheckListProps<T> {\n value: T[]\n onChange?: (value: T[]) => void\n getValueKey?: (row: T) => string\n options: T[]\n renderOption?: (\n props: Ui89InputCheckListPropsRenderOption<T>,\n ) => React.ReactNode\n onSelect?: (option: T) => void\n onDeselect?: (option: T) => void\n optionHeight?: number\n maxHeight?: string\n}\n\nexport function Ui89InputCheckList<T>(props: Ui89InputCheckListProps<T>) {\n function getValueKey(value: T) {\n return props.getValueKey !== undefined\n ? props.getValueKey(value)\n : String(value)\n }\n\n const valueSet = useMemo<Set<string>>(() => {\n const set = new Set<string>()\n for (const value of props.value) {\n set.add(getValueKey(value))\n }\n return set\n }, [props.value])\n\n const renderRow = (props2: Ui89VirtualListPropsRenderRowProps<T>) => {\n const key = getValueKey(props2.row)\n const value = valueSet.has(key)\n const label =\n props.renderOption !== undefined\n ? props.renderOption({ option: props2.row, index: props2.index })\n : String(props2.row)\n\n function onChange(checked: boolean) {\n if (checked) {\n if (props.onSelect !== undefined) {\n props.onSelect(props2.row)\n }\n } else {\n if (props.onDeselect !== undefined) {\n props.onDeselect(props2.row)\n }\n }\n\n if (props.onChange !== undefined) {\n if (checked) {\n props.onChange([...props.value, props2.row])\n } else {\n props.onChange(\n props.value.filter((item) => getValueKey(item) !== key),\n )\n }\n }\n }\n\n function toggle() {\n onChange(!value)\n }\n\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"var(--ui89-safe-space)\",\n height: \"100%\",\n }}\n >\n <Ui89InputCheckBox value={value} onChange={onChange} />\n <div\n className=\"ui89-text-ellipsis\"\n style={{ minWidth: 0, cursor: \"pointer\" }}\n onClick={toggle}\n >\n {label}\n </div>\n </div>\n )\n }\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n maxHeight: props.maxHeight,\n }}\n >\n <Ui89VirtualList\n rows={props.options}\n renderRow={renderRow}\n getRowKey={props.getValueKey}\n rowHeight={props.optionHeight ?? 40}\n maxHeight={\"100%\"}\n />\n </div>\n )\n}\n\nexport default Ui89InputCheckList\n","import React from \"react\"\n\nimport \"./Ui89InputCheckText.css\"\n\nexport interface Ui89InputCheckTextProps {\n value: any\n onChange?: (value: boolean) => void\n}\n\nexport function Ui89InputCheckText(props: Ui89InputCheckTextProps) {\n function toggle() {\n if (props.onChange) {\n props.onChange(!props.value)\n }\n }\n\n return (\n <span className=\"ui89-input-check-text\" onClick={toggle}>\n {props.value ? \"[X]\" : \"[ ]\"}\n </span>\n )\n}\n","import React, { useRef } from \"react\"\n\nimport \"./Ui89InputFileUpload.css\"\nimport \"../style/typo.css\"\nimport \"../style/text.css\"\nimport { Ui89Button } from \"./Ui89Button\"\n\nexport interface Ui89InputFileUploadProps {\n /**\n * The file that is currently selected.\n */\n value?: any\n\n /**\n * Called when a new file is selected or when the currently selected file\n * is deselected.\n */\n onChange?: (value: File | null) => void\n\n /**\n * The `accept` attribute specifies the types of files that can be selected, using a\n * comma-separated list of file type specifiers. Valid values include:\n *\n * - File extensions (case-insensitive), beginning with a dot (e.g., `.jpg`, `.pdf`, `.doc`)\n * - MIME types (e.g., `application/pdf`, `image/png`)\n * - Wildcard types:\n * - `audio/*` for any audio files\n * - `video/*` for any video files\n * - `image/*` for any image files\n */\n accept?: string\n}\n\nexport function Ui89InputFileUpload(props: Ui89InputFileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!props.onChange) {\n return\n }\n\n if (e.target.files === null) {\n props.onChange(null)\n return\n }\n\n if (e.target.files.length === 0) {\n props.onChange(null)\n return\n }\n\n props.onChange(e.target.files[0])\n\n // Reset the file input's value to allow selecting the same file again.\n e.target.value = \"\"\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=\"ui89-typo-special\"\n type=\"file\"\n onChange={implOnChange}\n accept={props.accept}\n hidden\n />\n\n {props.value ? (\n <div className=\"ui89-input-file-upload\">\n <Ui89Button onClick={onClick}>Change</Ui89Button>\n <span\n className={`ui89-input-file-upload__info ui89-text-single-line ui89-text-single-line--ellipsis-left`}\n title={props.value.name}\n >\n {props.value.name}\n </span>\n </div>\n ) : (\n <Ui89Button onClick={onClick}>Upload</Ui89Button>\n )}\n </div>\n )\n}\n","import React, { useEffect, useRef } from \"react\"\n\n/**\n * Calls a callback when the component has rendered for the first time.\n *\n * This is useful for tests that need to wait for a component to render\n * before performing assertions.\n */\nexport default function RenderCallback(props: {\n /**\n * Called when the component has rendered for the first time.\n */\n onRender: () => void\n}) {\n useEffect(() => {\n props.onRender()\n }, [])\n\n return <></>\n}\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport \"./Ui89InputSelect.css\"\nimport \"../style/input-box.css\"\nimport \"../style/text.css\"\nimport {\n Ui89VirtualList,\n Ui89VirtualListPropsRenderRowProps,\n} from \"./Ui89VirtualList\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport { Ui89InputText, Ui89InputTextRef } from \"./Ui89InputText\"\nimport { Ui89Popover } from \"./Ui89Popover\"\nimport RenderCallback from \"./private/RenderCallback\"\n\nexport interface Ui89InputSelectProps<T> {\n /**\n * Available options.\n */\n options?: T[]\n\n /**\n * Option height. Options list uses a technique called DOM virtualization.\n */\n optionHeight?: number\n\n /**\n * The selected option.\n */\n value?: T\n\n /**\n * Display search input.\n *\n * Does not search automatically. You must filter the options yourself.\n */\n search?: boolean\n\n /**\n * Called whenever an option is selected.\n */\n onChange?: (option: T) => void\n\n /**\n * Called when the menu is opened or closed.\n */\n onOpenChange?: (open: boolean) => void\n\n /**\n * A search term was provided.\n */\n onSearch?: (search: string) => void\n\n /**\n * Retrieves the value that uniquely identifies the option. This is what is\n * used to determine which option is currently selected.\n */\n getOptionKey?: (option: T) => any\n\n /**\n * Customize how an option should be rendered.\n */\n renderOption?: (option: T) => any\n\n /**\n * Minimum width of the menu. The menu is still going to shrink if it\n * can't fit in the viewport.\n */\n menuOverflowMaxWidth?: number\n}\n\n/**\n * This is a very performant and customizable dropdown selector that\n * allows you to choose from a list of options.\n */\nexport function Ui89InputSelect<T>(props: Ui89InputSelectProps<T>) {\n const [search, setSearch] = useState(\"\")\n const [isOpen, setIsOpen] = useState(false)\n const searchInput = useRef<Ui89InputTextRef>(null)\n\n const getOptionKey = useMemo(() => {\n return props.getOptionKey ?? ((option: any) => option)\n }, [props.getOptionKey])\n\n const options = useMemo(() => {\n if (props.options === undefined) {\n return []\n }\n\n return props.options\n }, [props.options])\n\n function isOptionSelected(option: T) {\n if (props.value === undefined) {\n // Definitely not selected.\n return false\n }\n\n return getOptionKey(option) === getOptionKey(props.value)\n }\n\n function optionTitle(option: T) {\n return String(option)\n }\n\n const selectOption = useCallback(\n (option: T) => {\n if (props.onChange !== undefined) {\n props.onChange(option)\n }\n\n setIsOpen(false)\n },\n [props.onChange],\n )\n\n const renderOption = useCallback(\n ({ row }: Ui89VirtualListPropsRenderRowProps<T>) => {\n const isSelected = isOptionSelected(row)\n\n return (\n <div\n className={[\n \"ui89-input-select__menu__item\",\n isSelected ? \"ui89-input-select__menu__item--selected\" : null,\n ].join(\" \")}\n title={optionTitle(row)}\n key={getOptionKey(row)}\n onClick={() => selectOption(row)}\n >\n {props.renderOption !== undefined ? props.renderOption(row) : row}\n </div>\n )\n },\n [options, selectOption],\n )\n\n useEffect(() => {\n props.onOpenChange?.(isOpen)\n\n if (isOpen) {\n setSearch(\"\")\n }\n }, [isOpen])\n\n useEffect(() => {\n if (isOpen) {\n if (props.onSearch !== undefined) {\n props.onSearch(search)\n }\n }\n }, [search])\n\n function onRenderPopover() {\n // Making sure that the search input is focused when opening the menu.\n searchInput.current?.focus()\n }\n\n return (\n <div className=\"ui89-input-select\">\n <Ui89Popover\n open={isOpen}\n onOpenChange={setIsOpen}\n popoverOverflowForce={true}\n popoverOverflowMaxWidth={props.menuOverflowMaxWidth}\n renderContainer={(props2) => (\n <div\n ref={props2.setRef}\n className={[\n \"ui89-input-box\",\n \"ui89-input-box--unselectable\",\n \"ui89-input-box--clickable\",\n \"ui89-text-single-line\",\n ].join(\" \")}\n tabIndex={0}\n title={\n props.value !== undefined ? optionTitle(props.value) : undefined\n }\n {...props2.props}\n >\n {props.value !== undefined ? (\n <>\n {props.renderOption !== undefined\n ? props.renderOption(props.value)\n : props.value}\n </>\n ) : (\n <>Select...</>\n )}\n </div>\n )}\n renderPopover={() => (\n <div className=\"ui89-input-select__menu\">\n <RenderCallback onRender={onRenderPopover} />\n\n {props.search && (\n <Ui89InputText\n ref={searchInput}\n placeholder=\"Search...\"\n value={search}\n onChange={setSearch}\n />\n )}\n\n {options.length > 0 ? (\n <Ui89VirtualList\n maxHeight=\"300px\"\n rowHeight={props.optionHeight ?? 32}\n rows={options}\n renderRow={renderOption}\n />\n ) : (\n <div\n className={[\n \"ui89-input-select__menu__item\",\n \"ui89-input-select__menu__item--disabled\",\n ].join(\" \")}\n >\n <empty>\n </div>\n )}\n </div>\n )}\n />\n </div>\n )\n}\n","import React from \"react\"\nimport { useMemo } from \"react\"\n\nimport { Ui89InputTextNumber } from \"./Ui89InputTextNumber\"\n\nexport interface Ui89InputNumberProps {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n disabled?: boolean\n onChange?: (value: any) => void\n precision?: number\n textAlign?: React.CSSProperties[\"textAlign\"]\n}\n\nexport function Ui89InputNumber(props: Ui89InputNumberProps) {\n const wrappedValue = useMemo(() => {\n if (props.value !== undefined && props.value !== null) {\n return Number(props.value)\n } else {\n return undefined\n }\n }, [props.value])\n\n function wrappedOnChange(value: any) {\n if (props.onChange === undefined) {\n return\n }\n\n if (value === props.emptyValue) {\n // Pass along.\n props.onChange(value)\n } else {\n if (value !== undefined && value !== null) {\n props.onChange(Number(value))\n } else {\n props.onChange(null)\n }\n }\n }\n\n return (\n <Ui89InputTextNumber\n emptyValue={props.emptyValue}\n value={wrappedValue}\n onChange={wrappedOnChange}\n min={props.min}\n max={props.max}\n disabled={props.disabled}\n precision={props.precision}\n textAlign={props.textAlign}\n />\n )\n}\n","import React from \"react\"\nimport { useState } from \"react\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\n\nexport interface Ui89InputPasswordProps {\n value?: any\n placeholder?: string\n disabled?: boolean\n onChange?: (value: any) => void\n}\n\nexport function Ui89InputPassword({\n value,\n placeholder,\n disabled,\n onChange,\n}: Ui89InputPasswordProps) {\n const [intermediateValue, setIntermediateValue] = useState(value ?? \"\")\n\n const implOnChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n const newValue = e.target.value\n\n setIntermediateValue(newValue)\n\n if (onChange) {\n onChange(newValue)\n }\n }\n\n return (\n <div>\n <input\n type=\"password\"\n className={[\n \"ui89-input-box\",\n disabled ? \"ui89-input-box--disabled\" : \"\",\n ].join(\" \")}\n role=\"textbox\"\n value={intermediateValue}\n onChange={implOnChange}\n placeholder={placeholder}\n disabled={disabled}\n />\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"../style/input-box.css\"\nimport \"../style/typo.css\"\nimport { useDelayedOnChange } from \"../useDelayedOnChange\"\n\nexport interface Ui89InputTextAreaProps {\n rows?: number\n value?: any\n placeholder?: string\n autoTrim?: boolean\n disabled?: boolean\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nexport function Ui89InputTextArea(props: Ui89InputTextAreaProps) {\n const delayedState = useDelayedOnChange({\n defaultValue: \"\",\n value: props.value,\n onChange: props.onChange,\n filter(value: any) {\n if (props.autoTrim) {\n if (typeof value === \"string\") {\n value = value.replace(/\\s+/g, \" \").trim()\n }\n }\n\n return value\n },\n })\n\n return (\n <div>\n <textarea\n className={[\n \"ui89-input-box\",\n \"ui89-input-box--resizable\",\n props.disabled ? \"ui89-input-box--disabled\" : \"\",\n ].join(\" \")}\n value={delayedState.value}\n onChange={(e) => delayedState.onChange(e.target.value)}\n onBlur={delayedState.onBlur}\n onFocus={delayedState.onFocus}\n rows={props.rows ?? 4}\n placeholder={props.placeholder}\n disabled={props.disabled}\n />\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89LinkBracket.css\"\n\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89LinkBracketProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkBracket({ children, ...props }: Ui89LinkBracketProps) {\n return (\n <Ui89LinkBase className=\"ui89-link-bracket\" {...props}>\n [{children}]\n </Ui89LinkBase>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89LinkStealth.css\"\n\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89LinkStealthProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkStealth(props: Ui89LinkStealthProps) {\n return <Ui89LinkBase className=\"ui89-link-stealth\" {...props} />\n}\n","import React from \"react\"\nimport \"./Ui89TitleSideLine.css\"\nimport { Ui89Hr } from \"./Ui89Hr\"\n\nexport interface Ui89TitleSideLineProps {\n children?: React.ReactNode\n}\n\nexport const Ui89TitleSideLine = ({ children }: Ui89TitleSideLineProps) => {\n return (\n <div className=\"ui89-title-side-line\">\n <div className=\"ui89-title-side-line__line\">\n <Ui89Hr />\n </div>\n\n <div className=\"ui89-title-side-line__inside\">{children}</div>\n\n <div className=\"ui89-title-side-line__line\">\n <Ui89Hr />\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport \"./Ui89TitleBracket.css\"\n\nexport interface Ui89TitleBracketProps {\n children?: React.ReactNode\n}\n\nexport const Ui89TitleBracket = ({ children }: Ui89TitleBracketProps) => {\n return (\n <div className=\"ui89-title-bracket\">\n <span className=\"ui89-title-bracket__bracket\">[</span>\n <div className=\"ui89-title-bracket__inside\">{children}</div>\n <span className=\"ui89-title-bracket__bracket\">]</span>\n </div>\n )\n}\n","import React from \"react\"\nimport \"./Ui89TitleSpace.css\"\n\nexport interface Ui89TitleSpaceProps {\n children?: React.ReactNode\n}\n\nexport const Ui89TitleSpace = ({ children }: Ui89TitleSpaceProps) => {\n return (\n <div className=\"ui89-title-space\">\n <div className=\"ui89-title-space__inside\">{children}</div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89LinkUnderline.css\"\n\nimport { Ui89LinkBase } from \"./private/LinkBase\"\n\nexport interface Ui89LinkUnderlineProps {\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n}\n\nexport function Ui89LinkUnderline(props: Ui89LinkUnderlineProps) {\n return <Ui89LinkBase className=\"ui89-link-underline\" {...props} />\n}\n","import React from \"react\"\n\nimport \"./Ui89MenuBar.css\"\nimport \"../style/typo.css\"\nimport \"../style/scrollbar.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 className={`ui89-menu-bar ui89-typo-special ui89-scrollbar`}>\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=\"ui89-menu-bar__item\"\n onClick={onNativeClick}\n >\n {item.label}\n </div>\n )\n })}\n </div>\n )\n}\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\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89TitleBox } from \"./Ui89TitleBox\"\nimport { Ui89Hr } from \"./Ui89Hr\"\nimport \"./Ui89MenuCard.css\"\nimport { Ui89CardHorizontalConnection } from \"./Ui89CardHorizontalConnection\"\nimport { Ui89LinkStealth } from \"./Ui89LinkStealth\"\nimport { Ui89SpaceVertical } from \"./Ui89SpaceVertical\"\n\nexport interface Ui89MenuCardPropsOption {\n type?: \"item\" | \"separator\"\n label?: string\n onClick?: () => void\n href?: string\n disabled?: boolean\n oppositeLabel?: React.ReactNode\n}\n\nexport interface Ui89MenuCardProps {\n options: Ui89MenuCardPropsOption[]\n}\n\nexport const Ui89MenuCard: React.FC<Ui89MenuCardProps> = (props) => {\n return (\n <Ui89Card>\n <Ui89CardHorizontalConnection>\n <div className=\"ui89-menu-card__list\">\n {props.options.map((option, index) => {\n if (option.type === \"separator\") {\n return (\n <div key={index} className=\"ui89-menu-card__separator\">\n <Ui89SpaceVertical />\n <Ui89Hr />\n <Ui89SpaceVertical />\n </div>\n )\n }\n return (\n <Ui89LinkStealth\n key={index}\n href={option.href}\n onClick={!option.disabled ? option.onClick : undefined}\n >\n <div\n className={`ui89-menu-card__item ${\n option.disabled ? \"ui89-menu-card__item--disabled\" : \"\"\n }`}\n >\n <span>{option.label}</span>\n {option.oppositeLabel && <span>{option.oppositeLabel}</span>}\n </div>\n </Ui89LinkStealth>\n )\n })}\n </div>\n </Ui89CardHorizontalConnection>\n </Ui89Card>\n )\n}\n","import React from \"react\"\nimport \"./GridExpandTrick.css\"\n\nexport default function GridExpandTrick({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className=\"ui89-grid-expand-trick\">{children}</span>\n}\n","import React from \"react\"\nimport \"./ScrollContainer.css\"\n\nexport default function ScrollContainer({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className=\"ui89-scroll-container\">{children}</span>\n}\n","import React, { useMemo } from \"react\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport { Ui89BoxShadow } from \"./Ui89BoxShadow\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport GridExpandTrick from \"./private/GridExpandTrick\"\nimport ScrollContainer from \"./private/ScrollContainer\"\n\nimport \"./Ui89ModalDialog.css\"\nimport { useZIndexer } from \"../useZIndexer\"\nimport { useUi89 } from \"../Ui89Provider\"\n\nexport interface Ui89ModalDialogProps {\n open: boolean\n size?: \"small\" | \"medium\" | \"big\" | \"full\"\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,\n children,\n topCenter,\n onRequestClose,\n}: Ui89ModalDialogProps) {\n const zIndexer = useZIndexer(open)\n const { createPortal } = useUi89()\n\n const dialogClass = useMemo(() => {\n return [\"ui89-modal-dialog\", open ? \"ui89-modal-dialog--open\" : \"\"].join(\n \" \",\n )\n }, [open])\n\n const dialogBoxClass = useMemo(() => {\n return [\n \"ui89-modal-dialog__box\",\n `ui89-modal-dialog__box--size-${size ?? \"responsive\"}`,\n ].join(\" \")\n }, [size])\n\n function onClickBackdrop() {\n if (onRequestClose !== undefined) {\n onRequestClose()\n }\n }\n\n const vdom = (\n <div\n className={dialogClass}\n role=\"dialog\"\n style={{ zIndex: zIndexer.value }}\n >\n <div\n className=\"ui89-modal-dialog__backdrop\"\n role=\"presentation\"\n onClick={onClickBackdrop}\n ></div>\n\n <div className=\"ui89-modal-dialog__content\">\n <div className=\"ui89-modal-dialog__spacer\"></div>\n\n <div className={dialogBoxClass}>\n <Ui89BoxShadow>\n <GridExpandTrick>\n <Ui89Scene>\n <Ui89Card topCenter={topCenter}>\n <ScrollContainer>{children}</ScrollContainer>\n </Ui89Card>\n </Ui89Scene>\n </GridExpandTrick>\n </Ui89BoxShadow>\n </div>\n </div>\n </div>\n )\n\n return portalRoot !== null ? createPortal(vdom, portalRoot) : vdom\n}\n","import React from \"react\"\n\nimport \"./Ui89NameValuePair.css\"\n\nexport interface Ui89NameValuePairProps {\n name: React.ReactNode\n value: React.ReactNode\n leftMaxWidth?: number\n}\n\nexport function Ui89NameValuePair({\n name,\n value,\n leftMaxWidth,\n}: Ui89NameValuePairProps) {\n return (\n <div className=\"ui-89-name-value-pair\">\n <div\n className=\"ui-89-name-value-pair__name-wrapper\"\n style={{ maxWidth: `${leftMaxWidth}px` }}\n >\n <div className=\"ui-89-name-value-pair__name\">{name}</div>\n <div className=\"ui-89-name-value-pair__dots\"></div>\n </div>\n <div className=\"ui-89-name-value-pair__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\nimport ShortcutSvg from \"../images/shortcut.svg\"\n\nimport \"./Ui89Shortcut.css\"\nimport \"../style/typo.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=\"ui89-shortcut\" onClick={onNativeClick}>\n <div className=\"ui89-shortcut__image-container\">\n <img className=\"ui89-shortcut__image\" src={imageUrl} />\n\n <div className=\"ui89-shortcut__shortcut-icon-container\">\n <ShortcutSvg\n className=\"ui89-shortcut__shortcut-icon\"\n width={16}\n height={16}\n />\n </div>\n </div>\n\n <Ui89SpaceVertical gap={1} />\n\n <div\n className={`ui89-shortcut__label ui89-typo-small-bold`}\n onClick={onNativeClick}\n >\n {label}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nexport interface Ui89SpaceHorizontalProps {\n gap?: number\n}\n\nexport function Ui89SpaceHorizontal({ gap = 1 }: Ui89SpaceHorizontalProps) {\n const style = {\n paddingRight: `calc(var(--ui89-safe-space) * ${gap})`,\n }\n\n return <span style={style}></span>\n}\n","import React from \"react\"\n\nimport \"./Ui89Tabs.css\"\nimport \"../style/typo.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={[\"ui89-tabs\", stretch ? \"ui89-tabs--stretch\" : \"\"].join(\" \")}\n >\n {options.map((option) => (\n <div\n className={[\n \"ui89-tabs__item\",\n \"ui89-typo-small-bold\",\n selected === option.value ? \"ui89-tabs__item--selected\" : \"\",\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 \"../style/typo.css\"\nimport \"../style/chosen-theme.css\"\n\nimport \"./Ui89TagBox.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={`ui89-tag-box ui89-typo-special ui89-chosen-theme-${theme}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState } from \"react\"\n\nimport \"./Ui89ThemeBackground.css\"\nimport \"../style/chosen-theme.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={`ui89-theme-background ui89-chosen-theme-${theme}`}>\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89TitleBox.css\"\nimport \"../style/typo.css\"\nimport \"../style/text.css\"\n\nexport interface Ui89TitleBoxProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleBox({ children }: Ui89TitleBoxProps) {\n return (\n <div className={`ui89-title-box ui89-typo-special`}>\n <div className={`ui89-title-box__inside ui89-text-single-line`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport \"./Ui89TitleUnderline.css\"\nimport \"../style/typo.css\"\nimport \"../style/text.css\"\n\nexport interface Ui89TitleUnderlineProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleUnderline({ children }: Ui89TitleUnderlineProps) {\n return (\n <div className={`ui89-title-underline ui89-typo-special`}>\n <div className={`ui89-title-underline__inside ui89-text-single-line`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { ToastContainer, toast } from \"react-toastify\"\n\nimport \"./Ui89Toaster.css\"\nimport \"../style/typo.css\"\nimport \"../style/chosen-theme.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\", \"ui89-typo-normal\"]\n\n if (options.theme !== undefined) {\n classNames.push(`ui89-chosen-theme-${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, useCallback, useMemo } from \"react\"\nimport \"./Ui89VirtualTable.css\"\nimport \"../style/typo.css\"\nimport { Ui89TagBox } from \"./Ui89TagBox\"\nimport {\n Ui89VirtualList,\n Ui89VirtualListPropsRenderRowProps,\n} from \"./Ui89VirtualList\"\n\nexport enum Ui89VirtualTablePropsColumnAlign {\n left = \"left\",\n right = \"right\",\n center = \"center\",\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 halign?: keyof typeof Ui89VirtualTablePropsColumnAlign\n renderHeader?: (\n props: Ui89VirtualTablePropsColumnRenderHeaderParams<T>,\n ) => React.ReactNode\n renderBody: (\n props: Ui89VirtualTablePropsColumnRenderBodyParams<T>,\n ) => React.ReactNode\n}\n\nexport interface Ui89VirtualTableProps<T> {\n maxHeight?: string\n rows?: T[]\n columns?: Ui89VirtualTablePropsColumn<T>[]\n rowHeight?: number\n}\n\nexport const Ui89VirtualTable = React.memo(\n <T,>(props: Ui89VirtualTableProps<T>) => {\n const rows = useMemo<(T | undefined)[]>(() => {\n let rows: any[] = props.rows !== undefined ? props.rows.slice() : []\n\n rows.unshift(undefined)\n\n return rows\n }, [props.rows])\n\n const columns = useMemo(() => {\n return props.columns !== undefined ? props.columns : []\n }, [props.columns])\n\n const rowHeight = props.rowHeight ?? 20\n\n function getColumnWidth(index: number): number {\n return columns[index].width ?? 100\n }\n\n function getColumnHorizontalOffset(columnIndex: number) {\n let offset = 0\n\n for (let i = 0; i < columnIndex; i++) {\n offset += getColumnWidth(i)\n }\n\n return offset\n }\n\n function isLastColumn(columnIndex: number): boolean {\n return columnIndex === columns.length - 1\n }\n\n function getRowClass(rowIndex: number): string {\n const classes = [\"ui89-virtual-table__row\"]\n\n if (rowIndex === 0) {\n classes.push(\"ui89-virtual-table__row--first\")\n classes.push(\"ui89-typo-normal-bold\")\n }\n\n if (rowIndex === rows.length) {\n classes.push(\"ui89-virtual-table__row--last\")\n }\n\n return classes.join(\" \")\n }\n\n function getColumnClass(columnIndex: number): string {\n const halign = columns[columnIndex].halign ?? \"left\"\n\n const classes = [\n \"ui89-virtual-table__cell\",\n `ui89-virtual-table__cell--halign-${halign}`,\n ]\n\n if (columnIndex === 0) {\n classes.push(\"ui89-virtual-table__cell--column-first\")\n }\n\n if (isLastColumn(columnIndex)) {\n classes.push(\"ui89-virtual-table__cell--column-last\")\n }\n\n return classes.join(\" \")\n }\n\n /**\n * The width of an entire row.\n */\n function rowWidth() {\n return getColumnHorizontalOffset(columns.length)\n }\n\n const renderRow = useCallback(\n ({ index, row }: Ui89VirtualListPropsRenderRowProps<T>) => {\n return (\n <div\n className={getRowClass(index)}\n style={{ minWidth: rowWidth() + \"px\", height: \"100%\" }}\n >\n {columns.map((column, columnIndex) => {\n return (\n <div\n key={columnIndex}\n className={getColumnClass(columnIndex)}\n style={{\n top: 0,\n height: \"100%\",\n width: getColumnWidth(columnIndex) + \"px\",\n left: getColumnHorizontalOffset(columnIndex) + \"px\",\n }}\n >\n {index === 0\n ? columns[columnIndex].renderHeader\n ? columns[columnIndex].renderHeader({\n index: columnIndex,\n column: column,\n })\n : \"\"\n : columns[columnIndex].renderBody({\n index: index - 1,\n row: row,\n })}\n </div>\n )\n })}\n </div>\n )\n },\n [columns, rowHeight],\n )\n\n return (\n <>\n {rows.length > 1 ? (\n <Ui89VirtualList\n maxHeight={props.maxHeight}\n rows={rows as T[]}\n rowHeight={rowHeight}\n renderRow={renderRow}\n />\n ) : (\n <div className=\"ui89-virtual-table__empty\">\n <Ui89TagBox theme=\"warning\">Empty</Ui89TagBox>\n </div>\n )}\n </>\n )\n },\n) as <T>(props: Ui89VirtualTableProps<T>) => JSX.Element\n"],"names":["domCreatePortal","createPortal","React","dateFormat","formatDate","ShortcutSvg"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-ui89",
|
|
3
3
|
"description": "A collection of React components that mimic a common style of user interfaces from the late 80s and early 90s.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.66.0",
|
|
5
5
|
"author": "Daniel Araujo",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"files": [
|