From d36c72c435060a913f9c0045b4f572cc2e42d882 Mon Sep 17 00:00:00 2001 From: Guilherme Minozzi Date: Mon, 24 Jul 2023 04:03:54 -0300 Subject: [PATCH 1/3] fix: don't show `canvasBackground` label when `UIOptions.canvasActions.changeViewBackgroundColor` is false (#6781) * fix(components/main-menu): not show canvasBackground * chore(components/main-menu): add data-testid attr to canvasBackground label * test(tests/packages/excalidraw): check whether canvasbackground label is rendered when changeviewbackground is false * test: update snapshots * fix(tests/packages/excalidraw): change to lowercase canvas background test id * change to pull request target for size-limit * Revert "change to pull request target for size-limit" This reverts commit baf1ca2677be4b51c6666522387ab9da9ac9f9d1. * Add test --------- Co-authored-by: Aakansha Doshi --- src/components/main-menu/DefaultItems.tsx | 12 ++++++++++-- src/packages/excalidraw/example/App.tsx | 6 +++++- .../__snapshots__/excalidraw.test.tsx.snap | 1 + src/tests/packages/excalidraw.test.tsx | 17 +++++++++++++++++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/components/main-menu/DefaultItems.tsx b/src/components/main-menu/DefaultItems.tsx index 919443d12..2908d6b47 100644 --- a/src/components/main-menu/DefaultItems.tsx +++ b/src/components/main-menu/DefaultItems.tsx @@ -4,6 +4,7 @@ import { useExcalidrawSetAppState, useExcalidrawActionManager, useExcalidrawElements, + useAppProps, } from "../App"; import { ExportIcon, @@ -198,13 +199,20 @@ export const ChangeCanvasBackground = () => { const { t } = useI18n(); const appState = useUIAppState(); const actionManager = useExcalidrawActionManager(); + const appProps = useAppProps(); - if (appState.viewModeEnabled) { + if ( + appState.viewModeEnabled || + !appProps.UIOptions.canvasActions.changeViewBackgroundColor + ) { return null; } return (
-
+
{t("labels.canvasBackground")}
diff --git a/src/packages/excalidraw/example/App.tsx b/src/packages/excalidraw/example/App.tsx index 7f17b292f..8240de887 100644 --- a/src/packages/excalidraw/example/App.tsx +++ b/src/packages/excalidraw/example/App.tsx @@ -678,7 +678,11 @@ export default function App({ appTitle, useCustom, customArgs }: AppProps) { gridModeEnabled={gridModeEnabled} theme={theme} name="Custom name of drawing" - UIOptions={{ canvasActions: { loadScene: false } }} + UIOptions={{ + canvasActions: { + loadScene: false, + }, + }} renderTopRightUI={renderTopRightUI} onLinkOpen={onLinkOpen} onPointerDown={onPointerDown} diff --git a/src/tests/packages/__snapshots__/excalidraw.test.tsx.snap b/src/tests/packages/__snapshots__/excalidraw.test.tsx.snap index 4caa6c6dd..d026b21ef 100644 --- a/src/tests/packages/__snapshots__/excalidraw.test.tsx.snap +++ b/src/tests/packages/__snapshots__/excalidraw.test.tsx.snap @@ -516,6 +516,7 @@ exports[` Test UIOptions prop Test canvasActions should render menu style="margin-top: 0.5rem;" >
Canvas background diff --git a/src/tests/packages/excalidraw.test.tsx b/src/tests/packages/excalidraw.test.tsx index 91fd9c09f..069f9c000 100644 --- a/src/tests/packages/excalidraw.test.tsx +++ b/src/tests/packages/excalidraw.test.tsx @@ -199,6 +199,23 @@ describe("", () => { ); //open menu toggleMenu(container); + expect(queryByTestId(container, "canvas-background-label")).toBeNull(); + expect(queryByTestId(container, "canvas-background-picker")).toBeNull(); + }); + + it("should hide the canvas background picker even if passed if the `canvasActions.changeViewBackgroundColor` is set to false", async () => { + const { container } = await render( + + + + + , + ); + //open menu + toggleMenu(container); + expect(queryByTestId(container, "canvas-background-label")).toBeNull(); expect(queryByTestId(container, "canvas-background-picker")).toBeNull(); }); From 744e5b2ab34d56dbddf685ad274d67e49f8f9568 Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Mon, 24 Jul 2023 13:01:42 +0530 Subject: [PATCH 2/3] fix: use pull request in semantic workflow for better security (#6799) * fix: use pull request in semantic workflow for security * add types --- .github/workflows/semantic-pr-title.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/semantic-pr-title.yml b/.github/workflows/semantic-pr-title.yml index 8980fc68e..969d23640 100644 --- a/.github/workflows/semantic-pr-title.yml +++ b/.github/workflows/semantic-pr-title.yml @@ -1,7 +1,7 @@ name: Semantic PR title on: - pull_request_target: + pull_request: types: - opened - edited From b57b3b573da874f7527589c10632ec936c1962d2 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Mon, 24 Jul 2023 16:51:53 +0200 Subject: [PATCH 3/3] feat: introducing Web-Embeds (alias iframe element) (#6691) Co-authored-by: dwelle --- .../excalidraw/api/props/props.mdx | 12 +- .../excalidraw/api/props/render-props.mdx | 13 + src/actions/actionAddToLibrary.ts | 20 +- src/actions/actionCanvas.tsx | 2 + src/actions/actionDeleteSelected.tsx | 1 + src/actions/actionFinalize.tsx | 1 + src/actions/types.ts | 1 + src/appState.ts | 2 + src/colors.ts | 2 +- src/components/Actions.tsx | 116 +++- src/components/App.tsx | 657 ++++++++++++++++-- src/components/EyeDropper.tsx | 2 +- src/components/HintViewer.tsx | 4 + src/components/LibraryMenu.tsx | 13 +- src/components/LibraryUnit.scss | 5 + src/components/icons.tsx | 8 + src/constants.ts | 14 +- src/css/styles.scss | 43 ++ src/data/restore.ts | 5 + src/data/url.ts | 26 + src/element/Hyperlink.scss | 4 - src/element/Hyperlink.tsx | 168 ++++- src/element/collision.ts | 20 +- src/element/embeddable.ts | 329 +++++++++ src/element/newElement.ts | 15 +- src/element/showSelectedShapeActions.ts | 14 +- src/element/typeChecks.ts | 23 +- src/element/types.ts | 15 + src/excalidraw-app/index.tsx | 37 +- src/hooks/useLibraryItemSvg.ts | 1 + src/keys.ts | 1 + src/locales/en.json | 20 +- src/packages/excalidraw/CHANGELOG.md | 19 + src/packages/excalidraw/example/App.tsx | 12 +- src/packages/excalidraw/index.tsx | 4 + src/packages/utils.ts | 3 + src/renderer/renderElement.ts | 169 ++++- src/renderer/renderScene.ts | 208 ++++-- src/scene/comparisons.ts | 28 +- src/scene/export.ts | 2 + .../__snapshots__/contextmenu.test.tsx.snap | 17 + .../regressionTests.test.tsx.snap | 53 ++ src/tests/data/restore.test.ts | 2 +- src/tests/fixtures/elementFixture.ts | 4 + src/tests/helpers/api.ts | 3 +- .../packages/__snapshots__/utils.test.ts.snap | 1 + src/types.ts | 29 +- src/utils.ts | 9 +- 48 files changed, 1923 insertions(+), 234 deletions(-) create mode 100644 src/element/embeddable.ts diff --git a/dev-docs/docs/@excalidraw/excalidraw/api/props/props.mdx b/dev-docs/docs/@excalidraw/excalidraw/api/props/props.mdx index a871874c5..104d9dccd 100644 --- a/dev-docs/docs/@excalidraw/excalidraw/api/props/props.mdx +++ b/dev-docs/docs/@excalidraw/excalidraw/api/props/props.mdx @@ -29,6 +29,8 @@ All `props` are *optional*. | [`handleKeyboardGlobally`](#handlekeyboardglobally) | `boolean` | `false` | Indicates whether to bind the keyboard events to document. | | [`autoFocus`](#autofocus) | `boolean` | `false` | indicates whether to focus the Excalidraw component on page load | | [`generateIdForFile`](#generateidforfile) | `function` | _ | Allows you to override `id` generation for files added on canvas | +| [`validateEmbeddable`](#validateEmbeddable) | string[] | `boolean | RegExp | RegExp[] | ((link: string) => boolean | undefined)` | \_ | use for custom src url validation | +| [`renderEmbeddable`](/docs/@excalidraw/excalidraw/api/props/render-props#renderEmbeddable) | `function` | \_ | Render function that can override the built-in `