From 28a06c99b5b531031e9a8ec24b321e6dac705ef8 Mon Sep 17 00:00:00 2001 From: Eva Date: Mon, 31 Jul 2023 07:33:47 +0200 Subject: [PATCH] :lipstick: UI structure redesign --- common/src/app/common/colors.cljc | 6 + .../resources/images/icons/play-refactor.svg | 3 + .../images/icons/status-alert-refactor.svg | 3 + .../images/icons/status-tick-refactor.svg | 3 + .../images/icons/status-update-refactor.svg | 3 + .../images/icons/status-wrong-refactor.svg | 3 + .../images/status-alert-refactor.svg | 3 + .../resources/images/status-tick-refactor.svg | 3 + .../images/status-update-refactor.svg | 3 + .../images/status-wrong-refactor.svg | 3 + .../styles/common/refactor/basic-rules.scss | 54 ++ .../styles/common/refactor/color-defs.scss | 14 + .../styles/common/refactor/design-tokens.scss | 16 + .../styles/common/refactor/mixins.scss | 9 + .../styles/common/refactor/shadows.scss | 4 + .../styles/common/refactor/spacing.scss | 7 + .../common/refactor/themes/default-theme.scss | 5 + .../common/refactor/themes/light-theme.scss | 5 + .../styles/common/refactor/z-index.scss | 7 +- .../styles/main/layouts/inspect.scss | 1 + .../main/partials/signup-questions.scss | 4 +- .../styles/main/partials/tab-container.scss | 2 +- .../main/partials/workspace-header.scss | 1 - .../styles/main/partials/workspace.scss | 4 +- .../ui/components/color_bullet_new.css.json | 2 +- .../ui/components/context_menu_a11y.css.json | 2 +- .../main/ui/components/context_menu_a11y.scss | 4 +- .../app/main/ui/components/dropdown_menu.cljs | 16 +- .../ui/components/editable_label.css.json | 2 +- .../main/ui/components/radio_buttons.css.json | 2 +- .../main/ui/components/search_bar.css.json | 2 +- .../app/main/ui/components/select.css.json | 2 +- .../src/app/main/ui/components/select.scss | 4 +- .../main/ui/components/tab_container.css.json | 2 +- .../app/main/ui/components/title_bar.css.json | 2 +- .../main/ui/debug/components_preview.css.json | 2 +- frontend/src/app/main/ui/export.cljs | 47 +- frontend/src/app/main/ui/export.css.json | 1 + frontend/src/app/main/ui/export.scss | 67 ++ frontend/src/app/main/ui/icons.cljs | 5 + frontend/src/app/main/ui/modal.css.json | 2 +- frontend/src/app/main/ui/viewer/inspect.cljs | 7 +- frontend/src/app/main/ui/workspace.cljs | 57 +- frontend/src/app/main/ui/workspace.css.json | 2 +- frontend/src/app/main/ui/workspace.scss | 23 + .../main/ui/workspace/color_palette.css.json | 2 +- .../workspace/color_palette_ctx_menu.css.json | 2 +- .../ui/workspace/color_palette_ctx_menu.scss | 2 +- .../main/ui/workspace/context_menu.css.json | 2 +- .../app/main/ui/workspace/context_menu.scss | 4 +- .../app/main/ui/workspace/left_header.cljs | 830 ++++++++++++++++++ .../main/ui/workspace/left_header.css.json | 1 + .../app/main/ui/workspace/left_header.scss | 172 ++++ .../app/main/ui/workspace/left_toolbar.cljs | 73 +- .../main/ui/workspace/left_toolbar.css.json | 2 +- .../app/main/ui/workspace/left_toolbar.scss | 8 +- .../app/main/ui/workspace/libraries.css.json | 2 +- .../src/app/main/ui/workspace/palette.cljs | 160 ++-- .../app/main/ui/workspace/palette.css.json | 2 +- .../src/app/main/ui/workspace/palette.scss | 45 +- .../src/app/main/ui/workspace/presence.cljs | 71 +- .../app/main/ui/workspace/presence.css.json | 1 + .../src/app/main/ui/workspace/presence.scss | 56 ++ .../app/main/ui/workspace/right_header.cljs | 232 +++++ .../main/ui/workspace/right_header.css.json | 1 + .../app/main/ui/workspace/right_header.scss | 216 +++++ .../src/app/main/ui/workspace/sidebar.cljs | 37 +- .../app/main/ui/workspace/sidebar.css.json | 2 +- .../src/app/main/ui/workspace/sidebar.scss | 23 +- .../main/ui/workspace/sidebar/assets.css.json | 2 +- .../app/main/ui/workspace/sidebar/assets.scss | 4 +- .../workspace/sidebar/assets/colors.css.json | 2 +- .../workspace/sidebar/assets/common.css.json | 2 +- .../sidebar/assets/components.css.json | 2 +- .../sidebar/assets/file_library.css.json | 2 +- .../sidebar/assets/graphics.css.json | 2 +- .../workspace/sidebar/assets/groups.css.json | 2 +- .../sidebar/assets/typographies.css.json | 2 +- .../workspace/sidebar/collapsable_button.cljs | 4 +- .../sidebar/collapsable_button.css.json | 2 +- .../ui/workspace/sidebar/history.css.json | 2 +- .../ui/workspace/sidebar/layer_item.css.json | 2 +- .../ui/workspace/sidebar/layer_name.css.json | 2 +- .../app/main/ui/workspace/sidebar/layers.cljs | 2 +- .../main/ui/workspace/sidebar/layers.css.json | 2 +- .../app/main/ui/workspace/sidebar/layers.scss | 10 +- .../sidebar/options/menus/typography.css.json | 2 +- .../sidebar/options/menus/typography.scss | 4 +- .../ui/workspace/sidebar/shortcuts.css.json | 2 +- .../ui/workspace/sidebar/sitemap.css.json | 2 +- .../main/ui/workspace/text_palette.css.json | 2 +- .../app/main/ui/workspace/text_palette.scss | 2 +- .../workspace/text_palette_ctx_menu.css.json | 2 +- .../ui/workspace/text_palette_ctx_menu.scss | 2 +- .../app/main/ui/workspace/viewport/rules.cljs | 16 +- frontend/translations/en.po | 4 + frontend/translations/es.po | 4 + 97 files changed, 2194 insertions(+), 259 deletions(-) create mode 100644 frontend/resources/images/icons/play-refactor.svg create mode 100644 frontend/resources/images/icons/status-alert-refactor.svg create mode 100644 frontend/resources/images/icons/status-tick-refactor.svg create mode 100644 frontend/resources/images/icons/status-update-refactor.svg create mode 100644 frontend/resources/images/icons/status-wrong-refactor.svg create mode 100644 frontend/resources/images/status-alert-refactor.svg create mode 100644 frontend/resources/images/status-tick-refactor.svg create mode 100644 frontend/resources/images/status-update-refactor.svg create mode 100644 frontend/resources/images/status-wrong-refactor.svg create mode 100644 frontend/src/app/main/ui/export.css.json create mode 100644 frontend/src/app/main/ui/export.scss create mode 100644 frontend/src/app/main/ui/workspace/left_header.cljs create mode 100644 frontend/src/app/main/ui/workspace/left_header.css.json create mode 100644 frontend/src/app/main/ui/workspace/left_header.scss create mode 100644 frontend/src/app/main/ui/workspace/presence.css.json create mode 100644 frontend/src/app/main/ui/workspace/presence.scss create mode 100644 frontend/src/app/main/ui/workspace/right_header.cljs create mode 100644 frontend/src/app/main/ui/workspace/right_header.css.json create mode 100644 frontend/src/app/main/ui/workspace/right_header.scss diff --git a/common/src/app/common/colors.cljc b/common/src/app/common/colors.cljc index 4e7a5dfd0..b668065de 100644 --- a/common/src/app/common/colors.cljc +++ b/common/src/app/common/colors.cljc @@ -21,3 +21,9 @@ (def primary "#31EFB8") (def danger "#E65244") (def warning "#FC8802") + +;; new-css-system colors +(def new-primary "#91fadb") +(def new-danger "#ff4986") +(def new-warning "#ff9b49") +(def canvas-background "#1d1f20") diff --git a/frontend/resources/images/icons/play-refactor.svg b/frontend/resources/images/icons/play-refactor.svg new file mode 100644 index 000000000..daa0c49f8 --- /dev/null +++ b/frontend/resources/images/icons/play-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/status-alert-refactor.svg b/frontend/resources/images/icons/status-alert-refactor.svg new file mode 100644 index 000000000..aec822b40 --- /dev/null +++ b/frontend/resources/images/icons/status-alert-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/status-tick-refactor.svg b/frontend/resources/images/icons/status-tick-refactor.svg new file mode 100644 index 000000000..d0d0ca6df --- /dev/null +++ b/frontend/resources/images/icons/status-tick-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/status-update-refactor.svg b/frontend/resources/images/icons/status-update-refactor.svg new file mode 100644 index 000000000..7c29996a3 --- /dev/null +++ b/frontend/resources/images/icons/status-update-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/status-wrong-refactor.svg b/frontend/resources/images/icons/status-wrong-refactor.svg new file mode 100644 index 000000000..feb5c7fea --- /dev/null +++ b/frontend/resources/images/icons/status-wrong-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/status-alert-refactor.svg b/frontend/resources/images/status-alert-refactor.svg new file mode 100644 index 000000000..aec822b40 --- /dev/null +++ b/frontend/resources/images/status-alert-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/status-tick-refactor.svg b/frontend/resources/images/status-tick-refactor.svg new file mode 100644 index 000000000..d0d0ca6df --- /dev/null +++ b/frontend/resources/images/status-tick-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/status-update-refactor.svg b/frontend/resources/images/status-update-refactor.svg new file mode 100644 index 000000000..7c29996a3 --- /dev/null +++ b/frontend/resources/images/status-update-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/status-wrong-refactor.svg b/frontend/resources/images/status-wrong-refactor.svg new file mode 100644 index 000000000..feb5c7fea --- /dev/null +++ b/frontend/resources/images/status-wrong-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/styles/common/refactor/basic-rules.scss b/frontend/resources/styles/common/refactor/basic-rules.scss index b76c10243..03ff9dffc 100644 --- a/frontend/resources/styles/common/refactor/basic-rules.scss +++ b/frontend/resources/styles/common/refactor/basic-rules.scss @@ -187,3 +187,57 @@ } } } + +.menu-dropdown { + @include menuShadow; + display: flex; + flex-direction: column; + gap: $s-4; + width: $s-192; + padding: $s-4; + border-radius: $br-8; + background-color: var(--menu-background-color); + z-index: $z-index-10; +} + +.menu-item { + @include titleTipography; + display: flex; + align-items: center; + justify-content: space-between; + height: $s-28; + width: 100%; + padding: $s-6; + border-radius: $br-8; + cursor: pointer; + &:hover { + background-color: var(--menu-background-color-hover); + } +} + +.shortcut { + @include flexCenter; + gap: $s-2; + color: var(--menu-shortcut-foreground-color); +} + +.shortcut-key { + @include titleTipography; + @include flexCenter; + height: $s-20; + padding: $s-2 $s-6; + border-radius: $br-6; + background-color: var(--menu-shortcut-background-color); +} + +.user-icon { + @include flexCenter; + @include titleTipography; + height: $s-24; + width: $s-24; + border-radius: $br-circle; + img { + border-radius: $br-circle; + border: $s-2 solid var(--user-count-foreground-color); + } +} diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss index 7896a7986..f9d7e1061 100644 --- a/frontend/resources/styles/common/refactor/color-defs.scss +++ b/frontend/resources/styles/common/refactor/color-defs.scss @@ -17,6 +17,11 @@ --green-30: rgba(145, 250, 219, 0.3); --lilac: #bb97d8; --strong-green: #00d1b8; + // NOTIFICATION + --dark-ok-color: var(--strong-green); + --dark-warning-color: #ff9b49; + --dark-pending-color: var(--lilac); + --dark-error-color: #ff4986; // LIGHT --light-gray-1: #fff; @@ -30,4 +35,13 @@ --purple-30: rgba(105, 17, 212, 0.2); --blue: #1345aa; --strong-purple: #8c33eb; + + // NOTIFICATION WILL CHANGE + --light-ok-color: var(--strong-green); + --light-warning-color: #ff9b49; + --light-pending-color: var(--lilac); + --light-error-color: #ff4986; + + //GENERIC + --color-canvas: #e8e9ea; } diff --git a/frontend/resources/styles/common/refactor/design-tokens.scss b/frontend/resources/styles/common/refactor/design-tokens.scss index 585181d91..7c09ab72f 100644 --- a/frontend/resources/styles/common/refactor/design-tokens.scss +++ b/frontend/resources/styles/common/refactor/design-tokens.scss @@ -7,6 +7,9 @@ .light, .default { + --canvas-background-color: var(--color-background-primary); + --canvas-fill-color: var(--canvas-color); + --scrollbar-background-color: var(--color-foreground-secondary); --panel-background-color: var(--color-background-primary); --panel-title-background-color: var(--color-background-secondary); @@ -175,4 +178,17 @@ --empty-message-background-color: var(--color-background-tertiary); --empty-message-foreground-color: var(--color-foreground-secondary); + + --status-ok-background-color: var(--ok-color); + --status-warning-background-color: var(--warning-color); + --status-pending-background-color: var(--pending-color); + --status-error-background-color: var(--error-color); + --status-icon-foreground-color: var(--color-background-primary); + + --user-count-background-color: var(--color-background-secondary); + --user-count-foreground-color: var(--color-accent-primary); + + --modal-background-color: var(--color-background-quaternary); + --modal-foreground-color: var(--color-foreground-primary); + --modal-foreground-color-secondary: var(--color-foreground-secondary); } diff --git a/frontend/resources/styles/common/refactor/mixins.scss b/frontend/resources/styles/common/refactor/mixins.scss index 3c48959ea..87f891796 100644 --- a/frontend/resources/styles/common/refactor/mixins.scss +++ b/frontend/resources/styles/common/refactor/mixins.scss @@ -52,3 +52,12 @@ -webkit-line-clamp: 2; -webkit-box-orient: vertical; } + +@keyframes spin-animation { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} diff --git a/frontend/resources/styles/common/refactor/shadows.scss b/frontend/resources/styles/common/refactor/shadows.scss index bc2be4d61..bcc0f1718 100644 --- a/frontend/resources/styles/common/refactor/shadows.scss +++ b/frontend/resources/styles/common/refactor/shadows.scss @@ -3,3 +3,7 @@ // file, You can obtain one at http://mozilla.org/MPL/2.0/. // // Copyright (c) KALEIDOS INC + +@mixin menuShadow { + box-shadow: 0px 0px $s-12 0px var(--menu-shadow-color); +} diff --git a/frontend/resources/styles/common/refactor/spacing.scss b/frontend/resources/styles/common/refactor/spacing.scss index 6f3c96ba1..67274242f 100644 --- a/frontend/resources/styles/common/refactor/spacing.scss +++ b/frontend/resources/styles/common/refactor/spacing.scss @@ -34,10 +34,14 @@ $s-84: calc(var(--s-4) * 21); $s-92: calc(var(--s-4) * 23); $s-96: calc(var(--s-4) * 24); $s-104: calc(var(--s-4) * 25); +$s-116: calc(var(--s-4) * 29); $s-120: calc(var(--s-4) * 30); $s-136: calc(var(--s-4) * 34); +$s-148: calc(var(--s-4) * 37); $s-152: calc(var(--s-4) * 38); $s-160: calc(var(--s-4) * 40); +$s-168: calc(var(--s-4) * 42); +$s-184: calc(var(--s-4) * 46); $s-192: calc(var(--s-4) * 48); $s-196: calc(var(--s-4) * 49); $s-200: calc(var(--s-4) * 50); @@ -46,13 +50,16 @@ $s-240: calc(var(--s-4) * 60); $s-248: calc(var(--s-4) * 62); $s-256: calc(var(--s-4) * 64); $s-272: calc(var(--s-4) * 68); +$s-276: calc(var(--s-4) * 69); $s-280: calc(var(--s-4) * 70); +$s-284: calc(var(--s-4) * 71); $s-300: calc(var(--s-4) * 75); $s-320: calc(var(--s-4) * 80); $s-348: calc(var(--s-4) * 87); $s-380: calc(var(--s-4) * 95); $s-400: calc(var(--s-4) * 100); $s-480: calc(var(--s-4) * 120); +$s-500: calc(var(--s-4) * 125); $s-520: calc(var(--s-4) * 130); $s-664: calc(var(--s-4) * 166); $s-712: calc(var(--s-4) * 178); diff --git a/frontend/resources/styles/common/refactor/themes/default-theme.scss b/frontend/resources/styles/common/refactor/themes/default-theme.scss index f116aa093..00ccc31de 100644 --- a/frontend/resources/styles/common/refactor/themes/default-theme.scss +++ b/frontend/resources/styles/common/refactor/themes/default-theme.scss @@ -17,4 +17,9 @@ --color-accent-secondary: var(--lilac); --color-accent-tertiary: var(--strong-green); --overlay-color: rgba(0, 0, 0, 0.4); + --ok-color: var(--dark-ok-color); + --warning-color: var(--dark-warning-color); + --pending-color: var(--dark-pending-color); + --error-color: var(--dark-error-color); + --canvas-color: var(--color-canvas); } diff --git a/frontend/resources/styles/common/refactor/themes/light-theme.scss b/frontend/resources/styles/common/refactor/themes/light-theme.scss index fbc4c83cb..df7ac6d24 100644 --- a/frontend/resources/styles/common/refactor/themes/light-theme.scss +++ b/frontend/resources/styles/common/refactor/themes/light-theme.scss @@ -16,4 +16,9 @@ --color-accent-primary-muted: var(--purple-30); --color-accent-secondary: var(--blue); --color-accent-tertiary: var(--strong-purple); + --ok-color: var(--light-ok-color); + --warning-color: var(--light-warning-color); + --pending-color: var(--light-pending-color); + --error-color: var(--light-error-color); + --canvas-color: var(--color-canvas); } diff --git a/frontend/resources/styles/common/refactor/z-index.scss b/frontend/resources/styles/common/refactor/z-index.scss index c159be3e9..7e20a36f1 100644 --- a/frontend/resources/styles/common/refactor/z-index.scss +++ b/frontend/resources/styles/common/refactor/z-index.scss @@ -4,9 +4,10 @@ // // Copyright (c) KALEIDOS INC -$z-index-1: 1; -$z-index-2: 2; -$z-index-4: 4; +$z-index-1: 1; // floating elements +$z-index-2: 2; //sidebars +$z-index-3: 3; // context menu +$z-index-4: 4; // modal $z-index-10: 10; $z-index-20: 20; $z-index-modal: 30; // When refactor finish we can reduce this number, diff --git a/frontend/resources/styles/main/layouts/inspect.scss b/frontend/resources/styles/main/layouts/inspect.scss index b0ad47bd2..bbf4d1556 100644 --- a/frontend/resources/styles/main/layouts/inspect.scss +++ b/frontend/resources/styles/main/layouts/inspect.scss @@ -121,6 +121,7 @@ $width-settings-bar: 256px; &.settings-bar-right { width: 100%; + grid-area: right-sidebar; } } diff --git a/frontend/resources/styles/main/partials/signup-questions.scss b/frontend/resources/styles/main/partials/signup-questions.scss index ee1f42645..373cae531 100644 --- a/frontend/resources/styles/main/partials/signup-questions.scss +++ b/frontend/resources/styles/main/partials/signup-questions.scss @@ -85,7 +85,7 @@ grid-template-areas: "previous next"; .step-prev { display: flex; - align-items: end; + align-items: flex-end; justify-content: flex-start; grid-area: previous; button { @@ -99,7 +99,7 @@ .step-next { display: flex; - align-items: end; + align-items: flex-end; justify-content: flex-end; grid-area: next; input { diff --git a/frontend/resources/styles/main/partials/tab-container.scss b/frontend/resources/styles/main/partials/tab-container.scss index 33c759e0a..2b2da4c50 100644 --- a/frontend/resources/styles/main/partials/tab-container.scss +++ b/frontend/resources/styles/main/partials/tab-container.scss @@ -2,7 +2,7 @@ display: grid; grid-template-rows: auto 1fr; grid-template-columns: 100%; - height: 100%; + height: calc(100% - 45px); } .tab-container-tabs { diff --git a/frontend/resources/styles/main/partials/workspace-header.scss b/frontend/resources/styles/main/partials/workspace-header.scss index 2fdc61e83..d5b93f801 100644 --- a/frontend/resources/styles/main/partials/workspace-header.scss +++ b/frontend/resources/styles/main/partials/workspace-header.scss @@ -322,7 +322,6 @@ display: flex; margin-left: 0px; margin-right: 10px; - /* border: 1px solid red; */ width: 150px; justify-content: flex-end; diff --git a/frontend/resources/styles/main/partials/workspace.scss b/frontend/resources/styles/main/partials/workspace.scss index f7011e178..d18efce90 100644 --- a/frontend/resources/styles/main/partials/workspace.scss +++ b/frontend/resources/styles/main/partials/workspace.scss @@ -161,7 +161,7 @@ $height-palette-max: 80px; justify-content: center; align-items: center; - svg#loader-pencil { + svg { fill: $color-gray-50; } } @@ -171,7 +171,7 @@ $height-palette-max: 80px; display: flex; padding: 0; margin: 0; - + grid-area: viewport; &.scrolling { cursor: grab; } diff --git a/frontend/src/app/main/ui/components/color_bullet_new.css.json b/frontend/src/app/main/ui/components/color_bullet_new.css.json index 7691da781..b30f12311 100644 --- a/frontend/src/app/main/ui/components/color_bullet_new.css.json +++ b/frontend/src/app/main/ui/components/color_bullet_new.css.json @@ -1 +1 @@ -{"button-primary":"components_color_bullet_new_button-primary_pDkQg","button-secondary":"components_color_bullet_new_button-secondary_y3A8V","button-tertiary":"components_color_bullet_new_button-tertiary_zPQ8t","button-tag":"components_color_bullet_new_button-tag_2Ur4i","button-icon":"components_color_bullet_new_button-icon_uAC1e","button-icon-small":"components_color_bullet_new_button-icon-small_rz5pc","asset-element":"components_color_bullet_new_asset-element_s3Yqx","new-scrollbar":"components_color_bullet_new_new-scrollbar_7U23G","color-bullet":"components_color_bullet_new_color-bullet_b1w8U","mini":"components_color_bullet_new_mini_B261Z","is-not-library-color":"components_color_bullet_new_is-not-library-color_PSveA","color-bullet-wrapper":"components_color_bullet_new_color-bullet-wrapper_clt4r","is-gradient":"components_color_bullet_new_is-gradient_6RdV2","is-transparent":"components_color_bullet_new_is-transparent_g0iwn","color-text":"components_color_bullet_new_color-text_HM6mp","small-text":"components_color_bullet_new_small-text_Y4OeK","no-text":"components_color_bullet_new_no-text_pbTQf"} \ No newline at end of file +{"button-primary":"components_color_bullet_new_button-primary_pDkQg","button-secondary":"components_color_bullet_new_button-secondary_y3A8V","button-tertiary":"components_color_bullet_new_button-tertiary_zPQ8t","button-tag":"components_color_bullet_new_button-tag_2Ur4i","button-icon":"components_color_bullet_new_button-icon_uAC1e","button-icon-small":"components_color_bullet_new_button-icon-small_rz5pc","asset-element":"components_color_bullet_new_asset-element_s3Yqx","new-scrollbar":"components_color_bullet_new_new-scrollbar_7U23G","menu-dropdown":"components_color_bullet_new_menu-dropdown_tyRPJ","menu-item":"components_color_bullet_new_menu-item_fPc3j","shortcut":"components_color_bullet_new_shortcut_qAY-Y","shortcut-key":"components_color_bullet_new_shortcut-key_sq-iu","user-icon":"components_color_bullet_new_user-icon_0LhmU","color-bullet":"components_color_bullet_new_color-bullet_b1w8U","mini":"components_color_bullet_new_mini_B261Z","is-not-library-color":"components_color_bullet_new_is-not-library-color_PSveA","color-bullet-wrapper":"components_color_bullet_new_color-bullet-wrapper_clt4r","is-gradient":"components_color_bullet_new_is-gradient_6RdV2","is-transparent":"components_color_bullet_new_is-transparent_g0iwn","color-text":"components_color_bullet_new_color-text_HM6mp","small-text":"components_color_bullet_new_small-text_Y4OeK","no-text":"components_color_bullet_new_no-text_pbTQf","spin-animation":"components_color_bullet_new_spin-animation_X38rj"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/context_menu_a11y.css.json b/frontend/src/app/main/ui/components/context_menu_a11y.css.json index d283cf4da..81be345cf 100644 --- a/frontend/src/app/main/ui/components/context_menu_a11y.css.json +++ b/frontend/src/app/main/ui/components/context_menu_a11y.css.json @@ -1 +1 @@ -{"button-primary":"components_context_menu_a11y_button-primary_FTrG6","button-secondary":"components_context_menu_a11y_button-secondary_tIeiM","button-tertiary":"components_context_menu_a11y_button-tertiary_0A2mW","button-tag":"components_context_menu_a11y_button-tag_iLpM-","context-menu":"components_context_menu_a11y_context-menu_bS2vM","context-menu-items":"components_context_menu_a11y_context-menu-items_lQC7H","context-menu-item":"components_context_menu_a11y_context-menu-item_E2GpJ","selected":"components_context_menu_a11y_selected_on-en","selected-icon":"components_context_menu_a11y_selected-icon_H2S7W","button-icon":"components_context_menu_a11y_button-icon_eOLGl","button-icon-small":"components_context_menu_a11y_button-icon-small_bQvvB","context-menu-action":"components_context_menu_a11y_context-menu-action_E53yg","submenu-back":"components_context_menu_a11y_submenu-back_AboXg","submenu-icon-back":"components_context_menu_a11y_submenu-icon-back_gy-B6","submenu":"components_context_menu_a11y_submenu_MuyM8","submenu-icon":"components_context_menu_a11y_submenu-icon_tWTVU","asset-element":"components_context_menu_a11y_asset-element_r3q1-","new-scrollbar":"components_context_menu_a11y_new-scrollbar_tgX6p","is-open":"components_context_menu_a11y_is-open_FbqIp","fixed":"components_context_menu_a11y_fixed_iJxPr","separator":"components_context_menu_a11y_separator_DrZoB","min-width":"components_context_menu_a11y_min-width_w-ron","is-selected":"components_context_menu_a11y_is-selected_UPMXx","is-selectable":"components_context_menu_a11y_is-selectable_n7sdb"} \ No newline at end of file +{"button-primary":"components_context_menu_a11y_button-primary_FTrG6","button-secondary":"components_context_menu_a11y_button-secondary_tIeiM","button-tertiary":"components_context_menu_a11y_button-tertiary_0A2mW","button-tag":"components_context_menu_a11y_button-tag_iLpM-","context-menu":"components_context_menu_a11y_context-menu_bS2vM","context-menu-items":"components_context_menu_a11y_context-menu-items_lQC7H","context-menu-item":"components_context_menu_a11y_context-menu-item_E2GpJ","selected":"components_context_menu_a11y_selected_on-en","selected-icon":"components_context_menu_a11y_selected-icon_H2S7W","button-icon":"components_context_menu_a11y_button-icon_eOLGl","button-icon-small":"components_context_menu_a11y_button-icon-small_bQvvB","context-menu-action":"components_context_menu_a11y_context-menu-action_E53yg","submenu-back":"components_context_menu_a11y_submenu-back_AboXg","submenu-icon-back":"components_context_menu_a11y_submenu-icon-back_gy-B6","submenu":"components_context_menu_a11y_submenu_MuyM8","submenu-icon":"components_context_menu_a11y_submenu-icon_tWTVU","asset-element":"components_context_menu_a11y_asset-element_r3q1-","new-scrollbar":"components_context_menu_a11y_new-scrollbar_tgX6p","menu-dropdown":"components_context_menu_a11y_menu-dropdown_-wxYa","menu-item":"components_context_menu_a11y_menu-item_J-5tZ","shortcut":"components_context_menu_a11y_shortcut_xHDI7","shortcut-key":"components_context_menu_a11y_shortcut-key_kpESe","user-icon":"components_context_menu_a11y_user-icon_Z4800","is-open":"components_context_menu_a11y_is-open_FbqIp","fixed":"components_context_menu_a11y_fixed_iJxPr","separator":"components_context_menu_a11y_separator_DrZoB","min-width":"components_context_menu_a11y_min-width_w-ron","is-selected":"components_context_menu_a11y_is-selected_UPMXx","is-selectable":"components_context_menu_a11y_is-selectable_n7sdb","spin-animation":"components_context_menu_a11y_spin-animation_QUc-i"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/context_menu_a11y.scss b/frontend/src/app/main/ui/components/context_menu_a11y.scss index 6eb30fce9..7dfe7c3f4 100644 --- a/frontend/src/app/main/ui/components/context_menu_a11y.scss +++ b/frontend/src/app/main/ui/components/context_menu_a11y.scss @@ -10,7 +10,7 @@ position: relative; visibility: hidden; opacity: $op-0; - z-index: $z-index-2; + z-index: $z-index-3; &.is-open { position: relative; @@ -23,6 +23,7 @@ } .context-menu-items { + @include menuShadow; position: absolute; top: $s-12; left: calc(-1 * $s-6); @@ -32,7 +33,6 @@ padding: $s-4; border-radius: $br-8; background-color: var(--menu-background-color); - box-shadow: 0px 0px $s-12 0px var(--menu-shadow-color); overflow: auto; & .separator { height: $s-12; diff --git a/frontend/src/app/main/ui/components/dropdown_menu.cljs b/frontend/src/app/main/ui/components/dropdown_menu.cljs index 75e32b60b..e6a1f06ae 100644 --- a/frontend/src/app/main/ui/components/dropdown_menu.cljs +++ b/frontend/src/app/main/ui/components/dropdown_menu.cljs @@ -20,18 +20,20 @@ {::mf/wrap-props false} [props] - (let [children (gobj/get props "children") - on-click (gobj/get props "on-click") - on-key-down (gobj/get props "on-key-down") - id (gobj/get props "id") - klass (gobj/get props "klass") - key (gobj/get props "unique-key") - data-test (gobj/get props "data-test")] + (let [children (gobj/get props "children") + on-click (gobj/get props "on-click") + on-key-down (gobj/get props "on-key-down") + on-pointer-enter (gobj/get props "on-pointer-enter") + id (gobj/get props "id") + klass (gobj/get props "klass") + key (gobj/get props "unique-key") + data-test (gobj/get props "data-test")] [:li {:id id :class klass :tab-index "0" :on-key-down on-key-down :on-click on-click + :on-pointer-enter on-pointer-enter :key key :role "menuitem" :data-test data-test} diff --git a/frontend/src/app/main/ui/components/editable_label.css.json b/frontend/src/app/main/ui/components/editable_label.css.json index 576e6c658..7a8a44c82 100644 --- a/frontend/src/app/main/ui/components/editable_label.css.json +++ b/frontend/src/app/main/ui/components/editable_label.css.json @@ -1 +1 @@ -{"button-primary":"components_editable_label_button-primary_fp-ma","button-secondary":"components_editable_label_button-secondary_QPaT-","button-tertiary":"components_editable_label_button-tertiary_wOORv","button-tag":"components_editable_label_button-tag_pwEqY","button-icon":"components_editable_label_button-icon_acX7H","button-icon-small":"components_editable_label_button-icon-small_tSz5O","asset-element":"components_editable_label_asset-element_Bs5bh","new-scrollbar":"components_editable_label_new-scrollbar_wEEzl","editable-label-input":"components_editable_label_editable-label-input_q2Puk"} \ No newline at end of file +{"button-primary":"components_editable_label_button-primary_fp-ma","button-secondary":"components_editable_label_button-secondary_QPaT-","button-tertiary":"components_editable_label_button-tertiary_wOORv","button-tag":"components_editable_label_button-tag_pwEqY","button-icon":"components_editable_label_button-icon_acX7H","button-icon-small":"components_editable_label_button-icon-small_tSz5O","asset-element":"components_editable_label_asset-element_Bs5bh","new-scrollbar":"components_editable_label_new-scrollbar_wEEzl","menu-dropdown":"components_editable_label_menu-dropdown_3EWKG","menu-item":"components_editable_label_menu-item_lLMBv","shortcut":"components_editable_label_shortcut_sumJi","shortcut-key":"components_editable_label_shortcut-key_ZxlB1","user-icon":"components_editable_label_user-icon_bNZJf","editable-label-input":"components_editable_label_editable-label-input_q2Puk","spin-animation":"components_editable_label_spin-animation_ziMDb"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/radio_buttons.css.json b/frontend/src/app/main/ui/components/radio_buttons.css.json index 127dfd05f..79151b666 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.css.json +++ b/frontend/src/app/main/ui/components/radio_buttons.css.json @@ -1 +1 @@ -{"button-primary":"components_radio_buttons_button-primary_-XZNO","button-secondary":"components_radio_buttons_button-secondary_yj3Oe","button-tertiary":"components_radio_buttons_button-tertiary_s2RvI","radio-icon":"components_radio_buttons_radio-icon_1OnG1","button-tag":"components_radio_buttons_button-tag_4VTp-","button-icon":"components_radio_buttons_button-icon_jP0XC","button-icon-small":"components_radio_buttons_button-icon-small_3AO-R","asset-element":"components_radio_buttons_asset-element_l2wMX","new-scrollbar":"components_radio_buttons_new-scrollbar_m-Mwb","radio-btn-wrapper":"components_radio_buttons_radio-btn-wrapper_mH6QX","checked":"components_radio_buttons_checked_sjVzy"} \ No newline at end of file +{"button-primary":"components_radio_buttons_button-primary_-XZNO","button-secondary":"components_radio_buttons_button-secondary_yj3Oe","button-tertiary":"components_radio_buttons_button-tertiary_s2RvI","radio-icon":"components_radio_buttons_radio-icon_1OnG1","button-tag":"components_radio_buttons_button-tag_4VTp-","button-icon":"components_radio_buttons_button-icon_jP0XC","button-icon-small":"components_radio_buttons_button-icon-small_3AO-R","asset-element":"components_radio_buttons_asset-element_l2wMX","new-scrollbar":"components_radio_buttons_new-scrollbar_m-Mwb","menu-dropdown":"components_radio_buttons_menu-dropdown_Qn0oF","menu-item":"components_radio_buttons_menu-item_SWV2N","shortcut":"components_radio_buttons_shortcut_25Uf9","shortcut-key":"components_radio_buttons_shortcut-key_S2Y64","user-icon":"components_radio_buttons_user-icon_Ab9su","radio-btn-wrapper":"components_radio_buttons_radio-btn-wrapper_mH6QX","checked":"components_radio_buttons_checked_sjVzy","spin-animation":"components_radio_buttons_spin-animation_iz1sC"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/search_bar.css.json b/frontend/src/app/main/ui/components/search_bar.css.json index b98cd6a8d..feda63060 100644 --- a/frontend/src/app/main/ui/components/search_bar.css.json +++ b/frontend/src/app/main/ui/components/search_bar.css.json @@ -1 +1 @@ -{"button-primary":"components_search_bar_button-primary_-9D1J","button-secondary":"components_search_bar_button-secondary_GbDgI","button-tertiary":"components_search_bar_button-tertiary_VTCfX","button-tag":"components_search_bar_button-tag_dKink","search-box":"components_search_bar_search-box_AFEzz","search-input-wrapper":"components_search_bar_search-input-wrapper_Djsml","clear":"components_search_bar_clear_B6lfz","button-icon":"components_search_bar_button-icon_CdwNa","button-icon-small":"components_search_bar_button-icon-small_gSOsT","asset-element":"components_search_bar_asset-element_rH-5k","new-scrollbar":"components_search_bar_new-scrollbar_rN-Bt","has-children":"components_search_bar_has-children_u-VSq"} \ No newline at end of file +{"button-primary":"components_search_bar_button-primary_-9D1J","button-secondary":"components_search_bar_button-secondary_GbDgI","button-tertiary":"components_search_bar_button-tertiary_VTCfX","button-tag":"components_search_bar_button-tag_dKink","search-box":"components_search_bar_search-box_AFEzz","search-input-wrapper":"components_search_bar_search-input-wrapper_Djsml","clear":"components_search_bar_clear_B6lfz","button-icon":"components_search_bar_button-icon_CdwNa","button-icon-small":"components_search_bar_button-icon-small_gSOsT","asset-element":"components_search_bar_asset-element_rH-5k","new-scrollbar":"components_search_bar_new-scrollbar_rN-Bt","menu-dropdown":"components_search_bar_menu-dropdown_BDHD4","menu-item":"components_search_bar_menu-item_7wbp0","shortcut":"components_search_bar_shortcut_sPxgB","shortcut-key":"components_search_bar_shortcut-key_fp81A","user-icon":"components_search_bar_user-icon_QZlpB","has-children":"components_search_bar_has-children_u-VSq","spin-animation":"components_search_bar_spin-animation_Uxq5m"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/select.css.json b/frontend/src/app/main/ui/components/select.css.json index 2554cd841..c62ab3491 100644 --- a/frontend/src/app/main/ui/components/select.css.json +++ b/frontend/src/app/main/ui/components/select.css.json @@ -1 +1 @@ -{"button-primary":"components_select_button-primary_peYzv","button-secondary":"components_select_button-secondary_Kse6w","button-tertiary":"components_select_button-tertiary_srwoV","button-tag":"components_select_button-tag_AJXtX","button-icon":"components_select_button-icon_86LWm","custom-select":"components_select_custom-select_OM8-6","dropdown-button":"components_select_dropdown-button_IcpuR","button-icon-small":"components_select_button-icon-small_H0Bue","checked-element":"components_select_checked-element_c5-i4","check-icon":"components_select_check-icon_9x082","asset-element":"components_select_asset-element_5vxj7","new-scrollbar":"components_select_new-scrollbar_-E7lz","current-label":"components_select_current-label_CUaQs","custom-select-dropdown":"components_select_custom-select-dropdown_2yZj9","label":"components_select_label_kTY8t","is-selected":"components_select_is-selected_nTUGr"} \ No newline at end of file +{"button-primary":"components_select_button-primary_peYzv","button-secondary":"components_select_button-secondary_Kse6w","button-tertiary":"components_select_button-tertiary_srwoV","button-tag":"components_select_button-tag_AJXtX","button-icon":"components_select_button-icon_86LWm","custom-select":"components_select_custom-select_OM8-6","dropdown-button":"components_select_dropdown-button_IcpuR","button-icon-small":"components_select_button-icon-small_H0Bue","checked-element":"components_select_checked-element_c5-i4","check-icon":"components_select_check-icon_9x082","asset-element":"components_select_asset-element_5vxj7","new-scrollbar":"components_select_new-scrollbar_-E7lz","menu-dropdown":"components_select_menu-dropdown_kxQ7x","menu-item":"components_select_menu-item_ZCcV2","shortcut":"components_select_shortcut_RvVt6","shortcut-key":"components_select_shortcut-key_CLR8L","user-icon":"components_select_user-icon_tLWU4","current-label":"components_select_current-label_CUaQs","custom-select-dropdown":"components_select_custom-select-dropdown_2yZj9","label":"components_select_label_kTY8t","is-selected":"components_select_is-selected_nTUGr","spin-animation":"components_select_spin-animation_YEDae"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/select.scss b/frontend/src/app/main/ui/components/select.scss index 0bc68cfa0..4e21782f1 100644 --- a/frontend/src/app/main/ui/components/select.scss +++ b/frontend/src/app/main/ui/components/select.scss @@ -25,6 +25,7 @@ } } .custom-select-dropdown { + @include menuShadow; position: absolute; top: $s-32; left: 0; @@ -33,10 +34,9 @@ margin: 0; margin-top: $s-4; border-radius: $br-8; - z-index: $z-index-10; + z-index: $z-index-3; overflow-y: auto; background-color: var(--menu-background-color); - box-shadow: 0px 0px $s-12 0px var(--menu-shadow-color); } .checked-element { display: flex; diff --git a/frontend/src/app/main/ui/components/tab_container.css.json b/frontend/src/app/main/ui/components/tab_container.css.json index 066c44f18..e7b2b50b6 100644 --- a/frontend/src/app/main/ui/components/tab_container.css.json +++ b/frontend/src/app/main/ui/components/tab_container.css.json @@ -1 +1 @@ -{"button-primary":"components_tab_container_button-primary_ibiAz","button-secondary":"components_tab_container_button-secondary_wZR80","button-tertiary":"components_tab_container_button-tertiary_JHJAx","button-tag":"components_tab_container_button-tag_NnL8y","button-icon":"components_tab_container_button-icon_2NhVr","button-icon-small":"components_tab_container_button-icon-small_yU7na","asset-element":"components_tab_container_asset-element_1-YWa","new-scrollbar":"components_tab_container_new-scrollbar_L-puJ","tab-container":"components_tab_container_tab-container_P6HRr","tab-container-content":"components_tab_container_tab-container-content_yfM9F","tab-element":"components_tab_container_tab-element_gBIwV","tab-container-tabs":"components_tab_container_tab-container-tabs_6gXOY","tab-container-tab-wrapper":"components_tab_container_tab-container-tab-wrapper_-ngrN","tab-container-tab-title":"components_tab_container_tab-container-tab-title_IN1Dx","current":"components_tab_container_current_jrovp","collapse-sidebar":"components_tab_container_collapse-sidebar_e5hFv","collapsed":"components_tab_container_collapsed_lfkjK"} \ No newline at end of file +{"button-primary":"components_tab_container_button-primary_ibiAz","button-secondary":"components_tab_container_button-secondary_wZR80","button-tertiary":"components_tab_container_button-tertiary_JHJAx","button-tag":"components_tab_container_button-tag_NnL8y","button-icon":"components_tab_container_button-icon_2NhVr","button-icon-small":"components_tab_container_button-icon-small_yU7na","asset-element":"components_tab_container_asset-element_1-YWa","new-scrollbar":"components_tab_container_new-scrollbar_L-puJ","menu-dropdown":"components_tab_container_menu-dropdown_hkr9S","menu-item":"components_tab_container_menu-item_jbhvD","shortcut":"components_tab_container_shortcut_PBP6z","shortcut-key":"components_tab_container_shortcut-key_eFC8J","user-icon":"components_tab_container_user-icon_pY-wv","tab-container":"components_tab_container_tab-container_P6HRr","tab-container-content":"components_tab_container_tab-container-content_yfM9F","tab-element":"components_tab_container_tab-element_gBIwV","tab-container-tabs":"components_tab_container_tab-container-tabs_6gXOY","tab-container-tab-wrapper":"components_tab_container_tab-container-tab-wrapper_-ngrN","tab-container-tab-title":"components_tab_container_tab-container-tab-title_IN1Dx","current":"components_tab_container_current_jrovp","collapse-sidebar":"components_tab_container_collapse-sidebar_e5hFv","collapsed":"components_tab_container_collapsed_lfkjK","spin-animation":"components_tab_container_spin-animation_mPm0p"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/title_bar.css.json b/frontend/src/app/main/ui/components/title_bar.css.json index e32410420..0109a09a4 100644 --- a/frontend/src/app/main/ui/components/title_bar.css.json +++ b/frontend/src/app/main/ui/components/title_bar.css.json @@ -1 +1 @@ -{"button-primary":"components_title_bar_button-primary_svLtU","button-secondary":"components_title_bar_button-secondary_JA5NP","button-tertiary":"components_title_bar_button-tertiary_yqQfO","title-bar":"components_title_bar_title-bar_oUkS0","title-button":"components_title_bar_title-button_xTE-7","button-tag":"components_title_bar_button-tag_o9yFT","button-icon":"components_title_bar_button-icon_ROHrz","button-icon-small":"components_title_bar_button-icon-small_WibJp","toggle-btn":"components_title_bar_toggle-btn_9ekUv","collased-icon":"components_title_bar_collased-icon_SJ1ls","asset-element":"components_title_bar_asset-element_64u6f","new-scrollbar":"components_title_bar_new-scrollbar_dkyAb","title":"components_title_bar_title_qPuju","title-only":"components_title_bar_title-only_aSsdC","rotated":"components_title_bar_rotated_9z7Rn"} \ No newline at end of file +{"button-primary":"components_title_bar_button-primary_svLtU","button-secondary":"components_title_bar_button-secondary_JA5NP","button-tertiary":"components_title_bar_button-tertiary_yqQfO","title-bar":"components_title_bar_title-bar_oUkS0","title-button":"components_title_bar_title-button_xTE-7","button-tag":"components_title_bar_button-tag_o9yFT","button-icon":"components_title_bar_button-icon_ROHrz","button-icon-small":"components_title_bar_button-icon-small_WibJp","toggle-btn":"components_title_bar_toggle-btn_9ekUv","collased-icon":"components_title_bar_collased-icon_SJ1ls","asset-element":"components_title_bar_asset-element_64u6f","new-scrollbar":"components_title_bar_new-scrollbar_dkyAb","menu-dropdown":"components_title_bar_menu-dropdown_uk31D","menu-item":"components_title_bar_menu-item_cGiAC","shortcut":"components_title_bar_shortcut_M9Wv0","shortcut-key":"components_title_bar_shortcut-key_w8Q95","user-icon":"components_title_bar_user-icon_FMwxz","title":"components_title_bar_title_qPuju","title-only":"components_title_bar_title-only_aSsdC","rotated":"components_title_bar_rotated_9z7Rn","spin-animation":"components_title_bar_spin-animation_7EFXa"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/debug/components_preview.css.json b/frontend/src/app/main/ui/debug/components_preview.css.json index 7f5ffe46a..365a0ae62 100644 --- a/frontend/src/app/main/ui/debug/components_preview.css.json +++ b/frontend/src/app/main/ui/debug/components_preview.css.json @@ -1 +1 @@ -{"button-primary":"debug_components_preview_button-primary_Q2m40","button-secondary":"debug_components_preview_button-secondary_yPp3n","button-tertiary":"debug_components_preview_button-tertiary_FIKgJ","button-tag":"debug_components_preview_button-tag_NNepE","button-icon":"debug_components_preview_button-icon_J36A6","button-icon-small":"debug_components_preview_button-icon-small_Pf3jb","asset-element":"debug_components_preview_asset-element_LhcNS","new-scrollbar":"debug_components_preview_new-scrollbar_KrmL7","themes-row":"debug_components_preview_themes-row_wEU8d","wrapper":"debug_components_preview_wrapper_535-4","rect":"debug_components_preview_rect_jomnq","bg-primary":"debug_components_preview_bg-primary_Rt4oW","bg-secondary":"debug_components_preview_bg-secondary_rcmll","bg-tertiary":"debug_components_preview_bg-tertiary_7rITE","bg-cuaternary":"debug_components_preview_bg-cuaternary_UEBPN","fg-primary":"debug_components_preview_fg-primary_naliT","fg-secondary":"debug_components_preview_fg-secondary_zT9IX","acc":"debug_components_preview_acc_h3Bia","acc-muted":"debug_components_preview_acc-muted_uingh","acc-secondary":"debug_components_preview_acc-secondary_oHH6y","acc-tertiary":"debug_components_preview_acc-tertiary_SwBjy","components-row":"debug_components_preview_components-row_N3f-J","title":"debug_components_preview_title_TVtzz","components-wrapper":"debug_components_preview_components-wrapper_A8IgV","component-group":"debug_components_preview_component-group_dI55k","component":"debug_components_preview_component_xBMSU","component-name":"debug_components_preview_component-name_3ZJMW"} \ No newline at end of file +{"button-primary":"debug_components_preview_button-primary_Q2m40","button-secondary":"debug_components_preview_button-secondary_yPp3n","button-tertiary":"debug_components_preview_button-tertiary_FIKgJ","button-tag":"debug_components_preview_button-tag_NNepE","button-icon":"debug_components_preview_button-icon_J36A6","button-icon-small":"debug_components_preview_button-icon-small_Pf3jb","asset-element":"debug_components_preview_asset-element_LhcNS","new-scrollbar":"debug_components_preview_new-scrollbar_KrmL7","menu-dropdown":"debug_components_preview_menu-dropdown_1-d0F","menu-item":"debug_components_preview_menu-item_xb46E","shortcut":"debug_components_preview_shortcut_RsfIk","shortcut-key":"debug_components_preview_shortcut-key_5y-OI","user-icon":"debug_components_preview_user-icon_JBBfp","themes-row":"debug_components_preview_themes-row_wEU8d","wrapper":"debug_components_preview_wrapper_535-4","rect":"debug_components_preview_rect_jomnq","bg-primary":"debug_components_preview_bg-primary_Rt4oW","bg-secondary":"debug_components_preview_bg-secondary_rcmll","bg-tertiary":"debug_components_preview_bg-tertiary_7rITE","bg-cuaternary":"debug_components_preview_bg-cuaternary_UEBPN","fg-primary":"debug_components_preview_fg-primary_naliT","fg-secondary":"debug_components_preview_fg-secondary_zT9IX","acc":"debug_components_preview_acc_h3Bia","acc-muted":"debug_components_preview_acc-muted_uingh","acc-secondary":"debug_components_preview_acc-secondary_oHH6y","acc-tertiary":"debug_components_preview_acc-tertiary_SwBjy","components-row":"debug_components_preview_components-row_N3f-J","title":"debug_components_preview_title_TVtzz","components-wrapper":"debug_components_preview_components-wrapper_A8IgV","component-group":"debug_components_preview_component-group_dI55k","component":"debug_components_preview_component_xBMSU","component-name":"debug_components_preview_component-name_3ZJMW","spin-animation":"debug_components_preview_spin-animation_WfTTo"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/export.cljs b/frontend/src/app/main/ui/export.cljs index 9837a05ff..7f164a983 100644 --- a/frontend/src/app/main/ui/export.cljs +++ b/frontend/src/app/main/ui/export.cljs @@ -6,6 +6,7 @@ (ns app.main.ui.export "Assets exportation common components." + (:require-macros [app.main.style :as stl]) (:require [app.common.colors :as clr] [app.common.data :as d] @@ -14,6 +15,7 @@ [app.main.data.modal :as modal] [app.main.refs :as refs] [app.main.store :as st] + [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.main.ui.workspace.shapes :refer [shape-wrapper]] [app.util.dom :as dom] @@ -169,7 +171,8 @@ (mf/defc export-progress-widget {::mf/wrap [mf/memo]} [] - (let [state (mf/deref refs/export) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + state (mf/deref refs/export) error? (:error state) healthy? (:healthy? state) detail-visible? (:detail-visible state) @@ -184,10 +187,15 @@ pwidth (if error? 280 (/ (* progress 280) total)) - color (cond + color (if new-css-system + (cond + error? clr/new-danger + healthy? clr/new-primary + (not healthy?) clr/new-warning) + (cond error? clr/danger healthy? clr/primary - (not healthy?) clr/warning) + (not healthy?) clr/warning)) title (cond error? (tr "workspace.options.exporting-object-error") complete? (tr "workspace.options.exporting-complete") @@ -200,7 +208,36 @@ toggle-detail-visibility (mf/use-fn #(st/emit! (de/toggle-detail-visibililty)))] - [:* + (if new-css-system + (when detail-visible? + [:div {:class (stl/css :export-progress-modal-overlay)} + [:div {:class (stl/css :export-progress-modal-container)} + [:div {:class (stl/css :export-progress-modal-header)} + [:p {:class (stl/css :export-progress-modal-title)} + [:span {:class (stl/css :title-text)} + title] + (if error? + [:button {:class (stl/css :retry-btn) + :on-click retry-last-export} (tr "workspace.options.retry")] + [:p {:class (stl/css :progress)} (dm/str progress " / " total)])] + + [:button {:class (stl/css :modal-close-button) + :on-click toggle-detail-visibility} i/close-refactor]] + + [:svg {:class (stl/css :progress-bar) + :height 5 :width 280} + [:g + [:path {:d "M0 0 L280 0" + :stroke clr/black + :stroke-width 30}] + [:path {:d (dm/str "M0 0 L280 0") + :stroke color + :stroke-width 30 + :fill "transparent" + :stroke-dasharray 280 + :stroke-dashoffset (- 280 pwidth) + :style {:transition "stroke-dashoffset 1s ease-in-out"}}]]]]]) + [:* (when widget-visible? [:div.export-progress-widget {:on-click toggle-detail-visibility} [:svg {:width "32" :height "32"} @@ -243,5 +280,5 @@ :fill "transparent" :stroke-dasharray 280 :stroke-dashoffset (- 280 pwidth) - :style {:transition "stroke-dashoffset 1s ease-in-out"}}]]]]])])) + :style {:transition "stroke-dashoffset 1s ease-in-out"}}]]]]])]))) diff --git a/frontend/src/app/main/ui/export.css.json b/frontend/src/app/main/ui/export.css.json new file mode 100644 index 000000000..ef3f0d517 --- /dev/null +++ b/frontend/src/app/main/ui/export.css.json @@ -0,0 +1 @@ +{"button-primary":"ui_export_button-primary_dgIrA","button-secondary":"ui_export_button-secondary_5H2Cl","button-tertiary":"ui_export_button-tertiary_8kym9","export-progress-modal-overlay":"ui_export_export-progress-modal-overlay_AAFul","export-progress-modal-container":"ui_export_export-progress-modal-container_1pPaw","export-progress-modal-header":"ui_export_export-progress-modal-header_aulHx","modal-close-button":"ui_export_modal-close-button_zi01-","export-progress-modal-title":"ui_export_export-progress-modal-title_DJyJK","retry-btn":"ui_export_retry-btn_61ygN","button-tag":"ui_export_button-tag_AaPgd","button-icon":"ui_export_button-icon_xc1O3","button-icon-small":"ui_export_button-icon-small_7Gu5A","asset-element":"ui_export_asset-element_jhF3N","new-scrollbar":"ui_export_new-scrollbar_sAcwV","menu-dropdown":"ui_export_menu-dropdown_O3IGG","menu-item":"ui_export_menu-item_J9ztX","shortcut":"ui_export_shortcut_PS6FL","shortcut-key":"ui_export_shortcut-key_F--h2","user-icon":"ui_export_user-icon_3goUU","title-text":"ui_export_title-text_B1EGQ","progress":"ui_export_progress_toR5B","progress-bar":"ui_export_progress-bar_Avs-j","spin-animation":"ui_export_spin-animation_aAhh4"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/export.scss b/frontend/src/app/main/ui/export.scss new file mode 100644 index 000000000..dc57d8081 --- /dev/null +++ b/frontend/src/app/main/ui/export.scss @@ -0,0 +1,67 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@import "refactor/common-refactor.scss"; + +.export-progress-modal-overlay { + display: flex; + justify-content: center; + position: fixed; + right: $s-16; + top: $s-48; + background-color: var(--modal-background-color); + border-radius: $br-8; + z-index: $z-index-20; + overflow: hidden; + + .export-progress-modal-container { + display: flex; + flex-direction: column; + justify-content: space-around; + height: 100%; + width: 100%; + .export-progress-modal-header { + display: flex; + align-items: center; + justify-content: stretch; + padding: $s-8; + .export-progress-modal-title { + display: flex; + flex-grow: 1; + padding: 0; + margin: 0; + .title-text { + @include flexCenter; + @include titleTipography; + padding: 0; + margin: 0; + color: var(--modal-foreground-color); + padding-left: $s-4; + } + .progress { + @include titleTipography; + padding-left: $s-8; + margin: 0; + color: var(--modal-foreground-color-secondary); + } + .retry-btn { + @extend .button-tertiary; + @include titleTipography; + } + } + + .modal-close-button { + @extend .button-tertiary; + svg { + @extend .button-icon-small; + } + } + } + .progress-bar { + margin-top: 0; + } + } +} diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 0b5b16194..7a80eef68 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -357,6 +357,7 @@ (def padding-extended-refactor (icon-xref :padding-extended-refactor)) (def path-refactor (icon-xref :path-refactor)) (def pentool-refactor (icon-xref :pentool-refactor)) +(def play-refactor (icon-xref :play-refactor)) (def rectangle-refactor (icon-xref :rectangle-refactor)) (def remove-refactor (icon-xref :remove-refactor)) (def rotation-refactor (icon-xref :rotation-refactor)) @@ -365,6 +366,10 @@ (def size-horizontal-refactor (icon-xref :size-horizontal-refactor)) (def size-vertical-refactor (icon-xref :size-vertical-refactor)) (def shown-refactor (icon-xref :shown-refactor)) +(def status-alert-refactor (icon-xref :status-alert-refactor)) +(def status-update-refactor (icon-xref :status-update-refactor)) +(def status-tick-refactor (icon-xref :status-tick-refactor)) +(def status-wrong-refactor (icon-xref :status-wrong-refactor)) (def stroke-size-refactor (icon-xref :stroke-size-refactor)) (def svg-refactor (icon-xref :svg-refactor)) (def swatches-refactor (icon-xref :swatches-refactor)) diff --git a/frontend/src/app/main/ui/modal.css.json b/frontend/src/app/main/ui/modal.css.json index de8c67e96..a9cbf99c8 100644 --- a/frontend/src/app/main/ui/modal.css.json +++ b/frontend/src/app/main/ui/modal.css.json @@ -1 +1 @@ -{"button-primary":"ui_modal_button-primary_f2CEg","button-secondary":"ui_modal_button-secondary_1wH6N","button-tertiary":"ui_modal_button-tertiary_vNip8","button-tag":"ui_modal_button-tag_pLwhJ","button-icon":"ui_modal_button-icon_aRFFQ","button-icon-small":"ui_modal_button-icon-small_HY5lR","asset-element":"ui_modal_asset-element_43PW9","new-scrollbar":"ui_modal_new-scrollbar_zPDI7","modal-wrapper":"ui_modal_modal-wrapper_NLvfo"} \ No newline at end of file +{"button-primary":"ui_modal_button-primary_f2CEg","button-secondary":"ui_modal_button-secondary_1wH6N","button-tertiary":"ui_modal_button-tertiary_vNip8","button-tag":"ui_modal_button-tag_pLwhJ","button-icon":"ui_modal_button-icon_aRFFQ","button-icon-small":"ui_modal_button-icon-small_HY5lR","asset-element":"ui_modal_asset-element_43PW9","new-scrollbar":"ui_modal_new-scrollbar_zPDI7","modal-wrapper":"ui_modal_modal-wrapper_NLvfo","menu-dropdown":"ui_modal_menu-dropdown_G1sWX","menu-item":"ui_modal_menu-item_5LLIh","shortcut":"ui_modal_shortcut_6E-Cq","shortcut-key":"ui_modal_shortcut-key_GaCtX","user-icon":"ui_modal_user-icon_ZrqXs","spin-animation":"ui_modal_spin-animation_yREim"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/viewer/inspect.cljs b/frontend/src/app/main/ui/viewer/inspect.cljs index aa19349c9..576cbe06b 100644 --- a/frontend/src/app/main/ui/viewer/inspect.cljs +++ b/frontend/src/app/main/ui/viewer/inspect.cljs @@ -67,7 +67,7 @@ {:keys [on-pointer-down on-lost-pointer-capture on-pointer-move] set-right-size :set-size right-size :size} - (use-resize-hook :code 256 256 768 :x true :right) + (use-resize-hook :code 276 276 768 :x true :right) handle-change-section (mf/use-callback @@ -77,7 +77,7 @@ handle-expand (mf/use-callback (mf/deps right-size) - #(set-right-size (if (> right-size 256) 256 768)))] + #(set-right-size (if (> right-size 276) 276 768)))] (mf/use-effect on-mount) @@ -108,5 +108,4 @@ :file file :on-change-section handle-change-section :on-expand handle-expand - :share-id share-id - }]]])) + :share-id share-id}]]])) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index 34c054aac..5176ff396 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -112,15 +112,21 @@ [:& left-toolbar {:layout layout}] (if (:collapse-left-sidebar layout) [:& collapsed-button] - [:& left-sidebar {:layout layout}]) + [:& left-sidebar {:layout layout + :file file + :page-id page-id}]) [:& right-sidebar {:section options-mode :selected selected - :layout layout}]])])) + :layout layout + :file file + :page-id page-id}]])])) (mf/defc workspace-loader [] - [:div.workspace-loader - i/loader-pencil]) + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + [:div {:class (if new-css-system (css :workspace-loader) + (dom/classnames :workspace-loader true))} + i/loader-pencil])) (mf/defc workspace-page {::mf/wrap-props false} @@ -195,23 +201,36 @@ [:& (mf/provider ctx/components-v2) {:value components-v2?} [:& (mf/provider ctx/new-css-system) {:value new-css-system} [:& (mf/provider ctx/workspace-read-only?) {:value read-only?} - [:section#workspace {:class (when new-css-system (css :workspace)) - :style {:background-color background-color - :touch-action "none"}} - (when (not (:hide-ui layout)) - [:& header {:file file - :page-id page-id - :project project - :layout layout}]) + (if new-css-system + [:section#workspace-refactor {:class (css :workspace) + :style {:background-color background-color + :touch-action "none"}} + [:& context-menu] - [:& context-menu] + (if ^boolean file-ready? + [:& workspace-page {:page-id page-id + :file file + :wglobal wglobal + :layout layout}] + [:& workspace-loader])] - (if ^boolean file-ready? - [:& workspace-page {:page-id page-id - :file file - :wglobal wglobal - :layout layout}] - [:& workspace-loader])]]]]]]]])) + + [:section#workspace {:style {:background-color background-color + :touch-action "none"}} + (when (not (:hide-ui layout)) + [:& header {:file file + :page-id page-id + :project project + :layout layout}]) + + [:& context-menu] + + (if ^boolean file-ready? + [:& workspace-page {:page-id page-id + :file file + :wglobal wglobal + :layout layout}] + [:& workspace-loader])])]]]]]]])) (mf/defc remove-graphics-dialog {::mf/register modal/components diff --git a/frontend/src/app/main/ui/workspace.css.json b/frontend/src/app/main/ui/workspace.css.json index 6fd095888..965afc258 100644 --- a/frontend/src/app/main/ui/workspace.css.json +++ b/frontend/src/app/main/ui/workspace.css.json @@ -1 +1 @@ -{"button-primary":"ui_workspace_button-primary_FZJ-T","button-secondary":"ui_workspace_button-secondary_oDzCJ","button-tertiary":"ui_workspace_button-tertiary_LVpr3","button-tag":"ui_workspace_button-tag_cU1Th","button-icon":"ui_workspace_button-icon_L5y8h","button-icon-small":"ui_workspace_button-icon-small_Ppp3W","asset-element":"ui_workspace_asset-element_LTbhl","new-scrollbar":"ui_workspace_new-scrollbar_tkRN6","workspace":"ui_workspace_workspace_xutJr"} \ No newline at end of file +{"button-primary":"ui_workspace_button-primary_FZJ-T","button-secondary":"ui_workspace_button-secondary_oDzCJ","button-tertiary":"ui_workspace_button-tertiary_LVpr3","button-tag":"ui_workspace_button-tag_cU1Th","button-icon":"ui_workspace_button-icon_L5y8h","button-icon-small":"ui_workspace_button-icon-small_Ppp3W","asset-element":"ui_workspace_asset-element_LTbhl","new-scrollbar":"ui_workspace_new-scrollbar_tkRN6","workspace":"ui_workspace_workspace_xutJr","menu-dropdown":"ui_workspace_menu-dropdown_C5UnV","menu-item":"ui_workspace_menu-item_JOhDR","shortcut":"ui_workspace_shortcut_ksV9H","shortcut-key":"ui_workspace_shortcut-key_Npd85","user-icon":"ui_workspace_user-icon_-DyAD","workspace-loader":"ui_workspace_workspace-loader_INSav","spin-animation":"ui_workspace_spin-animation_kD9o3"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace.scss b/frontend/src/app/main/ui/workspace.scss index bb956a4cb..b15b47f5e 100644 --- a/frontend/src/app/main/ui/workspace.scss +++ b/frontend/src/app/main/ui/workspace.scss @@ -1,3 +1,9 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + @import "refactor/common-refactor.scss"; // Work Sans @@ -15,4 +21,21 @@ .workspace { @extend .new-scrollbar; + width: 100vw; + height: 100%; + user-select: none; + display: grid; + grid-template-areas: "left-sidebar viewport right-sidebar"; + grid-template-rows: 1fr; + grid-template-columns: auto 1fr auto; + + .workspace-loader { + display: flex; + justify-content: center; + align-items: center; + grid-area: viewport; + svg { + fill: var(--icon-foreground); + } + } } diff --git a/frontend/src/app/main/ui/workspace/color_palette.css.json b/frontend/src/app/main/ui/workspace/color_palette.css.json index 0243ebce7..804a4f212 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.css.json +++ b/frontend/src/app/main/ui/workspace/color_palette.css.json @@ -1 +1 @@ -{"button-primary":"workspace_color_palette_button-primary_0d2e2","button-secondary":"workspace_color_palette_button-secondary_C8qJL","button-tertiary":"workspace_color_palette_button-tertiary_X6-9C","button-tag":"workspace_color_palette_button-tag_GtZK2","button-icon":"workspace_color_palette_button-icon_-tBR6","color-palette":"workspace_color_palette_color-palette_hfJPA","left-arrow":"workspace_color_palette_left-arrow_PK7sj","right-arrow":"workspace_color_palette_right-arrow_swpS9","button-icon-small":"workspace_color_palette_button-icon-small_RrGTg","asset-element":"workspace_color_palette_asset-element_3Q2Mp","new-scrollbar":"workspace_color_palette_new-scrollbar_ChE0u","disabled":"workspace_color_palette_disabled_bz-he","color-palette-content":"workspace_color_palette_color-palette-content_okg18","color-palette-inside":"workspace_color_palette_color-palette-inside_dCIeR","color-cell":"workspace_color_palette_color-cell_ITDgl","is-not-library-color":"workspace_color_palette_is-not-library-color_EqCM6","no-text":"workspace_color_palette_no-text_QMPK0"} \ No newline at end of file +{"button-primary":"workspace_color_palette_button-primary_0d2e2","button-secondary":"workspace_color_palette_button-secondary_C8qJL","button-tertiary":"workspace_color_palette_button-tertiary_X6-9C","button-tag":"workspace_color_palette_button-tag_GtZK2","button-icon":"workspace_color_palette_button-icon_-tBR6","color-palette":"workspace_color_palette_color-palette_hfJPA","left-arrow":"workspace_color_palette_left-arrow_PK7sj","right-arrow":"workspace_color_palette_right-arrow_swpS9","button-icon-small":"workspace_color_palette_button-icon-small_RrGTg","asset-element":"workspace_color_palette_asset-element_3Q2Mp","new-scrollbar":"workspace_color_palette_new-scrollbar_ChE0u","menu-dropdown":"workspace_color_palette_menu-dropdown_VygMh","menu-item":"workspace_color_palette_menu-item_y2vU0","shortcut":"workspace_color_palette_shortcut_CFccJ","shortcut-key":"workspace_color_palette_shortcut-key_5etoa","user-icon":"workspace_color_palette_user-icon_eRKoT","disabled":"workspace_color_palette_disabled_bz-he","color-palette-content":"workspace_color_palette_color-palette-content_okg18","color-palette-inside":"workspace_color_palette_color-palette-inside_dCIeR","color-cell":"workspace_color_palette_color-cell_ITDgl","is-not-library-color":"workspace_color_palette_is-not-library-color_EqCM6","no-text":"workspace_color_palette_no-text_QMPK0","spin-animation":"workspace_color_palette_spin-animation_LKFRB"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.css.json b/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.css.json index 1123c6df3..aa23a7caf 100644 --- a/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.css.json +++ b/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.css.json @@ -1 +1 @@ -{"button-primary":"workspace_color_palette_ctx_menu_button-primary_2ka4z","button-secondary":"workspace_color_palette_ctx_menu_button-secondary_jfajf","button-tertiary":"workspace_color_palette_ctx_menu_button-tertiary_NLctS","button-tag":"workspace_color_palette_ctx_menu_button-tag_GN3ad","button-icon":"workspace_color_palette_ctx_menu_button-icon_cCaY2","button-icon-small":"workspace_color_palette_ctx_menu_button-icon-small_-knT4","palette-menu":"workspace_color_palette_ctx_menu_palette-menu_Vrjfy","palette-library":"workspace_color_palette_ctx_menu_palette-library_0LFV5","selected":"workspace_color_palette_ctx_menu_selected_lfchf","option-wrapper":"workspace_color_palette_ctx_menu_option-wrapper_st9Cq","library-name":"workspace_color_palette_ctx_menu_library-name_BL8b8","icon-wrapper":"workspace_color_palette_ctx_menu_icon-wrapper_v8-ys","recent-colors":"workspace_color_palette_ctx_menu_recent-colors_Q4fss","file-library":"workspace_color_palette_ctx_menu_file-library_8qsbr","asset-element":"workspace_color_palette_ctx_menu_asset-element_pV16m","new-scrollbar":"workspace_color_palette_ctx_menu_new-scrollbar_0BINh","lib-name-wrapper":"workspace_color_palette_ctx_menu_lib-name-wrapper_-F9D4","lib-name":"workspace_color_palette_ctx_menu_lib-name_VPSM1","lib-num":"workspace_color_palette_ctx_menu_lib-num_neRQe","color-sample":"workspace_color_palette_ctx_menu_color-sample_jQUGL"} \ No newline at end of file +{"button-primary":"workspace_color_palette_ctx_menu_button-primary_2ka4z","button-secondary":"workspace_color_palette_ctx_menu_button-secondary_jfajf","button-tertiary":"workspace_color_palette_ctx_menu_button-tertiary_NLctS","button-tag":"workspace_color_palette_ctx_menu_button-tag_GN3ad","button-icon":"workspace_color_palette_ctx_menu_button-icon_cCaY2","button-icon-small":"workspace_color_palette_ctx_menu_button-icon-small_-knT4","palette-menu":"workspace_color_palette_ctx_menu_palette-menu_Vrjfy","palette-library":"workspace_color_palette_ctx_menu_palette-library_0LFV5","selected":"workspace_color_palette_ctx_menu_selected_lfchf","option-wrapper":"workspace_color_palette_ctx_menu_option-wrapper_st9Cq","library-name":"workspace_color_palette_ctx_menu_library-name_BL8b8","icon-wrapper":"workspace_color_palette_ctx_menu_icon-wrapper_v8-ys","recent-colors":"workspace_color_palette_ctx_menu_recent-colors_Q4fss","file-library":"workspace_color_palette_ctx_menu_file-library_8qsbr","asset-element":"workspace_color_palette_ctx_menu_asset-element_pV16m","new-scrollbar":"workspace_color_palette_ctx_menu_new-scrollbar_0BINh","menu-dropdown":"workspace_color_palette_ctx_menu_menu-dropdown_3nduz","menu-item":"workspace_color_palette_ctx_menu_menu-item_hVz--","shortcut":"workspace_color_palette_ctx_menu_shortcut_jqDHK","shortcut-key":"workspace_color_palette_ctx_menu_shortcut-key_VPYPv","user-icon":"workspace_color_palette_ctx_menu_user-icon_wv-bR","lib-name-wrapper":"workspace_color_palette_ctx_menu_lib-name-wrapper_-F9D4","lib-name":"workspace_color_palette_ctx_menu_lib-name_VPSM1","lib-num":"workspace_color_palette_ctx_menu_lib-num_neRQe","color-sample":"workspace_color_palette_ctx_menu_color-sample_jQUGL","spin-animation":"workspace_color_palette_ctx_menu_spin-animation_WUYef"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.scss b/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.scss index 1a6127811..74c2f59f1 100644 --- a/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.scss +++ b/frontend/src/app/main/ui/workspace/color_palette_ctx_menu.scss @@ -13,7 +13,7 @@ bottom: $s-0; padding: $s-4; margin: 0 0 $s-4 0; - z-index: $z-index-10; + z-index: $z-index-3; border-radius: $br-10; background-color: var(--context-menu-background-color); diff --git a/frontend/src/app/main/ui/workspace/context_menu.css.json b/frontend/src/app/main/ui/workspace/context_menu.css.json index a35b28847..a8b732fda 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.css.json +++ b/frontend/src/app/main/ui/workspace/context_menu.css.json @@ -1 +1 @@ -{"button-primary":"workspace_context_menu_button-primary_d6q-P","button-secondary":"workspace_context_menu_button-secondary_bIdqe","button-tertiary":"workspace_context_menu_button-tertiary_vGSns","button-tag":"workspace_context_menu_button-tag_rOUbd","button-icon":"workspace_context_menu_button-icon_tXvxe","button-icon-small":"workspace_context_menu_button-icon-small_c0rVU","workspace-context-menu":"workspace_context_menu_workspace-context-menu_2NyvR","icon-menu-item":"workspace_context_menu_icon-menu-item_P3-bA","shape-icon":"workspace_context_menu_shape-icon_xx1Ll","workspace-context-submenu":"workspace_context_menu_workspace-context-submenu_BUNLt","selected-icon":"workspace_context_menu_selected-icon_pZqBp","context-menu-item":"workspace_context_menu_context-menu-item_Tx-Ty","submenu-icon":"workspace_context_menu_submenu-icon_JwYm8","asset-element":"workspace_context_menu_asset-element_jkrbj","new-scrollbar":"workspace_context_menu_new-scrollbar_xGQzu","separator":"workspace_context_menu_separator_E9-aR","title":"workspace_context_menu_title_P8iFL","shortcut":"workspace_context_menu_shortcut_rypUe","shortcut-key":"workspace_context_menu_shortcut-key_3rF3t","icon-wrapper":"workspace_context_menu_icon-wrapper_n7VO2"} \ No newline at end of file +{"button-primary":"workspace_context_menu_button-primary_d6q-P","button-secondary":"workspace_context_menu_button-secondary_bIdqe","button-tertiary":"workspace_context_menu_button-tertiary_vGSns","button-tag":"workspace_context_menu_button-tag_rOUbd","button-icon":"workspace_context_menu_button-icon_tXvxe","button-icon-small":"workspace_context_menu_button-icon-small_c0rVU","workspace-context-menu":"workspace_context_menu_workspace-context-menu_2NyvR","icon-menu-item":"workspace_context_menu_icon-menu-item_P3-bA","shape-icon":"workspace_context_menu_shape-icon_xx1Ll","workspace-context-submenu":"workspace_context_menu_workspace-context-submenu_BUNLt","selected-icon":"workspace_context_menu_selected-icon_pZqBp","context-menu-item":"workspace_context_menu_context-menu-item_Tx-Ty","submenu-icon":"workspace_context_menu_submenu-icon_JwYm8","asset-element":"workspace_context_menu_asset-element_jkrbj","new-scrollbar":"workspace_context_menu_new-scrollbar_xGQzu","menu-dropdown":"workspace_context_menu_menu-dropdown_UF-Oq","menu-item":"workspace_context_menu_menu-item_uHHBH","shortcut":"workspace_context_menu_shortcut_rypUe","shortcut-key":"workspace_context_menu_shortcut-key_3rF3t","user-icon":"workspace_context_menu_user-icon_pLDVU","separator":"workspace_context_menu_separator_E9-aR","title":"workspace_context_menu_title_P8iFL","icon-wrapper":"workspace_context_menu_icon-wrapper_n7VO2","spin-animation":"workspace_context_menu_spin-animation_Y8j2J"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/context_menu.scss b/frontend/src/app/main/ui/workspace/context_menu.scss index 9bda90ad9..94f73018e 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.scss +++ b/frontend/src/app/main/ui/workspace/context_menu.scss @@ -8,6 +8,7 @@ .workspace-context-menu, .workspace-context-submenu { + @include menuShadow; position: absolute; top: $s-40; left: $s-736; @@ -17,8 +18,7 @@ padding: $s-4; border-radius: $br-8; background-color: var(--menu-background-color); - z-index: $z-index-20; - box-shadow: 0px 0px $s-12 0px var(--menu-shadow-color); + z-index: $z-index-3; .separator { height: $s-12; } diff --git a/frontend/src/app/main/ui/workspace/left_header.cljs b/frontend/src/app/main/ui/workspace/left_header.cljs new file mode 100644 index 000000000..46961e74d --- /dev/null +++ b/frontend/src/app/main/ui/workspace/left_header.cljs @@ -0,0 +1,830 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.workspace.left-header (:require-macros [app.main.style :as stl]) + (:require + [app.common.pages.helpers :as cph] + [app.common.uuid :as uuid] + [app.config :as cf] + [app.main.data.events :as ev] + [app.main.data.exports :as de] + [app.main.data.modal :as modal] + [app.main.data.shortcuts :as scd] + [app.main.data.workspace :as dw] + [app.main.data.workspace.colors :as dc] + [app.main.data.workspace.common :as dwc] + [app.main.data.workspace.libraries :as dwl] + [app.main.data.workspace.shortcuts :as sc] + [app.main.refs :as refs] + [app.main.repo :as rp] + [app.main.store :as st] + [app.main.ui.components.dropdown-menu :refer [dropdown-menu dropdown-menu-item]] + [app.main.ui.context :as ctx] + [app.main.ui.hooks.resize :as r] + [app.main.ui.icons :as i] + [app.util.dom :as dom] + [app.util.i18n :as i18n :refer [tr]] + [app.util.keyboard :as kbd] + [app.util.router :as rt] + [beicon.core :as rx] + [cuerdas.core :as str] + [potok.core :as ptk] + [rumext.v2 :as mf])) + +;; --- Header menu and submenus + +(mf/defc help-info-menu + {::mf/wrap-props false + ::mf/wrap [mf/memo]} + [{:keys [layout on-close]}] + (let [nav-to-helpc-center + (mf/use-fn #(dom/open-new-window "https://help.penpot.app")) + + nav-to-community + (mf/use-fn #(dom/open-new-window "https://community.penpot.app")) + + nav-to-youtube + (mf/use-fn #(dom/open-new-window "https://www.youtube.com/c/Penpot")) + + nav-to-templates + (mf/use-fn #(dom/open-new-window "https://penpot.app/libraries-templates")) + + nav-to-github + (mf/use-fn #(dom/open-new-window "https://github.com/penpot/penpot")) + + nav-to-terms + (mf/use-fn #(dom/open-new-window "https://penpot.app/terms")) + + nav-to-feedback + (mf/use-fn #(st/emit! (rt/nav-new-window* {:rname :settings-feedback}))) + + show-shortcuts + (mf/use-fn + (mf/deps layout) + (fn [] + (when (contains? layout :collapse-left-sidebar) + (st/emit! (dw/toggle-layout-flag :collapse-left-sidebar))) + + (st/emit! + (-> (dw/toggle-layout-flag :shortcuts) + (vary-meta assoc ::ev/origin "workspace-header"))))) + + show-release-notes + (mf/use-fn + (fn [event] + (let [version (:main cf/version)] + (st/emit! (ptk/event ::ev/event {::ev/name "show-release-notes" :version version})) + (if (and (kbd/alt? event) (kbd/mod? event)) + (st/emit! (modal/show {:type :onboarding})) + (st/emit! (modal/show {:type :release-notes :version version}))))))] + + [:& dropdown-menu {:show true + :on-close on-close + :list-class (stl/css-case :sub-menu true + :help-info true)} + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-helpc-center + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-helpc-center event))) + :id "file-menu-help-center" + :unique-key "file-menu-help-center"} + [:span {:class (stl/css :item-name)} (tr "labels.help-center")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-community + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-community event))) + :id "file-menu-community" + :unique-key "file-menu-community"} + [:span {:class (stl/css :item-name)} (tr "labels.community")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-youtube + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-youtube event))) + :id "file-menu-youtube" + :unique-key "file-menu-youtube"} + [:span {:class (stl/css :item-name)} (tr "labels.tutorials")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click show-release-notes + :on-key-down (fn [event] + (when (kbd/enter? event) + (show-release-notes event))) + :id "file-menu-release-notes" + :unique-key "file-menu-release-notes"} + [:span {:class (stl/css :item-name)} (tr "labels.release-notes")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-templates + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-templates event))) + :id "file-menu-templates" + :unique-key "file-menu-templates"} + [:span {:class (stl/css :item-name)} (tr "labels.libraries-and-templates")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-github + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-github event))) + :id "file-menu-github" + :unique-key "file-menu-github"} + [:span {:class (stl/css :item-name)} (tr "labels.github-repo")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-terms + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-terms event))) + :id "file-menu-terms" + :unique-key "file-menu-terms"} + [:span {:class (stl/css :item-name)} (tr "auth.terms-of-service")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click show-shortcuts + :on-key-down (fn [event] + (when (kbd/enter? event) + (show-shortcuts event))) + :id "file-menu-shortcuts" + :unique-key "file-menu-shortcuts"} + [:span {:class (stl/css :item-name)} (tr "label.shortcuts")] + [:span {:class (stl/css :shortcut)} + + (for [sc (scd/split-sc (sc/get-tooltip :show-shortcuts))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + (when (contains? cf/flags :user-feedback) + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click nav-to-feedback + :on-key-down (fn [event] + (when (kbd/enter? event) + (nav-to-feedback event))) + :id "file-menu-feedback" + :unique-key "file-menu-feedback"} + [:span {:class (stl/css-case :feedback true + :item-name true)} (tr "labels.give-feedback")]])])) + +(mf/defc preferences-menu + {::mf/wrap-props false + ::mf/wrap [mf/memo]} + [{:keys [layout toggle-flag on-close]}] + (let [show-nudge-options (mf/use-fn #(modal/show! {:type :nudge-option}))] + + [:& dropdown-menu {:show true + :list-class (stl/css-case :sub-menu true + :preferences true) + :on-close on-close} + [:& dropdown-menu-item {:on-click toggle-flag + :klass (stl/css :submenu-item) + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "scale.-text" + :id "file-menu-scale-text" + :unique-key "file-menu-scale-text"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :scale-text) + (tr "workspace.header.menu.disable-scale-content") + (tr "workspace.header.menu.enable-scale-content"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-scale-text))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:on-click toggle-flag + :klass (stl/css :submenu-item) + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "snap-guides" + :id "file-menu-snap-guides" + :unique-key "file-menu-snap-guides"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :snap-guides) + (tr "workspace.header.menu.disable-snap-guides") + (tr "workspace.header.menu.enable-snap-guides"))] + [:span {:class (stl/css :shortcut)} + + (for [sc (scd/split-sc (sc/get-tooltip :toggle-snap-guide))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:on-click toggle-flag + :klass (stl/css :submenu-item) + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "snap-grid" + :id "file-menu-snap-grid" + :unique-key "file-menu-snap-grid"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :snap-grid) + (tr "workspace.header.menu.disable-snap-grid") + (tr "workspace.header.menu.enable-snap-grid"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-snap-grid))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:on-click toggle-flag + :klass (stl/css :submenu-item) + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "dynamic-alignment" + :id "file-menu-dynamic-alignment" + :unique-key "file-menu-dynamic-alignment"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :dynamic-alignment) + (tr "workspace.header.menu.disable-dynamic-alignment") + (tr "workspace.header.menu.enable-dynamic-alignment"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-alignment))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:on-click toggle-flag + :klass (stl/css :submenu-item) + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "snap-pixel-grid" + :id "file-menu-pixel-grid" + :unique-key "file-menu-pixel-grid"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :snap-pixel-grid) + (tr "workspace.header.menu.disable-snap-pixel-grid") + (tr "workspace.header.menu.enable-snap-pixel-grid"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :snap-pixel-grid))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:on-click show-nudge-options + :klass (stl/css :submenu-item) + :on-key-down (fn [event] + (when (kbd/enter? event) + (show-nudge-options event))) + :data-test "snap-pixel-grid" + :id "file-menu-nudge" + :unique-key "file-menu-nudge"} + [:span {:class (stl/css :item-name)} (tr "modals.nudge-title")]]])) + +(mf/defc view-menu + {::mf/wrap-props false + ::mf/wrap [mf/memo]} + [{:keys [layout toggle-flag on-close]}] + (let [read-only? (mf/use-ctx ctx/workspace-read-only?) + + toggle-color-palette + (mf/use-fn + (fn [] + (r/set-resize-type! :bottom) + (st/emit! (dw/remove-layout-flag :textpalette) + (-> (dw/toggle-layout-flag :colorpalette) + (vary-meta assoc ::ev/origin "workspace-menu"))))) + + toggle-text-palette + (mf/use-fn + (fn [] + (r/set-resize-type! :bottom) + (st/emit! (dw/remove-layout-flag :colorpalette) + (-> (dw/toggle-layout-flag :textpalette) + (vary-meta assoc ::ev/origin "workspace-menu")))))] + + [:& dropdown-menu {:show true + :list-class (stl/css-case :sub-menu true + :view true) + :on-close on-close} + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click toggle-flag + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "rules" + :id "file-menu-rules" + :unique-key "file-menu-rules"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :rules) + (tr "workspace.header.menu.hide-rules") + (tr "workspace.header.menu.show-rules"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-rules))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click toggle-flag + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "display-grid" + :id "file-menu-grid" + :unique-key "file-menu-grid"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :display-grid) + (tr "workspace.header.menu.hide-grid") + (tr "workspace.header.menu.show-grid"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-grid))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + + (when-not ^boolean read-only? + [:* + [:& dropdown-menu-item {:klass (stl/css :submenu-item) :on-click toggle-color-palette + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-color-palette event))) + :id "file-menu-color-palette" + :unique-key "file-menu-color-palette"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :colorpalette) + (tr "workspace.header.menu.hide-palette") + (tr "workspace.header.menu.show-palette"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-colorpalette))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) :on-click toggle-text-palette + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-text-palette event))) + :id "file-menu-text-palette" + :unique-key "file-menu-text-palette"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :textpalette) + (tr "workspace.header.menu.hide-palette") + (tr "workspace.header.menu.show-palette"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :toggle-textpalette))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]]]) + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click toggle-flag + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "display-artboard-names" + :id "file-menu-artboards" + :unique-key "file-menu-artboards"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :display-artboard-names) + (tr "workspace.header.menu.hide-artboard-names") + (tr "workspace.header.menu.show-artboard-names"))]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click toggle-flag + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "show-pixel-grid" + :id "file-menu-pixel-grid" + :unique-key "file-menu-pixel-grid"} + [:span {:class (stl/css :item-name)} + (if (contains? layout :show-pixel-grid) + (tr "workspace.header.menu.hide-pixel-grid") + (tr "workspace.header.menu.show-pixel-grid"))] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :show-pixel-grid))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click toggle-flag + :on-key-down (fn [event] + (when (kbd/enter? event) + (toggle-flag event))) + :data-test "hide-ui" + :id "file-menu-hide-ui" + :unique-key "file-menu-hide-ui"} + [:span {:class (stl/css :item-name)} + (tr "workspace.shape.menu.hide-ui")] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :hide-ui))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]]])) + +(mf/defc edit-menu + {::mf/wrap-props false + ::mf/wrap [mf/memo]} + [{:keys [on-close]}] + (let [select-all (mf/use-fn #(st/emit! (dw/select-all))) + undo (mf/use-fn #(st/emit! dwc/undo)) + redo (mf/use-fn #(st/emit! dwc/redo))] + [:& dropdown-menu {:show true + :list-class (stl/css-case :sub-menu true + :edit true) + :on-close on-close} + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click select-all + :on-key-down (fn [event] + (when (kbd/enter? event) + (select-all event))) + :id "file-menu-select-all" + :unique-key "file-menu-select-all"} + [:span {:class (stl/css :item-name)} + (tr "workspace.header.menu.select-all")] + [:span {:class (stl/css :shortcut)} + + (for [sc (scd/split-sc (sc/get-tooltip :select-all))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click undo + :on-key-down (fn [event] + (when (kbd/enter? event) + (undo event))) + :id "file-menu-undo" + :unique-key "file-menu-undo"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.undo")] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :undo))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click redo + :on-key-down (fn [event] + (when (kbd/enter? event) + (redo event))) + :id "file-menu-redo" + :unique-key "file-menu-redo"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.redo")] + [:span {:class (stl/css :shortcut)} + + (for [sc (scd/split-sc (sc/get-tooltip :redo))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]]])) + +(mf/defc file-menu + {::mf/wrap-props false} + [{:keys [on-close file team-id]}] + (let [file-id (:id file) + file-name (:name file) + shared? (:is-shared file) + + objects (mf/deref refs/workspace-page-objects) + frames (->> (cph/get-immediate-children objects uuid/zero) + (filterv cph/frame-shape?)) + + add-shared-fn + (mf/use-fn + (mf/deps file-id) + #(st/emit! (dwl/set-file-shared file-id true))) + + on-add-shared + (mf/use-fn + (mf/deps file-name add-shared-fn) + #(modal/show! {:type :confirm + :message "" + :title (tr "modals.add-shared-confirm.message" file-name) + :hint (tr "modals.add-shared-confirm.hint") + :cancel-label :omit + :accept-label (tr "modals.add-shared-confirm.accept") + :accept-style :primary + :on-accept add-shared-fn})) + + on-remove-shared + (mf/use-fn (mf/deps file-id) + (fn [event] + (dom/prevent-default event) + (dom/stop-propagation event) + (modal/show! + {:type :delete-shared-libraries + :origin :unpublish + :ids #{file-id} + :on-accept #(st/emit! (dwl/set-file-shared file-id false)) + :count-libraries 1}))) + + on-export-shapes + (mf/use-fn #(st/emit! (de/show-workspace-export-dialog))) + + on-export-file + (mf/use-fn + (mf/deps file) + (fn [event-name binary?] + (st/emit! (ptk/event ::ev/event {::ev/name event-name + ::ev/origin "workspace" + :num-files 1})) + + (->> (rx/of file) + (rx/flat-map + (fn [file] + (->> (rp/cmd! :has-file-libraries {:file-id (:id file)}) + (rx/map #(assoc file :has-libraries? %))))) + (rx/reduce conj []) + (rx/subs + (fn [files] + (modal/show! + {:type :export + :team-id team-id + :has-libraries? (->> files (some :has-libraries?)) + :files files + :binary? binary?})))))) + + on-export-binary-file + (mf/use-fn + (mf/deps on-export-file) + (partial on-export-file "export-binary-files" true)) + + on-export-standard-file + (mf/use-fn + (mf/deps on-export-file) + (partial on-export-file "export-standard-files" false)) + + on-export-frames + (mf/use-fn + (mf/deps frames) + (fn [_] + (st/emit! (de/show-workspace-export-frames-dialog (reverse frames)))))] + + [:& dropdown-menu {:show true + :list-class (stl/css-case :sub-menu true + :file true) + :on-close on-close} + (if ^boolean shared? + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click on-remove-shared + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-remove-shared event))) + :id "file-menu-remove-shared" + :unique-key "file-menu-remove-shared"} + [:span {:class (stl/css :item-name)} (tr "dashboard.unpublish-shared")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click on-add-shared + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-add-shared event))) + :id "file-menu-add-shared" + :unique-key "file-menu-add-shared"} + [:span {:class (stl/css :item-name)} (tr "dashboard.add-shared")]]) + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click on-export-shapes + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-export-shapes event))) + :id "file-menu-export-shapes" + :unique-key "file-menu-export-shapes"} + [:span {:class (stl/css :item-name)} (tr "dashboard.export-shapes")] + [:span {:class (stl/css :shortcut)} + (for [sc (scd/split-sc (sc/get-tooltip :export-shapes))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click on-export-binary-file + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-export-binary-file event))) + :id "file-menu-binary-file" + :unique-key "file-menu-binary-file"} + [:span {:class (stl/css :item-name)} (tr "dashboard.download-binary-file")]] + + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click on-export-standard-file + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-export-standard-file event))) + :id "file-menu-standard-file" + :unique-key "file-menu-standard-file"} + [:span {:class (stl/css :item-name)} (tr "dashboard.download-standard-file")]] + + + (when (seq frames) + [:& dropdown-menu-item {:klass (stl/css :submenu-item) + :on-click on-export-frames + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-export-frames event))) + :id "file-menu-export-frames" + :unique-key "file-menu-export-frames"} + [:span {:class (stl/css :item-name)} + (tr "dashboard.export-frames")]])])) + +(mf/defc menu + {::mf/wrap-props false} + [{:keys [layout file team-id]}] + (let [show-menu* (mf/use-state false) + show-menu? (deref show-menu*) + sub-menu* (mf/use-state false) + sub-menu (deref sub-menu*) + + open-menu (mf/use-fn #(reset! show-menu* true)) + close-menu (mf/use-fn #(reset! show-menu* false)) + close-sub-menu (mf/use-fn #(reset! sub-menu* nil)) + + on-menu-click + (mf/use-fn + (fn [event] + (dom/stop-propagation event) + (let [menu (-> (dom/get-current-target event) + (dom/get-data "test") + (keyword))] + (reset! sub-menu* menu)))) + + toggle-flag + (mf/use-fn + (fn [event] + (let [flag (-> (dom/get-current-target event) + (dom/get-data "test") + (keyword))] + (st/emit! + (-> (dw/toggle-layout-flag flag) + (vary-meta assoc ::ev/origin "workspace-menu"))))))] + + + [:* + [:div {:on-click open-menu + :class (stl/css :menu-btn)} i/menu-refactor] + + [:& dropdown-menu {:show show-menu? + :on-close close-menu + :list-class (stl/css :menu)} + + [:& dropdown-menu-item {:klass (stl/css :menu-item) + :on-click on-menu-click + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-menu-click event))) + :on-pointer-enter on-menu-click + :data-test "file" + :id "file-menu-file" + :unique-key "file-menu-file"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.file")] + [:span {:class (stl/css :open-arrow)} i/arrow-refactor]] + + [:& dropdown-menu-item {:klass (stl/css :menu-item) + :on-click on-menu-click + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-menu-click event))) + :on-pointer-enter on-menu-click + :data-test "edit" + :id "file-menu-edit" + :unique-key "file-menu-edit"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.edit")] + [:span {:class (stl/css :open-arrow)} i/arrow-refactor]] + + [:& dropdown-menu-item {:klass (stl/css :menu-item) + :on-click on-menu-click + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-menu-click event))) + :on-pointer-enter on-menu-click + :data-test "view" + :id "file-menu-view" + :unique-key "file-menu-view"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.view")] + [:span {:class (stl/css :open-arrow)} i/arrow-refactor]] + + [:& dropdown-menu-item {:klass (stl/css :menu-item) + :on-click on-menu-click + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-menu-click event))) + :on-pointer-enter on-menu-click + :data-test "preferences" + :id "file-menu-preferences" + :unique-key "file-menu-preferences"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.preferences")] + [:span {:class (stl/css :open-arrow)} i/arrow-refactor]] + [:div {:class (stl/css :separator)}] + [:& dropdown-menu-item {:klass (stl/css-case :menu-item true) + :on-click on-menu-click + :on-key-down (fn [event] + (when (kbd/enter? event) + (on-menu-click event))) + :on-pointer-enter on-menu-click + :data-test "help-info" + :id "file-menu-help-info" + :unique-key "file-menu-help-info"} + [:span {:class (stl/css :item-name)} (tr "workspace.header.menu.option.help-info")] + [:span {:class (stl/css :open-arrow)} i/arrow-refactor]]] + + (case sub-menu + :file + [:& file-menu + {:file file + :team-id team-id + :on-close close-sub-menu}] + + :edit + [:& edit-menu + {:on-close close-sub-menu}] + + :view + [:& view-menu + {:layout layout + :toggle-flag toggle-flag + :on-close close-sub-menu}] + + :preferences + [:& preferences-menu + {:layout layout + :toggle-flag toggle-flag + :on-close close-sub-menu}] + + :help-info + [:& help-info-menu + {:layout layout + :on-close close-sub-menu}] + + nil)])) + +;; --- Header Component + +(mf/defc left-header + {::mf/wrap-props false} + [{:keys [file layout project page-id]}] + (let [file-id (:id file) + file-name (:name file) + project-id (:id project) + team-id (:team-id project) + shared? (:is-shared file) + read-only? (mf/use-ctx ctx/workspace-read-only?) + + editing* (mf/use-state false) + editing? (deref editing*) + input-ref (mf/use-ref nil) + + handle-blur + (mf/use-fn + (mf/deps file-id) + (fn [_] + (let [value (str/trim (-> input-ref mf/ref-val dom/get-value))] + (when (not= value "") + (st/emit! (dw/rename-file file-id value))) + (reset! editing* false)))) + + handle-name-keydown + (mf/use-fn + (mf/deps handle-blur) + (fn [event] + (when (kbd/enter? event) + (handle-blur event)))) + + start-editing-name + (mf/use-fn + (fn [event] + (dom/prevent-default event) + (reset! editing* true))) + + close-modals + (mf/use-fn + #(st/emit! (dc/stop-picker) + (modal/hide))) + + go-back + (mf/use-fn + (mf/deps project) + (fn [] + (close-modals) + (st/emit! (dw/go-to-dashboard project)))) + + nav-to-project + (mf/use-fn + (mf/deps team-id project-id) + #(st/emit! (rt/nav-new-window* {:rname :dashboard-files + :path-params {:team-id team-id + :project-id project-id}})))] + + (mf/with-effect [editing?] + (when ^boolean editing? + (dom/select-text! (mf/ref-val input-ref)))) + [:header {:class (stl/css :workspace-header-left)} + [:a {:on-click go-back + :class (stl/css :main-icon)} i/logo-icon] + [:div {:alt (tr "workspace.sitemap") + :class (stl/css :project-tree)} + [:div + {:class (stl/css :project-name) + :on-click nav-to-project} + (:name project)] + + (if ^boolean editing? + [:input + {:class (stl/css :file-name-input) + :type "text" + :ref input-ref + :on-blur handle-blur + :on-key-down handle-name-keydown + :auto-focus true + :default-value (:name file "")}] + [:div + {:class (stl/css :file-name) + :title file-name + :on-double-click start-editing-name} + file-name]) + (when ^boolean shared? + [:div {:class (stl/css :shared-badge)} i/library-refactor])] + [:div {:class (stl/css :menu-section)} + [:& menu {:layout layout + :file file + :read-only? read-only? + :team-id team-id + :page-id page-id}]]])) + diff --git a/frontend/src/app/main/ui/workspace/left_header.css.json b/frontend/src/app/main/ui/workspace/left_header.css.json new file mode 100644 index 000000000..4b755e617 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/left_header.css.json @@ -0,0 +1 @@ +{"button-primary":"workspace_left_header_button-primary_lyfQC","button-secondary":"workspace_left_header_button-secondary_MfwN-","button-tertiary":"workspace_left_header_button-tertiary_fJlY9","workspace-header-left":"workspace_left_header_workspace-header-left_HdnMy","menu-btn":"workspace_left_header_menu-btn_fdwlZ","button-tag":"workspace_left_header_button-tag_H77gD","button-icon":"workspace_left_header_button-icon_DD7ag","menu":"workspace_left_header_menu_yxGIs","menu-item":"workspace_left_header_menu-item_1wh4b","open-arrow":"workspace_left_header_open-arrow_bcWEe","sub-menu":"workspace_left_header_sub-menu_MMoV5","submenu-item":"workspace_left_header_submenu-item_ZKiY7","button-icon-small":"workspace_left_header_button-icon-small_gYHAj","asset-element":"workspace_left_header_asset-element_iYXcu","new-scrollbar":"workspace_left_header_new-scrollbar_dOPeK","menu-dropdown":"workspace_left_header_menu-dropdown_3LtHG","shortcut":"workspace_left_header_shortcut_7lGBb","shortcut-key":"workspace_left_header_shortcut-key_31FAP","user-icon":"workspace_left_header_user-icon_ektpZ","main-icon":"workspace_left_header_main-icon_qnAm2","project-tree":"workspace_left_header_project-tree_WoAdo","project-name":"workspace_left_header_project-name_petDL","file-name":"workspace_left_header_file-name_QiMm1","file-name-input":"workspace_left_header_file-name-input_yjzqX","shared-badge":"workspace_left_header_shared-badge_N-vOg","separator":"workspace_left_header_separator_TyuDr","file":"workspace_left_header_file_2A0Xu","edit":"workspace_left_header_edit_XN7-M","view":"workspace_left_header_view_IsL62","preferences":"workspace_left_header_preferences_R20sp","help-info":"workspace_left_header_help-info_NVGJQ","spin-animation":"workspace_left_header_spin-animation_buAeE"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/left_header.scss b/frontend/src/app/main/ui/workspace/left_header.scss new file mode 100644 index 000000000..cd06e8c7b --- /dev/null +++ b/frontend/src/app/main/ui/workspace/left_header.scss @@ -0,0 +1,172 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@import "refactor/common-refactor.scss"; + +.workspace-header-left { + display: flex; + align-items: center; + height: $s-48; + max-width: var(--width, $s-256); + padding: $s-8 $s-8 $s-4 $s-8; + .main-icon { + @include flexCenter; + width: $s-32; + height: $s-32; + margin-right: $s-4; + svg { + height: $s-32; + fill: var(--icon-foreground-hover); + } + } + .project-tree { + flex-grow: 1; + max-width: calc(100% - $s-64); + position: relative; + .project-name, + .file-name { + @include tabTitleTipography; + @include textEllipsis; + height: $s-16; + width: 100%; + padding-bottom: $s-2; + color: var(--title-foreground-color); + cursor: pointer; + } + .file-name { + @include titleTipography; + text-transform: none; + color: var(--title-foreground-color-hover); + } + .file-name-input { + @include flexCenter; + height: 100%; + width: 100%; + margin: 0; + border: 0; + border-radius: $br-8; + background-color: var(--input-background-color); + font-size: $fs-12; + color: var(--input-foreground-color); + z-index: 20; + white-space: break-spaces; + &:focus { + outline: none; + } + } + } + .shared-badge { + @include flexCenter; + width: $s-32; + height: $s-32; + svg { + height: $s-28; + width: $s-28; + } + } + + .menu-btn { + @extend .button-tertiary; + height: $s-32; + width: calc($s-24 + $s-4); + padding: 0; + border-radius: $br-8; + svg { + @extend .button-icon; + } + } + .menu { + @extend .menu-dropdown; + position: absolute; + top: $s-48; + left: calc(var(--width, $s-256) - $s-32); + margin: 0; + + .menu-item { + @extend .menu-item; + cursor: pointer; + } + .separator { + height: $s-12; + } + .shortcut { + @extend .shortcut; + } + .shortcut-key { + @extend .shortcut-key; + } + .menu-item { + @extend .menu-item; + .open-arrow { + @include flexCenter; + svg { + @extend .button-icon; + } + } + &:hover { + color: var(--menu-foreground-color-hover); + .open-arrow { + svg { + stroke: var(--menu-foreground-color-hover); + } + } + .shortcut-key { + color: var(--menu-shortcut-foreground-color-hover); + } + } + } + } + .sub-menu { + @extend .menu-dropdown; + position: absolute; + left: calc(var(--width, $s-256) + $s-168); + width: 270px; + .shortcut { + @extend .shortcut; + } + + .shortcut-key { + @extend .shortcut-key; + } + .submenu-item { + @extend .menu-item; + &:hover { + color: var(--menu-foreground-color-hover); + .shortcut-key { + color: var(--menu-shortcut-foreground-color-hover); + } + } + } + + .shortcut { + @extend .shortcut; + } + + .shortcut-key { + @extend .shortcut-key; + } + + &.file { + top: $s-48; + } + + &.edit { + top: $s-76; + } + + &.view { + top: $s-116; + } + + &.preferences { + top: $s-148; + } + + &.help-info { + top: $s-196; + } + } +} diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index dbb3acab8..678a4760d 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -31,7 +31,7 @@ file-id (mf/use-ctx ctx/current-file-id) on-click - (mf/use-fn + (mf/use-fn (fn [] (st/emit! :interrupt dw/clear-edition-mode) (dom/click (mf/ref-val ref)))) @@ -142,18 +142,18 @@ (swap! hide-toolbar* not)))] (if new-css-system - [:aside {:class (dom/classnames (css :main-toolbar) true - (css :hidden-toolbar) hide-toolbar?)} - [:ul {:class (css :main-toolbar-options)} - [:li - [:button - {:title (tr "workspace.toolbar.move" (sc/get-tooltip :move)) - :aria-label (tr "workspace.toolbar.move" (sc/get-tooltip :move)) - :class (when (and (nil? selected-drawtool) - (not edition)) "selected") - :on-click interrupt} - i/move-refactor]] - (when-not ^boolean read-only? + (when-not ^boolean read-only? + [:aside {:class (dom/classnames (css :main-toolbar) true + (css :hidden-toolbar) hide-toolbar?)} + [:ul {:class (css :main-toolbar-options)} + [:li + [:button + {:title (tr "workspace.toolbar.move" (sc/get-tooltip :move)) + :aria-label (tr "workspace.toolbar.move" (sc/get-tooltip :move)) + :class (when (and (nil? selected-drawtool) + (not edition)) "selected") + :on-click interrupt} + i/move-refactor]] [:* [:li [:button @@ -210,36 +210,27 @@ :on-click select-drawtool :data-tool "path" :data-test "path-btn"} - i/pentool-refactor]]]) + i/pentool-refactor]]]] + [:button {:class (dom/classnames (css :toolbar-handler) true) + :on-click toggle-toolbar} + [:div {:class (dom/classnames (css :toolbar-handler-btn) true)}]] - ;; [:li - ;; [:button - ;; {:title (tr "workspace.toolbar.comments" (sc/get-tooltip :add-comment)) - ;; :aria-label (tr "workspace.toolbar.comments" (sc/get-tooltip :add-comment)) - ;; :class (when (= selected-drawtool :comments) "selected") - ;; :on-click select-drawtool - ;; :data-tool "comments"} - ;; i/comments-refactor]] - ] - [:button {:class (dom/classnames (css :toolbar-handler) true) - :on-click toggle-toolbar} - [:div {:class (dom/classnames (css :toolbar-handler-btn) true)}]] - - [:ul {:class (dom/classnames (css :main-toolbar-panels) true)} - [:li - [:button - {:title (tr "workspace.toolbar.shortcuts" (sc/get-tooltip :show-shortcuts)) - :aria-label (tr "workspace.toolbar.shortcuts" (sc/get-tooltip :show-shortcuts)) - :class (when (contains? layout :shortcuts) "selected") - :on-click toggle-shortcuts} - i/shortcut] - - (when *assert* + [:ul {:class (dom/classnames (css :main-toolbar-panels) true)} + [:li [:button - {:title "Debugging tool" - :class (when (contains? layout :debug-panel) "selected") - :on-click toggle-debug-panel} - i/bug])]]] + {:title (tr "workspace.toolbar.shortcuts" (sc/get-tooltip :show-shortcuts)) + :aria-label (tr "workspace.toolbar.shortcuts" (sc/get-tooltip :show-shortcuts)) + :class (when (contains? layout :shortcuts) "selected") + :on-click toggle-shortcuts} + i/shortcut] + + (when *assert* + [:button + {:title "Debugging tool" + :class (when (contains? layout :debug-panel) "selected") + :on-click toggle-debug-panel} + i/bug])]]]) + [:aside.left-toolbar diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.css.json b/frontend/src/app/main/ui/workspace/left_toolbar.css.json index a632aa88e..63277a027 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.css.json +++ b/frontend/src/app/main/ui/workspace/left_toolbar.css.json @@ -1 +1 @@ -{"button-primary":"workspace_left_toolbar_button-primary_cOfI2","main-toolbar":"workspace_left_toolbar_main-toolbar_QN5ne","main-toolbar-options":"workspace_left_toolbar_main-toolbar-options_xqFsj","button-secondary":"workspace_left_toolbar_button-secondary_yztFQ","button-tertiary":"workspace_left_toolbar_button-tertiary_ATxjs","button-tag":"workspace_left_toolbar_button-tag_uOY3P","button-icon":"workspace_left_toolbar_button-icon_QXZDp","button-icon-small":"workspace_left_toolbar_button-icon-small_p617J","asset-element":"workspace_left_toolbar_asset-element_vwVhJ","new-scrollbar":"workspace_left_toolbar_new-scrollbar_CDU0n","toolbar-handler":"workspace_left_toolbar_toolbar-handler_VfijE","toolbar-handler-btn":"workspace_left_toolbar_toolbar-handler-btn_vV1IT","hidden-toolbar":"workspace_left_toolbar_hidden-toolbar_w7tu-","main-toolbar-panels":"workspace_left_toolbar_main-toolbar-panels_zT3qk"} \ No newline at end of file +{"button-primary":"workspace_left_toolbar_button-primary_cOfI2","main-toolbar":"workspace_left_toolbar_main-toolbar_QN5ne","main-toolbar-options":"workspace_left_toolbar_main-toolbar-options_xqFsj","button-secondary":"workspace_left_toolbar_button-secondary_yztFQ","button-tertiary":"workspace_left_toolbar_button-tertiary_ATxjs","button-tag":"workspace_left_toolbar_button-tag_uOY3P","button-icon":"workspace_left_toolbar_button-icon_QXZDp","button-icon-small":"workspace_left_toolbar_button-icon-small_p617J","asset-element":"workspace_left_toolbar_asset-element_vwVhJ","new-scrollbar":"workspace_left_toolbar_new-scrollbar_CDU0n","menu-dropdown":"workspace_left_toolbar_menu-dropdown_ui5fQ","menu-item":"workspace_left_toolbar_menu-item_chrVQ","shortcut":"workspace_left_toolbar_shortcut_9jPGH","shortcut-key":"workspace_left_toolbar_shortcut-key_MUfgG","user-icon":"workspace_left_toolbar_user-icon_C8ZY7","toolbar-handler":"workspace_left_toolbar_toolbar-handler_VfijE","toolbar-handler-btn":"workspace_left_toolbar_toolbar-handler-btn_vV1IT","hidden-toolbar":"workspace_left_toolbar_hidden-toolbar_w7tu-","main-toolbar-panels":"workspace_left_toolbar_main-toolbar-panels_zT3qk","spin-animation":"workspace_left_toolbar_spin-animation_8Q3nv"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.scss b/frontend/src/app/main/ui/workspace/left_toolbar.scss index 3f3b182d9..e478db05f 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.scss +++ b/frontend/src/app/main/ui/workspace/left_toolbar.scss @@ -16,9 +16,9 @@ height: $s-56; padding: $s-8 $s-16; border-radius: $s-8; - z-index: $z-index-20; + z-index: $z-index-2; background-color: var(--color-background-primary); - transition: top 1s ease; + transition: top 1s, height 1s, opacity 1s; .main-toolbar-options { position: relative; @@ -65,8 +65,10 @@ } } &.hidden-toolbar { - top: 0; + top: $s-20; + height: $s-16; z-index: $z-index-1; + border-radius: 0 0 $s-8 $s-8; .main-toolbar-options { opacity: $op-0; } diff --git a/frontend/src/app/main/ui/workspace/libraries.css.json b/frontend/src/app/main/ui/workspace/libraries.css.json index caa0e19e2..5dd76fdba 100644 --- a/frontend/src/app/main/ui/workspace/libraries.css.json +++ b/frontend/src/app/main/ui/workspace/libraries.css.json @@ -1 +1 @@ -{"button-primary":"workspace_libraries_button-primary_Hsioh","modal-overlay":"workspace_libraries_modal-overlay_qC-df","modal-dialog":"workspace_libraries_modal-dialog_Kj293","modal-content":"workspace_libraries_modal-content_4EVEQ","libraries-content":"workspace_libraries_libraries-content_ycQdm","section":"workspace_libraries_section_SUsgi","section-list":"workspace_libraries_section-list_lGSrM","section-list-item":"workspace_libraries_section-list-item_hwASN","item-publish":"workspace_libraries_item-publish_ZMopF","item-unpublish":"workspace_libraries_item-unpublish_1seca","item-update":"workspace_libraries_item-update_GklIE","section-list-shared":"workspace_libraries_section-list-shared_XZE10","updates-content":"workspace_libraries_updates-content_lqMoE","button-secondary":"workspace_libraries_button-secondary_l5M0x","item-button":"workspace_libraries_item-button_dKUeX","item-button-shared":"workspace_libraries_item-button-shared_hxOmT","button-tertiary":"workspace_libraries_button-tertiary_C54rH","close":"workspace_libraries_close_bED7B","button-tag":"workspace_libraries_button-tag_wAh-s","button-icon":"workspace_libraries_button-icon_kxS7q","item-button-icon":"workspace_libraries_item-button-icon_CeJWg","button-icon-small":"workspace_libraries_button-icon-small_Q9eo3","section-list-empty":"workspace_libraries_section-list-empty_mOKkJ","libraries-search":"workspace_libraries_libraries-search_JS70w","search-icon":"workspace_libraries_search-icon_y7N9S","asset-element":"workspace_libraries_asset-element_-FuJl","new-scrollbar":"workspace_libraries_new-scrollbar_9V-Nb","modal-title":"workspace_libraries_modal-title_Z1xKU","libraries-header":"workspace_libraries_libraries-header_-W6bJ","item-name":"workspace_libraries_item-name_Zjbsw","item-contents":"workspace_libraries_item-contents_EPTF6","section-title":"workspace_libraries_section-title_7rsm7","element-count":"workspace_libraries_element-count_07SV2"} \ No newline at end of file +{"button-primary":"workspace_libraries_button-primary_Hsioh","modal-overlay":"workspace_libraries_modal-overlay_qC-df","modal-dialog":"workspace_libraries_modal-dialog_Kj293","modal-content":"workspace_libraries_modal-content_4EVEQ","libraries-content":"workspace_libraries_libraries-content_ycQdm","section":"workspace_libraries_section_SUsgi","section-list":"workspace_libraries_section-list_lGSrM","section-list-item":"workspace_libraries_section-list-item_hwASN","item-publish":"workspace_libraries_item-publish_ZMopF","item-unpublish":"workspace_libraries_item-unpublish_1seca","item-update":"workspace_libraries_item-update_GklIE","section-list-shared":"workspace_libraries_section-list-shared_XZE10","updates-content":"workspace_libraries_updates-content_lqMoE","button-secondary":"workspace_libraries_button-secondary_l5M0x","item-button":"workspace_libraries_item-button_dKUeX","item-button-shared":"workspace_libraries_item-button-shared_hxOmT","button-tertiary":"workspace_libraries_button-tertiary_C54rH","close":"workspace_libraries_close_bED7B","button-tag":"workspace_libraries_button-tag_wAh-s","button-icon":"workspace_libraries_button-icon_kxS7q","item-button-icon":"workspace_libraries_item-button-icon_CeJWg","button-icon-small":"workspace_libraries_button-icon-small_Q9eo3","section-list-empty":"workspace_libraries_section-list-empty_mOKkJ","libraries-search":"workspace_libraries_libraries-search_JS70w","search-icon":"workspace_libraries_search-icon_y7N9S","asset-element":"workspace_libraries_asset-element_-FuJl","new-scrollbar":"workspace_libraries_new-scrollbar_9V-Nb","menu-dropdown":"workspace_libraries_menu-dropdown_frrTQ","menu-item":"workspace_libraries_menu-item_1PSqe","shortcut":"workspace_libraries_shortcut_ZBbd3","shortcut-key":"workspace_libraries_shortcut-key_qBs5D","user-icon":"workspace_libraries_user-icon_IjCsd","modal-title":"workspace_libraries_modal-title_Z1xKU","libraries-header":"workspace_libraries_libraries-header_-W6bJ","item-name":"workspace_libraries_item-name_Zjbsw","item-contents":"workspace_libraries_item-contents_EPTF6","section-title":"workspace_libraries_section-title_7rsm7","element-count":"workspace_libraries_element-count_07SV2","spin-animation":"workspace_libraries_spin-animation_mW-An"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/palette.cljs b/frontend/src/app/main/ui/workspace/palette.cljs index 595b0587e..91d81277e 100644 --- a/frontend/src/app/main/ui/workspace/palette.cljs +++ b/frontend/src/app/main/ui/workspace/palette.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.palette (:require-macros [app.main.style :refer [css]]) (:require + [app.common.data :as d] [app.common.data.macros :as dm] [app.main.data.events :as ev] [app.main.data.workspace :as dw] @@ -33,6 +34,18 @@ (def viewport (l/derived :vport refs/workspace-local)) +(defn calculate-palette-padding [] + (let [left-sidebar (dom/get-element "left-sidebar-aside") + left-sidebar-size (d/parse-integer (dom/get-data left-sidebar "size")) + rulers? (:rules (mf/deref refs/workspace-layout)) + rulers-width (if rulers? 26 4) + min-left-sidebar-width 27 + calculate-padding-left (+ rulers-width (or left-sidebar-size + min-left-sidebar-width))] + + #js {"paddingLeft" (dm/str calculate-padding-left "px") + "paddingRight" "280px"})) + (mf/defc palette [{:keys [layout]}] (let [color-palette? (:colorpalette layout) @@ -99,78 +112,81 @@ width (obj/get dom "clientWidth")] (swap! state assoc :width width))) - [:div {:ref parent-ref - :class (dom/classnames (css :palettes) true - size-classname true - (css :wide) any-palette? - (css :hidden-bts) (:hide-palettes @state)) - :style #js {"--height" (dm/str size "px")}} - - [:div {:class (dom/classnames (css :resize-area) true) - :on-pointer-down on-pointer-down - :on-lost-pointer-capture on-lost-pointer-capture - :on-pointer-move on-pointer-move}] + [:div {:class (dom/classnames (css :palette-wrapper) true) + :style (calculate-palette-padding)} (when-not workspace-read-only? - [:ul {:class (dom/classnames (css :palette-btn-list) true - (css :hidden-bts) (:hide-palettes @state) - size-classname true)} - [:li {:class (dom/classnames (css :palette-item) true)} - [:button - {:title (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-colorpalette)) - :aria-label (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-colorpalette)) - :class (dom/classnames (css :palette-btn) true - (css :selected) color-palette?) - :on-click (fn [event] - (let [node (dom/get-current-target event)] - (r/set-resize-type! :top) - (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") - (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :textpalette) - (-> (dw/toggle-layout-flag :colorpalette) - (vary-meta assoc ::ev/origin "workspace-left-toolbar")))) + [:div {:ref parent-ref + :class (dom/classnames (css :palettes) true + size-classname true + (css :wide) any-palette? + (css :hidden-bts) (:hide-palettes @state)) + :style #js {"--height" (dm/str size "px")}} - (dom/blur! node)))} - i/drop-refactor]] - - [:li {:class (dom/classnames (css :palette-item) true)} - [:button - {:title (tr "workspace.toolbar.text-palette" (sc/get-tooltip :toggle-textpalette)) - :aria-label (tr "workspace.toolbar.text-palette" (sc/get-tooltip :toggle-textpalette)) - :class (dom/classnames (css :palette-btn) true - (css :selected) text-palette?) - :on-click (fn [event] - (let [node (dom/get-current-target event)] - (r/set-resize-type! :top) - (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") - (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :colorpalette) - (-> (dw/toggle-layout-flag :textpalette) - (vary-meta assoc ::ev/origin "workspace-left-toolbar")))) - (dom/blur! node)))} - i/text-palette-refactor]]]) + [:div {:class (dom/classnames (css :resize-area) true) + :on-pointer-down on-pointer-down + :on-lost-pointer-capture on-lost-pointer-capture + :on-pointer-move on-pointer-move}] + [:ul {:class (dom/classnames (css :palette-btn-list) true + (css :hidden-bts) (:hide-palettes @state) + size-classname true)} + [:li {:class (dom/classnames (css :palette-item) true)} + [:button + {:title (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-colorpalette)) + :aria-label (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-colorpalette)) + :class (dom/classnames (css :palette-btn) true + (css :selected) color-palette?) + :on-click (fn [event] + (let [node (dom/get-current-target event)] + (r/set-resize-type! :top) + (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") + (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :textpalette) + (-> (dw/toggle-layout-flag :colorpalette) + (vary-meta assoc ::ev/origin "workspace-left-toolbar")))) - (if any-palette? - [:* - [:button {:class (dom/classnames (css :palette-actions) true) - :on-click #(swap! state update :show-menu not)} - i/menu-refactor] - [:div {:class (dom/classnames (css :palette) true) - :ref container} - (when text-palette? - [:* - [:& text-palette-ctx-menu {:show-menu? (:show-menu @state) - :close-menu on-close-menu - :on-select-palette on-select-text-palette - :selected @selected-text}] - [:& text-palette {:size size - :selected @selected-text - :width vport-width}]]) - (when color-palette? - [:* [:& color-palette-ctx-menu {:show-menu? (:show-menu @state) - :close-menu on-close-menu - :on-select-palette on-select-palette - :selected @selected}] - [:& color-palette {:size size - :selected @selected - :width vport-width}]])]] - [:div {:class (dom/classnames (css :handler) true) - :on-click toggle-palettes} - [:div {:class (dom/classnames (css :handler-btn) true)}]])])) + (dom/blur! node)))} + i/drop-refactor]] + + [:li {:class (dom/classnames (css :palette-item) true)} + [:button + {:title (tr "workspace.toolbar.text-palette" (sc/get-tooltip :toggle-textpalette)) + :aria-label (tr "workspace.toolbar.text-palette" (sc/get-tooltip :toggle-textpalette)) + :class (dom/classnames (css :palette-btn) true + (css :selected) text-palette?) + :on-click (fn [event] + (let [node (dom/get-current-target event)] + (r/set-resize-type! :top) + (dom/add-class! (dom/get-element-by-class "color-palette") "fade-out-down") + (ts/schedule 300 #(st/emit! (dw/remove-layout-flag :colorpalette) + (-> (dw/toggle-layout-flag :textpalette) + (vary-meta assoc ::ev/origin "workspace-left-toolbar")))) + (dom/blur! node)))} + i/text-palette-refactor]]] + + + (if any-palette? + [:* + [:button {:class (dom/classnames (css :palette-actions) true) + :on-click #(swap! state update :show-menu not)} + i/menu-refactor] + [:div {:class (dom/classnames (css :palette) true) + :ref container} + (when text-palette? + [:* + [:& text-palette-ctx-menu {:show-menu? (:show-menu @state) + :close-menu on-close-menu + :on-select-palette on-select-text-palette + :selected @selected-text}] + [:& text-palette {:size size + :selected @selected-text + :width vport-width}]]) + (when color-palette? + [:* [:& color-palette-ctx-menu {:show-menu? (:show-menu @state) + :close-menu on-close-menu + :on-select-palette on-select-palette + :selected @selected}] + [:& color-palette {:size size + :selected @selected + :width vport-width}]])]] + [:div {:class (dom/classnames (css :handler) true) + :on-click toggle-palettes} + [:div {:class (dom/classnames (css :handler-btn) true)}]])])])) diff --git a/frontend/src/app/main/ui/workspace/palette.css.json b/frontend/src/app/main/ui/workspace/palette.css.json index aa5cd1e9d..14c0f0415 100644 --- a/frontend/src/app/main/ui/workspace/palette.css.json +++ b/frontend/src/app/main/ui/workspace/palette.css.json @@ -1 +1 @@ -{"button-primary":"workspace_palette_button-primary_zEUyD","button-secondary":"workspace_palette_button-secondary_ksr24","button-tertiary":"workspace_palette_button-tertiary_91YQK","palettes":"workspace_palette_palettes_JHGUw","palette-actions":"workspace_palette_palette-actions_2GwR6","palette-btn-list":"workspace_palette_palette-btn-list_x7gPS","palette-item":"workspace_palette_palette-item_50uj6","palette-btn":"workspace_palette_palette-btn_kP66y","button-tag":"workspace_palette_button-tag_S9v-Z","button-icon":"workspace_palette_button-icon_pmEDv","button-icon-small":"workspace_palette_button-icon-small_vbLDq","asset-element":"workspace_palette_asset-element_4bXi3","new-scrollbar":"workspace_palette_new-scrollbar_3WWqd","wide":"workspace_palette_wide_3G4e1","mid-palette":"workspace_palette_mid-palette_rGR5I","small-palette":"workspace_palette_small-palette_18Otk","resize-area":"workspace_palette_resize-area_0LwVu","selected":"workspace_palette_selected_Z6BFo","palette":"workspace_palette_palette_eqp3q","handler":"workspace_palette_handler_4JV0J","handler-btn":"workspace_palette_handler-btn_7lnlF","hidden-bts":"workspace_palette_hidden-bts_mhbc0"} \ No newline at end of file +{"button-primary":"workspace_palette_button-primary_zEUyD","button-secondary":"workspace_palette_button-secondary_ksr24","button-tertiary":"workspace_palette_button-tertiary_91YQK","palettes":"workspace_palette_palettes_JHGUw","palette-actions":"workspace_palette_palette-actions_2GwR6","palette-btn-list":"workspace_palette_palette-btn-list_x7gPS","palette-item":"workspace_palette_palette-item_50uj6","palette-btn":"workspace_palette_palette-btn_kP66y","button-tag":"workspace_palette_button-tag_S9v-Z","button-icon":"workspace_palette_button-icon_pmEDv","button-icon-small":"workspace_palette_button-icon-small_vbLDq","asset-element":"workspace_palette_asset-element_4bXi3","new-scrollbar":"workspace_palette_new-scrollbar_3WWqd","menu-dropdown":"workspace_palette_menu-dropdown_2S40O","menu-item":"workspace_palette_menu-item_qSC6U","shortcut":"workspace_palette_shortcut_mZ4Tp","shortcut-key":"workspace_palette_shortcut-key_EeW-I","user-icon":"workspace_palette_user-icon_8VKTf","palette-wrapper":"workspace_palette_palette-wrapper_ciUIx","wide":"workspace_palette_wide_3G4e1","mid-palette":"workspace_palette_mid-palette_rGR5I","small-palette":"workspace_palette_small-palette_18Otk","resize-area":"workspace_palette_resize-area_0LwVu","selected":"workspace_palette_selected_Z6BFo","palette":"workspace_palette_palette_eqp3q","handler":"workspace_palette_handler_4JV0J","handler-btn":"workspace_palette_handler-btn_7lnlF","hidden-bts":"workspace_palette_hidden-bts_mhbc0","spin-animation":"workspace_palette_spin-animation_ezmwC"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/palette.scss b/frontend/src/app/main/ui/workspace/palette.scss index e2d1d2ea4..692b9689f 100644 --- a/frontend/src/app/main/ui/workspace/palette.scss +++ b/frontend/src/app/main/ui/workspace/palette.scss @@ -6,7 +6,15 @@ @import "refactor/common-refactor.scss"; +.palette-wrapper { + position: absolute; + width: 100vw; + left: 0; + bottom: 0; + padding-bottom: $s-4; +} .palettes { + z-index: $z-index-2; position: relative; right: 0; grid-area: color-palette; @@ -22,7 +30,7 @@ padding: $s-0 $s-0 $s-8 $s-8; border-radius: $br-8; background-color: var(--palette-background-color); - transition: right 1s ease, opacity 1s ease; + transition: right 1s, opacity 1s, width 1s; &.wide { width: 100%; } @@ -33,7 +41,7 @@ .resize-area { grid-area: resize; height: $s-8; - z-index: $z-index-4; + z-index: $z-index-3; width: calc(100% - $s-8); border-radius: $br-circle; cursor: ns-resize; @@ -46,7 +54,7 @@ width: $s-32; margin: $s-0; list-style: none; - z-index: $z-index-1; + z-index: $z-index-2; &.mid-palette, &.small-palette { display: flex; @@ -90,7 +98,7 @@ margin-left: $s-4; border-radius: $br-8; background-color: var(--palette-background-color); - z-index: $z-index-1; + z-index: $z-index-2; svg { @extend .button-icon; } @@ -104,7 +112,6 @@ @include flexCenter; width: $s-12; height: 100%; - .handler-btn { width: $s-4; height: 100%; @@ -116,18 +123,40 @@ } } &.hidden-bts { - right: $s-40; - z-index: 0; + right: 10px; + z-index: 1; + width: 22px; + grid-template-columns: $s-8 auto 1fr; + padding: 0; &.small-palette, &.mid-palette { - right: $s-72; + right: 10px; } .palette-btn-list { + opacity: $op-0; + visibility: hidden; + width: 0; .palette-item { opacity: $op-0; visibility: hidden; z-index: 0; } } + .resize-area { + visibility: hidden; + z-index: 0; + width: 0; + } + .palette-actions { + visibility: hidden; + z-index: 0; + } + .palette { + visibility: hidden; + z-index: 0; + } + .handler { + padding-bottom: $s-8; + } } } diff --git a/frontend/src/app/main/ui/workspace/presence.cljs b/frontend/src/app/main/ui/workspace/presence.cljs index 16225650f..a4c9f4c1e 100644 --- a/frontend/src/app/main/ui/workspace/presence.cljs +++ b/frontend/src/app/main/ui/workspace/presence.cljs @@ -5,17 +5,24 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.presence + (:require-macros [app.main.style :as stl]) (:require + [app.common.data :as d] [app.config :as cfg] [app.main.refs :as refs] + [app.main.ui.context :as ctx] + [app.util.dom :as dom] + [app.util.timers :as tm] [rumext.v2 :as mf])) ;; --- SESSION WIDGET (mf/defc session-widget - [{:keys [session profile] :as props}] + [{:keys [session profile index] :as props}] [:li.tooltip.tooltip-bottom - {:alt (:fullname profile)} + {:class (stl/css :session-icon) + :style #js {"zIndex" (str (or (+ 1 (* -1 index)) 0))} + :alt (:fullname profile)} [:img {:alt (:fullname profile) :style {:border-color (:color session)} :src (cfg/resolve-profile-photo-url profile)}]]) @@ -23,13 +30,57 @@ (mf/defc active-sessions {::mf/wrap [mf/memo]} [] - (let [users (mf/deref refs/users) - presence (mf/deref refs/workspace-presence)] - [:ul.active-users - (for [session (vals presence)] - [:& session-widget - {:session session - :profile (get users (:profile-id session)) - :key (:id session)}])])) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + users (mf/deref refs/users) + presence (mf/deref refs/workspace-presence) + user-ids (vals presence) + num-users (count user-ids) + first-users (take 2 user-ids) + open* (mf/use-state false) + open? (deref open*) + open-users-widget + (mf/use-fn + (fn [] + (reset! open* true) + (tm/schedule-on-idle + #(dom/focus! (dom/get-element "users-close"))))) + close-users-widget (mf/use-fn #(reset! open* false))] + + (if new-css-system + [:* + (when (and (< 2 num-users) open?) + [:button + {:id "users-close" + :class (stl/css :active-users-opened) + :on-click close-users-widget + :on-blur close-users-widget} + [:ul {:class (stl/css :active-users-list)} + (when (< 2 num-users) + [:span {:class (stl/css :users-num)} num-users]) + (for [session user-ids] + [:& session-widget + {:session session + :index 0 + :profile (get users (:profile-id session)) + :key (:id session)}])]]) + + [:button {:class (stl/css-case :active-users true) + :on-click open-users-widget} + + [:ul {:class (stl/css :active-users-list)} + (when (< 2 num-users) [:span {:class (stl/css :users-num)} num-users]) + (for [[index session] (d/enumerate first-users)] + [:& session-widget + {:session session + :index index + :profile (get users (:profile-id session)) + :key (:id session)}])]]] + + [:ul.active-users + (for [session (vals presence)] + [:& session-widget + {:session session + :profile (get users (:profile-id session)) + :key (:id session)}])]))) diff --git a/frontend/src/app/main/ui/workspace/presence.css.json b/frontend/src/app/main/ui/workspace/presence.css.json new file mode 100644 index 000000000..0e953c3b6 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/presence.css.json @@ -0,0 +1 @@ +{"button-primary":"workspace_presence_button-primary_As6Ix","button-secondary":"workspace_presence_button-secondary_wChpa","button-tertiary":"workspace_presence_button-tertiary_XLZQY","button-tag":"workspace_presence_button-tag_Hp7-u","button-icon":"workspace_presence_button-icon_wQdM5","button-icon-small":"workspace_presence_button-icon-small_cxrR5","asset-element":"workspace_presence_asset-element_ALwzT","new-scrollbar":"workspace_presence_new-scrollbar_u3DSM","menu-dropdown":"workspace_presence_menu-dropdown_pc2zP","menu-item":"workspace_presence_menu-item_QIKwl","shortcut":"workspace_presence_shortcut_nbmw6","shortcut-key":"workspace_presence_shortcut-key_w0Pys","user-icon":"workspace_presence_user-icon_hDghc","active-users":"workspace_presence_active-users_wkbu6","active-users-list":"workspace_presence_active-users-list_VzK-2","session-icon":"workspace_presence_session-icon_lzaZ6","active-users-opened":"workspace_presence_active-users-opened_EWyvR","users-num":"workspace_presence_users-num_2zRDj","spin-animation":"workspace_presence_spin-animation_g1IPu"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/presence.scss b/frontend/src/app/main/ui/workspace/presence.scss new file mode 100644 index 000000000..9dee5f8b9 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/presence.scss @@ -0,0 +1,56 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@import "refactor/common-refactor.scss"; + +.active-users, +.active-users-opened { + @include buttonStyle; + display: flex; + flex-direction: row-reverse; + justify-content: flex-end; + align-items: center; + margin: 0 0 0 $s-4; + padding: $s-4; + border-radius: $br-8; + .active-users-list { + display: flex; + flex-direction: row-reverse; + justify-content: flex-end; + margin: 0; + + .users-num { + @extend .user-icon; + height: $s-28; + width: $s-28; + background-color: var(--user-count-background-color); + color: var(--user-count-foreground-color); + margin-left: calc(-1 * $s-4); + z-index: $z-index-2; + margin-top: calc(-1 * $s-1); + } + .session-icon { + @extend .user-icon; + margin-left: calc(-1 * $s-4); + } + } +} +.active-users-opened { + position: absolute; + right: calc(-1 * $s-4); + top: calc(-1 * $s-4); + padding: $s-8; + margin: calc(-1 * $s-2) calc(-1 * $s-4) 0 0; + background-color: var(--menu-background-color); + z-index: $z-index-3; + .active-users-list { + gap: $s-4; + .users-num, + .session-icon { + margin-left: 0; + } + } +} diff --git a/frontend/src/app/main/ui/workspace/right_header.cljs b/frontend/src/app/main/ui/workspace/right_header.cljs new file mode 100644 index 000000000..3028ef6e6 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/right_header.cljs @@ -0,0 +1,232 @@ +;; This Source Code Form is subject to the terms of the Mozilla Public +;; License, v. 2.0. If a copy of the MPL was not distributed with this +;; file, You can obtain one at http://mozilla.org/MPL/2.0/. +;; +;; Copyright (c) KALEIDOS INC + +(ns app.main.ui.workspace.right-header + (:require-macros [app.main.style :as stl]) + (:require + [app.main.data.events :as ev] + [app.main.data.shortcuts :as scd] + [app.main.data.workspace :as dw] + [app.main.data.workspace.shortcuts :as sc] + [app.main.refs :as refs] + [app.main.store :as st] + [app.main.ui.components.dropdown :refer [dropdown]] + [app.main.ui.context :as ctx] + [app.main.ui.export :refer [export-progress-widget]] + [app.main.ui.formats :as fmt] + [app.main.ui.icons :as i] + [app.main.ui.workspace.presence :refer [active-sessions]] + [app.util.dom :as dom] + [app.util.i18n :as i18n :refer [tr]] + [app.util.timers :as ts] + [okulary.core :as l] + [rumext.v2 :as mf])) + +(def ref:workspace-persistence + (l/derived :workspace-persistence st/state)) + +;; --- Persistence state Widget + +(mf/defc persistence-state-widget + {::mf/wrap [mf/memo]} + [] + (let [{:keys [status]} (mf/deref ref:workspace-persistence)] + [:div {:class (stl/css :persistence-status-widget)} + (case status + :pending + [:div {:class (stl/css-case :status-icon true + :pending-status true) + :title (tr "workspace.header.unsaved")} + i/status-alert-refactor] + + :saving + [:div {:class (stl/css-case :status-icon true + :saving-status true) + :title (tr "workspace.header.saving")} + i/status-update-refactor] + + :saved + [:div {:class (stl/css-case :status-icon true + :saved-status true) + :title (tr "workspace.header.saved")} + i/status-tick-refactor] + + :error + [:div {:class (stl/css-case :status-icon true + :error-status true) + :title "There was an error saving the data. Please refresh if this persists."} + i/status-wrong-refactor] + + nil)])) + +;; --- Zoom Widget + +(mf/defc zoom-widget-workspace + {::mf/wrap [mf/memo] + ::mf/wrap-props false} + [{:keys [zoom on-increase on-decrease on-zoom-reset on-zoom-fit on-zoom-selected]}] + (let [open* (mf/use-state false) + open? (deref open*) + + open-dropdown + (mf/use-fn #(reset! open* true)) + + close-dropdown + (mf/use-fn #(reset! open* false)) + + on-increase + (mf/use-fn + (mf/deps on-increase) + (fn [event] + (dom/stop-propagation event) + (on-increase))) + + on-decrease + (mf/use-fn + (mf/deps on-decrease) + (fn [event] + (dom/stop-propagation event) + (on-decrease))) + + zoom (fmt/format-percent zoom {:precision 0})] + + [:* + [:div {:on-click open-dropdown + :class (stl/css-case :zoom-widget true + :selected open?) + :title (tr "workspace.header.zoom")} + [:span {:class (stl/css :label)} zoom] + [:span {:class (stl/css :icon)} i/arrow-refactor]] + [:& dropdown {:show open? :on-close close-dropdown} + [:ul {:class (stl/css :dropdown)} + [:li {:class (stl/css :basic-zoom-bar)} + [:span {:class (stl/css :zoom-btns)} + [:button {:class (stl/css :zoom-btn) + :on-click on-decrease} + [:span {:class (stl/css :zoom-icon)} + i/remove-refactor]] + [:p {:class (stl/css :zoom-text)} zoom] + [:button {:class (stl/css :zoom-btn) + :on-click on-increase} + [:span {:class (stl/css :zoom-icon)} + i/add-refactor]]] + + [:button {:class (stl/css :reset-btn) + :on-click on-zoom-reset} + (tr "workspace.header.reset-zoom")]] + [:li {:class (stl/css :zoom-option) + :on-click on-zoom-fit} + (tr "workspace.header.zoom-fit-all") + [:span {:class (stl/css :shortcuts)} + (for [sc (scd/split-sc (sc/get-tooltip :fit-all))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]] + [:li {:class (stl/css :zoom-option) + :on-click on-zoom-selected} + (tr "workspace.header.zoom-selected") + [:span {:class (stl/css :shortcuts)} + (for [sc (scd/split-sc (sc/get-tooltip :zoom-selected))] + [:span {:class (dom/classnames (stl/css :shortcut-key) true)} sc])]]]]])) + +;; --- Header Component + +(mf/defc right-header + {::mf/wrap-props false} + [{:keys [file layout page-id]}] + (let [file-id (:id file) + + zoom (mf/deref refs/selected-zoom) + read-only? (mf/use-ctx ctx/workspace-read-only?) + selected-drawtool (mf/deref refs/selected-drawing-tool) + + on-increase (mf/use-fn #(st/emit! (dw/increase-zoom nil))) + on-decrease (mf/use-fn #(st/emit! (dw/decrease-zoom nil))) + on-zoom-reset (mf/use-fn #(st/emit! dw/reset-zoom)) + on-zoom-fit (mf/use-fn #(st/emit! dw/zoom-to-fit-all)) + on-zoom-selected (mf/use-fn #(st/emit! dw/zoom-to-selected-shape)) + + editing* (mf/use-state false) + editing? (deref editing*) + + input-ref (mf/use-ref nil) + + nav-to-viewer + (mf/use-fn + (mf/deps file-id page-id) + (fn [] + (let [params {:page-id page-id + :file-id file-id + :section "interactions"}] + (st/emit! (dw/go-to-viewer params))))) + + active-comments + (mf/use-fn + (fn [] + (st/emit! :interrupt + dw/clear-edition-mode) + ;; Delay so anything that launched :interrupt can finish + (ts/schedule 100 #(st/emit! (dw/select-for-drawing :comments))))) + + toggle-comments + (mf/use-fn + (mf/deps selected-drawtool) + (fn [_] + (if (= :comments selected-drawtool) + (st/emit! :interrupt) + (active-comments)))) + + toggle-history + (mf/use-fn + (mf/deps selected-drawtool) + (fn [] + (when (= :comments selected-drawtool) + (st/emit! :interrupt)) + + (st/emit! (-> (dw/toggle-layout-flag :document-history) + (vary-meta assoc ::ev/origin "workspace-header")))))] + + (mf/with-effect [editing?] + (when ^boolean editing? + (dom/select-text! (mf/ref-val input-ref)))) + + [:div {:class (stl/css :workspace-header-right)} + [:div {:class (stl/css :users-section)} + [:& active-sessions]] + + [:div {:class (stl/css :zoom-section)} + [:& zoom-widget-workspace + {:zoom zoom + :on-increase on-increase + :on-decrease on-decrease + :on-zoom-reset on-zoom-reset + :on-zoom-fit on-zoom-fit + :on-zoom-selected on-zoom-selected}]] + + [:& persistence-state-widget] + [:& export-progress-widget] + + [:div {:class (stl/css :comments-section)} + [:button {:title (tr "workspace.toolbar.comments" (sc/get-tooltip :add-comment)) + :aria-label (tr "workspace.toolbar.comments" (sc/get-tooltip :add-comment)) + :class (stl/css-case :comments-btn true + :selected (= selected-drawtool :comments)) + :on-click toggle-comments + :data-tool "comments"} + i/comments-refactor]] + + (when-not ^boolean read-only? + [:div {:class (stl/css :history-section)} + [:button + {:title (tr "workspace.sidebar.history" (sc/get-tooltip :toggle-history)) + :aria-label (tr "workspace.sidebar.history" (sc/get-tooltip :toggle-history)) + :class (stl/css-case :selected (contains? layout :document-history) + :history-button true) + :on-click toggle-history} + i/history-refactor]]) + [:a {:class (stl/css :viewer-btn) + :title (tr "workspace.header.viewer" (sc/get-tooltip :open-viewer)) + :on-click nav-to-viewer} + i/play-refactor]])) + diff --git a/frontend/src/app/main/ui/workspace/right_header.css.json b/frontend/src/app/main/ui/workspace/right_header.css.json new file mode 100644 index 000000000..8aa4999e3 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/right_header.css.json @@ -0,0 +1 @@ +{"button-primary":"workspace_right_header_button-primary_85-jx","button-secondary":"workspace_right_header_button-secondary_3-qmf","button-tertiary":"workspace_right_header_button-tertiary_fRTli","workspace-header-right":"workspace_right_header_workspace-header-right_aEp3-","viewer-btn":"workspace_right_header_viewer-btn_NXJbl","history-section":"workspace_right_header_history-section_-2kJh","history-button":"workspace_right_header_history-button_UqeiD","comments-section":"workspace_right_header_comments-section_jUB3P","comments-btn":"workspace_right_header_comments-btn_1Caqy","zoom-section":"workspace_right_header_zoom-section_8qteN","dropdown":"workspace_right_header_dropdown_5j2hb","basic-zoom-bar":"workspace_right_header_basic-zoom-bar_3NdtC","reset-btn":"workspace_right_header_reset-btn_mvSYS","zoom-btns":"workspace_right_header_zoom-btns_XP7R1","zoom-btn":"workspace_right_header_zoom-btn_RDxOf","button-tag":"workspace_right_header_button-tag_k9kn3","button-icon":"workspace_right_header_button-icon_ONOzL","persistence-status-widget":"workspace_right_header_persistence-status-widget_wcska","status-icon":"workspace_right_header_status-icon_D6pD5","zoom-icon":"workspace_right_header_zoom-icon_hzk3v","zoom-widget":"workspace_right_header_zoom-widget_zFiLv","icon":"workspace_right_header_icon_4xmYx","button-icon-small":"workspace_right_header_button-icon-small_9J3iP","asset-element":"workspace_right_header_asset-element_i-xUp","new-scrollbar":"workspace_right_header_new-scrollbar_i-KWQ","menu-dropdown":"workspace_right_header_menu-dropdown_0AKsJ","menu-item":"workspace_right_header_menu-item_ZJVN4","zoom-option":"workspace_right_header_zoom-option_fpEoB","shortcut":"workspace_right_header_shortcut_y3tfM","shortcuts":"workspace_right_header_shortcuts_HBkyp","shortcut-key":"workspace_right_header_shortcut-key_fg92X","user-icon":"workspace_right_header_user-icon_kP9lj","users-section":"workspace_right_header_users-section_kq2VA","label":"workspace_right_header_label_gBAC0","selected":"workspace_right_header_selected_ChwQW","zoom-text":"workspace_right_header_zoom-text_-xaiw","pending-status":"workspace_right_header_pending-status_GAQfv","saving-status":"workspace_right_header_saving-status_pUkV7","spin-animation":"workspace_right_header_spin-animation_XH76b","saved-status":"workspace_right_header_saved-status_kWULe","error-status":"workspace_right_header_error-status_Gchf-"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/right_header.scss b/frontend/src/app/main/ui/workspace/right_header.scss new file mode 100644 index 000000000..ee3f2d01a --- /dev/null +++ b/frontend/src/app/main/ui/workspace/right_header.scss @@ -0,0 +1,216 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// Copyright (c) KALEIDOS INC + +@import "refactor/common-refactor.scss"; +.workspace-header-right { + display: flex; + justify-content: space-between; + align-items: center; + min-width: $s-256; + padding: $s-8; + gap: $s-2; + background-color: var(--panel-background-color); + .users-section { + position: relative; + min-width: $s-32; + } + .zoom-section { + .zoom-widget { + @include buttonStyle; + display: flex; + align-items: center; + justify-content: flex-end; + height: $s-28; + width: $s-72; + max-width: $s-72; + padding: $s-4; + border-radius: $br-8; + .label { + @include titleTipography; + color: var(--menu-foreground-color); + } + .icon { + @include flexCenter; + svg { + @extend .button-icon; + stroke: var(--menu-foreground-color); + transform: rotate(90deg); + } + } + + &:hover { + background-color: var(--button-tertiary-background-color-hover); + .label { + color: var(--button-tertiary-foreground-color-hover); + } + .icon svg { + stroke: var(--button-tertiary-foreground-color-hover); + } + } + &.selected { + background-color: var(--button-tertiary-background-color-selected); + border: $s-2 solid var(--button-tertiary-border-color-selected); + .label { + color: var(--button-tertiary-foreground-color-selected); + } + .icon svg { + stroke: var(--button-tertiary-foreground-color-selected); + } + } + } + .dropdown { + @extend .menu-dropdown; + position: absolute; + right: 0; + top: $s-48; + width: $s-280; + .basic-zoom-bar { + display: flex; + justify-content: space-between; + padding: $s-6; + cursor: auto; + .zoom-btns { + display: flex; + .zoom-btn { + @extend .button-tertiary; + height: $s-28; + width: $s-28; + border-radius: $br-8; + .zoom-icon { + @include flexCenter; + svg { + @extend .button-icon; + } + } + &:hover { + .zoom-icon svg { + stroke: var(--button-tertiary-foreground-color-hover); + } + } + } + .zoom-text { + @include flexCenter; + height: 100%; + min-width: $s-68; + padding: 0 $s-8; + margin: 0; + color: var(--modal-foreground-color); + } + } + .reset-btn { + @extend .button-tertiary; + height: $s-28; + border-radius: $br-8; + } + } + .zoom-option { + @extend .menu-item; + .shortcuts { + @extend .shortcut; + .shortcut-key { + @extend .shortcut-key; + } + } + &:hover { + color: var(--menu-foreground-color-hover); + .shortcuts { + .shortcut-key { + color: var(--menu-foreground-color-hover); + } + } + } + } + } + } + .comments-section { + .comments-btn { + @extend .button-tertiary; + border-radius: $br-8; + margin: 0; + height: $s-28; + width: $s-28; + svg { + @extend .button-icon; + height: $s-16; + width: $s-16; + } + &.selected { + background-color: var(--button-tertiary-background-color-selected); + border: $s-2 solid var(--button-tertiary-border-color-selected); + svg { + stroke: var(--button-tertiary-foreground-color-selected); + } + } + } + } + .history-section { + .history-button { + @extend .button-tertiary; + border-radius: $br-8; + margin: 0; + height: $s-28; + width: $s-28; + svg { + @extend .button-icon; + height: $s-16; + width: $s-16; + } + &.selected { + background-color: var(--button-tertiary-background-color-selected); + border: $s-2 solid var(--button-tertiary-border-color-selected); + svg { + stroke: var(--button-tertiary-foreground-color-selected); + } + } + } + } + .persistence-status-widget { + @include flexCenter; + width: $s-28; + height: $s-28; + .status-icon { + @include flexCenter; + margin: 0; + width: $s-16; + height: $s-16; + border-radius: $br-circle; + svg { + @extend .button-icon; + height: $s-12; + width: $s-12; + stroke: var(--status-icon-foreground-color); + } + } + .pending-status { + background-color: var(--status-warning-background-color); + } + .saving-status { + background-color: var(--status-pending-background-color); + svg { + animation: spin-animation 1s infinite; + animation-timing-function: linear; + } + } + .saved-status { + background-color: var(--status-ok-background-color); + } + .error-status { + background-color: var(--status-error-background-color); + } + } + .viewer-btn { + @extend .button-tertiary; + border-radius: $br-8; + margin: 0; + width: $s-28; + height: $s-28; + svg { + @extend .button-icon; + height: $s-16; + width: $s-16; + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index f4ed014a7..51ddc1482 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -17,6 +17,8 @@ [app.main.ui.hooks.resize :refer [use-resize-hook]] [app.main.ui.icons :as i] [app.main.ui.workspace.comments :refer [comments-sidebar]] + [app.main.ui.workspace.left-header :refer [left-header]] + [app.main.ui.workspace.right-header :refer [right-header]] [app.main.ui.workspace.sidebar.assets :refer [assets-toolbox]] [app.main.ui.workspace.sidebar.debug :refer [debug-panel]] [app.main.ui.workspace.sidebar.history :refer [history-toolbox]] @@ -34,9 +36,10 @@ (mf/defc left-sidebar {::mf/wrap [mf/memo] ::mf/wrap-props false} - [{:keys [layout] :as props}] + [{:keys [layout file page-id] :as props}] (let [options-mode (mf/deref refs/options-mode-global) mode-inspect? (= options-mode :inspect) + project (mf/deref refs/workspace-project) section (cond (or mode-inspect? (contains? layout :layers)) :layers (contains? layout :assets) :assets) @@ -45,7 +48,7 @@ new-css-system (mf/use-ctx ctx/new-css-system) {:keys [on-pointer-down on-lost-pointer-capture on-pointer-move parent-ref size]} - (use-resize-hook :left-sidebar 255 255 500 :x false :left) + (use-resize-hook :left-sidebar 275 275 500 :x false :left) handle-collapse (mf/use-fn #(st/emit! (dw/toggle-layout-flag :collapse-left-sidebar))) @@ -54,6 +57,8 @@ (mf/use-fn #(st/emit! (dw/go-to-layout %)))] [:aside {:ref parent-ref + :id "left-sidebar-aside" + :data-size size :class (if ^boolean new-css-system (dom/classnames (css :left-settings-bar) true :two-row (<= size 300) @@ -65,6 +70,8 @@ :three-row (and (> size 300) (<= size 400)) :four-row (> size 400))) :style #js {"--width" (dm/str size "px")}} + (when new-css-system + [:& left-header {:file file :layout layout :project project :page-id page-id}]) [:div {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture @@ -128,8 +135,9 @@ (mf/defc right-sidebar {::mf/wrap-props false ::mf/wrap [mf/memo]} - [{:keys [layout section] :as props}] + [{:keys [layout section file page-id ] :as props}] (let [drawing-tool (:tool (mf/deref refs/workspace-drawing)) + new-css-system (mf/use-ctx ctx/new-css-system) is-comments? (= drawing-tool :comments) is-history? (contains? layout :document-history) @@ -139,7 +147,7 @@ ;;prev-expanded? (hooks/use-previous expanded?) current-section* (mf/use-state :info) - current-section (deref current-section*) + current-section (deref current-section*) can-be-expanded? (and (not is-comments?) (not is-history?) @@ -147,7 +155,7 @@ (= current-section :code)) {:keys [on-pointer-down on-lost-pointer-capture on-pointer-move set-size size]} - (use-resize-hook :code 256 256 768 :x true :right) + (use-resize-hook :code 276 276 768 :x true :right) handle-change-section (mf/use-callback @@ -158,7 +166,7 @@ (mf/use-callback (mf/deps size) (fn [] - (set-size (if (> size 256) 256 768)))) + (set-size (if (> size 276) 276 768)))) props (-> props @@ -166,14 +174,25 @@ (obj/set! "on-change-section" handle-change-section) (obj/set! "on-expand" handle-expand))] - [:aside.settings-bar.settings-bar-right - {:class (when (not can-be-expanded?) "not-expand") - :style #js {"--width" (when can-be-expanded? (dm/str size "px"))}} + [:aside {:class (if ^boolean new-css-system + (dom/classnames (css :settings-bar) true + (css :right-settings-bar) true + (css :not-expand) (not can-be-expanded?) + (css :expanded) (> size 276)) + (dom/classnames :settings-bar true + :settings-bar-right true + :not-expand (not can-be-expanded?))) + :id "right-sidebar-aside" + :data-size size + :style #js {"--width" (when can-be-expanded? (dm/str size "px"))}} (when can-be-expanded? [:div.resize-area {:on-pointer-down on-pointer-down :on-lost-pointer-capture on-lost-pointer-capture :on-pointer-move on-pointer-move}]) + (when new-css-system + [:& right-header {:file file :layout layout :page-id page-id}]) + [:div.settings-bar-inside (cond (true? is-comments?) diff --git a/frontend/src/app/main/ui/workspace/sidebar.css.json b/frontend/src/app/main/ui/workspace/sidebar.css.json index 27146ddc2..a7386bbc0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar.css.json @@ -1 +1 @@ -{"button-primary":"workspace_sidebar_button-primary_K7xW6","button-secondary":"workspace_sidebar_button-secondary_e2eQE","button-tertiary":"workspace_sidebar_button-tertiary_QKqHT","button-tag":"workspace_sidebar_button-tag_Xc0Sm","button-icon":"workspace_sidebar_button-icon_OXdmL","button-icon-small":"workspace_sidebar_button-icon-small_EYb9x","asset-element":"workspace_sidebar_asset-element_vzrfV","new-scrollbar":"workspace_sidebar_new-scrollbar_zGNNO","left-settings-bar":"workspace_sidebar_left-settings-bar_7co5t","resize-area":"workspace_sidebar_resize-area_ny1v0","settings-bar-inside":"workspace_sidebar_settings-bar-inside_YnFv8","tabs-wrapper":"workspace_sidebar_tabs-wrapper_YDo4o","layers-tab":"workspace_sidebar_layers-tab_soxRL"} \ No newline at end of file +{"button-primary":"workspace_sidebar_button-primary_K7xW6","button-secondary":"workspace_sidebar_button-secondary_e2eQE","button-tertiary":"workspace_sidebar_button-tertiary_QKqHT","button-tag":"workspace_sidebar_button-tag_Xc0Sm","button-icon":"workspace_sidebar_button-icon_OXdmL","button-icon-small":"workspace_sidebar_button-icon-small_EYb9x","asset-element":"workspace_sidebar_asset-element_vzrfV","new-scrollbar":"workspace_sidebar_new-scrollbar_zGNNO","menu-dropdown":"workspace_sidebar_menu-dropdown_yPcl7","menu-item":"workspace_sidebar_menu-item_eS58p","shortcut":"workspace_sidebar_shortcut_FO4pn","shortcut-key":"workspace_sidebar_shortcut-key_fS0-y","user-icon":"workspace_sidebar_user-icon_SzjFB","left-settings-bar":"workspace_sidebar_left-settings-bar_7co5t","resize-area":"workspace_sidebar_resize-area_ny1v0","settings-bar-inside":"workspace_sidebar_settings-bar-inside_YnFv8","tabs-wrapper":"workspace_sidebar_tabs-wrapper_YDo4o","layers-tab":"workspace_sidebar_layers-tab_soxRL","right-settings-bar":"workspace_sidebar_right-settings-bar_bGP1x","not-expand":"workspace_sidebar_not-expand_YltWC","expanded":"workspace_sidebar_expanded_SOYSs","spin-animation":"workspace_sidebar_spin-animation_CNSmq"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar.scss b/frontend/src/app/main/ui/workspace/sidebar.scss index c12f02ab6..9be412d6a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.scss +++ b/frontend/src/app/main/ui/workspace/sidebar.scss @@ -6,24 +6,22 @@ @import "refactor/common-refactor.scss"; -$width-settings-bar: 256px; -$width-settings-bar-min: 255px; -$width-settings-bar-max: 500px; +$width-settings-bar: $s-276; +$width-settings-bar-max: $s-500; .left-settings-bar { position: relative; grid-area: left-sidebar; min-width: $width-settings-bar; - max-width: 500px; + max-width: $width-settings-bar-max; width: var(--width, $width-settings-bar); height: 100%; - border-radius: $br-8; background-color: var(--panel-background-color); .resize-area { position: absolute; right: -8px; - z-index: $z-index-10; + z-index: $z-index-3; width: $s-8; height: 100%; cursor: ew-resize; @@ -32,7 +30,7 @@ $width-settings-bar-max: 500px; display: grid; grid-template-columns: 100%; grid-template-rows: 100%; - height: calc(100% - 2px); + height: calc(100% - 50px); .tabs-wrapper { .layers-tab { display: grid; @@ -47,3 +45,14 @@ $width-settings-bar-max: 500px; :global(.tab-spacing) { margin: $s-4 $s-4 0 $s-4; } +.right-settings-bar { + grid-area: right-sidebar; + width: $width-settings-bar; + + &.not-expand { + max-width: $width-settings-bar; + } + &.expanded { + width: var(--width, $width-settings-bar); + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets.css.json index 80cd459a5..7e2908b9a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_assets_button-primary_a9p4J","button-secondary":"sidebar_assets_button-secondary_hbgBA","assets-bar":"sidebar_assets_assets-bar_gzAPj","assets-header":"sidebar_assets_assets-header_aFHCj","search-wrapper":"sidebar_assets_search-wrapper_n5kE7","sort-button":"sidebar_assets_sort-button_UvVYu","libraries-button":"sidebar_assets_libraries-button_cKUY7","button-tertiary":"sidebar_assets_button-tertiary_KoPen","button-tag":"sidebar_assets_button-tag_yzpPm","button-icon":"sidebar_assets_button-icon_M5Yy6","libraries-icon":"sidebar_assets_libraries-icon_ikusB","button-icon-small":"sidebar_assets_button-icon-small_xZWe1","asset-element":"sidebar_assets_asset-element_xHJzG","new-scrollbar":"sidebar_assets_new-scrollbar_2SXio","section-button":"sidebar_assets_section-button_RSjn8","sections-container":"sidebar_assets_sections-container_r2YTM","section-item":"sidebar_assets_section-item_u6EYM","section-btn":"sidebar_assets_section-btn_s4h2P","libraries-wrapper":"sidebar_assets_libraries-wrapper_agaHg"} \ No newline at end of file +{"button-primary":"sidebar_assets_button-primary_a9p4J","button-secondary":"sidebar_assets_button-secondary_hbgBA","assets-bar":"sidebar_assets_assets-bar_gzAPj","assets-header":"sidebar_assets_assets-header_aFHCj","search-wrapper":"sidebar_assets_search-wrapper_n5kE7","sort-button":"sidebar_assets_sort-button_UvVYu","libraries-button":"sidebar_assets_libraries-button_cKUY7","button-tertiary":"sidebar_assets_button-tertiary_KoPen","button-tag":"sidebar_assets_button-tag_yzpPm","button-icon":"sidebar_assets_button-icon_M5Yy6","libraries-icon":"sidebar_assets_libraries-icon_ikusB","button-icon-small":"sidebar_assets_button-icon-small_xZWe1","asset-element":"sidebar_assets_asset-element_xHJzG","new-scrollbar":"sidebar_assets_new-scrollbar_2SXio","menu-dropdown":"sidebar_assets_menu-dropdown_YLEyF","menu-item":"sidebar_assets_menu-item_NV7hO","shortcut":"sidebar_assets_shortcut_4ngAb","shortcut-key":"sidebar_assets_shortcut-key_H48e8","user-icon":"sidebar_assets_user-icon_p-VBP","section-button":"sidebar_assets_section-button_RSjn8","sections-container":"sidebar_assets_sections-container_r2YTM","section-item":"sidebar_assets_section-item_u6EYM","section-btn":"sidebar_assets_section-btn_s4h2P","libraries-wrapper":"sidebar_assets_libraries-wrapper_agaHg","spin-animation":"sidebar_assets_spin-animation_ReXkJ"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.scss b/frontend/src/app/main/ui/workspace/sidebar/assets.scss index ec1ff46c6..e010929f1 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.scss @@ -78,6 +78,7 @@ } } .sections-container { + @include menuShadow; position: absolute; top: $s-84; left: $s-12; @@ -88,8 +89,7 @@ padding: $s-4; border-radius: $br-8; background-color: var(--menu-background-color); - z-index: $z-index-4; - box-shadow: 0px 0px 10px 0px var(--menu-shadow-color); + z-index: $z-index-2; .section-item { @include titleTipography; display: flex; diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.css.json index e29d95429..10c22da22 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.css.json @@ -1 +1 @@ -{"button-primary":"assets_colors_button-primary_6ZMmx","button-secondary":"assets_colors_button-secondary_dNSLH","button-tertiary":"assets_colors_button-tertiary_h20-o","assets-btn":"assets_colors_assets-btn_t8DHG","button-tag":"assets_colors_button-tag_ux-NH","button-icon":"assets_colors_button-icon_f-EVH","button-icon-small":"assets_colors_button-icon-small_zq8dv","asset-element":"assets_colors_asset-element_XSxD1","new-scrollbar":"assets_colors_new-scrollbar_wIoIr","colors-group":"assets_colors_colors-group_fUsuo","asset-list":"assets_colors_asset-list_wMm1l","asset-list-item":"assets_colors_asset-list-item_ZFtXC","bullet-block":"assets_colors_bullet-block_ZRR2Y","name-block":"assets_colors_name-block_Zvmy3","default-name-only":"assets_colors_default-name-only_JFCGo","name":"assets_colors_name_AjZzr","default-name":"assets_colors_default-name_8gEAb","element-name":"assets_colors_element-name_ADGM8","selected":"assets_colors_selected_ElMu0","editing":"assets_colors_editing_FWnHU","grid-placeholder":"assets_colors_grid-placeholder_7wTFd","drop-space":"assets_colors_drop-space_lbzeC","dragging":"assets_colors_dragging_EmBOk"} \ No newline at end of file +{"button-primary":"assets_colors_button-primary_6ZMmx","button-secondary":"assets_colors_button-secondary_dNSLH","button-tertiary":"assets_colors_button-tertiary_h20-o","assets-btn":"assets_colors_assets-btn_t8DHG","button-tag":"assets_colors_button-tag_ux-NH","button-icon":"assets_colors_button-icon_f-EVH","button-icon-small":"assets_colors_button-icon-small_zq8dv","asset-element":"assets_colors_asset-element_XSxD1","new-scrollbar":"assets_colors_new-scrollbar_wIoIr","menu-dropdown":"assets_colors_menu-dropdown_WpZbI","menu-item":"assets_colors_menu-item_jPeYs","shortcut":"assets_colors_shortcut_4XD-P","shortcut-key":"assets_colors_shortcut-key_s2Qcm","user-icon":"assets_colors_user-icon_Pxni6","colors-group":"assets_colors_colors-group_fUsuo","asset-list":"assets_colors_asset-list_wMm1l","asset-list-item":"assets_colors_asset-list-item_ZFtXC","bullet-block":"assets_colors_bullet-block_ZRR2Y","name-block":"assets_colors_name-block_Zvmy3","default-name-only":"assets_colors_default-name-only_JFCGo","name":"assets_colors_name_AjZzr","default-name":"assets_colors_default-name_8gEAb","element-name":"assets_colors_element-name_ADGM8","selected":"assets_colors_selected_ElMu0","editing":"assets_colors_editing_FWnHU","grid-placeholder":"assets_colors_grid-placeholder_7wTFd","drop-space":"assets_colors_drop-space_lbzeC","dragging":"assets_colors_dragging_EmBOk","spin-animation":"assets_colors_spin-animation_zeSlr"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/common.css.json index 06e8fe22e..347c19180 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.css.json @@ -1 +1 @@ -{"button-primary":"assets_common_button-primary_-eBqD","button-secondary":"assets_common_button-secondary_qo2kg","button-tertiary":"assets_common_button-tertiary_ApdBb","button-tag":"assets_common_button-tag_MHJlj","button-icon":"assets_common_button-icon_0R1zt","button-icon-small":"assets_common_button-icon-small_5kQfO","asset-element":"assets_common_asset-element_frsFR","new-scrollbar":"assets_common_new-scrollbar_JN2v-","asset-section":"assets_common_asset-section_uKhc8","title-name":"assets_common_title-name_ZOz9E","section-icon":"assets_common_section-icon_Kitcf","section-name":"assets_common_section-name_RVo-u","num-assets":"assets_common_num-assets_Dguaz"} \ No newline at end of file +{"button-primary":"assets_common_button-primary_-eBqD","button-secondary":"assets_common_button-secondary_qo2kg","button-tertiary":"assets_common_button-tertiary_ApdBb","button-tag":"assets_common_button-tag_MHJlj","button-icon":"assets_common_button-icon_0R1zt","button-icon-small":"assets_common_button-icon-small_5kQfO","asset-element":"assets_common_asset-element_frsFR","new-scrollbar":"assets_common_new-scrollbar_JN2v-","menu-dropdown":"assets_common_menu-dropdown_l6JLU","menu-item":"assets_common_menu-item_d2IzY","shortcut":"assets_common_shortcut_Uk4nm","shortcut-key":"assets_common_shortcut-key_F0DUJ","user-icon":"assets_common_user-icon_rLf8F","asset-section":"assets_common_asset-section_uKhc8","title-name":"assets_common_title-name_ZOz9E","section-icon":"assets_common_section-icon_Kitcf","section-name":"assets_common_section-name_RVo-u","num-assets":"assets_common_num-assets_Dguaz","spin-animation":"assets_common_spin-animation_7inPz"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/components.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/components.css.json index 952bca499..c144fd238 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.css.json @@ -1 +1 @@ -{"button-primary":"assets_components_button-primary_lsoWq","button-secondary":"assets_components_button-secondary_P8v5X","button-tertiary":"assets_components_button-tertiary_7wMqf","add-component":"assets_components_add-component_X9o2C","button-tag":"assets_components_button-tag_ibmtY","button-icon":"assets_components_button-icon_4Lapr","button-icon-small":"assets_components_button-icon-small_7WrRR","component-group":"assets_components_component-group_AYXVI","asset-enum":"assets_components_asset-enum_iLlfH","enum-item":"assets_components_enum-item_l4zuE","item-name":"assets_components_item-name_Hwadc","editing":"assets_components_editing_3RdZy","asset-grid":"assets_components_asset-grid_mK75F","grid-cell":"assets_components_grid-cell_ctU6T","cell-name":"assets_components_cell-name_DUUMt","asset-element":"assets_components_asset-element_UsbdX","new-scrollbar":"assets_components_new-scrollbar_IvvMB","drop-space":"assets_components_drop-space_QhD1-","selected":"assets_components_selected_QLPO7","grid-placeholder":"assets_components_grid-placeholder_a3PoY","listing-options":"assets_components_listing-options_-vPIQ","listing-option-btn":"assets_components_listing-option-btn_-d9cg","first":"assets_components_first_sri1T","dragging":"assets_components_dragging_bWqQC"} \ No newline at end of file +{"button-primary":"assets_components_button-primary_lsoWq","button-secondary":"assets_components_button-secondary_P8v5X","button-tertiary":"assets_components_button-tertiary_7wMqf","add-component":"assets_components_add-component_X9o2C","button-tag":"assets_components_button-tag_ibmtY","button-icon":"assets_components_button-icon_4Lapr","button-icon-small":"assets_components_button-icon-small_7WrRR","component-group":"assets_components_component-group_AYXVI","asset-enum":"assets_components_asset-enum_iLlfH","enum-item":"assets_components_enum-item_l4zuE","item-name":"assets_components_item-name_Hwadc","editing":"assets_components_editing_3RdZy","asset-grid":"assets_components_asset-grid_mK75F","grid-cell":"assets_components_grid-cell_ctU6T","cell-name":"assets_components_cell-name_DUUMt","asset-element":"assets_components_asset-element_UsbdX","new-scrollbar":"assets_components_new-scrollbar_IvvMB","menu-dropdown":"assets_components_menu-dropdown_PEOsj","menu-item":"assets_components_menu-item_BTWp5","shortcut":"assets_components_shortcut_R6d2o","shortcut-key":"assets_components_shortcut-key_cf4Uh","user-icon":"assets_components_user-icon_37v1Y","drop-space":"assets_components_drop-space_QhD1-","selected":"assets_components_selected_QLPO7","grid-placeholder":"assets_components_grid-placeholder_a3PoY","listing-options":"assets_components_listing-options_-vPIQ","listing-option-btn":"assets_components_listing-option-btn_-d9cg","first":"assets_components_first_sri1T","dragging":"assets_components_dragging_bWqQC","spin-animation":"assets_components_spin-animation_WBo--"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.css.json index b104045fd..cbea40395 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.css.json @@ -1 +1 @@ -{"button-primary":"assets_file_library_button-primary_o8czr","button-secondary":"assets_file_library_button-secondary_BCBmw","button-tertiary":"assets_file_library_button-tertiary_JiCQn","library-title":"assets_file_library_library-title_FvGs6","file-link":"assets_file_library_file-link_CtN0K","button-tag":"assets_file_library_button-tag_cyg7Q","button-icon":"assets_file_library_button-icon_R-4R0","asset-title":"assets_file_library_asset-title_ozD8M","no-found-icon":"assets_file_library_no-found-icon_yu1td","button-icon-small":"assets_file_library_button-icon-small_9UOdy","asset-element":"assets_file_library_asset-element_6ian7","new-scrollbar":"assets_file_library_new-scrollbar_3zGUU","tool-window":"assets_file_library_tool-window_fzArb","file-name":"assets_file_library_file-name_Pc8ng","special-title":"assets_file_library_special-title_-Pqzq","special-subtitle":"assets_file_library_special-subtitle_9xOl9","library-content":"assets_file_library_library-content_Yto-8","no-found-text":"assets_file_library_no-found-text_RDTeV"} \ No newline at end of file +{"button-primary":"assets_file_library_button-primary_o8czr","button-secondary":"assets_file_library_button-secondary_BCBmw","button-tertiary":"assets_file_library_button-tertiary_JiCQn","library-title":"assets_file_library_library-title_FvGs6","file-link":"assets_file_library_file-link_CtN0K","button-tag":"assets_file_library_button-tag_cyg7Q","button-icon":"assets_file_library_button-icon_R-4R0","asset-title":"assets_file_library_asset-title_ozD8M","no-found-icon":"assets_file_library_no-found-icon_yu1td","button-icon-small":"assets_file_library_button-icon-small_9UOdy","asset-element":"assets_file_library_asset-element_6ian7","new-scrollbar":"assets_file_library_new-scrollbar_3zGUU","menu-dropdown":"assets_file_library_menu-dropdown_KXeib","menu-item":"assets_file_library_menu-item_Uk5ZK","shortcut":"assets_file_library_shortcut_v-Rto","shortcut-key":"assets_file_library_shortcut-key_bqNTU","user-icon":"assets_file_library_user-icon_xeQ8S","tool-window":"assets_file_library_tool-window_fzArb","file-name":"assets_file_library_file-name_Pc8ng","special-title":"assets_file_library_special-title_-Pqzq","special-subtitle":"assets_file_library_special-subtitle_9xOl9","library-content":"assets_file_library_library-content_Yto-8","no-found-text":"assets_file_library_no-found-text_RDTeV","spin-animation":"assets_file_library_spin-animation_z-s4F"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.css.json index 397437dd6..714b607f2 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.css.json @@ -1 +1 @@ -{"button-primary":"assets_graphics_button-primary_6qIO6","button-secondary":"assets_graphics_button-secondary_0qkG4","button-tertiary":"assets_graphics_button-tertiary_bWZ1s","assets-btn":"assets_graphics_assets-btn_BIoeo","add-component":"assets_graphics_add-component_bgwrr","button-tag":"assets_graphics_button-tag_K3ckf","button-icon":"assets_graphics_button-icon_En5qq","button-icon-small":"assets_graphics_button-icon-small_xNHzC","asset-element":"assets_graphics_asset-element_-VwmF","new-scrollbar":"assets_graphics_new-scrollbar_10lYW","graphics-group":"assets_graphics_graphics-group_kibPf","drop-space":"assets_graphics_drop-space_2UAKf","asset-grid":"assets_graphics_asset-grid_6ET0K","grid-cell":"assets_graphics_grid-cell_EHW4x","cell-name":"assets_graphics_cell-name_JgbUS","editing":"assets_graphics_editing_O-Ozt","editable-label-input":"assets_graphics_editable-label-input_Yc2zA","editable-label-close":"assets_graphics_editable-label-close_16VT8","selected":"assets_graphics_selected_Q9YJC","dragging":"assets_graphics_dragging_oVA41","asset-enum":"assets_graphics_asset-enum_TS6Je","enum-item":"assets_graphics_enum-item_UFh4c","item-name":"assets_graphics_item-name_HGIQs","grid-placeholder":"assets_graphics_grid-placeholder_9brkO","listing-options":"assets_graphics_listing-options_Jw51P","listing-option-btn":"assets_graphics_listing-option-btn_3IkTO","first":"assets_graphics_first_kU3zf"} \ No newline at end of file +{"button-primary":"assets_graphics_button-primary_6qIO6","button-secondary":"assets_graphics_button-secondary_0qkG4","button-tertiary":"assets_graphics_button-tertiary_bWZ1s","assets-btn":"assets_graphics_assets-btn_BIoeo","add-component":"assets_graphics_add-component_bgwrr","button-tag":"assets_graphics_button-tag_K3ckf","button-icon":"assets_graphics_button-icon_En5qq","button-icon-small":"assets_graphics_button-icon-small_xNHzC","asset-element":"assets_graphics_asset-element_-VwmF","new-scrollbar":"assets_graphics_new-scrollbar_10lYW","menu-dropdown":"assets_graphics_menu-dropdown_r8D0N","menu-item":"assets_graphics_menu-item_cbQq8","shortcut":"assets_graphics_shortcut_vxxjT","shortcut-key":"assets_graphics_shortcut-key_G6mgB","user-icon":"assets_graphics_user-icon_2W6f-","graphics-group":"assets_graphics_graphics-group_kibPf","drop-space":"assets_graphics_drop-space_2UAKf","asset-grid":"assets_graphics_asset-grid_6ET0K","grid-cell":"assets_graphics_grid-cell_EHW4x","cell-name":"assets_graphics_cell-name_JgbUS","editing":"assets_graphics_editing_O-Ozt","editable-label-input":"assets_graphics_editable-label-input_Yc2zA","editable-label-close":"assets_graphics_editable-label-close_16VT8","selected":"assets_graphics_selected_Q9YJC","dragging":"assets_graphics_dragging_oVA41","asset-enum":"assets_graphics_asset-enum_TS6Je","enum-item":"assets_graphics_enum-item_UFh4c","item-name":"assets_graphics_item-name_HGIQs","grid-placeholder":"assets_graphics_grid-placeholder_9brkO","listing-options":"assets_graphics_listing-options_Jw51P","listing-option-btn":"assets_graphics_listing-option-btn_3IkTO","first":"assets_graphics_first_kU3zf","spin-animation":"assets_graphics_spin-animation_9EfUf"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/groups.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/groups.css.json index 4c2c593b4..40237c02a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/groups.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/groups.css.json @@ -1 +1 @@ -{"button-primary":"assets_groups_button-primary_2o3Db","button-secondary":"assets_groups_button-secondary_-qdxB","button-tertiary":"assets_groups_button-tertiary_1f4Jy","button-tag":"assets_groups_button-tag_yIgd9","button-icon":"assets_groups_button-icon_MSptS","button-icon-small":"assets_groups_button-icon-small_73Ir0","asset-element":"assets_groups_asset-element_RgKXH","new-scrollbar":"assets_groups_new-scrollbar_MiZuY","group-title":"assets_groups_group-title_cV4AQ","pre-path":"assets_groups_pre-path_1rE71","path":"assets_groups_path_m0esc"} \ No newline at end of file +{"button-primary":"assets_groups_button-primary_2o3Db","button-secondary":"assets_groups_button-secondary_-qdxB","button-tertiary":"assets_groups_button-tertiary_1f4Jy","button-tag":"assets_groups_button-tag_yIgd9","button-icon":"assets_groups_button-icon_MSptS","button-icon-small":"assets_groups_button-icon-small_73Ir0","asset-element":"assets_groups_asset-element_RgKXH","new-scrollbar":"assets_groups_new-scrollbar_MiZuY","menu-dropdown":"assets_groups_menu-dropdown_TL814","menu-item":"assets_groups_menu-item_xbSue","shortcut":"assets_groups_shortcut_oaCl2","shortcut-key":"assets_groups_shortcut-key_zz6aG","user-icon":"assets_groups_user-icon_wj5J2","group-title":"assets_groups_group-title_cV4AQ","pre-path":"assets_groups_pre-path_1rE71","path":"assets_groups_path_m0esc","spin-animation":"assets_groups_spin-animation_NvY-S"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.css.json b/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.css.json index 0837c257f..7850d700b 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.css.json @@ -1 +1 @@ -{"button-primary":"assets_typographies_button-primary_njVYq","button-secondary":"assets_typographies_button-secondary_Wzmmw","button-tertiary":"assets_typographies_button-tertiary_k3V5a","assets-btn":"assets_typographies_assets-btn_wCF-m","button-tag":"assets_typographies_button-tag_grTbB","button-icon":"assets_typographies_button-icon_7peoi","button-icon-small":"assets_typographies_button-icon-small_oHD9w","asset-element":"assets_typographies_asset-element_hvNzY","new-scrollbar":"assets_typographies_new-scrollbar_P2gpd","typographies-group":"assets_typographies_typographies-group_iCR4V","assets-list":"assets_typographies_assets-list_wS3At","drop-space":"assets_typographies_drop-space_kGrjB","grid-placeholder":"assets_typographies_grid-placeholder_FvcCI","typography-item":"assets_typographies_typography-item_qkADe","dragging":"assets_typographies_dragging_Ns4o7"} \ No newline at end of file +{"button-primary":"assets_typographies_button-primary_njVYq","button-secondary":"assets_typographies_button-secondary_Wzmmw","button-tertiary":"assets_typographies_button-tertiary_k3V5a","assets-btn":"assets_typographies_assets-btn_wCF-m","button-tag":"assets_typographies_button-tag_grTbB","button-icon":"assets_typographies_button-icon_7peoi","button-icon-small":"assets_typographies_button-icon-small_oHD9w","asset-element":"assets_typographies_asset-element_hvNzY","new-scrollbar":"assets_typographies_new-scrollbar_P2gpd","menu-dropdown":"assets_typographies_menu-dropdown_aHaua","menu-item":"assets_typographies_menu-item_WXEmJ","shortcut":"assets_typographies_shortcut_Sa3Di","shortcut-key":"assets_typographies_shortcut-key_dBq78","user-icon":"assets_typographies_user-icon_9eYTE","typographies-group":"assets_typographies_typographies-group_iCR4V","assets-list":"assets_typographies_assets-list_wS3At","drop-space":"assets_typographies_drop-space_kGrjB","grid-placeholder":"assets_typographies_grid-placeholder_FvcCI","typography-item":"assets_typographies_typography-item_qkADe","dragging":"assets_typographies_dragging_Ns4o7","spin-animation":"assets_typographies_spin-animation_lnxba"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs index e26638223..f292e9ad4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs @@ -21,7 +21,9 @@ (let [new-css-system (mf/use-ctx ctx/new-css-system) on-click (mf/use-fn #(st/emit! (dw/toggle-layout-flag :collapse-left-sidebar)))] (if ^boolean new-css-system - [:div {:class (dom/classnames (css :collapsed-sidebar) true)} + [:div {:id "left-sidebar-aside" + :data-size 0 + :class (dom/classnames (css :collapsed-sidebar) true)} [:div {:class (dom/classnames (css :collapsed-title) true)} [:button {:class (dom/classnames (css :collapsed-button) true) :on-click on-click diff --git a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.css.json b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.css.json index f7a3727a1..54d17f927 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_collapsable_button_button-primary_qaRce","button-secondary":"sidebar_collapsable_button_button-secondary_OqDpe","button-tertiary":"sidebar_collapsable_button_button-tertiary_NuJrA","button-tag":"sidebar_collapsable_button_button-tag_unQKq","button-icon":"sidebar_collapsable_button_button-icon_P4-xy","button-icon-small":"sidebar_collapsable_button_button-icon-small_lQUE3","asset-element":"sidebar_collapsable_button_asset-element_BboJ7","new-scrollbar":"sidebar_collapsable_button_new-scrollbar_cYoQj","collapsed-sidebar":"sidebar_collapsable_button_collapsed-sidebar_uQnGJ","collapsed-title":"sidebar_collapsable_button_collapsed-title_Jb62g","collapsed-button":"sidebar_collapsable_button_collapsed-button_LT5ME"} \ No newline at end of file +{"button-primary":"sidebar_collapsable_button_button-primary_qaRce","button-secondary":"sidebar_collapsable_button_button-secondary_OqDpe","button-tertiary":"sidebar_collapsable_button_button-tertiary_NuJrA","button-tag":"sidebar_collapsable_button_button-tag_unQKq","button-icon":"sidebar_collapsable_button_button-icon_P4-xy","button-icon-small":"sidebar_collapsable_button_button-icon-small_lQUE3","asset-element":"sidebar_collapsable_button_asset-element_BboJ7","new-scrollbar":"sidebar_collapsable_button_new-scrollbar_cYoQj","menu-dropdown":"sidebar_collapsable_button_menu-dropdown_Dgfng","menu-item":"sidebar_collapsable_button_menu-item_w9GKP","shortcut":"sidebar_collapsable_button_shortcut_frmAH","shortcut-key":"sidebar_collapsable_button_shortcut-key_IULZO","user-icon":"sidebar_collapsable_button_user-icon_1axL9","collapsed-sidebar":"sidebar_collapsable_button_collapsed-sidebar_uQnGJ","collapsed-title":"sidebar_collapsable_button_collapsed-title_Jb62g","collapsed-button":"sidebar_collapsable_button_collapsed-button_LT5ME","spin-animation":"sidebar_collapsable_button_spin-animation_bwtJ0"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/history.css.json b/frontend/src/app/main/ui/workspace/sidebar/history.css.json index 2bbdba20b..3852e85f0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/history.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/history.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_history_button-primary_3QHPC","button-secondary":"sidebar_history_button-secondary_-f-3z","button-tertiary":"sidebar_history_button-tertiary_IzuLu","history-toolbox":"sidebar_history_history-toolbox_-jdvy","history-toolbox-title":"sidebar_history_history-toolbox-title_9pxvS","close-button":"sidebar_history_close-button_CmY2q","button-tag":"sidebar_history_button-tag_9aylo","button-icon":"sidebar_history_button-icon_UeFr2","history-entry-empty":"sidebar_history_history-entry-empty_SINxx","history-entry-empty-icon":"sidebar_history_history-entry-empty-icon_XJdB6","button-icon-small":"sidebar_history_button-icon-small_9M0oh","history-entries":"sidebar_history_history-entries_NgKRp","history-entry":"sidebar_history_history-entry_lGPio","history-entry-summary":"sidebar_history_history-entry-summary_S3Glf","history-entry-summary-button":"sidebar_history_history-entry-summary-button_AjNW8","history-entry-summary-icon":"sidebar_history_history-entry-summary-icon_F-iya","asset-element":"sidebar_history_asset-element_Lm478","new-scrollbar":"sidebar_history_new-scrollbar_lmxNu","history-entry-empty-msg":"sidebar_history_history-entry-empty-msg_S3wX7","disabled":"sidebar_history_disabled_u0U-e","hover":"sidebar_history_hover_RnLwu","button-opened":"sidebar_history_button-opened_PdprO","history-entry-summary-text":"sidebar_history_history-entry-summary-text_bBYso","history-entry-detail":"sidebar_history_history-entry-detail_-QXf6","history-entry-details-list":"sidebar_history_history-entry-details-list_shkso"} \ No newline at end of file +{"button-primary":"sidebar_history_button-primary_3QHPC","button-secondary":"sidebar_history_button-secondary_-f-3z","button-tertiary":"sidebar_history_button-tertiary_IzuLu","history-toolbox":"sidebar_history_history-toolbox_-jdvy","history-toolbox-title":"sidebar_history_history-toolbox-title_9pxvS","close-button":"sidebar_history_close-button_CmY2q","button-tag":"sidebar_history_button-tag_9aylo","button-icon":"sidebar_history_button-icon_UeFr2","history-entry-empty":"sidebar_history_history-entry-empty_SINxx","history-entry-empty-icon":"sidebar_history_history-entry-empty-icon_XJdB6","button-icon-small":"sidebar_history_button-icon-small_9M0oh","history-entries":"sidebar_history_history-entries_NgKRp","history-entry":"sidebar_history_history-entry_lGPio","history-entry-summary":"sidebar_history_history-entry-summary_S3Glf","history-entry-summary-button":"sidebar_history_history-entry-summary-button_AjNW8","history-entry-summary-icon":"sidebar_history_history-entry-summary-icon_F-iya","asset-element":"sidebar_history_asset-element_Lm478","new-scrollbar":"sidebar_history_new-scrollbar_lmxNu","menu-dropdown":"sidebar_history_menu-dropdown_gDAqh","menu-item":"sidebar_history_menu-item_6Yf8k","shortcut":"sidebar_history_shortcut_OhzVN","shortcut-key":"sidebar_history_shortcut-key_-sdvq","user-icon":"sidebar_history_user-icon_GHiNr","history-entry-empty-msg":"sidebar_history_history-entry-empty-msg_S3wX7","disabled":"sidebar_history_disabled_u0U-e","hover":"sidebar_history_hover_RnLwu","button-opened":"sidebar_history_button-opened_PdprO","history-entry-summary-text":"sidebar_history_history-entry-summary-text_bBYso","history-entry-detail":"sidebar_history_history-entry-detail_-QXf6","history-entry-details-list":"sidebar_history_history-entry-details-list_shkso","spin-animation":"sidebar_history_spin-animation_-Oo4-"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.css.json b/frontend/src/app/main/ui/workspace/sidebar/layer_item.css.json index a71b66901..709283176 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_layer_item_button-primary_74ST4","button-secondary":"sidebar_layer_item_button-secondary_e4u9V","button-tertiary":"sidebar_layer_item_button-tertiary_Mo--6","button-tag":"sidebar_layer_item_button-tag_lFKoD","button-icon":"sidebar_layer_item_button-icon_-D7KH","button-icon-small":"sidebar_layer_item_button-icon-small_1RfDl","layer-row":"sidebar_layer_item_layer-row_KibLX","element-list-body":"sidebar_layer_item_element-list-body_832JO","element-actions":"sidebar_layer_item_element-actions_ACGJI","toggle-element":"sidebar_layer_item_toggle-element_4bhRW","block-element":"sidebar_layer_item_block-element_RhKz-","button-content":"sidebar_layer_item_button-content_bPwop","icon-shape":"sidebar_layer_item_icon-shape_g9Wxn","toggle-content":"sidebar_layer_item_toggle-content_MKhsv","asset-element":"sidebar_layer_item_asset-element_AXTD0","new-scrollbar":"sidebar_layer_item_new-scrollbar_zvlI0","filtered":"sidebar_layer_item_filtered_V5CHf","inverse":"sidebar_layer_item_inverse_zzZ54","absolute":"sidebar_layer_item_absolute_mYIKg","selected":"sidebar_layer_item_selected_O7P-j","element-children":"sidebar_layer_item_element-children_3iA4Q","parent-selected":"sidebar_layer_item_parent-selected_uIIyQ","hidden":"sidebar_layer_item_hidden_JRbJO","type-comp":"sidebar_layer_item_type-comp_FBSRt","tab-indentation":"sidebar_layer_item_tab-indentation_e-2dQ"} \ No newline at end of file +{"button-primary":"sidebar_layer_item_button-primary_74ST4","button-secondary":"sidebar_layer_item_button-secondary_e4u9V","button-tertiary":"sidebar_layer_item_button-tertiary_Mo--6","button-tag":"sidebar_layer_item_button-tag_lFKoD","button-icon":"sidebar_layer_item_button-icon_-D7KH","button-icon-small":"sidebar_layer_item_button-icon-small_1RfDl","layer-row":"sidebar_layer_item_layer-row_KibLX","element-list-body":"sidebar_layer_item_element-list-body_832JO","element-actions":"sidebar_layer_item_element-actions_ACGJI","toggle-element":"sidebar_layer_item_toggle-element_4bhRW","block-element":"sidebar_layer_item_block-element_RhKz-","button-content":"sidebar_layer_item_button-content_bPwop","icon-shape":"sidebar_layer_item_icon-shape_g9Wxn","toggle-content":"sidebar_layer_item_toggle-content_MKhsv","asset-element":"sidebar_layer_item_asset-element_AXTD0","new-scrollbar":"sidebar_layer_item_new-scrollbar_zvlI0","menu-dropdown":"sidebar_layer_item_menu-dropdown_Xviyp","menu-item":"sidebar_layer_item_menu-item_NwoKO","shortcut":"sidebar_layer_item_shortcut_38vBX","shortcut-key":"sidebar_layer_item_shortcut-key_OCkoW","user-icon":"sidebar_layer_item_user-icon_88ou5","filtered":"sidebar_layer_item_filtered_V5CHf","inverse":"sidebar_layer_item_inverse_zzZ54","absolute":"sidebar_layer_item_absolute_mYIKg","selected":"sidebar_layer_item_selected_O7P-j","element-children":"sidebar_layer_item_element-children_3iA4Q","parent-selected":"sidebar_layer_item_parent-selected_uIIyQ","hidden":"sidebar_layer_item_hidden_JRbJO","type-comp":"sidebar_layer_item_type-comp_FBSRt","tab-indentation":"sidebar_layer_item_tab-indentation_e-2dQ","spin-animation":"sidebar_layer_item_spin-animation_1fYW9"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_name.css.json b/frontend/src/app/main/ui/workspace/sidebar/layer_name.css.json index 39d44c4ff..7f622df3f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_name.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_name.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_layer_name_button-primary_V-6Cp","button-secondary":"sidebar_layer_name_button-secondary_Q14Qj","button-tertiary":"sidebar_layer_name_button-tertiary_dA-v0","button-tag":"sidebar_layer_name_button-tag_fr2K0","button-icon":"sidebar_layer_name_button-icon_UQXjw","button-icon-small":"sidebar_layer_name_button-icon-small_At5P8","asset-element":"sidebar_layer_name_asset-element_WVekz","new-scrollbar":"sidebar_layer_name_new-scrollbar_gOiJo","element-name":"sidebar_layer_name_element-name_hZ-lA","selected":"sidebar_layer_name_selected_MKxdm","type-comp":"sidebar_layer_name_type-comp_TNGM-","hidden":"sidebar_layer_name_hidden_e-K3G","element-name-input":"sidebar_layer_name_element-name-input_Wpnkf"} \ No newline at end of file +{"button-primary":"sidebar_layer_name_button-primary_V-6Cp","button-secondary":"sidebar_layer_name_button-secondary_Q14Qj","button-tertiary":"sidebar_layer_name_button-tertiary_dA-v0","button-tag":"sidebar_layer_name_button-tag_fr2K0","button-icon":"sidebar_layer_name_button-icon_UQXjw","button-icon-small":"sidebar_layer_name_button-icon-small_At5P8","asset-element":"sidebar_layer_name_asset-element_WVekz","new-scrollbar":"sidebar_layer_name_new-scrollbar_gOiJo","menu-dropdown":"sidebar_layer_name_menu-dropdown_st1b2","menu-item":"sidebar_layer_name_menu-item_ZR1Xe","shortcut":"sidebar_layer_name_shortcut_Nbhk9","shortcut-key":"sidebar_layer_name_shortcut-key_q4DMU","user-icon":"sidebar_layer_name_user-icon_SidW9","element-name":"sidebar_layer_name_element-name_hZ-lA","selected":"sidebar_layer_name_selected_MKxdm","type-comp":"sidebar_layer_name_type-comp_TNGM-","hidden":"sidebar_layer_name_hidden_e-K3G","element-name-input":"sidebar_layer_name_element-name-input_Wpnkf","spin-animation":"sidebar_layer_name_spin-animation_PtsAu"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs index e6ec213ff..430dad276 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.cljs @@ -258,7 +258,7 @@ [:button {:on-click toggle-filters :class (stl/css-case - :filters-button true + :filter-button true :active active?)} i/filter-refactor]] diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.css.json b/frontend/src/app/main/ui/workspace/sidebar/layers.css.json index 41ddcc336..3841ec33b 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_layers_button-primary_q9e2I","button-secondary":"sidebar_layers_button-secondary_H4lpi","button-tertiary":"sidebar_layers_button-tertiary_5mq-9","layers":"sidebar_layers_layers_87ZOo","tool-window-bar":"sidebar_layers_tool-window-bar_lg54C","search":"sidebar_layers_search_zjs2x","close-search":"sidebar_layers_close-search_baIhK","icon-search":"sidebar_layers_icon-search_6kWUn","button-tag":"sidebar_layers_button-tag_FT7oa","active-filters":"sidebar_layers_active-filters_-JMMP","layer-filter":"sidebar_layers_layer-filter_rHZTz","button-icon":"sidebar_layers_button-icon_SD8PP","button-icon-small":"sidebar_layers_button-icon-small_v5L-u","filters-container":"sidebar_layers_filters-container_c1Ux9","filter-menu-item":"sidebar_layers_filter-menu-item_aZd0D","filter-menu-item-tick":"sidebar_layers_filter-menu-item-tick_JNdIK","filter-menu-item-name-wrapper":"sidebar_layers_filter-menu-item-name-wrapper_DtGkH","filter-menu-item-icon":"sidebar_layers_filter-menu-item-icon_Oi3Ix","layer-filter-icon":"sidebar_layers_layer-filter-icon_0yKrb","layer-filter-close":"sidebar_layers_layer-filter-close_3mV4i","focus-title":"sidebar_layers_focus-title_35PvQ","back-button-icon":"sidebar_layers_back-button-icon_mHv6g","asset-element":"sidebar_layers_asset-element_-dbA7","new-scrollbar":"sidebar_layers_new-scrollbar_62eFS","page-name":"sidebar_layers_page-name_8ZDRR","filter-button":"sidebar_layers_filter-button_KXxHh","focus-name":"sidebar_layers_focus-name_Fderf","focus-mode-tag-wrapper":"sidebar_layers_focus-mode-tag-wrapper_OHXCG","focus-mode-tag":"sidebar_layers_focus-mode-tag_J5ItD","layer-filter-name":"sidebar_layers_layer-filter-name_Y4PuB","filter-menu-item-name":"sidebar_layers_filter-menu-item-name_rxeut","selected":"sidebar_layers_selected_V5Vv3","tool-window-content":"sidebar_layers_tool-window-content_YnpDB","element-list":"sidebar_layers_element-list_nAntB"} \ No newline at end of file +{"button-primary":"sidebar_layers_button-primary_q9e2I","button-secondary":"sidebar_layers_button-secondary_H4lpi","button-tertiary":"sidebar_layers_button-tertiary_5mq-9","layers":"sidebar_layers_layers_87ZOo","tool-window-bar":"sidebar_layers_tool-window-bar_lg54C","search":"sidebar_layers_search_zjs2x","close-search":"sidebar_layers_close-search_baIhK","icon-search":"sidebar_layers_icon-search_6kWUn","button-tag":"sidebar_layers_button-tag_FT7oa","active-filters":"sidebar_layers_active-filters_-JMMP","layer-filter":"sidebar_layers_layer-filter_rHZTz","button-icon":"sidebar_layers_button-icon_SD8PP","button-icon-small":"sidebar_layers_button-icon-small_v5L-u","filters-container":"sidebar_layers_filters-container_c1Ux9","filter-menu-item":"sidebar_layers_filter-menu-item_aZd0D","filter-menu-item-tick":"sidebar_layers_filter-menu-item-tick_JNdIK","filter-menu-item-name-wrapper":"sidebar_layers_filter-menu-item-name-wrapper_DtGkH","filter-menu-item-icon":"sidebar_layers_filter-menu-item-icon_Oi3Ix","layer-filter-icon":"sidebar_layers_layer-filter-icon_0yKrb","layer-filter-close":"sidebar_layers_layer-filter-close_3mV4i","focus-title":"sidebar_layers_focus-title_35PvQ","back-button-icon":"sidebar_layers_back-button-icon_mHv6g","asset-element":"sidebar_layers_asset-element_-dbA7","new-scrollbar":"sidebar_layers_new-scrollbar_62eFS","menu-dropdown":"sidebar_layers_menu-dropdown_ENGDz","menu-item":"sidebar_layers_menu-item_d4Oxp","shortcut":"sidebar_layers_shortcut_f-AXl","shortcut-key":"sidebar_layers_shortcut-key_i2kbB","user-icon":"sidebar_layers_user-icon_AoGvD","page-name":"sidebar_layers_page-name_8ZDRR","filter-button":"sidebar_layers_filter-button_KXxHh","focus-name":"sidebar_layers_focus-name_Fderf","focus-mode-tag-wrapper":"sidebar_layers_focus-mode-tag-wrapper_OHXCG","focus-mode-tag":"sidebar_layers_focus-mode-tag_J5ItD","layer-filter-name":"sidebar_layers_layer-filter-name_Y4PuB","filter-menu-item-name":"sidebar_layers_filter-menu-item-name_rxeut","selected":"sidebar_layers_selected_V5Vv3","tool-window-content":"sidebar_layers_tool-window-content_YnpDB","element-list":"sidebar_layers_element-list_nAntB","spin-animation":"sidebar_layers_spin-animation_jMW0C"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.scss b/frontend/src/app/main/ui/workspace/sidebar/layers.scss index 8d00a150b..a09f2a0cf 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.scss @@ -157,18 +157,10 @@ } } .filters-container { + @extend .menu-dropdown; position: absolute; top: $s-44; left: $s-12; - display: flex; - flex-direction: column; - gap: $s-4; - width: $s-192; - padding: $s-4; - border-radius: $br-8; - background-color: var(--menu-background-color); - z-index: $z-index-4; - box-shadow: 0px 0px 10px 0px var(--menu-shadow-color); .filter-menu-item { @include titleTipography; display: flex; diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.css.json index 5009a9ae2..de3434bf3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.css.json @@ -1 +1 @@ -{"button-primary":"menus_typography_button-primary_s1c9M","button-secondary":"menus_typography_button-secondary_RjAsk","button-tertiary":"menus_typography_button-tertiary_Qt18f","font-name-wrapper":"menus_typography_font-name-wrapper_Njxb6","action-btn":"menus_typography_action-btn_hCakz","button-tag":"menus_typography_button-tag_32-df","button-icon":"menus_typography_button-icon_jucwh","advanced-options-wrapper":"menus_typography_advanced-options-wrapper_k3FD6","typography-options":"menus_typography_typography-options_j1u8l","font-modifiers":"menus_typography_font-modifiers_P8cSa","font-variant-options":"menus_typography_font-variant-options_qlgLr","icon":"menus_typography_icon_eDU2Z","font-size-options":"menus_typography_font-size-options_sKQdL","font-option":"menus_typography_font-option_7mgxF","button-icon-small":"menus_typography_button-icon-small_g3fsU","font-selector":"menus_typography_font-selector_TzuGa","font-selector-dropdown":"menus_typography_font-selector-dropdown_4s6s8","font-wrapper":"menus_typography_font-wrapper_GPkHS","font-item":"menus_typography_font-item_YQffA","typography-variations":"menus_typography_typography-variations_wbNM3","spacing-options":"menus_typography_spacing-options_RUpAK","line-height":"menus_typography_line-height_S7zsF","letter-spacing":"menus_typography_letter-spacing_8R6p2","asset-element":"menus_typography_asset-element_-LlIX","text-transform":"menus_typography_text-transform_U7Y3U","new-scrollbar":"menus_typography_new-scrollbar_mfxWK","typography-entry":"menus_typography_typography-entry_Y6lvA","typography-selection-wrapper":"menus_typography_typography-selection-wrapper_W6ewx","is-selectable":"menus_typography_is-selectable_O6-D2","typography-sample":"menus_typography_typography-sample_6ruld","typography-name":"menus_typography_typography-name_b14xj","typography-font":"menus_typography_typography-font_hJIgO","selected":"menus_typography_selected_Ka-O9","typography-sample-input":"menus_typography_typography-sample-input_u2i8b","adv-typography-name":"menus_typography_adv-typography-name_PvB1X","name":"menus_typography_name_1SJal","font-size-select":"menus_typography_font-size-select_yexav","font-variant-select":"menus_typography_font-variant-select_-OQsO","line-height-input":"menus_typography_line-height-input_SG7be","letter-spacing-input":"menus_typography_letter-spacing-input_LShRc","header":"menus_typography_header_e-rUh","title":"menus_typography_title_uPejx","fonts-list":"menus_typography_fonts-list_ki8X-","label":"menus_typography_label_S-7jI"} \ No newline at end of file +{"button-primary":"menus_typography_button-primary_s1c9M","button-secondary":"menus_typography_button-secondary_RjAsk","button-tertiary":"menus_typography_button-tertiary_Qt18f","font-name-wrapper":"menus_typography_font-name-wrapper_Njxb6","action-btn":"menus_typography_action-btn_hCakz","button-tag":"menus_typography_button-tag_32-df","button-icon":"menus_typography_button-icon_jucwh","advanced-options-wrapper":"menus_typography_advanced-options-wrapper_k3FD6","typography-options":"menus_typography_typography-options_j1u8l","font-modifiers":"menus_typography_font-modifiers_P8cSa","font-variant-options":"menus_typography_font-variant-options_qlgLr","icon":"menus_typography_icon_eDU2Z","font-size-options":"menus_typography_font-size-options_sKQdL","font-option":"menus_typography_font-option_7mgxF","button-icon-small":"menus_typography_button-icon-small_g3fsU","font-selector":"menus_typography_font-selector_TzuGa","font-selector-dropdown":"menus_typography_font-selector-dropdown_4s6s8","font-wrapper":"menus_typography_font-wrapper_GPkHS","font-item":"menus_typography_font-item_YQffA","typography-variations":"menus_typography_typography-variations_wbNM3","spacing-options":"menus_typography_spacing-options_RUpAK","line-height":"menus_typography_line-height_S7zsF","letter-spacing":"menus_typography_letter-spacing_8R6p2","asset-element":"menus_typography_asset-element_-LlIX","text-transform":"menus_typography_text-transform_U7Y3U","new-scrollbar":"menus_typography_new-scrollbar_mfxWK","menu-dropdown":"menus_typography_menu-dropdown_2oGkX","menu-item":"menus_typography_menu-item_QSUt6","shortcut":"menus_typography_shortcut_5kPnH","shortcut-key":"menus_typography_shortcut-key_WhTgH","user-icon":"menus_typography_user-icon_CRNHv","typography-entry":"menus_typography_typography-entry_Y6lvA","typography-selection-wrapper":"menus_typography_typography-selection-wrapper_W6ewx","is-selectable":"menus_typography_is-selectable_O6-D2","typography-sample":"menus_typography_typography-sample_6ruld","typography-name":"menus_typography_typography-name_b14xj","typography-font":"menus_typography_typography-font_hJIgO","selected":"menus_typography_selected_Ka-O9","typography-sample-input":"menus_typography_typography-sample-input_u2i8b","adv-typography-name":"menus_typography_adv-typography-name_PvB1X","name":"menus_typography_name_1SJal","font-size-select":"menus_typography_font-size-select_yexav","font-variant-select":"menus_typography_font-variant-select_-OQsO","line-height-input":"menus_typography_line-height-input_SG7be","letter-spacing-input":"menus_typography_letter-spacing-input_LShRc","header":"menus_typography_header_e-rUh","title":"menus_typography_title_uPejx","fonts-list":"menus_typography_fonts-list_ki8X-","label":"menus_typography_label_S-7jI","spin-animation":"menus_typography_spin-animation_8ALMW"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss index 6f0d48a2a..0491e8e2f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.scss @@ -238,7 +238,7 @@ left: 0; height: 100%; width: 100%; - z-index: $z-index-10; + z-index: $z-index-3; .font-selector-dropdown { display: flex; @@ -256,6 +256,7 @@ } } .fonts-list { + @include menuShadow; position: absolute; top: $s-36; left: 0; @@ -268,7 +269,6 @@ padding: $s-2; border-radius: $br-8; background-color: var(--dropdown-background-color); - box-shadow: 0px 0px $s-12 0px var(--menu-shadow-color); } .font-wrapper { padding-bottom: $s-4; diff --git a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.css.json b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.css.json index 5e83dd7e3..e6536eaa5 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_shortcuts_button-primary_aIZ1F","button-secondary":"sidebar_shortcuts_button-secondary_dtWEN","button-tertiary":"sidebar_shortcuts_button-tertiary_3VDIw","shortcuts":"sidebar_shortcuts_shortcuts_cOJNo","shortcuts-header":"sidebar_shortcuts_shortcuts-header_0SZ19","shortcuts-close-button":"sidebar_shortcuts_shortcuts-close-button_gT7kn","button-tag":"sidebar_shortcuts_button-tag_3LImZ","button-icon":"sidebar_shortcuts_button-icon_rCHmV","button-icon-small":"sidebar_shortcuts_button-icon-small_9BnNh","shortcuts-list":"sidebar_shortcuts_shortcuts-list_z7osI","section-title":"sidebar_shortcuts_section-title_Dv7S-","collapsed-shortcuts":"sidebar_shortcuts_collapsed-shortcuts_XrOj5","subsection-title":"sidebar_shortcuts_subsection-title_--5j4","search-field":"sidebar_shortcuts_search-field_cDecA","search-icon":"sidebar_shortcuts_search-icon_NSAwd","search-box":"sidebar_shortcuts_search-box_vmYAl","clear-btn":"sidebar_shortcuts_clear-btn_vRbGu","clear-icon":"sidebar_shortcuts_clear-icon_ZL4ae","icon-wrapper":"sidebar_shortcuts_icon-wrapper_XaR8m","asset-element":"sidebar_shortcuts_asset-element_-zk6N","new-scrollbar":"sidebar_shortcuts_new-scrollbar_bRqNw","shortcuts-title":"sidebar_shortcuts_shortcuts-title_P38o9","input-text":"sidebar_shortcuts_input-text_e9n1x","section":"sidebar_shortcuts_section_Jxkqa","open":"sidebar_shortcuts_open_SxghD","subsection-name":"sidebar_shortcuts_subsection-name_rWvFY","section-name":"sidebar_shortcuts_section-name_SyF9-","subsection-menu":"sidebar_shortcuts_subsection-menu_FdH9L","sub-menu":"sidebar_shortcuts_sub-menu_95jTY","shortcuts-name":"sidebar_shortcuts_shortcuts-name_hPkq6","command-name":"sidebar_shortcuts_command-name_Cujed","keys":"sidebar_shortcuts_keys_-pUnF","key":"sidebar_shortcuts_key_QyU8q","space":"sidebar_shortcuts_space_aODdu","not-found":"sidebar_shortcuts_not-found_bKEb0"} \ No newline at end of file +{"button-primary":"sidebar_shortcuts_button-primary_aIZ1F","button-secondary":"sidebar_shortcuts_button-secondary_dtWEN","button-tertiary":"sidebar_shortcuts_button-tertiary_3VDIw","shortcuts":"sidebar_shortcuts_shortcuts_cOJNo","shortcuts-header":"sidebar_shortcuts_shortcuts-header_0SZ19","shortcuts-close-button":"sidebar_shortcuts_shortcuts-close-button_gT7kn","button-tag":"sidebar_shortcuts_button-tag_3LImZ","button-icon":"sidebar_shortcuts_button-icon_rCHmV","button-icon-small":"sidebar_shortcuts_button-icon-small_9BnNh","shortcuts-list":"sidebar_shortcuts_shortcuts-list_z7osI","section-title":"sidebar_shortcuts_section-title_Dv7S-","collapsed-shortcuts":"sidebar_shortcuts_collapsed-shortcuts_XrOj5","subsection-title":"sidebar_shortcuts_subsection-title_--5j4","search-field":"sidebar_shortcuts_search-field_cDecA","search-icon":"sidebar_shortcuts_search-icon_NSAwd","search-box":"sidebar_shortcuts_search-box_vmYAl","clear-btn":"sidebar_shortcuts_clear-btn_vRbGu","clear-icon":"sidebar_shortcuts_clear-icon_ZL4ae","icon-wrapper":"sidebar_shortcuts_icon-wrapper_XaR8m","asset-element":"sidebar_shortcuts_asset-element_-zk6N","new-scrollbar":"sidebar_shortcuts_new-scrollbar_bRqNw","menu-dropdown":"sidebar_shortcuts_menu-dropdown_JXnjP","menu-item":"sidebar_shortcuts_menu-item_jQMwx","shortcut":"sidebar_shortcuts_shortcut_QSmns","shortcut-key":"sidebar_shortcuts_shortcut-key_WMaSV","user-icon":"sidebar_shortcuts_user-icon_HElXz","shortcuts-title":"sidebar_shortcuts_shortcuts-title_P38o9","input-text":"sidebar_shortcuts_input-text_e9n1x","section":"sidebar_shortcuts_section_Jxkqa","open":"sidebar_shortcuts_open_SxghD","subsection-name":"sidebar_shortcuts_subsection-name_rWvFY","section-name":"sidebar_shortcuts_section-name_SyF9-","subsection-menu":"sidebar_shortcuts_subsection-menu_FdH9L","sub-menu":"sidebar_shortcuts_sub-menu_95jTY","shortcuts-name":"sidebar_shortcuts_shortcuts-name_hPkq6","command-name":"sidebar_shortcuts_command-name_Cujed","keys":"sidebar_shortcuts_keys_-pUnF","key":"sidebar_shortcuts_key_QyU8q","space":"sidebar_shortcuts_space_aODdu","not-found":"sidebar_shortcuts_not-found_bKEb0","spin-animation":"sidebar_shortcuts_spin-animation_4xq0t"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.css.json b/frontend/src/app/main/ui/workspace/sidebar/sitemap.css.json index b74252967..bf92e7793 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.css.json +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.css.json @@ -1 +1 @@ -{"button-primary":"sidebar_sitemap_button-primary_Z-bKW","button-secondary":"sidebar_sitemap_button-secondary_a56LZ","button-tertiary":"sidebar_sitemap_button-tertiary_E2hzd","sitemap":"sidebar_sitemap_sitemap_kvKKx","add-page":"sidebar_sitemap_add-page_r8Ibb","button-tag":"sidebar_sitemap_button-tag_u1NAz","button-icon":"sidebar_sitemap_button-icon_MkibT","button-icon-small":"sidebar_sitemap_button-icon-small_Mhipv","tool-window-content":"sidebar_sitemap_tool-window-content_G-Nut","pages-list":"sidebar_sitemap_pages-list_cb1Mx","page-element":"sidebar_sitemap_page-element_iR9wf","element-list-body":"sidebar_sitemap_element-list-body_OIVac","page-actions":"sidebar_sitemap_page-actions_QTuKw","page-icon":"sidebar_sitemap_page-icon_ujSjM","asset-element":"sidebar_sitemap_asset-element_I1-m4","new-scrollbar":"sidebar_sitemap_new-scrollbar_Pb1-Y","view-only-mode":"sidebar_sitemap_view-only-mode_JrsYg","resize-area":"sidebar_sitemap_resize-area_JgdjZ","dnd-over-top":"sidebar_sitemap_dnd-over-top_kGfcb","dnd-over-bot":"sidebar_sitemap_dnd-over-bot_352W2","dnd-over":"sidebar_sitemap_dnd-over_Sf5e2","page-name":"sidebar_sitemap_page-name_601Ii","element-name":"sidebar_sitemap_element-name_iMex0","on-drag":"sidebar_sitemap_on-drag_v3GM8","selected":"sidebar_sitemap_selected_mCOlT","hidden":"sidebar_sitemap_hidden_viFSn"} \ No newline at end of file +{"button-primary":"sidebar_sitemap_button-primary_Z-bKW","button-secondary":"sidebar_sitemap_button-secondary_a56LZ","button-tertiary":"sidebar_sitemap_button-tertiary_E2hzd","sitemap":"sidebar_sitemap_sitemap_kvKKx","add-page":"sidebar_sitemap_add-page_r8Ibb","button-tag":"sidebar_sitemap_button-tag_u1NAz","button-icon":"sidebar_sitemap_button-icon_MkibT","button-icon-small":"sidebar_sitemap_button-icon-small_Mhipv","tool-window-content":"sidebar_sitemap_tool-window-content_G-Nut","pages-list":"sidebar_sitemap_pages-list_cb1Mx","page-element":"sidebar_sitemap_page-element_iR9wf","element-list-body":"sidebar_sitemap_element-list-body_OIVac","page-actions":"sidebar_sitemap_page-actions_QTuKw","page-icon":"sidebar_sitemap_page-icon_ujSjM","asset-element":"sidebar_sitemap_asset-element_I1-m4","new-scrollbar":"sidebar_sitemap_new-scrollbar_Pb1-Y","menu-dropdown":"sidebar_sitemap_menu-dropdown_jAZ-g","menu-item":"sidebar_sitemap_menu-item_cQrV2","shortcut":"sidebar_sitemap_shortcut_Oywax","shortcut-key":"sidebar_sitemap_shortcut-key_IIYlf","user-icon":"sidebar_sitemap_user-icon_l-DH7","view-only-mode":"sidebar_sitemap_view-only-mode_JrsYg","resize-area":"sidebar_sitemap_resize-area_JgdjZ","dnd-over-top":"sidebar_sitemap_dnd-over-top_kGfcb","dnd-over-bot":"sidebar_sitemap_dnd-over-bot_352W2","dnd-over":"sidebar_sitemap_dnd-over_Sf5e2","page-name":"sidebar_sitemap_page-name_601Ii","element-name":"sidebar_sitemap_element-name_iMex0","on-drag":"sidebar_sitemap_on-drag_v3GM8","selected":"sidebar_sitemap_selected_mCOlT","hidden":"sidebar_sitemap_hidden_viFSn","spin-animation":"sidebar_sitemap_spin-animation_SVOeo"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/text_palette.css.json b/frontend/src/app/main/ui/workspace/text_palette.css.json index f90691b47..7d4bcfd8e 100644 --- a/frontend/src/app/main/ui/workspace/text_palette.css.json +++ b/frontend/src/app/main/ui/workspace/text_palette.css.json @@ -1 +1 @@ -{"button-primary":"workspace_text_palette_button-primary_1umSD","button-secondary":"workspace_text_palette_button-secondary_VOIWz","button-tertiary":"workspace_text_palette_button-tertiary_4AWFN","button-tag":"workspace_text_palette_button-tag_TMcKw","button-icon":"workspace_text_palette_button-icon_bcydd","text-palette":"workspace_text_palette_text-palette_0yeGp","left-arrow":"workspace_text_palette_left-arrow_iSjPL","right-arrow":"workspace_text_palette_right-arrow_cWHr6","button-icon-small":"workspace_text_palette_button-icon-small_wGyH7","asset-element":"workspace_text_palette_asset-element_edxQB","new-scrollbar":"workspace_text_palette_new-scrollbar_51-wH","disabled":"workspace_text_palette_disabled_EF36J","text-palette-content":"workspace_text_palette_text-palette-content_anJb5","text-palette-inside":"workspace_text_palette_text-palette-inside_LgHnf","typography-item":"workspace_text_palette_typography-item_d0vFL","typography-name":"workspace_text_palette_typography-name_NVBRv","typography-font":"workspace_text_palette_typography-font_paqmC","typography-data":"workspace_text_palette_typography-data_eKyme","mid-item":"workspace_text_palette_mid-item_uTcD2","small-item":"workspace_text_palette_small-item_1Y6mx"} \ No newline at end of file +{"button-primary":"workspace_text_palette_button-primary_1umSD","button-secondary":"workspace_text_palette_button-secondary_VOIWz","button-tertiary":"workspace_text_palette_button-tertiary_4AWFN","button-tag":"workspace_text_palette_button-tag_TMcKw","button-icon":"workspace_text_palette_button-icon_bcydd","text-palette":"workspace_text_palette_text-palette_0yeGp","left-arrow":"workspace_text_palette_left-arrow_iSjPL","right-arrow":"workspace_text_palette_right-arrow_cWHr6","button-icon-small":"workspace_text_palette_button-icon-small_wGyH7","asset-element":"workspace_text_palette_asset-element_edxQB","new-scrollbar":"workspace_text_palette_new-scrollbar_51-wH","menu-dropdown":"workspace_text_palette_menu-dropdown_IFwlC","menu-item":"workspace_text_palette_menu-item_kSAv3","shortcut":"workspace_text_palette_shortcut_L4FpC","shortcut-key":"workspace_text_palette_shortcut-key_zksbN","user-icon":"workspace_text_palette_user-icon_xRT71","disabled":"workspace_text_palette_disabled_EF36J","text-palette-content":"workspace_text_palette_text-palette-content_anJb5","text-palette-inside":"workspace_text_palette_text-palette-inside_LgHnf","typography-item":"workspace_text_palette_typography-item_d0vFL","typography-name":"workspace_text_palette_typography-name_NVBRv","typography-font":"workspace_text_palette_typography-font_paqmC","typography-data":"workspace_text_palette_typography-data_eKyme","mid-item":"workspace_text_palette_mid-item_uTcD2","small-item":"workspace_text_palette_small-item_1Y6mx","spin-animation":"workspace_text_palette_spin-animation_RlzM-"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/text_palette.scss b/frontend/src/app/main/ui/workspace/text_palette.scss index 0e8fab650..6e82f1050 100644 --- a/frontend/src/app/main/ui/workspace/text_palette.scss +++ b/frontend/src/app/main/ui/workspace/text_palette.scss @@ -17,7 +17,7 @@ height: 100%; width: $s-24; padding: 0; - z-index: $z-index-4; + z-index: $z-index-2; svg { @extend .button-icon; } diff --git a/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.css.json b/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.css.json index 0aedf625f..c050d4818 100644 --- a/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.css.json +++ b/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.css.json @@ -1 +1 @@ -{"button-primary":"workspace_text_palette_ctx_menu_button-primary_bkGXB","button-secondary":"workspace_text_palette_ctx_menu_button-secondary_mbPs7","button-tertiary":"workspace_text_palette_ctx_menu_button-tertiary_Z74wM","button-tag":"workspace_text_palette_ctx_menu_button-tag_OmlzA","button-icon":"workspace_text_palette_ctx_menu_button-icon_oklnh","button-icon-small":"workspace_text_palette_ctx_menu_button-icon-small_ebriD","workspace-context-menu":"workspace_text_palette_ctx_menu_workspace-context-menu_OShZn","palette-library":"workspace_text_palette_ctx_menu_palette-library_pDyi5","selected":"workspace_text_palette_ctx_menu_selected_k3kOd","icon-wrapper":"workspace_text_palette_ctx_menu_icon-wrapper_Xoj9o","file-library":"workspace_text_palette_ctx_menu_file-library_t-25M","asset-element":"workspace_text_palette_ctx_menu_asset-element_-ynNV","new-scrollbar":"workspace_text_palette_ctx_menu_new-scrollbar_6G8rs","library-name":"workspace_text_palette_ctx_menu_library-name_TGs9Z","lib-name":"workspace_text_palette_ctx_menu_lib-name_-5-Hj","lib-num":"workspace_text_palette_ctx_menu_lib-num_O7Nbx"} \ No newline at end of file +{"button-primary":"workspace_text_palette_ctx_menu_button-primary_bkGXB","button-secondary":"workspace_text_palette_ctx_menu_button-secondary_mbPs7","button-tertiary":"workspace_text_palette_ctx_menu_button-tertiary_Z74wM","button-tag":"workspace_text_palette_ctx_menu_button-tag_OmlzA","button-icon":"workspace_text_palette_ctx_menu_button-icon_oklnh","button-icon-small":"workspace_text_palette_ctx_menu_button-icon-small_ebriD","workspace-context-menu":"workspace_text_palette_ctx_menu_workspace-context-menu_OShZn","palette-library":"workspace_text_palette_ctx_menu_palette-library_pDyi5","selected":"workspace_text_palette_ctx_menu_selected_k3kOd","icon-wrapper":"workspace_text_palette_ctx_menu_icon-wrapper_Xoj9o","file-library":"workspace_text_palette_ctx_menu_file-library_t-25M","asset-element":"workspace_text_palette_ctx_menu_asset-element_-ynNV","new-scrollbar":"workspace_text_palette_ctx_menu_new-scrollbar_6G8rs","menu-dropdown":"workspace_text_palette_ctx_menu_menu-dropdown_2vkCl","menu-item":"workspace_text_palette_ctx_menu_menu-item_bDG-3","shortcut":"workspace_text_palette_ctx_menu_shortcut_szqU2","shortcut-key":"workspace_text_palette_ctx_menu_shortcut-key_CNAAP","user-icon":"workspace_text_palette_ctx_menu_user-icon_C9fc6","library-name":"workspace_text_palette_ctx_menu_library-name_TGs9Z","lib-name":"workspace_text_palette_ctx_menu_lib-name_-5-Hj","lib-num":"workspace_text_palette_ctx_menu_lib-num_O7Nbx","spin-animation":"workspace_text_palette_ctx_menu_spin-animation_y-su6"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.scss b/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.scss index b1bafcd23..202cb2964 100644 --- a/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.scss +++ b/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.scss @@ -13,7 +13,7 @@ max-width: $s-248; padding: $s-4; margin: 0 0 $s-4 0; - z-index: $z-index-10; + z-index: $z-index-3; border-radius: $br-10; background-color: var(--context-menu-background-color); diff --git a/frontend/src/app/main/ui/workspace/viewport/rules.cljs b/frontend/src/app/main/ui/workspace/viewport/rules.cljs index 7ab650a9a..f5ec67de9 100644 --- a/frontend/src/app/main/ui/workspace/viewport/rules.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/rules.cljs @@ -11,6 +11,7 @@ [app.common.data.macros :as dm] [app.common.geom.shapes :as gsh] [app.common.math :as mth] + [app.main.ui.context :as ctx] [app.main.ui.formats :as fmt] [app.main.ui.hooks :as hooks] [app.util.object :as obj] @@ -22,6 +23,7 @@ (def rule-area-size 22) (def rule-area-half-size (/ rule-area-size 2)) (def rules-background "var(--color-gray-50)") +(def new-css-rules-background "var(--dark-gray-1)") (def selection-area-color "var(--color-primary)") (def selection-area-opacity 0.3) (def over-number-size 50) @@ -116,7 +118,9 @@ [{:keys [zoom zoom-inverse vbox axis offset]}] (let [rules-width (* rules-width zoom-inverse) step (calculate-step-size zoom) - clip-id (str "clip-rule-" (d/name axis))] + clip-id (str "clip-rule-" (d/name axis)) + new-css-system (mf/use-ctx ctx/new-css-system) + rules-background (if new-css-system new-css-rules-background rules-background)] [:* (let [{:keys [x y width height]} (get-background-area vbox zoom-inverse axis)] @@ -134,11 +138,11 @@ minv (* (mth/ceil (/ minv step)) step) maxv (min end 100000) maxv (* (mth/floor (/ maxv step)) step) - + ;; These extra operations ensure that we are selecting a frame its initial location is rendered in the rule minv (+ minv (mod offset step)) maxv (+ maxv (mod offset step))] - + (for [step-val (range minv (inc maxv) step)] (let [{:keys [text-x text-y line-x1 line-y1 line-x2 line-y2]} (get-rule-axis step-val vbox zoom-inverse axis)] @@ -165,7 +169,9 @@ (mf/defc selection-area [{:keys [vbox zoom-inverse selection-rect offset-x offset-y]}] ;; When using the format-number callls we consider if the guide is associated to a frame and we show the position relative to it with the offset - [:g.selection-area + (let [new-css-system (mf/use-ctx ctx/new-css-system) + rules-background (if new-css-system new-css-rules-background rules-background)] + [:g.selection-area [:g [:rect {:x (:x selection-rect) :y (:y vbox) @@ -247,7 +253,7 @@ :style {:font-size (* font-size zoom-inverse) :font-family font-family :fill selection-area-color}} - (fmt/format-number (- (:y1 selection-rect) offset-y))]])]) + (fmt/format-number (- (:y1 selection-rect) offset-y))]])])) (mf/defc rules {::mf/wrap-props false diff --git a/frontend/translations/en.po b/frontend/translations/en.po index b85662e59..815a9e7b7 100644 --- a/frontend/translations/en.po +++ b/frontend/translations/en.po @@ -3260,6 +3260,10 @@ msgstr "Unsaved changes" msgid "workspace.header.viewer" msgstr "View mode (%s)" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.zoom" +msgstr "Zoom" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Fill - Scale to fill" diff --git a/frontend/translations/es.po b/frontend/translations/es.po index 08d4383f4..4aaed3971 100644 --- a/frontend/translations/es.po +++ b/frontend/translations/es.po @@ -3347,6 +3347,10 @@ msgstr "Cambios sin guardar" msgid "workspace.header.viewer" msgstr "Modo de visualización (%s)" +#: src/app/main/ui/workspace/header.cljs +msgid "workspace.header.zoom" +msgstr "Zoom" + #: src/app/main/ui/workspace/header.cljs msgid "workspace.header.zoom-fill" msgstr "Escalar para rellenar"