react-ui89 0.20.2 → 0.20.3

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