8420aecb34
* feat: new Menu Component API * allow valid children types * introduce menu group to group items * Add lang footer * use display name * displayName * define types inside * fix default menu * add json export to menu * fix * simplify expression * put open menu into own compo to optimize perf So that we don't rerun `useOutsideClickHook` (and rebind event listeners all the time) * naming tweaks * rename MenuComponents->MenuDefaultItems and export default items from Menu.Items * import Menu.scss in Menu.tsx * move menu scss to excal app * Don't filter children inside menu group * move E+ out of socials * support style prop for MenuItem and MenuGroup * Support header in menu group and add Excalidraw links header for default items in social section * rename header to title * fix padding for lang * render menu in mobile * review fixes * tweaks * Export collaborators and show in mobile menu * revert .env * lint :p * again lint * show correct actions in view mode for mobile * Whitelist Collaborators Comp * mobile styling * padding * don't show nerds when menu open in mobile * lint :( * hide shortcuts * refactor userlist to support mobile and keep a wrapper comp for excal app * use only UserList * render only on mobile for default items * remove unused hooks * Show collab button in menu when onCollabButtonClick present and hide export when UIOptions.canvasActions.export is false * fix tests * lint * inject userlist inside menu on mobile * revert userlist * move menu socials to default menu * fix collab * use meny in library * Make Menu generic and create hamburgemenu for public excal menu and use menu in library as well * use appState.openMenu for mobile * fix tests * styling fixes and support style and class name in menu content * fix test * rename MenuDefaultItems->DefaultItems * move footer css to its own comp * rename HamburgerMenu -> MainMenu * rename menu -> dropdownMenu and update classes, onClick->onToggle * close main menu when dialog closes * by bye filtering * update docs * fix lint * update example, docs for useDevice and footer in mobile, rename menu ->DropDownMenu everywhere * spec * remove isMenuOpenAtom and set openMenu as canvas for main menu, render decreases in specs :) * [temp] remove cyclic depenedency to fix build * hack- update appstate to sync lang change * Add more specs * wip: rewrite MainMenu footer * fix margin * fix snaps * not needed as lang list no more imported * simplify custom footer rendering * Add DropdownMenuItemLink and DropdownMenuItemCustom and update API, docs * fix `MainMenu.ItemCustom` * naming * use onSelect and base class for custom items * fix lint * fix snap * use custom item for lang * update docs * fix * properly use `MainMenu.ItemCustom` for `LanguageList` * add margin top to custom items * flex Co-authored-by: dwelle <luzar.david@gmail.com>
156 lines
2.9 KiB
SCSS
156 lines
2.9 KiB
SCSS
@import "open-color/open-color";
|
|
|
|
.excalidraw {
|
|
.layer-ui__library-sidebar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.layer-ui__library {
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
flex: 1 1 auto;
|
|
|
|
.layer-ui__library-header {
|
|
display: flex;
|
|
align-items: center;
|
|
width: 100%;
|
|
margin: 2px 0 15px 0;
|
|
.Spinner {
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
button {
|
|
// 2px from the left to account for focus border of left-most button
|
|
margin: 0 2px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.layer-ui__sidebar {
|
|
.library-menu-items-container {
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.library-actions-counter {
|
|
background-color: var(--color-primary);
|
|
color: var(--color-primary-light);
|
|
font-weight: bold;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 50%;
|
|
width: 1rem;
|
|
height: 1rem;
|
|
position: absolute;
|
|
bottom: -0.25rem;
|
|
right: -0.25rem;
|
|
font-size: 0.625rem;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.layer-ui__library-message {
|
|
padding: 2rem;
|
|
min-width: 200px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
flex-grow: 1;
|
|
justify-content: center;
|
|
|
|
span {
|
|
font-size: 0.8em;
|
|
}
|
|
}
|
|
|
|
.publish-library-success {
|
|
.Dialog__content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
&-close.ToolIcon_type_button {
|
|
background-color: $oc-blue-6;
|
|
align-self: flex-end;
|
|
&:hover {
|
|
background-color: $oc-blue-8;
|
|
}
|
|
.ToolIcon__icon {
|
|
width: auto;
|
|
font-size: 1rem;
|
|
color: $oc-white;
|
|
padding: 0 0.5rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
.library-menu-browse-button {
|
|
margin: 1rem auto;
|
|
|
|
padding: 0.875rem 1rem;
|
|
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
overflow: hidden;
|
|
position: relative;
|
|
|
|
border-radius: var(--border-radius-lg);
|
|
background-color: var(--color-primary);
|
|
color: $oc-white;
|
|
text-align: center;
|
|
white-space: nowrap;
|
|
text-decoration: none !important;
|
|
|
|
font-weight: 600;
|
|
font-size: 0.75rem;
|
|
|
|
&:hover {
|
|
background-color: var(--color-primary-darker);
|
|
}
|
|
&:active {
|
|
background-color: var(--color-primary-darkest);
|
|
}
|
|
}
|
|
|
|
&.theme--dark {
|
|
.library-menu-browse-button {
|
|
color: var(--color-gray-100);
|
|
}
|
|
}
|
|
|
|
.library-menu-browse-button--mobile {
|
|
min-height: 22px;
|
|
margin-left: auto;
|
|
a {
|
|
padding-right: 0;
|
|
}
|
|
}
|
|
|
|
.layer-ui__sidebar__header .dropdown-menu {
|
|
&.dropdown-menu--mobile {
|
|
top: 100%;
|
|
}
|
|
.dropdown-menu-container {
|
|
--gap: 0;
|
|
z-index: 1;
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
|
|
:root[dir="rtl"] & {
|
|
right: 0;
|
|
left: auto;
|
|
}
|
|
|
|
width: 196px;
|
|
box-shadow: var(--library-dropdown-shadow);
|
|
border-radius: var(--border-radius-lg);
|
|
padding: 0.25rem 0.5rem;
|
|
}
|
|
}
|
|
}
|