react-ui89 0.26.2 → 0.27.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.
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface Ui89InputPasswordProps {
|
|
3
|
+
value?: any;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
onChange?: (value: any) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function Ui89InputPassword({ value, placeholder, onChange, }: Ui89InputPasswordProps): React.JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { Ui89InputPassword } from "./Ui89InputPassword";
|
|
3
|
+
declare const meta: Meta<typeof Ui89InputPassword>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const TypingEmitsOnChange: Story;
|
|
8
|
+
export declare const DoesNotTrimWhitespaceAtTheBeginning: Story;
|
|
9
|
+
export declare const DoesNotRemoveWhitespaceAtTheEnd: Story;
|
|
10
|
+
export declare const DoesNotRemoveExtraWhitespaceInTheMiddle: Story;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export { Ui89InputFileUpload } from "./components/Ui89InputFileUpload";
|
|
|
19
19
|
export type { Ui89InputFileUploadProps } from "./components/Ui89InputFileUpload";
|
|
20
20
|
export { Ui89InputSelect } from "./components/Ui89InputSelect";
|
|
21
21
|
export type { Ui89InputSelectProps, Ui89InputSelectPropsOption, } from "./components/Ui89InputSelect";
|
|
22
|
+
export { Ui89InputPassword } from "./components/Ui89InputPassword";
|
|
23
|
+
export type { Ui89InputPasswordProps } from "./components/Ui89InputPassword";
|
|
22
24
|
export { Ui89InputText } from "./components/Ui89InputText";
|
|
23
25
|
export type { Ui89InputTextProps } from "./components/Ui89InputText";
|
|
24
26
|
export { Ui89InputTextNumber } from "./components/Ui89InputTextNumber";
|
package/dist/esm/index.js
CHANGED
|
@@ -323,6 +323,19 @@ function Ui89InputSelect({ options, value, onChange, }) {
|
|
|
323
323
|
})) : (React__default.createElement("div", { className: [styles$b.menuItem, styles$b["menuItem--disabled"]].join(" ") }, "<empty>"))))));
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
+
function Ui89InputPassword({ value, placeholder, onChange, }) {
|
|
327
|
+
const [intermediateValue, setIntermediateValue] = useState(value ?? "");
|
|
328
|
+
const implOnChange = (e) => {
|
|
329
|
+
const newValue = e.target.value;
|
|
330
|
+
setIntermediateValue(newValue);
|
|
331
|
+
if (onChange) {
|
|
332
|
+
onChange(newValue);
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
return (React__default.createElement("div", null,
|
|
336
|
+
React__default.createElement("input", { type: "password", className: `${inputBoxStyles.inputBox} ${typoStyles.special}`, role: "textbox", value: intermediateValue, onChange: implOnChange, placeholder: placeholder })));
|
|
337
|
+
}
|
|
338
|
+
|
|
326
339
|
let uniqueId = 0;
|
|
327
340
|
function throttledTimeout() {
|
|
328
341
|
const id = String(uniqueId++);
|
|
@@ -725,5 +738,5 @@ function Ui89VirtualTable(props) {
|
|
|
725
738
|
React__default.createElement(Ui89TagBox, { theme: "warning" }, "Empty")))));
|
|
726
739
|
}
|
|
727
740
|
|
|
728
|
-
export { Ui89Breadcrumbs, Ui89Button, Ui89Card, Ui89CardHorizontalConnection, Ui89DigitalClock, Ui89HighlightText, Ui89Hr, Ui89InputFileUpload, Ui89InputSelect, Ui89InputText, Ui89InputTextNumber, Ui89Look, Ui89MenuBar, Ui89ModalDialog, Ui89NameValuePair, Ui89OverrideProvider, Ui89Scene, Ui89Shortcut, Ui89SpaceVertical, Ui89TabbedCard, Ui89Tabs, Ui89TagBox, Ui89Theme, Ui89ThemeBackground, Ui89TitleBox, Ui89TitleUnderline, Ui89Toaster, Ui89VirtualTable, useUi89Toaster };
|
|
741
|
+
export { Ui89Breadcrumbs, Ui89Button, Ui89Card, Ui89CardHorizontalConnection, Ui89DigitalClock, Ui89HighlightText, Ui89Hr, Ui89InputFileUpload, Ui89InputPassword, Ui89InputSelect, Ui89InputText, Ui89InputTextNumber, Ui89Look, Ui89MenuBar, Ui89ModalDialog, Ui89NameValuePair, Ui89OverrideProvider, Ui89Scene, Ui89Shortcut, Ui89SpaceVertical, Ui89TabbedCard, Ui89Tabs, Ui89TagBox, Ui89Theme, Ui89ThemeBackground, Ui89TitleBox, Ui89TitleUnderline, Ui89Toaster, Ui89VirtualTable, useUi89Toaster };
|
|
729
742
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/theme.ts","../../src/Ui89Override.tsx","../../src/components/Ui89Breadcrumbs.tsx","../../src/components/HoverShadow.tsx","../../src/components/Ui89Button.tsx","../../src/components/Ui89Card.tsx","../../src/components/Ui89CardHorizontalConnection.tsx","../../src/components/TimeAnimation.tsx","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/Ui89InputSelect.tsx","../../src/timeout.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89MenuBar.tsx","../../src/components/Ui89Scene.tsx","../../src/components/GridExpandTrick.tsx","../../src/components/ScrollContainer.tsx","../../src/components/Ui89ModalDialog.tsx","../../src/components/Ui89NameValuePair.tsx","../../src/images/shortcut.svg","../../src/components/Ui89SpaceVertical.tsx","../../src/components/Ui89Shortcut.tsx","../../src/components/Ui89Tabs.tsx","../../src/components/Ui89TabbedCard.tsx","../../src/components/Ui89TagBox.tsx","../../src/components/Ui89ThemeBackground.tsx","../../src/components/Ui89TitleBox.tsx","../../src/components/Ui89TitleUnderline.tsx","../../src/components/Ui89Toaster.tsx","../../src/components/Ui89VirtualTable.tsx"],"sourcesContent":["export enum Ui89Theme {\n primary = \"primary\",\n secondary = \"secondary\",\n info = \"info\",\n success = \"success\",\n warning = \"warning\",\n danger = \"danger\",\n}\n\nexport enum Ui89Look {\n main = \"main\",\n side = \"side\",\n}\n","import React, { createContext, useContext, ReactNode } from \"react\"\n\ntype RouterPush = (url: string) => void | Promise<void>\n\ninterface Ui89OverrideContextType {\n routerPush?: RouterPush\n}\n\nexport interface Ui89OverrideProviderProps {\n children?: ReactNode\n routerPush?: RouterPush\n}\n\nconst Ui89OverrideContext = createContext<Ui89OverrideContextType>({})\n\nexport const Ui89OverrideProvider: React.FC<Ui89OverrideProviderProps> = ({\n routerPush,\n children,\n}) => {\n return (\n <Ui89OverrideContext.Provider value={{ routerPush }}>\n {children}\n </Ui89OverrideContext.Provider>\n )\n}\n\nexport const useUi89Overrides = (): Ui89OverrideContextType => {\n const context = useContext(Ui89OverrideContext)\n\n if (context === undefined) {\n throw new Error(\n \"useUi89Overrides must be used within a Ui89OverrideProvider\",\n )\n }\n\n return context\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Breadcrumbs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport type Ui89BreadcrumbsPropsOnSelect = (e: {\n item: Ui89BreadcrumbsPropsItem\n}) => void | Promise<void>\n\nexport interface Ui89BreadcrumbsPropsItem {\n label: React.ReactNode\n url?: string\n}\n\nexport interface Ui89BreadcrumbsProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n items: Ui89BreadcrumbsPropsItem[]\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}\n\nexport function Ui89BreadcrumbsItem({\n index,\n item,\n onSelect,\n}: {\n index: number\n item: Ui89BreadcrumbsPropsItem\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}) {\n const style = { \"--ui89-index\": index } as React.CSSProperties\n const tagname = item.url !== undefined ? \"a\" : \"div\"\n const overrides = useUi89Overrides()\n\n const onClick: React.MouseEventHandler<HTMLAnchorElement> = (e) => {\n if (item.url !== undefined) {\n if (item.url.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(item.url)\n }\n }\n }\n }\n\n return (\n <a\n className={`${resetStyles.a} ${styles.breadcrumbsItem}`}\n href={item.url}\n style={style}\n onClick={onClick}\n >\n <div className={styles.breadcrumbsItemBackground}></div>\n {item.label}\n </a>\n )\n}\n\nexport function Ui89Breadcrumbs({\n theme = Ui89Theme.primary,\n items,\n onSelect,\n}: Ui89BreadcrumbsProps) {\n return (\n <div\n className={`${styles.breadcrumbs} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {[...items.entries()].reverse().map(([index, item]) => (\n <Ui89BreadcrumbsItem\n key={index}\n index={index}\n item={item}\n onSelect={onSelect}\n />\n ))}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./HoverShadow.module.css\"\n\nexport default function HoverShadow({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <span className={styles.hoverShadow}>\n <span className={styles.hoverShadowBottom}></span>\n <span className={styles.hoverShadowRight}></span>\n {children}\n </span>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Button.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\n\nimport HoverShadow from \"./HoverShadow\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport enum Ui89ButtonPropsSize {\n standard = \"standard\",\n square = \"square\",\n}\n\nexport interface Ui89ButtonProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n size?: Ui89ButtonPropsSize | keyof typeof Ui89ButtonPropsSize\n block?: boolean\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n activated?: boolean\n}\n\nexport function Ui89Button({\n theme = Ui89Theme.primary,\n size = Ui89ButtonPropsSize.standard,\n block,\n onClick,\n href,\n children,\n autoDisableOnClick = true,\n disabled,\n activated,\n}: Ui89ButtonProps) {\n const overrides = useUi89Overrides()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled = disabled || (autoDisableOnClick && clicking)\n\n async function onAnchorClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (href !== undefined) {\n if (href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(href)\n }\n }\n }\n } finally {\n setClicking(false)\n }\n }\n\n async function onButtonClick(e: React.MouseEvent<HTMLButtonElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (onClick === undefined) {\n // No handler.\n return\n }\n\n await onClick()\n } finally {\n setClicking(false)\n }\n }\n\n let containerClass = [\n styles.container,\n styles[\"container--size-\" + size],\n ].join(\" \")\n\n let buttonClass = [\n styles.button,\n typoStyles.special,\n chosenThemeStyles[theme],\n activated ? styles.active : undefined,\n block ? styles.block : undefined,\n disabled ? styles.disabled : undefined,\n clicking ? styles.active : undefined,\n ].join(\" \")\n\n if (href) {\n return (\n <span className={containerClass}>\n <HoverShadow>\n <a\n className={`${resetStyles.a} ${buttonClass}`}\n role=\"button\"\n href={href}\n onClick={onAnchorClick}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </a>\n </HoverShadow>\n </span>\n )\n } else {\n return (\n <span className={containerClass}>\n <HoverShadow>\n <button\n className={buttonClass}\n type=\"button\"\n onClick={onButtonClick}\n disabled={localDisabled}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </button>\n </HoverShadow>\n </span>\n )\n }\n}\n","import React from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport interface Ui89CardProps {\n topLeftCenter?: React.ReactNode\n topCenter?: React.ReactNode\n children: React.ReactNode\n}\n\nexport function Ui89Card({\n topLeftCenter,\n topCenter,\n children,\n}: Ui89CardProps) {\n const hasTopContent = topLeftCenter || topCenter\n\n return (\n <div\n className={`${styles.container} ${hasTopContent ? styles.containerHasTop : \"\"}`}\n >\n <div className={styles.inside}>\n {topLeftCenter && (\n <div className={styles.topLeftCenter}>{topLeftCenter}</div>\n )}\n {topCenter && <div className={styles.topCenter}>{topCenter}</div>}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n\n {children}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport interface Ui89CardHorizontalConnectionProps {\n children: React.ReactNode\n overflow?: boolean\n}\n\nexport function Ui89CardHorizontalConnection({\n children,\n overflow,\n}: Ui89CardHorizontalConnectionProps) {\n return (\n <div\n className={`${styles.cardHorizontalConnection} ${overflow ? styles[\"cardHorizontalConnection--overflow\"] : \"\"}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState, useEffect } from \"react\"\n\nexport interface TimeAnimationPropsChildrenProps {\n now: Date\n}\n\nexport interface TimeAnimationProps {\n children: (props: TimeAnimationPropsChildrenProps) => React.ReactNode\n}\n\nexport const TimeAnimation: React.FC<TimeAnimationProps> = ({ children }) => {\n const [currentTime, setCurrentTime] = useState(new Date())\n\n useEffect(() => {\n const tick = () => {\n const now = new Date()\n setCurrentTime(now)\n\n // Calculate time until the next exact second\n const msUntilNextSecond = 1000 - now.getMilliseconds()\n setTimeout(tick, msUntilNextSecond)\n }\n\n // Start the first tick\n const msUntilNextSecond = 1000 - currentTime.getMilliseconds()\n const timeoutId = setTimeout(tick, msUntilNextSecond)\n\n return () => clearTimeout(timeoutId)\n }, [])\n\n return <>{children({ now: currentTime })}</>\n}\n","import React, { useRef } from \"react\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { TimeAnimation, TimeAnimationPropsChildrenProps } from \"./TimeAnimation\"\n\nexport interface Ui89DigitalClockProps {\n format?: string // Custom format string\n}\n\nexport function Ui89DigitalClock({\n format = \"HH:mm:ss\",\n}: Ui89DigitalClockProps) {\n function render({ now }: TimeAnimationPropsChildrenProps) {\n const placeholders: Record<string, string> = {\n YYYY: now.getFullYear().toString(),\n MM: (now.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: now.getDate().toString().padStart(2, \"0\"),\n HH: now.getHours().toString().padStart(2, \"0\"),\n mm: now.getMinutes().toString().padStart(2, \"0\"),\n ss: now.getSeconds().toString().padStart(2, \"0\"),\n hh: (now.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: now.getHours() >= 12 ? \"PM\" : \"AM\",\n }\n\n // Replace placeholders in the format string\n let formattedDate = format\n for (const [key, value] of Object.entries(placeholders)) {\n formattedDate = formattedDate.replace(key, value)\n }\n\n return formattedDate\n }\n\n return (\n <span className={`${typoStyles.special}`}>\n <TimeAnimation>{render}</TimeAnimation>\n </span>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89HighlightText.module.css\"\n\nexport interface Ui89HighlightTextProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n block?: boolean\n children: React.ReactNode\n}\n\nexport function Ui89HighlightText({\n theme,\n block,\n children,\n}: Ui89HighlightTextProps) {\n return (\n <span\n className={`${style.container} ${chosenThemeStyles[theme]} ${block ? style[\"container--block\"] : null}`}\n >\n {children}\n </span>\n )\n}\n","import React from \"react\"\n\nimport style from \"./Ui89Hr.module.css\"\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport enum Ui89HrPropsLook {\n straight = \"straight\",\n dotted = \"dotted\",\n dashed = \"dashed\",\n double = \"double\",\n}\n\nexport interface Ui89HrProps {\n look?: Ui89HrPropsLook | keyof typeof Ui89HrPropsLook\n theme?: Ui89Theme | keyof typeof Ui89Theme\n}\n\nexport function Ui89Hr({ look = \"straight\", theme }: Ui89HrProps) {\n return (\n <div\n className={`${style.hr} ${style[`hr--${look}`]} ${theme !== undefined ? style[\"hr--use-theme\"] : \"\"} ${theme !== undefined ? chosenThemeStyles[theme] : \"\"}`}\n >\n <div className={style.hrDouble}></div>\n </div>\n )\n}\n","import React, { useRef } from \"react\"\n\nimport styles from \"./Ui89InputFileUpload.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\nimport { Ui89Button } from \"./Ui89Button\"\n\nexport interface Ui89InputFileUploadProps {\n value?: any\n onChange?: (value: File | null) => void\n}\n\nexport function Ui89InputFileUpload({\n value,\n onChange,\n}: Ui89InputFileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!onChange) {\n return\n }\n\n if (e.target.files === null) {\n onChange(null)\n return\n }\n\n if (e.target.files.length === 0) {\n onChange(null)\n return\n }\n\n onChange(e.target.files[0])\n }\n\n function onClick() {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.click()\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n className={typoStyles.special}\n type=\"file\"\n onChange={implOnChange}\n hidden\n />\n\n {value ? (\n <div className={styles.inputFileUpload}>\n <Ui89Button onClick={onClick}>Change</Ui89Button>\n <span\n className={`${styles.inputFileUpload__info} ${textStyles.singleLine} ${textStyles[\"singleLine--ellipsisLeft\"]}`}\n title={value.name}\n >\n {value.name}\n </span>\n </div>\n ) : (\n <Ui89Button onClick={onClick}>Upload</Ui89Button>\n )}\n </div>\n )\n}\n","import React, { useMemo, useState } from \"react\"\n\nimport styles from \"./Ui89InputSelect.module.css\"\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89InputSelectPropsOption {\n value: string | number\n label: React.ReactNode\n}\n\nexport interface Ui89InputSelectProps {\n options?: (Ui89InputSelectPropsOption | string | number)[]\n value?: string | number\n onChange?: (value: string | number) => void\n}\n\nexport function Ui89InputSelect({\n options,\n value,\n onChange,\n}: Ui89InputSelectProps) {\n const realOptions = useMemo(() => {\n if (options === undefined) {\n return []\n }\n\n return options.map((option) => {\n if (typeof option !== \"object\") {\n return {\n value: option,\n label: String(option),\n }\n } else {\n return option\n }\n })\n }, [options])\n\n const selectedOption = useMemo(() => {\n return (\n realOptions.find((option) => {\n return option.value === value\n }) ?? null\n )\n }, [realOptions, value])\n\n function selectOption(option: Ui89InputSelectPropsOption) {\n if (onChange) {\n onChange(option.value)\n }\n\n if (document.activeElement !== null) {\n // @ts-expect-error\n document.activeElement.blur()\n }\n }\n\n function optionTitle(option: Ui89InputSelectPropsOption) {\n return typeof option.label === \"string\" ? option.label : undefined\n }\n\n return (\n <div className={`${styles.inputSelect}`}>\n <div\n className={[\n inputBoxStyles.inputBox,\n inputBoxStyles[\"inputBox--unselectable\"],\n inputBoxStyles[\"inputBox--clickable\"],\n textStyles.singleLine,\n ].join(\" \")}\n tabIndex={0}\n title={\n selectedOption !== null ? optionTitle(selectedOption) : undefined\n }\n >\n {selectedOption !== null ? <>{selectedOption.label}</> : <>Select...</>}\n </div>\n\n <div className={[styles.menu].join(\" \")} tabIndex={0}>\n <div className={styles.menuContent}>\n {realOptions.length > 0 ? (\n realOptions.map((o) => {\n const isSelected =\n selectedOption && selectedOption.value === o.value\n\n return (\n <div\n className={[\n styles.menuItem,\n isSelected ? styles.selected : null,\n ].join(\" \")}\n title={optionTitle(o)}\n key={o.value}\n onClick={() => selectOption(o)}\n >\n {o.label}\n </div>\n )\n })\n ) : (\n <div\n className={[styles.menuItem, styles[\"menuItem--disabled\"]].join(\n \" \",\n )}\n >\n <empty>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import Timeout from \"smart-timeout\"\n\nlet uniqueId = 0\n\nexport function throttledTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (Timeout.pending(id)) {\n Timeout.restart(id)\n } else {\n Timeout.set(id, () => callback(), delay)\n }\n },\n\n /**\n * If there is a call that has been scheduled, remove it from the queue.\n */\n abort() {\n Timeout.clear(id, true)\n },\n }\n}\n\nexport function spacedTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (!Timeout.pending(id)) {\n Timeout.set(id, () => callback(), delay)\n }\n },\n }\n}\n","import React, { useMemo } from \"react\"\nimport { useState, useEffect, useRef } from \"react\"\nimport { throttledTimeout } from \"../timeout\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nconst THROTTLE_DELAY = 200\n\nexport interface Ui89InputTextProps {\n value?: any\n placeholder?: string\n autoTrim?: boolean\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nfunction convertAnyToText(value: any) {\n return value ?? \"\"\n}\n\nexport function Ui89InputText({\n value,\n placeholder,\n autoTrim = true,\n onChange,\n onTyping,\n onFocus,\n onBlur,\n}: Ui89InputTextProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [intermediateValue, setIntermediateValue] = useState(value)\n const [isTyping, setIsTyping] = useState(false)\n const onChangeRef = useRef(onChange)\n const onChangeThrottled = useMemo(() => throttledTimeout(), [])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.onfocus = () => {\n setIsTyping(true)\n\n if (onTyping) {\n onTyping(true)\n }\n\n if (onFocus) {\n onFocus()\n }\n }\n\n inputRef.current.onblur = () => {\n onChangeThrottled.abort()\n update()\n\n setIsTyping(false)\n\n if (onTyping) {\n onTyping(false)\n }\n\n if (onBlur) {\n onBlur()\n }\n }\n }, [inputRef.current, onBlur, onFocus])\n\n useEffect(() => {\n if (!isTyping) {\n // Lets show the user what the actual value is.\n onChangeThrottled.call(THROTTLE_DELAY, () => {\n setIntermediateValue(value)\n })\n }\n }, [value])\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n setIntermediateValue(e.target.value)\n onChangeThrottled.call(THROTTLE_DELAY, update)\n }\n\n function update() {\n if (!onChangeRef.current) {\n return\n }\n\n if (inputRef.current === null) {\n return\n }\n\n // We get the current value straight from the element because this function\n // may have been queued.\n let newVal = inputRef.current.value\n\n if (autoTrim) {\n // Must trim after setting intermediate value. Do not want to disturb\n // user.\n newVal = newVal.replace(/\\s+/g, \" \").trim()\n }\n\n if (newVal === value) {\n // Same value.\n return\n }\n\n onChangeRef.current(newVal)\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n value={intermediateValue}\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n type=\"text\"\n onChange={implOnChange}\n placeholder={placeholder}\n />\n </div>\n )\n}\n","export function stringRemoveAllWhitespace(str: string): string {\n return str.replace(/\\s+/g, \"\")\n}\n","import React from \"react\"\nimport { useState, useEffect } from \"react\"\nimport { Ui89InputText } from \"./Ui89InputText\"\nimport { stringRemoveAllWhitespace } from \"../text-utils\"\n\nexport interface Ui89InputTextNumberProps {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n onChange?: (value: any) => void\n precision?: number\n}\n\nexport function isTextNumber(text: string): boolean {\n return /\\b\\d+(\\.\\d+)?\\b/.test(text)\n}\n\nfunction displayText(value: any, emptyValue: any) {\n if (value === undefined) {\n // No idea how to display this.\n return \"\"\n } else if (value === emptyValue) {\n // Display emptiness.\n return \"\"\n } else if (isNaN(value)) {\n // No idea what to display.\n return \"\"\n }\n\n return value.toString()\n}\n\nexport function Ui89InputTextNumber({\n /**\n * The value that is emitted when the input is emptied.\n */\n emptyValue = null,\n value,\n min,\n max,\n onChange,\n precision,\n}: Ui89InputTextNumberProps) {\n const [isTyping, setIsTyping] = useState(false)\n const [intermediateValue, setIntermediateValue] = useState(\n displayText(value, emptyValue),\n )\n\n function implOnChange(value: string) {\n if (onChange === undefined) {\n return\n }\n\n if (value === \"\") {\n // Use empty value.\n onChange(emptyValue)\n return\n }\n\n value = stringRemoveAllWhitespace(value)\n\n if (!isTextNumber(value)) {\n // We end here.\n return\n }\n\n const numberValue = Number(value)\n\n if (min !== undefined) {\n if (numberValue <= min) {\n value = String(min)\n }\n }\n\n if (max !== undefined) {\n if (numberValue >= max) {\n value = String(max)\n }\n }\n\n onChange(value)\n }\n\n useEffect(() => {\n if (!isTyping) {\n setIntermediateValue(displayText(value, emptyValue))\n }\n }, [isTyping, value])\n\n return (\n <Ui89InputText\n value={intermediateValue}\n onChange={implOnChange}\n onTyping={setIsTyping}\n />\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89MenuBar.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport interface Ui89MenuBarPropsItem {\n label: React.ReactNode\n onClick?: () => void\n children?: Ui89MenuBarPropsItem[]\n}\n\nexport interface Ui89MenuBarProps {\n items: Ui89MenuBarPropsItem[]\n}\n\nexport function Ui89MenuBar({ items }: Ui89MenuBarProps) {\n return (\n <div\n className={`${styles.menuBar} ${typoStyles.special} ${scrollbarStyles.container}`}\n >\n {items.map((item, index) => {\n function onNativeClick() {\n if (item.onClick !== undefined) {\n item.onClick()\n }\n }\n\n return (\n <div\n key={index}\n className={styles.menuBarItem}\n onClick={onNativeClick}\n >\n {item.label}\n </div>\n )\n })}\n </div>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Look } from \"../theme\"\n\nimport styles from \"./Ui89Scene.module.css\"\nimport lookStyles from \"../style/look.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport interface Ui89SceneProps {\n look?: Ui89Look | string\n children: React.ReactNode\n}\n\nexport function Ui89Scene({ look = Ui89Look.main, children }: Ui89SceneProps) {\n return (\n <div\n className={`${styles.scene} ${lookStyles[look]} ${typoStyles.normal} ${scrollbarStyles.container}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./GridExpandTrick.module.css\"\n\nexport default function GridExpandTrick({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.gridExpandTrick}>{children}</span>\n}\n","import React from \"react\"\nimport styles from \"./ScrollContainer.module.css\"\n\nexport default function ScrollContainer({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.scrollContainer}>{children}</span>\n}\n","import styles from \"./Ui89ModalDialog.module.css\"\nimport React, { useMemo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport HoverShadow from \"./HoverShadow\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport GridExpandTrick from \"./GridExpandTrick\"\nimport ScrollContainer from \"./ScrollContainer\"\n\nexport interface Ui89ModalDialogProps {\n open: boolean\n size?: string\n children?: React.ReactNode\n topCenter?: React.ReactNode\n onRequestClose?: () => void\n}\n\nconst portalRoot: HTMLElement | null =\n typeof document !== \"undefined\" ? document.body : null\n\nexport function Ui89ModalDialog({\n open,\n size = \"medium\",\n children,\n topCenter,\n onRequestClose,\n}: Ui89ModalDialogProps) {\n const dialogClass = useMemo(() => {\n return [styles.dialog, open ? styles[\"dialog--open\"] : \"\"].join(\" \")\n }, [size, open])\n\n const dialogBoxClass = useMemo(() => {\n return [styles.dialogBox, styles[`dialogBox--size-${size}`]].join(\" \")\n }, [size, open])\n\n function onClickBackdrop() {\n if (onRequestClose !== undefined) {\n onRequestClose()\n }\n }\n\n const vdom = (\n <div className={dialogClass} role=\"dialog\">\n <div\n className={styles.dialogBackdrop}\n role=\"presentation\"\n onClick={onClickBackdrop}\n ></div>\n\n <div className={dialogBoxClass}>\n <div className={styles.spacer}></div>\n\n <HoverShadow>\n <GridExpandTrick>\n <Ui89Scene>\n <Ui89Card topCenter={topCenter}>\n <ScrollContainer>{children}</ScrollContainer>\n </Ui89Card>\n </Ui89Scene>\n </GridExpandTrick>\n </HoverShadow>\n </div>\n </div>\n )\n\n return portalRoot !== null ? createPortal(vdom, portalRoot) : vdom\n}\n","import React from \"react\"\n\nimport style from \"./Ui89NameValuePair.module.css\"\n\nexport interface Ui89NameValuePairProps {\n name: React.ReactNode\n value: React.ReactNode\n leftMaxWidth?: number\n}\n\nexport function Ui89NameValuePair({\n name,\n value,\n leftMaxWidth,\n}: Ui89NameValuePairProps) {\n return (\n <div className={style.nameValuePair}>\n <div\n className={style.nameValuePair__nameWrapper}\n style={{ maxWidth: `${leftMaxWidth}px` }}\n >\n <div className={style.nameValuePair__name}>{name}</div>\n <div className={style.nameValuePair__dots}></div>\n </div>\n <div className={style.nameValuePair__value}>{value}</div>\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgShortcut = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 100, height: 100, viewBox: \"0 0 100 100\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { x: 0, y: 0, width: 100, height: 100, fill: \"white\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 80, y1: 80, x2: 20, y2: 20, stroke: \"black\", strokeWidth: 15 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 50, y2: 20, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 20, y2: 50, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }));\nexport default SvgShortcut;\n","import React from \"react\"\n\nexport interface Ui89SpaceVerticalProps {\n gap?: number\n}\n\nexport function Ui89SpaceVertical({ gap = 1 }: Ui89SpaceVerticalProps) {\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${gap})`,\n }\n\n return <div style={style}></div>\n}\n","import React from \"react\"\n\nimport ShortcutSvg from \"../images/shortcut.svg\"\n\nimport styles from \"./Ui89Shortcut.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nimport { Ui89SpaceVertical } from \"./Ui89SpaceVertical\"\n\nexport interface Ui89ShortcutProps {\n imageUrl: string\n label: React.ReactNode\n onClick?: () => void\n}\n\nexport function Ui89Shortcut({\n imageUrl,\n label,\n onClick = () => {},\n}: Ui89ShortcutProps) {\n function onNativeClick() {\n onClick()\n }\n\n return (\n <div className={styles.container} onClick={onNativeClick}>\n <div className={styles.imageContainer}>\n <img className={styles.image} src={imageUrl} />\n\n <div className={styles.shortcutIconContainer}>\n <ShortcutSvg className={styles.shortcutIcon} width={16} height={16} />\n </div>\n </div>\n\n <Ui89SpaceVertical gap={1} />\n\n <div\n className={`${styles.label} ${typoStyles.smallBold}`}\n onClick={onNativeClick}\n >\n {label}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89Tabs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport interface Ui89TabsPropsOption {\n value: string | number\n label: React.ReactNode\n}\n\nexport interface Ui89TabsProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabsPropsOption[]\n\n /**\n * Stretch options such that they evenly take up the entire width.\n */\n stretch?: boolean\n}\n\nexport function Ui89Tabs({\n selected,\n onChange = () => {},\n options = [],\n stretch,\n}: Ui89TabsProps) {\n function handleOnChange(value: string | number) {\n onChange(value)\n }\n\n return (\n <div\n className={[\n styles.navigation,\n stretch ? styles[\"navigation--stretch\"] : \"\",\n ].join(\" \")}\n >\n {options.map((option) => (\n <div\n className={[\n styles.navigationItem,\n typoStyles.smallBold,\n selected === option.value ? styles.navigationItemSelected : \"\",\n ].join(\" \")}\n key={option.value}\n onClick={() => handleOnChange(option.value)}\n >\n {option.label}\n </div>\n ))}\n </div>\n )\n}\n","import { Ui89Card } from \"./Ui89Card\"\nimport { Ui89Tabs } from \"./Ui89Tabs\"\nimport React, { useCallback, useMemo } from \"react\"\n\nexport interface Ui89TabbedCardProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabbedCardPropsOption[]\n}\n\nexport interface Ui89TabbedCardPropsOption {\n value: string | number\n label: React.ReactNode\n render: () => React.JSX.Element\n}\n\nexport function Ui89TabbedCard({\n selected,\n onChange,\n options = [],\n}: Ui89TabbedCardProps) {\n const selectedItem = useMemo<Ui89TabbedCardPropsOption | null>(() => {\n return options.find((item) => item.value === selected) ?? null\n }, [selected, options])\n\n const render = useMemo(() => {\n return selectedItem !== null ? selectedItem.render : () => <></>\n }, [selectedItem])\n\n const renderKey = useMemo(() => {\n return selectedItem !== null ? selectedItem.value : undefined\n }, [selectedItem])\n\n return (\n <Ui89Card\n topCenter={\n <Ui89Tabs selected={selected} options={options} onChange={onChange} />\n }\n >\n <React.Fragment key={renderKey}>{render()}</React.Fragment>\n </Ui89Card>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89TagBox.module.css\"\n\nexport interface Ui89TagBoxProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n children: React.ReactNode\n}\n\nexport function Ui89TagBox({ theme, children }: Ui89TagBoxProps) {\n return (\n <div\n className={`${style.container} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89ThemeBackground.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\n\nexport interface Ui89ThemeBackgroundProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n children: React.ReactNode\n}\n\nexport function Ui89ThemeBackground({\n theme = Ui89Theme.primary,\n children,\n}: Ui89ThemeBackgroundProps) {\n return (\n <div className={`${styles.background} ${chosenThemeStyles[theme]}`}>\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleBox.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89TitleBoxProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleBox({ children }: Ui89TitleBoxProps) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleUnderline.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89TitleUnderlineProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleUnderline({ children }: Ui89TitleUnderlineProps) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { ToastContainer, toast } from \"react-toastify\"\n\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport { Ui89Theme } from \"../theme\"\n\nexport interface Ui89ToasterOptions {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n autoClose?: boolean\n duration?: number\n}\n\nexport function useUi89Toaster() {\n return {\n toast(\n content: React.ReactNode,\n options: Ui89ToasterOptions = { theme: Ui89Theme.primary },\n ) {\n const classNames = [\"ui89-toaster\", typoStyles.normal]\n\n if (options.theme !== undefined) {\n classNames.push(chosenThemeStyles[options.theme])\n }\n\n let autoClose: boolean | number = 5000\n\n if (options.duration !== undefined) {\n autoClose = options.duration\n }\n\n if (options.autoClose !== undefined) {\n if (!options.autoClose) {\n autoClose = false\n }\n }\n\n return toast(() => content, {\n className: classNames.join(\" \"),\n type: \"default\",\n autoClose,\n closeButton: false,\n hideProgressBar: true,\n closeOnClick: true,\n })\n },\n }\n}\n\nexport function Ui89Toaster() {\n return <ToastContainer />\n}\n","import React, { forwardRef, useMemo } from \"react\"\n// @ts-ignore\nimport { VariableSizeGrid } from \"react-window\"\nimport AutoSizer from \"react-virtualized-auto-sizer\"\nimport styles from \"./Ui89VirtualTable.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { Ui89TagBox } from \"./Ui89TagBox\"\n\nconst HEADER_HEIGHT = 30\n\ninterface VariableSizeGridProps {\n columnIndex: number\n rowIndex: number\n style: React.CSSProperties\n}\n\nexport interface Ui89VirtualTablePropsColumnRenderHeaderParams<T> {\n index: number\n column: Ui89VirtualTablePropsColumn<T>\n}\n\nexport interface Ui89VirtualTablePropsColumnRenderBodyParams<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualTablePropsColumn<T> {\n width?: number\n renderHeader?: React.FC<Ui89VirtualTablePropsColumnRenderHeaderParams<T>>\n renderBody: React.FC<Ui89VirtualTablePropsColumnRenderBodyParams<T>>\n}\n\nexport interface Ui89VirtualTableProps<T> {\n rows?: T[]\n columns?: Ui89VirtualTablePropsColumn<T>[]\n rowHeight?: number\n}\n\nexport function Ui89VirtualTable<T>(props: Ui89VirtualTableProps<T>) {\n const rows = useMemo(() => {\n return props.rows !== undefined ? props.rows : []\n }, [props.rows])\n\n const columns = useMemo(() => {\n return props.columns !== undefined ? props.columns : []\n }, [props.columns])\n\n function getRowHeight(index: number): number {\n if (index === 0) {\n // Header.\n return HEADER_HEIGHT\n } else {\n // Body\n return props.rowHeight ?? 50\n }\n }\n\n function getColumnWidth(index: number): number {\n return columns[index].width ?? 100\n }\n\n function getColumnHorizontalOffset(columnIndex: number) {\n let offset = 0\n\n for (let i = 0; i < columnIndex; i++) {\n offset += getColumnWidth(columnIndex)\n }\n\n return offset\n }\n\n function getColumnClass(columnIndex: number, rowIndex: number): string {\n const classes = [styles.cell]\n\n if (rowIndex === 0) {\n classes.push(styles[\"cell--row-first\"])\n }\n\n if (rowIndex === rows.length) {\n classes.push(styles[\"cell--row-last\"])\n }\n\n if (columnIndex === 0) {\n classes.push(styles[\"cell--column-first\"])\n }\n\n if (columnIndex === columns.length - 1) {\n classes.push(styles[\"cell--column-last\"])\n }\n\n return classes.join(\" \")\n }\n\n // This is the secret to having sticky headers.\n const innerElementType = forwardRef(({ children, ...rest }: any, ref) => (\n <div ref={ref} {...rest}>\n <div className={styles.tableHeader}>\n {columns.map((column, index) => (\n <div\n key={index}\n className={[getColumnClass(index, 0), typoStyles.normalBold].join(\n \" \",\n )}\n style={{\n left: getColumnHorizontalOffset(index),\n width: getColumnWidth(index) + \"px\",\n height: getRowHeight(0) + \"px\",\n }}\n >\n {column.renderHeader !== undefined && (\n <column.renderHeader index={index} column={column} />\n )}\n </div>\n ))}\n </div>\n\n {children}\n </div>\n ))\n\n return (\n <div className={styles.table}>\n {rows.length > 0 ? (\n <div className={styles.tableBody}>\n <AutoSizer>\n {({ height, width }) => (\n <VariableSizeGrid\n columnCount={columns.length}\n columnWidth={getColumnWidth}\n rowCount={rows.length + 1}\n rowHeight={getRowHeight}\n width={width}\n height={height}\n innerElementType={innerElementType}\n >\n {({ columnIndex, rowIndex, style }: VariableSizeGridProps) => (\n <div\n className={getColumnClass(columnIndex, rowIndex)}\n style={style}\n >\n {/* We do not render the first column. That space is reserved for the header */}\n {rowIndex !== 0 &&\n [columns[columnIndex].renderBody].map((BodyContent) => (\n <BodyContent\n key={rowIndex}\n index={rowIndex - 1}\n row={rows[rowIndex - 1]}\n />\n ))}\n </div>\n )}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </div>\n ) : (\n <div className={styles.empty}>\n <Ui89TagBox theme=\"warning\">Empty</Ui89TagBox>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","styles","style","ShortcutSvg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/theme.ts","../../src/Ui89Override.tsx","../../src/components/Ui89Breadcrumbs.tsx","../../src/components/HoverShadow.tsx","../../src/components/Ui89Button.tsx","../../src/components/Ui89Card.tsx","../../src/components/Ui89CardHorizontalConnection.tsx","../../src/components/TimeAnimation.tsx","../../src/components/Ui89DigitalClock.tsx","../../src/components/Ui89HighlightText.tsx","../../src/components/Ui89Hr.tsx","../../src/components/Ui89InputFileUpload.tsx","../../src/components/Ui89InputSelect.tsx","../../src/components/Ui89InputPassword.tsx","../../src/timeout.ts","../../src/components/Ui89InputText.tsx","../../src/text-utils.ts","../../src/components/Ui89InputTextNumber.tsx","../../src/components/Ui89MenuBar.tsx","../../src/components/Ui89Scene.tsx","../../src/components/GridExpandTrick.tsx","../../src/components/ScrollContainer.tsx","../../src/components/Ui89ModalDialog.tsx","../../src/components/Ui89NameValuePair.tsx","../../src/images/shortcut.svg","../../src/components/Ui89SpaceVertical.tsx","../../src/components/Ui89Shortcut.tsx","../../src/components/Ui89Tabs.tsx","../../src/components/Ui89TabbedCard.tsx","../../src/components/Ui89TagBox.tsx","../../src/components/Ui89ThemeBackground.tsx","../../src/components/Ui89TitleBox.tsx","../../src/components/Ui89TitleUnderline.tsx","../../src/components/Ui89Toaster.tsx","../../src/components/Ui89VirtualTable.tsx"],"sourcesContent":["export enum Ui89Theme {\n primary = \"primary\",\n secondary = \"secondary\",\n info = \"info\",\n success = \"success\",\n warning = \"warning\",\n danger = \"danger\",\n}\n\nexport enum Ui89Look {\n main = \"main\",\n side = \"side\",\n}\n","import React, { createContext, useContext, ReactNode } from \"react\"\n\ntype RouterPush = (url: string) => void | Promise<void>\n\ninterface Ui89OverrideContextType {\n routerPush?: RouterPush\n}\n\nexport interface Ui89OverrideProviderProps {\n children?: ReactNode\n routerPush?: RouterPush\n}\n\nconst Ui89OverrideContext = createContext<Ui89OverrideContextType>({})\n\nexport const Ui89OverrideProvider: React.FC<Ui89OverrideProviderProps> = ({\n routerPush,\n children,\n}) => {\n return (\n <Ui89OverrideContext.Provider value={{ routerPush }}>\n {children}\n </Ui89OverrideContext.Provider>\n )\n}\n\nexport const useUi89Overrides = (): Ui89OverrideContextType => {\n const context = useContext(Ui89OverrideContext)\n\n if (context === undefined) {\n throw new Error(\n \"useUi89Overrides must be used within a Ui89OverrideProvider\",\n )\n }\n\n return context\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Breadcrumbs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport type Ui89BreadcrumbsPropsOnSelect = (e: {\n item: Ui89BreadcrumbsPropsItem\n}) => void | Promise<void>\n\nexport interface Ui89BreadcrumbsPropsItem {\n label: React.ReactNode\n url?: string\n}\n\nexport interface Ui89BreadcrumbsProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n items: Ui89BreadcrumbsPropsItem[]\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}\n\nexport function Ui89BreadcrumbsItem({\n index,\n item,\n onSelect,\n}: {\n index: number\n item: Ui89BreadcrumbsPropsItem\n onSelect?: Ui89BreadcrumbsPropsOnSelect\n}) {\n const style = { \"--ui89-index\": index } as React.CSSProperties\n const tagname = item.url !== undefined ? \"a\" : \"div\"\n const overrides = useUi89Overrides()\n\n const onClick: React.MouseEventHandler<HTMLAnchorElement> = (e) => {\n if (item.url !== undefined) {\n if (item.url.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(item.url)\n }\n }\n }\n }\n\n return (\n <a\n className={`${resetStyles.a} ${styles.breadcrumbsItem}`}\n href={item.url}\n style={style}\n onClick={onClick}\n >\n <div className={styles.breadcrumbsItemBackground}></div>\n {item.label}\n </a>\n )\n}\n\nexport function Ui89Breadcrumbs({\n theme = Ui89Theme.primary,\n items,\n onSelect,\n}: Ui89BreadcrumbsProps) {\n return (\n <div\n className={`${styles.breadcrumbs} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {[...items.entries()].reverse().map(([index, item]) => (\n <Ui89BreadcrumbsItem\n key={index}\n index={index}\n item={item}\n onSelect={onSelect}\n />\n ))}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./HoverShadow.module.css\"\n\nexport default function HoverShadow({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <span className={styles.hoverShadow}>\n <span className={styles.hoverShadowBottom}></span>\n <span className={styles.hoverShadowRight}></span>\n {children}\n </span>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89Button.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport resetStyles from \"../style/reset.module.css\"\n\nimport HoverShadow from \"./HoverShadow\"\n\nimport { Ui89Theme } from \"../theme\"\nimport { useUi89Overrides } from \"../Ui89Override\"\n\nexport enum Ui89ButtonPropsSize {\n standard = \"standard\",\n square = \"square\",\n}\n\nexport interface Ui89ButtonProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n size?: Ui89ButtonPropsSize | keyof typeof Ui89ButtonPropsSize\n block?: boolean\n onClick?: () => void | Promise<void>\n href?: string\n children: React.ReactNode\n autoDisableOnClick?: boolean\n disabled?: boolean\n activated?: boolean\n}\n\nexport function Ui89Button({\n theme = Ui89Theme.primary,\n size = Ui89ButtonPropsSize.standard,\n block,\n onClick,\n href,\n children,\n autoDisableOnClick = true,\n disabled,\n activated,\n}: Ui89ButtonProps) {\n const overrides = useUi89Overrides()\n const [clicking, setClicking] = useState(false)\n\n let localDisabled = disabled || (autoDisableOnClick && clicking)\n\n async function onAnchorClick(e: React.MouseEvent<HTMLAnchorElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (href !== undefined) {\n if (href.startsWith(\"/\")) {\n if (overrides.routerPush !== undefined) {\n e.preventDefault()\n overrides.routerPush(href)\n }\n }\n }\n } finally {\n setClicking(false)\n }\n }\n\n async function onButtonClick(e: React.MouseEvent<HTMLButtonElement>) {\n if (localDisabled) {\n // The anchor tag does not support the disabled attribute so we do this.\n return\n }\n\n if (clicking) {\n // No double clicking allowed.\n return\n }\n\n try {\n setClicking(true)\n\n if (onClick === undefined) {\n // No handler.\n return\n }\n\n await onClick()\n } finally {\n setClicking(false)\n }\n }\n\n let containerClass = [\n styles.container,\n styles[\"container--size-\" + size],\n ].join(\" \")\n\n let buttonClass = [\n styles.button,\n typoStyles.special,\n chosenThemeStyles[theme],\n activated ? styles.active : undefined,\n block ? styles.block : undefined,\n disabled ? styles.disabled : undefined,\n clicking ? styles.active : undefined,\n ].join(\" \")\n\n if (href) {\n return (\n <span className={containerClass}>\n <HoverShadow>\n <a\n className={`${resetStyles.a} ${buttonClass}`}\n role=\"button\"\n href={href}\n onClick={onAnchorClick}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </a>\n </HoverShadow>\n </span>\n )\n } else {\n return (\n <span className={containerClass}>\n <HoverShadow>\n <button\n className={buttonClass}\n type=\"button\"\n onClick={onButtonClick}\n disabled={localDisabled}\n >\n <span className={styles.click}></span>\n <span className={styles.buttonContent}>{children}</span>\n </button>\n </HoverShadow>\n </span>\n )\n }\n}\n","import React from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport interface Ui89CardProps {\n topLeftCenter?: React.ReactNode\n topCenter?: React.ReactNode\n children: React.ReactNode\n}\n\nexport function Ui89Card({\n topLeftCenter,\n topCenter,\n children,\n}: Ui89CardProps) {\n const hasTopContent = topLeftCenter || topCenter\n\n return (\n <div\n className={`${styles.container} ${hasTopContent ? styles.containerHasTop : \"\"}`}\n >\n <div className={styles.inside}>\n {topLeftCenter && (\n <div className={styles.topLeftCenter}>{topLeftCenter}</div>\n )}\n {topCenter && <div className={styles.topCenter}>{topCenter}</div>}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n\n {children}\n\n {hasTopContent && <div className=\"space-vertical-1\"></div>}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./Ui89Card.module.css\"\n\nexport interface Ui89CardHorizontalConnectionProps {\n children: React.ReactNode\n overflow?: boolean\n}\n\nexport function Ui89CardHorizontalConnection({\n children,\n overflow,\n}: Ui89CardHorizontalConnectionProps) {\n return (\n <div\n className={`${styles.cardHorizontalConnection} ${overflow ? styles[\"cardHorizontalConnection--overflow\"] : \"\"}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState, useEffect } from \"react\"\n\nexport interface TimeAnimationPropsChildrenProps {\n now: Date\n}\n\nexport interface TimeAnimationProps {\n children: (props: TimeAnimationPropsChildrenProps) => React.ReactNode\n}\n\nexport const TimeAnimation: React.FC<TimeAnimationProps> = ({ children }) => {\n const [currentTime, setCurrentTime] = useState(new Date())\n\n useEffect(() => {\n const tick = () => {\n const now = new Date()\n setCurrentTime(now)\n\n // Calculate time until the next exact second\n const msUntilNextSecond = 1000 - now.getMilliseconds()\n setTimeout(tick, msUntilNextSecond)\n }\n\n // Start the first tick\n const msUntilNextSecond = 1000 - currentTime.getMilliseconds()\n const timeoutId = setTimeout(tick, msUntilNextSecond)\n\n return () => clearTimeout(timeoutId)\n }, [])\n\n return <>{children({ now: currentTime })}</>\n}\n","import React, { useRef } from \"react\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { TimeAnimation, TimeAnimationPropsChildrenProps } from \"./TimeAnimation\"\n\nexport interface Ui89DigitalClockProps {\n format?: string // Custom format string\n}\n\nexport function Ui89DigitalClock({\n format = \"HH:mm:ss\",\n}: Ui89DigitalClockProps) {\n function render({ now }: TimeAnimationPropsChildrenProps) {\n const placeholders: Record<string, string> = {\n YYYY: now.getFullYear().toString(),\n MM: (now.getMonth() + 1).toString().padStart(2, \"0\"),\n DD: now.getDate().toString().padStart(2, \"0\"),\n HH: now.getHours().toString().padStart(2, \"0\"),\n mm: now.getMinutes().toString().padStart(2, \"0\"),\n ss: now.getSeconds().toString().padStart(2, \"0\"),\n hh: (now.getHours() % 12 || 12).toString().padStart(2, \"0\"),\n A: now.getHours() >= 12 ? \"PM\" : \"AM\",\n }\n\n // Replace placeholders in the format string\n let formattedDate = format\n for (const [key, value] of Object.entries(placeholders)) {\n formattedDate = formattedDate.replace(key, value)\n }\n\n return formattedDate\n }\n\n return (\n <span className={`${typoStyles.special}`}>\n <TimeAnimation>{render}</TimeAnimation>\n </span>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89HighlightText.module.css\"\n\nexport interface Ui89HighlightTextProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n block?: boolean\n children: React.ReactNode\n}\n\nexport function Ui89HighlightText({\n theme,\n block,\n children,\n}: Ui89HighlightTextProps) {\n return (\n <span\n className={`${style.container} ${chosenThemeStyles[theme]} ${block ? style[\"container--block\"] : null}`}\n >\n {children}\n </span>\n )\n}\n","import React from \"react\"\n\nimport style from \"./Ui89Hr.module.css\"\nimport { Ui89Theme } from \"../theme\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport enum Ui89HrPropsLook {\n straight = \"straight\",\n dotted = \"dotted\",\n dashed = \"dashed\",\n double = \"double\",\n}\n\nexport interface Ui89HrProps {\n look?: Ui89HrPropsLook | keyof typeof Ui89HrPropsLook\n theme?: Ui89Theme | keyof typeof Ui89Theme\n}\n\nexport function Ui89Hr({ look = \"straight\", theme }: Ui89HrProps) {\n return (\n <div\n className={`${style.hr} ${style[`hr--${look}`]} ${theme !== undefined ? style[\"hr--use-theme\"] : \"\"} ${theme !== undefined ? chosenThemeStyles[theme] : \"\"}`}\n >\n <div className={style.hrDouble}></div>\n </div>\n )\n}\n","import React, { useRef } from \"react\"\n\nimport styles from \"./Ui89InputFileUpload.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\nimport { Ui89Button } from \"./Ui89Button\"\n\nexport interface Ui89InputFileUploadProps {\n value?: any\n onChange?: (value: File | null) => void\n}\n\nexport function Ui89InputFileUpload({\n value,\n onChange,\n}: Ui89InputFileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n if (!onChange) {\n return\n }\n\n if (e.target.files === null) {\n onChange(null)\n return\n }\n\n if (e.target.files.length === 0) {\n onChange(null)\n return\n }\n\n onChange(e.target.files[0])\n }\n\n function onClick() {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.click()\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n className={typoStyles.special}\n type=\"file\"\n onChange={implOnChange}\n hidden\n />\n\n {value ? (\n <div className={styles.inputFileUpload}>\n <Ui89Button onClick={onClick}>Change</Ui89Button>\n <span\n className={`${styles.inputFileUpload__info} ${textStyles.singleLine} ${textStyles[\"singleLine--ellipsisLeft\"]}`}\n title={value.name}\n >\n {value.name}\n </span>\n </div>\n ) : (\n <Ui89Button onClick={onClick}>Upload</Ui89Button>\n )}\n </div>\n )\n}\n","import React, { useMemo, useState } from \"react\"\n\nimport styles from \"./Ui89InputSelect.module.css\"\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89InputSelectPropsOption {\n value: string | number\n label: React.ReactNode\n}\n\nexport interface Ui89InputSelectProps {\n options?: (Ui89InputSelectPropsOption | string | number)[]\n value?: string | number\n onChange?: (value: string | number) => void\n}\n\nexport function Ui89InputSelect({\n options,\n value,\n onChange,\n}: Ui89InputSelectProps) {\n const realOptions = useMemo(() => {\n if (options === undefined) {\n return []\n }\n\n return options.map((option) => {\n if (typeof option !== \"object\") {\n return {\n value: option,\n label: String(option),\n }\n } else {\n return option\n }\n })\n }, [options])\n\n const selectedOption = useMemo(() => {\n return (\n realOptions.find((option) => {\n return option.value === value\n }) ?? null\n )\n }, [realOptions, value])\n\n function selectOption(option: Ui89InputSelectPropsOption) {\n if (onChange) {\n onChange(option.value)\n }\n\n if (document.activeElement !== null) {\n // @ts-expect-error\n document.activeElement.blur()\n }\n }\n\n function optionTitle(option: Ui89InputSelectPropsOption) {\n return typeof option.label === \"string\" ? option.label : undefined\n }\n\n return (\n <div className={`${styles.inputSelect}`}>\n <div\n className={[\n inputBoxStyles.inputBox,\n inputBoxStyles[\"inputBox--unselectable\"],\n inputBoxStyles[\"inputBox--clickable\"],\n textStyles.singleLine,\n ].join(\" \")}\n tabIndex={0}\n title={\n selectedOption !== null ? optionTitle(selectedOption) : undefined\n }\n >\n {selectedOption !== null ? <>{selectedOption.label}</> : <>Select...</>}\n </div>\n\n <div className={[styles.menu].join(\" \")} tabIndex={0}>\n <div className={styles.menuContent}>\n {realOptions.length > 0 ? (\n realOptions.map((o) => {\n const isSelected =\n selectedOption && selectedOption.value === o.value\n\n return (\n <div\n className={[\n styles.menuItem,\n isSelected ? styles.selected : null,\n ].join(\" \")}\n title={optionTitle(o)}\n key={o.value}\n onClick={() => selectOption(o)}\n >\n {o.label}\n </div>\n )\n })\n ) : (\n <div\n className={[styles.menuItem, styles[\"menuItem--disabled\"]].join(\n \" \",\n )}\n >\n <empty>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { useState } from \"react\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nexport interface Ui89InputPasswordProps {\n value?: any\n placeholder?: string\n onChange?: (value: any) => void\n}\n\nexport function Ui89InputPassword({\n value,\n placeholder,\n onChange,\n}: Ui89InputPasswordProps) {\n const [intermediateValue, setIntermediateValue] = useState(value ?? \"\")\n\n const implOnChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n const newValue = e.target.value\n\n setIntermediateValue(newValue)\n\n if (onChange) {\n onChange(newValue)\n }\n }\n\n return (\n <div>\n <input\n type=\"password\"\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n role=\"textbox\"\n value={intermediateValue}\n onChange={implOnChange}\n placeholder={placeholder}\n />\n </div>\n )\n}\n","import Timeout from \"smart-timeout\"\n\nlet uniqueId = 0\n\nexport function throttledTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (Timeout.pending(id)) {\n Timeout.restart(id)\n } else {\n Timeout.set(id, () => callback(), delay)\n }\n },\n\n /**\n * If there is a call that has been scheduled, remove it from the queue.\n */\n abort() {\n Timeout.clear(id, true)\n },\n }\n}\n\nexport function spacedTimeout() {\n const id = String(uniqueId++)\n let callback: () => void\n\n return {\n call(delay: number, f: () => void) {\n callback = f\n\n if (!Timeout.pending(id)) {\n Timeout.set(id, () => callback(), delay)\n }\n },\n }\n}\n","import React, { useMemo } from \"react\"\nimport { useState, useEffect, useRef } from \"react\"\nimport { throttledTimeout } from \"../timeout\"\n\nimport inputBoxStyles from \"../style/input-box.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nconst THROTTLE_DELAY = 200\n\nexport interface Ui89InputTextProps {\n value?: any\n placeholder?: string\n autoTrim?: boolean\n onChange?: (value: any) => void\n onTyping?: (value: boolean) => void\n onFocus?: () => void\n onBlur?: () => void\n}\n\nfunction convertAnyToText(value: any) {\n return value ?? \"\"\n}\n\nexport function Ui89InputText({\n value,\n placeholder,\n autoTrim = true,\n onChange,\n onTyping,\n onFocus,\n onBlur,\n}: Ui89InputTextProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [intermediateValue, setIntermediateValue] = useState(value)\n const [isTyping, setIsTyping] = useState(false)\n const onChangeRef = useRef(onChange)\n const onChangeThrottled = useMemo(() => throttledTimeout(), [])\n\n useEffect(() => {\n onChangeRef.current = onChange\n }, [onChange])\n\n useEffect(() => {\n if (inputRef.current === null) {\n return\n }\n\n inputRef.current.onfocus = () => {\n setIsTyping(true)\n\n if (onTyping) {\n onTyping(true)\n }\n\n if (onFocus) {\n onFocus()\n }\n }\n\n inputRef.current.onblur = () => {\n onChangeThrottled.abort()\n update()\n\n setIsTyping(false)\n\n if (onTyping) {\n onTyping(false)\n }\n\n if (onBlur) {\n onBlur()\n }\n }\n }, [inputRef.current, onBlur, onFocus])\n\n useEffect(() => {\n if (!isTyping) {\n // Lets show the user what the actual value is.\n onChangeThrottled.call(THROTTLE_DELAY, () => {\n setIntermediateValue(value)\n })\n }\n }, [value])\n\n function implOnChange(e: React.ChangeEvent<HTMLInputElement>) {\n setIntermediateValue(e.target.value)\n onChangeThrottled.call(THROTTLE_DELAY, update)\n }\n\n function update() {\n if (!onChangeRef.current) {\n return\n }\n\n if (inputRef.current === null) {\n return\n }\n\n // We get the current value straight from the element because this function\n // may have been queued.\n let newVal = inputRef.current.value\n\n if (autoTrim) {\n // Must trim after setting intermediate value. Do not want to disturb\n // user.\n newVal = newVal.replace(/\\s+/g, \" \").trim()\n }\n\n if (newVal === value) {\n // Same value.\n return\n }\n\n onChangeRef.current(newVal)\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n value={intermediateValue}\n className={`${inputBoxStyles.inputBox} ${typoStyles.special}`}\n type=\"text\"\n onChange={implOnChange}\n placeholder={placeholder}\n />\n </div>\n )\n}\n","export function stringRemoveAllWhitespace(str: string): string {\n return str.replace(/\\s+/g, \"\")\n}\n","import React from \"react\"\nimport { useState, useEffect } from \"react\"\nimport { Ui89InputText } from \"./Ui89InputText\"\nimport { stringRemoveAllWhitespace } from \"../text-utils\"\n\nexport interface Ui89InputTextNumberProps {\n emptyValue?: any\n value?: any\n min?: number\n max?: number\n onChange?: (value: any) => void\n precision?: number\n}\n\nexport function isTextNumber(text: string): boolean {\n return /\\b\\d+(\\.\\d+)?\\b/.test(text)\n}\n\nfunction displayText(value: any, emptyValue: any) {\n if (value === undefined) {\n // No idea how to display this.\n return \"\"\n } else if (value === emptyValue) {\n // Display emptiness.\n return \"\"\n } else if (isNaN(value)) {\n // No idea what to display.\n return \"\"\n }\n\n return value.toString()\n}\n\nexport function Ui89InputTextNumber({\n /**\n * The value that is emitted when the input is emptied.\n */\n emptyValue = null,\n value,\n min,\n max,\n onChange,\n precision,\n}: Ui89InputTextNumberProps) {\n const [isTyping, setIsTyping] = useState(false)\n const [intermediateValue, setIntermediateValue] = useState(\n displayText(value, emptyValue),\n )\n\n function implOnChange(value: string) {\n if (onChange === undefined) {\n return\n }\n\n if (value === \"\") {\n // Use empty value.\n onChange(emptyValue)\n return\n }\n\n value = stringRemoveAllWhitespace(value)\n\n if (!isTextNumber(value)) {\n // We end here.\n return\n }\n\n const numberValue = Number(value)\n\n if (min !== undefined) {\n if (numberValue <= min) {\n value = String(min)\n }\n }\n\n if (max !== undefined) {\n if (numberValue >= max) {\n value = String(max)\n }\n }\n\n onChange(value)\n }\n\n useEffect(() => {\n if (!isTyping) {\n setIntermediateValue(displayText(value, emptyValue))\n }\n }, [isTyping, value])\n\n return (\n <Ui89InputText\n value={intermediateValue}\n onChange={implOnChange}\n onTyping={setIsTyping}\n />\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89MenuBar.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport interface Ui89MenuBarPropsItem {\n label: React.ReactNode\n onClick?: () => void\n children?: Ui89MenuBarPropsItem[]\n}\n\nexport interface Ui89MenuBarProps {\n items: Ui89MenuBarPropsItem[]\n}\n\nexport function Ui89MenuBar({ items }: Ui89MenuBarProps) {\n return (\n <div\n className={`${styles.menuBar} ${typoStyles.special} ${scrollbarStyles.container}`}\n >\n {items.map((item, index) => {\n function onNativeClick() {\n if (item.onClick !== undefined) {\n item.onClick()\n }\n }\n\n return (\n <div\n key={index}\n className={styles.menuBarItem}\n onClick={onNativeClick}\n >\n {item.label}\n </div>\n )\n })}\n </div>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Look } from \"../theme\"\n\nimport styles from \"./Ui89Scene.module.css\"\nimport lookStyles from \"../style/look.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport scrollbarStyles from \"../style/scrollbar.module.css\"\n\nexport interface Ui89SceneProps {\n look?: Ui89Look | string\n children: React.ReactNode\n}\n\nexport function Ui89Scene({ look = Ui89Look.main, children }: Ui89SceneProps) {\n return (\n <div\n className={`${styles.scene} ${lookStyles[look]} ${typoStyles.normal} ${scrollbarStyles.container}`}\n >\n {children}\n </div>\n )\n}\n","import React from \"react\"\nimport styles from \"./GridExpandTrick.module.css\"\n\nexport default function GridExpandTrick({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.gridExpandTrick}>{children}</span>\n}\n","import React from \"react\"\nimport styles from \"./ScrollContainer.module.css\"\n\nexport default function ScrollContainer({\n children,\n}: {\n children: React.ReactNode\n}) {\n return <span className={styles.scrollContainer}>{children}</span>\n}\n","import styles from \"./Ui89ModalDialog.module.css\"\nimport React, { useMemo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Ui89Card } from \"./Ui89Card\"\nimport HoverShadow from \"./HoverShadow\"\nimport { Ui89Scene } from \"./Ui89Scene\"\nimport GridExpandTrick from \"./GridExpandTrick\"\nimport ScrollContainer from \"./ScrollContainer\"\n\nexport interface Ui89ModalDialogProps {\n open: boolean\n size?: string\n children?: React.ReactNode\n topCenter?: React.ReactNode\n onRequestClose?: () => void\n}\n\nconst portalRoot: HTMLElement | null =\n typeof document !== \"undefined\" ? document.body : null\n\nexport function Ui89ModalDialog({\n open,\n size = \"medium\",\n children,\n topCenter,\n onRequestClose,\n}: Ui89ModalDialogProps) {\n const dialogClass = useMemo(() => {\n return [styles.dialog, open ? styles[\"dialog--open\"] : \"\"].join(\" \")\n }, [size, open])\n\n const dialogBoxClass = useMemo(() => {\n return [styles.dialogBox, styles[`dialogBox--size-${size}`]].join(\" \")\n }, [size, open])\n\n function onClickBackdrop() {\n if (onRequestClose !== undefined) {\n onRequestClose()\n }\n }\n\n const vdom = (\n <div className={dialogClass} role=\"dialog\">\n <div\n className={styles.dialogBackdrop}\n role=\"presentation\"\n onClick={onClickBackdrop}\n ></div>\n\n <div className={dialogBoxClass}>\n <div className={styles.spacer}></div>\n\n <HoverShadow>\n <GridExpandTrick>\n <Ui89Scene>\n <Ui89Card topCenter={topCenter}>\n <ScrollContainer>{children}</ScrollContainer>\n </Ui89Card>\n </Ui89Scene>\n </GridExpandTrick>\n </HoverShadow>\n </div>\n </div>\n )\n\n return portalRoot !== null ? createPortal(vdom, portalRoot) : vdom\n}\n","import React from \"react\"\n\nimport style from \"./Ui89NameValuePair.module.css\"\n\nexport interface Ui89NameValuePairProps {\n name: React.ReactNode\n value: React.ReactNode\n leftMaxWidth?: number\n}\n\nexport function Ui89NameValuePair({\n name,\n value,\n leftMaxWidth,\n}: Ui89NameValuePairProps) {\n return (\n <div className={style.nameValuePair}>\n <div\n className={style.nameValuePair__nameWrapper}\n style={{ maxWidth: `${leftMaxWidth}px` }}\n >\n <div className={style.nameValuePair__name}>{name}</div>\n <div className={style.nameValuePair__dots}></div>\n </div>\n <div className={style.nameValuePair__value}>{value}</div>\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgShortcut = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 100, height: 100, viewBox: \"0 0 100 100\", ...props }, /* @__PURE__ */ React.createElement(\"rect\", { x: 0, y: 0, width: 100, height: 100, fill: \"white\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 80, y1: 80, x2: 20, y2: 20, stroke: \"black\", strokeWidth: 15 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 50, y2: 20, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"line\", { x1: 20, y1: 20, x2: 20, y2: 50, stroke: \"black\", strokeWidth: 15, strokeLinecap: \"round\" }));\nexport default SvgShortcut;\n","import React from \"react\"\n\nexport interface Ui89SpaceVerticalProps {\n gap?: number\n}\n\nexport function Ui89SpaceVertical({ gap = 1 }: Ui89SpaceVerticalProps) {\n const style = {\n paddingTop: `calc(var(--ui89-safe-space) * ${gap})`,\n }\n\n return <div style={style}></div>\n}\n","import React from \"react\"\n\nimport ShortcutSvg from \"../images/shortcut.svg\"\n\nimport styles from \"./Ui89Shortcut.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\n\nimport { Ui89SpaceVertical } from \"./Ui89SpaceVertical\"\n\nexport interface Ui89ShortcutProps {\n imageUrl: string\n label: React.ReactNode\n onClick?: () => void\n}\n\nexport function Ui89Shortcut({\n imageUrl,\n label,\n onClick = () => {},\n}: Ui89ShortcutProps) {\n function onNativeClick() {\n onClick()\n }\n\n return (\n <div className={styles.container} onClick={onNativeClick}>\n <div className={styles.imageContainer}>\n <img className={styles.image} src={imageUrl} />\n\n <div className={styles.shortcutIconContainer}>\n <ShortcutSvg className={styles.shortcutIcon} width={16} height={16} />\n </div>\n </div>\n\n <Ui89SpaceVertical gap={1} />\n\n <div\n className={`${styles.label} ${typoStyles.smallBold}`}\n onClick={onNativeClick}\n >\n {label}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89Tabs.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nexport interface Ui89TabsPropsOption {\n value: string | number\n label: React.ReactNode\n}\n\nexport interface Ui89TabsProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabsPropsOption[]\n\n /**\n * Stretch options such that they evenly take up the entire width.\n */\n stretch?: boolean\n}\n\nexport function Ui89Tabs({\n selected,\n onChange = () => {},\n options = [],\n stretch,\n}: Ui89TabsProps) {\n function handleOnChange(value: string | number) {\n onChange(value)\n }\n\n return (\n <div\n className={[\n styles.navigation,\n stretch ? styles[\"navigation--stretch\"] : \"\",\n ].join(\" \")}\n >\n {options.map((option) => (\n <div\n className={[\n styles.navigationItem,\n typoStyles.smallBold,\n selected === option.value ? styles.navigationItemSelected : \"\",\n ].join(\" \")}\n key={option.value}\n onClick={() => handleOnChange(option.value)}\n >\n {option.label}\n </div>\n ))}\n </div>\n )\n}\n","import { Ui89Card } from \"./Ui89Card\"\nimport { Ui89Tabs } from \"./Ui89Tabs\"\nimport React, { useCallback, useMemo } from \"react\"\n\nexport interface Ui89TabbedCardProps {\n selected?: any\n onChange?: (value: string | number) => void\n options?: Ui89TabbedCardPropsOption[]\n}\n\nexport interface Ui89TabbedCardPropsOption {\n value: string | number\n label: React.ReactNode\n render: () => React.JSX.Element\n}\n\nexport function Ui89TabbedCard({\n selected,\n onChange,\n options = [],\n}: Ui89TabbedCardProps) {\n const selectedItem = useMemo<Ui89TabbedCardPropsOption | null>(() => {\n return options.find((item) => item.value === selected) ?? null\n }, [selected, options])\n\n const render = useMemo(() => {\n return selectedItem !== null ? selectedItem.render : () => <></>\n }, [selectedItem])\n\n const renderKey = useMemo(() => {\n return selectedItem !== null ? selectedItem.value : undefined\n }, [selectedItem])\n\n return (\n <Ui89Card\n topCenter={\n <Ui89Tabs selected={selected} options={options} onChange={onChange} />\n }\n >\n <React.Fragment key={renderKey}>{render()}</React.Fragment>\n </Ui89Card>\n )\n}\n","import React from \"react\"\n\nimport { Ui89Theme } from \"../theme\"\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport style from \"./Ui89TagBox.module.css\"\n\nexport interface Ui89TagBoxProps {\n theme: Ui89Theme | keyof typeof Ui89Theme\n children: React.ReactNode\n}\n\nexport function Ui89TagBox({ theme, children }: Ui89TagBoxProps) {\n return (\n <div\n className={`${style.container} ${typoStyles.special} ${chosenThemeStyles[theme]}`}\n >\n {children}\n </div>\n )\n}\n","import React, { useState } from \"react\"\n\nimport styles from \"./Ui89ThemeBackground.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\n\nimport { Ui89Theme } from \"../theme\"\n\nexport interface Ui89ThemeBackgroundProps {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n children: React.ReactNode\n}\n\nexport function Ui89ThemeBackground({\n theme = Ui89Theme.primary,\n children,\n}: Ui89ThemeBackgroundProps) {\n return (\n <div className={`${styles.background} ${chosenThemeStyles[theme]}`}>\n {children}\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleBox.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89TitleBoxProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleBox({ children }: Ui89TitleBoxProps) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\n\nimport styles from \"./Ui89TitleUnderline.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport textStyles from \"../style/text.module.css\"\n\nexport interface Ui89TitleUnderlineProps {\n children: React.ReactNode\n}\n\nexport function Ui89TitleUnderline({ children }: Ui89TitleUnderlineProps) {\n return (\n <div className={`${styles.container} ${typoStyles.special}`}>\n <div className={`${styles.inside} ${textStyles.singleLine}`}>\n {children}\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport { ToastContainer, toast } from \"react-toastify\"\n\nimport typoStyles from \"../style/typo.module.css\"\nimport chosenThemeStyles from \"../style/chosen-theme.module.css\"\nimport { Ui89Theme } from \"../theme\"\n\nexport interface Ui89ToasterOptions {\n theme?: Ui89Theme | keyof typeof Ui89Theme\n autoClose?: boolean\n duration?: number\n}\n\nexport function useUi89Toaster() {\n return {\n toast(\n content: React.ReactNode,\n options: Ui89ToasterOptions = { theme: Ui89Theme.primary },\n ) {\n const classNames = [\"ui89-toaster\", typoStyles.normal]\n\n if (options.theme !== undefined) {\n classNames.push(chosenThemeStyles[options.theme])\n }\n\n let autoClose: boolean | number = 5000\n\n if (options.duration !== undefined) {\n autoClose = options.duration\n }\n\n if (options.autoClose !== undefined) {\n if (!options.autoClose) {\n autoClose = false\n }\n }\n\n return toast(() => content, {\n className: classNames.join(\" \"),\n type: \"default\",\n autoClose,\n closeButton: false,\n hideProgressBar: true,\n closeOnClick: true,\n })\n },\n }\n}\n\nexport function Ui89Toaster() {\n return <ToastContainer />\n}\n","import React, { forwardRef, useMemo } from \"react\"\n// @ts-ignore\nimport { VariableSizeGrid } from \"react-window\"\nimport AutoSizer from \"react-virtualized-auto-sizer\"\nimport styles from \"./Ui89VirtualTable.module.css\"\nimport typoStyles from \"../style/typo.module.css\"\nimport { Ui89TagBox } from \"./Ui89TagBox\"\n\nconst HEADER_HEIGHT = 30\n\ninterface VariableSizeGridProps {\n columnIndex: number\n rowIndex: number\n style: React.CSSProperties\n}\n\nexport interface Ui89VirtualTablePropsColumnRenderHeaderParams<T> {\n index: number\n column: Ui89VirtualTablePropsColumn<T>\n}\n\nexport interface Ui89VirtualTablePropsColumnRenderBodyParams<T> {\n index: number\n row: T\n}\n\nexport interface Ui89VirtualTablePropsColumn<T> {\n width?: number\n renderHeader?: React.FC<Ui89VirtualTablePropsColumnRenderHeaderParams<T>>\n renderBody: React.FC<Ui89VirtualTablePropsColumnRenderBodyParams<T>>\n}\n\nexport interface Ui89VirtualTableProps<T> {\n rows?: T[]\n columns?: Ui89VirtualTablePropsColumn<T>[]\n rowHeight?: number\n}\n\nexport function Ui89VirtualTable<T>(props: Ui89VirtualTableProps<T>) {\n const rows = useMemo(() => {\n return props.rows !== undefined ? props.rows : []\n }, [props.rows])\n\n const columns = useMemo(() => {\n return props.columns !== undefined ? props.columns : []\n }, [props.columns])\n\n function getRowHeight(index: number): number {\n if (index === 0) {\n // Header.\n return HEADER_HEIGHT\n } else {\n // Body\n return props.rowHeight ?? 50\n }\n }\n\n function getColumnWidth(index: number): number {\n return columns[index].width ?? 100\n }\n\n function getColumnHorizontalOffset(columnIndex: number) {\n let offset = 0\n\n for (let i = 0; i < columnIndex; i++) {\n offset += getColumnWidth(columnIndex)\n }\n\n return offset\n }\n\n function getColumnClass(columnIndex: number, rowIndex: number): string {\n const classes = [styles.cell]\n\n if (rowIndex === 0) {\n classes.push(styles[\"cell--row-first\"])\n }\n\n if (rowIndex === rows.length) {\n classes.push(styles[\"cell--row-last\"])\n }\n\n if (columnIndex === 0) {\n classes.push(styles[\"cell--column-first\"])\n }\n\n if (columnIndex === columns.length - 1) {\n classes.push(styles[\"cell--column-last\"])\n }\n\n return classes.join(\" \")\n }\n\n // This is the secret to having sticky headers.\n const innerElementType = forwardRef(({ children, ...rest }: any, ref) => (\n <div ref={ref} {...rest}>\n <div className={styles.tableHeader}>\n {columns.map((column, index) => (\n <div\n key={index}\n className={[getColumnClass(index, 0), typoStyles.normalBold].join(\n \" \",\n )}\n style={{\n left: getColumnHorizontalOffset(index),\n width: getColumnWidth(index) + \"px\",\n height: getRowHeight(0) + \"px\",\n }}\n >\n {column.renderHeader !== undefined && (\n <column.renderHeader index={index} column={column} />\n )}\n </div>\n ))}\n </div>\n\n {children}\n </div>\n ))\n\n return (\n <div className={styles.table}>\n {rows.length > 0 ? (\n <div className={styles.tableBody}>\n <AutoSizer>\n {({ height, width }) => (\n <VariableSizeGrid\n columnCount={columns.length}\n columnWidth={getColumnWidth}\n rowCount={rows.length + 1}\n rowHeight={getRowHeight}\n width={width}\n height={height}\n innerElementType={innerElementType}\n >\n {({ columnIndex, rowIndex, style }: VariableSizeGridProps) => (\n <div\n className={getColumnClass(columnIndex, rowIndex)}\n style={style}\n >\n {/* We do not render the first column. That space is reserved for the header */}\n {rowIndex !== 0 &&\n [columns[columnIndex].renderBody].map((BodyContent) => (\n <BodyContent\n key={rowIndex}\n index={rowIndex - 1}\n row={rows[rowIndex - 1]}\n />\n ))}\n </div>\n )}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </div>\n ) : (\n <div className={styles.empty}>\n <Ui89TagBox theme=\"warning\">Empty</Ui89TagBox>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","styles","style","ShortcutSvg"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-ui89",
|
|
3
3
|
"description": "A collection of React components that mimic a common style of user interfaces from the late 80s and early 90s.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.27.0",
|
|
5
5
|
"author": "Daniel Araujo",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"files": [
|