mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
* feat: integrate mermaidToExcalidraw * create mermaid to excal dialog * allow mermaid syntax and export in preview * fix * fix webpack config * fix markdown error by using named export * center preview * set elements as selected when inserted onto canvas * persist mermaid data to storage * store canvas data in refs * load mermaid lazily * tweak design * compute width, height correctly for arrows * fix undefined vertex issue * add mermaid icon in dropdown * add a note in dialog * reset preview when error * show error in preview when error * show mermaid error messgae react way * design tweaks * add example and docs link * fix * tweak design to remove scroll bar * show a spinner unless mermaid loaded * regenerate ids when needed via programmatic api, this makes sure for mermaid diagrams ids are regenerated * tweak * add option to transform viewport to scene coords in transform api * make opts optional and use 100% zoom when inserting to canvas * fix arrow bindings in safari and firefox * fix elements insert position and viewport centering * fix: Update start/end points by 0.5 so bindings don't overlap with start/end bound element coordinates. * defer rendering the preview * tweak text * fix tests * remove only * make design responsive * fix: show extra tools dropdown in mobile * fix mobile css * width auto * upgrade mermaid-to-excalidraw * don't pass appState in deps as its not used * upgrade mermaid-to-excalidraw to fix firefox issue * use types from mermaid-to-excalidraw * upgrade mermaid-to-excalidraw * use stable version of mermaid-to-excalidraw * upgrade mermaid-to-excalidraw * fix width of shapes toolbar for smaller screen size and also fix regression of mobile menu * use i18n * better api * enable test coverage in ui * Add tests * use common utils to update and get text editor * updgrade mermaid-to-excalidraw to support sequence diagrams * fix test * don't update arrow container height anytime in when redrawing text bounding box * increase size limit * increase size limit of vendor to 900kb * use openDialog for mermaid * upgrade mermaid-to-excalidraw * update frame id post generation * upgrade mermaid-to-excalidraw to add entity codes support * update size limit * upgrade mermaid-to-excalidraw package with frame api changes * upgrade mermaid-to-excalidraw to remove directive and use config * don't highlight mermaid tool and remove unused api setSelection * stop using loading state to update text area * move some styling to scss * review fixes * use modifiedTableIcon props and remove stale snap * css * dialog css * fix snap * use dialog border * change mermaidToExcalidrawLib to state * better styling of errors * make modal bigger * fix mobile * update snaps * fix icon color * fix dark mode insert button color * horizontally center spinner * render canvas conditionally on loaded state * rd tweaks * tweak class names * remove max height * typo in example * upgrade mermaid-to-excalidraw * simplify error state * fix height & overflow on vertical breakpoint * fix lint * show errors in overlay * set textarea font family * reduce opacity * update snap * upgrade to mermaid 0.1.2 --------- Co-authored-by: dwelle <luzar.david@gmail.com>
144 lines
3 KiB
SCSS
144 lines
3 KiB
SCSS
@import "../../css/variables.module";
|
|
|
|
.excalidraw {
|
|
.dropdown-menu {
|
|
position: absolute;
|
|
top: 100%;
|
|
margin-top: 0.25rem;
|
|
|
|
&--mobile {
|
|
left: 0;
|
|
width: 100%;
|
|
row-gap: 0.75rem;
|
|
|
|
.dropdown-menu-container {
|
|
padding: 8px 8px;
|
|
box-sizing: border-box;
|
|
// background-color: var(--island-bg-color);
|
|
box-shadow: var(--shadow-island);
|
|
border-radius: var(--border-radius-lg);
|
|
position: relative;
|
|
transition: box-shadow 0.5s ease-in-out;
|
|
|
|
&.zen-mode {
|
|
box-shadow: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
.dropdown-menu-container {
|
|
background-color: var(--island-bg-color);
|
|
max-height: calc(100vh - 150px);
|
|
overflow-y: auto;
|
|
--gap: 2;
|
|
}
|
|
|
|
.dropdown-menu-item-base {
|
|
display: flex;
|
|
padding: 0 0.625rem;
|
|
column-gap: 0.625rem;
|
|
font-size: 0.875rem;
|
|
color: var(--color-on-surface);
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
font-weight: normal;
|
|
font-family: inherit;
|
|
}
|
|
|
|
.dropdown-menu-item {
|
|
background-color: transparent;
|
|
border: 1px solid transparent;
|
|
align-items: center;
|
|
height: 2rem;
|
|
cursor: pointer;
|
|
border-radius: var(--border-radius-md);
|
|
|
|
@media screen and (min-width: 1921px) {
|
|
height: 2.25rem;
|
|
}
|
|
|
|
&--selected {
|
|
background: var(--color-primary-light);
|
|
--icon-fill-color: var(--color-primary-darker);
|
|
}
|
|
|
|
&__text {
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
&__shortcut {
|
|
margin-inline-start: auto;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--button-hover-bg);
|
|
text-decoration: none;
|
|
}
|
|
|
|
&:active {
|
|
background-color: var(--button-hover-bg);
|
|
border-color: var(--color-brand-active);
|
|
}
|
|
|
|
svg {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
.dropdown-menu-item-custom {
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.dropdown-menu-group-title {
|
|
font-size: 14px;
|
|
text-align: left;
|
|
margin: 10px 0;
|
|
font-weight: 500;
|
|
}
|
|
}
|
|
|
|
.dropdown-menu-button {
|
|
@include outlineButtonStyles;
|
|
width: var(--lg-button-size);
|
|
height: var(--lg-button-size);
|
|
|
|
--background: var(--color-surface-mid);
|
|
|
|
background-color: var(--background);
|
|
|
|
@at-root .excalidraw.theme--dark#{&} {
|
|
--background: var(--color-surface-high);
|
|
&:hover {
|
|
--background: #363541;
|
|
}
|
|
}
|
|
|
|
&:hover {
|
|
--background: var(--color-surface-high);
|
|
background-color: var(--background);
|
|
text-decoration: none;
|
|
}
|
|
|
|
&:active {
|
|
border-color: var(--color-primary);
|
|
}
|
|
|
|
svg {
|
|
width: var(--lg-icon-size);
|
|
height: var(--lg-icon-size);
|
|
}
|
|
|
|
&--mobile {
|
|
border: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
width: var(--default-button-size);
|
|
height: var(--default-button-size);
|
|
}
|
|
}
|
|
}
|