416e8b3e42
* compact bottom toolbar * put menu trigger to top left * add popup to switch between grouped tool types * add a dedicated mobile toolbar * update position for mobile * fix active tool type * add mobile mode as well * mobile actions * remove refactored popups * excali logo mobile * include mobile * update mobile menu layout * move selection and deletion back to right * do not fill eraser * fix styling * fix active styling * bigger buttons, smaller gaps * fix other tools not opened * fix: Style panel persistence and restore Signed-off-by: Mark Tolmacs <mark@lazycat.hu> * move hidden action btns to extra popover * fix dropdown overlapping with welcome screen * replace custom popup with popover * improve button styles * swapping redo and delete * always show undo & redo and improve styling * change background * toolbar styles * no any * persist perferred selection tool and align tablet as well * add a renderTopLeftUI to props * tweak border and bg * show combined properties only when using suitable tools * fix preferred tool * new stroke icon * hide color picker hot keys * init preferred tool based on device * fix main menu sizing * fix welcome screen offset * put text before image * disable call highlight on buttons * fix renderTopLeftUI --------- Signed-off-by: Mark Tolmacs <mark@lazycat.hu> Co-authored-by: Mark Tolmacs <mark@lazycat.hu> Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import * as Popover from "@radix-ui/react-popover";
|
|
|
|
import { MOBILE_ACTION_BUTTON_BG } from "@excalidraw/common";
|
|
|
|
import type { FontFamilyValues } from "@excalidraw/element/types";
|
|
|
|
import { t } from "../../i18n";
|
|
import { ButtonIcon } from "../ButtonIcon";
|
|
import { TextIcon } from "../icons";
|
|
|
|
import { useExcalidrawSetAppState } from "../App";
|
|
|
|
interface FontPickerTriggerProps {
|
|
selectedFontFamily: FontFamilyValues | null;
|
|
isOpened?: boolean;
|
|
compactMode?: boolean;
|
|
}
|
|
|
|
export const FontPickerTrigger = ({
|
|
selectedFontFamily,
|
|
isOpened = false,
|
|
compactMode = false,
|
|
}: FontPickerTriggerProps) => {
|
|
const setAppState = useExcalidrawSetAppState();
|
|
|
|
const compactStyle = compactMode
|
|
? {
|
|
...MOBILE_ACTION_BUTTON_BG,
|
|
width: "2rem",
|
|
height: "2rem",
|
|
}
|
|
: {};
|
|
|
|
return (
|
|
<Popover.Trigger asChild>
|
|
<div data-openpopup="fontFamily" className="properties-trigger">
|
|
<ButtonIcon
|
|
standalone
|
|
icon={TextIcon}
|
|
title={t("labels.showFonts")}
|
|
className="properties-trigger"
|
|
testId={"font-family-show-fonts"}
|
|
active={isOpened}
|
|
onClick={() => {
|
|
setAppState((appState) => ({
|
|
openPopup:
|
|
appState.openPopup === "fontFamily" ? null : appState.openPopup,
|
|
}));
|
|
}}
|
|
style={{
|
|
border: "none",
|
|
...compactStyle,
|
|
}}
|
|
/>
|
|
</div>
|
|
</Popover.Trigger>
|
|
);
|
|
};
|