Merge pull request #4260 from penpot/eva-bugfixing-4

🐛  Some UI fixes
This commit is contained in:
Alejandro 2024-03-14 08:36:16 +01:00 committed by GitHub
commit 7436918edb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 435 additions and 509 deletions

View file

@ -32,6 +32,12 @@
background: var(--text-editor-selection-background-color); background: var(--text-editor-selection-background-color);
color: var(--text-editor-selection-foreground-color); color: var(--text-editor-selection-foreground-color);
} }
::placeholder,
::-webkit-input-placeholder {
@include bodySmallTypography;
color: var(--input-placeholder-color);
}
} }
// BUTTONS // BUTTONS
@ -39,7 +45,7 @@
@include buttonStyle; @include buttonStyle;
@include flexCenter; @include flexCenter;
@include focusPrimary; @include focusPrimary;
@include uppercaseTitleTipography; @include headlineSmallTypography;
background-color: var(--button-primary-background-color-rest); background-color: var(--button-primary-background-color-rest);
border: $s-1 solid var(--button-primary-border-color-rest); border: $s-1 solid var(--button-primary-border-color-rest);
color: var(--button-primary-foreground-color-rest); color: var(--button-primary-foreground-color-rest);
@ -303,7 +309,7 @@
} }
.input-label { .input-label {
@include uppercaseTitleTipography; @include headlineSmallTypography;
@include flexCenter; @include flexCenter;
width: $s-20; width: $s-20;
padding-left: $s-8; padding-left: $s-8;
@ -401,6 +407,7 @@
background-color: var(--input-background-color); background-color: var(--input-background-color);
} }
::placeholder { ::placeholder {
@include bodySmallTypography;
color: var(--input-placeholder-color); color: var(--input-placeholder-color);
} }
&:hover { &:hover {

View file

@ -116,11 +116,11 @@
} }
@mixin textEllipsis { @mixin textEllipsis {
display: block;
max-width: 99%; max-width: 99%;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
display: block;
} }
@mixin twoLineTextEllipsis { @mixin twoLineTextEllipsis {

View file

@ -68,90 +68,6 @@ $height-palette-max: 80px;
} }
} }
.workspace-context-menu {
background-color: $color-white;
border-radius: $br3;
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25);
left: 740px;
position: absolute;
top: 40px;
width: 240px;
z-index: 12;
li {
align-items: center;
font-size: $fs14;
padding: $size-1 $size-4;
cursor: pointer;
display: flex;
justify-content: space-between;
&.separator {
border-top: 1px solid $color-gray-10;
padding: 0px;
margin: 2px;
}
span {
color: $color-gray-60;
}
span.shortcut {
color: $color-gray-20;
font-size: $fs12;
}
&:hover {
background-color: $color-primary-lighter;
}
.submenu-icon {
position: absolute;
right: 1rem;
svg {
width: 10px;
height: 10px;
}
}
}
.icon-menu-item {
display: flex;
justify-content: flex-start;
&:hover {
background-color: $color-primary-lighter;
}
span.title {
margin-left: 5px;
}
.selected-icon {
svg {
width: 10px;
height: 10px;
}
}
.shape-icon {
margin-left: 3px;
svg {
width: 13px;
height: 13px;
}
}
.icon-wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
margin: 0;
}
}
}
.workspace-content { .workspace-content {
background-color: $color-canvas; background-color: $color-canvas;
display: flex; display: flex;

View file

@ -28,7 +28,7 @@
width: 100%; width: 100%;
.tab-container-tab-title { .tab-container-tab-title {
@include flexCenter; @include flexCenter;
@include uppercaseTitleTipography; @include headlineSmallTypography;
height: 100%; height: 100%;
width: 100%; width: 100%;
padding: 0 $s-8; padding: 0 $s-8;

View file

@ -19,10 +19,11 @@
.title, .title,
.title-only, .title-only,
.inspect-title { .inspect-title {
@include uppercaseTitleTipography; @include headlineSmallTypography;
display: flex; display: grid;
align-items: center; align-items: center;
flex-grow: 1; justify-content: flex-start;
grid-auto-flow: column;
height: 100%; height: 100%;
min-height: $s-32; min-height: $s-32;
color: var(--title-foreground-color); color: var(--title-foreground-color);
@ -30,7 +31,8 @@
} }
.title-only { .title-only {
margin-left: $s-8; --title-bar-title-margin: #{$s-8};
margin-inline-start: var(--title-bar-title-margin);
} }
.inspect-title { .inspect-title {
@ -66,23 +68,6 @@
} }
} }
.title,
.title-only {
@include uppercaseTitleTipography;
display: flex;
align-items: center;
flex-grow: 1;
height: 100%;
min-height: $s-32;
color: var(--title-foreground-color);
overflow: hidden;
}
.title-only {
--title-bar-title-margin: #{$s-8};
margin-inline-start: var(--title-bar-title-margin);
}
.title-only-icon-gap { .title-only-icon-gap {
--title-bar-title-margin: #{$s-12}; --title-bar-title-margin: #{$s-12};
} }

View file

@ -19,6 +19,8 @@ $thumbnail-default-height: $s-168; // Default width
.grid-row { .grid-row {
display: grid; display: grid;
grid-auto-flow: column;
grid-auto-columns: calc($s-12 + var(--th-width, #{$thumbnail-default-width}));
width: 100%; width: 100%;
gap: $s-24; gap: $s-24;
} }

View file

@ -652,8 +652,7 @@
[:& dropdown {:show (boolean mdata) [:& dropdown {:show (boolean mdata)
:on-close #(st/emit! dw/hide-context-menu)} :on-close #(st/emit! dw/hide-context-menu)}
[:ul [:ul {:class (stl/css :workspace-context-menu)
{:class (stl/css :workspace-context-menu)
:ref dropdown-ref :ref dropdown-ref
:style {:top top :left left} :style {:top top :left left}
:on-context-menu prevent-default} :on-context-menu prevent-default}

View file

@ -20,6 +20,8 @@
border: $s-2 solid var(--panel-border-color); border: $s-2 solid var(--panel-border-color);
background-color: var(--menu-background-color); background-color: var(--menu-background-color);
z-index: $z-index-4; z-index: $z-index-4;
max-height: 100vh;
overflow-y: auto;
} }
.separator { .separator {

View file

@ -34,6 +34,18 @@
[okulary.core :as l] [okulary.core :as l]
[rumext.v2 :as mf])) [rumext.v2 :as mf]))
(def ^:private close-icon
(i/icon-xref :close (stl/css :close-icon)))
(def ^:private add-icon
(i/icon-xref :add (stl/css :add-icon)))
(def ^:private detach-icon
(i/icon-xref :detach (stl/css :detach-icon)))
(def ^:private library-icon
(i/icon-xref :library (stl/css :library-icon)))
(def ref:workspace-file (def ref:workspace-file
(l/derived :workspace-file st/state)) (l/derived :workspace-file st/state))
@ -185,22 +197,21 @@
:on-cancel on-delete-cancel :on-cancel on-delete-cancel
:count-libraries 1}))))] :count-libraries 1}))))]
[:* [:div {:class (stl/css :libraries-content)}
[:div {:class (stl/css :section)} [:div {:class (stl/css :lib-section)}
[:& title-bar {:collapsable false [:& title-bar {:collapsable false
:title (tr "workspace.libraries.in-this-file") :title (tr "workspace.libraries.in-this-file")
:class (stl/css :title-spacing-lib)}] :class (stl/css :title-spacing-lib)}]
[:div {:class (stl/css :section-list)} [:div {:class (stl/css :section-list)}
[:div {:class (stl/css :section-list-item)} [:div {:class (stl/css :section-list-item)}
[:div [:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} (tr "workspace.libraries.file-library")] [:div {:class (stl/css :item-name)} (tr "workspace.libraries.file-library")]
[:ul {:class (stl/css :item-contents)} [:ul {:class (stl/css :item-contents)}
[:& describe-library-blocks {:components-count (count components) [:& describe-library-blocks {:components-count (count components)
:graphics-count (count media) :graphics-count (count media)
:colors-count (count colors) :colors-count (count colors)
:typography-count (count typographies)}]]] :typography-count (count typographies)}]]]
[:div
(if ^boolean shared? (if ^boolean shared?
[:input {:class (stl/css :item-unpublish) [:input {:class (stl/css :item-unpublish)
:type "button" :type "button"
@ -209,12 +220,12 @@
[:input {:class (stl/css :item-publish) [:input {:class (stl/css :item-publish)
:type "button" :type "button"
:value (tr "common.publish") :value (tr "common.publish")
:on-click publish}])]] :on-click publish}])]
(for [{:keys [id name] :as library} linked-libraries] (for [{:keys [id name] :as library} linked-libraries]
[:div {:class (stl/css :section-list-item) [:div {:class (stl/css :section-list-item)
:key (dm/str id)} :key (dm/str id)}
[:div [:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} name] [:div {:class (stl/css :item-name)} name]
[:ul {:class (stl/css :item-contents)} [:ul {:class (stl/css :item-contents)}
(let [components-count (count (or (ctkl/components-seq (:data library)) [])) (let [components-count (count (or (ctkl/components-seq (:data library)) []))
@ -230,24 +241,23 @@
:type "button" :type "button"
:data-library-id (dm/str id) :data-library-id (dm/str id)
:on-click unlink-library} :on-click unlink-library}
i/detach]])]] detach-icon]])]]
[:div {:class (stl/css :section)} [:div {:class (stl/css :shared-section)}
[:& title-bar {:collapsable false [:& title-bar {:collapsable false
:title (tr "workspace.libraries.shared-libraries") :title (tr "workspace.libraries.shared-libraries")
:class (stl/css :title-spacing-lib)}] :class (stl/css :title-spacing-lib)}]
[:div {:class (stl/css :libraries-search)}
[:& search-bar {:on-change change-search-term [:& search-bar {:on-change change-search-term
:value search-term :value search-term
:placeholder (tr "workspace.libraries.search-shared-libraries") :placeholder (tr "workspace.libraries.search-shared-libraries")
:icon (mf/html [:span {:class (stl/css :search-icon)} i/search])}]] :icon (mf/html [:span {:class (stl/css :search-icon)} i/search])}]
(if (seq shared-libraries) (if (seq shared-libraries)
[:div {:class (stl/css :section-list-shared)} [:div {:class (stl/css :section-list-shared)}
(for [{:keys [id name] :as library} shared-libraries] (for [{:keys [id name] :as library} shared-libraries]
[:div {:class (stl/css :section-list-item) [:div {:class (stl/css :section-list-item)
:key (dm/str id)} :key (dm/str id)}
[:div [:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} name] [:div {:class (stl/css :item-name)} name]
[:ul {:class (stl/css :item-contents)} [:ul {:class (stl/css :item-contents)}
(let [components-count (dm/get-in library [:library-summary :components :count] 0) (let [components-count (dm/get-in library [:library-summary :components :count] 0)
@ -261,7 +271,7 @@
[:button {:class (stl/css :item-button-shared) [:button {:class (stl/css :item-button-shared)
:data-library-id (dm/str id) :data-library-id (dm/str id)
:on-click link-library} :on-click link-library}
i/add]])] add-icon]])]
(when (empty? shared-libraries) (when (empty? shared-libraries)
[:div {:class (stl/css :section-list-empty)} [:div {:class (stl/css :section-list-empty)}
@ -270,7 +280,10 @@
(tr "workspace.libraries.loading") (tr "workspace.libraries.loading")
(str/empty? search-term) (str/empty? search-term)
(tr "workspace.libraries.no-shared-libraries-available") [:*
[:span {:class (stl/css :empty-state-icon)}
library-icon]
(tr "workspace.libraries.no-shared-libraries-available")]
:else :else
(tr "workspace.libraries.no-matches-for" search-term))]))]])) (tr "workspace.libraries.no-matches-for" search-term))]))]]))
@ -348,9 +361,12 @@
(dwl/set-updating-library true) (dwl/set-updating-library true)
(dwl/sync-file file-id library-id))))))] (dwl/sync-file file-id library-id))))))]
[:div {:class (stl/css :section)} [:div {:class (stl/css :updates-content)}
[:div {:class (stl/css :update-section)}
(if (empty? libs-assets) (if (empty? libs-assets)
[:div {:class (stl/css :section-list-empty)} [:div {:class (stl/css :section-list-empty)}
[:span {:class (stl/css :empty-state-icon)}
library-icon]
(tr "workspace.libraries.no-libraries-need-sync")] (tr "workspace.libraries.no-libraries-need-sync")]
[:* [:*
[:div {:class (stl/css :section-title)} (tr "workspace.libraries.library-updates")] [:div {:class (stl/css :section-title)} (tr "workspace.libraries.library-updates")]
@ -361,7 +377,7 @@
{:keys [components colors typographies]}] libs-assets] {:keys [components colors typographies]}] libs-assets]
[:div {:class (stl/css :section-list-item) [:div {:class (stl/css :section-list-item)
:key (dm/str id)} :key (dm/str id)}
[:div [:div {:class (stl/css :item-content)}
[:div {:class (stl/css :item-name)} name] [:div {:class (stl/css :item-name)} name]
[:ul {:class (stl/css :item-contents)} (describe-library [:ul {:class (stl/css :item-contents)} (describe-library
(count components) (count components)
@ -385,6 +401,7 @@
root-shape (ctf/get-component-root (:data library) component)] root-shape (ctf/get-component-root (:data library) component)]
[:* [:*
[:& component-svg {:root-shape root-shape [:& component-svg {:root-shape root-shape
:class (stl/css :component-svg)
:objects (:objects component)}] :objects (:objects component)}]
[:div {:class (stl/css :name-block)} [:div {:class (stl/css :name-block)}
[:span {:class (stl/css :item-name) [:span {:class (stl/css :item-name)
@ -393,7 +410,7 @@
(when (:components exceeded) (when (:components exceeded)
[:div {:class (stl/css :libraries-updates-item) [:div {:class (stl/css :libraries-updates-item)
:key (uuid/next)} :key (uuid/next)}
[:div {:class (stl/css :name-block.ellipsis)} [:div {:class (stl/css :name-block :ellipsis)}
[:span {:class (stl/css :item-name)} "(...)"]]])]) [:span {:class (stl/css :item-name)} "(...)"]]])])
(when-not (empty? colors) (when-not (empty? colors)
@ -445,10 +462,9 @@
(when (or (pos? (:components exceeded)) (when (or (pos? (:components exceeded))
(pos? (:colors exceeded)) (pos? (:colors exceeded))
(pos? (:typographies exceeded))) (pos? (:typographies exceeded)))
[:div {:class (stl/css :libraries-updates-see-all)}
[:& lb/link-button {:on-click see-all-assets [:& lb/link-button {:on-click see-all-assets
:value (str "(" (tr "workspace.libraries.update.see-all-changes") ")")}]])])]])])) :class (stl/css :libraries-updates-see-all)
:value (str "(" (tr "workspace.libraries.update.see-all-changes") ")")}])])]])]]))
(mf/defc libraries-dialog (mf/defc libraries-dialog
{::mf/register modal/components {::mf/register modal/components
::mf/register-as :libraries-dialog} ::mf/register-as :libraries-dialog}
@ -491,28 +507,24 @@
[:div {:class (stl/css :modal-overlay) :on-click close-dialog-outside} [:div {:class (stl/css :modal-overlay) :on-click close-dialog-outside}
[:div {:class (stl/css :modal-dialog)} [:div {:class (stl/css :modal-dialog)}
[:button {:class (stl/css :close) [:button {:class (stl/css :close-btn)
:on-click close-dialog} :on-click close-dialog}
i/close] close-icon]
[:div {:class (stl/css :modal-title)} [:div {:class (stl/css :modal-title)}
"Libraries"] (tr "workspace.libraries.libraries")]
[:div {:class (stl/css :modal-content)}
[:div {:class (stl/css :libraries-header)}
[:& tab-container [:& tab-container
{:on-change-tab on-tab-change {:on-change-tab on-tab-change
:selected selected-tab :selected selected-tab
:collapsable false} :collapsable false}
[:& tab-element {:id :libraries :title (tr "workspace.libraries.libraries")} [:& tab-element {:id :libraries :title (tr "workspace.libraries.libraries")}
[:div {:class (stl/css :libraries-content)}
[:& libraries-tab {:file-id file-id [:& libraries-tab {:file-id file-id
:shared? shared? :shared? shared?
:linked-libraries libraries :linked-libraries libraries
:shared-libraries shared-libraries}]]] :shared-libraries shared-libraries}]]
[:& tab-element {:id :updates :title (tr "workspace.libraries.updates")} [:& tab-element {:id :updates :title (tr "workspace.libraries.updates")}
[:div {:class (stl/css :updates-content)}
[:& updates-tab {:file-id file-id [:& updates-tab {:file-id file-id
:file-data file-data :file-data file-data
:libraries libraries}]]]]]]]])) :libraries libraries}]]]]]))
(mf/defc v2-info-dialog (mf/defc v2-info-dialog
{::mf/register modal/components {::mf/register modal/components
@ -526,7 +538,8 @@
[:div {:class (stl/css :modal-overlay)} [:div {:class (stl/css :modal-overlay)}
[:div {:class (stl/css :modal-dialog :modal-v2-info)} [:div {:class (stl/css :modal-dialog :modal-v2-info)}
[:div {:class (stl/css :modal-title)} "IMPORTANT INFORMATION ABOUT NEW COMPONENTS"] [:div {:class (stl/css :modal-v2-title)}
"IMPORTANT INFORMATION ABOUT NEW COMPONENTS"]
[:div {:class (stl/css :modal-content)} [:div {:class (stl/css :modal-content)}
[:div {:class (stl/css :info-content)} [:div {:class (stl/css :info-content)}
[:div {:class (stl/css :info-block)} [:div {:class (stl/css :info-block)}

View file

@ -6,84 +6,86 @@
@import "refactor/common-refactor.scss"; @import "refactor/common-refactor.scss";
// Library modal
.modal-overlay { .modal-overlay {
@include flexCenter; @extend .modal-overlay-base;
position: fixed;
left: 0;
top: 0;
height: 100%;
width: 100%;
z-index: $z-index-modal;
background-color: var(--overlay-color);
} }
.modal-dialog { .modal-dialog {
position: relative; @extend .modal-container-base;
display: grid;
grid-template-rows: auto 1fr;
height: $s-520; height: $s-520;
max-height: 100%; max-height: $s-520;
width: $s-712; width: $s-712;
padding: $s-32; max-width: $s-712;
border-radius: $br-10; }
background-color: var(--modal-background-color);
.close { .close-btn {
@extend .button-tertiary; @extend .modal-close-btn-base;
position: absolute; }
top: $s-8;
right: $s-8; .close-icon {
width: $s-28;
height: $s-32;
border-radius: $br-8;
svg {
@extend .button-icon; @extend .button-icon;
stroke: var(--icon-foreground); stroke: var(--icon-foreground);
} }
}
.modal-title { .modal-title {
@include headlineMediumTypography; @include headlineMediumTypography;
margin-bottom: $s-16; margin-block-end: $s-16;
color: var(--modal-title-foreground-color); color: var(--modal-title-foreground-color);
} }
}
.modal-content { // Tabs content
height: 100%;
.libraries-header {
height: 100%;
}
.libraries-content, .libraries-content,
.updates-content { .updates-content {
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
gap: $s-32; gap: $s-32;
padding-top: $s-24;
height: 100%;
max-height: $s-400; max-height: $s-400;
.section { padding-block-start: $s-16;
display: flex; }
flex-direction: column;
height: calc(100% - $s-12); .lib-section,
.update-section,
.shared-section {
display: grid;
grid-template-rows: auto 1fr;
gap: $s-8;
}
.shared-section {
grid-template-rows: auto auto 1fr;
}
.title-spacing-lib { .title-spacing-lib {
margin: 0 0 0 calc(-1 * $s-8); margin: 0 0 0 calc(-1 * $s-8);
} }
.section-list, .section-list,
.section-list-shared { .section-list-shared {
height: 100%; display: grid;
grid-auto-rows: min-content;
gap: $s-8;
max-height: $s-320; max-height: $s-320;
margin-top: $s-12; overflow-y: auto;
overflow: auto; }
.section-list-item { .section-list-item {
display: grid; display: grid;
grid-template-columns: 1fr auto; grid-template-columns: 1fr auto;
column-gap: $s-12; gap: $s-8;
margin-bottom: $s-24;
&:last-child {
margin-bottom: $s-8;
} }
.item-content {
height: fit-content;
}
.item-name { .item-name {
@include bodyLargeTypography; @include bodyLargeTypography;
color: var(--library-name-foreground-color); color: var(--library-name-foreground-color);
} }
.item-publish, .item-publish,
.item-unpublish { .item-unpublish {
@extend .button-primary; @extend .button-primary;
@ -91,108 +93,110 @@
height: $s-32; height: $s-32;
min-width: $s-92; min-width: $s-92;
padding: $s-8 $s-24; padding: $s-8 $s-24;
margin: 0;
border-radius: $br-8; border-radius: $br-8;
} }
.item-unpublish { .item-unpublish {
@extend .button-secondary; @extend .button-secondary;
} }
.item-button, .item-button,
.item-button-shared { .item-button-shared {
@extend .button-secondary; @extend .button-secondary;
padding: $s-8 $s-24;
height: $s-32; height: $s-32;
border-radius: $br-8;
margin-right: $s-2;
padding: $s-8;
width: $s-32; width: $s-32;
margin-left: $s-8; margin-inline-start: $s-2;
svg { margin-inline-end: $s-8;
@extend .button-icon; padding: $s-8;
stroke: var(--icon-foreground);
}
} }
.item-button-icon { .detach-icon,
width: $s-28; .add-icon {
height: $s-28;
svg {
@extend .button-icon; @extend .button-icon;
stroke: var(--icon-foreground); stroke: var(--icon-foreground);
} }
}
}
}
.section-list-shared { .section-list-shared {
max-height: $s-272; max-height: $s-272;
} }
.section-title { .section-title {
@include bodyLargeTypography; @include headlineSmallTypography;
color: var(--modal-title-foreground-color); margin-block-end: $s-12;
margin-bottom: $s-12; color: var(--title-foreground-color);
} }
.libraries-search {
margin: $s-12 0;
.search-icon { .search-icon {
@include flexCenter; @include flexCenter;
padding: 0 0 0 $s-8;
width: $s-20; width: $s-20;
padding: 0 0 0 $s-8;
svg { svg {
@extend .button-icon-small; @extend .button-icon-small;
stroke: var(--icon-foreground); stroke: var(--icon-foreground);
} }
} }
}
// empty state
.section-list-empty { .section-list-empty {
@include bodyLargeTypography; @include bodyMediumTypography;
display: grid;
grid-template-rows: auto 1fr;
justify-items: center;
gap: $s-8;
text-align: center;
height: fit-content;
margin-block: $s-16;
color: var(--modal-title-foreground-color);
}
.empty-state-icon {
@include flexCenter; @include flexCenter;
color: var(--empty-message-foreground-color); width: $s-48;
height: $s-48;
border-radius: $br-circle;
background-color: var(--pill-background-color);
}
svg { .library-icon {
@extend .button-icon-small; @extend .button-icon;
stroke: var(--icon-foreground); stroke: var(--icon-foreground);
width: $s-16; height: $s-32;
height: $s-16; width: $s-32;
}
}
} }
// Update library tab
.libraries-updates-see-all { .libraries-updates-see-all {
@extend .link;
direction: rtl; direction: rtl;
grid-column: span 3; grid-column: span 3;
margin-top: $s-8; margin-block-start: $s-8;
margin-right: $s-8; margin-inline-start: $s-8;
& input {
@extend .link;
margin: 0; margin: 0;
} }
}
}
.updates-content { .updates-content {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
}
.libraries-updates { .libraries-updates {
display: grid; display: grid;
grid-column: span 3; grid-column: span 3;
grid-template-columns: repeat(auto-fill, minmax($s-160, 1fr)); grid-template-columns: repeat(auto-fill, minmax($s-160, 1fr));
grid-gap: $s-24; gap: $s-24;
font-size: $fs-12; margin-block-start: $s-16;
margin-top: $s-16;
.libraries-updates-item {
display: flex;
align-items: center;
color: var(--library-content-foreground-color);
&:not(:first-child) {
margin-top: $s-8;
} }
& svg { .libraries-updates-item {
@include bodyLargeTypography;
display: grid;
grid-template-columns: auto 1fr;
align-items: start;
gap: $s-8;
color: var(--library-content-foreground-color);
}
.component-svg {
background-color: var(--color-canvas); background-color: var(--color-canvas);
border-radius: $br-4; border-radius: $br-4;
border: $s-2 solid transparent; border: $s-2 solid transparent;
@ -202,52 +206,39 @@
min-width: $s-24; min-width: $s-24;
} }
& .name-block { .name-block {
color: var(--gray-20-color); color: var(--library-content-foreground-color);
margin-left: $s-8;
width: $s-168; width: $s-168;
&.ellipsis {
padding-left: calc($s-24 + #{$s-8});
}
} }
& .item-name { .ellipsis {
display: block; padding-inline-start: calc($s-24 + #{$s-8});
}
.item-name {
@include textEllipsis;
margin: 0; margin: 0;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
}
.modal-v2-info {
width: $s-664;
height: fit-content;
.modal-title {
font-size: $fs-18;
}
} }
.item-update { .item-update {
@extend .button-primary; @extend .button-primary;
@include uppercaseTitleTipography; @include headlineSmallTypography;
height: $s-32; height: $s-32;
min-width: $s-92; min-width: $s-92;
padding: $s-8 $s-24; padding: $s-8 $s-24;
margin-inline-end: $s-2;
border-radius: $br-8; border-radius: $br-8;
margin-right: $s-2;
&:disabled { &:disabled {
@extend .button-disabled; @extend .button-disabled;
} }
} }
.item-contents { .item-contents {
@include bodyLargeTypography; @include bodyMediumTypography;
color: var(--library-content-foreground-color); color: var(--library-content-foreground-color);
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin: 0;
} }
.element-count { .element-count {
@ -259,11 +250,23 @@
} }
} }
// Modal Component v2 update
.modal-v2-info {
width: $s-664;
height: fit-content;
}
.modal-v2-title {
@include headlineMediumTypography;
color: var(--modal-title-foreground-color);
}
.info-content { .info-content {
display: grid;
grid-template-rows: repeat(4, 1fr);
margin-top: $s-32; margin-top: $s-32;
display: flex;
flex-direction: column;
gap: $s-24; gap: $s-24;
}
.info-block { .info-block {
display: grid; display: grid;
@ -281,7 +284,6 @@
margin-top: $s-8; margin-top: $s-8;
border-radius: $br-circle; border-radius: $br-circle;
background: $db-quaternary; background: $db-quaternary;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -289,30 +291,31 @@
svg { svg {
width: $s-32; width: $s-32;
height: $s-32; height: $s-32;
fill: $da-primary; fill: var(--icon-foreground-active);
}
}
.info-block-title {
grid-area: title;
font-size: $fs-16;
color: $df-primary;
}
.info-block-content {
grid-area: content;
font-size: $fs-14;
color: $df-secondary;
line-height: 1.2;
} }
} }
.info-block-title {
@include bodyLargeTypography;
grid-area: title;
color: var(--modal-title-foreground-color);
}
.info-block-content {
@include bodyMediumTypography;
grid-area: content;
color: var(--library-content-foreground-color);
}
.info-bottom { .info-bottom {
margin-top: $s-24;
margin-right: $s-8;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin-block-start: $s-24;
margin-inline-end: $s-8;
}
.primary-button { .primary-button {
@extend .button-primary; @extend .button-primary;
@include uppercaseTitleTipography; @include headlineSmallTypography;
padding: $s-0 $s-16; padding: $s-0 $s-16;
} }
}

View file

@ -18,7 +18,6 @@
.path { .path {
@include textEllipsis; @include textEllipsis;
max-width: 90%;
margin-left: $s-2; margin-left: $s-2;
text-transform: initial; text-transform: initial;
color: var(--title-foreground-color-hover); color: var(--title-foreground-color-hover);

View file

@ -21,7 +21,7 @@
shared-libs (mf/deref refs/workspace-libraries)] shared-libs (mf/deref refs/workspace-libraries)]
[:& dropdown {:show show-menu? [:& dropdown {:show show-menu?
:on-close close-menu} :on-close close-menu}
[:ul {:class (stl/css :workspace-context-menu)} [:ul {:class (stl/css :text-context-menu)}
(for [[idx cur-library] (map-indexed vector (vals shared-libs))] (for [[idx cur-library] (map-indexed vector (vals shared-libs))]
(let [typographies (-> cur-library (get-in [:data :typographies]) vals)] (let [typographies (-> cur-library (get-in [:data :typographies]) vals)]
[:li [:li

View file

@ -6,7 +6,7 @@
@import "refactor/common-refactor.scss"; @import "refactor/common-refactor.scss";
.workspace-context-menu { .text-context-menu {
position: absolute; position: absolute;
left: auto; left: auto;
bottom: var(--height); bottom: var(--height);

View file

@ -31,7 +31,7 @@
[:div {:class (stl/css :viewport-actions-container)} [:div {:class (stl/css :viewport-actions-container)}
[:div {:class (stl/css :viewport-actions-title)} [:div {:class (stl/css :viewport-actions-title)}
[:& i18n/tr-html {:tag-name "span" [:& i18n/tr-html {:tag-name "span"
:label "workspace.top-bar.read-only"}]] :label "workspace.top-bar.view-only"}]]
[:button {:class (stl/css :done-btn) [:button {:class (stl/css :done-btn)
:on-click handle-close-view-mode} (tr "workspace.top-bar.read-only.done")]]])) :on-click handle-close-view-mode} (tr "workspace.top-bar.read-only.done")]]]))

View file

@ -5063,8 +5063,8 @@ msgid "workspace.viewport.click-to-close-path"
msgstr "Click to close the path" msgstr "Click to close the path"
#, markdown #, markdown
msgid "workspace.top-bar.read-only" msgid "workspace.top-bar.view-only"
msgstr "**Inspect mode** (View Only)" msgstr "**Inspecting mode** (View Only)"
msgid "workspace.top-bar.read-only.done" msgid "workspace.top-bar.read-only.done"
msgstr "Done" msgstr "Done"

View file

@ -3633,7 +3633,7 @@ msgstr "%s componentes"
#: src/app/main/ui/workspace/libraries.cljs #: src/app/main/ui/workspace/libraries.cljs
msgid "workspace.libraries.file-library" msgid "workspace.libraries.file-library"
msgstr "Biblioteca de este archivo" msgstr "Biblioteca del archivo"
#: src/app/main/ui/workspace/libraries.cljs #: src/app/main/ui/workspace/libraries.cljs
msgid "workspace.libraries.graphics" msgid "workspace.libraries.graphics"
@ -5148,7 +5148,7 @@ msgid "workspace.viewport.click-to-close-path"
msgstr "Pulsar para cerrar la ruta" msgstr "Pulsar para cerrar la ruta"
#, markdown #, markdown
msgid "workspace.top-bar.read-only" msgid "workspace.top-bar.view-only"
msgstr "**Modo inspección** (View only)" msgstr "**Modo inspección** (View only)"
msgid "workspace.top-bar.read-only.done" msgid "workspace.top-bar.read-only.done"