Grabbed dndbeyond's source code

```
~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js
```
This commit is contained in:
2025-05-28 11:50:03 -07:00
commit 8df9031d27
3592 changed files with 319051 additions and 0 deletions
@@ -0,0 +1,62 @@
import clsx from "clsx";
import { FC, HTMLAttributes } from "react";
import { useSelector } from "react-redux";
import {
BeveledBoxSvg317x89,
BoxBackground,
} from "@dndbeyond/character-components/es";
import { Constants } from "@dndbeyond/character-rules-engine";
import { useSidebar } from "~/contexts/Sidebar/Sidebar";
import { useCharacterEngine } from "~/hooks/useCharacterEngine";
import { appEnvSelectors } from "~/tools/js/Shared/selectors";
import { PaneComponentEnum } from "../Sidebar/types";
import { DeathSummary } from "./DeathSummary";
import { HitPointsQuickAdjust } from "./HitPointsQuickAdjust";
import { HitPointsSummary } from "./HitPointsSummary";
import styles from "./styles.module.css";
interface Props extends HTMLAttributes<HTMLDivElement> {}
export const HitPointsBox: FC<Props> = ({ className, ...props }) => {
const {
pane: { paneHistoryStart },
} = useSidebar();
const isReadonly = useSelector(appEnvSelectors.getIsReadonly);
const { hpInfo, deathCause, characterTheme } = useCharacterEngine();
const onClick = (evt: React.MouseEvent): void => {
if (!isReadonly) {
evt.stopPropagation();
evt.nativeEvent.stopImmediatePropagation();
paneHistoryStart(PaneComponentEnum.HEALTH_MANAGE);
}
};
return (
<div
className={clsx([styles.hitPointsBox, className])}
onClick={onClick}
{...props}
>
<BoxBackground
StyleComponent={BeveledBoxSvg317x89}
theme={characterTheme}
/>
{deathCause === Constants.DeathCauseEnum.CONDITION ||
hpInfo.remainingHp <= 0 ? (
<DeathSummary />
) : (
<div className={styles.content}>
<h1 className={styles.label}>Hit Points</h1>
<HitPointsQuickAdjust />
<HitPointsSummary hpInfo={hpInfo} />
</div>
)}
</div>
);
};