From 9ed06c448311bff4abbe4a1cacd435f8d64a3eda Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 29 Aug 2023 13:50:42 +0200 Subject: [PATCH] :lipstick: Redesign design tab phase one --- .../align-content-column-around-refactor.svg | 3 + .../align-content-column-between-refactor.svg | 3 + .../align-content-column-center-refactor.svg | 3 + .../align-content-column-end-refactor.svg | 3 + .../align-content-column-evenly-refactor.svg | 3 + .../align-content-column-start-refactor.svg | 3 + ... => align-content-row-around-refactor.svg} | 0 ...=> align-content-row-between-refactor.svg} | 0 ... => align-content-row-center-refactor.svg} | 0 ...svg => align-content-row-end-refactor.svg} | 0 ... => align-content-row-evenly-refactor.svg} | 0 ...g => align-content-row-start-refactor.svg} | 0 .../align-items-column-center-refactor.svg | 3 + .../icons/align-items-column-end-refactor.svg | 3 + .../align-items-column-start-refactor.svg | 3 + ...vg => align-items-row-center-refactor.svg} | 0 ...r.svg => align-items-row-end-refactor.svg} | 0 ...svg => align-items-row-start-refactor.svg} | 0 .../images/icons/align-items-start.svg | 3 - .../align-self-column-bottom-refactor.svg | 3 + .../align-self-column-center-refactor.svg | 3 + .../icons/align-self-column-top-refactor.svg | 3 + .../icons/align-self-row-center-refactor.svg | 3 + .../icons/align-self-row-left-refactor.svg | 3 + .../icons/align-self-row-right-refactor.svg | 3 + .../images/icons/clip-content-refactor.svg | 3 + .../images/icons/column-refactor.svg | 4 +- .../images/icons/fill-content-refactor.svg | 3 + .../images/icons/fixed-width-refactor.svg | 3 + .../images/icons/gap-horizontal-refactor.svg | 3 + .../images/icons/gap-vertical-refactor.svg | 3 + .../images/icons/hug-content-refactor.svg | 3 + ...justify-content-column-around-refactor.svg | 3 + ...ustify-content-column-between-refactor.svg | 3 + ...justify-content-column-center-refactor.svg | 3 + .../justify-content-column-end-refactor.svg | 3 + ...justify-content-column-evenly-refactor.svg | 3 + .../justify-content-column-start-refactor.svg | 3 + ...> justify-content-row-around-refactor.svg} | 0 ... justify-content-row-between-refactor.svg} | 0 ...> justify-content-row-center-refactor.svg} | 0 ...g => justify-content-row-end-refactor.svg} | 0 ...> justify-content-row-evenly-refactor.svg} | 0 ...=> justify-content-row-start-refactor.svg} | 0 .../images/icons/margin-refactor.svg | 3 + .../styles/common/refactor/basic-rules.scss | 153 +- .../styles/common/refactor/design-tokens.scss | 37 +- .../styles/common/refactor/spacing.scss | 9 +- frontend/src/app/main/style.clj | 27 + .../ui/components/color_bullet_new.css.json | 2 +- .../ui/components/context_menu_a11y.css.json | 2 +- .../ui/components/editable_label.css.json | 2 +- .../app/main/ui/components/radio_buttons.cljs | 81 +- .../main/ui/components/radio_buttons.css.json | 2 +- .../app/main/ui/components/radio_buttons.scss | 35 +- .../main/ui/components/search_bar.css.json | 2 +- .../app/main/ui/components/search_bar.scss | 1 + .../src/app/main/ui/components/select.cljs | 2 - .../app/main/ui/components/select.css.json | 2 +- .../src/app/main/ui/components/select.scss | 4 +- .../app/main/ui/components/tab_container.cljs | 4 +- .../main/ui/components/tab_container.css.json | 2 +- .../app/main/ui/components/tab_container.scss | 2 +- .../src/app/main/ui/components/title_bar.cljs | 6 +- .../app/main/ui/components/title_bar.css.json | 2 +- .../src/app/main/ui/components/title_bar.scss | 8 +- .../app/main/ui/debug/components_preview.cljs | 77 +- .../main/ui/debug/components_preview.css.json | 2 +- .../app/main/ui/debug/components_preview.scss | 22 + frontend/src/app/main/ui/export.css.json | 2 +- frontend/src/app/main/ui/export.scss | 1 + frontend/src/app/main/ui/icons.cljs | 63 +- frontend/src/app/main/ui/measurements.cljs | 18 +- frontend/src/app/main/ui/modal.css.json | 2 +- frontend/src/app/main/ui/workspace.css.json | 2 +- .../main/ui/workspace/color_palette.css.json | 2 +- .../app/main/ui/workspace/color_palette.scss | 1 + .../workspace/color_palette_ctx_menu.css.json | 2 +- .../ui/workspace/color_palette_ctx_menu.scss | 1 + .../main/ui/workspace/context_menu.css.json | 2 +- .../main/ui/workspace/left_header.css.json | 2 +- .../app/main/ui/workspace/left_header.scss | 2 + .../main/ui/workspace/left_toolbar.css.json | 2 +- .../src/app/main/ui/workspace/libraries.cljs | 4 +- .../app/main/ui/workspace/libraries.css.json | 2 +- .../src/app/main/ui/workspace/libraries.scss | 7 +- .../app/main/ui/workspace/palette.css.json | 2 +- .../src/app/main/ui/workspace/palette.scss | 2 + .../app/main/ui/workspace/presence.css.json | 2 +- .../main/ui/workspace/right_header.css.json | 2 +- .../app/main/ui/workspace/right_header.scss | 12 +- .../src/app/main/ui/workspace/sidebar.cljs | 55 +- .../app/main/ui/workspace/sidebar.css.json | 2 +- .../src/app/main/ui/workspace/sidebar.scss | 13 +- .../main/ui/workspace/sidebar/assets.css.json | 2 +- .../app/main/ui/workspace/sidebar/assets.scss | 3 + .../workspace/sidebar/assets/colors.css.json | 2 +- .../ui/workspace/sidebar/assets/colors.scss | 1 + .../ui/workspace/sidebar/assets/common.cljs | 2 +- .../workspace/sidebar/assets/common.css.json | 2 +- .../ui/workspace/sidebar/assets/common.scss | 2 +- .../sidebar/assets/components.css.json | 2 +- .../workspace/sidebar/assets/components.scss | 1 + .../sidebar/assets/file_library.css.json | 2 +- .../sidebar/assets/file_library.scss | 1 + .../sidebar/assets/graphics.css.json | 2 +- .../ui/workspace/sidebar/assets/graphics.scss | 2 + .../workspace/sidebar/assets/groups.css.json | 2 +- .../sidebar/assets/typographies.css.json | 2 +- .../sidebar/assets/typographies.scss | 1 + .../sidebar/collapsable_button.css.json | 2 +- .../ui/workspace/sidebar/history.css.json | 2 +- .../main/ui/workspace/sidebar/history.scss | 1 + .../ui/workspace/sidebar/layer_item.css.json | 2 +- .../main/ui/workspace/sidebar/layer_item.scss | 4 + .../ui/workspace/sidebar/layer_name.css.json | 2 +- .../main/ui/workspace/sidebar/layers.css.json | 2 +- .../app/main/ui/workspace/sidebar/layers.scss | 3 + .../main/ui/workspace/sidebar/options.cljs | 184 ++- .../ui/workspace/sidebar/options.css.json | 1 + .../main/ui/workspace/sidebar/options.scss | 32 + .../sidebar/options/menus/align.cljs | 191 ++- .../sidebar/options/menus/align.css.json | 1 + .../sidebar/options/menus/align.scss | 42 + .../workspace/sidebar/options/menus/bool.cljs | 186 ++- .../sidebar/options/menus/bool.css.json | 1 + .../workspace/sidebar/options/menus/bool.scss | 40 + .../sidebar/options/menus/layer.cljs | 134 +- .../sidebar/options/menus/layer.css.json | 1 + .../sidebar/options/menus/layer.scss | 83 ++ .../options/menus/layout_container.cljs | 1314 ++++++++++++----- .../options/menus/layout_container.css.json | 1 + .../options/menus/layout_container.scss | 236 +++ .../sidebar/options/menus/layout_item.cljs | 829 ++++++++--- .../options/menus/layout_item.css.json | 1 + .../sidebar/options/menus/layout_item.scss | 198 +++ .../sidebar/options/menus/measures.cljs | 585 ++++++-- .../sidebar/options/menus/measures.css.json | 1 + .../sidebar/options/menus/measures.scss | 317 ++++ .../sidebar/options/menus/typography.cljs | 6 +- .../sidebar/options/menus/typography.css.json | 2 +- .../sidebar/options/menus/typography.scss | 16 + .../sidebar/options/shapes/bool.cljs | 11 +- .../sidebar/options/shapes/circle.cljs | 9 +- .../sidebar/options/shapes/frame.cljs | 7 +- .../sidebar/options/shapes/group.cljs | 3 +- .../sidebar/options/shapes/image.cljs | 9 +- .../sidebar/options/shapes/multiple.cljs | 5 +- .../sidebar/options/shapes/path.cljs | 7 +- .../sidebar/options/shapes/rect.cljs | 7 +- .../sidebar/options/shapes/text.cljs | 8 +- .../ui/workspace/sidebar/shortcuts.css.json | 2 +- .../main/ui/workspace/sidebar/shortcuts.scss | 5 + .../main/ui/workspace/sidebar/sitemap.cljs | 3 +- .../ui/workspace/sidebar/sitemap.css.json | 2 +- .../main/ui/workspace/sidebar/sitemap.scss | 7 +- .../main/ui/workspace/text_palette.css.json | 2 +- .../workspace/text_palette_ctx_menu.css.json | 2 +- .../ui/workspace/text_palette_ctx_menu.scss | 1 + 159 files changed, 4150 insertions(+), 1171 deletions(-) create mode 100644 frontend/resources/images/icons/align-content-column-around-refactor.svg create mode 100644 frontend/resources/images/icons/align-content-column-between-refactor.svg create mode 100644 frontend/resources/images/icons/align-content-column-center-refactor.svg create mode 100644 frontend/resources/images/icons/align-content-column-end-refactor.svg create mode 100644 frontend/resources/images/icons/align-content-column-evenly-refactor.svg create mode 100644 frontend/resources/images/icons/align-content-column-start-refactor.svg rename frontend/resources/images/icons/{align-content-space-around-refactor.svg => align-content-row-around-refactor.svg} (100%) rename frontend/resources/images/icons/{align-content-space-between-refactor.svg => align-content-row-between-refactor.svg} (100%) rename frontend/resources/images/icons/{align-content-center-refactor.svg => align-content-row-center-refactor.svg} (100%) rename frontend/resources/images/icons/{align-content-end-refactor.svg => align-content-row-end-refactor.svg} (100%) rename frontend/resources/images/icons/{align-content-space-evenly-refactor.svg => align-content-row-evenly-refactor.svg} (100%) rename frontend/resources/images/icons/{align-content-start-refactor.svg => align-content-row-start-refactor.svg} (100%) create mode 100644 frontend/resources/images/icons/align-items-column-center-refactor.svg create mode 100644 frontend/resources/images/icons/align-items-column-end-refactor.svg create mode 100644 frontend/resources/images/icons/align-items-column-start-refactor.svg rename frontend/resources/images/icons/{align-items-center-refactor.svg => align-items-row-center-refactor.svg} (100%) rename frontend/resources/images/icons/{align-items-end-refactor.svg => align-items-row-end-refactor.svg} (100%) rename frontend/resources/images/icons/{align-items-start-refactor.svg => align-items-row-start-refactor.svg} (100%) delete mode 100644 frontend/resources/images/icons/align-items-start.svg create mode 100644 frontend/resources/images/icons/align-self-column-bottom-refactor.svg create mode 100644 frontend/resources/images/icons/align-self-column-center-refactor.svg create mode 100644 frontend/resources/images/icons/align-self-column-top-refactor.svg create mode 100644 frontend/resources/images/icons/align-self-row-center-refactor.svg create mode 100644 frontend/resources/images/icons/align-self-row-left-refactor.svg create mode 100644 frontend/resources/images/icons/align-self-row-right-refactor.svg create mode 100644 frontend/resources/images/icons/clip-content-refactor.svg create mode 100644 frontend/resources/images/icons/fill-content-refactor.svg create mode 100644 frontend/resources/images/icons/fixed-width-refactor.svg create mode 100644 frontend/resources/images/icons/gap-horizontal-refactor.svg create mode 100644 frontend/resources/images/icons/gap-vertical-refactor.svg create mode 100644 frontend/resources/images/icons/hug-content-refactor.svg create mode 100644 frontend/resources/images/icons/justify-content-column-around-refactor.svg create mode 100644 frontend/resources/images/icons/justify-content-column-between-refactor.svg create mode 100644 frontend/resources/images/icons/justify-content-column-center-refactor.svg create mode 100644 frontend/resources/images/icons/justify-content-column-end-refactor.svg create mode 100644 frontend/resources/images/icons/justify-content-column-evenly-refactor.svg create mode 100644 frontend/resources/images/icons/justify-content-column-start-refactor.svg rename frontend/resources/images/icons/{justify-content-space-around-refactor.svg => justify-content-row-around-refactor.svg} (100%) rename frontend/resources/images/icons/{justify-content-space-between-refactor.svg => justify-content-row-between-refactor.svg} (100%) rename frontend/resources/images/icons/{justify-content-center-refactor.svg => justify-content-row-center-refactor.svg} (100%) rename frontend/resources/images/icons/{justify-content-end-refactor.svg => justify-content-row-end-refactor.svg} (100%) rename frontend/resources/images/icons/{justify-content-space-evenly-refactor.svg => justify-content-row-evenly-refactor.svg} (100%) rename frontend/resources/images/icons/{justify-content-start-refactor.svg => justify-content-row-start-refactor.svg} (100%) create mode 100644 frontend/resources/images/icons/margin-refactor.svg create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options.scss create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/align.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/align.scss create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.scss create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.css.json create mode 100644 frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss diff --git a/frontend/resources/images/icons/align-content-column-around-refactor.svg b/frontend/resources/images/icons/align-content-column-around-refactor.svg new file mode 100644 index 000000000..a10b0133f --- /dev/null +++ b/frontend/resources/images/icons/align-content-column-around-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-content-column-between-refactor.svg b/frontend/resources/images/icons/align-content-column-between-refactor.svg new file mode 100644 index 000000000..f3a70b757 --- /dev/null +++ b/frontend/resources/images/icons/align-content-column-between-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-content-column-center-refactor.svg b/frontend/resources/images/icons/align-content-column-center-refactor.svg new file mode 100644 index 000000000..04737fd9d --- /dev/null +++ b/frontend/resources/images/icons/align-content-column-center-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-content-column-end-refactor.svg b/frontend/resources/images/icons/align-content-column-end-refactor.svg new file mode 100644 index 000000000..bec340dc7 --- /dev/null +++ b/frontend/resources/images/icons/align-content-column-end-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-content-column-evenly-refactor.svg b/frontend/resources/images/icons/align-content-column-evenly-refactor.svg new file mode 100644 index 000000000..f9f0cdd13 --- /dev/null +++ b/frontend/resources/images/icons/align-content-column-evenly-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-content-column-start-refactor.svg b/frontend/resources/images/icons/align-content-column-start-refactor.svg new file mode 100644 index 000000000..c85b3f48f --- /dev/null +++ b/frontend/resources/images/icons/align-content-column-start-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-content-space-around-refactor.svg b/frontend/resources/images/icons/align-content-row-around-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-content-space-around-refactor.svg rename to frontend/resources/images/icons/align-content-row-around-refactor.svg diff --git a/frontend/resources/images/icons/align-content-space-between-refactor.svg b/frontend/resources/images/icons/align-content-row-between-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-content-space-between-refactor.svg rename to frontend/resources/images/icons/align-content-row-between-refactor.svg diff --git a/frontend/resources/images/icons/align-content-center-refactor.svg b/frontend/resources/images/icons/align-content-row-center-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-content-center-refactor.svg rename to frontend/resources/images/icons/align-content-row-center-refactor.svg diff --git a/frontend/resources/images/icons/align-content-end-refactor.svg b/frontend/resources/images/icons/align-content-row-end-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-content-end-refactor.svg rename to frontend/resources/images/icons/align-content-row-end-refactor.svg diff --git a/frontend/resources/images/icons/align-content-space-evenly-refactor.svg b/frontend/resources/images/icons/align-content-row-evenly-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-content-space-evenly-refactor.svg rename to frontend/resources/images/icons/align-content-row-evenly-refactor.svg diff --git a/frontend/resources/images/icons/align-content-start-refactor.svg b/frontend/resources/images/icons/align-content-row-start-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-content-start-refactor.svg rename to frontend/resources/images/icons/align-content-row-start-refactor.svg diff --git a/frontend/resources/images/icons/align-items-column-center-refactor.svg b/frontend/resources/images/icons/align-items-column-center-refactor.svg new file mode 100644 index 000000000..6685e5b1d --- /dev/null +++ b/frontend/resources/images/icons/align-items-column-center-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-items-column-end-refactor.svg b/frontend/resources/images/icons/align-items-column-end-refactor.svg new file mode 100644 index 000000000..40c753395 --- /dev/null +++ b/frontend/resources/images/icons/align-items-column-end-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-items-column-start-refactor.svg b/frontend/resources/images/icons/align-items-column-start-refactor.svg new file mode 100644 index 000000000..6e71ebd87 --- /dev/null +++ b/frontend/resources/images/icons/align-items-column-start-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-items-center-refactor.svg b/frontend/resources/images/icons/align-items-row-center-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-items-center-refactor.svg rename to frontend/resources/images/icons/align-items-row-center-refactor.svg diff --git a/frontend/resources/images/icons/align-items-end-refactor.svg b/frontend/resources/images/icons/align-items-row-end-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-items-end-refactor.svg rename to frontend/resources/images/icons/align-items-row-end-refactor.svg diff --git a/frontend/resources/images/icons/align-items-start-refactor.svg b/frontend/resources/images/icons/align-items-row-start-refactor.svg similarity index 100% rename from frontend/resources/images/icons/align-items-start-refactor.svg rename to frontend/resources/images/icons/align-items-row-start-refactor.svg diff --git a/frontend/resources/images/icons/align-items-start.svg b/frontend/resources/images/icons/align-items-start.svg deleted file mode 100644 index f7c71a69e..000000000 --- a/frontend/resources/images/icons/align-items-start.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/resources/images/icons/align-self-column-bottom-refactor.svg b/frontend/resources/images/icons/align-self-column-bottom-refactor.svg new file mode 100644 index 000000000..369adddc4 --- /dev/null +++ b/frontend/resources/images/icons/align-self-column-bottom-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-self-column-center-refactor.svg b/frontend/resources/images/icons/align-self-column-center-refactor.svg new file mode 100644 index 000000000..cc1fcae0c --- /dev/null +++ b/frontend/resources/images/icons/align-self-column-center-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-self-column-top-refactor.svg b/frontend/resources/images/icons/align-self-column-top-refactor.svg new file mode 100644 index 000000000..71bb8e702 --- /dev/null +++ b/frontend/resources/images/icons/align-self-column-top-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/align-self-row-center-refactor.svg b/frontend/resources/images/icons/align-self-row-center-refactor.svg new file mode 100644 index 000000000..56976d204 --- /dev/null +++ b/frontend/resources/images/icons/align-self-row-center-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/align-self-row-left-refactor.svg b/frontend/resources/images/icons/align-self-row-left-refactor.svg new file mode 100644 index 000000000..335307663 --- /dev/null +++ b/frontend/resources/images/icons/align-self-row-left-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/align-self-row-right-refactor.svg b/frontend/resources/images/icons/align-self-row-right-refactor.svg new file mode 100644 index 000000000..ea257cea1 --- /dev/null +++ b/frontend/resources/images/icons/align-self-row-right-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/clip-content-refactor.svg b/frontend/resources/images/icons/clip-content-refactor.svg new file mode 100644 index 000000000..38bf4b4ac --- /dev/null +++ b/frontend/resources/images/icons/clip-content-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/column-refactor.svg b/frontend/resources/images/icons/column-refactor.svg index ca681dd0d..0d8fb1875 100644 --- a/frontend/resources/images/icons/column-refactor.svg +++ b/frontend/resources/images/icons/column-refactor.svg @@ -1 +1,3 @@ - \ No newline at end of file + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/fill-content-refactor.svg b/frontend/resources/images/icons/fill-content-refactor.svg new file mode 100644 index 000000000..14b811862 --- /dev/null +++ b/frontend/resources/images/icons/fill-content-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/fixed-width-refactor.svg b/frontend/resources/images/icons/fixed-width-refactor.svg new file mode 100644 index 000000000..1c9a02a12 --- /dev/null +++ b/frontend/resources/images/icons/fixed-width-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/gap-horizontal-refactor.svg b/frontend/resources/images/icons/gap-horizontal-refactor.svg new file mode 100644 index 000000000..10cd32404 --- /dev/null +++ b/frontend/resources/images/icons/gap-horizontal-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/gap-vertical-refactor.svg b/frontend/resources/images/icons/gap-vertical-refactor.svg new file mode 100644 index 000000000..b4e14a345 --- /dev/null +++ b/frontend/resources/images/icons/gap-vertical-refactor.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/resources/images/icons/hug-content-refactor.svg b/frontend/resources/images/icons/hug-content-refactor.svg new file mode 100644 index 000000000..0cbd0e741 --- /dev/null +++ b/frontend/resources/images/icons/hug-content-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-column-around-refactor.svg b/frontend/resources/images/icons/justify-content-column-around-refactor.svg new file mode 100644 index 000000000..bb1510773 --- /dev/null +++ b/frontend/resources/images/icons/justify-content-column-around-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-column-between-refactor.svg b/frontend/resources/images/icons/justify-content-column-between-refactor.svg new file mode 100644 index 000000000..c7720e25f --- /dev/null +++ b/frontend/resources/images/icons/justify-content-column-between-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-column-center-refactor.svg b/frontend/resources/images/icons/justify-content-column-center-refactor.svg new file mode 100644 index 000000000..3d2a12a74 --- /dev/null +++ b/frontend/resources/images/icons/justify-content-column-center-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-column-end-refactor.svg b/frontend/resources/images/icons/justify-content-column-end-refactor.svg new file mode 100644 index 000000000..52f757702 --- /dev/null +++ b/frontend/resources/images/icons/justify-content-column-end-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-column-evenly-refactor.svg b/frontend/resources/images/icons/justify-content-column-evenly-refactor.svg new file mode 100644 index 000000000..927629f76 --- /dev/null +++ b/frontend/resources/images/icons/justify-content-column-evenly-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-column-start-refactor.svg b/frontend/resources/images/icons/justify-content-column-start-refactor.svg new file mode 100644 index 000000000..564d39850 --- /dev/null +++ b/frontend/resources/images/icons/justify-content-column-start-refactor.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/images/icons/justify-content-space-around-refactor.svg b/frontend/resources/images/icons/justify-content-row-around-refactor.svg similarity index 100% rename from frontend/resources/images/icons/justify-content-space-around-refactor.svg rename to frontend/resources/images/icons/justify-content-row-around-refactor.svg diff --git a/frontend/resources/images/icons/justify-content-space-between-refactor.svg b/frontend/resources/images/icons/justify-content-row-between-refactor.svg similarity index 100% rename from frontend/resources/images/icons/justify-content-space-between-refactor.svg rename to frontend/resources/images/icons/justify-content-row-between-refactor.svg diff --git a/frontend/resources/images/icons/justify-content-center-refactor.svg b/frontend/resources/images/icons/justify-content-row-center-refactor.svg similarity index 100% rename from frontend/resources/images/icons/justify-content-center-refactor.svg rename to frontend/resources/images/icons/justify-content-row-center-refactor.svg diff --git a/frontend/resources/images/icons/justify-content-end-refactor.svg b/frontend/resources/images/icons/justify-content-row-end-refactor.svg similarity index 100% rename from frontend/resources/images/icons/justify-content-end-refactor.svg rename to frontend/resources/images/icons/justify-content-row-end-refactor.svg diff --git a/frontend/resources/images/icons/justify-content-space-evenly-refactor.svg b/frontend/resources/images/icons/justify-content-row-evenly-refactor.svg similarity index 100% rename from frontend/resources/images/icons/justify-content-space-evenly-refactor.svg rename to frontend/resources/images/icons/justify-content-row-evenly-refactor.svg diff --git a/frontend/resources/images/icons/justify-content-start-refactor.svg b/frontend/resources/images/icons/justify-content-row-start-refactor.svg similarity index 100% rename from frontend/resources/images/icons/justify-content-start-refactor.svg rename to frontend/resources/images/icons/justify-content-row-start-refactor.svg diff --git a/frontend/resources/images/icons/margin-refactor.svg b/frontend/resources/images/icons/margin-refactor.svg new file mode 100644 index 000000000..b7067d6f9 --- /dev/null +++ b/frontend/resources/images/icons/margin-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 8c4310098..44f6adbfa 100644 --- a/frontend/resources/styles/common/refactor/basic-rules.scss +++ b/frontend/resources/styles/common/refactor/basic-rules.scss @@ -10,39 +10,54 @@ background-color: var(--button-primary-background-color-rest); border: $s-1 solid var(--button-primary-border-color-rest); color: var(--button-primary-foreground-color-rest); + border-radius: $br-8; + svg, + span svg { + stroke: var(--button-primary-foreground-color-rest); + } &:hover { background-color: var(--button-primary-background-color-hover); border: $s-1 solid var(--button-primary-border-color-hover); color: var(--button-primary-foreground-color-hover); - svg { + svg, + span svg { stroke: var(--button-primary-foreground-color-hover); } } - &:focus { + &:focus, + &:focus-visible { outline: none; background-color: var(--button-primary-background-color-focus); - border: $s-1 solid var(--button-primary-boder-color-focus); + border: $s-1 solid var(--button-primary-border-color-focus); color: var(--button-primary-foreground-color-focus); - svg { + svg, + span svg { stroke: var(--button-primary-foreground-color-focus); } } &:active { - border: 1px solid var(--button-border-focus); - outline: none; - } - &:focus-visible { - border: none; + background-color: var(--button-primary-background-color-active); + border: $s-1 solid var(--button-primary-border-color-active); + color: var(--button-primary-foreground-color-active); outline: none; + svg, + span svg { + stroke: var(--button-primary-foreground-color-active); + } } } .button-secondary { @include buttonStyle; @include flexCenter; + border-radius: $br-8; background-color: var(--button-secondary-background-color-rest); border: $s-1 solid var(--button-secondary-border-color-rest); color: var(--button-secondary-foreground-color-rest); + svg, + span svg { + stroke: var(--button-secondary-foreground-color-rest); + } &:hover { background-color: var(--button-secondary-background-color-hover); border: $s-1 solid var(--button-secondary-border-color-hover); @@ -52,55 +67,112 @@ stroke: var(--button-secondary-foreground-color-hover); } } - &:focus { + &:focus, + &:focus-visible { outline: none; background-color: var(--button-secondary-background-color-focus); - border: $s-1 solid var(--button-secondary-boder-color-focus); + border: $s-1 solid var(--button-secondary-border-color-focus); color: var(--button-secondary-foreground-color-focus); - svg { + svg, + span svg { stroke: var(--button-secondary-foreground-color-focus); } } &:active { - border: none; - background-color: transparent; - } - &:focus-visible { - border: none; outline: none; + background-color: var(--button-secondary-background-color-active); + border: $s-1 solid var(--button-secondary-border-color-active); + color: var(--button-secondary-foreground-color-active); + svg, + span svg { + stroke: var(--button-secondary-foreground-color-active); + } } } .button-tertiary { @include buttonStyle; @include flexCenter; + border-radius: $br-8; color: var(--button-tertiary-foreground-color-rest); - svg { + background-color: transparent; + border: $s-1 solid transparent; + svg, + span svg { stroke: var(--button-tertiary-foreground-color-rest); } &:hover { background-color: var(--button-tertiary-background-color-hover); color: var(--button-tertiary-foreground-color-hover); - svg { + border: $s-1 solid var(--button-secondary-border-color-hover); + svg, + span svg { stroke: var(--button-tertiary-foreground-color-hover); } } - &:focus { + &:focus, + &:focus-visible { outline: none; border: $s-1 solid var(--button-tertiary-border-color-focus); background-color: var(--button-tertiary-background-color-focus); color: var(--button-tertiary-foreground-color-focus); - svg { + svg, + span svg { stroke: var(--button-tertiary-foreground-color-focus); } } &:active { - border: $s-1 solid var(--button-tertiary-border-color-focus); outline: none; + border: $s-1 solid transparent; + background-color: var(--button-tertiary-background-color-active); + color: var(--button-tertiary-foreground-color-active); + svg, + span svg { + stroke: var(--button-tertiary-foreground-color-active); + } } +} + +.button-radio { + @include buttonStyle; + @include flexCenter; + border-radius: $br-8; + color: var(--button-radio-foreground-color-rest); + background-color: var(--button-radio-background-color-rest); + border: $s-1 solid var(--button-radio-background-color-rest); + svg, + span svg { + stroke: var(--button-radio-foreground-color-rest); + } + &:hover { + background-color: transparent; + color: var(--button-radio-foreground-color-hover); + border: $s-1 solid transparent; + svg, + span svg { + stroke: var(--button-radio-foreground-color-hover); + } + } + &:focus, &:focus-visible { - border: none; outline: none; + border: $s-1 solid var(--button-radio-border-color-focus); + background-color: var(--button-radio-background-color-focus); + color: var(--button-radio-foreground-color-focus); + svg, + span svg { + stroke: var(--button-radio-foreground-color-focus); + } + } + &:active { + outline: none; + border: $s-1 solid transparent; + background-color: var(--button-radio-background-color-active); + color: var(--button-radio-foreground-color-active); + svg, + span svg { + stroke: var(--button-radio-foreground-color-active); + } } } @@ -153,7 +225,6 @@ width: $s-16; color: transparent; fill: none; - stroke: var(--icon-foreground); stroke-width: 1px; } @@ -178,10 +249,9 @@ align-items: center; height: $s-32; border-radius: $br-8; - margin-bottom: $s-4; padding: $s-8 $s-12; background-color: var(--assets-item-background-color); - color: var(--assets-item-name-foreground-color); + color: var(--assets-item-name-foreground-color-hover); &:hover, &:focus-within { background-color: var(--assets-item-background-color-hover); @@ -189,6 +259,37 @@ } } +.input-element { + @include titleTipography; + display: flex; + align-items: center; + height: $s-32; + border-radius: $br-8; + background-color: var(--input-background-color); + color: var(--input-foreground-color); + span { + color: var(--input-foreground-color); + } + input { + @include removeInputStyle; + @include titleTipography; + color: var(--input-foreground-color); + height: $s-32; + } + ::placeholder { + color: var(--input-placeholder-color); + } + &:hover, + &:focus-within { + span { + color: var(--input-foreground-color); + } + input { + color: var(--input-foreground-color-active); + } + background-color: var(--input-background-color-hover); + } +} .new-scrollbar { ::-webkit-scrollbar { background-color: transparent; diff --git a/frontend/resources/styles/common/refactor/design-tokens.scss b/frontend/resources/styles/common/refactor/design-tokens.scss index 67f8b88ed..5de28c2db 100644 --- a/frontend/resources/styles/common/refactor/design-tokens.scss +++ b/frontend/resources/styles/common/refactor/design-tokens.scss @@ -14,13 +14,10 @@ --panel-background-color: var(--color-background-primary); --panel-title-background-color: var(--color-background-secondary); - --button-background-hover: var(--color-background-quaternary); --button-foreground-hover: var(--color-accent-primary); - --button-foreground-active: var(--color-foreground-primary); --button-background-focus: var(--color-background-secondary); --button-foreground-focus: var(--color-foreground-primary); --button-border-focus: var(--color-accent-primary); - --button-border: var(--color-background-tertiary); --button-foreground-color-disabled: var(--color-background-quaternary); --button-primary-background-color-rest: var(--color-accent-primary); @@ -29,22 +26,22 @@ --button-primary-background-color-hover: var(--color-accent-tertiary); --button-primary-border-color-hover: var(--color-accent-tertiary); --button-primary-foreground-color-hover: var(--color-background-secondary); - --button-primary-background-color-selected: var(--color-background-secondary); - --button-primary-border-color-selected: var(--color-background-secondary); - --button-primary-foreground-color-selected: var(--color-accent-primary); + --button-primary-background-color-active: var(--color-background-secondary); + --button-primary-border-color-active: var(--color-background-secondary); + --button-primary-foreground-color-active: var(--color-accent-primary); --button-primary-background-color-focus: var(--color-background-tertiary); --button-primary-border-color-focus: var(--color-accent-primary); --button-primary-foreground-color-focus: var(--color-foreground-secondary); --button-secondary-background-color-rest: var(--color-background-tertiary); - --button-secondary-border-color-rest: var(--color-background-quaternary); + --button-secondary-border-color-rest: var(--color-background-tertiary); --button-secondary-foreground-color-rest: var(--color-foreground-secondary); --button-secondary-background-color-hover: var(--color-background-quaternary); --button-secondary-border-color-hover: var(--color-background-quaternary); --button-secondary-foreground-color-hover: var(--color-accent-primary); - --button-secondary-background-color-selected: var(--color-background-secondary); - --button-secondary-border-color-selected: var(--color-background-quaternary); - --button-secondary-foreground-color-selected: var(--color-accent-primary); + --button-secondary-background-color-active: var(--color-background-secondary); + --button-secondary-border-color-active: var(--color-background-quaternary); + --button-secondary-foreground-color-active: var(--color-accent-primary); --button-secondary-background-color-focus: var(--color-background-tertiary); --button-secondary-border-color-focus: var(--color-accent-primary); --button-secondary-foreground-color-focus: var(--color-foreground-secondary); @@ -53,13 +50,25 @@ --button-tertiary-background-color-hover: var(--color-background-quaternary); --button-tertiary-border-color-hover: var(--color-background-quaternary); --button-tertiary-foreground-color-hover: var(--color-accent-primary); - --button-tertiary-background-color-selected: var(--color-background-secondary); - --button-tertiary-border-color-selected: var(--color-background-quaternary); - --button-tertiary-foreground-color-selected: var(--color-accent-primary); + --button-tertiary-background-color-active: var(--color-background-secondary); + --button-tertiary-border-color-active: var(--color-background-quaternary); + --button-tertiary-foreground-color-active: var(--color-accent-primary); --button-tertiary-background-color-focus: var(--color-background-tertiary); --button-tertiary-border-color-focus: var(--color-accent-primary); --button-tertiary-foreground-color-focus: var(--color-foreground-primary); + --button-radio-background-color-rest: var(--color-background-tertiary); + --button-radio-border-color-rest: var(--color-background-tertiary); + --button-radio-foreground-color-rest: var(--color-foreground-secondary); + --button-radio-border-color-hover: var(--color-background-quaternary); + --button-radio-foreground-color-hover: var(--color-accent-primary); + --button-radio-background-color-active: var(--color-background-quaternary); + --button-radio-border-color-active: var(--color-background-quaternary); + --button-radio-foreground-color-active: var(--color-accent-primary); + --button-radio-background-color-focus: var(--color-background-tertiary); + --button-radio-border-color-focus: var(--color-accent-primary); + --button-radio-foreground-color-focus: var(--color-foreground-secondary); + --button-warning-background-color-rest: var(--warning-color); --button-warning-border-color-rest: var(--warning-color); --button-warning-foreground-color-rest: var(--color-background-secondary); @@ -109,7 +118,9 @@ --input-placeholder-color: var(--color-foreground-secondary); --input-foreground-color: var(--color-foreground-secondary); --input-foreground-color-active: var(--color-foreground-primary); + --input-foreground-color-disabled: var(--color-foreground-secondary); --input-border-color-active: var(--color-accent-primary); + --input-border-color-disabled: var(--color-background-quaternary); --input-border-outline-color-active: var(--color-accent-primary-muted); --input-border-color-focus: var(--color-accent-primary); diff --git a/frontend/resources/styles/common/refactor/spacing.scss b/frontend/resources/styles/common/refactor/spacing.scss index abff5efeb..f2e18cd90 100644 --- a/frontend/resources/styles/common/refactor/spacing.scss +++ b/frontend/resources/styles/common/refactor/spacing.scss @@ -33,22 +33,29 @@ $s-80: calc(var(--s-4) * 20); $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-104: calc(var(--s-4) * 26); +$s-108: calc(var(--s-4) * 27); $s-116: calc(var(--s-4) * 29); $s-120: calc(var(--s-4) * 30); +$s-124: calc(var(--s-4) * 31); $s-136: calc(var(--s-4) * 34); +$s-140: calc(var(--s-4) * 35); $s-148: calc(var(--s-4) * 37); +$s-156: calc(var(--s-4) * 39); $s-152: calc(var(--s-4) * 38); $s-160: calc(var(--s-4) * 40); $s-168: calc(var(--s-4) * 42); $s-180: calc(var(--s-4) * 45); $s-184: calc(var(--s-4) * 46); +$s-188: calc(var(--s-4) * 47); $s-192: calc(var(--s-4) * 48); $s-196: calc(var(--s-4) * 49); $s-200: calc(var(--s-4) * 50); $s-216: calc(var(--s-4) * 54); +$s-220: calc(var(--s-4) * 55); $s-240: calc(var(--s-4) * 60); $s-248: calc(var(--s-4) * 62); +$s-252: calc(var(--s-4) * 63); $s-256: calc(var(--s-4) * 64); $s-272: calc(var(--s-4) * 68); $s-276: calc(var(--s-4) * 69); diff --git a/frontend/src/app/main/style.clj b/frontend/src/app/main/style.clj index 2ffbcc604..bbb5a77bf 100644 --- a/frontend/src/app/main/style.clj +++ b/frontend/src/app/main/style.clj @@ -86,6 +86,33 @@ :else `(if ~v ~cls "")))))) (interpose " "))) +;; A macro that simplifies setting up classes using css-modules and enhaces the +;; migration process from the old approach. +;; +;; Using this as example: +;; +;; (stl/css-case new-css-system +;; :left-settings-bar true +;; :old-css/settings-bar true +;; :global/two-row (<= size 300)) +;; +;; The first argument to the `css-case` macro is optional an if you don't +;; provide it, it will behave in the same ways as if the `new-css-system` has +;; value of `true`. +;; +;; The non-namespaces keywords passed are treated conditionally on the +;; `new-css-system` value. If is `true`, it will perform a lookup on modules for +;; corresponding (hashed) class-name; if no class name is found, the keyword +;; will be stringigied and used as-is (with no changes). If the `new-css-system` +;; is false, it will perform the same operation as if no class is found on +;; modules (leaving it as string with no modification). +;; +;; Later, we have two modifiers (namespaces): `global` which specifies +;; explicitly that no modules lookup should be performed; and `old-css` which +;; only puts the class if `new-css-system` is `false`. +;; +;; NOTE: the same behavior applies to the `css` macro + (defmacro css-case [& params] (let [fname (-> *ns* meta :file) 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 e0da8a18c..e6bc731f5 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-warning":"components_color_bullet_new_button-warning_OxPWp","button-disabled":"components_color_bullet_new_button-disabled_Zx4Ur","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","link":"components_color_bullet_new_link_S2meo","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 +{"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-radio":"components_color_bullet_new_button-radio_gpyOW","button-warning":"components_color_bullet_new_button-warning_OxPWp","button-disabled":"components_color_bullet_new_button-disabled_Zx4Ur","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","link":"components_color_bullet_new_link_S2meo","asset-element":"components_color_bullet_new_asset-element_s3Yqx","input-element":"components_color_bullet_new_input-element_jCoxE","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 53ef52a33..d6ee660e2 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-warning":"components_context_menu_a11y_button-warning_7dlJY","button-disabled":"components_context_menu_a11y_button-disabled_WROtA","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","link":"components_context_menu_a11y_link_86RaE","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 +{"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-radio":"components_context_menu_a11y_button-radio_vymcq","button-warning":"components_context_menu_a11y_button-warning_7dlJY","button-disabled":"components_context_menu_a11y_button-disabled_WROtA","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","link":"components_context_menu_a11y_link_86RaE","asset-element":"components_context_menu_a11y_asset-element_r3q1-","input-element":"components_context_menu_a11y_input-element_QQ1zU","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/editable_label.css.json b/frontend/src/app/main/ui/components/editable_label.css.json index f71e14a1c..146042fc6 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-warning":"components_editable_label_button-warning_4iYB7","button-disabled":"components_editable_label_button-disabled_oVR0N","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","link":"components_editable_label_link_pHsNR","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 +{"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-radio":"components_editable_label_button-radio_nKlBJ","button-warning":"components_editable_label_button-warning_4iYB7","button-disabled":"components_editable_label_button-disabled_oVR0N","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","link":"components_editable_label_link_pHsNR","asset-element":"components_editable_label_asset-element_Bs5bh","input-element":"components_editable_label_input-element_VRvJr","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.cljs b/frontend/src/app/main/ui/components/radio_buttons.cljs index 1f31379e9..06b416cb6 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.cljs +++ b/frontend/src/app/main/ui/components/radio_buttons.cljs @@ -8,7 +8,6 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] - [app.common.math :as math] [app.main.ui.formats :as fmt] [app.util.dom :as dom] [rumext.v2 :as mf])) @@ -21,55 +20,80 @@ [props] (let [context (mf/use-ctx context) - icon (unchecked-get props "icon") - id (unchecked-get props "id") - value (unchecked-get props "value") + icon (unchecked-get props "icon") + id (unchecked-get props "id") + value (unchecked-get props "value") + disabled (unchecked-get props "disabled") + title (unchecked-get props "title") + unique-key (unchecked-get props "unique-key") + icon-class (unchecked-get props "icon-class") - on-change (unchecked-get context "on-change") - selected (unchecked-get context "selected") - name (unchecked-get context "name") + on-change (unchecked-get context "on-change") + selected (unchecked-get context "selected") + name (unchecked-get context "name") + encode-fn (unchecked-get context "encode-fn") - encode-fn (unchecked-get context "encode-fn") - checked? (= selected value)] + checked? (= selected value)] [:label {:for id + :title title + :key unique-key + :tabIndex "0" :class (stl/css-case :radio-icon true - :checked checked?)} + :checked checked? + :disabled disabled)} - (when (some? icon) icon) + (if (some? icon) + [:span {:class (when icon-class icon-class)} + icon] + [:span {:class (stl/css :title-name)} + (encode-fn value)]) [:input {:id id :on-change on-change :type "radio" :name name + :disabled disabled :value (encode-fn value) :checked checked?}]])) (mf/defc nilable-option {::mf/wrap-props false} [props] - (let [context (mf/use-ctx context) - icon (unchecked-get props "icon") - id (unchecked-get props "id") - value (unchecked-get props "value") + (let [context (mf/use-ctx context) + icon (unchecked-get props "icon") + id (unchecked-get props "id") + value (unchecked-get props "value") + disabled (unchecked-get props "disabled") + unique-key (unchecked-get props "unique-key") + icon-class (unchecked-get props "icon-class") - on-change (unchecked-get context "on-change") - selected (unchecked-get context "selected") - name (unchecked-get context "name") + on-change (unchecked-get context "on-change") + selected (unchecked-get context "selected") + name (unchecked-get context "name") - encode-fn (unchecked-get context "encode-fn") - checked? (= selected value)] + encode-fn (unchecked-get context "encode-fn") + checked? (= selected value)] [:label {:for id + :key unique-key :class (stl/css-case :radio-icon true + :disabled disabled :checked checked?)} - icon + + (if (some? icon) + [:span {:class (when icon-class icon-class)} + icon] + [:span {:class (stl/css :title-name)} + (encode-fn value)]) + [:input {:id id :on-change on-change :type "checkbox" :name name + :disabled disabled :value (encode-fn value) :checked checked?}]])) @@ -80,6 +104,8 @@ on-change (unchecked-get props "on-change") selected (unchecked-get props "selected") name (unchecked-get props "name") + class (unchecked-get props "class") + wide (unchecked-get props "wide") encode-fn (d/nilv (unchecked-get props "encode-fn") identity) decode-fn (d/nilv (unchecked-get props "encode-fn") identity) @@ -89,9 +115,11 @@ 1) width (mf/with-memo [nitems] - (fmt/format-pixels - (+ (math/pow 2 nitems) - (* 28 nitems)))) + (if (= wide true) + "unset" + (fmt/format-pixels + (+ (* 4 (- nitems 1)) + (* 28 nitems))))) on-change' (mf/use-fn @@ -110,6 +138,7 @@ :decode-fn decode-fn})] [:& (mf/provider context) {:value context-value} - [:div {:class (stl/css :radio-btn-wrapper) - :style {:width width}} + [:div {:class (stl/css-case :radio-btn-wrapper true + class true) + :style {:width width}} children]])) 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 1897a51ea..ab99d2095 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-warning":"components_radio_buttons_button-warning_lkAzy","button-disabled":"components_radio_buttons_button-disabled_C-rUC","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","link":"components_radio_buttons_link_cdc3r","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 +{"button-primary":"components_radio_buttons_button-primary_-XZNO","button-secondary":"components_radio_buttons_button-secondary_yj3Oe","button-tertiary":"components_radio_buttons_button-tertiary_s2RvI","button-radio":"components_radio_buttons_button-radio_AfWrP","radio-icon":"components_radio_buttons_radio-icon_1OnG1","button-warning":"components_radio_buttons_button-warning_lkAzy","button-disabled":"components_radio_buttons_button-disabled_C-rUC","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","link":"components_radio_buttons_link_cdc3r","asset-element":"components_radio_buttons_asset-element_l2wMX","input-element":"components_radio_buttons_input-element_iC9Tc","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","title-name":"components_radio_buttons_title-name_UZBUe","checked":"components_radio_buttons_checked_sjVzy","disabled":"components_radio_buttons_disabled_V4CO5","spin-animation":"components_radio_buttons_spin-animation_iz1sC"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/components/radio_buttons.scss b/frontend/src/app/main/ui/components/radio_buttons.scss index 6d37280b1..a76134641 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.scss +++ b/frontend/src/app/main/ui/components/radio_buttons.scss @@ -10,12 +10,12 @@ @include flexCenter; border-radius: $br-8; height: $s-32; - background-color: var(--radio-btns-background-color); + background-color: var(--input-background-color); } .radio-icon { - @extend .button-tertiary; + @extend .button-radio; height: $s-28; - width: 100%; + flex-grow: 1; border-radius: $s-6; border: solid $s-2 transparent; box-sizing: content-box; @@ -26,17 +26,38 @@ @extend .button-icon; stroke: var(--radio-btn-foreground-color); } - &:hover { - border: solid $s-2 var(--radio-btns-background-color); + .title-name { + @include tabTitleTipography; + color: var(--radio-btn-foreground-color); } + &.checked { background-color: var(--radio-btn-background-color-selected); - border: $s-2 solid var(--radio-btn-border-color-selected); svg { stroke: var(--radio-btn-foreground-color-selected); } + .title-name { + color: var(--radio-btn-foreground-color-selected); + } + } + + &.disabled { + cursor: default; + svg { + stroke: var(--button-foreground-color-disabled); + } + .title-name { + color: var(--button-foreground-color-disabled); + } &:hover { - border: $s-2 solid var(--radio-btn-border-color-selected); + border: none; + background-color: transparent; + svg { + stroke: var(--button-foreground-color-disabled); + } + .title-name { + color: var(--button-foreground-color-disabled); + } } } } 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 cac053f69..dd3201b23 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-warning":"components_search_bar_button-warning_A-XnD","button-disabled":"components_search_bar_button-disabled_Y9B7M","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","link":"components_search_bar_link_VjGo-","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 +{"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-radio":"components_search_bar_button-radio_vMkry","button-warning":"components_search_bar_button-warning_A-XnD","button-disabled":"components_search_bar_button-disabled_Y9B7M","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","link":"components_search_bar_link_VjGo-","asset-element":"components_search_bar_asset-element_rH-5k","input-element":"components_search_bar_input-element_9SCvY","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/search_bar.scss b/frontend/src/app/main/ui/components/search_bar.scss index 671ec54b9..9f568ea28 100644 --- a/frontend/src/app/main/ui/components/search_bar.scss +++ b/frontend/src/app/main/ui/components/search_bar.scss @@ -56,6 +56,7 @@ svg { @extend .button-icon-small; color: transparent; + stroke: var(--icon-foreground); } } } diff --git a/frontend/src/app/main/ui/components/select.cljs b/frontend/src/app/main/ui/components/select.cljs index 067df24cd..93509d123 100644 --- a/frontend/src/app/main/ui/components/select.cljs +++ b/frontend/src/app/main/ui/components/select.cljs @@ -107,8 +107,6 @@ [:span {:class (css :label)} label] [:span {:class (css :check-icon)} i/tick-refactor]])))]]] - - [:div.custom-select {:on-click open-dropdown :class class} [:span current-label] [:span.dropdown-button i/arrow-down] diff --git a/frontend/src/app/main/ui/components/select.css.json b/frontend/src/app/main/ui/components/select.css.json index c9ab74128..3d1780221 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-warning":"components_select_button-warning_i4KNg","button-disabled":"components_select_button-disabled_1r9-1","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","link":"components_select_link_tQfh4","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 +{"button-primary":"components_select_button-primary_peYzv","button-secondary":"components_select_button-secondary_Kse6w","button-tertiary":"components_select_button-tertiary_srwoV","button-radio":"components_select_button-radio_xDb5D","button-warning":"components_select_button-warning_i4KNg","button-disabled":"components_select_button-disabled_1r9-1","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","link":"components_select_link_tQfh4","asset-element":"components_select_asset-element_5vxj7","input-element":"components_select_input-element_-7lw0","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 4e21782f1..495045627 100644 --- a/frontend/src/app/main/ui/components/select.scss +++ b/frontend/src/app/main/ui/components/select.scss @@ -22,6 +22,7 @@ svg { @extend .button-icon; transform: rotate(90deg); + stroke: var(--icon-foreground); } } .custom-select-dropdown { @@ -42,7 +43,7 @@ display: flex; align-items: center; height: $s-32; - padding: $s-8; + padding: 0 $s-8; border-radius: $br-6; color: var(--menu-foreground-color); .label { @@ -55,6 +56,7 @@ svg { @extend .button-icon-small; visibility: hidden; + stroke: var(--icon-foreground); } } diff --git a/frontend/src/app/main/ui/components/tab_container.cljs b/frontend/src/app/main/ui/components/tab_container.cljs index ea37a89f8..2b11ec5f1 100644 --- a/frontend/src/app/main/ui/components/tab_container.cljs +++ b/frontend/src/app/main/ui/components/tab_container.cljs @@ -36,6 +36,7 @@ collapsable? (unchecked-get props "collapsable?") handle-collapse (unchecked-get props "handle-collapse") klass (unchecked-get props "klass") + content-class (unchecked-get props "content-class") state (mf/use-state #(or selected (-> children first .-props .-id))) selected (or selected @state) @@ -69,5 +70,6 @@ :class (dom/classnames (css :tab-container-tab-title) true (css :current) (= selected id))} title]))]] - [:div {:class (dom/classnames (css :tab-container-content) true)} + [:div {:class (dom/classnames (css :tab-container-content) true + content-class (some? content-class))} (d/seek #(= selected (-> % .-props .-id)) children)]])) 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 e6e633e9f..4905fe2bc 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-warning":"components_tab_container_button-warning_SFGWo","button-disabled":"components_tab_container_button-disabled_FZXHD","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","link":"components_tab_container_link_KmrN7","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 +{"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-radio":"components_tab_container_button-radio_oNen8","button-warning":"components_tab_container_button-warning_SFGWo","button-disabled":"components_tab_container_button-disabled_FZXHD","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","link":"components_tab_container_link_KmrN7","asset-element":"components_tab_container_asset-element_1-YWa","input-element":"components_tab_container_input-element_m8IEj","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/tab_container.scss b/frontend/src/app/main/ui/components/tab_container.scss index 16ffc2408..911b0367f 100644 --- a/frontend/src/app/main/ui/components/tab_container.scss +++ b/frontend/src/app/main/ui/components/tab_container.scss @@ -17,7 +17,7 @@ } .tab-element { - height: 100%; + height: fit-content; } } .tab-container-tabs { diff --git a/frontend/src/app/main/ui/components/title_bar.cljs b/frontend/src/app/main/ui/components/title_bar.cljs index f418bc7a7..8482f4fb1 100644 --- a/frontend/src/app/main/ui/components/title_bar.cljs +++ b/frontend/src/app/main/ui/components/title_bar.cljs @@ -13,14 +13,14 @@ (mf/defc title-bar {::mf/wrap-props false} - [{:keys [collapsable? collapsed? on-collapsed title children on-btn-click btn-children klass]}] - (let [klass (dm/str (stl/css :title-bar) " " klass)] + [{:keys [collapsable? collapsed? on-collapsed title children on-btn-click btn-children class]}] + (let [klass (dm/str (stl/css :title-bar) " " class)] [:div {:class klass} (if collapsable? [:button {:class (stl/css :toggle-btn) :on-click on-collapsed} [:span {:class (stl/css-case :collased-icon true - :rotated collapsed?)} + :rotated collapsed?)} i/arrow-refactor] [:div {:class (stl/css :title)} title]] [:div {:class (stl/css :title-only)} title]) 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 cd6264eaa..552302dd7 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-warning":"components_title_bar_button-warning_XpojP","button-disabled":"components_title_bar_button-disabled_X72-5","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","link":"components_title_bar_link_m-lOt","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 +{"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-radio":"components_title_bar_button-radio_vhlSa","button-warning":"components_title_bar_button-warning_XpojP","button-disabled":"components_title_bar_button-disabled_X72-5","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","link":"components_title_bar_link_m-lOt","asset-element":"components_title_bar_asset-element_64u6f","input-element":"components_title_bar_input-element_Q0DAR","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/components/title_bar.scss b/frontend/src/app/main/ui/components/title_bar.scss index 029015e5c..98e4595fc 100644 --- a/frontend/src/app/main/ui/components/title_bar.scss +++ b/frontend/src/app/main/ui/components/title_bar.scss @@ -23,11 +23,11 @@ flex-grow: 1; height: 100%; min-height: $s-32; - margin-right: $s-8; + margin-left: $s-8; color: var(--title-foreground-color); } .title-only { - // margin-left: $s-8; + margin-left: $s-8; } .toggle-btn { @@ -42,10 +42,11 @@ @include flexCenter; height: $s-24; border-radius: $br-8; - padding-left: $s-8; + svg { @extend .button-icon-small; transform: rotate(90deg); + stroke: var(--icon-foreground); } &.rotated svg { transform: rotate(0deg); @@ -72,6 +73,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } } diff --git a/frontend/src/app/main/ui/debug/components_preview.cljs b/frontend/src/app/main/ui/debug/components_preview.cljs index 428273556..3ba458132 100644 --- a/frontend/src/app/main/ui/debug/components_preview.cljs +++ b/frontend/src/app/main/ui/debug/components_preview.cljs @@ -5,7 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.debug.components-preview - (:require-macros [app.main.style :refer [css styles]]) + (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] [app.main.data.users :as du] [app.main.refs :as refs] @@ -23,8 +23,8 @@ [props] (let [children (unchecked-get props "children") title (unchecked-get props "title")] - [:div {:class (dom/classnames (css :component) true)} - [:h4 {:class (dom/classnames (css :component-name) true)} title] + [:div {:class (stl/css :component)} + [:h4 {:class (stl/css :component-name)} title] children])) (mf/defc components-preview @@ -77,7 +77,7 @@ on-btn-click (mf/use-fn #(prn "eyy"))] [:section.debug-components-preview - [:div {:class (dom/classnames (css :themes-row) true)} + [:div {:class (stl/css :themes-row)} [:h2 "Themes"] [:select {:label "Select theme color" :name :theme @@ -86,17 +86,18 @@ :on-change on-change} [:option {:label "Penpot Dark (default)" :value "default"}] [:option {:label "Penpot Light" :value "light"}]] - [:div {:class (dom/classnames (css :wrapper) true)} - (let [css (styles)] + [:div {:class (stl/css :wrapper)} + (let [css (stl/styles)] (for [color colors] [:div {:key color :class (dom/classnames (get css color) true (get css :rect) true)} (d/name color)]))]] - [:div {:class (dom/classnames (css :components-row) true)} - [:h2 {:class (dom/classnames (css :title) true)} "Components"] - [:div {:class (dom/classnames (css :components-wrapper) true)} - [:div {:class (dom/classnames (css :component-group) true)} + + [:div {:class (stl/css :components-row)} + [:h2 {:class(stl/css :title)} "Components"] + [:div {:class (stl/css :components-wrapper)} + [:div {:class (stl/css :components-group)} [:h3 "Titles"] [:& component-wrapper {:title "Title"} @@ -129,7 +130,7 @@ [:& tab-element {:id :second :title "B tab"}]]]]] - [:div {:class (dom/classnames (css :component-group) true)} + [:div {:class (stl/css :components-group)} [:h3 "Tabs component"] [:& component-wrapper {:title "2 tab component"} @@ -154,7 +155,7 @@ :title "Third tab"} [:div "This is third tab content"]]]]] - [:div {:class (dom/classnames (css :component-group) true)} + [:div {:class (stl/css :components-group)} [:h3 "Search bar"] [:& component-wrapper {:title "Search bar only"} @@ -166,21 +167,21 @@ [:& search-bar {:on-change update-search :value input-value :placeholder "Test value"} - [:button {:class (dom/classnames (css :test-button) true) + [:button {:class (stl/css :test-button) :on-click on-btn-click} "X"]]]] - [:div {:class (dom/classnames (css :component-group) true)} + [:div {:class (stl/css :components-group)} [:h3 "Radio buttons"] [:& component-wrapper {:title "Two radio buttons (toggle)"} [:& radio-buttons {:selected radio-selected :on-change set-radio-selected :name "listing-style"} - [:& radio-button {:icon (mf/html i/view-as-list-refactor) + [:& radio-button {:icon i/view-as-list-refactor :value "first" :id :list}] - [:& radio-button {:icon (mf/html i/flex-grid-refactor) + [:& radio-button {:icon i/flex-grid-refactor :value "second" :id :grid}]]] [:& component-wrapper @@ -188,14 +189,14 @@ [:& radio-buttons {:selected radio-selected :on-change set-radio-selected :name "listing-style"} - [:& radio-button {:icon (mf/html i/view-as-list-refactor) + [:& radio-button {:icon i/view-as-list-refactor :value "first" :id :first}] - [:& radio-button {:icon (mf/html i/flex-grid-refactor) + [:& radio-button {:icon i/flex-grid-refactor :value "second" :id :second}] - [:& radio-button {:icon (mf/html i/add-refactor) + [:& radio-button {:icon i/add-refactor :value "third" :id :third}]]] @@ -204,17 +205,45 @@ [:& radio-buttons {:selected radio-selected :on-change set-radio-selected :name "listing-style"} - [:& radio-button {:icon (mf/html i/view-as-list-refactor) + [:& radio-button {:icon i/view-as-list-refactor :value "first" :id :first}] - [:& radio-button {:icon (mf/html i/flex-grid-refactor) + [:& radio-button {:icon i/flex-grid-refactor :value "second" :id :second}] - [:& radio-button {:icon (mf/html i/add-refactor) + [:& radio-button {:icon i/add-refactor :value "third" :id :third}] - [:& radio-button {:icon (mf/html i/board-refactor) + [:& radio-button {:icon i/board-refactor :value "forth" - :id :forth}]]]]]]])) + :id :forth}]]]] + [:div {:class (stl/css :components-group)} + [:h3 "Buttons"] + [:& component-wrapper + {:title "Button primary"} + [:button {:class (stl/css :button-primary)} + "Primary"]] + [:& component-wrapper + {:title "Button primary with icon"} + [:button {:class (stl/css :button-primary)} + i/add-refactor]] + + [:& component-wrapper + {:title "Button secondary"} + [:button {:class (stl/css :button-secondary)} + "secondary"]] + [:& component-wrapper + {:title "Button secondary with icon"} + [:button {:class (stl/css :button-secondary)} + i/add-refactor]] + + [:& component-wrapper + {:title "Button tertiary"} + [:button {:class (stl/css :button-tertiary)} + "tertiary"]] + [:& component-wrapper + {:title "Button tertiary with icon"} + [:button {:class (stl/css :button-tertiary)} + i/add-refactor]]]]]])) 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 b9b1c9031..ccaea6c2f 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-warning":"debug_components_preview_button-warning_Ux7Aq","button-disabled":"debug_components_preview_button-disabled_QAKPy","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","link":"debug_components_preview_link_uSQr6","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 +{"button-primary":"debug_components_preview_button-primary_Q2m40","components-row":"debug_components_preview_components-row_N3f-J","components-wrapper":"debug_components_preview_components-wrapper_A8IgV","button-secondary":"debug_components_preview_button-secondary_yPp3n","button-tertiary":"debug_components_preview_button-tertiary_FIKgJ","button-radio":"debug_components_preview_button-radio_vSuyW","button-warning":"debug_components_preview_button-warning_Ux7Aq","button-disabled":"debug_components_preview_button-disabled_QAKPy","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","link":"debug_components_preview_link_uSQr6","asset-element":"debug_components_preview_asset-element_LhcNS","input-element":"debug_components_preview_input-element_gKGKr","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","title":"debug_components_preview_title_TVtzz","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/debug/components_preview.scss b/frontend/src/app/main/ui/debug/components_preview.scss index 3e29500ab..d780a4090 100644 --- a/frontend/src/app/main/ui/debug/components_preview.scss +++ b/frontend/src/app/main/ui/debug/components_preview.scss @@ -83,6 +83,7 @@ padding: $s-20; display: flex; flex-wrap: wrap; + gap: $s-20; .component-group { @include flexCenter; justify-content: flex-start; @@ -107,5 +108,26 @@ } } } + .button-primary { + @extend .button-primary; + height: $s-32; + svg { + @extend .button-icon; + } + } + .button-secondary { + @extend .button-secondary; + height: $s-32; + svg { + @extend .button-icon; + } + } + .button-tertiary { + @extend .button-tertiary; + height: $s-32; + svg { + @extend .button-icon; + } + } } } diff --git a/frontend/src/app/main/ui/export.css.json b/frontend/src/app/main/ui/export.css.json index 7bc27c07e..5e16431de 100644 --- a/frontend/src/app/main/ui/export.css.json +++ b/frontend/src/app/main/ui/export.css.json @@ -1 +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-warning":"ui_export_button-warning_WJIb-","button-disabled":"ui_export_button-disabled_DiGAO","button-tag":"ui_export_button-tag_AaPgd","button-icon":"ui_export_button-icon_xc1O3","button-icon-small":"ui_export_button-icon-small_7Gu5A","link":"ui_export_link_ViAcG","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 +{"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-radio":"ui_export_button-radio_EUUXg","button-warning":"ui_export_button-warning_WJIb-","button-disabled":"ui_export_button-disabled_DiGAO","button-tag":"ui_export_button-tag_AaPgd","button-icon":"ui_export_button-icon_xc1O3","button-icon-small":"ui_export_button-icon-small_7Gu5A","link":"ui_export_link_ViAcG","asset-element":"ui_export_asset-element_jhF3N","input-element":"ui_export_input-element_HijtH","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 index dc57d8081..e4aa1d2c8 100644 --- a/frontend/src/app/main/ui/export.scss +++ b/frontend/src/app/main/ui/export.scss @@ -57,6 +57,7 @@ @extend .button-tertiary; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } } diff --git a/frontend/src/app/main/ui/icons.cljs b/frontend/src/app/main/ui/icons.cljs index 7a80eef68..35a7dfca2 100644 --- a/frontend/src/app/main/ui/icons.cljs +++ b/frontend/src/app/main/ui/icons.cljs @@ -264,20 +264,36 @@ (def asc-sort-refactor (icon-xref :asc-sort-refactor)) (def absolute-refactor (icon-xref :absolute-refactor)) (def align-bottom-refactor (icon-xref :align-bottom-refactor)) -(def align-content-center-refactor (icon-xref :align-content-center-refactor)) -(def align-content-end-refactor (icon-xref :align-content-end-refactor)) -(def align-content-space-around-refactor (icon-xref :align-content-space-around-refactor)) -(def align-content-space-between-refactor (icon-xref :align-content-space-between-refactor)) -(def align-content-space-evenly-refactor (icon-xref :align-content-space-evenly-refactor)) -(def align-content-start-refactor (icon-xref :align-content-start-refactor)) +(def align-content-row-center-refactor (icon-xref :align-content-row-center-refactor)) +(def align-content-column-around-refactor (icon-xref :align-content-column-around-refactor)) +(def align-content-column-between-refactor (icon-xref :align-content-column-between-refactor)) +(def align-content-column-center-refactor (icon-xref :align-content-column-center-refactor)) +(def align-content-column-evenly-refactor (icon-xref :align-content-column-evenly-refactor)) +(def align-content-column-start-refactor (icon-xref :align-content-column-start-refactor)) +(def align-content-column-end-refactor (icon-xref :align-content-column-end-refactor)) +(def align-content-row-end-refactor (icon-xref :align-content-row-end-refactor)) +(def align-content-row-around-refactor (icon-xref :align-content-row-around-refactor)) +(def align-content-row-between-refactor (icon-xref :align-content-row-between-refactor)) +(def align-content-row-evenly-refactor (icon-xref :align-content-row-evenly-refactor)) +(def align-content-row-start-refactor (icon-xref :align-content-row-start-refactor)) + (def align-horizontal-center-refactor (icon-xref :align-horizontal-center-refactor)) (def align-vertical-center-refactor (icon-xref :align-vertical-center-refactor)) -(def align-items-center-refactor (icon-xref :align-items-center-refactor)) -(def align-items-end-refactor (icon-xref :align-items-end-refactor)) -(def align-items-start-refactor (icon-xref :align-items-start-refactor)) +(def align-items-row-center-refactor (icon-xref :align-items-row-center-refactor)) +(def align-items-row-end-refactor (icon-xref :align-items-row-end-refactor)) +(def align-items-row-start-refactor (icon-xref :align-items-row-start-refactor)) +(def align-items-column-start-refactor (icon-xref :align-items-column-start-refactor)) +(def align-items-column-end-refactor (icon-xref :align-items-column-end-refactor)) +(def align-items-column-center-refactor (icon-xref :align-items-column-center-refactor)) (def align-left-refactor (icon-xref :align-left-refactor)) (def align-right-refactor (icon-xref :align-right-refactor)) (def align-top-refactor (icon-xref :align-top-refactor)) +(def align-self-column-bottom-refactor (icon-xref :align-self-column-bottom-refactor)) +(def align-self-column-center-refactor (icon-xref :align-self-column-center-refactor)) +(def align-self-column-top-refactor (icon-xref :align-self-column-top-refactor)) +(def align-self-row-center-refactor (icon-xref :align-self-row-center-refactor)) +(def align-self-row-left-refactor (icon-xref :align-self-row-left-refactor)) +(def align-self-row-right-refactor (icon-xref :align-self-row-right-refactor)) (def board-refactor (icon-xref :board-refactor)) (def boards-thumbnail-refactor (icon-xref :boards-thumbnail-refactor)) (def boolean-difference-refactor (icon-xref :boolean-difference-refactor)) @@ -285,6 +301,7 @@ (def boolean-flatten-refactor (icon-xref :boolean-flatten-refactor)) (def boolean-intersection-refactor (icon-xref :boolean-intersection-refactor)) (def boolean-union-refactor (icon-xref :boolean-union-refactor)) +(def clip-content-refactor (icon-xref :clip-content-refactor)) (def close-refactor (icon-xref :close-refactor)) (def close-small-refactor (icon-xref :close-small-refactor)) (def component-refactor (icon-xref :component-refactor)) @@ -296,7 +313,7 @@ (def constraint-vertical-refactor (icon-xref :constraint-vertical-refactor)) (def corner-radius-refactor (icon-xref :corner-radius-refactor)) (def curve-refactor (icon-xref :curve-refactor)) -(def distribute-vertical-sapcing-refactor (icon-xref :distribute-vertical-spacing-refactor)) +(def distribute-vertical-spacing-refactor (icon-xref :distribute-vertical-spacing-refactor)) (def distribute-horizontally-refactor (icon-xref :distribute-horizontally-refactor)) (def delete-refactor (icon-xref :delete-refactor)) (def delete-text-refactor (icon-xref :delete-text-refactor)) @@ -306,7 +323,9 @@ (def drop-refactor (icon-xref :drop-refactor)) (def effects-refactor (icon-xref :effects-refactor)) (def elipse-refactor (icon-xref :elipse-refactor)) +(def fill-content-refactor (icon-xref :fill-content-refactor)) (def filter-refactor (icon-xref :filter-refactor)) +(def fixed-width-refactor (icon-xref :fixed-width-refactor)) (def flex-refactor (icon-xref :flex-refactor)) (def flex-horizontal-refactor (icon-xref :flex-horizontal-refactor)) (def flex-grid-refactor (icon-xref :flex-grid-refactor)) @@ -322,23 +341,31 @@ (def grid-refactor (icon-xref :grid-refactor)) (def group-refactor (icon-xref :group-refactor)) (def graphics-refactor (icon-xref :graphics-refactor)) -(def gutter-horizontal-refactor (icon-xref :gutter-horizontal-refactor)) -(def gutter-vertical-refactor (icon-xref :gutter-vertical-refactor)) +(def gap-horizontal-refactor (icon-xref :gap-horizontal-refactor)) +(def gap-vertical-refactor (icon-xref :gap-vertical-refactor)) (def hide-refactor (icon-xref :hide-refactor)) (def history-refactor (icon-xref :history-refactor)) +(def hug-content-refactor (icon-xref :hug-content-refactor)) (def img-refactor (icon-xref :img-refactor)) (def icon-refactor (icon-xref :icon-refactor)) -(def justify-content-center-refactor (icon-xref :justify-content-center-refactor)) -(def justify-content-end-refactor (icon-xref :justify-content-end-refactor)) -(def justify-content-start-refactor (icon-xref :justify-content-start-refactor)) -(def justify-content-space-between-refactor (icon-xref :justify-content-space-between-refactor)) -(def justify-content-space-around-refactor (icon-xref :justify-content-space-around-refactor)) -(def justify-content-space-evenly-refactor (icon-xref :justify-content-space-evenly-refactor)) +(def justify-content-column-around-refactor (icon-xref :justify-content-column-around-refactor)) +(def justify-content-column-between-refactor (icon-xref :justify-content-column-between-refactor)) +(def justify-content-column-center-refactor (icon-xref :justify-content-column-center-refactor)) +(def justify-content-column-end-refactor (icon-xref :justify-content-column-end-refactor)) +(def justify-content-column-evenly-refactor (icon-xref :justify-content-column-evenly-refactor)) +(def justify-content-column-start-refactor (icon-xref :justify-content-column-start-refactor)) +(def justify-content-row-center-refactor (icon-xref :justify-content-row-center-refactor)) +(def justify-content-row-end-refactor (icon-xref :justify-content-row-end-refactor)) +(def justify-content-row-start-refactor (icon-xref :justify-content-row-start-refactor)) +(def justify-content-row-between-refactor (icon-xref :justify-content-row-between-refactor)) +(def justify-content-row-around-refactor (icon-xref :justify-content-row-around-refactor)) +(def justify-content-row-evenly-refactor (icon-xref :justify-content-row-evenly-refactor)) (def lock-refactor (icon-xref :lock-refactor)) (def library-refactor (icon-xref :library-refactor)) (def margin-bottom-refactor (icon-xref :margin-bottom-refactor)) (def margin-left-refactor (icon-xref :margin-left-refactor)) (def margin-left-right-refactor (icon-xref :margin-left-right-refactor)) +(def margin-refactor (icon-xref :margin-refactor)) (def margin-right-refactor (icon-xref :margin-right-refactor)) (def margin-top-refactor (icon-xref :margin-top-refactor)) (def margin-top-bottom-refactor (icon-xref :margin-top-bottom-refactor)) diff --git a/frontend/src/app/main/ui/measurements.cljs b/frontend/src/app/main/ui/measurements.cljs index 424887094..a8f6b91c5 100644 --- a/frontend/src/app/main/ui/measurements.cljs +++ b/frontend/src/app/main/ui/measurements.cljs @@ -306,7 +306,7 @@ axis (:resize-axis rect-data) on-pointer-down - (mf/use-callback + (mf/use-fn (mf/deps frame-id rect-data padding-num) (fn [event] (dom/capture-pointer event) @@ -315,7 +315,7 @@ (reset! original-value (:initial-value rect-data)))) on-lost-pointer-capture - (mf/use-callback + (mf/use-fn (mf/deps frame-id padding-num padding) (fn [event] (dom/release-pointer event) @@ -325,7 +325,7 @@ (st/emit! (dwm/apply-modifiers)))) on-pointer-move - (mf/use-callback + (mf/use-fn (mf/deps frame-id padding-num padding hover-all? hover-v? hover-h?) (fn [event] (let [pos (dom/get-client-position event)] @@ -466,7 +466,7 @@ axis (:resize-axis rect-data) on-pointer-down - (mf/use-callback + (mf/use-fn (mf/deps shape-id margin-num margin) (fn [event] (dom/capture-pointer event) @@ -475,7 +475,7 @@ (reset! original-value (:initial-value rect-data)))) on-lost-pointer-capture - (mf/use-callback + (mf/use-fn (mf/deps shape-id margin-num margin) (fn [event] (dom/release-pointer event) @@ -485,7 +485,7 @@ (st/emit! (dwm/apply-modifiers)))) on-pointer-move - (mf/use-callback + (mf/use-fn (mf/deps shape-id margin-num margin hover-all? hover-v? hover-h?) (fn [event] (let [pos (dom/get-client-position event)] @@ -618,7 +618,7 @@ axis (:resize-axis rect-data) on-pointer-down - (mf/use-callback + (mf/use-fn (mf/deps frame-id gap-type gap) (fn [event] (dom/capture-pointer event) @@ -627,7 +627,7 @@ (reset! original-value (:initial-value rect-data)))) on-lost-pointer-capture - (mf/use-callback + (mf/use-fn (mf/deps frame-id gap-type gap) (fn [event] (dom/release-pointer event) @@ -637,7 +637,7 @@ (st/emit! (dwm/apply-modifiers)))) on-pointer-move - (mf/use-callback + (mf/use-fn (mf/deps frame-id gap-type gap) (fn [event] (let [pos (dom/get-client-position event)] diff --git a/frontend/src/app/main/ui/modal.css.json b/frontend/src/app/main/ui/modal.css.json index f20c6c84a..412bd3e46 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-warning":"ui_modal_button-warning_1e-75","button-disabled":"ui_modal_button-disabled_n6i2O","button-tag":"ui_modal_button-tag_pLwhJ","button-icon":"ui_modal_button-icon_aRFFQ","button-icon-small":"ui_modal_button-icon-small_HY5lR","link":"ui_modal_link_Uw-ft","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 +{"button-primary":"ui_modal_button-primary_f2CEg","button-secondary":"ui_modal_button-secondary_1wH6N","button-tertiary":"ui_modal_button-tertiary_vNip8","button-radio":"ui_modal_button-radio_ezjbW","button-warning":"ui_modal_button-warning_1e-75","button-disabled":"ui_modal_button-disabled_n6i2O","button-tag":"ui_modal_button-tag_pLwhJ","button-icon":"ui_modal_button-icon_aRFFQ","button-icon-small":"ui_modal_button-icon-small_HY5lR","link":"ui_modal_link_Uw-ft","asset-element":"ui_modal_asset-element_43PW9","input-element":"ui_modal_input-element_y0flJ","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/workspace.css.json b/frontend/src/app/main/ui/workspace.css.json index 5bb7ca717..7f5a968d7 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-warning":"ui_workspace_button-warning_4iQFw","button-disabled":"ui_workspace_button-disabled_--5pl","button-tag":"ui_workspace_button-tag_cU1Th","button-icon":"ui_workspace_button-icon_L5y8h","button-icon-small":"ui_workspace_button-icon-small_Ppp3W","link":"ui_workspace_link_WhQFh","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 +{"button-primary":"ui_workspace_button-primary_FZJ-T","button-secondary":"ui_workspace_button-secondary_oDzCJ","button-tertiary":"ui_workspace_button-tertiary_LVpr3","button-radio":"ui_workspace_button-radio_PMFXa","button-warning":"ui_workspace_button-warning_4iQFw","button-disabled":"ui_workspace_button-disabled_--5pl","button-tag":"ui_workspace_button-tag_cU1Th","button-icon":"ui_workspace_button-icon_L5y8h","button-icon-small":"ui_workspace_button-icon-small_Ppp3W","link":"ui_workspace_link_WhQFh","asset-element":"ui_workspace_asset-element_LTbhl","input-element":"ui_workspace_input-element_Ohf9O","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/color_palette.css.json b/frontend/src/app/main/ui/workspace/color_palette.css.json index 4240c16ff..fe4d2ce56 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-warning":"workspace_color_palette_button-warning_IHf7v","button-disabled":"workspace_color_palette_button-disabled_k7M8X","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","link":"workspace_color_palette_link_EW9wm","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 +{"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-radio":"workspace_color_palette_button-radio_6DOOO","button-warning":"workspace_color_palette_button-warning_IHf7v","button-disabled":"workspace_color_palette_button-disabled_k7M8X","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","link":"workspace_color_palette_link_EW9wm","asset-element":"workspace_color_palette_asset-element_3Q2Mp","input-element":"workspace_color_palette_input-element_j0uTG","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.scss b/frontend/src/app/main/ui/workspace/color_palette.scss index cb3a2b46a..3a273d6e6 100644 --- a/frontend/src/app/main/ui/workspace/color_palette.scss +++ b/frontend/src/app/main/ui/workspace/color_palette.scss @@ -21,6 +21,7 @@ z-index: $z-index-4; svg { @extend .button-icon; + stroke: var(--icon-foreground); } &::after { content: ""; 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 b132caf23..960478602 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-warning":"workspace_color_palette_ctx_menu_button-warning_xgQCn","button-disabled":"workspace_color_palette_ctx_menu_button-disabled_PnBDO","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","link":"workspace_color_palette_ctx_menu_link_ugtX1","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 +{"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-radio":"workspace_color_palette_ctx_menu_button-radio_PDiB3","button-warning":"workspace_color_palette_ctx_menu_button-warning_xgQCn","button-disabled":"workspace_color_palette_ctx_menu_button-disabled_PnBDO","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","link":"workspace_color_palette_ctx_menu_link_ugtX1","asset-element":"workspace_color_palette_ctx_menu_asset-element_pV16m","input-element":"workspace_color_palette_ctx_menu_input-element_Tv2e2","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 74c2f59f1..046b76b6c 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 @@ -54,6 +54,7 @@ svg { @include flexCenter; @extend .button-icon-small; + stroke: var(--icon-foreground); } } } 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 203bdc2e1..ecd3e5e10 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-warning":"workspace_context_menu_button-warning_JWgIG","button-disabled":"workspace_context_menu_button-disabled_qth6b","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","link":"workspace_context_menu_link_Z7rEE","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 +{"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-radio":"workspace_context_menu_button-radio_k295n","button-warning":"workspace_context_menu_button-warning_JWgIG","button-disabled":"workspace_context_menu_button-disabled_qth6b","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","link":"workspace_context_menu_link_Z7rEE","asset-element":"workspace_context_menu_asset-element_jkrbj","input-element":"workspace_context_menu_input-element_Y-yxU","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/left_header.css.json b/frontend/src/app/main/ui/workspace/left_header.css.json index 147eb759f..857998727 100644 --- a/frontend/src/app/main/ui/workspace/left_header.css.json +++ b/frontend/src/app/main/ui/workspace/left_header.css.json @@ -1 +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-warning":"workspace_left_header_button-warning_PoOGL","button-disabled":"workspace_left_header_button-disabled_k7pJP","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","link":"workspace_left_header_link_E6JUR","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 +{"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-radio":"workspace_left_header_button-radio_3XqbR","button-warning":"workspace_left_header_button-warning_PoOGL","button-disabled":"workspace_left_header_button-disabled_k7pJP","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","link":"workspace_left_header_link_E6JUR","asset-element":"workspace_left_header_asset-element_iYXcu","input-element":"workspace_left_header_input-element_zkT-i","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 index d7318bbe1..1a9a5606e 100644 --- a/frontend/src/app/main/ui/workspace/left_header.scss +++ b/frontend/src/app/main/ui/workspace/left_header.scss @@ -78,6 +78,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } .menu { @@ -106,6 +107,7 @@ @include flexCenter; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } &:hover { 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 b9d59f975..062cde6f6 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","button-secondary":"workspace_left_toolbar_button-secondary_yztFQ","button-tertiary":"workspace_left_toolbar_button-tertiary_ATxjs","main-toolbar":"workspace_left_toolbar_main-toolbar_QN5ne","main-toolbar-options":"workspace_left_toolbar_main-toolbar-options_xqFsj","button-warning":"workspace_left_toolbar_button-warning_wM68W","button-disabled":"workspace_left_toolbar_button-disabled_-5ubI","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","link":"workspace_left_toolbar_link_dbtrr","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 +{"button-primary":"workspace_left_toolbar_button-primary_cOfI2","button-secondary":"workspace_left_toolbar_button-secondary_yztFQ","button-tertiary":"workspace_left_toolbar_button-tertiary_ATxjs","main-toolbar":"workspace_left_toolbar_main-toolbar_QN5ne","main-toolbar-options":"workspace_left_toolbar_main-toolbar-options_xqFsj","button-radio":"workspace_left_toolbar_button-radio_JIUuN","button-warning":"workspace_left_toolbar_button-warning_wM68W","button-disabled":"workspace_left_toolbar_button-disabled_-5ubI","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","link":"workspace_left_toolbar_link_dbtrr","asset-element":"workspace_left_toolbar_asset-element_vwVhJ","input-element":"workspace_left_toolbar_input-element_Lk8B-","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/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs index 937088959..a7f2b83ef 100644 --- a/frontend/src/app/main/ui/workspace/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/libraries.cljs @@ -248,7 +248,7 @@ [:div {:class (stl/css :section)} [:& title-bar {:collapsable? false :title (tr "workspace.libraries.in-this-file") - :klass :title-spacing-lib}] + :class (stl/css :title-spacing-lib)}] [:div {:class (stl/css :section-list)} [:div {:class (stl/css :section-list-item)} @@ -294,7 +294,7 @@ [:div {:class (stl/css :section)} [:& title-bar {:collapsable? false :title (tr "workspace.libraries.shared-libraries") - :klass :title-spacing-lib}] + :class (stl/css :title-spacing-lib)}] [:div {:class (stl/css :libraries-search)} [:& search-bar {:on-change change-search-term :value search-term diff --git a/frontend/src/app/main/ui/workspace/libraries.css.json b/frontend/src/app/main/ui/workspace/libraries.css.json index 766ab314c..4296ab6cd 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","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-warning":"workspace_libraries_button-warning_xKJqf","item-update":"workspace_libraries_item-update_GklIE","button-disabled":"workspace_libraries_button-disabled_R7I-V","disabled":"workspace_libraries_disabled_Y5O-4","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","link":"workspace_libraries_link_a3v8a","libraries-updates-see-all":"workspace_libraries_libraries-updates-see-all_-G5EO","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","libraries-updates":"workspace_libraries_libraries-updates_RLtH8","libraries-updates-item":"workspace_libraries_libraries-updates-item_QwZMY","name-block":"workspace_libraries_name-block_RcVh4","ellipsis":"workspace_libraries_ellipsis_I5JtE","element-count":"workspace_libraries_element-count_07SV2","spin-animation":"workspace_libraries_spin-animation_mW-An"} \ 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","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-radio":"workspace_libraries_button-radio_e8zGB","button-warning":"workspace_libraries_button-warning_xKJqf","item-update":"workspace_libraries_item-update_GklIE","button-disabled":"workspace_libraries_button-disabled_R7I-V","disabled":"workspace_libraries_disabled_Y5O-4","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","link":"workspace_libraries_link_a3v8a","libraries-updates-see-all":"workspace_libraries_libraries-updates-see-all_-G5EO","asset-element":"workspace_libraries_asset-element_-FuJl","input-element":"workspace_libraries_input-element_Otka8","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","title-spacing-lib":"workspace_libraries_title-spacing-lib_A-arJ","item-name":"workspace_libraries_item-name_Zjbsw","item-contents":"workspace_libraries_item-contents_EPTF6","section-title":"workspace_libraries_section-title_7rsm7","libraries-updates":"workspace_libraries_libraries-updates_RLtH8","libraries-updates-item":"workspace_libraries_libraries-updates-item_QwZMY","name-block":"workspace_libraries_name-block_RcVh4","ellipsis":"workspace_libraries_ellipsis_I5JtE","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/libraries.scss b/frontend/src/app/main/ui/workspace/libraries.scss index 42f8a5310..cdee7b092 100644 --- a/frontend/src/app/main/ui/workspace/libraries.scss +++ b/frontend/src/app/main/ui/workspace/libraries.scss @@ -36,6 +36,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } .modal-title { @@ -60,7 +61,7 @@ display: flex; flex-direction: column; height: calc(100% - $s-12); - :global(.title-spacing-lib) { + .title-spacing-lib { margin: 0 0 $s-24 calc(-1 * $s-8); } .section-list, @@ -119,6 +120,7 @@ margin-right: $s-2; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } .item-button-shared { @@ -130,6 +132,7 @@ height: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } } @@ -150,6 +153,7 @@ width: $s-20; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } } @@ -159,6 +163,7 @@ svg { @extend .button-icon-small; + stroke: var(--icon-foreground); width: $s-16; height: $s-16; } diff --git a/frontend/src/app/main/ui/workspace/palette.css.json b/frontend/src/app/main/ui/workspace/palette.css.json index 640b487be..5e5190413 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-warning":"workspace_palette_button-warning_uC7fd","button-disabled":"workspace_palette_button-disabled_0dQDS","button-tag":"workspace_palette_button-tag_S9v-Z","button-icon":"workspace_palette_button-icon_pmEDv","button-icon-small":"workspace_palette_button-icon-small_vbLDq","link":"workspace_palette_link_UPU5s","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 +{"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-radio":"workspace_palette_button-radio_zpcxS","button-warning":"workspace_palette_button-warning_uC7fd","button-disabled":"workspace_palette_button-disabled_0dQDS","button-tag":"workspace_palette_button-tag_S9v-Z","button-icon":"workspace_palette_button-icon_pmEDv","button-icon-small":"workspace_palette_button-icon-small_vbLDq","link":"workspace_palette_link_UPU5s","asset-element":"workspace_palette_asset-element_4bXi3","input-element":"workspace_palette_input-element_z1Q4v","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 d2311c7d8..666a933ac 100644 --- a/frontend/src/app/main/ui/workspace/palette.scss +++ b/frontend/src/app/main/ui/workspace/palette.scss @@ -77,6 +77,7 @@ padding: 0; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } &.selected { border: $s-2 solid var(--palette-btn-border-color-selected); @@ -104,6 +105,7 @@ z-index: $z-index-2; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } .palette { diff --git a/frontend/src/app/main/ui/workspace/presence.css.json b/frontend/src/app/main/ui/workspace/presence.css.json index 9c83ec889..c1d582af1 100644 --- a/frontend/src/app/main/ui/workspace/presence.css.json +++ b/frontend/src/app/main/ui/workspace/presence.css.json @@ -1 +1 @@ -{"button-primary":"workspace_presence_button-primary_As6Ix","button-secondary":"workspace_presence_button-secondary_wChpa","button-tertiary":"workspace_presence_button-tertiary_XLZQY","button-warning":"workspace_presence_button-warning_D0Gxb","button-disabled":"workspace_presence_button-disabled_oxzIp","button-tag":"workspace_presence_button-tag_Hp7-u","button-icon":"workspace_presence_button-icon_wQdM5","button-icon-small":"workspace_presence_button-icon-small_cxrR5","link":"workspace_presence_link_vEQGI","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 +{"button-primary":"workspace_presence_button-primary_As6Ix","button-secondary":"workspace_presence_button-secondary_wChpa","button-tertiary":"workspace_presence_button-tertiary_XLZQY","button-radio":"workspace_presence_button-radio_2Zu0B","button-warning":"workspace_presence_button-warning_D0Gxb","button-disabled":"workspace_presence_button-disabled_oxzIp","button-tag":"workspace_presence_button-tag_Hp7-u","button-icon":"workspace_presence_button-icon_wQdM5","button-icon-small":"workspace_presence_button-icon-small_cxrR5","link":"workspace_presence_link_vEQGI","asset-element":"workspace_presence_asset-element_ALwzT","input-element":"workspace_presence_input-element_RNUbU","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/right_header.css.json b/frontend/src/app/main/ui/workspace/right_header.css.json index 0deb2e067..89ebf82d0 100644 --- a/frontend/src/app/main/ui/workspace/right_header.css.json +++ b/frontend/src/app/main/ui/workspace/right_header.css.json @@ -1 +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-warning":"workspace_right_header_button-warning_h6czX","button-disabled":"workspace_right_header_button-disabled_DaXuQ","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","link":"workspace_right_header_link_d9QnH","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 +{"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-radio":"workspace_right_header_button-radio_3F9rH","button-warning":"workspace_right_header_button-warning_h6czX","button-disabled":"workspace_right_header_button-disabled_DaXuQ","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","link":"workspace_right_header_link_d9QnH","asset-element":"workspace_right_header_asset-element_i-xUp","input-element":"workspace_right_header_input-element_93EMC","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 index ee3f2d01a..ccd1c804f 100644 --- a/frontend/src/app/main/ui/workspace/right_header.scss +++ b/frontend/src/app/main/ui/workspace/right_header.scss @@ -54,10 +54,10 @@ 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); + color: var(--button-tertiary-foreground-color-active); } .icon svg { - stroke: var(--button-tertiary-foreground-color-selected); + stroke: var(--button-tertiary-foreground-color-active); } } } @@ -83,6 +83,7 @@ @include flexCenter; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } &:hover { @@ -134,6 +135,7 @@ width: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); height: $s-16; width: $s-16; } @@ -141,7 +143,7 @@ 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); + stroke: var(--button-tertiary-foreground-color-active); } } } @@ -155,6 +157,7 @@ width: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); height: $s-16; width: $s-16; } @@ -162,7 +165,7 @@ 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); + stroke: var(--button-tertiary-foreground-color-active); } } } @@ -209,6 +212,7 @@ height: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); 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 51ddc1482..653bb08e3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -5,7 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar - (:require-macros [app.main.style :refer [css]]) + (:require-macros [app.main.style :as stl]) (:require [app.common.data.macros :as dm] [app.main.data.workspace :as dw] @@ -59,28 +59,24 @@ [: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) - :three-row (and (> size 300) (<= size 400)) - :four-row (> size 400)) - (dom/classnames :settings-bar true - :settings-bar-left true - :two-row (<= size 300) - :three-row (and (> size 300) (<= size 400)) - :four-row (> size 400))) + :class (stl/css-case new-css-system + :old-css/settings-bar true + :old-css/settings-bar-left true + :left-settings-bar true + :global/two-row (<= size 300) + :global/three-row (and (> size 300) (<= size 400)) + :global/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 :on-pointer-move on-pointer-move :class (if ^boolean new-css-system - (dom/classnames (css :resize-area) true) + (stl/css :resize-area) (dom/classnames :resize-area true))}] [:div {:class (if ^boolean new-css-system - (dom/classnames (css :settings-bar-inside) true) + (stl/css :settings-bar-inside) (dom/classnames :settings-bar-inside true))} (cond (true? shortcuts?) @@ -91,7 +87,7 @@ :else (if ^boolean new-css-system - [:div {:class (dom/classnames (css :tabs-wrapper) true)} + [:div {:class (stl/css :tabs-wrapper)} [:& tab-container {:on-change-tab on-tab-change :selected section @@ -100,7 +96,7 @@ :handle-collapse handle-collapse :klass :tab-spacing} [:& tab-element {:id :layers :title (tr "workspace.sidebar.layers")} - [:div {:class (dom/classnames (css :layers-tab) true)} + [:div {:class (stl/css :layers-tab)} [:& sitemap {:layout layout}] [:& layers-toolbox {:size-parent size}]]] @@ -122,7 +118,7 @@ :handle-collapse handle-collapse} [:& tabs-element {:id :layers :title (tr "workspace.sidebar.layers")} - [:div {:class (dom/classnames :layers-tab true)} + [:div {:class :layers-tab} [:& sitemap {:layout layout}] [:& layers-toolbox {:size-parent size}]]] @@ -174,26 +170,25 @@ (obj/set! "on-change-section" handle-change-section) (obj/set! "on-expand" handle-expand))] - [: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?))) + [:aside {:class (stl/css-case new-css-system + :old-css/settings-bar true + :old-css/settings-bar-right true + :right-settings-bar true + :not-expand (not can-be-expanded?) + :expanded (> size 276)) + :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}]) + [:div {:class (stl/css new-css-system :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 + [:div {:class (stl/css new-css-system :settings-bar-inside)} (cond (true? is-comments?) [:& comments-sidebar] diff --git a/frontend/src/app/main/ui/workspace/sidebar.css.json b/frontend/src/app/main/ui/workspace/sidebar.css.json index 8352f5d09..655504f11 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-warning":"workspace_sidebar_button-warning_7I8Ar","button-disabled":"workspace_sidebar_button-disabled_ao3sM","button-tag":"workspace_sidebar_button-tag_Xc0Sm","button-icon":"workspace_sidebar_button-icon_OXdmL","button-icon-small":"workspace_sidebar_button-icon-small_EYb9x","link":"workspace_sidebar_link_9CZLn","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 +{"button-primary":"workspace_sidebar_button-primary_K7xW6","button-secondary":"workspace_sidebar_button-secondary_e2eQE","button-tertiary":"workspace_sidebar_button-tertiary_QKqHT","button-radio":"workspace_sidebar_button-radio_-xIrt","button-warning":"workspace_sidebar_button-warning_7I8Ar","button-disabled":"workspace_sidebar_button-disabled_ao3sM","button-tag":"workspace_sidebar_button-tag_Xc0Sm","button-icon":"workspace_sidebar_button-icon_OXdmL","button-icon-small":"workspace_sidebar_button-icon-small_EYb9x","link":"workspace_sidebar_link_9CZLn","asset-element":"workspace_sidebar_asset-element_vzrfV","input-element":"workspace_sidebar_input-element_I6EUI","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 49aade146..5f18a5496 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.scss +++ b/frontend/src/app/main/ui/workspace/sidebar.scss @@ -48,11 +48,22 @@ $width-settings-bar-max: $s-500; .right-settings-bar { grid-area: right-sidebar; width: $width-settings-bar; - + background-color: var(--panel-background-color); + height: 100%; &.not-expand { max-width: $width-settings-bar; } &.expanded { width: var(--width, $width-settings-bar); } + .resize-area { + position: absolute; + height: 100%; + width: $s-8; + z-index: $z-index-3; + cursor: ew-resize; + } + .settings-bar-inside { + height: calc(100vh - $s-52); + } } 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 46bad3d4b..dbc880ed4 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-warning":"sidebar_assets_button-warning_AZ4xH","button-disabled":"sidebar_assets_button-disabled_NuzXS","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","link":"sidebar_assets_link_klBJ9","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 +{"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-radio":"sidebar_assets_button-radio_d2iG-","button-warning":"sidebar_assets_button-warning_AZ4xH","button-disabled":"sidebar_assets_button-disabled_NuzXS","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","link":"sidebar_assets_link_klBJ9","asset-element":"sidebar_assets_asset-element_xHJzG","input-element":"sidebar_assets_input-element_IZ5nI","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 e010929f1..df3c6ed70 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.scss @@ -26,6 +26,7 @@ svg { @include flexCenter; @extend .button-icon; + stroke: var(--icon-foreground); } } &:hover { @@ -107,6 +108,7 @@ overflow: auto; display: flex; flex-direction: column; + padding-left: $s-8; height: calc(100% - $s-80); overflow-y: auto; overflow-x: hidden; @@ -124,6 +126,7 @@ border-radius: $br-8; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } } 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 68b3353de..c9ac85b9f 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-warning":"assets_colors_button-warning_e-BA5","button-disabled":"assets_colors_button-disabled_yPxKS","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","link":"assets_colors_link_8J5CV","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 +{"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-radio":"assets_colors_button-radio_eRpxS","button-warning":"assets_colors_button-warning_e-BA5","button-disabled":"assets_colors_button-disabled_yPxKS","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","link":"assets_colors_link_8J5CV","asset-element":"assets_colors_asset-element_XSxD1","input-element":"assets_colors_input-element_EDF5u","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/colors.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.scss index 09b0ce80f..8125e8a89 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.scss @@ -14,6 +14,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs index cf6448b53..c7cbce2c7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.cljs @@ -144,7 +144,7 @@ [:& title-bar {:collapsable? true :collapsed? (not open?) :on-collapsed #(st/emit! (dw/set-assets-section-open file-id section (not open?))) - :klass :title-spacing + :class (css :title-spacing) :title (mf/html [:span {:class (dom/classnames (css :title-name) true)} [:span {:class (dom/classnames (css :section-icon) true)} [:& section-icon {:section section}]] 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 5161a03fc..8f683acfc 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-warning":"assets_common_button-warning_j5om7","button-disabled":"assets_common_button-disabled_0zHM3","button-tag":"assets_common_button-tag_MHJlj","button-icon":"assets_common_button-icon_0R1zt","button-icon-small":"assets_common_button-icon-small_5kQfO","link":"assets_common_link_LM4Ue","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 +{"button-primary":"assets_common_button-primary_-eBqD","button-secondary":"assets_common_button-secondary_qo2kg","button-tertiary":"assets_common_button-tertiary_ApdBb","button-radio":"assets_common_button-radio_L3d2d","button-warning":"assets_common_button-warning_j5om7","button-disabled":"assets_common_button-disabled_0zHM3","button-tag":"assets_common_button-tag_MHJlj","button-icon":"assets_common_button-icon_0R1zt","button-icon-small":"assets_common_button-icon-small_5kQfO","link":"assets_common_link_LM4Ue","asset-element":"assets_common_asset-element_frsFR","input-element":"assets_common_input-element_dsBzI","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","title-spacing":"assets_common_title-spacing_N2qKx","spin-animation":"assets_common_spin-animation_7inPz"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets/common.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/common.scss index 001117143..21da5c603 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/common.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/common.scss @@ -36,6 +36,6 @@ } } } -:global(.title-spacing) { +.title-spacing { margin-bottom: $s-4; } 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 8ff9597c4..d36546a0d 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-warning":"assets_components_button-warning_DCK-q","button-disabled":"assets_components_button-disabled_F7meP","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","link":"assets_components_link_PbKq4","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 +{"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-radio":"assets_components_button-radio_4f7fY","button-warning":"assets_components_button-warning_DCK-q","button-disabled":"assets_components_button-disabled_F7meP","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","link":"assets_components_link_PbKq4","asset-element":"assets_components_asset-element_UsbdX","input-element":"assets_components_input-element_fgeEQ","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/components.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss index c816f3471..f8e4d3fb7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/components.scss @@ -224,6 +224,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } :global(.three-row) { 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 ee2f2354f..87b48bdea 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-warning":"assets_file_library_button-warning_lsk8X","button-disabled":"assets_file_library_button-disabled_0d6i8","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","link":"assets_file_library_link_YnWyT","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","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 +{"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-radio":"assets_file_library_button-radio_ih9fD","button-warning":"assets_file_library_button-warning_lsk8X","button-disabled":"assets_file_library_button-disabled_0d6i8","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","link":"assets_file_library_link_YnWyT","asset-element":"assets_file_library_asset-element_6ian7","input-element":"assets_file_library_input-element_tH3V-","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","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/file_library.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.scss index f4e6377b7..68b50d27c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/file_library.scss @@ -32,6 +32,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); fill: var(--title-foreground-color-hover); } } 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 571eba830..4de9bd5ec 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-warning":"assets_graphics_button-warning_17KvG","button-disabled":"assets_graphics_button-disabled_C4k3Z","button-tag":"assets_graphics_button-tag_K3ckf","button-icon":"assets_graphics_button-icon_En5qq","button-icon-small":"assets_graphics_button-icon-small_xNHzC","link":"assets_graphics_link_lAdfq","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 +{"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-radio":"assets_graphics_button-radio_-7XU8","button-warning":"assets_graphics_button-warning_17KvG","button-disabled":"assets_graphics_button-disabled_C4k3Z","button-tag":"assets_graphics_button-tag_K3ckf","button-icon":"assets_graphics_button-icon_En5qq","button-icon-small":"assets_graphics_button-icon-small_xNHzC","link":"assets_graphics_link_lAdfq","asset-element":"assets_graphics_asset-element_-VwmF","input-element":"assets_graphics_input-element_pC-ak","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/graphics.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.scss index 4640ced8c..9a0cc186f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/graphics.scss @@ -174,6 +174,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } @@ -185,5 +186,6 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } 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 4b9d14b0b..4d63dbfc0 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-warning":"assets_groups_button-warning_cYNaB","button-disabled":"assets_groups_button-disabled_VBKbX","button-tag":"assets_groups_button-tag_yIgd9","button-icon":"assets_groups_button-icon_MSptS","button-icon-small":"assets_groups_button-icon-small_73Ir0","link":"assets_groups_link_Dx2Eb","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 +{"button-primary":"assets_groups_button-primary_2o3Db","button-secondary":"assets_groups_button-secondary_-qdxB","button-tertiary":"assets_groups_button-tertiary_1f4Jy","button-radio":"assets_groups_button-radio_9DosD","button-warning":"assets_groups_button-warning_cYNaB","button-disabled":"assets_groups_button-disabled_VBKbX","button-tag":"assets_groups_button-tag_yIgd9","button-icon":"assets_groups_button-icon_MSptS","button-icon-small":"assets_groups_button-icon-small_73Ir0","link":"assets_groups_link_Dx2Eb","asset-element":"assets_groups_asset-element_RgKXH","input-element":"assets_groups_input-element_1MWYS","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 5c54146d2..41fb91a42 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-warning":"assets_typographies_button-warning_n5n19","button-disabled":"assets_typographies_button-disabled_mvE-W","button-tag":"assets_typographies_button-tag_grTbB","button-icon":"assets_typographies_button-icon_7peoi","button-icon-small":"assets_typographies_button-icon-small_oHD9w","link":"assets_typographies_link_KdWLr","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 +{"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-radio":"assets_typographies_button-radio_vFNYs","button-warning":"assets_typographies_button-warning_n5n19","button-disabled":"assets_typographies_button-disabled_mvE-W","button-tag":"assets_typographies_button-tag_grTbB","button-icon":"assets_typographies_button-icon_7peoi","button-icon-small":"assets_typographies_button-icon-small_oHD9w","link":"assets_typographies_link_KdWLr","asset-element":"assets_typographies_asset-element_hvNzY","input-element":"assets_typographies_input-element_6esy2","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/assets/typographies.scss b/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.scss index 6feea36ab..a83da56d4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/assets/typographies.scss @@ -14,6 +14,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } .typographies-group { 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 274be40ec..64081532a 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-warning":"sidebar_collapsable_button_button-warning_GQzbM","button-disabled":"sidebar_collapsable_button_button-disabled_A2SSW","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","link":"sidebar_collapsable_button_link_qpDv8","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 +{"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-radio":"sidebar_collapsable_button_button-radio_7H-g0","button-warning":"sidebar_collapsable_button_button-warning_GQzbM","button-disabled":"sidebar_collapsable_button_button-disabled_A2SSW","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","link":"sidebar_collapsable_button_link_qpDv8","asset-element":"sidebar_collapsable_button_asset-element_BboJ7","input-element":"sidebar_collapsable_button_input-element_QEGZD","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 4db68f7b1..81a6ec637 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-warning":"sidebar_history_button-warning_rYQHC","button-disabled":"sidebar_history_button-disabled_0BmPs","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","link":"sidebar_history_link_5k5Mf","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 +{"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-radio":"sidebar_history_button-radio_Ky3X9","button-warning":"sidebar_history_button-warning_rYQHC","button-disabled":"sidebar_history_button-disabled_0BmPs","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","link":"sidebar_history_link_5k5Mf","asset-element":"sidebar_history_asset-element_Lm478","input-element":"sidebar_history_input-element_2cpp6","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/history.scss b/frontend/src/app/main/ui/workspace/sidebar/history.scss index 87adac9c9..9dcb922b2 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/history.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/history.scss @@ -37,6 +37,7 @@ border-radius: $br-6; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } } 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 c848d2372..170c3d878 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-warning":"sidebar_layer_item_button-warning_ZFaBq","button-disabled":"sidebar_layer_item_button-disabled_tTKle","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","link":"sidebar_layer_item_link_M63jD","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 +{"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-radio":"sidebar_layer_item_button-radio_7qqBr","button-warning":"sidebar_layer_item_button-warning_ZFaBq","button-disabled":"sidebar_layer_item_button-disabled_tTKle","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","link":"sidebar_layer_item_link_M63jD","asset-element":"sidebar_layer_item_asset-element_AXTD0","input-element":"sidebar_layer_item_input-element_-J8zJ","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_item.scss b/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss index bc5194d68..3b7fcc7a8 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss @@ -12,6 +12,7 @@ align-items: center; width: 100%; background-color: var(--layer-row-background-color); + padding-left: $s-8; .element-list-body { display: flex; @@ -37,6 +38,7 @@ padding: 0 4px 0 8px; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } &.inverse { svg { @@ -58,6 +60,7 @@ padding: 0 $s-8 0 $s-4; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } .absolute { @@ -83,6 +86,7 @@ display: none; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } &.selected { 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 febd7e8a5..d34875314 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-warning":"sidebar_layer_name_button-warning_YIS-I","button-disabled":"sidebar_layer_name_button-disabled_15SW8","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","link":"sidebar_layer_name_link_QHb8i","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 +{"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-radio":"sidebar_layer_name_button-radio_EuXpj","button-warning":"sidebar_layer_name_button-warning_YIS-I","button-disabled":"sidebar_layer_name_button-disabled_15SW8","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","link":"sidebar_layer_name_link_QHb8i","asset-element":"sidebar_layer_name_asset-element_WVekz","input-element":"sidebar_layer_name_input-element_FR4Tw","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.css.json b/frontend/src/app/main/ui/workspace/sidebar/layers.css.json index 60422fb3b..7297f6bfb 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-warning":"sidebar_layers_button-warning_lWBeg","button-disabled":"sidebar_layers_button-disabled_IHD-6","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","link":"sidebar_layers_link_xwoN2","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 +{"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-radio":"sidebar_layers_button-radio_9YxY0","button-warning":"sidebar_layers_button-warning_lWBeg","button-disabled":"sidebar_layers_button-disabled_IHD-6","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","link":"sidebar_layers_link_xwoN2","asset-element":"sidebar_layers_asset-element_-dbA7","input-element":"sidebar_layers_input-element_SadJI","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 d4f67b695..7bc6f141d 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.scss @@ -36,6 +36,7 @@ padding: 0; svg { @extend .button-icon; + stroke: var(--icon-foreground); } } &.search { @@ -82,6 +83,7 @@ border-radius: $br-8; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } } @@ -98,6 +100,7 @@ padding: 0 $s-4 0 $s-8; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); transform: rotate(180deg); } } diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.cljs b/frontend/src/app/main/ui/workspace/sidebar/options.cljs index 37dc1c779..a7f41befb 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options + (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] [app.common.data.macros :as dm] @@ -14,6 +15,7 @@ [app.main.data.workspace :as udw] [app.main.refs :as refs] [app.main.store :as st] + [app.main.ui.components.tab-container :refer [tab-container tab-element]] [app.main.ui.components.tabs-container :refer [tabs-container tabs-element]] [app.main.ui.context :as ctx] [app.main.ui.viewer.inspect.right-sidebar :as hrs] @@ -68,7 +70,8 @@ (mf/defc options-content {::mf/wrap [mf/memo]} [{:keys [selected section shapes shapes-with-children page-id file-id on-change-section on-expand]}] - (let [drawing (mf/deref refs/workspace-drawing) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + drawing (mf/deref refs/workspace-drawing) objects (mf/deref refs/workspace-page-objects) shared-libs (mf/deref refs/workspace-libraries) edition (mf/deref refs/selected-edition) @@ -87,72 +90,137 @@ (if (= options-mode :inspect) (st/emit! :interrupt (udw/set-workspace-read-only true)) (st/emit! :interrupt (udw/set-workspace-read-only false))))] - - [:div.tool-window - [:div.tool-window-content - [:& tabs-container {:on-change-tab on-change-tab - :selected section} - [:& tabs-element {:id :design + (if ^boolean new-css-system + [:div {:class (stl/css :tool-window)} + [:& tab-container + {:on-change-tab on-change-tab + :selected section + :collapsable? false + :content-class (stl/css :content-class) + :klass (stl/css :tab-spacing)} + [:& tab-element {:id :design :title (tr "workspace.options.design")} - [:div.element-options - [:& align-options] - [:& bool-options] - (cond - (some? selected-cell) - [:& grid-cell/options - {:shape (get objects edition) - :cell (dm/get-in objects [edition :layout-grid-cells selected-cell])}] + [:div {:class (stl/css :element-options)} + [:& align-options] + [:& bool-options] - edit-grid? - [:& layout-container/grid-layout-edition - {:ids [edition] - :values (get objects edition)}] + (cond + (some? selected-cell) + [:& grid-cell/options + {:shape (get objects edition) + :cell (dm/get-in objects [edition :layout-grid-cells selected-cell])}] - (d/not-empty? drawing) - [:& shape-options - {:shape (:object drawing) - :page-id page-id - :file-id file-id - :shared-libs shared-libs}] + edit-grid? + [:& layout-container/grid-layout-edition + {:ids [edition] + :values (get objects edition)}] - (= 0 (count selected)) - [:& page/options] + (d/not-empty? drawing) + [:& shape-options + {:shape (:object drawing) + :page-id page-id + :file-id file-id + :shared-libs shared-libs}] - (= 1 (count selected)) - [:& shape-options - {:shape (first selected-shapes) - :page-id page-id - :file-id file-id - :shared-libs shared-libs - :shapes-with-children shapes-with-children}] + (= 0 (count selected)) + [:& page/options] - :else - [:& multiple/options - {:shapes-with-children shapes-with-children - :shapes selected-shapes - :page-id page-id - :file-id file-id - :shared-libs shared-libs}])]] + (= 1 (count selected)) + [:& shape-options + {:shape (first selected-shapes) + :page-id page-id + :file-id file-id + :shared-libs shared-libs + :shapes-with-children shapes-with-children}] - [:& tabs-element - {:id :prototype - :title (tr "workspace.options.prototype")} - - [:div.element-options - [:& interactions-menu {:shape (first shapes)}]]] - - [:& tabs-element {:id :inspect + :else + [:& multiple/options + {:shapes-with-children shapes-with-children + :shapes selected-shapes + :page-id page-id + :file-id file-id + :shared-libs shared-libs}])]] + [:& tab-element {:id :prototype + :title (tr "workspace.options.prototype")} + [:div {:class (stl/css :element-options)} + [:& interactions-menu {:shape (first shapes)}]]] + [:& tab-element {:id :inspect :title (tr "workspace.options.inspect")} + [:div {:class (stl/css :element-options)} + [:& hrs/right-sidebar {:page-id page-id + :objects objects + :file-id file-id + :frame shape-parent-frame + :shapes selected-shapes + :on-change-section on-change-section + :on-expand on-expand + :from :workspace}]]]]] - [:div.element-options.element-options-inspect - [:& hrs/right-sidebar {:page-id page-id - :objects objects - :file-id file-id - :frame shape-parent-frame - :shapes selected-shapes - :on-change-section on-change-section - :on-expand on-expand - :from :workspace}]]]]]])) + [:div.tool-window + [:div.tool-window-content + [:& tabs-container {:on-change-tab on-change-tab + :selected section} + [:& tabs-element {:id :design + :title (tr "workspace.options.design")} + [:div.element-options + [:& align-options] + [:& bool-options] + (cond + (some? selected-cell) + [:& grid-cell/options + {:shape (get objects edition) + :cell (dm/get-in objects [edition :layout-grid-cells selected-cell])}] + + edit-grid? + [:& layout-container/grid-layout-edition + {:ids [edition] + :values (get objects edition)}] + + (d/not-empty? drawing) + [:& shape-options + {:shape (:object drawing) + :page-id page-id + :file-id file-id + :shared-libs shared-libs}] + + (= 0 (count selected)) + [:& page/options] + + (= 1 (count selected)) + [:& shape-options + {:shape (first selected-shapes) + :page-id page-id + :file-id file-id + :shared-libs shared-libs + :shapes-with-children shapes-with-children}] + + :else + [:& multiple/options + {:shapes-with-children shapes-with-children + :shapes selected-shapes + :page-id page-id + :file-id file-id + :shared-libs shared-libs}])]] + + [:& tabs-element + {:id :prototype + :title (tr "workspace.options.prototype")} + + [:div.element-options + [:& interactions-menu {:shape (first shapes)}]]] + + [:& tabs-element {:id :inspect + :title (tr "workspace.options.inspect")} + + [:div.element-options.element-options-inspect + [:& hrs/right-sidebar {:page-id page-id + :objects objects + :file-id file-id + :frame shape-parent-frame + :shapes selected-shapes + :on-change-section on-change-section + :on-expand on-expand + :from :workspace}]]]]]]))) ;; TODO: this need optimizations, selected-objects and ;; selected-objects-with-children are derefed always but they only diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.css.json b/frontend/src/app/main/ui/workspace/sidebar/options.css.json new file mode 100644 index 000000000..cdcc0e3f4 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options.css.json @@ -0,0 +1 @@ +{"button-primary":"sidebar_options_button-primary_Ycnlr","button-secondary":"sidebar_options_button-secondary_S4ZcB","button-tertiary":"sidebar_options_button-tertiary_CB38E","button-radio":"sidebar_options_button-radio_QK8p8","button-warning":"sidebar_options_button-warning_vv-fk","button-disabled":"sidebar_options_button-disabled_ue85E","button-tag":"sidebar_options_button-tag_zm4LH","button-icon":"sidebar_options_button-icon_-R7Je","button-icon-small":"sidebar_options_button-icon-small_zhacE","link":"sidebar_options_link_iZ9av","asset-element":"sidebar_options_asset-element_KnWbl","input-element":"sidebar_options_input-element_KCtAD","new-scrollbar":"sidebar_options_new-scrollbar_qRJtb","menu-dropdown":"sidebar_options_menu-dropdown_eskoM","menu-item":"sidebar_options_menu-item_0aDxA","shortcut":"sidebar_options_shortcut_4JmTg","shortcut-key":"sidebar_options_shortcut-key_C5Uow","user-icon":"sidebar_options_user-icon_qaXts","tool-window":"sidebar_options_tool-window_LayWW","tab-spacing":"sidebar_options_tab-spacing_HSgti","content-class":"sidebar_options_content-class_IXvSf","element-options":"sidebar_options_element-options_6HY6o","spin-animation":"sidebar_options_spin-animation_Pq-La"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.scss b/frontend/src/app/main/ui/workspace/sidebar/options.scss new file mode 100644 index 000000000..dbc9c7dce --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options.scss @@ -0,0 +1,32 @@ +// 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"; + +.tool-window { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + padding-left: $s-12; + .tab-spacing { + margin-right: $s-12; + margin-bottom: $s-16; + } + + .content-class { + overflow-y: auto; + overflow-x: hidden; + height: calc(100vh - $s-96); + } + + .element-options { + width: 100%; + display: flex; + flex-direction: column; + gap: $s-16; + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.cljs index 3ecf47267..d3a016128 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.cljs @@ -5,74 +5,169 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options.menus.align + (:require-macros [app.main.style :as stl]) (:require [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.context :as ctx] [app.main.ui.icons :as i] + [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [rumext.v2 :as mf])) (mf/defc align-options [] - (let [selected (mf/deref refs/selected-shapes) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + selected (mf/deref refs/selected-shapes) + ;; don't need to watch objects, only read the value + objects (deref refs/workspace-page-objects) - ;; don't need to watch objects, only read the value - objects (deref refs/workspace-page-objects) + disabled-align (not (dw/can-align? selected objects)) + disabled-distribute (not (dw/can-distribute? selected)) - disabled (not (dw/can-align? selected objects)) + align-objects + (mf/use-fn + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (st/emit! (dw/align-objects value))))) - disabled-distribute (not(dw/can-distribute? selected))] + distribute-objects + (mf/use-fn + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (st/emit! (dw/distribute-objects value)))))] - [:div.align-options - [:div.align-group - [:div.align-button.tooltip.tooltip-bottom - {:alt (tr "workspace.align.hleft" (sc/get-tooltip :align-left)) - :class (when disabled "disabled") - :on-click #(st/emit! (dw/align-objects :hleft))} - i/shape-halign-left] + (when (not (and disabled-align disabled-distribute)) + (if new-css-system + [:div {:class (stl/css :align-options)} + [:div {:class (stl/css :align-group)} + [:button {:class (stl/css-case :align-button true + :disabled disabled-align) + :disabled disabled-align + :title (tr "workspace.align.hleft" (sc/get-tooltip :align-left)) + :data-value :hleft + :on-click align-objects} + i/align-left-refactor] - [:div.align-button.tooltip.tooltip-bottom - {:alt (tr "workspace.align.hcenter" (sc/get-tooltip :align-hcenter)) - :class (when disabled "disabled") - :on-click #(st/emit! (dw/align-objects :hcenter))} - i/shape-halign-center] + [:button {:class (stl/css-case :align-button true + :disabled disabled-align) + :disabled disabled-align + :title (tr "workspace.align.hcenter" (sc/get-tooltip :align-hcenter)) + :data-value :hcenter + :on-click align-objects} + i/align-horizontal-center-refactor] - [:div.align-button.tooltip.tooltip-bottom - {:alt (tr "workspace.align.hright" (sc/get-tooltip :align-right)) - :class (when disabled "disabled") - :on-click #(st/emit! (dw/align-objects :hright))} - i/shape-halign-right] + [:button {:class (stl/css-case :align-button true + :disabled disabled-align) + :disabled disabled-align + :title (tr "workspace.align.hright" (sc/get-tooltip :align-right)) + :data-value :hright + :on-click align-objects} + i/align-right-refactor] - [:div.align-button.tooltip.tooltip-bottom - {:alt (tr "workspace.align.hdistribute" (sc/get-tooltip :h-distribute)) - :class (when disabled-distribute "disabled") - :on-click #(st/emit! (dw/distribute-objects :horizontal))} - i/shape-hdistribute]] + [:button {:class (stl/css-case :align-button true + :disabled disabled-distribute) + :disabled disabled-distribute + :title (tr "workspace.align.hdistribute" (sc/get-tooltip :h-distribute)) + :data-value :horizontal + :on-click distribute-objects} + i/distribute-horizontally-refactor]] - [:div.align-group - [:div.align-button.tooltip.tooltip-bottom-left - {:alt (tr "workspace.align.vtop" (sc/get-tooltip :align-top)) - :class (when disabled "disabled") - :on-click #(st/emit! (dw/align-objects :vtop))} - i/shape-valign-top] + [:div {:class (stl/css :align-group)} + [:button {:class (stl/css-case :align-button true + :disabled disabled-align) + :disabled disabled-align + :title (tr "workspace.align.vtop" (sc/get-tooltip :align-top)) + :data-value :vtop + :on-click align-objects} + i/align-top-refactor] - [:div.align-button.tooltip.tooltip-bottom-left - {:alt (tr "workspace.align.vcenter" (sc/get-tooltip :align-vcenter)) - :class (when disabled "disabled") - :on-click #(st/emit! (dw/align-objects :vcenter))} - i/shape-valign-center] + [:button {:class (stl/css-case :align-button true + :disabled disabled-align) + :disabled disabled-align + :title (tr "workspace.align.vcenter" (sc/get-tooltip :align-vcenter)) + :data-value :vcenter + :on-click align-objects} + i/align-vertical-center-refactor] - [:div.align-button.tooltip.tooltip-bottom-left - {:alt (tr "workspace.align.vbottom" (sc/get-tooltip :align-bottom)) - :class (when disabled "disabled") - :on-click #(st/emit! (dw/align-objects :vbottom))} - i/shape-valign-bottom] + [:button {:class (stl/css-case :align-button true + :disabled disabled-align) + :disabled disabled-align + :title (tr "workspace.align.vbottom" (sc/get-tooltip :align-bottom)) + :data-value :vbottom + :on-click align-objects} + i/align-bottom-refactor] - [:div.align-button.tooltip.tooltip-bottom-left - {:alt (tr "workspace.align.vdistribute" (sc/get-tooltip :v-distribute)) - :class (when disabled-distribute "disabled") - :on-click #(st/emit! (dw/distribute-objects :vertical))} - i/shape-vdistribute]]])) + [:button {:title (tr "workspace.align.vdistribute" (sc/get-tooltip :v-distribute)) + :class (stl/css-case :align-button true + :disabled disabled-distribute) + :disabled disabled-distribute + :data-value :vertical + :on-click distribute-objects} + i/distribute-vertical-spacing-refactor]]] + + [:div.align-options + [:div.align-group + [:div.align-button.tooltip.tooltip-bottom + {:alt (tr "workspace.align.hleft" (sc/get-tooltip :align-left)) + :class (when disabled-align "disabled") + :data-value :hleft + :on-click align-objects} + i/shape-halign-left] + + [:div.align-button.tooltip.tooltip-bottom + {:alt (tr "workspace.align.hcenter" (sc/get-tooltip :align-hcenter)) + :class (when disabled-align "disabled") + :data-value :hcenter + :on-click align-objects} + i/shape-halign-center] + + [:div.align-button.tooltip.tooltip-bottom + {:alt (tr "workspace.align.hright" (sc/get-tooltip :align-right)) + :class (when disabled-align "disabled") + :data-value :hright + :on-click align-objects} + i/shape-halign-right] + + [:div.align-button.tooltip.tooltip-bottom + {:alt (tr "workspace.align.hdistribute" (sc/get-tooltip :h-distribute)) + :class (when disabled-distribute "disabled") + :data-value :horizontal + :on-click distribute-objects} + i/shape-hdistribute]] + + [:div.align-group + [:div.align-button.tooltip.tooltip-bottom-left + {:alt (tr "workspace.align.vtop" (sc/get-tooltip :align-top)) + :class (when disabled-align "disabled") + :data-value :vtop + :on-click align-objects} + i/shape-valign-top] + + [:div.align-button.tooltip.tooltip-bottom-left + {:alt (tr "workspace.align.vcenter" (sc/get-tooltip :align-vcenter)) + :class (when disabled-align "disabled") + :data-value :vcenter + :on-click align-objects} + i/shape-valign-center] + + [:div.align-button.tooltip.tooltip-bottom-left + {:alt (tr "workspace.align.vbottom" (sc/get-tooltip :align-bottom)) + :class (when disabled-align "disabled") + :data-value :vbottom + :on-click align-objects} + i/shape-valign-bottom] + + [:div.align-button.tooltip.tooltip-bottom-left + {:alt (tr "workspace.align.vdistribute" (sc/get-tooltip :v-distribute)) + :class (when disabled-distribute "disabled") + :data-value :horizontal + :on-click distribute-objects} + i/shape-vdistribute]]])))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.css.json new file mode 100644 index 000000000..daf4d6ec9 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.css.json @@ -0,0 +1 @@ +{"button-primary":"menus_align_button-primary_CrolU","button-secondary":"menus_align_button-secondary_DsY9F","button-tertiary":"menus_align_button-tertiary_DdNNn","align-options":"menus_align_align-options_uj9dG","align-group":"menus_align_align-group_P-mQt","align-button":"menus_align_align-button_F53jk","button-radio":"menus_align_button-radio_vEMOv","button-warning":"menus_align_button-warning_xzQsb","button-disabled":"menus_align_button-disabled_-zHjz","button-tag":"menus_align_button-tag_ZGsBX","button-icon":"menus_align_button-icon_EpzxY","button-icon-small":"menus_align_button-icon-small_6p5xy","link":"menus_align_link_5SYCx","asset-element":"menus_align_asset-element_6L7XD","input-element":"menus_align_input-element_vH3Z-","new-scrollbar":"menus_align_new-scrollbar_USuNZ","menu-dropdown":"menus_align_menu-dropdown_l1YnD","menu-item":"menus_align_menu-item_mXp3n","shortcut":"menus_align_shortcut_IIlv6","shortcut-key":"menus_align_shortcut-key_Kru5Y","user-icon":"menus_align_user-icon_qLwE0","disabled":"menus_align_disabled_jol2S","spin-animation":"menus_align_spin-animation_OoI-H"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.scss new file mode 100644 index 000000000..07c0002f5 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/align.scss @@ -0,0 +1,42 @@ +// 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"; + +.align-options { + display: flex; + height: $s-32; + margin: 0 calc(-1 * $s-2); + gap: $s-4; + .align-group { + display: flex; + align-items: center; + gap: $s-4; + .align-button { + @extend .button-tertiary; + height: $s-28; + width: $s-28; + padding: 0; + border-radius: $br-8; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + &.disabled { + cursor: default; + svg { + stroke: var(--button-foreground-color-disabled); + } + &:hover { + background-color: var(--panel-background-color); + svg { + stroke: var(--button-foreground-color-disabled); + } + } + } + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.cljs index 29f79ca7a..6c01408d2 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.cljs @@ -5,84 +5,166 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options.menus.bool + (:require-macros [app.main.style :as stl]) (:require + [app.common.data :as d] [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.radio-buttons :refer [radio-button radio-buttons]] + [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [rumext.v2 :as mf])) + + (mf/defc bool-options [] - (let [selected (mf/deref refs/selected-objects) - selected-with-children (mf/deref refs/selected-shapes-with-children) + (let [new-css-system (mf/use-ctx ctx/new-css-system) - has-invalid-shapes? (->> selected-with-children - (some (comp #{:frame :text} :type))) + selected (mf/deref refs/selected-objects) + head (first selected) + selected-with-children (mf/deref refs/selected-shapes-with-children) + has-invalid-shapes? (->> selected-with-children + (some (comp #{:frame :text} :type))) + is-group? (and (some? head) (= :group (:type head))) + is-bool? (and (some? head) (= :bool (:type head))) + head-bool-type (and (some? head) is-bool? (:bool-type head)) first-not-group-like? (and (= (count selected) 1) (not (contains? #{:group :bool} (:type (first selected))))) disabled-bool-btns (or (empty? selected) has-invalid-shapes? first-not-group-like?) - disabled-flatten (or (empty? selected) has-invalid-shapes?) - - head (first selected) - is-group? (and (some? head) (= :group (:type head))) - is-bool? (and (some? head) (= :bool (:type head))) - head-bool-type (and (some? head) is-bool? (:bool-type head)) + disabled-flatten (or (empty? selected) has-invalid-shapes?) set-bool - (fn [bool-type] - #(cond - (> (count selected) 1) - (st/emit! (dw/create-bool bool-type)) + (mf/use-fn + (mf/deps head head-bool-type selected) + (fn [event] + (let [bool-type (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (cond + (> (count selected) 1) + (st/emit! (dw/create-bool (if new-css-system + (keyword bool-type) + bool-type))) - (and (= (count selected) 1) is-group?) - (st/emit! (dw/group-to-bool (:id head) bool-type)) + (and (= (count selected) 1) is-group?) + (st/emit! (dw/group-to-bool (:id head) (if new-css-system + (keyword bool-type) + bool-type))) - (and (= (count selected) 1) is-bool?) - (if (= head-bool-type bool-type) - (st/emit! (dw/bool-to-group (:id head))) - (st/emit! (dw/change-bool-type (:id head) bool-type)))))] + (and (= (count selected) 1) is-bool?) + (if (= head-bool-type (if new-css-system + (keyword bool-type) + bool-type)) + (st/emit! (dw/bool-to-group (:id head))) + (st/emit! (dw/change-bool-type (:id head) (if new-css-system + (keyword bool-type) + bool-type)))))))) - [:div.align-options - [:div.align-group - [:div.align-button.tooltip.tooltip-bottom - {:alt (str (tr "workspace.shape.menu.union") " (" (sc/get-tooltip :bool-union) ")") - :class (dom/classnames :disabled disabled-bool-btns - :selected (= head-bool-type :union)) - :on-click (set-bool :union)} - i/bool-union] + set-bool-refactor + (mf/use-fn + (mf/deps selected is-group? is-bool?) + (fn [bool-type] + (let [bool-type (if new-css-system + (keyword bool-type) + bool-type)] + (cond + (> (count selected) 1) + (st/emit! (dw/create-bool bool-type)) - [:div.align-button.tooltip.tooltip-bottom - {:alt (str (tr "workspace.shape.menu.difference") " (" (sc/get-tooltip :bool-difference) ")") - :class (dom/classnames :disabled disabled-bool-btns - :selected (= head-bool-type :difference)) - :on-click (set-bool :difference)} - i/bool-difference] + (and (= (count selected) 1) is-group?) + (st/emit! (dw/group-to-bool (:id head) bool-type)) - [:div.align-button.tooltip.tooltip-bottom - {:alt (str (tr "workspace.shape.menu.intersection") " (" (sc/get-tooltip :bool-intersection) ")") - :class (dom/classnames :disabled disabled-bool-btns - :selected (= head-bool-type :intersection)) - :on-click (set-bool :intersection)} - i/bool-intersection] + (and (= (count selected) 1) is-bool?) + (if (= head-bool-type bool-type) + (st/emit! (dw/bool-to-group (:id head))) + (st/emit! (dw/change-bool-type (:id head) bool-type))))))) - [:div.align-button.tooltip.tooltip-bottom - {:alt (str (tr "workspace.shape.menu.exclude") " (" (sc/get-tooltip :bool-exclude) ")") - :class (dom/classnames :disabled disabled-bool-btns - :selected (= head-bool-type :exclude)) - :on-click (set-bool :exclude)} - i/bool-exclude]] + flatten-objects (mf/use-fn #(st/emit! (dw/convert-selected-to-path)))] - [:div.align-group - [:div.align-button.tooltip.tooltip-bottom - {:alt (tr "workspace.shape.menu.flatten") - :class (dom/classnames :disabled disabled-flatten) - :on-click #(st/emit! (dw/convert-selected-to-path))} - i/bool-flatten]]])) + (when (not (and disabled-bool-btns disabled-flatten)) + (if new-css-system + [:div {:class (stl/css :boolean-options)} + [:div {:class (stl/css :bool-group)} + [:& radio-buttons {:selected (d/name head-bool-type) + :on-change set-bool-refactor + :name "bool-options"} + [:& radio-button {:icon i/boolean-union-refactor + :value "union" + :disabled disabled-bool-btns + :title (str (tr "workspace.shape.menu.union") " (" (sc/get-tooltip :bool-union) ")") + :id :union}] + [:& radio-button {:icon i/boolean-difference-refactor + :value "difference" + :disabled disabled-bool-btns + :title (str (tr "workspace.shape.menu.difference") " (" (sc/get-tooltip :bool-difference) ")") + :id :difference}] + [:& radio-button {:icon i/boolean-intersection-refactor + :value "intersection" + :disabled disabled-bool-btns + :title (str (tr "intersection") " (" (sc/get-tooltip :bool-intersection) ")") + :id :intersection}] + [:& radio-button {:icon i/boolean-exclude-refactor + :value "exclude" + :disabled disabled-bool-btns + :title (str (tr "exclude") " (" (sc/get-tooltip :bool-exclude) ")") + :id :exclude}]]] + + [:div {:class (stl/css :bool-group)} + [:button + {:title (tr "workspace.shape.menu.flatten") + :class (stl/css-case + :flatten true + :disabled disabled-flatten) + :disabled disabled-flatten + :on-click flatten-objects} + i/boolean-flatten-refactor]]] + + [:div.align-options + [:div.align-group + [:div.align-button.tooltip.tooltip-bottom + {:alt (str (tr "workspace.shape.menu.union") " (" (sc/get-tooltip :bool-union) ")") + :class (dom/classnames :disabled disabled-bool-btns + :selected (= head-bool-type :union)) + :data-value :union + :on-click set-bool} + i/bool-union] + + [:div.align-button.tooltip.tooltip-bottom + {:alt (str (tr "workspace.shape.menu.difference") " (" (sc/get-tooltip :bool-difference) ")") + :class (dom/classnames :disabled disabled-bool-btns + :selected (= head-bool-type :difference)) + :data-value :difference + :on-click set-bool} + i/bool-difference] + + [:div.align-button.tooltip.tooltip-bottom + {:alt (str (tr "workspace.shape.menu.intersection") " (" (sc/get-tooltip :bool-intersection) ")") + :class (dom/classnames :disabled disabled-bool-btns + :selected (= head-bool-type :intersection)) + :data-value :intersection + :on-click set-bool} + i/bool-intersection] + + [:div.align-button.tooltip.tooltip-bottom + {:alt (str (tr "workspace.shape.menu.exclude") " (" (sc/get-tooltip :bool-exclude) ")") + :class (dom/classnames :disabled disabled-bool-btns + :selected (= head-bool-type :exclude)) + :data-value :exclude + :on-click (set-bool :intersection)} + i/bool-exclude]] + + [:div.align-group + [:div.align-button.tooltip.tooltip-bottom + {:alt (tr "workspace.shape.menu.flatten") + :class (dom/classnames :disabled disabled-flatten) + :on-click flatten-objects} + i/bool-flatten]]])))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.css.json new file mode 100644 index 000000000..abfb6ac3e --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.css.json @@ -0,0 +1 @@ +{"button-primary":"menus_bool_button-primary_OZ9LY","button-secondary":"menus_bool_button-secondary_XAFBl","button-tertiary":"menus_bool_button-tertiary_YQhEH","boolean-options":"menus_bool_boolean-options_Yq7h2","bool-group":"menus_bool_bool-group_eJQaa","flatten":"menus_bool_flatten_Mx-oM","button-radio":"menus_bool_button-radio_WaRtW","button-warning":"menus_bool_button-warning_3dgn5","button-disabled":"menus_bool_button-disabled_uItqB","button-tag":"menus_bool_button-tag_FX2MF","button-icon":"menus_bool_button-icon_O1hdU","button-icon-small":"menus_bool_button-icon-small_NE9w7","link":"menus_bool_link_YleIO","asset-element":"menus_bool_asset-element_AOtGG","input-element":"menus_bool_input-element_r4K6y","new-scrollbar":"menus_bool_new-scrollbar_9D-29","menu-dropdown":"menus_bool_menu-dropdown_ghGsu","menu-item":"menus_bool_menu-item_PBOy4","shortcut":"menus_bool_shortcut_CzGpH","shortcut-key":"menus_bool_shortcut-key_6ESUj","user-icon":"menus_bool_user-icon_u8tS1","disabled":"menus_bool_disabled_Q2PTU","spin-animation":"menus_bool_spin-animation_uXbpx"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.scss new file mode 100644 index 000000000..c5a35400a --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/bool.scss @@ -0,0 +1,40 @@ +// 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"; + +.boolean-options { + display: flex; + height: $s-32; + gap: $s-4; + margin: 0 calc(-1 * $s-2); + .bool-group { + display: flex; + align-items: center; + .flatten { + @extend .button-tertiary; + height: $s-28; + width: $s-28; + border-radius: $br-8; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + &.disabled { + cursor: default; + svg { + stroke: var(--button-foreground-color-disabled); + } + &:hover { + background-color: var(--panel-background-color); + svg { + stroke: var(--button-foreground-color-disabled); + } + } + } + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs index 6ac870eca..c9f901b71 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options.menus.layer + (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] [app.common.data.macros :as dm] @@ -13,6 +14,7 @@ [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input*]] [app.main.ui.components.select :refer [select]] + [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [tr]] [rumext.v2 :as mf])) @@ -31,10 +33,14 @@ (mf/defc layer-menu {::mf/wrap-props false} [props] - (let [ids (unchecked-get props "ids") + (let [new-css-system (mf/use-ctx ctx/new-css-system) + ids (unchecked-get props "ids") type (unchecked-get props "type") values (unchecked-get props "values") + hidden? (:hidden values) + blocked? (:blocked values) + current-blend-mode (or (:blend-mode values) :normal) current-opacity (:opacity values) @@ -59,9 +65,9 @@ (mf/deps on-change) (fn [value] (swap! state* assoc - :selected-blend-mode value - :option-highlighted? false - :preview-complete? true) + :selected-blend-mode value + :option-highlighted? false + :preview-complete? true) (st/emit! (dw/unset-preview-blend-mode ids)) (on-change :blend-mode value))) @@ -70,8 +76,8 @@ (mf/deps on-change current-blend-mode) (fn [value] (swap! state* assoc - :preview-complete? false - :option-highlighted? true) + :preview-complete? false + :option-highlighted? true) (st/emit! (dw/set-preview-blend-mode ids value)))) handle-blend-mode-leave @@ -142,45 +148,89 @@ preview-complete?)) (swap! state* assoc :selected-blend-mode current-blend-mode))) - [:div.element-set - [:div.element-set-title - [:span - (case type - :multiple (tr "workspace.options.layer-options.title.multiple") - :group (tr "workspace.options.layer-options.title.group") - (tr "workspace.options.layer-options.title"))]] + (if new-css-system + [:div {:class (stl/css :element-set)} + [:div {:class (stl/css-case :element-set-content true + :hidden (or hidden? + blocked?))} + [:div {:class (stl/css :select)} + [:& select + {:default-value selected-blend-mode + :options options + :on-change handle-change-blend-mode + :is-open? option-highlighted? + :on-pointer-enter-option handle-blend-mode-enter + :on-pointer-leave-option handle-blend-mode-leave}]] + [:div {:class (stl/css :input) + :title (tr "workspace.options.opacity")} + [:span {:class (stl/css :icon)} "%"] + [:> numeric-input* + {:value (opacity->string current-opacity) + :placeholder (tr "settings.multiple") + :on-change handle-opacity-change + :min 0 + :max 100 + :className (stl/css :numeric-input)}]] - [:div.element-set-content - [:div.row-flex - [:& select - {:class "flex-grow no-check" - :default-value selected-blend-mode - :options options - :on-change handle-change-blend-mode - :is-open? option-highlighted? - :on-pointer-enter-option handle-blend-mode-enter - :on-pointer-leave-option handle-blend-mode-leave}] - [:div.input-element {:title (tr "workspace.options.opacity") - :class "percentail"} - [:> numeric-input* - {:value (opacity->string current-opacity) - :placeholder (tr "settings.multiple") - :on-change handle-opacity-change - :min 0 - :max 100}]] + [:div {:class (stl/css :actions)} + (cond + (or (= :multiple hidden?) (not hidden?)) + [:button {:on-click handle-set-hidden + :class (stl/css :hidden-btn)} i/shown-refactor] - [:div.element-set-actions.layer-actions - (cond - (or (= :multiple (:hidden values)) (not (:hidden values))) - [:div.element-set-actions-button {:on-click handle-set-hidden} i/eye] + :else + [:button {:on-click handle-set-visible + :class (stl/css :hidden-btn)} i/hide-refactor]) - :else - [:div.element-set-actions-button {:on-click handle-set-visible} i/eye-closed]) + (cond + (or (= :multiple blocked?) (not blocked?)) + [:button {:on-click handle-set-blocked + :class (stl/css :lock-btn)} i/unlock-refactor] - (cond - (or (= :multiple (:blocked values)) (not (:blocked values))) - [:div.element-set-actions-button {:on-click handle-set-blocked} i/unlock] + :else + [:button {:on-click handle-set-unblocked + :class (stl/css :lock-btn)} i/lock-refactor])]]] - :else - [:div.element-set-actions-button {:on-click handle-set-unblocked} i/lock])]]]])) + [:div.element-set + [:div.element-set-title + [:span + (case type + :multiple (tr "workspace.options.layer-options.title.multiple") + :group (tr "workspace.options.layer-options.title.group") + (tr "workspace.options.layer-options.title"))]] + + [:div.element-set-content + [:div.row-flex + [:& select + {:class "flex-grow no-check" + :default-value selected-blend-mode + :options options + :on-change handle-change-blend-mode + :is-open? option-highlighted? + :on-pointer-enter-option handle-blend-mode-enter + :on-pointer-leave-option handle-blend-mode-leave}] + + [:div.input-element {:title (tr "workspace.options.opacity") + :class "percentail"} + [:> numeric-input* + {:value (opacity->string current-opacity) + :placeholder (tr "settings.multiple") + :on-change handle-opacity-change + :min 0 + :max 100}]] + + [:div.element-set-actions.layer-actions + (cond + (or (= :multiple hidden?) (not hidden?)) + [:div.element-set-actions-button {:on-click handle-set-hidden} i/eye] + + :else + [:div.element-set-actions-button {:on-click handle-set-visible} i/eye-closed]) + + (cond + (or (= :multiple blocked?) (not blocked?)) + [:div.element-set-actions-button {:on-click handle-set-blocked} i/unlock] + + :else + [:div.element-set-actions-button {:on-click handle-set-unblocked} i/lock])]]]]))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.css.json new file mode 100644 index 000000000..04452fdfd --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.css.json @@ -0,0 +1 @@ +{"button-primary":"menus_layer_button-primary_RAH7Y","button-secondary":"menus_layer_button-secondary_XiI8s","button-tertiary":"menus_layer_button-tertiary_MOiV1","element-set":"menus_layer_element-set_V8O5E","element-set-content":"menus_layer_element-set-content_cX8Zl","actions":"menus_layer_actions_h7LSS","hidden-btn":"menus_layer_hidden-btn_DAFoH","lock-btn":"menus_layer_lock-btn_1Dj4o","button-radio":"menus_layer_button-radio_Qq8Oh","button-warning":"menus_layer_button-warning_vJhe5","button-disabled":"menus_layer_button-disabled_0b0gp","button-tag":"menus_layer_button-tag_0wtbe","button-icon":"menus_layer_button-icon_N7bym","button-icon-small":"menus_layer_button-icon-small_Tl6tC","link":"menus_layer_link_VoHCZ","asset-element":"menus_layer_asset-element_4gxSP","select":"menus_layer_select_Jyi8h","input-element":"menus_layer_input-element_66YCF","input":"menus_layer_input_-gKlR","new-scrollbar":"menus_layer_new-scrollbar_spAR-","menu-dropdown":"menus_layer_menu-dropdown_GTCqw","menu-item":"menus_layer_menu-item_huF55","shortcut":"menus_layer_shortcut_UIcAB","shortcut-key":"menus_layer_shortcut-key_rMJYu","user-icon":"menus_layer_user-icon_Mc6Mt","icon":"menus_layer_icon_j1zrB","numeric-input":"menus_layer_numeric-input_Bd9vS","hidden":"menus_layer_hidden_Q6WIJ","spin-animation":"menus_layer_spin-animation_dlhY4"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss new file mode 100644 index 000000000..62687e83a --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layer.scss @@ -0,0 +1,83 @@ +// 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"; + +.element-set { + .element-set-content { + display: flex; + height: $s-32; + gap: $s-4; + .select { + @extend .asset-element; + width: $s-124; + margin: 0; + padding: 0; + border: 1px solid var(--input-background-color); + } + .input { + @extend .input-element; + width: $s-60; + padding-left: $s-8; + border: 1px solid var(--input-background-color); + .icon { + @include flexCenter; + margin-right: $s-4; + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + } + } + .actions { + display: flex; + gap: $s-4; + .hidden-btn, + .lock-btn { + @extend .button-tertiary; + border-radius: $br-8; + height: $s-32; + width: $s-28; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + } + } + + &.hidden { + .select { + background-color: transparent; + border: 1px solid var(--input-border-color-disabled); + color: var(--input-foreground-color-disabled); + } + .input { + background-color: transparent; + border: 1px solid var(--input-border-color-disabled); + color: var(--input-foreground-color-disable); + + .icon { + stroke: var(--input-foreground-color-disabled); + } + .numeric-input { + color: var(--input-foreground-color-disabled); + } + } + .actions { + .hidden-btn, + .lock-btn { + background-color: transparent; + svg { + stroke: var(--input-foreground-color-disabled); + } + } + } + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs index c47566371..7dbdc17da 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options.menus.layout-container + (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] [app.common.data.macros :as dm] @@ -16,12 +17,48 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input*]] + [app.main.ui.components.radio-buttons :refer [radio-button radio-buttons]] [app.main.ui.components.select :refer [select]] + [app.main.ui.components.title-bar :refer [title-bar]] + [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.util.dom :as dom] [cuerdas.core :as str] [rumext.v2 :as mf])) +(defn dir-icons-refactor + [val] + (case val + :row i/grid-row-refactor + :row-reverse i/row-reverse-refactor + :column i/column-refactor + :column-reverse i/column-reverse-refactor)) + +(mf/defc direction-btn + [{:keys [dir saved-dir on-click icon?] :as props}] + (let [handle-on-click + (mf/use-fn + (mf/deps on-click dir) + (fn [] + (when (some? on-click) + (on-click dir))))] + + [:button.dir.tooltip.tooltip-bottom + {:class (dom/classnames :active (= saved-dir dir) + :row (= :row dir) + :row-reverse (= :row-reverse dir) + :column-reverse (= :column-reverse dir) + :column (= :column dir)) + :key (dm/str "direction-" dir) + :alt (str/replace (str/capital (d/name dir)) "-" " ") + :on-click handle-on-click} + (if icon? + i/auto-direction + (str/replace (str/capital (d/name dir)) "-" " "))])) + + +;; FLEX COMPONENTS + (def layout-container-flex-attrs [:layout ;; :flex, :grid in the future :layout-flex-dir ;; :row, :row-reverse, :column, :column-reverse @@ -120,132 +157,332 @@ :stretch i/align-self-column-strech :baseline i/align-self-column-baseline)))) -(defn get-layout-grid-icon +(defn get-layout-flex-icon-refactor [type val is-col?] (case type - :justify-items + :align-items (if is-col? (case val - :stretch i/align-items-row-strech - :start i/grid-justify-content-column-start - :end i/grid-justify-content-column-end - :center i/grid-justify-content-column-center - :space-around i/grid-justify-content-column-around - :space-between i/grid-justify-content-column-between - :space-evenly i/grid-justify-content-column-between) + :start i/align-items-column-start-refactor + :end i/align-items-column-end-refactor + :center i/align-items-column-center-refactor + :stretch i/align-items-column-strech + :baseline i/align-items-column-baseline) + (case val ;; TODO Check strech and baseline icons + :start i/align-items-row-start-refactor + :end i/align-items-row-end-refactor + :center i/align-items-row-center-refactor + :stretch i/align-items-row-strech + :baseline i/align-items-row-baseline)) + + :justify-content + (if is-col? + (case val + :start i/justify-content-column-start-refactor + :end i/justify-content-column-end-refactor + :center i/justify-content-column-center-refactor + :space-around i/justify-content-column-around-refactor + :space-evenly i/justify-content-column-evenly-refactor + :space-between i/justify-content-column-between-refactor) + (case val + :start i/justify-content-row-start-refactor + :end i/justify-content-row-end-refactor + :center i/justify-content-row-center-refactor + :space-around i/justify-content-row-around-refactor + :space-evenly i/justify-content-row-evenly-refactor + :space-between i/justify-content-row-between-refactor)) + + :align-content + (if is-col? + (case val + :start i/align-content-column-start-refactor + :end i/align-content-column-end-refactor + :center i/align-content-column-center-refactor + :space-around i/align-content-column-around-refactor + :space-evenly i/align-content-column-evenly-refactor + :space-between i/align-content-column-between-refactor + :stretch nil) (case val - :stretch i/align-items-column-strech - :start i/grid-justify-content-row-start - :end i/grid-justify-content-row-end - :center i/grid-justify-content-row-center - :space-around i/grid-justify-content-row-around - :space-between i/grid-justify-content-row-between - :space-evenly i/grid-justify-content-row-between)))) + :start i/align-content-row-start-refactor + :end i/align-content-row-end-refactor + :center i/align-content-row-center-refactor + :space-around i/align-content-row-around-refactor + :space-evenly i/align-content-row-evenly-refactor + :space-between i/align-content-row-between-refactor + :stretch nil)) -(mf/defc direction-btn - [{:keys [dir saved-dir set-direction icon?] :as props}] - (let [handle-on-click - (mf/use-callback - (mf/deps set-direction dir) - (fn [] - (when (some? set-direction) - (set-direction dir))))] - [:button.dir.tooltip.tooltip-bottom - {:class (dom/classnames :active (= saved-dir dir) - :row (= :row dir) - :row-reverse (= :row-reverse dir) - :column-reverse (= :column-reverse dir) - :column (= :column dir)) - :key (dm/str "direction-" dir) - :alt (str/replace (str/capital (d/name dir)) "-" " ") - :on-click handle-on-click} - (if icon? - i/auto-direction - (str/replace (str/capital (d/name dir)) "-" " "))])) + :align-self + (if is-col? + (case val + :auto i/remove-refactor + :start i/align-self-row-left-refactor + :end i/align-self-row-right-refactor + :center i/align-self-row-center-refactor + :stretch i/align-self-row-strech + :baseline i/align-self-row-baseline) + (case val + :auto i/remove-refactor + :start i/align-self-column-top-refactor + :end i/align-self-column-bottom-refactor + :center i/align-self-column-center-refactor + :stretch i/align-self-column-strech + :baseline i/align-self-column-baseline)))) + +(mf/defc direction-row-flex + [{:keys [saved-dir on-change] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + (if new-css-system + [:& radio-buttons {:selected (d/name saved-dir) + :on-change on-change + :name "flex-direction"} + [:& radio-button {:value "row" + :id "flex-direction-row" + :title "Row" + :icon (dir-icons-refactor :row)}] + [:& radio-button {:value "row-reverse" + :id "flex-direction-row-reverse" + :title "Row reverse" + :icon (dir-icons-refactor :row-reverse)}] + [:& radio-button {:value "column" + :id "flex-direction-column" + :title "Column" + :icon (dir-icons-refactor :column)}] + [:& radio-button {:value "column-reverse" + :id "flex-direction-column-reverse" + :title "Column reverse" + :icon (dir-icons-refactor :column-reverse)}]] + [:* + (for [dir [:row :row-reverse :column :column-reverse]] + [:& direction-btn {:key (d/name dir) + :dir dir + :saved-dir saved-dir + :on-click on-change + :icon? true}])]))) (mf/defc wrap-row - [{:keys [wrap-type set-wrap] :as props}] - [:* - [:button.tooltip.tooltip-bottom - {:class (dom/classnames :active (= wrap-type :nowrap)) - :alt "No wrap" - :on-click #(set-wrap :nowrap) - :style {:padding 0}} - [:span.no-wrap i/minus]] - [:button.wrap.tooltip.tooltip-bottom - {:class (dom/classnames :active (= wrap-type :wrap)) - :alt "Wrap" - :on-click #(set-wrap :wrap)} - i/auto-wrap]]) + [{:keys [wrap-type on-click] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + (if new-css-system + [:button {:class (stl/css-case :wrap-button true + :selected (= wrap-type :wrap)) + :title (if (= :wrap wrap-type) + "No wrap" + "Wrap") + :on-click on-click} + i/wrap-refactor] + + [:* + [:button.tooltip.tooltip-bottom + {:class (dom/classnames :active (= wrap-type :nowrap)) + :alt "No wrap" + :data-value :nowrap + :on-click on-click + :style {:padding 0}} + [:span.no-wrap i/minus]] + [:button.wrap.tooltip.tooltip-bottom + {:class (dom/classnames :active (= wrap-type :wrap)) + :alt "Wrap" + :data-value :wrap + :on-click on-click} + i/auto-wrap]]))) (mf/defc align-row - [{:keys [is-col? align-items set-align] :as props}] + [{:keys [is-col? align-items on-change] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + (if new-css-system + [:& radio-buttons {:selected (d/name align-items) + :on-change on-change + :name "flex-align-items"} + [:& radio-button {:value "start" + :icon (get-layout-flex-icon-refactor :align-items :start is-col?) + :title "Align items start" + :id "align-items-start"}] + [:& radio-button {:value "center" + :icon (get-layout-flex-icon-refactor :align-items :center is-col?) + :title "Align items center" + :id "align-items-center"}] + [:& radio-button {:value "end" + :icon (get-layout-flex-icon-refactor :align-items :end is-col?) + :title "Align items end" + :id "align-items-end"}]] - [:div.align-items-style - (for [align [:start :center :end #_:stretch #_:baseline]] - [:button.align-start.tooltip - {:class (dom/classnames :active (= align-items align) - :tooltip-bottom-left (not= align :start) - :tooltip-bottom (= align :start)) - :alt (dm/str "Align items " (d/name align)) - :on-click #(set-align align) - :key (dm/str "align-items" (d/name align))} - (get-layout-flex-icon :align-items align is-col?)])]) + [:div.align-items-style + [:button.align-start.tooltip.tooltip-bottom + {:class (dom/classnames :active (= align-items :start)) + :alt "Align items start" + :data-value :start + :on-click on-change} + (get-layout-flex-icon :align-items :start is-col?)] + [:button.align-start.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= align-items :center)) + :alt "Align items center" + :data-value :center + :on-click on-change} + (get-layout-flex-icon :align-items :center is-col?)] + [:button.align-start.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= align-items :end)) + :alt "Align items end" + :data-value :end + :on-click on-change} + (get-layout-flex-icon :align-items :end is-col?)]]))) (mf/defc align-content-row - [{:keys [is-col? align-content set-align-content] :as props}] - [:* - [:div.align-content-style - (for [align [:start :center :end]] - [:button.align-content.tooltip - {:class (dom/classnames :active (= align-content align) - :tooltip-bottom-left (not= align :start) - :tooltip-bottom (= align :start)) - :alt (dm/str "Align content " (d/name align)) - :on-click #(set-align-content align) - :key (dm/str "align-content" (d/name align))} - (get-layout-flex-icon :align-content align is-col?)])] - [:div.align-content-style - (for [align [:space-between :space-around :space-evenly]] - [:button.align-content.tooltip - {:class (dom/classnames :active (= align-content align) - :tooltip-bottom-left (not= align :space-between) - :tooltip-bottom (= align :space-between)) - :alt (dm/str "Align content " (d/name align)) - :on-click #(set-align-content align) - :key (dm/str "align-content" (d/name align))} - (get-layout-flex-icon :align-content align is-col?)])]]) + [{:keys [is-col? align-content on-change] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + (if new-css-system + [:& radio-buttons {:selected (d/name align-content) + :on-change on-change + :name "flex-align-content"} + [:& radio-button {:value "start" + :icon (get-layout-flex-icon-refactor :align-content :start is-col?) + :title "Align content start" + :id "align-content-start"}] + [:& radio-button {:value "center" + :icon (get-layout-flex-icon-refactor :align-content :center is-col?) + :title "Align content center" + :id "align-content-center"}] + [:& radio-button {:value "end" + :icon (get-layout-flex-icon-refactor :align-content :end is-col?) + :title "Align content end" + :id "align-content-end"}] + [:& radio-button {:value "space-between" + :icon (get-layout-flex-icon-refactor :align-content :space-between is-col?) + :title "Align content space-between" + :id "align-content-space-between"}] + [:& radio-button {:value "space-around" + :icon (get-layout-flex-icon-refactor :align-content :space-around is-col?) + :title "Align content space-around" + :id "align-content-space-around"}] + [:& radio-button {:value "space-evenly" + :icon (get-layout-flex-icon-refactor :align-content :space-evenly is-col?) + :title "Align content space-evenly" + :id "align-content-space-evenly"}]] + [:* + [:div.align-content-style + [:button.align-content.tooltip.tooltip-bottom + {:class (dom/classnames :active (= align-content :start)) + :alt "Align content start" + :data-value :start + :on-click on-change} + (get-layout-flex-icon :align-content :start is-col?)] + [:button.align-content.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= align-content :center)) + :alt "Align content center" + :data-value :center + :on-click on-change} + (get-layout-flex-icon :align-content :center is-col?)] + [:button.align-content.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= align-content :end)) + :alt "Align content end" + :data-value :end + :on-click on-change} + (get-layout-flex-icon :align-content :end is-col?)]] + [:div.align-content-style + [:button.align-content.tooltip.tooltip-bottom + {:class (dom/classnames :active (= align-content :space-between)) + :alt "Align content space-between" + :data-value :space-between + :on-click on-change} + (get-layout-flex-icon :align-content :space-between is-col?)] + [:button.align-content.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= align-content :space-around)) + :alt "Align content space-around" + :data-value :space-around + :on-click on-change} + (get-layout-flex-icon :align-content :space-around is-col?)] + [:button.align-content.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= align-content :space-evenly)) + :alt "Align content space-evenly" + :data-value :space-evenly + :on-click on-change} + (get-layout-flex-icon :align-content :space-evenly is-col?)]]]))) (mf/defc justify-content-row - [{:keys [is-col? justify-content set-justify] :as props}] - [:* - [:div.justify-content-style - (for [justify [:start :center :end]] - [:button.justify.tooltip - {:class (dom/classnames :active (= justify-content justify) - :tooltip-bottom-left (not= justify :start) - :tooltip-bottom (= justify :start)) - :alt (dm/str "Justify content " (d/name justify)) - :on-click #(set-justify justify) - :key (dm/str "justify-content" (d/name justify))} - (get-layout-flex-icon :justify-content justify is-col?)])] - [:div.justify-content-style - (for [justify [:space-between :space-around :space-evenly]] - [:button.justify.tooltip - {:class (dom/classnames :active (= justify-content justify) - :tooltip-bottom-left (not= justify :space-between) - :tooltip-bottom (= justify :space-between)) - :alt (dm/str "Justify content " (d/name justify)) - :on-click #(set-justify justify) - :key (dm/str "justify-content" (d/name justify))} - (get-layout-flex-icon :justify-content justify is-col?)])]]) + [{:keys [is-col? justify-content on-change] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + (if new-css-system + [:& radio-buttons {:selected (d/name justify-content) + :on-change on-change + :name "flex-justify"} + [:& radio-button {:value "start" + :icon (get-layout-flex-icon-refactor :justify-content :start is-col?) + :title "Justify content start" + :id "justify-content-start"}] + [:& radio-button {:value "center" + :icon (get-layout-flex-icon-refactor :justify-content :center is-col?) + :title "Justify content center" + :id "justify-content-center"}] + [:& radio-button {:value "end" + :icon (get-layout-flex-icon-refactor :justify-content :end is-col?) + :title "Justify content end" + :id "justify-content-end"}] + [:& radio-button {:value "space-between" + :icon (get-layout-flex-icon-refactor :justify-content :space-between is-col?) + :title "Justify content space-between" + :id "justify-content-space-between"}] + [:& radio-button {:value "space-around" + :icon (get-layout-flex-icon-refactor :justify-content :space-around is-col?) + :title "Justify content space-around" + :id "justify-content-space-around"}] + [:& radio-button {:value "space-evenly" + :icon (get-layout-flex-icon-refactor :justify-content :space-evenly is-col?) + :title "Justify content space-evenly" + :id "justify-content-space-evenly"}]] + [:* + [:div.justify-content-style + [:button.justify.tooltip.tooltip-bottom + {:class (dom/classnames :active (= justify-content :start)) + :alt "Justify content start" + :data-value :start + :on-click on-change} + (get-layout-flex-icon :justify-content :start is-col?)] + [:button.justify.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= justify-content :center)) + :data-value :center + :alt "Justify content center" + :on-click on-change} + (get-layout-flex-icon :justify-content :center is-col?)] + [:button.justify.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= justify-content :end)) + :alt "Justify content end" + :data-value :end + :on-click on-change} + (get-layout-flex-icon :justify-content :end is-col?)]] + [:div.justify-content-style + [:button.justify.tooltip.tooltip-bottom + {:class (dom/classnames :active (= justify-content :space-between)) + :alt "Justify content space-between" + :data-value :space-between + :on-click on-change} + (get-layout-flex-icon :justify-content :space-between is-col?)] + [:button.justify.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= justify-content :space-around)) + :alt "Justify content space-around" + :data-value :space-around + :on-click on-change} + (get-layout-flex-icon :justify-content :space-around is-col?)] + [:button.justify.tooltip.tooltip-bottom-left + {:class (dom/classnames :active (= justify-content :space-evenly)) + :alt "Justify content space-evenly" + :data-value :space-evenly + :on-click on-change} + (get-layout-flex-icon :justify-content :space-evenly is-col?)]]]))) (mf/defc padding-section [{:keys [values on-change-style on-change] :as props}] - (let [padding-type (:layout-padding-type values) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + padding-type (:layout-padding-type values) + + toggle-padding-mode + (mf/use-fn + (mf/deps padding-type on-change-style) + (fn [] + (let [padding (if (= padding-type :multiple) :simple :multiple)] + (on-change-style padding)))) + p1 (if (and (not (= :multiple (:layout-padding values))) (= (dm/get-in values [:layout-padding :p1]) (dm/get-in values [:layout-padding :p3]))) @@ -270,62 +507,153 @@ ;;on destroy component (select-paddings false false false false)))) - [:div.padding-row - (cond - (= padding-type :simple) - - [:div.padding-group - [:div.padding-item.tooltip.tooltip-bottom-left - {:alt "Vertical padding"} - [:span.icon.rotated i/auto-padding-both-sides] - [:> numeric-input* - {:placeholder "--" - :on-change (partial on-change :simple :p1) - :on-focus #(do - (dom/select-target %) - (select-paddings true false true false)) - :value p1}]] - - [:div.padding-item.tooltip.tooltip-bottom-left - {:alt "Horizontal padding"} - [:span.icon i/auto-padding-both-sides] - [:> numeric-input* - {:placeholder "--" - :on-change (partial on-change :simple :p2) - :on-focus #(do (dom/select-target %) - (select-paddings false true false true)) - :on-blur #(select-paddings false false false false) - :value p2}]]] - - (= padding-type :multiple) - [:div.wrapper - (for [num [:p1 :p2 :p3 :p4]] - [:div.tooltip.tooltip-bottom - {:key (dm/str "padding-" (d/name num)) - :alt (case num - :p1 "Top" - :p2 "Right" - :p3 "Bottom" - :p4 "Left")} - [:div.input-element.auto + (if new-css-system + [:div {:class (stl/css :padding-group)} + [:div {:class (stl/css :padding-inputs)} + (cond + (= padding-type :simple) + [:div {:class (stl/css :paddings-simple)} + [:div {:class (stl/css :padding-simple) + :title "Vertical padding"} + [:span {:class (stl/css :icon)} + i/padding-top-bottom-refactor] [:> numeric-input* - {:placeholder "--" - :on-change (partial on-change :multiple num) - :on-focus #(do (dom/select-target %) - (select-padding num)) - :on-blur #(select-paddings false false false false) - :value (num (:layout-padding values))}]]])]) + {:className (stl/css :numeric-input) + :placeholder "--" + :on-change (partial on-change :simple :p1) + :on-focus #(do + (dom/select-target %) + (select-paddings true false true false)) + :value p1}]] + [:div {:class (stl/css :padding-simple) + :title "Horizontal padding"} - [:div.padding-icons - [:div.padding-icon.tooltip.tooltip-bottom-left - {:class (dom/classnames :selected (= padding-type :multiple)) - :alt "Independent paddings" - :on-click #(on-change-style (if (= padding-type :multiple) :simple :multiple))} - i/auto-padding-side]]])) + [:span {:class (stl/css :icon)} + i/padding-left-right-refactor] + [:> numeric-input* + {:className (stl/css :numeric-input) + :placeholder "--" + :on-change (partial on-change :simple :p2) + :on-focus #(do (dom/select-target %) + (select-paddings false true false true)) + :on-blur #(select-paddings false false false false) + :value p2}]]] + (= padding-type :multiple) + [:div {:class (stl/css :paddings-multiple)} + + [:div {:class (stl/css :padding-multiple) + :title "Top padding"} + [:span {:class (stl/css :icon)} + i/padding-top-refactor] + [:> numeric-input* + {:className (stl/css :numeric-input) + :placeholder "--" + :on-change (partial on-change :multiple :p1) + :on-focus #(do (dom/select-target %) + (select-padding :p1)) + :on-blur #(select-paddings false false false false) + :value (:p1 (:layout-padding values))}]] + + [:div {:class (stl/css :padding-multiple) + :title "Right padding"} + [:span {:class (stl/css :icon)} + i/padding-right-refactor] + [:> numeric-input* + {:className (stl/css :numeric-input) + :placeholder "--" + :on-change (partial on-change :multiple :p2) + :on-focus #(do (dom/select-target %) + (select-padding :p2)) + :on-blur #(select-paddings false false false false) + :value (:p2 (:layout-padding values))}]] + + [:div {:class (stl/css :padding-multiple) + :title "Bottom padding"} + [:span {:class (stl/css :icon)} + i/padding-bottom-refactor] + [:> numeric-input* + {:className (stl/css :numeric-input) + :placeholder "--" + :on-change (partial on-change :multiple :p3) + :on-focus #(do (dom/select-target %) + (select-padding :p3)) + :on-blur #(select-paddings false false false false) + :value (:p3 (:layout-padding values))}]] + + [:div {:class (stl/css :padding-multiple) + :title "Left padding"} + [:span {:class (stl/css :icon)} + i/padding-left-refactor] + [:> numeric-input* + {:className (stl/css :numeric-input) + :placeholder "--" + :on-change (partial on-change :multiple :p4) + :on-focus #(do (dom/select-target %) + (select-padding :p4)) + :on-blur #(select-paddings false false false false) + :value (:p4 (:layout-padding values))}]]])] + [:button {:class (stl/css-case :padding-toggle true + :selected (= padding-type :multiple)) + :on-click toggle-padding-mode} + i/padding-extended-refactor]] + + [:div.padding-row + (cond + (= padding-type :simple) + + [:div.padding-group + [:div.padding-item.tooltip.tooltip-bottom-left + {:alt "Vertical padding"} + [:span.icon.rotated i/auto-padding-both-sides] + [:> numeric-input* + {:placeholder "--" + :on-change (partial on-change :simple :p1) + :on-focus #(do + (dom/select-target %) + (select-paddings true false true false)) + :value p1}]] + + [:div.padding-item.tooltip.tooltip-bottom-left + {:alt "Horizontal padding"} + [:span.icon i/auto-padding-both-sides] + [:> numeric-input* + {:placeholder "--" + :on-change (partial on-change :simple :p2) + :on-focus #(do (dom/select-target %) + (select-paddings false true false true)) + :on-blur #(select-paddings false false false false) + :value p2}]]] + + (= padding-type :multiple) + [:div.wrapper + (for [num [:p1 :p2 :p3 :p4]] + [:div.tooltip.tooltip-bottom + {:key (dm/str "padding-" (d/name num)) + :alt (case num + :p1 "Top" + :p2 "Right" + :p3 "Bottom" + :p4 "Left")} + [:div.input-element.auto + [:> numeric-input* + {:placeholder "--" + :on-change (partial on-change :multiple num) + :on-focus #(do (dom/select-target %) + (select-padding num)) + :on-blur #(select-paddings false false false false) + :value (num (:layout-padding values))}]]])]) + + [:div.padding-icons + [:div.padding-icon.tooltip.tooltip-bottom-left + {:class (dom/classnames :selected (= padding-type :multiple)) + :alt "Independent paddings" + :on-click toggle-padding-mode} + i/auto-padding-side]]]))) (mf/defc gap-section - [{:keys [is-col? wrap-type gap-selected? set-gap gap-value]}] - (let [select-gap + [{:keys [is-col? wrap-type gap-selected? on-change gap-value]}] + (let [new-css-system (mf/use-ctx ctx/new-css-system) + select-gap (fn [gap] (st/emit! (udw/set-gap-selected gap)))] @@ -335,79 +663,189 @@ ;;on destroy component (select-gap nil)))) - [:div.layout-row - [:div.gap.row-title "Gap"] - [:div.gap-group - [:div.gap-row.tooltip.tooltip-bottom-left - {:alt "Column gap"} - [:span.icon - i/auto-gap] - [:> numeric-input* {:no-validate true - :placeholder "--" - :on-focus (fn [event] - (select-gap :column-gap) - (reset! gap-selected? :column-gap) - (dom/select-target event)) - :on-change (partial set-gap (= :nowrap wrap-type) :column-gap) - :on-blur (fn [_] - (select-gap nil) - (reset! gap-selected? :none)) - :value (:column-gap gap-value) - :disabled (and (= :nowrap wrap-type) is-col?)}]] + (if new-css-system + [:div {:class (stl/css :gap-group)} + [:div {:class (stl/css-case :row-gap true + :disabled (and (= :nowrap wrap-type) (not is-col?))) + :title "Row gap"} + [:span {:class (stl/css :icon)} + i/gap-vertical-refactor] + [:> numeric-input* {:className (stl/css :numeric-input true) + :no-validate true + :placeholder "--" + :on-focus (fn [event] + (select-gap :row-gap) + (reset! gap-selected? :row-gap) + (dom/select-target event)) + :on-change (partial on-change (= :nowrap wrap-type) :row-gap) + :on-blur (fn [_] + (select-gap nil) + (reset! gap-selected? :none)) + :value (:row-gap gap-value) + :disabled (and (= :nowrap wrap-type) (not is-col?))}]] + [:div {:class (stl/css-case :column-gap true + :disabled (and (= :nowrap wrap-type) is-col?)) + :title "Column gap"} + [:span {:class (stl/css :icon)} + i/gap-horizontal-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :no-validate true + :placeholder "--" + :on-focus (fn [event] + (select-gap :column-gap) + (reset! gap-selected? :column-gap) + (dom/select-target event)) + :on-change (partial on-change (= :nowrap wrap-type) :column-gap) + :on-blur (fn [_] + (select-gap nil) + (reset! gap-selected? :none)) + :value (:column-gap gap-value) + :disabled (and (= :nowrap wrap-type) is-col?)}]]] - [:div.gap-row.tooltip.tooltip-bottom-left - {:alt "Row gap"} - [:span.icon.rotated - i/auto-gap] - [:> numeric-input* {:no-validate true - :placeholder "--" - :on-focus (fn [event] - (select-gap :row-gap) - (reset! gap-selected? :row-gap) - (dom/select-target event)) - :on-change (partial set-gap (= :nowrap wrap-type) :row-gap) - :on-blur (fn [_] - (select-gap nil) - (reset! gap-selected? :none)) - :value (:row-gap gap-value) - :disabled (and (= :nowrap wrap-type) (not is-col?))}]]]])) + [:div.layout-row + [:div.gap.row-title "Gap"] + [:div.gap-group + [:div.gap-row.tooltip.tooltip-bottom-left + {:alt "Column gap"} + [:span.icon + i/auto-gap] + [:> numeric-input* {:no-validate true + :placeholder "--" + :on-focus (fn [event] + (select-gap :column-gap) + (reset! gap-selected? :column-gap) + (dom/select-target event)) + :on-change (partial on-change (= :nowrap wrap-type) :column-gap) + :on-blur (fn [_] + (select-gap nil) + (reset! gap-selected? :none)) + :value (:column-gap gap-value) + :disabled (and (= :nowrap wrap-type) is-col?)}]] + + [:div.gap-row.tooltip.tooltip-bottom-left + {:alt "Row gap"} + [:span.icon.rotated + i/auto-gap] + [:> numeric-input* {:no-validate true + :placeholder "--" + :on-focus (fn [event] + (select-gap :row-gap) + (reset! gap-selected? :row-gap) + (dom/select-target event)) + :on-change (partial on-change (= :nowrap wrap-type) :row-gap) + :on-blur (fn [_] + (select-gap nil) + (reset! gap-selected? :none)) + :value (:row-gap gap-value) + :disabled (and (= :nowrap wrap-type) (not is-col?))}]]]]))) + +;; GRID COMPONENTS + +(defn get-layout-grid-icon + [type val is-col?] + (case type + :justify-items + (if is-col? + (case val + :stretch i/align-items-row-strech + :start i/grid-justify-content-column-start + :end i/grid-justify-content-column-end + :center i/grid-justify-content-column-center + :space-around i/grid-justify-content-column-around + :space-between i/grid-justify-content-column-between + :space-evenly i/grid-justify-content-column-between) + + (case val + :stretch i/align-items-column-strech + :start i/grid-justify-content-row-start + :end i/grid-justify-content-row-end + :center i/grid-justify-content-row-center + :space-around i/grid-justify-content-row-around + :space-between i/grid-justify-content-row-between + :space-evenly i/grid-justify-content-row-between)))) + +(mf/defc direction-row-grid + [{:keys [saved-dir on-change-refactor on-click] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + (if new-css-system + [:& radio-buttons {:selected (d/name saved-dir) + :on-change on-change-refactor + :name "grid-direction"} + [:& radio-button {:value "row" + :id "grid-direction-row" + :title "Row" + :icon (dir-icons-refactor :row)}] + [:& radio-button {:value "column" + :id "grid-direction-column" + :title "Column" + :icon (dir-icons-refactor :column)}]] + [:* + [:& direction-btn {:key "grid-direction-row" + :dir :row + :saved-dir saved-dir + :on-click on-click + :icon? true}] + [:& direction-btn {:key "grid-direction-column" + :dir :column + :saved-dir saved-dir + :on-click on-click + :icon? true}]]))) (mf/defc grid-edit-mode [{:keys [id] :as props}] - (let [edition (mf/deref refs/selected-edition) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + edition (mf/deref refs/selected-edition) active? (= id edition) toggle-edit-mode - (mf/use-callback + (mf/use-fn (mf/deps id edition) (fn [] (if-not active? (st/emit! (udw/start-edition-mode id)) (st/emit! :interrupt))))] - - [:button.tooltip.tooltip-bottom-left - {:class (dom/classnames :active active?) - :alt "Grid edit mode" - :on-click #(toggle-edit-mode) - :style {:padding 0}} - "Edit grid" - i/grid-layout-mode])) + (if new-css-system + [:div "new-edit-mode"] + [:button.tooltip.tooltip-bottom-left + {:class (dom/classnames :active active?) + :alt "Grid edit mode" + :on-click #(toggle-edit-mode) + :style {:padding 0}} + "Edit grid" + i/grid-layout-mode]))) (mf/defc align-grid-row [{:keys [is-col? align-items set-align] :as props}] - (let [type (if is-col? :column :row)] - [:div.align-items-style - (for [align [:start :center :end]] - [:button.align-start.tooltip - {:class (dom/classnames :active (= align-items align) - :tooltip-bottom-left (not= align :start) - :tooltip-bottom (= align :start)) - :alt (if is-col? - (dm/str "justify-items: " (d/name align)) - (dm/str "align-items: " (d/name align))) - :on-click #(set-align align type) - :key (dm/str "align-items" (d/name align))} - (get-layout-flex-icon :align-items align is-col?)])])) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + type (if is-col? :column :row)] + (if new-css-system + [:& radio-buttons {:selected (d/name align-items) + :on-change set-align + :name "flex-align-items"} + [:& radio-button {:value "start" + :icon (get-layout-flex-icon-refactor :align-items :start is-col?) + :title "Align items start" + :id "align-items-start"}] + [:& radio-button {:value "center" + :icon (get-layout-flex-icon-refactor :align-items :center is-col?) + :title "Align items center" + :id "align-items-center"}] + [:& radio-button {:value "end" + :icon (get-layout-flex-icon-refactor :align-items :end is-col?) + :title "Align items end" + :id "align-items-end"}]] + [:div.align-items-style + (for [align [:start :center :end]] + [:button.align-start.tooltip + {:class (dom/classnames :active (= align-items align) + :tooltip-bottom-left (not= align :start) + :tooltip-bottom (= align :start)) + :alt (if is-col? + (dm/str "justify-items: " (d/name align)) + (dm/str "align-items: " (d/name align))) + :on-click #(set-align align type) + :key (dm/str "align-items" (d/name align))} + (get-layout-flex-icon :align-items align is-col?)])]))) (mf/defc justify-grid-row [{:keys [is-col? justify-items set-justify] :as props}] @@ -483,24 +921,40 @@ {:on-click #(remove-element type index)} i/minus]])])])) +;; LAYOUT COMPONENT + (mf/defc layout-container-menu {::mf/wrap [#(mf/memo' % (mf/check-props ["ids" "values" "multiple"]))]} [{:keys [ids values multiple] :as props}] - (let [open? (mf/use-state false) + (let [new-css-system (mf/use-ctx ctx/new-css-system) ;; Display layout-type (:layout values) + state* (mf/use-state (if layout-type + true + false)) + + open? (deref state*) + toggle-content (mf/use-fn #(swap! state* not)) + on-add-layout (fn [type] (st/emit! (dwsl/create-layout type)) - (reset! open? true)) + (reset! state* true)) + on-set-layout + (mf/use-fn + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (on-add-layout value)))) on-remove-layout (fn [_] (st/emit! (dwsl/remove-layout ids)) - (reset! open? false)) + (reset! state* false)) set-flex (fn [] @@ -512,35 +966,112 @@ (st/emit! (dwsl/remove-layout ids)) (on-add-layout :grid)) + toggle-layout-style + (mf/use-fn + (fn [value] + (if (= "flex" value) + (set-flex) + (set-grid)))) + ;; Flex-direction saved-dir (:layout-flex-dir values) - is-col? (or (= :column saved-dir) (= :column-reverse saved-dir)) + + is-col? (or (= :column saved-dir) (= :column-reverse saved-dir)) + + set-direction-refactor + (mf/use-fn + (mf/deps [layout-type ids]) + (fn [dir] + (let [dir (if new-css-system (keyword dir) dir)] + (if (= :flex layout-type) + (st/emit! (dwsl/update-layout ids {:layout-flex-dir dir})) + (st/emit! (dwsl/update-layout ids {:layout-grid-dir dir})))))) ;; Wrap type - wrap-type (:layout-wrap-type values) - set-wrap (fn [type] - (st/emit! (dwsl/update-layout ids {:layout-wrap-type type}))) + wrap-type (:layout-wrap-type values) + + toggle-wrap-refactor + (mf/use-fn + (mf/deps [wrap-type ids]) + (fn [] + (let [type (if (= wrap-type :wrap) + :nowrap + :wrap)] + (st/emit! (dwsl/update-layout ids {:layout-wrap-type type}))))) + + set-wrap + (mf/use-fn + (mf/deps ids) + (fn [event] + (let [type (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (st/emit! (dwsl/update-layout ids {:layout-wrap-type type}))))) + + ;; Align items align-items (:layout-align-items values) - set-align-items (fn [value] - (st/emit! (dwsl/update-layout ids {:layout-align-items value}))) + + set-align-items + (mf/use-fn + (mf/deps ids) + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (st/emit! (dwsl/update-layout ids {:layout-align-items value}))))) + + set-align-items-refactor + (mf/use-fn + (mf/deps ids) + (fn [value] + (st/emit! (dwsl/update-layout ids {:layout-align-items (keyword value)})))) ;; Justify content justify-content (:layout-justify-content values) - set-justify-content (fn [value] - (st/emit! (dwsl/update-layout ids {:layout-justify-content value}))) + + set-justify-content + (mf/use-fn + (mf/deps ids) + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (st/emit! (dwsl/update-layout ids {:layout-justify-content value}))))) + + set-justify-content-refactor + (mf/use-fn + (mf/deps ids) + (fn [value] + (st/emit! (dwsl/update-layout ids {:layout-justify-content (keyword value)})))) ;; Align content align-content (:layout-align-content values) - set-align-content (fn [value] - (if (= align-content value) - (st/emit! (dwsl/update-layout ids {:layout-align-content :stretch})) - (st/emit! (dwsl/update-layout ids {:layout-align-content value})))) + + set-align-content + (mf/use-fn + (mf/deps ids align-content) + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (if (= align-content value) + (st/emit! (dwsl/update-layout ids {:layout-align-content :stretch})) + (st/emit! (dwsl/update-layout ids {:layout-align-content value})))))) + + set-align-content-refactor + (mf/use-fn + (mf/deps ids) + (fn [value align-content] + (if (= align-content value) + (st/emit! (dwsl/update-layout ids {:layout-align-content :stretch})) + (st/emit! (dwsl/update-layout ids {:layout-align-content (keyword value)}))))) + ;; Gap @@ -560,7 +1091,9 @@ (st/emit! (dwsl/update-layout ids {:layout-padding-type type}))) on-padding-change - (fn [type prop val] + (mf/use-fn + (mf/deps ids) + (fn [type prop val] (let [val (mth/finite val 0)] (cond (and (= type :simple) (= prop :p1)) @@ -570,17 +1103,20 @@ (st/emit! (dwsl/update-layout ids {:layout-padding {:p2 val :p4 val}})) :else - (st/emit! (dwsl/update-layout ids {:layout-padding {prop val}}))))) + (st/emit! (dwsl/update-layout ids {:layout-padding {prop val}})))))) ;; Grid-direction saved-grid-dir (:layout-grid-dir values) set-direction - (fn [dir type] - (if (= :flex type) - (st/emit! (dwsl/update-layout ids {:layout-flex-dir dir})) - (st/emit! (dwsl/update-layout ids {:layout-grid-dir dir})))) + (mf/use-fn + (mf/deps [layout-type ids new-css-system]) + (fn [dir] + (let [dir (if new-css-system (keyword dir) dir)] + (if (= :flex layout-type) + (st/emit! (dwsl/update-layout ids {:layout-flex-dir dir})) + (st/emit! (dwsl/update-layout ids {:layout-grid-dir dir})))))) ;; Align grid align-items-row (:layout-align-items values) @@ -597,126 +1133,220 @@ grid-justify-content-column (:layout-align-content values) set-justify-grid - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [value type] (if (= type :row) (st/emit! (dwsl/update-layout ids {:layout-justify-content value})) (st/emit! (dwsl/update-layout ids {:layout-align-content value})))))] - [:div.element-set - [:div.element-set-title - [:* - [:span "Layout"] - (if (and (not multiple) (:layout values)) - [:div.title-actions - (when (features/active-feature? :grid-layout) - [:div.layout-btns - [:button {:on-click set-flex - :class (dom/classnames - :active (= :flex layout-type))} "Flex"] - [:button {:on-click set-grid - :class (dom/classnames - :active (= :grid layout-type))} "Grid"]]) - [:button.remove-layout {:on-click on-remove-layout} i/minus]] - [:button.add-page {:on-click #(on-add-layout :flex)} i/close])]] + (if new-css-system + [:div {:class (stl/css :element-set)} + [:div {:class (stl/css :element-title)} + [:& title-bar {:collapsable? true + :collapsed? (not open?) + :on-collapsed toggle-content + :title "Layout" + :class (stl/css :title-spacing-layout)} + (if (and (not multiple) (:layout values)) + [:div {:class (stl/css :title-actions)} + (when (features/active-feature? :grid-layout) + [:div {:class (stl/css :layout-options)} + [:& radio-buttons {:selected (d/name layout-type) + :on-change toggle-layout-style + :name "layout-style" + :wide true} + [:& radio-button {:value "flex" + :id :flex}] + [:& radio-button {:value "grid" + :id :grid}]]]) + [:button {:class (stl/css :remove-layout) + :on-click on-remove-layout} + i/remove-refactor]] + [:div {:class (stl/css :title-actions)} + [:button {:class (stl/css :add-layout) + :data-value :flex + :on-click on-set-layout} + i/add-refactor]])]] - (when (:layout values) - (when (not= :multiple layout-type) - (case layout-type - :flex + (when (and open? (:layout values)) + (when (not= :multiple layout-type) + (case layout-type + :flex + [:div {:class (stl/css :flex-layout-menu)} + [:div {:class (stl/css :first-row)} + [:& align-row {:is-col? is-col? + :align-items align-items + :on-change set-align-items-refactor}] - [:div.element-set-content.layout-menu - [:div.layout-row - [:div.direction-wrap.row-title "Direction"] - [:div.btn-wrapper - [:div.direction - [:* - (for [dir [:row :row-reverse :column :column-reverse]] - [:& direction-btn {:key (d/name dir) - :dir dir - :saved-dir saved-dir - :set-direction #(set-direction dir :flex) - :icon? true}])]] + [:& direction-row-flex {:on-change set-direction-refactor + :saved-dir saved-dir}] - [:div.wrap-type [:& wrap-row {:wrap-type wrap-type - :set-wrap set-wrap}]]]] + :on-click toggle-wrap-refactor}]] - (when (= :wrap wrap-type) + [:div {:class (stl/css :second-row)} + [:& justify-content-row {:is-col? is-col? + :justify-content justify-content + :on-change set-justify-content-refactor}]] + (when (= :wrap wrap-type) + [:div {:class (stl/css :third-row)} + [:& align-content-row {:is-col? is-col? + :align-content align-content + :on-change set-align-content-refactor}]]) + [:div {:class (stl/css :forth-row)} + [:& gap-section {:is-col? is-col? + :wrap-type wrap-type + :gap-selected? gap-selected? + :on-change set-gap + :gap-value (:layout-gap values)}] + + [:& padding-section {:values values + :on-change-style change-padding-type + :on-change on-padding-change}]]] + :grid ;; TODO Finish this with new UI + [:div {:class (stl/css :grid-layout-menu)} + [:div {:class (stl/css :first-row)} + [:div (stl/css :direction-edit) + [:div {:class (stl/css :direction)} + [:& direction-row-grid {:set-direction set-direction + :on-click saved-dir}] + (when (= 1 (count ids)) + [:div {:class (stl/css :edit)} + [:& grid-edit-mode {:id (first ids)}]])]] + + [:div.layout-row + [:div.align-items-grid.row-title "Items"] + [:div.btn-wrapper.align-grid-items + [:& align-grid-row {:is-col? false + :align-items align-items-row + :set-align set-align-grid}] + + [:& align-grid-row {:is-col? true + :align-items align-items-column + :set-align set-align-grid}]]] + + [:div.layout-row + [:div.jusfiy-content-grid.row-title "Content"] + [:div.btn-wrapper.align-grid-content + [:& justify-grid-row {:is-col? true + :justify-items grid-justify-content-column + :set-justify set-justify-grid}] + [:& justify-grid-row {:is-col? false + :justify-items grid-justify-content-row + :set-justify set-justify-grid}]]]]] + nil)))] + + [:div.element-set + [:div.element-set-title + [:* + [:span "Layout"] + (if (and (not multiple) (:layout values)) + [:div.title-actions + (when (features/active-feature? :grid-layout) + [:div.layout-btns + [:button {:on-click set-flex + :class (dom/classnames + :active (= :flex layout-type))} "Flex"] + [:button {:on-click set-grid + :class (dom/classnames + :active (= :grid layout-type))} "Grid"]]) + [:button.remove-layout {:on-click on-remove-layout} i/minus]] + + [:button.add-page {:data-value :flex + :on-click on-set-layout} i/close])]] + + (when (:layout values) + (when (not= :multiple layout-type) + (case layout-type + :flex + + [:div.element-set-content.layout-menu [:div.layout-row - [:div.align-content.row-title "Content"] - [:div.btn-wrapper.align-content - [:& align-content-row {:is-col? is-col? - :align-content align-content - :set-align-content set-align-content}]]]) + [:div.direction-wrap.row-title "Direction"] + [:div.btn-wrapper + [:div.direction + [:& direction-row-flex {:on-change set-direction + :saved-dir saved-dir}]] - [:div.layout-row - [:div.align-items.row-title "Align"] - [:div.btn-wrapper - [:& align-row {:is-col? is-col? - :align-items align-items - :set-align set-align-items}]]] + [:div.wrap-type + [:& wrap-row {:wrap-type wrap-type + :on-click set-wrap}]]]] - [:div.layout-row - [:div.justify-content.row-title "Justify"] - [:div.btn-wrapper.justify-content - [:& justify-content-row {:is-col? is-col? - :justify-content justify-content - :set-justify set-justify-content}]]] - [:& gap-section {:is-col? is-col? - :wrap-type wrap-type - :gap-selected? gap-selected? - :set-gap set-gap - :gap-value (:layout-gap values)}] + (when (= :wrap wrap-type) + [:div.layout-row + [:div.align-content.row-title "Content"] + [:div.btn-wrapper.align-content + [:& align-content-row {:is-col? is-col? + :align-content align-content + :on-change set-align-content}]]]) + [:div.layout-row + [:div.align-items.row-title "Align"] + [:div.btn-wrapper + [:& align-row {:is-col? is-col? + :align-items align-items + :on-change set-align-items}]]] - [:& padding-section {:values values - :on-change-style change-padding-type - :on-change on-padding-change}]] + [:div.layout-row + [:div.justify-content.row-title "Justify"] + [:div.btn-wrapper.justify-content + [:& justify-content-row {:is-col? is-col? + :justify-content justify-content + :on-change set-justify-content}]]] - :grid + [:& gap-section {:is-col? is-col? + :wrap-type wrap-type + :gap-selected? gap-selected? + :on-change set-gap + :gap-value (:layout-gap values)}] - [:div.element-set-content.layout-menu - [:div.layout-row - [:div.direction-wrap.row-title "Direction"] - [:div.btn-wrapper - [:div.direction - [:* - (for [dir [:row :column]] - [:& direction-btn {:key (d/name dir) - :dir dir - :saved-dir saved-grid-dir - :set-direction #(set-direction dir :grid) - :icon? true}])]] + [:& padding-section {:values values + :on-change-style change-padding-type + :on-change on-padding-change}]] - (when (= 1 (count ids)) - [:div.edit-mode - [:& grid-edit-mode {:id (first ids)}]])]] + :grid - [:div.layout-row - [:div.align-items-grid.row-title "Items"] - [:div.btn-wrapper.align-grid-items - [:& align-grid-row {:is-col? false - :align-items align-items-row - :set-align set-align-grid}] + [:div.element-set-content.layout-menu + [:div.layout-row + [:div.direction-wrap.row-title "Direction"] + [:div.btn-wrapper + [:div.direction + [:* + (for [dir [:row :column]] + [:& direction-btn {:key (d/name dir) + :dir dir + :saved-dir saved-grid-dir + :on-click set-direction + :icon? true}])]] - [:& align-grid-row {:is-col? true - :align-items align-items-column - :set-align set-align-grid}]]] + (when (= 1 (count ids)) + [:div.edit-mode + [:& grid-edit-mode {:id (first ids)}]])]] - [:div.layout-row - [:div.jusfiy-content-grid.row-title "Content"] - [:div.btn-wrapper.align-grid-content - [:& justify-grid-row {:is-col? true - :justify-items grid-justify-content-column - :set-justify set-justify-grid}] - [:& justify-grid-row {:is-col? false - :justify-items grid-justify-content-row - :set-justify set-justify-grid}]]]] + [:div.layout-row + [:div.align-items-grid.row-title "Items"] + [:div.btn-wrapper.align-grid-items + [:& align-grid-row {:is-col? false + :align-items align-items-row + :set-align set-align-grid}] - ;; Default if not grid or flex - nil)))])) + [:& align-grid-row {:is-col? true + :align-items align-items-column + :set-align set-align-grid}]]] + + [:div.layout-row + [:div.jusfiy-content-grid.row-title "Content"] + [:div.btn-wrapper.align-grid-content + [:& justify-grid-row {:is-col? true + :justify-items grid-justify-content-column + :set-justify set-justify-grid}] + [:& justify-grid-row {:is-col? false + :justify-items grid-justify-content-row + :set-justify set-justify-grid}]]]] + + ;; Default if not grid or flex + nil)))]))) (mf/defc grid-layout-edition {::mf/wrap [#(mf/memo' % (mf/check-props ["ids" "values"]))]} @@ -767,7 +1397,7 @@ grid-justify-content-column (:layout-justify-content values) set-content-grid - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [value type] (if (= type :row) @@ -777,7 +1407,7 @@ ;;Grid columns column-grid-values (:layout-grid-columns values) grid-columns-open? (mf/use-state false) - toggle-columns-info (mf/use-callback + toggle-columns-info (mf/use-fn (fn [_] (swap! grid-columns-open? not))) @@ -785,30 +1415,30 @@ rows-grid-values (:layout-grid-rows values) grid-rows-open? (mf/use-state false) toggle-rows-info - (mf/use-callback + (mf/use-fn (fn [_] (swap! grid-rows-open? not))) add-new-element - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [type value] (st/emit! (dwsl/add-layout-track ids type value)))) remove-element - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [type index] (st/emit! (dwsl/remove-layout-track ids type index)))) set-column-value - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [type index value] (st/emit! (dwsl/change-layout-track ids type index {:value value})))) set-column-type - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [type index track-type] (let [value (case track-type @@ -832,7 +1462,7 @@ [:& direction-btn {:key (d/name dir) :dir dir :saved-dir saved-grid-dir - :set-direction #(set-direction dir) + :on-click set-direction :icon? true}])] (when (= 1 (count ids)) @@ -878,7 +1508,7 @@ :remove-element remove-element}] [:& gap-section {:gap-selected? gap-selected? - :set-gap set-gap + :on-change set-gap :gap-value (:layout-gap values)}] [:& padding-section {:values values diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.css.json new file mode 100644 index 000000000..e34d1cf8d --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.css.json @@ -0,0 +1 @@ +{"button-primary":"menus_layout_container_button-primary_Tj8CW","button-secondary":"menus_layout_container_button-secondary_-pFFr","button-tertiary":"menus_layout_container_button-tertiary_88wa0","element-set":"menus_layout_container_element-set_RVZGT","flex-layout-menu":"menus_layout_container_flex-layout-menu_RldvQ","forth-row":"menus_layout_container_forth-row_w-D2w","padding-group":"menus_layout_container_padding-group_nKb4x","padding-toggle":"menus_layout_container_padding-toggle_K4pZ0","first-row":"menus_layout_container_first-row_6Hb-j","wrap-button":"menus_layout_container_wrap-button_8a0Ua","element-title":"menus_layout_container_element-title_8zezG","title-actions":"menus_layout_container_title-actions_Wam2H","remove-layout":"menus_layout_container_remove-layout_cG7vO","add-layout":"menus_layout_container_add-layout_cqkPT","button-radio":"menus_layout_container_button-radio_75xs1","button-warning":"menus_layout_container_button-warning_YrujD","button-disabled":"menus_layout_container_button-disabled_5HIwQ","button-tag":"menus_layout_container_button-tag_Xwo2X","button-icon":"menus_layout_container_button-icon_U29NH","button-icon-small":"menus_layout_container_button-icon-small_-duO9","padding-inputs":"menus_layout_container_padding-inputs_AynKo","paddings-multiple":"menus_layout_container_paddings-multiple_9QKeS","padding-multiple":"menus_layout_container_padding-multiple_ZMI-n","icon":"menus_layout_container_icon_J2NEm","paddings-simple":"menus_layout_container_paddings-simple_8T2e4","padding-simple":"menus_layout_container_padding-simple_eRd9o","gap-group":"menus_layout_container_gap-group_qYjdG","row-gap":"menus_layout_container_row-gap_pJFR-","column-gap":"menus_layout_container_column-gap_w9iCj","link":"menus_layout_container_link_bMDCH","asset-element":"menus_layout_container_asset-element_Nw5YH","input-element":"menus_layout_container_input-element_lcwuS","new-scrollbar":"menus_layout_container_new-scrollbar_vNJp4","menu-dropdown":"menus_layout_container_menu-dropdown_otywf","menu-item":"menus_layout_container_menu-item_hawWO","shortcut":"menus_layout_container_shortcut_dFYeP","shortcut-key":"menus_layout_container_shortcut-key_NBwI-","user-icon":"menus_layout_container_user-icon_ODkl2","title-spacing-layout":"menus_layout_container_title-spacing-layout_rGDyw","layout-options":"menus_layout_container_layout-options_CYfz4","selected":"menus_layout_container_selected_2Ihb5","second-row":"menus_layout_container_second-row_-lWHO","third-row":"menus_layout_container_third-row_JynAl","numeric-input":"menus_layout_container_numeric-input_8Y1sd","disabled":"menus_layout_container_disabled_GUXOQ","grid-layout-menu":"menus_layout_container_grid-layout-menu_afkzo","spin-animation":"menus_layout_container_spin-animation_6gbcb"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss new file mode 100644 index 000000000..d7fa2fc8a --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.scss @@ -0,0 +1,236 @@ +// 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"; + +.element-set { + .element-title { + .title-spacing-layout { + margin: 0 0 $s-4 0; + } + + .title-actions { + display: flex; + gap: $s-4; + height: $s-32; + padding: 0; + margin: 0; + .layout-options { + width: $s-92; + } + .remove-layout, + .add-layout { + @extend .button-tertiary; + border-radius: $br-8; + height: $s-32; + width: $s-28; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + } + } + } + .flex-layout-menu { + .first-row { + display: flex; + gap: $s-4; + margin-bottom: $s-12; + .wrap-button { + @extend .button-tertiary; + border-radius: $br-8; + height: $s-32; + width: $s-28; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + &.selected { + background-color: var(--button-tertiary-background-color-active); + color: var(--button-tertiary-foreground-color-active); + svg { + stroke: var(--button-tertiary-foreground-color-active); + } + } + } + } + .second-row, + .third-row { + margin-bottom: $s-12; + } + .forth-row { + display: flex; + flex-direction: column; + gap: $s-4; + .gap-group { + display: flex; + gap: $s-4; + .column-gap { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + &.disabled { + background-color: var(--input-background-color-disabled); + border: 1px solid var(--input-border-color-disabled); + color: var(--input-foreground-color-disabled); + .numeric-input { + pointer-events: none; + cursor: default; + color: var(--input-foreground-color-disabled); + } + .icon { + svg { + stroke: var(--input-foreground-color-disabled); + } + } + } + } + .row-gap { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + &.disabled { + background-color: var(--input-background-color-disabled); + border: 1px solid var(--input-border-color-disabled); + color: var(--input-foreground-color-disabled); + .numeric-input { + pointer-events: none; + cursor: default; + color: var(--input-foreground-color-disabled); + } + .icon { + svg { + stroke: var(--input-foreground-color-disabled); + } + } + } + } + } + .padding-group { + display: flex; + gap: $s-4; + .padding-inputs { + display: flex; + gap: $s-4; + .paddings-simple { + display: flex; + gap: $s-4; + .padding-simple { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + } + } + .paddings-multiple { + display: grid; + grid-template-columns: 1fr 1fr; + gap: $s-4; + .padding-multiple { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + } + } + } + .padding-toggle { + @extend .button-tertiary; + height: $s-32; + width: $s-28; + border-radius: $br-8; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + &.selected { + background-color: var(--button-tertiary-background-color-hover); + svg { + stroke: var(--button-tertiary-foreground-color-active); + } + } + } + } + } + } + .grid-layout-menu { + background-color: antiquewhite; + .first-row { + .direction-edit { + .direction { + } + .edit { + } + } + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs index 332addd63..69e9bef46 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options.menus.layout-item + (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] [app.common.data.macros :as dm] @@ -14,8 +15,11 @@ [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input*]] + [app.main.ui.components.radio-buttons :refer [radio-button radio-buttons]] + [app.main.ui.components.title-bar :refer [title-bar]] + [app.main.ui.context :as ctx] [app.main.ui.icons :as i] - [app.main.ui.workspace.sidebar.options.menus.layout-container :refer [get-layout-flex-icon]] + [app.main.ui.workspace.sidebar.options.menus.layout-container :refer [get-layout-flex-icon get-layout-flex-icon-refactor]] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr]] [rumext.v2 :as mf])) @@ -36,18 +40,19 @@ (mf/defc margin-section [{:keys [values change-margin-style on-margin-change] :as props}] - (let [margin-type (or (:layout-item-margin-type values) :simple) - m1 (if (and (not (= :multiple (:layout-item-margin values))) - (= (dm/get-in values [:layout-item-margin :m1]) - (dm/get-in values [:layout-item-margin :m3]))) - (dm/get-in values [:layout-item-margin :m1]) - "--") + (let [new-css-system (mf/use-ctx ctx/new-css-system) + margin-type (or (:layout-item-margin-type values) :simple) + m1 (if (and (not (= :multiple (:layout-item-margin values))) + (= (dm/get-in values [:layout-item-margin :m1]) + (dm/get-in values [:layout-item-margin :m3]))) + (dm/get-in values [:layout-item-margin :m1]) + "--") - m2 (if (and (not (= :multiple (:layout-item-margin values))) - (= (dm/get-in values [:layout-item-margin :m2]) - (dm/get-in values [:layout-item-margin :m4]))) - (dm/get-in values [:layout-item-margin :m2]) - "--") + m2 (if (and (not (= :multiple (:layout-item-margin values))) + (= (dm/get-in values [:layout-item-margin :m2]) + (dm/get-in values [:layout-item-margin :m4]))) + (dm/get-in values [:layout-item-margin :m2]) + "--") select-margins (fn [m1? m2? m3? m4?] (st/emit! (udw/set-margins-selected {:m1 m1? :m2 m2? :m3 m3? :m4 m4?}))) @@ -60,147 +65,352 @@ ;;on destroy component (select-margins false false false false)))) - [:div.margin-row - (cond - (= margin-type :simple) + (if new-css-system + [:div {:class (stl/css :margin-row)} + [:div {:class (stl/css :inputs-wrapper)} + (cond + (= margin-type :simple) + [:div {:class (stl/css :margin-simple)} + [:div {:class (stl/css :vertical-margin) + :title "Vertical margin"} + [:span {:class (stl/css :icon)} + i/margin-top-bottom-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :placeholder "--" + :value m1 + :on-focus (fn [event] + (select-margins true false true false) + (dom/select-target event)) + :on-change (partial on-margin-change :simple :m1) - [:div.margin-item-group - [:div.margin-item.tooltip.tooltip-bottom-left - {:alt "Vertical margin"} - [:span.icon i/auto-margin-both-sides] - [:> numeric-input* - {:placeholder "--" - :on-focus (fn [event] - (select-margins true false true false) - (dom/select-target event)) - :on-change (partial on-margin-change :simple :m1) - :on-blur #(select-margins false false false false) - :value m1}]] + :on-blur #(select-margins false false false false)}]] - [:div.margin-item.tooltip.tooltip-bottom-left - {:alt "Horizontal margin"} - [:span.icon.rotated i/auto-margin-both-sides] - [:> numeric-input* - {:placeholder "--" - :on-focus (fn [event] - (select-margins false true false true) - (dom/select-target event)) - :on-change (partial on-margin-change :simple :m2) - :on-blur #(select-margins false false false false) - :value m2}]]] + [:div {:class (stl/css :horizontal-margin) + :title "Horizontal margin"} + [:span {:class (stl/css :icon)} + i/margin-left-right-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :placeholder "--" + :on-focus (fn [event] + (select-margins false true false true) + (dom/select-target event)) + :on-change (partial on-margin-change :simple :m2) + :on-blur #(select-margins false false false false) + :value m2}]]] - (= margin-type :multiple) - [:div.wrapper - (for [num [:m1 :m2 :m3 :m4]] - [:div.tooltip.tooltip-bottom - {:key (dm/str "margin-" (d/name num)) - :alt (case num - :m1 "Top" - :m2 "Right" - :m3 "Bottom" - :m4 "Left")} - [:div.input-element.auto - [:> numeric-input* - {:placeholder "--" - :on-focus (fn [event] - (select-margin num) - (dom/select-target event)) - :on-change (partial on-margin-change :multiple num) - :on-blur #(select-margins false false false false) - :value (num (:layout-item-margin values))}]]])]) + (= margin-type :multiple) + [:div {:class (stl/css :margin-multiple)} + [:div {:class (stl/css :top-margin) + :title "Top margin"} + [:span {:class (stl/css :icon)} + i/margin-top-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :placeholder "--" + :on-focus (fn [event] + (select-margin :m1) + (dom/select-target event)) + :on-change (partial on-margin-change :multiple :m1) + :on-blur #(select-margins false false false false) + :value (:m1 (:layout-item-margin values))}]] + [:div {:class (stl/css :right-margin) + :title "Right margin"} + [:span {:class (stl/css :icon)} + i/margin-right-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :placeholder "--" + :on-focus (fn [event] + (select-margin :m2) + (dom/select-target event)) + :on-change (partial on-margin-change :multiple :m2) + :on-blur #(select-margins false false false false) + :value (:m2 (:layout-item-margin values))}]] - [:div.margin-item-icons - [:div.margin-item-icon.tooltip.tooltip-bottom-left - {:class (dom/classnames :selected (= margin-type :multiple)) - :alt "Margin - multiple" - :on-click #(change-margin-style (if (= margin-type :multiple) :simple :multiple))} - i/auto-margin]]])) + [:div {:class (stl/css :bottom-margin) + :title "Bottom margin"} + [:span {:class (stl/css :icon)} + i/margin-bottom-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :placeholder "--" + :on-focus (fn [event] + (select-margin :m3) + (dom/select-target event)) + :on-change (partial on-margin-change :multiple :m3) + :on-blur #(select-margins false false false false) + :value (:m3 (:layout-item-margin values))}]] + [:div {:class (stl/css :left-margin) + :title "Left margin"} + [:span {:class (stl/css :icon)} + i/margin-left-refactor] + [:> numeric-input* {:className (stl/css :numeric-input) + :placeholder "--" + :on-focus (fn [event] + (select-margin :m4) + (dom/select-target event)) + :on-change (partial on-margin-change :multiple :m4) + :on-blur #(select-margins false false false false) + :value (:m4 (:layout-item-margin values))}]]])] + [:button {:class (stl/css-case :margin-mode true + :selected (= margin-type :multiple)) + :title "Margin - multiple" + :on-click #(change-margin-style (if (= margin-type :multiple) :simple :multiple))} + i/margin-refactor]] + [:div.margin-row + (cond + (= margin-type :simple) -(mf/defc element-behavior - [{:keys [is-layout-container? is-layout-child? layout-item-h-sizing layout-item-v-sizing on-change-behavior] :as props}] - (let [fill? is-layout-child? - auto? is-layout-container?] + [:div.margin-item-group + [:div.margin-item.tooltip.tooltip-bottom-left + {:alt "Vertical margin"} + [:span.icon i/auto-margin-both-sides] + [:> numeric-input* + {:placeholder "--" + :on-focus (fn [event] + (select-margins true false true false) + (dom/select-target event)) + :on-change (partial on-margin-change :simple :m1) + :on-blur #(select-margins false false false false) + :value m1}]] - [:div.btn-wrapper - {:class (when (and fill? auto?) "wrap")} - [:div.layout-behavior.horizontal - [:button.behavior-btn.tooltip.tooltip-bottom - {:alt "Fix width" - :class (dom/classnames :active (= layout-item-h-sizing :fix)) - :on-click #(on-change-behavior :h :fix)} - i/auto-fix-layout] - (when fill? + [:div.margin-item.tooltip.tooltip-bottom-left + {:alt "Horizontal margin"} + [:span.icon.rotated i/auto-margin-both-sides] + [:> numeric-input* + {:placeholder "--" + :on-focus (fn [event] + (select-margins false true false true) + (dom/select-target event)) + :on-change (partial on-margin-change :simple :m2) + :on-blur #(select-margins false false false false) + :value m2}]]] + + (= margin-type :multiple) + [:div.wrapper + (for [num [:m1 :m2 :m3 :m4]] + [:div.tooltip.tooltip-bottom + {:key (dm/str "margin-" (d/name num)) + :alt (case num + :m1 "Top" + :m2 "Right" + :m3 "Bottom" + :m4 "Left")} + [:div.input-element.auto + [:> numeric-input* + {:placeholder "--" + :on-focus (fn [event] + (select-margin num) + (dom/select-target event)) + :on-change (partial on-margin-change :multiple num) + :on-blur #(select-margins false false false false) + :value (num (:layout-item-margin values))}]]])]) + + [:div.margin-item-icons + [:div.margin-item-icon.tooltip.tooltip-bottom-left + {:class (dom/classnames :selected (= margin-type :multiple)) + :alt "Margin - multiple" + :on-click #(change-margin-style (if (= margin-type :multiple) :simple :multiple))} + i/auto-margin]]]))) + +(mf/defc element-behaviour-horizontal + [{:keys [auto? fill? layout-item-sizing on-change] :as props}] + [:div {:class (stl/css-case :horizontal-behaviour true + :one-element (and (not fill?) (not auto?)) + :two-element (or fill? auto?) + :three-element (and fill? auto?))} + [:& radio-buttons {:selected (d/name layout-item-sizing) + :on-change on-change + :wide true + :name "flex-behaviour-h"} + [:& radio-button {:value "fix" + :icon i/fixed-width-refactor + :title "Fix width" + :id "behaviour-h-fix"}] + (when fill? + [:& radio-button {:value "fill" + :icon i/fill-content-refactor + :title "Width 100%" + :id "behaviour-h-fill"}]) + (when auto? + [:& radio-button {:value "auto" + :icon i/hug-content-refactor + :title "Fit content" + :id "behaviour-h-auto"}])]]) + +(mf/defc element-behaviour-vertical + [{:keys [auto? fill? layout-item-sizing on-change] :as props}] + [:div {:class (stl/css-case :vertical-behaviour true + :one-element (and (not fill?) (not auto?)) + :two-element (or fill? auto?) + :three-element (and fill? auto?))} + [:& radio-buttons {:selected (d/name layout-item-sizing) + :on-change on-change + :wide true + :name "flex-behaviour-v"} + [:& radio-button {:value "fix" + :icon i/fixed-width-refactor + :icon-class (stl/css :rotated) + :title "Fix height" + :id "behaviour-v-fix"}] + (when fill? + [:& radio-button {:value "fill" + :icon i/fill-content-refactor + :icon-class (stl/css :rotated) + :title "Height 100%" + :id "behaviour-v-fill"}]) + (when auto? + [:& radio-button {:value "auto" + :icon i/hug-content-refactor + :icon-class (stl/css :rotated) + :title "Fit content" + :id "behaviour-v-auto"}])]]) + +(mf/defc element-behaviour + [{:keys [auto? fill? layout-item-h-sizing layout-item-v-sizing on-change-behaviour-h-refactor on-change-behaviour-v-refactor on-change] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system)] + + (if new-css-system + [:div {:class (stl/css-case :behaviour-menu true + :wrap (and fill? auto?))} + [:& element-behaviour-horizontal {:auto? auto? + :fill? fill? + :layout-item-sizing layout-item-h-sizing + :on-change on-change-behaviour-h-refactor}] + [:& element-behaviour-vertical {:auto? auto? + :fill? fill? + :layout-item-sizing layout-item-v-sizing + :on-change on-change-behaviour-v-refactor}]] + + [:div.btn-wrapper + {:class (when (and fill? auto?) "wrap")} + [:div.layout-behavior.horizontal [:button.behavior-btn.tooltip.tooltip-bottom - {:alt "Width 100%" - :class (dom/classnames :active (= layout-item-h-sizing :fill)) - :on-click #(on-change-behavior :h :fill)} - i/auto-fill]) - (when auto? + {:alt "Fix width" + :class (dom/classnames :active (= layout-item-h-sizing :fix)) + :data-direction :h + :data-value :fix + :on-click on-change} + i/auto-fix-layout] + (when fill? + [:button.behavior-btn.tooltip.tooltip-bottom + {:alt "Width 100%" + :class (dom/classnames :active (= layout-item-h-sizing :fill)) + :data-direction :h + :data-value :fill + :on-click on-change} + i/auto-fill]) + (when auto? + [:button.behavior-btn.tooltip.tooltip-bottom + {:alt "Fit content" + :class (dom/classnames :active (= layout-item-h-sizing :auto)) + :data-direction :h + :data-value :auto + :on-click on-change} + i/auto-hug])] + + [:div.layout-behavior [:button.behavior-btn.tooltip.tooltip-bottom - {:alt "Fit content" - :class (dom/classnames :active (= layout-item-h-sizing :auto)) - :on-click #(on-change-behavior :h :auto)} - i/auto-hug])] - - [:div.layout-behavior - [:button.behavior-btn.tooltip.tooltip-bottom - {:alt "Fix height" - :class (dom/classnames :active (= layout-item-v-sizing :fix)) - :on-click #(on-change-behavior :v :fix)} - i/auto-fix-layout] - (when fill? - [:button.behavior-btn.tooltip.tooltip-bottom-left - {:alt "Height 100%" - :class (dom/classnames :active (= layout-item-v-sizing :fill)) - :on-click #(on-change-behavior :v :fill)} - i/auto-fill]) - (when auto? - [:button.behavior-btn.tooltip.tooltip-bottom-left - {:alt "Fit content" - :class (dom/classnames :active (= layout-item-v-sizing :auto)) - :on-click #(on-change-behavior :v :auto)} - i/auto-hug])]])) - + {:alt "Fix height" + :class (dom/classnames :active (= layout-item-v-sizing :fix)) + :data-direction :v + :data-value :fix + :on-click on-change} + i/auto-fix-layout] + (when fill? + [:button.behavior-btn.tooltip.tooltip-bottom-left + {:alt "Height 100%" + :class (dom/classnames :active (= layout-item-v-sizing :fill)) + :data-direction :v + :data-value :fill + :on-click on-change} + i/auto-fill]) + (when auto? + [:button.behavior-btn.tooltip.tooltip-bottom-left + {:alt "Fit content" + :class (dom/classnames :active (= layout-item-v-sizing :auto)) + :data-direction :v + :data-value :auto + :on-click on-change} + i/auto-hug])]]))) (mf/defc align-self-row - [{:keys [is-col? align-self set-align-self] :as props}] - (let [dir-v [:start :center :end #_:stretch #_:baseline]] - [:div.align-self-style - (for [align dir-v] - [:button.align-self.tooltip.tooltip-bottom - {:class (dom/classnames :active (= align-self align) - :tooltip-bottom-left (not= align :start) - :tooltip-bottom (= align :start)) - :alt (dm/str "Align self " (d/name align)) - :on-click #(set-align-self align) - :key (str "align-self" align)} - (get-layout-flex-icon :align-self align is-col?)])])) + [{:keys [is-col? align-self on-change] :as props}] + (let [new-css-system (mf/use-ctx ctx/new-css-system) + dir-v [:start :center :end #_:stretch #_:baseline]] + (if new-css-system + [:& radio-buttons {:selected (d/name align-self) + :on-change on-change + :name "flex-align-self"} + [:& radio-button {:value "start" + :icon (get-layout-flex-icon-refactor :align-self :start is-col?) + :title "Align self start" + :id "align-self-start"}] + [:& radio-button {:value "center" + :icon (get-layout-flex-icon-refactor :align-self :center is-col?) + :title "Align self center" + :id "align-self-center"}] + [:& radio-button {:value "end" + :icon (get-layout-flex-icon-refactor :align-self :end is-col?) + :title "Align self end" + :id "align-self-end"}]] + + [:div.align-self-style + (for [align dir-v] + [:button.align-self.tooltip.tooltip-bottom + {:class (dom/classnames :active (= align-self align) + :tooltip-bottom-left (not= align :start) + :tooltip-bottom (= align :start)) + :alt (dm/str "Align self " (d/name align)) + :data-value align + :on-click on-change + :key (str "align-self" align)} + (get-layout-flex-icon :align-self align is-col?)])]))) (mf/defc layout-item-menu {::mf/wrap [#(mf/memo' % (mf/check-props ["ids" "values" "type" "is-layout-child?" "is-grid-parent?" "is-flex-parent?"]))]} [{:keys [ids values is-layout-child? is-layout-container? is-grid-parent? is-flex-parent?] :as props}] - (let [selection-parents-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + selection-parents-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) selection-parents (mf/deref selection-parents-ref) - change-margin-style - (fn [type] - (st/emit! (dwsl/update-layout-child ids {:layout-item-margin-type type}))) - - align-self (:layout-item-align-self values) - - set-align-self - (mf/use-callback - (mf/deps ids align-self) - (fn [value] - (if (= align-self value) - (st/emit! (dwsl/update-layout-child ids {:layout-item-align-self nil})) - (st/emit! (dwsl/update-layout-child ids {:layout-item-align-self value}))))) - is-absolute? (:layout-item-absolute values) is-col? (every? ctl/col? selection-parents) + is-layout-child? (and is-layout-child? (not is-absolute?)) + + state* (mf/use-state true) + open? (deref state*) + toggle-content (mf/use-fn #(swap! state* not)) + + ;; Align self + + align-self (:layout-item-align-self values) + + set-align-self + (mf/use-fn + (mf/deps ids align-self) + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (d/read-string))] + (if (= align-self value) + (st/emit! (dwsl/update-layout-child ids {:layout-item-align-self nil})) + (st/emit! (dwsl/update-layout-child ids {:layout-item-align-self value})))))) + + set-align-self-refactor + (mf/use-fn + (mf/deps ids align-self) + (fn [value] + (if (= align-self value) + (st/emit! (dwsl/update-layout-child ids {:layout-item-align-self nil})) + (st/emit! (dwsl/update-layout-child ids {:layout-item-align-self (keyword value)}))))) + + ;; Margin + + change-margin-style + (fn [type] + (st/emit! (dwsl/update-layout-child ids {:layout-item-margin-type type}))) + on-margin-change (fn [type prop val] (cond @@ -213,116 +423,291 @@ :else (st/emit! (dwsl/update-layout-child ids {:layout-item-margin {prop val}})))) - on-change-behavior - (fn [dir value] - (if (= dir :h) - (st/emit! (dwsl/update-layout-child ids {:layout-item-h-sizing value})) - (st/emit! (dwsl/update-layout-child ids {:layout-item-v-sizing value})))) + ;; Behaviour + + on-change-behaviour + (mf/use-fn + (mf/deps ids) + (fn [event] + (let [value (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword)) + dir (-> (dom/get-current-target event) + (dom/get-data "direction") + (keyword))] + (if (= dir :h) + (st/emit! (dwsl/update-layout-child ids {:layout-item-h-sizing value})) + (st/emit! (dwsl/update-layout-child ids {:layout-item-v-sizing value})))))) + + on-change-behaviour-h + (mf/use-fn + (mf/deps ids) + (fn [value] + (let [value (if new-css-system (keyword value) value)] + (st/emit! (dwsl/update-layout-child ids {:layout-item-h-sizing value}))))) + + + on-change-behaviour-v + (mf/use-fn + (mf/deps ids) + (fn [value] + (let [value (if new-css-system (keyword value) value)] + (st/emit! (dwsl/update-layout-child ids {:layout-item-v-sizing value}))))) + + ;; Size and position on-size-change (fn [measure value] (st/emit! (dwsl/update-layout-child ids {measure value}))) on-change-position - (fn [value] - (when (= value :static) - (st/emit! (dwsl/update-layout-child ids {:layout-item-z-index nil}))) - (st/emit! (dwsl/update-layout-child ids {:layout-item-absolute (= value :absolute)}))) + (mf/use-fn + (mf/deps ids) + (fn [value] + (let [value (if new-css-system (keyword value) value)] + (when (= value :static) + (st/emit! (dwsl/update-layout-child ids {:layout-item-z-index nil}))) + (st/emit! (dwsl/update-layout-child ids {:layout-item-absolute (= value :absolute)}))))) + + ;; Z Index on-change-z-index - (fn [value] - (st/emit! (dwsl/update-layout-child ids {:layout-item-z-index value}))) + (mf/use-fn + (mf/deps ids) + (fn [value] + (st/emit! (dwsl/update-layout-child ids {:layout-item-z-index value}))))] - is-layout-child? (and is-layout-child? (not is-absolute?))] + (if new-css-system + [:div {:class (stl/css :element-set)} + [:div {:class (stl/css :element-title)} + [:& title-bar {:collapsable? true + :collapsed? (not open?) + :on-collapsed toggle-content + :title (cond + (and is-layout-container? (not is-layout-child?)) + "Flex board" - [:div.element-set - [:div.element-set-title - [:span (cond - (and is-layout-container? (not is-layout-child?)) - "Flex board" + is-flex-parent? + "Flex element" - is-flex-parent? - "Flex element" + is-grid-parent? + "Grid element" - is-grid-parent? - "Grid element" + :else + "Layout element") + :class (stl/css :title-spacing-layout-element)} - :else - "Layout element")]] + (when is-flex-parent? + [:div {:class (stl/css :position-options)} + [:& radio-buttons {:selected (if is-absolute? + "absolute" + "static") + :on-change on-change-position + :name "layout-style" + :wide true} + [:& radio-button {:value "static" + :id :static-position}] + [:& radio-button {:value "absolute" + :id :absolute-position}]]])]] + [:div {:class (stl/css :flex-element-menu)} + [:div {:class (stl/css :first-row)} + [:& element-behaviour {:fill? is-layout-child? + :auto? is-layout-container? + :layout-item-v-sizing (or (:layout-item-v-sizing values) :fix) + :layout-item-h-sizing (or (:layout-item-h-sizing values) :fix) + :on-change-behaviour-h-refactor on-change-behaviour-h + :on-change-behaviour-v-refactor on-change-behaviour-v + :on-change on-change-behaviour}] + (when is-absolute? + [:div {:class (stl/css-case :z-index-wrapper true + :disabled (not is-absolute?)) + :title "z-index"} - [:div.element-set-content.layout-item-menu - (when (or is-layout-child? is-absolute?) - [:div.layout-row - [:div.row-title.sizing "Position"] - [:div.btn-wrapper - [:div.absolute - [:button.behavior-btn.tooltip.tooltip-bottom - {:alt "Static" - :class (dom/classnames :active (not (:layout-item-absolute values))) - :on-click #(on-change-position :static)} - "Static"] - [:button.behavior-btn.tooltip.tooltip-bottom - {:alt "Absolute" - :class (dom/classnames :active (and (:layout-item-absolute values) (not= :multiple (:layout-item-absolute values)))) - :on-click #(on-change-position :absolute)} - "Absolute"]] + [:span {:class (stl/css :icon-text)} + "Z"] + [:> numeric-input* + {:className (stl/css :numeric-input) + :placeholder "--" + :on-focus #(dom/select-target %) + :on-change #(on-change-z-index %) + :nillable true + :disabled (not is-absolute?) + :value (:layout-item-z-index values)}]])] - [:div.tooltip.tooltip-bottom-left.z-index {:alt "z-index"} - i/layers - [:> numeric-input* - {:placeholder "--" - :on-focus #(dom/select-target %) - :on-change #(on-change-z-index %) - :nillable true - :disabled (not is-absolute?) - :value (:layout-item-z-index values)}]]]]) - - [:* - [:div.layout-row - [:div.row-title.sizing "Sizing"] - [:& element-behavior {:is-layout-child? is-layout-child? - :is-layout-container? is-layout-container? - :layout-item-v-sizing (or (:layout-item-v-sizing values) :fix) - :layout-item-h-sizing (or (:layout-item-h-sizing values) :fix) - :on-change-behavior on-change-behavior}]] - - (when is-layout-child? - [:div.layout-row - [:div.row-title "Align"] - [:div.btn-wrapper + (when is-layout-child? + [:div {:class (stl/css :second-row)} [:& align-self-row {:is-col? is-col? :align-self align-self - :set-align-self set-align-self}]]]) + :on-changer set-align-self-refactor}]]) - (when is-layout-child? - [:& margin-section {:values values - :change-margin-style change-margin-style - :on-margin-change on-margin-change}]) + (when is-layout-child? + [:div {:class (stl/css :third-row)} + [:& margin-section {:values values + :change-margin-style change-margin-style + :on-margin-change on-margin-change}]]) - [:div.advanced-ops-body - [:div.input-wrapper - (for [item (cond-> [] - (= (:layout-item-h-sizing values) :fill) - (conj :layout-item-min-w :layout-item-max-w) + [:div {:class (stl/css :forth-row)} + [:div {:class (stl/css :advanced-options)} + (when (= (:layout-item-h-sizing values) :fill) + [:div {:class (stl/css :horizontal-fill)} + [:div {:class (stl/css :layout-item-min-w) + :title (tr "workspace.options.layout-item.layout-item-min-w")} - (= (:layout-item-v-sizing values) :fill) - (conj :layout-item-min-h :layout-item-max-h))] + [:span {:class (stl/css :icon-text)} + "MIN W"] + [:> numeric-input* + {:className (stl/css :numeric-input) + :no-validate true + :min 0 + :data-wrap true + :placeholder "--" + :on-focus #(dom/select-target %) + :on-change (partial on-size-change :layout-item-min-w) + :value (get values :layout-item-min-w) + :nillable true}]] - [:div.tooltip.tooltip-bottom - {:key (d/name item) - :alt (tr (dm/str "workspace.options.layout-item.title." (d/name item))) - :class (dom/classnames "maxH" (= item :layout-item-max-h) - "minH" (= item :layout-item-min-h) - "maxW" (= item :layout-item-max-w) - "minW" (= item :layout-item-min-w))} - [:div.input-element - {:alt (tr (dm/str "workspace.options.layout-item." (d/name item)))} + [:div {:class (stl/css :layout-item-max-w) + :title (tr "workspace.options.layout-item.layout-item-max-w")} + [:span {:class (stl/css :icon-text)} + "MAX W"] + [:> numeric-input* + {:className (stl/css :numeric-input) + :no-validate true + :min 0 + :data-wrap true + :placeholder "--" + :on-focus #(dom/select-target %) + :on-change (partial on-size-change :layout-item-max-w) + :value (get values :layout-item-max-w) + :nillable true}]]]) + (when (= (:layout-item-v-sizing values) :fill) + [:div {:class (stl/css :vertical-fill)} + [:div {:class (stl/css :layout-item-min-h) + :title (tr "workspace.options.layout-item.layout-item-min-h")} + + [:span {:class (stl/css :icon-text)} + "MIN H"] + [:> numeric-input* + {:className (stl/css :numeric-input) + :no-validate true + :min 0 + :data-wrap true + :placeholder "--" + :on-focus #(dom/select-target %) + :on-change (partial on-size-change :layout-item-min-h) + :value (get values :layout-item-min-h) + :nillable true}]] + + [:div {:class (stl/css :layout-item-max-h) + :title (tr "workspace.options.layout-item.layout-item-max-h")} + + [:span {:class (stl/css :icon-text)} + "MAX H"] + [:> numeric-input* + {:className (stl/css :numeric-input) + :no-validate true + :min 0 + :data-wrap true + :placeholder "--" + :on-focus #(dom/select-target %) + :on-change (partial on-size-change :layout-item-max-h) + :value (get values :layout-item-max-h) + :nillable true}]]])]]]] + + + [:div.element-set + [:div.element-set-title + [:span (cond + (and is-layout-container? (not is-layout-child?)) + "Flex board" + + is-flex-parent? + "Flex element" + + is-grid-parent? + "Grid element" + + :else + "Layout element")]] + + [:div.element-set-content.layout-item-menu + (when (or is-layout-child? is-absolute?) + [:div.layout-row + [:div.row-title.sizing "Position"] + [:div.btn-wrapper + [:div.absolute + [:button.behavior-btn.tooltip.tooltip-bottom + {:alt "Static" + :class (dom/classnames :active (not (:layout-item-absolute values))) + :on-click #(on-change-position :static)} + "Static"] + [:button.behavior-btn.tooltip.tooltip-bottom + {:alt "Absolute" + :class (dom/classnames :active (and (:layout-item-absolute values) (not= :multiple (:layout-item-absolute values)))) + :on-click #(on-change-position :absolute)} + "Absolute"]] + + [:div.tooltip.tooltip-bottom-left.z-index {:alt "z-index"} + i/layers [:> numeric-input* - {:no-validate true - :min 0 - :data-wrap true - :placeholder "--" + {:placeholder "--" :on-focus #(dom/select-target %) - :on-change (partial on-size-change item) - :value (get values item) - :nillable true}]]])]]]]])) + :on-change #(on-change-z-index %) + :nillable true + :disabled (not is-absolute?) + :value (:layout-item-z-index values)}]]]]) + + [:* + [:div.layout-row + [:div.row-title.sizing "Sizing"] + [:& element-behaviour {:fill? is-layout-child? + :auto? is-layout-container? + :layout-item-v-sizing (or (:layout-item-v-sizing values) :fix) + :layout-item-h-sizing (or (:layout-item-h-sizing values) :fix) + :on-change-behaviour-h-refactor on-change-behaviour-h + :on-change-behaviour-v-refactor on-change-behaviour-v + :on-change on-change-behaviour}]] + + (when is-layout-child? + [:div.layout-row + [:div.row-title "Align"] + [:div.btn-wrapper + [:& align-self-row {:is-col? is-col? + :align-self align-self + :on-change set-align-self}]]]) + + (when is-layout-child? + [:& margin-section {:values values + :change-margin-style change-margin-style + :on-margin-change on-margin-change}]) + + [:div.advanced-ops-body + [:div.input-wrapper + (for [item (cond-> [] + (= (:layout-item-h-sizing values) :fill) + (conj :layout-item-min-w :layout-item-max-w) + + (= (:layout-item-v-sizing values) :fill) + (conj :layout-item-min-h :layout-item-max-h))] + + [:div.tooltip.tooltip-bottom + {:key (d/name item) + :alt (tr (dm/str "workspace.options.layout-item.title." (d/name item))) + :class (dom/classnames "maxH" (= item :layout-item-max-h) + "minH" (= item :layout-item-min-h) + "maxW" (= item :layout-item-max-w) + "minW" (= item :layout-item-min-w))} + [:div.input-element + {:alt (tr (dm/str "workspace.options.layout-item." (d/name item)))} + [:> numeric-input* + {:no-validate true + :min 0 + :data-wrap true + :placeholder "--" + :on-focus #(dom/select-target %) + :on-change (partial on-size-change item) + :value (get values item) + :nillable true}]]])]]]]] + ) + + )) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.css.json new file mode 100644 index 000000000..92b48f6c1 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.css.json @@ -0,0 +1 @@ +{"button-primary":"menus_layout_item_button-primary_R3HEE","button-secondary":"menus_layout_item_button-secondary_Og5Mh","button-tertiary":"menus_layout_item_button-tertiary_LW32D","element-set":"menus_layout_item_element-set_Sh4I1","flex-element-menu":"menus_layout_item_flex-element-menu_0w0BO","third-row":"menus_layout_item_third-row_jHUpG","margin-row":"menus_layout_item_margin-row_6FAUi","margin-mode":"menus_layout_item_margin-mode_LUT-a","button-radio":"menus_layout_item_button-radio_DiE0P","button-warning":"menus_layout_item_button-warning_9APs4","button-disabled":"menus_layout_item_button-disabled_Bwpn-","button-tag":"menus_layout_item_button-tag_TMNyk","button-icon":"menus_layout_item_button-icon_pN2Bx","button-icon-small":"menus_layout_item_button-icon-small_swawO","inputs-wrapper":"menus_layout_item_inputs-wrapper_VAJZV","margin-multiple":"menus_layout_item_margin-multiple_bDZ3b","top-margin":"menus_layout_item_top-margin_aZvRD","icon":"menus_layout_item_icon_C95Kq","bottom-margin":"menus_layout_item_bottom-margin_xL-UC","left-margin":"menus_layout_item_left-margin_pPaes","right-margin":"menus_layout_item_right-margin_LUX60","margin-simple":"menus_layout_item_margin-simple_CgWYe","vertical-margin":"menus_layout_item_vertical-margin_qtmT6","horizontal-margin":"menus_layout_item_horizontal-margin_9A28j","link":"menus_layout_item_link_basqK","asset-element":"menus_layout_item_asset-element_7JrqD","input-element":"menus_layout_item_input-element_CZYaZ","forth-row":"menus_layout_item_forth-row_-fX40","advanced-options":"menus_layout_item_advanced-options_nITU5","horizontal-fill":"menus_layout_item_horizontal-fill_4wEAb","layout-item-min-w":"menus_layout_item_layout-item-min-w_6P8Y-","layout-item-min-h":"menus_layout_item_layout-item-min-h_nrtET","layout-item-max-w":"menus_layout_item_layout-item-max-w_E2-r0","layout-item-max-h":"menus_layout_item_layout-item-max-h_Uqazl","vertical-fill":"menus_layout_item_vertical-fill_9FVj-","first-row":"menus_layout_item_first-row_R0-Ae","z-index-wrapper":"menus_layout_item_z-index-wrapper_3xj33","new-scrollbar":"menus_layout_item_new-scrollbar_Nwzfw","menu-dropdown":"menus_layout_item_menu-dropdown_zRl9Y","menu-item":"menus_layout_item_menu-item_F0OrX","shortcut":"menus_layout_item_shortcut_nyWlM","shortcut-key":"menus_layout_item_shortcut-key_2IsYn","user-icon":"menus_layout_item_user-icon_NWO9W","element-title":"menus_layout_item_element-title_4Yn1t","title-spacing-layout-element":"menus_layout_item_title-spacing-layout-element_ZlAUV","position-options":"menus_layout_item_position-options_ukwsy","behaviour-menu":"menus_layout_item_behaviour-menu_pHokd","horizontal-behaviour":"menus_layout_item_horizontal-behaviour_ga1rq","one-element":"menus_layout_item_one-element_oqBEv","two-element":"menus_layout_item_two-element_W3xwW","three-element":"menus_layout_item_three-element_zuZ-z","vertical-behaviour":"menus_layout_item_vertical-behaviour_rYqkL","rotated":"menus_layout_item_rotated_kpn2t","icon-text":"menus_layout_item_icon-text_zT9t8","numeric-input":"menus_layout_item_numeric-input_HSt6J","second-row":"menus_layout_item_second-row_enwDf","selected":"menus_layout_item_selected_K7XDi","spin-animation":"menus_layout_item_spin-animation_NfqiR"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss new file mode 100644 index 000000000..3c61bc7df --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_item.scss @@ -0,0 +1,198 @@ +// 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"; + +.element-set { + .element-title { + .title-spacing-layout-element { + margin: 0 0 $s-4 0; + .position-options { + width: $s-140; + } + } + } + .flex-element-menu { + display: flex; + flex-direction: column; + gap: $s-4; + .first-row { + display: flex; + gap: $s-4; + .behaviour-menu { + display: flex; + gap: $s-4; + .horizontal-behaviour { + &.one-element { + width: $s-28; + } + &.two-element { + width: $s-60; + } + &.three-element { + width: $s-92; + } + } + .vertical-behaviour { + .rotated { + transform: rotate(90deg); + } + &.one-element { + width: $s-28; + } + &.two-element { + width: $s-60; + } + &.three-element { + width: $s-92; + } + } + &.wrap { + } + } + .z-index-wrapper { + @extend .input-element; + width: $s-124; + padding-left: $s-8; + .icon-text { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + padding-top: $s-2; + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + } + .second-row { + display: flex; + gap: $s-4; + } + + .third-row { + .margin-row { + display: flex; + align-items: flex-start; + gap: $s-4; + .margin-mode { + @extend .button-tertiary; + height: $s-32; + width: $s-28; + svg { + @extend .button-icon; + } + &.selected { + background-color: var(--button-tertiary-background-color-active); + color: var(--button-tertiary-foreground-color-active); + svg { + stroke: var(--button-tertiary-foreground-color-active); + } + } + } + .inputs-wrapper { + .margin-simple { + display: flex; + gap: $s-4; + .vertical-margin, + .horizontal-margin { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + } + .margin-multiple { + display: grid; + grid-template-columns: 1fr 1fr; + gap: $s-4; + .top-margin, + .bottom-margin, + .left-margin, + .right-margin { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + } + } + } + } + + .forth-row .advanced-options { + display: flex; + flex-direction: column; + gap: $s-4; + .horizontal-fill, + .vertical-fill { + display: flex; + gap: $s-4; + .layout-item-min-w, + .layout-item-min-h, + .layout-item-max-w, + .layout-item-max-h { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon-text { + display: flex; + align-items: center; + height: $s-32; + width: $s-80; + margin-right: $s-4; + padding-top: $s-2; + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + } + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs index 9761d869a..e0735e8e9 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.cljs @@ -5,6 +5,7 @@ ;; Copyright (c) KALEIDOS INC (ns app.main.ui.workspace.sidebar.options.menus.measures + (:require-macros [app.main.style :as stl]) (:require [app.common.data :as d] [app.common.geom.shapes :as gsh] @@ -19,6 +20,8 @@ [app.main.store :as st] [app.main.ui.components.dropdown :refer [dropdown]] [app.main.ui.components.numeric-input :refer [numeric-input*]] + [app.main.ui.components.radio-buttons :refer [radio-button radio-buttons]] + [app.main.ui.context :as ctx] [app.main.ui.hooks :as hooks] [app.main.ui.icons :as i] [app.util.dom :as dom] @@ -72,7 +75,8 @@ {::mf/wrap-props false ::mf/wrap [mf/memo]} [{:keys [ids ids-with-children values type all-types shape]}] - (let [options (if (= type :multiple) + (let [new-css-system (mf/use-ctx ctx/new-css-system) + options (if (= type :multiple) (reduce #(union %1 %2) (map #(get type->options %) all-types)) (get type->options type)) @@ -140,9 +144,9 @@ (cond-> values (not= (:rotation values) :multiple) (assoc :rotation rotation))) - proportion-lock (:proportion-lock values) + proportion-lock (:proportion-lock values) + - show-presets-dropdown? (mf/use-state false) radius-mode (ctsr/radius-mode values) all-equal? (ctsr/all-equal? values) @@ -152,49 +156,100 @@ clip-content-ref (mf/use-ref nil) show-in-viewer-ref (mf/use-ref nil) + ;; PRESETS + preset-state* (mf/use-state false) + show-presets-dropdown? (deref preset-state*) + + open-presets + (mf/use-fn + (mf/deps show-presets-dropdown?) + (fn [] + (reset! preset-state* true))) + + close-presets + (mf/use-fn + (mf/deps show-presets-dropdown?) + (fn [] + (reset! preset-state* false))) + on-preset-selected - (fn [width height] - (st/emit! (udw/update-dimensions ids :width width) - (udw/update-dimensions ids :height height))) + (mf/use-fn + (mf/deps ids) + (fn [event] + (let [width (-> (dom/get-current-target event) + (dom/get-data "width") + (d/read-string)) + height (-> (dom/get-current-target event) + (dom/get-data "height") + (d/read-string))] + (st/emit! (udw/update-dimensions ids :width width) + (udw/update-dimensions ids :height height))))) + + ;; ORIENTATION + + orientation (when (= type :frame) + (cond (> (:width values) (:height values)) + :horiz + :else + :vert)) on-orientation-clicked - (fn [orientation] - (st/emit! (udw/change-orientation ids orientation))) + (mf/use-fn + (mf/deps ids) + (fn [event] + (let [orientation (-> (dom/get-current-target event) + (dom/get-data "value") + (keyword))] + (st/emit! (udw/change-orientation ids orientation))))) + + on-orientation-change-refactor + (mf/use-fn + (mf/deps ids) + (fn [orientation] + (st/emit! (udw/change-orientation ids (keyword orientation))))) + + ;; SIZE AND PROPORTION LOCK on-size-change - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [value attr] (st/emit! (udw/update-dimensions ids attr value)))) on-proportion-lock-change - (mf/use-callback + (mf/use-fn (mf/deps ids proportion-lock) (fn [_] (let [new-lock (if (= proportion-lock :multiple) true (not proportion-lock))] (run! #(st/emit! (udw/set-shape-proportion-lock % new-lock)) ids)))) + ;; POSITION + do-position-change - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [shape' frame' value attr] (let [to (+ value (attr frame'))] (st/emit! (udw/update-position (:id shape') {attr to}))))) on-position-change - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [value attr] (doall (map #(do-position-change %1 %2 value attr) shapes frames)))) + ;; ROTATION + on-rotation-change - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [value] (st/emit! (udw/increase-rotation ids value)))) + ;; RADIUS + change-radius - (mf/use-callback + (mf/use-fn (mf/deps ids-with-children) (fn [update-fn] (dch/update-shapes ids-with-children @@ -206,7 +261,7 @@ :attrs [:rx :ry :r1 :r2 :r3 :r4]}))) on-switch-to-radius-1 - (mf/use-callback + (mf/use-fn (mf/deps ids change-radius) (fn [_value] (if all-equal? @@ -214,20 +269,28 @@ (reset! radius-multi? true)))) on-switch-to-radius-4 - (mf/use-callback + (mf/use-fn (mf/deps ids change-radius) (fn [_value] (st/emit! (change-radius ctsr/switch-to-radius-4)) (reset! radius-multi? false))) + toggle-radius-mode + (mf/use-fn + (mf/deps radius-mode) + (fn [] + (if (= :radius-1 radius-mode) + (on-switch-to-radius-4) + (on-switch-to-radius-1)))) + on-radius-1-change - (mf/use-callback + (mf/use-fn (mf/deps ids change-radius) (fn [value] (st/emit! (change-radius #(ctsr/set-radius-1 % value))))) on-radius-multi-change - (mf/use-callback + (mf/use-fn (mf/deps ids change-radius) (fn [event] (let [value (-> event dom/get-target dom/get-value d/parse-integer)] @@ -237,7 +300,7 @@ (reset! radius-multi? false))))) on-radius-4-change - (mf/use-callback + (mf/use-fn (mf/deps ids change-radius) (fn [value attr] (st/emit! (change-radius #(ctsr/set-radius-4 % attr value))))) @@ -251,15 +314,16 @@ on-radius-r3-change #(on-radius-4-change % :r3) on-radius-r4-change #(on-radius-4-change % :r4) + ;; CLIP CONTENT AND SHOW IN VIEWER on-change-clip-content - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [event] (let [value (-> event dom/get-target dom/checked?)] (st/emit! (dch/update-shapes ids (fn [shape] (assoc shape :show-content (not value)))))))) on-change-show-in-viewer - (mf/use-callback + (mf/use-fn (mf/deps ids) (fn [event] (let [value (-> event dom/get-target dom/checked?) @@ -284,178 +348,395 @@ ;; restore focus to the newly created numeric-input (let [radius-input (mf/ref-val radius-input-ref)] (dom/focus! radius-input))))) - - [:* - [:div.element-set - [:div.element-set-content - - ;; FRAME PRESETS + (if new-css-system + [:div {:class (stl/css :element-set)} (when (and (options :presets) - (or (nil? all-types) (= (count all-types) 1))) ;; Don't show presets if multi selected - [:div.row-flex ;; some frames and some non frames - [:div.presets.custom-select.flex-grow {:class (when @show-presets-dropdown? "opened") - :on-click #(reset! show-presets-dropdown? true)} - [:span (tr "workspace.options.size-presets")] - [:span.dropdown-button i/arrow-down] - [:& dropdown {:show @show-presets-dropdown? - :on-close #(reset! show-presets-dropdown? false)} - [:ul.custom-select-dropdown + (or (nil? all-types) (= (count all-types) 1))) + [:div {:class (stl/css :presets)} + [:div {:class (stl/css-case :presets-wrapper true + :opened show-presets-dropdown?) + :on-click open-presets} + [:span {:class (stl/css :select-name)}(tr "workspace.options.size-presets")] + [:span {:class (stl/css :collapsed-icon)} i/arrow-refactor] + + [:& dropdown {:show show-presets-dropdown? + :on-close close-presets} + [:ul {:class (stl/css :custom-select-dropdown)} (for [size-preset size-presets] (if-not (:width size-preset) - [:li.dropdown-label {:key (:name size-preset)} - [:span (:name size-preset)]] [:li {:key (:name size-preset) - :on-click #(on-preset-selected (:width size-preset) (:height size-preset))} - (:name size-preset) - [:span (:width size-preset) " x " (:height size-preset)]]))]]] - [:span.orientation-icon {:on-click #(on-orientation-clicked :vert)} i/size-vert] - [:span.orientation-icon {:on-click #(on-orientation-clicked :horiz)} i/size-horiz]]) + :class (stl/css-case :dropdown-element true + :disabled true)} + [:span {:class (stl/css :preset-name)} (:name size-preset)]] + [:li {:key (:name size-preset) + :class (stl/css :dropdown-element) + :data-width (:width size-preset) + :data-height (:height size-preset) + :on-click on-preset-selected} + [:div {:class (stl/css :name-wrapper)} + [:span {:class (stl/css :preset-name)} (:name size-preset)] + [:span {:class (stl/css :preset-size)} (:width size-preset) " x " (:height size-preset)]] - ;; WIDTH & HEIGHT + (when (and (= (:width size-preset) (d/parse-integer (:width values) 0)) + (= (:height size-preset) (d/parse-integer (:height values) 0))) + [:span {:class (stl/css :check-icon)} i/tick-refactor])]))]]] + + [:& radio-buttons {:selected (name orientation) + :on-change on-orientation-change-refactor + :name "frame-otientation"} + [:& radio-button {:icon i/size-vertical-refactor + :value "vert" + :id :vert}] + [:& radio-button {:icon i/size-horizontal-refactor + :value "horiz" + :id :horiz}]]]) (when (options :size) - [:div.row-flex - [:span.element-set-subtitle (tr "workspace.options.size")] - [:div.input-element.width {:title (tr "workspace.options.width")} + [:div {:class (stl/css :size)} + [:div {:class (stl/css :height) + :title (tr "workspace.options.width")} + [:span {:class (stl/css :icon-text)} "W"] [:> numeric-input* {:min 0.01 :no-validate true :placeholder "--" :on-change on-width-change :disabled disabled-width-sizing? + :className (stl/css :numeric-input) :value (:width values)}]] - - [:div.input-element.height {:title (tr "workspace.options.height")} + [:div {:class (stl/css :height) + :title (tr "workspace.options.height")} + [:span {:class (stl/css :icon-text)} "H"] [:> numeric-input* {:min 0.01 :no-validate true :placeholder "--" :on-change on-height-change :disabled disabled-height-sizing? + :className (stl/css :numeric-input) :value (:height values)}]] - - [:div.lock-size {:class (dom/classnames - :selected (true? proportion-lock) - :disabled (= proportion-lock :multiple)) - :on-click on-proportion-lock-change} + [:button {:class (stl/css-case + :lock-size-btn true + :selected (true? proportion-lock) + :disabled (= proportion-lock :multiple)) + :on-click on-proportion-lock-change} (if proportion-lock - i/lock - i/unlock)]]) - - ;; POSITION + i/lock-refactor + i/unlock-refactor)]]) (when (options :position) - [:div.row-flex - [:span.element-set-subtitle (tr "workspace.options.position")] - [:div.input-element.Xaxis {:title (tr "workspace.options.x")} + [:div {:class (stl/css :position)} + [:div {:class (stl/css :x-position) + :title (tr "workspace.options.x")} + [:span {:class (stl/css :icon-text)} "X"] [:> numeric-input* {:no-validate true :placeholder "--" :on-change on-pos-x-change :disabled disabled-position-x? + :className (stl/css :numeric-input) :value (:x values)}]] - [:div.input-element.Yaxis {:title (tr "workspace.options.y")} + + [:div {:class (stl/css :y-position) + :title (tr "workspace.options.y")} + [:span {:class (stl/css :icon-text)} "Y"] [:> numeric-input* {:no-validate true :placeholder "--" :disabled disabled-position-y? :on-change on-pos-y-change + :className (stl/css :numeric-input) :value (:y values)}]]]) + (when (or (options :rotation) (options :radius)) + [:div {:class (stl/css :rotation-radius)} - ;; ROTATION - (when (options :rotation) - [:div.row-flex - [:span.element-set-subtitle (tr "workspace.options.rotation")] - [:div.input-element.degrees {:title (tr "workspace.options.rotation")} - [:> numeric-input* - {:no-validate true - :min 0 - :max 359 - :data-wrap true - :placeholder "--" - :on-change on-rotation-change - :value (:rotation values)}]]]) - - ;; RADIUS - (when (options :radius) - [:div.row-flex - [:div.radius-options - [:div.radius-icon.tooltip.tooltip-bottom - {:class (dom/classnames - :selected (or (= radius-mode :radius-1) @radius-multi?)) - :alt (tr "workspace.options.radius.all-corners") - :on-click on-switch-to-radius-1} - i/radius-1] - [:div.radius-icon.tooltip.tooltip-bottom - {:class (dom/classnames - :selected (and (= radius-mode :radius-4) (not @radius-multi?))) - :alt (tr "workspace.options.radius.single-corners") - :on-click on-switch-to-radius-4} - i/radius-4]] - - (cond - (= radius-mode :radius-1) - [:div.input-element.mini {:title (tr "workspace.options.radius")} + (when (options :rotation) + [:div {:class (stl/css :rotation) + :title (tr "workspace.options.rotation")} + [:span {:class (stl/css :icon)} i/rotation-refactor] [:> numeric-input* - {:placeholder "--" - :ref radius-input-ref + {:no-validate true :min 0 - :on-change on-radius-1-change - :value (:rx values)}]] - - @radius-multi? - [:div.input-element.mini {:title (tr "workspace.options.radius")} - [:input.input-text - {:type "number" + :max 359 + :data-wrap true :placeholder "--" + :on-change on-rotation-change + :className (stl/css :numeric-input) + :value (:rotation values)}]]) + + (when (options :radius) + [:div {:class (stl/css :radius)} + [:div {:class (stl/css :radius-inputs)} + (cond + (= radius-mode :radius-1) + [:div {:class (stl/css :radius-1) + :title (tr "workspace.options.radius")} + [:span {:class (stl/css :icon)} i/corner-radius-refactor] + [:> numeric-input* + {:placeholder "Mixed" + :ref radius-input-ref + :min 0 + :on-change on-radius-1-change + :className (stl/css :numeric-input) + :value (:rx values)}]] + + @radius-multi? + [:div {:class (stl/css :radius-1) + :title (tr "workspace.options.radius")} + [:span {:class (stl/css :icon)} i/corner-radius-refactor] + [:input.input-text + {:type "number" + :placeholder "Mixed" + :min 0 + :on-change on-radius-multi-change + :className (stl/css :numeric-input) + :value (if all-equal? (:rx values) nil)}]] + + + (= radius-mode :radius-4) + [:div {:class (stl/css :radius-4)} + [:div {:class (stl/css :small-input) + :title (tr "workspace.options.radius-top-left")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r1-change + :className (stl/css :numeric-input) + :value (:r1 values)}]] + + [:div {:class (stl/css :small-input) + :title (tr "workspace.options.radius-top-right")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r2-change + :className (stl/css :numeric-input) + :value (:r2 values)}]] + + [:div {:class (stl/css :small-input) + :title (tr "workspace.options.radius-bottom-left")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r4-change + :className (stl/css :numeric-input) + :value (:r4 values)}]] + + [:div {:class (stl/css :small-input) + :title (tr "workspace.options.radius-bottom-right")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r3-change + :className (stl/css :numeric-input) + :value (:r3 values)}]] + ])] + [:button {:class (stl/css-case :radius-mode true + :selected (= radius-mode :radius-4)) + :title (if(= radius-mode :radius-4) + (tr "workspace.options.radius.all-corners") + (tr "workspace.options.radius.single-corners")) + :on-click toggle-radius-mode} + i/corner-radius-refactor]])]) + (when (or (options :clip-content) (options :show-in-viewer)) + [:div {:class (stl/css :clip-show)} + (when (options :clip-content) + [:div {:class (stl/css :clip-content)} + [:input {:type "checkbox" + :id "clip-content" + :ref clip-content-ref + :class (stl/css :clip-content-input) + :checked (not (:show-content values)) + :on-change on-change-clip-content}] + + [:label {:for "clip-content" + :title (tr "workspace.options.clip-content") + :class (stl/css-case :clip-content-label true + :selected (not (:show-content values)))} + [:span {:class (stl/css :icon)} + i/clip-content-refactor] + ]]) + (when (options :show-in-viewer) + [:div {:class (stl/css :clip-content)} + [:input {:type "checkbox" + :id "show-in-viewer" + :ref show-in-viewer-ref + :class (stl/css :clip-content-input) + :checked (not (:hide-in-viewer values)) + :on-change on-change-show-in-viewer}] + + [:label {:for "show-in-viewer" + :title (tr "workspace.options.show-in-viewer") + :class (stl/css-case :clip-content-label true + :selected (not (:hide-in-viewer values)))} + [:span {:class (stl/css :icon)} + i/play-refactor]]])])] + + [:* + [:div.element-set + [:div.element-set-content + + ;; FRAME PRESETS + (when (and (options :presets) + (or (nil? all-types) (= (count all-types) 1))) ;; Don't show presets if multi selected + [:div.row-flex ;; some frames and some non frames + [:div.presets.custom-select.flex-grow {:class (when show-presets-dropdown? "opened") + :on-click open-presets} + [:span (tr "workspace.options.size-presets")] + [:span.dropdown-button i/arrow-down] + [:& dropdown {:show show-presets-dropdown? + :on-close close-presets} + [:ul.custom-select-dropdown + (for [size-preset size-presets] + (if-not (:width size-preset) + [:li.dropdown-label {:key (:name size-preset)} + [:span (:name size-preset)]] + [:li {:key (:name size-preset) + :data-width (:width size-preset) + :data-height (:height size-preset) + :on-click on-preset-selected} + (:name size-preset) + [:span (:width size-preset) " x " (:height size-preset)]]))]]] + [:span.orientation-icon {:data-value :vert + :on-click on-orientation-clicked} i/size-vert] + [:span.orientation-icon {:data-value :horiz + :on-click on-orientation-clicked} i/size-horiz]]) + + ;; WIDTH & HEIGHT + (when (options :size) + [:div.row-flex + [:span.element-set-subtitle (tr "workspace.options.size")] + [:div.input-element.width {:title (tr "workspace.options.width")} + [:> numeric-input* {:min 0.01 + :no-validate true + :placeholder "--" + :on-change on-width-change + :disabled disabled-width-sizing? + :value (:width values)}]] + + [:div.input-element.height {:title (tr "workspace.options.height")} + [:> numeric-input* {:min 0.01 + :no-validate true + :placeholder "--" + :on-change on-height-change + :disabled disabled-height-sizing? + :value (:height values)}]] + + [:div.lock-size {:class (dom/classnames + :selected (true? proportion-lock) + :disabled (= proportion-lock :multiple)) + :on-click on-proportion-lock-change} + (if proportion-lock + i/lock + i/unlock)]]) + + ;; POSITION + (when (options :position) + [:div.row-flex + [:span.element-set-subtitle (tr "workspace.options.position")] + [:div.input-element.Xaxis {:title (tr "workspace.options.x")} + [:> numeric-input* {:no-validate true + :placeholder "--" + :on-change on-pos-x-change + :disabled disabled-position-x? + :value (:x values)}]] + [:div.input-element.Yaxis {:title (tr "workspace.options.y")} + [:> numeric-input* {:no-validate true + :placeholder "--" + :disabled disabled-position-y? + :on-change on-pos-y-change + :value (:y values)}]]]) + + ;; ROTATION + (when (options :rotation) + [:div.row-flex + [:span.element-set-subtitle (tr "workspace.options.rotation")] + [:div.input-element.degrees {:title (tr "workspace.options.rotation")} + [:> numeric-input* + {:no-validate true :min 0 - :on-change on-radius-multi-change - :value ""}]] + :max 359 + :data-wrap true + :placeholder "--" + :on-change on-rotation-change + :value (:rotation values)}]]]) - (= radius-mode :radius-4) - [:* - [:div.input-element.mini {:title (tr "workspace.options.radius-top-left")} - [:> numeric-input* - {:placeholder "--" - :min 0 - :on-change on-radius-r1-change - :value (:r1 values)}]] + ;; RADIUS + (when (options :radius) + [:div.row-flex + [:div.radius-options + [:div.radius-icon.tooltip.tooltip-bottom + {:class (dom/classnames + :selected (or (= radius-mode :radius-1) @radius-multi?)) + :alt (tr "workspace.options.radius.all-corners") + :on-click on-switch-to-radius-1} + i/radius-1] + [:div.radius-icon.tooltip.tooltip-bottom + {:class (dom/classnames + :selected (and (= radius-mode :radius-4) (not @radius-multi?))) + :alt (tr "workspace.options.radius.single-corners") + :on-click on-switch-to-radius-4} + i/radius-4]] - [:div.input-element.mini {:title (tr "workspace.options.radius-top-right")} - [:> numeric-input* - {:placeholder "--" - :min 0 - :on-change on-radius-r2-change - :value (:r2 values)}]] + (cond + (= radius-mode :radius-1) + [:div.input-element.mini {:title (tr "workspace.options.radius")} + [:> numeric-input* + {:placeholder "--" + :ref radius-input-ref + :min 0 + :on-change on-radius-1-change + :value (:rx values)}]] - [:div.input-element.mini {:title (tr "workspace.options.radius-bottom-right")} - [:> numeric-input* - {:placeholder "--" - :min 0 - :on-change on-radius-r3-change - :value (:r3 values)}]] + @radius-multi? + [:div.input-element.mini {:title (tr "workspace.options.radius")} + [:input.input-text + {:type "number" + :placeholder "--" + :min 0 + :on-change on-radius-multi-change + :value ""}]] - [:div.input-element.mini {:title (tr "workspace.options.radius-bottom-left")} - [:> numeric-input* - {:placeholder "--" - :min 0 - :on-change on-radius-r4-change - :value (:r4 values)}]]])]) + (= radius-mode :radius-4) + [:* + [:div.input-element.mini {:title (tr "workspace.options.radius-top-left")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r1-change + :value (:r1 values)}]] - (when (options :clip-content) - [:div.input-checkbox - [:input {:type "checkbox" - :id "clip-content" - :ref clip-content-ref - :checked (not (:show-content values)) - :on-change on-change-clip-content}] + [:div.input-element.mini {:title (tr "workspace.options.radius-top-right")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r2-change + :value (:r2 values)}]] - [:label {:for "clip-content"} - (tr "workspace.options.clip-content")]]) + [:div.input-element.mini {:title (tr "workspace.options.radius-bottom-right")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r3-change + :value (:r3 values)}]] - (when (options :show-in-viewer) - [:div.input-checkbox - [:input {:type "checkbox" - :id "show-in-viewer" - :ref show-in-viewer-ref - :checked (not (:hide-in-viewer values)) - :on-change on-change-show-in-viewer}] + [:div.input-element.mini {:title (tr "workspace.options.radius-bottom-left")} + [:> numeric-input* + {:placeholder "--" + :min 0 + :on-change on-radius-r4-change + :value (:r4 values)}]]])]) + (when (options :clip-content) + [:div.input-checkbox + [:input {:type "checkbox" + :id "clip-content" + :ref clip-content-ref + :checked (not (:show-content values)) + :on-change on-change-clip-content}] - [:label {:for "show-in-viewer"} - (tr "workspace.options.show-in-viewer")]]) + [:label {:for "clip-content"} + (tr "workspace.options.clip-content")]]) + (when (options :show-in-viewer) + [:div.input-checkbox + [:input {:type "checkbox" + :id "show-in-viewer" + :ref show-in-viewer-ref + :checked (not (:hide-in-viewer values)) + :on-change on-change-show-in-viewer}] - ]]])) + [:label {:for "show-in-viewer"} + (tr "workspace.options.show-in-viewer")]])]]]))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.css.json b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.css.json new file mode 100644 index 000000000..c88e94f4c --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.css.json @@ -0,0 +1 @@ +{"button-primary":"menus_measures_button-primary_yRv5c","button-secondary":"menus_measures_button-secondary_wxH4e","button-tertiary":"menus_measures_button-tertiary_75HJz","element-set":"menus_measures_element-set_yFX0H","clip-show":"menus_measures_clip-show_xfMxc","clip-content":"menus_measures_clip-content_6jcK7","clip-content-label":"menus_measures_clip-content-label_tAmJR","show-in-viewer":"menus_measures_show-in-viewer_gS4zu","rotation-radius":"menus_measures_rotation-radius_gRhX3","radius":"menus_measures_radius_fwOcI","radius-mode":"menus_measures_radius-mode_-2OYa","size":"menus_measures_size_H-S1I","lock-size-btn":"menus_measures_lock-size-btn_LtIkx","button-radio":"menus_measures_button-radio_Sbi8s","button-warning":"menus_measures_button-warning_2OKjL","button-disabled":"menus_measures_button-disabled_YwjRu","button-tag":"menus_measures_button-tag_DQoCx","button-icon":"menus_measures_button-icon_-W4cp","icon":"menus_measures_icon_8KRGm","presets":"menus_measures_presets_1QW71","presets-wrapper":"menus_measures_presets-wrapper_wcdmw","collapsed-icon":"menus_measures_collapsed-icon_rn9vD","button-icon-small":"menus_measures_button-icon-small_6qaot","radius-inputs":"menus_measures_radius-inputs_aOGLK","radius-1":"menus_measures_radius-1_vCkFW","rotation":"menus_measures_rotation_xDl8P","custom-select-dropdown":"menus_measures_custom-select-dropdown_NVheb","dropdown-element":"menus_measures_dropdown-element_41zZT","check-icon":"menus_measures_check-icon_MQR8g","link":"menus_measures_link_Va-ax","asset-element":"menus_measures_asset-element_RgEhV","input-element":"menus_measures_input-element_Y2xMf","radius-4":"menus_measures_radius-4_8aSTX","small-input":"menus_measures_small-input_0CZGl","position":"menus_measures_position_UZzMu","x-position":"menus_measures_x-position_Pb7Ub","y-position":"menus_measures_y-position_jnHIu","height":"menus_measures_height_uI-RG","width":"menus_measures_width_aOY7n","new-scrollbar":"menus_measures_new-scrollbar_rHWmr","menu-dropdown":"menus_measures_menu-dropdown_FWl9I","menu-item":"menus_measures_menu-item_CqJOK","shortcut":"menus_measures_shortcut_aa6dR","shortcut-key":"menus_measures_shortcut-key_diL6y","user-icon":"menus_measures_user-icon_l34aZ","select-name":"menus_measures_select-name_HnONU","disabled":"menus_measures_disabled_Lt-4x","preset-name":"menus_measures_preset-name_bQ8E5","name-wrapper":"menus_measures_name-wrapper_4eJ3R","preset-size":"menus_measures_preset-size_BFWUR","icon-text":"menus_measures_icon-text_OQu-N","numeric-input":"menus_measures_numeric-input_DTSy8","selected":"menus_measures_selected_daMg1","clip-content-input":"menus_measures_clip-content-input_mNWNP","spin-animation":"menus_measures_spin-animation_rMlyE"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss new file mode 100644 index 000000000..955f16705 --- /dev/null +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/measures.scss @@ -0,0 +1,317 @@ +// 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"; + +.element-set { + display: flex; + flex-direction: column; + gap: $s-4; + .presets { + display: flex; + align-items: flex-start; + gap: $s-4; + .presets-wrapper { + @extend .asset-element; + position: relative; + display: flex; + height: $s-32; + width: $s-188; + padding: $s-8; + border-radius: $br-8; + .select-name { + @include titleTipography; + display: flex; + justify-content: flex-start; + align-items: center; + flex-grow: 1; + cursor: pointer; + } + .collapsed-icon { + @include flexCenter; + cursor: pointer; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + transform: rotate(90deg); + } + } + .custom-select-dropdown { + @include menuShadow; + position: absolute; + top: $s-32; + left: 0; + max-height: 300px; + width: $s-252; + padding: $s-2; + margin: 0; + margin-top: $s-4; + border-radius: $br-8; + z-index: $z-index-3; + overflow-y: auto; + background-color: var(--menu-background-color); + .dropdown-element { + @include titleTipography; + display: flex; + align-items: center; + gap: $s-8; + height: $s-32; + padding: 0 $s-8; + border-radius: $br-6; + cursor: pointer; + &.disabled { + pointer-events: none; + cursor: default; + .preset-name { + color: var(--menu-foreground-color); + } + + &:hover { + background-color: var(--menu-background-color); + .preset-name { + color: var(--menu-foreground-color); + } + } + } + .name-wrapper { + display: flex; + gap: $s-8; + flex-grow: 1; + .preset-name { + color: var(--menu-foreground-color-hover); + } + .preset-size { + color: var(--menu-foreground-color); + } + } + + .check-icon { + @include flexCenter; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + &:hover { + background-color: var(--menu-background-color-hover); + .check-icon svg { + stroke: var(--menu-foreground-color-hover); + } + } + } + } + &:hover { + .collapsed-icon svg { + stroke: var(--input-foreground-color-active); + } + } + } + } + .size { + display: flex; + align-items: center; + gap: $s-4; + .height, + .width { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon { + @include flexCenter; + width: $s-12; + height: $s-32; + margin-right: $s-4; + } + .icon-text { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + padding-top: $s-1; + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + .lock-size-btn { + @extend .button-tertiary; + border-radius: $br-8; + height: $s-32; + width: $s-28; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + } + } + .position { + display: flex; + align-items: center; + gap: $s-4; + .x-position, + .y-position { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon { + @include flexCenter; + height: $s-32; + width: $s-12; + margin-right: $s-4; + } + .icon-text { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + padding-top: $s-1; + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + } + .rotation-radius { + display: flex; + align-items: flex-start; + justify-content: flex-start; + gap: $s-4; + .rotation { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon-text { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + padding-top: $s-1; + } + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + .radius { + display: flex; + align-items: flex-start; + justify-content: flex-start; + gap: $s-4; + .radius-inputs { + display: flex; + .radius-1 { + @extend .input-element; + width: $s-108; + padding-left: $s-8; + .icon { + @include flexCenter; + height: $s-32; + margin-right: $s-4; + svg { + @extend .button-icon-small; + stroke: var(--icon-foreground); + } + } + + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + padding: $s-1 $s-2; + color: var(--input-foreground-color-active); + } + } + .radius-4 { + display: grid; + grid-template-columns: 1fr 1fr; + gap: $s-4; + .small-input { + @extend .input-element; + width: $s-52; + padding-left: $s-8; + .numeric-input { + @include removeInputStyle; + @include titleTipography; + height: $s-32; + width: 100%; + margin: 0; + color: var(--input-foreground-color-active); + } + } + } + } + .radius-mode { + @extend .button-tertiary; + height: $s-32; + width: $s-28; + border-radius: $br-8; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + &.selected { + background-color: var(--button-tertiary-background-color-hover); + svg { + stroke: var(--button-tertiary-foreground-color-active); + } + } + } + } + } + .clip-show { + display: flex; + align-items: flex-start; + justify-content: flex-start; + gap: $s-4; + .clip-content, + .show-in-viewer { + .clip-content-input { + display: none; + } + .clip-content-label { + @extend .button-tertiary; + height: $s-32; + width: $s-28; + border-radius: $br-8; + .icon { + @include flexCenter; + svg { + @extend .button-icon; + stroke: var(--icon-foreground); + } + } + &.selected { + background-color: var(--button-tertiary-background-color-hover); + svg { + stroke: var(--button-tertiary-foreground-color-active); + } + } + } + } + } +} diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs index 58c6d4d8c..b67905296 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs @@ -529,13 +529,13 @@ [:& radio-buttons {:selected text-transform :on-change handle-change :name "text-transform"} - [:& nilable-option {:icon (mf/html i/text-uppercase-refactor) + [:& nilable-option {:icon i/text-uppercase-refactor :value "uppercase" :id :uppercase}] - [:& nilable-option {:icon (mf/html i/text-lowercase-refactor) + [:& nilable-option {:icon i/text-lowercase-refactor :value "lowercase" :id :lowercase}] - [:& nilable-option {:icon "Aa" + [:& nilable-option {:icon i/text-mixed-refactor :value "capitalize" :id :capitalize}]]] 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 db8deee88..fbe31d610 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-warning":"menus_typography_button-warning_nEKoP","button-disabled":"menus_typography_button-disabled_f8lDj","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","link":"menus_typography_link_3lL9u","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 +{"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-radio":"menus_typography_button-radio_YLx0v","button-warning":"menus_typography_button-warning_nEKoP","button-disabled":"menus_typography_button-disabled_f8lDj","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","link":"menus_typography_link_3lL9u","asset-element":"menus_typography_asset-element_-LlIX","text-transform":"menus_typography_text-transform_U7Y3U","input-element":"menus_typography_input-element_-cnYQ","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 0491e8e2f..8ffe111de 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 @@ -91,6 +91,7 @@ height: $s-28; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } &:focus-within { @@ -115,6 +116,7 @@ @include titleTipography; @extend .asset-element; padding-right: 0; + margin-bottom: $s-4; cursor: pointer; .name { flex-grow: 1; @@ -125,6 +127,7 @@ width: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); transform: rotate(90deg); } } @@ -136,6 +139,7 @@ @extend .asset-element; @include titleTipography; padding: 0; + margin-bottom: $s-4; flex-grow: 1; .icon { @include flexCenter; @@ -143,6 +147,7 @@ min-width: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); transform: rotate(90deg); } } @@ -159,6 +164,7 @@ @extend .asset-element; @include titleTipography; padding: 0; + margin-bottom: $s-4; flex-grow: 2; .icon { @include flexCenter; @@ -166,6 +172,7 @@ min-width: $s-28; svg { @extend .button-icon; + stroke: var(--icon-foreground); transform: rotate(90deg); } } @@ -199,11 +206,13 @@ .line-height, .letter-spacing { @extend .asset-element; + margin-bottom: $s-4; .icon { @include flexCenter; width: $s-28; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } .line-height-input, @@ -226,6 +235,11 @@ @extend .asset-element; width: fit-content; padding: 0; + margin-bottom: $s-4; + background-color: var(--radio-btns-background-color); + &:hover { + background-color: var(--radio-btns-background-color); + } } } } @@ -275,6 +289,7 @@ cursor: pointer; .font-item { @extend .asset-element; + margin-bottom: $s-4; border-radius: $br-8; display: flex; .icon { @@ -283,6 +298,7 @@ width: $s-28; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } &.selected { diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs index 7e122d1d6..1eb56073c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/bool.cljs @@ -14,7 +14,7 @@ [app.main.ui.workspace.sidebar.options.menus.fill :refer [fill-attrs fill-menu]] [app.main.ui.workspace.sidebar.options.menus.grid-cell :as grid-cell] [app.main.ui.workspace.sidebar.options.menus.layer :refer [layer-attrs layer-menu]] - [app.main.ui.workspace.sidebar.options.menus.layout-container :refer [layout-container-flex-attrs layout-container-menu]] + [app.main.ui.workspace.sidebar.options.menus.layout-container :refer [layout-container-flex-attrs layout-container-menu]] [app.main.ui.workspace.sidebar.options.menus.layout-item :refer [layout-item-attrs layout-item-menu]] [app.main.ui.workspace.sidebar.options.menus.measures :refer [measure-attrs measures-menu]] [app.main.ui.workspace.sidebar.options.menus.shadow :refer [shadow-menu]] @@ -47,6 +47,9 @@ parents-by-ids-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) parents (mf/deref parents-by-ids-ref)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids ids :type type :values measure-values @@ -57,7 +60,7 @@ [:& grid-cell/options {:shape (first parents) :cell (ctl/get-cell-by-shape-id (first parents) (first ids))}]) - + (when is-layout-child? [:& layout-item-menu {:ids ids @@ -71,9 +74,7 @@ (when (or (not is-layout-child?) is-layout-child-absolute?) [:& constraints-menu {:ids ids :values constraint-values}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& fill-menu {:ids ids :type type :values (select-keys shape fill-attrs)}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs index e985ee1e8..e28fd2ff4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/circle.cljs @@ -14,7 +14,7 @@ [app.main.ui.workspace.sidebar.options.menus.fill :refer [fill-attrs fill-menu]] [app.main.ui.workspace.sidebar.options.menus.grid-cell :as grid-cell] [app.main.ui.workspace.sidebar.options.menus.layer :refer [layer-attrs layer-menu]] - [app.main.ui.workspace.sidebar.options.menus.layout-container :refer [layout-container-flex-attrs layout-container-menu]] + [app.main.ui.workspace.sidebar.options.menus.layout-container :refer [layout-container-flex-attrs layout-container-menu]] [app.main.ui.workspace.sidebar.options.menus.layout-item :refer [layout-item-attrs layout-item-menu]] [app.main.ui.workspace.sidebar.options.menus.measures :refer [measure-attrs measures-menu]] [app.main.ui.workspace.sidebar.options.menus.shadow :refer [shadow-menu]] @@ -49,6 +49,9 @@ parents-by-ids-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) parents (mf/deref parents-by-ids-ref)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids ids :type type :values measure-values @@ -72,9 +75,7 @@ (when (or (not is-layout-child?) is-layout-child-absolute?) [:& constraints-menu {:ids ids :values constraint-values}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& fill-menu {:ids ids :type type :values (select-keys shape fill-attrs)}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs index 4f7a8d049..11e3fda65 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/frame.cljs @@ -56,6 +56,9 @@ parents-by-ids-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) parents (mf/deref parents-by-ids-ref)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids [(:id shape)] :values measure-values :type type @@ -84,9 +87,7 @@ :is-layout-container? is-layout-container? :shape shape}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& fill-menu {:ids ids :type type :values (select-keys shape fill-attrs-shape)}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs index a9b05d50b..e61ccc51f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/group.cljs @@ -67,6 +67,7 @@ [layout-item-ids layout-item-values] (get-attrs [shape] objects :layout-item)] [:div.options + [:& layer-menu {:type type :ids layer-ids :values layer-values}] [:& measures-menu {:type type :ids measure-ids :values measure-values :shape shape}] [:& component-menu {:ids comp-ids :values comp-values :shape shape}] ;;remove this in components-v2 [:& layout-container-menu {:type type :ids [(:id shape)] :values layout-container-values :multiple false}] @@ -89,7 +90,7 @@ (when (or (not is-layout-child?) is-layout-child-absolute?) [:& constraints-menu {:ids constraint-ids :values constraint-values}]) - [:& layer-menu {:type type :ids layer-ids :values layer-values}] + (when-not (empty? fill-ids) [:& fill-menu {:type type :ids fill-ids :values fill-values}]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs index e88082198..881ce65e1 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/image.cljs @@ -49,6 +49,9 @@ parents-by-ids-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) parents (mf/deref parents-by-ids-ref)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids ids :type type :values measure-values @@ -59,7 +62,7 @@ [:& grid-cell/options {:shape (first parents) :cell (ctl/get-cell-by-shape-id (first parents) (first ids))}]) - + (when is-layout-child? [:& layout-item-menu {:ids ids @@ -74,9 +77,7 @@ [:& constraints-menu {:ids ids :values constraint-values}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& fill-menu {:ids ids :type type diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs index f311ef283..e320d5f36 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/multiple.cljs @@ -343,6 +343,9 @@ ])))] [:div.options + (when-not (empty? layer-ids) + [:& layer-menu {:type type :ids layer-ids :values layer-values}]) + (when-not (empty? measure-ids) [:& measures-menu {:type type :all-types all-types :ids measure-ids :values measure-values :shape shapes}]) @@ -361,8 +364,6 @@ (when-not (or (empty? constraint-ids) is-layout-child?) [:& constraints-menu {:ids constraint-ids :values constraint-values}]) - (when-not (empty? layer-ids) - [:& layer-menu {:type type :ids layer-ids :values layer-values}]) (when-not (empty? text-ids) [:& ot/text-menu {:type type :ids text-ids :values text-values}]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs index 0c94e7b33..929cb4e68 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/path.cljs @@ -49,6 +49,9 @@ parents-by-ids-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids)) parents (mf/deref parents-by-ids-ref)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids ids :type type :values measure-values @@ -72,9 +75,7 @@ (when (or (not is-layout-child?) is-layout-child-absolute?) [:& constraints-menu {:ids ids :values constraint-values}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& fill-menu {:ids ids :type type :values (select-keys shape fill-attrs)}] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs index d2ddecc6d..7603870d6 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/rect.cljs @@ -52,6 +52,9 @@ parents (mf/deref parents-by-ids*)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids ids :type type :values measure-values @@ -82,9 +85,7 @@ [:& constraints-menu {:ids ids :values constraint-values}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& fill-menu {:ids ids :type type diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs index aa40c8cde..94f339d86 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs @@ -83,6 +83,9 @@ layout-item-values (select-keys shape layout-item-attrs)] [:* + [:& layer-menu {:ids ids + :type type + :values layer-values}] [:& measures-menu {:ids ids :type type @@ -94,7 +97,6 @@ [:& grid-cell/options {:shape (first parents) :cell (ctl/get-cell-by-shape-id (first parents) (first ids))}]) - (when is-layout-child? [:& layout-item-menu {:ids ids @@ -110,9 +112,7 @@ {:ids ids :values (select-keys shape constraint-attrs)}]) - [:& layer-menu {:ids ids - :type type - :values layer-values}] + [:& text-menu {:ids ids 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 1634b597c..3fe091ba8 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-warning":"sidebar_shortcuts_button-warning_smgx1","button-disabled":"sidebar_shortcuts_button-disabled_SrOif","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","link":"sidebar_shortcuts_link_GVvFO","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 +{"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-radio":"sidebar_shortcuts_button-radio_9PwtF","button-warning":"sidebar_shortcuts_button-warning_smgx1","button-disabled":"sidebar_shortcuts_button-disabled_SrOif","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","link":"sidebar_shortcuts_link_GVvFO","asset-element":"sidebar_shortcuts_asset-element_-zk6N","input-element":"sidebar_shortcuts_input-element_dK-2c","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/shortcuts.scss b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.scss index 71ffc5589..ad7b1c7c5 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.scss @@ -34,6 +34,7 @@ svg { @extend .button-icon; + stroke: var(--icon-foreground); } } } @@ -55,6 +56,7 @@ display: flex; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } @@ -83,6 +85,7 @@ @include flexCenter; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } } @@ -92,6 +95,7 @@ width: $s-28; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } } } @@ -122,6 +126,7 @@ @include flexCenter; svg { @extend .button-icon-small; + stroke: var(--icon-foreground); } &.open { transform: rotate(90deg); diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs index 88a001c27..333782b2c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.cljs @@ -245,7 +245,8 @@ :collapsed? (not @show-pages?) :on-collapsed toggle-pages :title (tr "workspace.sidebar.sitemap") - :klass :title-spacing-sitemap} + :class (css :title-spacing-sitemap)} + (if workspace-read-only? [:div 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 057504133..e30b84dce 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-warning":"sidebar_sitemap_button-warning_qADPu","button-disabled":"sidebar_sitemap_button-disabled_IU-S6","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","link":"sidebar_sitemap_link_WvD4-","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","title-bar":"sidebar_sitemap_title-bar_tIJtT","title":"sidebar_sitemap_title_HmFc4","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 +{"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-radio":"sidebar_sitemap_button-radio_BxzRJ","button-warning":"sidebar_sitemap_button-warning_qADPu","button-disabled":"sidebar_sitemap_button-disabled_IU-S6","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","link":"sidebar_sitemap_link_WvD4-","asset-element":"sidebar_sitemap_asset-element_I1-m4","input-element":"sidebar_sitemap_input-element_YAbpV","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","title-bar":"sidebar_sitemap_title-bar_tIJtT","title":"sidebar_sitemap_title_HmFc4","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","title-spacing-sitemap":"sidebar_sitemap_title-spacing-sitemap_pDMgN","spin-animation":"sidebar_sitemap_spin-animation_SVOeo"} \ No newline at end of file diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss b/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss index bd30a246e..e2595c96f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss @@ -13,7 +13,7 @@ flex: 1; width: 100%; height: var(--height, 200px); - + padding-left: $s-8; .title-bar { .title { margin-left: $s-2; @@ -29,6 +29,7 @@ border-radius: $br-8; svg { @extend .button-icon; + stroke: var(--icon-foreground); transform: rotate(90deg); } } @@ -227,7 +228,7 @@ } } } - :global(.title-spacing-sitemap) { - padding-right: $s-8; + .title-spacing-sitemap { + padding-left: $s-8; } } 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 8fcffa73d..f38d40b3a 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-warning":"workspace_text_palette_button-warning_q4pBH","button-disabled":"workspace_text_palette_button-disabled_UR9B3","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","link":"workspace_text_palette_link_6paXO","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 +{"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-radio":"workspace_text_palette_button-radio_F-Ji2","button-warning":"workspace_text_palette_button-warning_q4pBH","button-disabled":"workspace_text_palette_button-disabled_UR9B3","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","link":"workspace_text_palette_link_6paXO","asset-element":"workspace_text_palette_asset-element_edxQB","input-element":"workspace_text_palette_input-element_uE04D","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_ctx_menu.css.json b/frontend/src/app/main/ui/workspace/text_palette_ctx_menu.css.json index 3ed40feb6..d7df7a0c2 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-warning":"workspace_text_palette_ctx_menu_button-warning_FmD1l","button-disabled":"workspace_text_palette_ctx_menu_button-disabled_7O1-b","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","link":"workspace_text_palette_ctx_menu_link_SJ1YB","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 +{"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-radio":"workspace_text_palette_ctx_menu_button-radio_r2NrA","button-warning":"workspace_text_palette_ctx_menu_button-warning_FmD1l","button-disabled":"workspace_text_palette_ctx_menu_button-disabled_7O1-b","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","link":"workspace_text_palette_ctx_menu_link_SJ1YB","asset-element":"workspace_text_palette_ctx_menu_asset-element_-ynNV","input-element":"workspace_text_palette_ctx_menu_input-element_djPBH","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 202cb2964..3b77f7f3d 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 @@ -51,6 +51,7 @@ svg { @include flexCenter; @extend .button-icon-small; + stroke: var(--icon-foreground); } } &.selected,