diff --git a/frontend/resources/styles/common/refactor/basic-rules.scss b/frontend/resources/styles/common/refactor/basic-rules.scss
index acc3d9d52f..68593d6348 100644
--- a/frontend/resources/styles/common/refactor/basic-rules.scss
+++ b/frontend/resources/styles/common/refactor/basic-rules.scss
@@ -746,20 +746,6 @@
}
}
-.empty-icon {
- @include flexCenter;
- height: $s-48;
- width: $s-48;
- border-radius: $br-circle;
- background-color: var(--empty-message-background-color);
- svg {
- @extend .button-icon;
- height: $s-28;
- width: $s-28;
- stroke: var(--empty-message-foreground-color);
- }
-}
-
.attr-title {
div {
margin-left: 0;
diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs
index 05e904d8cb..129bf9fc2e 100644
--- a/frontend/src/app/main/ui/ds.cljs
+++ b/frontend/src/app/main/ui/ds.cljs
@@ -32,6 +32,7 @@
[app.main.ui.ds.product.avatar :refer [avatar*]]
[app.main.ui.ds.product.cta :refer [cta*]]
[app.main.ui.ds.product.empty-placeholder :refer [empty-placeholder*]]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.main.ui.ds.product.input-with-meta :refer [input-with-meta*]]
[app.main.ui.ds.product.loader :refer [loader*]]
[app.main.ui.ds.product.milestone :refer [milestone*]]
@@ -56,6 +57,7 @@
:HintMessage hint-message*
:InputWithMeta input-with-meta*
:EmptyPlaceholder empty-placeholder*
+ :EmptyState empty-state*
:Loader loader*
:RawSvg raw-svg*
:Select select*
diff --git a/frontend/src/app/main/ui/ds/product/empty_state.cljs b/frontend/src/app/main/ui/ds/product/empty_state.cljs
new file mode 100644
index 0000000000..9a2dff5a15
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/product/empty_state.cljs
@@ -0,0 +1,29 @@
+;; This Source Code Form is subject to the terms of the Mozilla Public
+;; License, v. 2.0. If a copy of the MPL was not distributed with this
+;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
+;;
+;; Copyright (c) KALEIDOS INC
+
+(ns app.main.ui.ds.product.empty-state
+ (:require-macros
+ [app.main.style :as stl])
+ (:require
+ [app.main.ui.ds.foundations.assets.icon :refer [icon* icon-list]]
+ [rumext.v2 :as mf]))
+
+(def ^:private schema:empty-state
+ [:map
+ [:class {:optional true} :string]
+ [:icon [:and :string [:fn #(contains? icon-list %)]]]
+ [:text :string]])
+
+(mf/defc empty-state*
+ {::mf/schema schema:empty-state}
+ [{:keys [class icon text] :rest props}]
+ (let [props (mf/spread-props props {:class [class (stl/css :group)]})]
+ [:> :div props
+ [:div {:class (stl/css :icon-wrapper)}
+ [:> icon* {:icon-id icon
+ :size "l"
+ :class (stl/css :icon)}]]
+ [:div {:class (stl/css :text)} text]]))
diff --git a/frontend/src/app/main/ui/ds/product/empty_state.mdx b/frontend/src/app/main/ui/ds/product/empty_state.mdx
new file mode 100644
index 0000000000..1652d59751
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/product/empty_state.mdx
@@ -0,0 +1,35 @@
+{ /* 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 { Canvas, Meta } from '@storybook/addon-docs/blocks';
+import * as EmptyState from "./empty_state.stories";
+
+
+
+# EmptyState
+
+An indication to the user that there is no data to display in the current view; often includes instructions on what to do next.
+
+
+
+## Technical notes
+
+The icon and the text are mandatory, and a class is optional.
+
+```clj
+[:> empty-state* {:icon i/at
+ :text "This is an empty state"}]
+```
+
+## Usage guidelines (design)
+
+### Where to use
+
+Use in areas of the app where users can add data or elements, but where there is currently no available information.
+
+### Interaction / Behavior
+
+There is no interaction.
diff --git a/frontend/src/app/main/ui/ds/product/empty_state.scss b/frontend/src/app/main/ui/ds/product/empty_state.scss
new file mode 100644
index 0000000000..b0612ecec0
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/product/empty_state.scss
@@ -0,0 +1,36 @@
+// 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
+
+@use "ds/_sizes.scss" as *;
+@use "ds/spacing.scss" as *;
+@use "ds/typography.scss" as t;
+
+.group {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: var(--sp-m);
+}
+
+.icon-wrapper {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ inline-size: $sz-48;
+ block-size: $sz-48;
+}
+
+.icon {
+ color: var(--color-foreground-secondary);
+ inline-size: $sz-32;
+ block-size: $sz-32;
+}
+
+.text {
+ @include t.use-typography("body-small");
+ text-align: center;
+ color: var(--color-foreground-secondary);
+}
diff --git a/frontend/src/app/main/ui/ds/product/empty_state.stories.jsx b/frontend/src/app/main/ui/ds/product/empty_state.stories.jsx
new file mode 100644
index 0000000000..5bdc291656
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/product/empty_state.stories.jsx
@@ -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 * as React from "react";
+import Components from "@target/components";
+
+const { EmptyState } = Components;
+const { icons } = Components.meta;
+
+export default {
+ title: "Product/EmptyState",
+ component: Components.EmptyState,
+ argTypes: {
+ icon: {
+ options: icons,
+ control: { type: "select" },
+ },
+ text: {
+ control: { type: "text" },
+ },
+ },
+ args: {
+ icon: "help",
+ text: "This is an empty state",
+ },
+ render: ({ ...args }) => ,
+};
+
+export const Default = {};
diff --git a/frontend/src/app/main/ui/inspect/right_sidebar.cljs b/frontend/src/app/main/ui/inspect/right_sidebar.cljs
index a91e4f2664..cc260316c9 100644
--- a/frontend/src/app/main/ui/inspect/right_sidebar.cljs
+++ b/frontend/src/app/main/ui/inspect/right_sidebar.cljs
@@ -12,10 +12,11 @@
[app.main.data.event :as ev]
[app.main.refs :as refs]
[app.main.store :as st]
+ [app.main.ui.ds.buttons.button :refer [button*]]
[app.main.ui.ds.controls.select :refer [select*]]
[app.main.ui.ds.foundations.assets.icon :refer [icon*] :as i]
[app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
- [app.main.ui.icons :as deprecated-icon]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.main.ui.inspect.attributes :refer [attributes]]
[app.main.ui.inspect.code :refer [code]]
[app.main.ui.inspect.selection-feedback :refer [resolve-shapes]]
@@ -224,17 +225,14 @@
:shapes shapes
:on-expand handle-expand
:from from}])])]]
- [:div {:class (stl/css :empty)}
- [:div {:class (stl/css :code-info)}
- [:span {:class (stl/css :placeholder-icon)}
- deprecated-icon/code]
- [:span {:class (stl/css :placeholder-label)}
- (tr "inspect.empty.select")]]
- [:div {:class (stl/css :help-info)}
- [:span {:class (stl/css :placeholder-icon)}
- deprecated-icon/help]
- [:span {:class (stl/css :placeholder-label)}
- (tr "inspect.empty.help")]]
- [:button {:class (stl/css :more-info-btn)
- :on-click navigate-to-help}
- (tr "inspect.empty.more-info")]])]))
+
+ [:*
+ [:div {:class (stl/css :empty)}
+ [:> empty-state* {:icon i/code
+ :text (tr "inspect.empty.select")}]
+ [:> empty-state* {:icon i/help
+ :text (tr "inspect.empty.help")}]]
+ [:div {:class (stl/css :empty-button)}
+ [:> button* {:variant "secondary"
+ :on-click navigate-to-help}
+ (tr "inspect.empty.more")]]])]))
diff --git a/frontend/src/app/main/ui/inspect/right_sidebar.scss b/frontend/src/app/main/ui/inspect/right_sidebar.scss
index d3dede9ffa..e0393254cd 100644
--- a/frontend/src/app/main/ui/inspect/right_sidebar.scss
+++ b/frontend/src/app/main/ui/inspect/right_sidebar.scss
@@ -81,36 +81,14 @@
.empty {
display: flex;
flex-direction: column;
- align-items: center;
- gap: $sz-40;
- padding-top: $sz-24;
+ gap: var(--sp-xxxl);
+ margin: var(--sp-xxxl) auto;
+ inline-size: $sz-200;
}
-.code-info,
-.help-info {
- @include deprecated.flexColumn;
- align-items: center;
- justify-content: flex-start;
- gap: var(--sp-m);
- margin-inline-end: var(--sp-s);
-}
-
-.placeholder-icon {
- @extend .empty-icon;
-}
-
-.placeholder-label {
- @include deprecated.bodySmallTypography;
- text-align: center;
- inline-size: px2rem(200);
- color: var(--empty-message-foreground-color);
-}
-
-.more-info-btn {
- @extend .button-secondary;
- @include deprecated.uppercaseTitleTipography;
- block-size: $sz-32;
- padding: var(--sp-s) var(--sp-xxl);
+.empty-button {
+ display: flex;
+ justify-content: center;
}
.inspect-tab-switcher {
diff --git a/frontend/src/app/main/ui/workspace/comments.cljs b/frontend/src/app/main/ui/workspace/comments.cljs
index f08e5fcbb2..4dbfc71c6e 100644
--- a/frontend/src/app/main/ui/workspace/comments.cljs
+++ b/frontend/src/app/main/ui/workspace/comments.cljs
@@ -18,6 +18,7 @@
[app.main.ui.context :as ctx]
[app.main.ui.ds.buttons.icon-button :refer [icon-button*]]
[app.main.ui.ds.foundations.assets.icon :as i]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.main.ui.icons :as deprecated-icon]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
@@ -160,6 +161,5 @@
:key (:page-id tgroup)}])]
[:div {:class (stl/css :thread-group-placeholder)}
- [:span {:class (stl/css :placeholder-icon)} deprecated-icon/comments]
- [:span {:class (stl/css :placeholder-label)}
- (tr "labels.no-comments-available")]])]]))
+ [:> empty-state* {:icon i/comments
+ :text (tr "labels.no-comments-available")}]])]]))
diff --git a/frontend/src/app/main/ui/workspace/comments.scss b/frontend/src/app/main/ui/workspace/comments.scss
index cad6693505..5a7c7e2dd3 100644
--- a/frontend/src/app/main/ui/workspace/comments.scss
+++ b/frontend/src/app/main/ui/workspace/comments.scss
@@ -4,6 +4,7 @@
//
// Copyright (c) KALEIDOS INC
+@use "ds/_sizes.scss" as *;
@use "refactor/common-refactor.scss" as deprecated;
.comments-section {
@@ -128,29 +129,9 @@
}
.thread-group-placeholder {
- @include deprecated.flexColumn;
- align-items: center;
- justify-content: flex-start;
- margin-top: deprecated.$s-36;
-}
-
-.placeholder-icon {
- @include deprecated.flexCenter;
- height: deprecated.$s-48;
- width: deprecated.$s-48;
- border-radius: deprecated.$br-circle;
- background-color: var(--empty-message-background-color);
- svg {
- @extend .button-icon;
- height: deprecated.$s-28;
- width: deprecated.$s-28;
- stroke: var(--empty-message-foreground-color);
- }
-}
-
-.placeholder-label {
- @include deprecated.bodySmallTypography;
- text-align: center;
- width: deprecated.$s-184;
- color: var(--empty-message-foreground-color);
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-xxxl);
+ margin: var(--sp-xxxl) auto;
+ inline-size: $sz-200;
}
diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs
index 5d4524822d..18fd87e7c8 100644
--- a/frontend/src/app/main/ui/workspace/libraries.cljs
+++ b/frontend/src/app/main/ui/workspace/libraries.cljs
@@ -33,6 +33,7 @@
[app.main.ui.ds.buttons.icon-button :refer [icon-button*]]
[app.main.ui.ds.foundations.assets.icon :as i]
[app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.main.ui.hooks :as h]
[app.main.ui.icons :as deprecated-icon]
[app.util.color :as uc]
@@ -49,9 +50,6 @@
(def ^:private add-icon
(deprecated-icon/icon-xref :add (stl/css :add-icon)))
-(def ^:private library-icon
- (deprecated-icon/icon-xref :library (stl/css :library-icon)))
-
(defn- get-library-summary
"Given a library data return a summary representation of this library"
[data]
@@ -493,9 +491,8 @@
[:div {:class (stl/css :update-section)}
(if (empty? libs-assets)
[:div {:class (stl/css :section-list-empty)}
- [:span {:class (stl/css :empty-state-icon)}
- library-icon]
- (tr "workspace.libraries.no-libraries-need-sync")]
+ [:> empty-state* {:icon i/library
+ :text (tr "workspace.libraries.no-libraries-need-sync")}]]
[:*
[:div {:class (stl/css :section-title)} (tr "workspace.libraries.library-updates")]
diff --git a/frontend/src/app/main/ui/workspace/libraries.scss b/frontend/src/app/main/ui/workspace/libraries.scss
index 2cd2a047b2..9776c08bad 100644
--- a/frontend/src/app/main/ui/workspace/libraries.scss
+++ b/frontend/src/app/main/ui/workspace/libraries.scss
@@ -192,7 +192,6 @@
// empty state
.section-list-empty {
- @include t.use-typography("body-medium");
display: grid;
grid-template-rows: auto 1fr;
justify-items: center;
@@ -200,17 +199,6 @@
text-align: center;
height: fit-content;
margin-block: var(--sp-l);
- color: var(--modal-title-foreground-color);
-}
-
-.empty-state-icon {
- display: flex;
- justify-content: center;
- align-items: center;
- width: $sz-48;
- height: $sz-48;
- border-radius: $br-circle;
- background-color: var(--pill-background-color);
}
.library-icon {
diff --git a/frontend/src/app/main/ui/workspace/sidebar/history.cljs b/frontend/src/app/main/ui/workspace/sidebar/history.cljs
index 8e1e473487..0581ff1878 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/history.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/history.cljs
@@ -12,6 +12,8 @@
[app.main.data.workspace.undo :as dwu]
[app.main.refs :as refs]
[app.main.store :as st]
+ [app.main.ui.ds.foundations.assets.icon :as i]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.main.ui.icons :as deprecated-icon]
[app.util.dom :as dom]
[app.util.i18n :refer [tr] :as i18n]
@@ -327,8 +329,8 @@
[:div {:class (stl/css :history-toolbox)}
(if (empty? entries)
[:div {:class (stl/css :history-entry-empty)}
- [:div {:class (stl/css :history-entry-empty-icon)} deprecated-icon/history]
- [:div {:class (stl/css :history-entry-empty-msg)} (tr "workspace.undo.empty")]]
+ [:> empty-state* {:icon i/history
+ :text (tr "workspace.undo.empty")}]]
[:ul {:class (stl/css :history-entries)}
(for [[idx-entry entry] (->> entries (map-indexed vector) reverse)] #_[i (range 0 10)]
[:& history-entry {:key (str "entry-" idx-entry)
diff --git a/frontend/src/app/main/ui/workspace/sidebar/history.scss b/frontend/src/app/main/ui/workspace/sidebar/history.scss
index b9df030fd8..993a2f123a 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/history.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/history.scss
@@ -4,6 +4,7 @@
//
// Copyright (c) KALEIDOS INC
+@use "ds/_sizes.scss" as *;
@use "refactor/common-refactor.scss" as deprecated;
.history-toolbox {
@@ -30,23 +31,11 @@
}
.history-entry-empty {
- @include deprecated.flexCenter;
+ display: flex;
flex-direction: column;
- gap: deprecated.$s-16;
- padding: deprecated.$s-28 deprecated.$s-16;
- text-align: center;
-}
-
-.history-entry-empty-icon {
- @extend .empty-icon;
- svg {
- margin-left: calc(-1 * deprecated.$s-2);
- }
-}
-
-.history-entry-empty-msg {
- @include deprecated.bodySmallTypography;
- color: var(--empty-message-foreground-color);
+ gap: var(--sp-xxxl);
+ margin: var(--sp-xxxl) auto;
+ inline-size: $sz-200;
}
.history-entries {
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
index 9a1a529897..ac8fdc23cf 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
@@ -24,7 +24,8 @@
[app.main.ui.ds.controls.checkbox :refer [checkbox*]]
[app.main.ui.ds.controls.input :refer [input*]]
[app.main.ui.ds.controls.numeric-input :refer [numeric-input*]]
- [app.main.ui.ds.foundations.assets.icon :as i :refer [icon*]]
+ [app.main.ui.ds.foundations.assets.icon :as i]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
[app.util.keyboard :as kbd]
@@ -775,29 +776,11 @@
(when (= (count interactions) 0)
[:div {:class (stl/css :section)}
[:div {:class (stl/css :content)}
- [:div {:class (stl/css :help)}
-
+ [:div {:class (stl/css :empty)}
(when framed-shape?
- [:div {:class (stl/css :help-group)}
- [:div {:class (stl/css :help-icon)}
- [:> icon* {:icon-id i/add
- :size "l"
- :class (stl/css :help-icon-inner)}]]
- [:div {:class (stl/css :help-text)}
- (tr "workspace.options.add-interaction")]])
-
- [:div {:class (stl/css :help-group)}
- [:div {:class (stl/css :help-icon)}
- [:> icon* {:icon-id i/interaction
- :size "l"
- :class (stl/css :help-icon-inner)}]]
- [:div {:class (stl/css :help-text)}
- (tr "workspace.options.select-a-shape")]]
-
- [:div {:class (stl/css :help-group)}
- [:div {:class (stl/css :help-icon)}
- [:> icon* {:icon-id i/play
- :size "l"
- :class (stl/css :help-icon-inner)}]]
- [:div {:class (stl/css :help-text)}
- (tr "workspace.options.use-play-button")]]]]])]))
+ [:> empty-state* {:icon i/add
+ :text (tr "workspace.options.add-interaction")}])
+ [:> empty-state* {:icon i/interaction
+ :text (tr "workspace.options.select-a-shape")}]
+ [:> empty-state* {:icon i/play
+ :text (tr "workspace.options.use-play-button")}]]]])]))
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss
index 62b8930b81..066145fa14 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.scss
@@ -43,40 +43,12 @@
gap: var(--sp-l);
}
-.help {
+.empty {
display: flex;
flex-direction: column;
gap: var(--sp-xxxl);
+ margin: var(--sp-xxxl) auto;
inline-size: $sz-200;
- padding: var(--sp-xxxl) 0;
- margin: 0 auto;
-}
-
-.help-group {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: var(--sp-m);
-}
-
-.help-text {
- @include t.use-typography("body-small");
- text-align: center;
- color: var(--color-foreground-secondary);
-}
-
-.help-icon {
- display: flex;
- justify-content: center;
- align-items: center;
- inline-size: $sz-48;
- block-size: $sz-48;
-}
-
-.help-icon-inner {
- color: var(--color-foreground-secondary);
- inline-size: $sz-32;
- block-size: $sz-32;
}
.interaction-item {
diff --git a/frontend/src/app/main/ui/workspace/sidebar/versions.cljs b/frontend/src/app/main/ui/workspace/sidebar/versions.cljs
index 1fda5b93e9..37edf428cd 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/versions.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/versions.cljs
@@ -19,8 +19,9 @@
[app.main.ui.components.select :refer [select]]
[app.main.ui.dashboard.subscription :refer [get-subscription-type]]
[app.main.ui.ds.buttons.icon-button :refer [icon-button*]]
- [app.main.ui.ds.foundations.assets.icon :refer [icon*] :as i]
+ [app.main.ui.ds.foundations.assets.icon :as i]
[app.main.ui.ds.product.cta :refer [cta*]]
+ [app.main.ui.ds.product.empty-state :refer [empty-state*]]
[app.main.ui.ds.product.milestone :refer [milestone*]]
[app.main.ui.ds.product.milestone-group :refer [milestone-group*]]
[app.util.dom :as dom]
@@ -385,8 +386,9 @@
(cond
(= status :loading)
- [:div {:class (stl/css :versions-entry-empty)}
- [:div {:class (stl/css :versions-entry-empty-msg)} (tr "workspace.versions.loading")]]
+ [:div {:class (stl/css :versions-empty)}
+ [:> empty-state* {:icon i/clock
+ :text (tr "workspace.versions.loading")}]]
(= status :loaded)
[:*
@@ -398,9 +400,9 @@
:icon i/pin}]]
(if (empty? data)
- [:div {:class (stl/css :versions-entry-empty)}
- [:div {:class (stl/css :versions-entry-empty-icon)} [:> icon* {:icon-id i/history}]]
- [:div {:class (stl/css :versions-entry-empty-msg)} (tr "workspace.versions.empty")]]
+ [:div {:class (stl/css :versions-empty)}
+ [:> empty-state* {:icon i/history
+ :text (tr "workspace.versions.empty")}]]
[:ul {:class (stl/css :versions-entries)}
(for [entry entries]
diff --git a/frontend/src/app/main/ui/workspace/sidebar/versions.scss b/frontend/src/app/main/ui/workspace/sidebar/versions.scss
index b602d07590..eb4a736edb 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/versions.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/versions.scss
@@ -4,6 +4,7 @@
//
// Copyright (c) KALEIDOS INC
+@use "ds/_sizes.scss" as *;
@use "ds/typography.scss" as t;
@use "refactor/common-refactor.scss" as deprecated;
@@ -15,21 +16,12 @@
grid-template-rows: auto auto 1fr;
}
-.versions-entry-empty {
- align-items: center;
- color: var(--color-foreground-secondary);
+.versions-empty {
display: flex;
flex-direction: column;
- font-size: deprecated.$fs-12;
- gap: deprecated.$s-8;
- padding: deprecated.$s-16;
-}
-
-.versions-entry-empty-icon {
- background: var(--color-background-tertiary);
- border-radius: 50%;
- padding: deprecated.$s-8;
- display: flex;
+ gap: var(--sp-xxxl);
+ margin: var(--sp-xxxl) auto;
+ inline-size: $sz-200;
}
.version-save-version {
diff --git a/frontend/translations/en.po b/frontend/translations/en.po
index 775deb2de8..029bfd98c2 100644
--- a/frontend/translations/en.po
+++ b/frontend/translations/en.po
@@ -1844,8 +1844,8 @@ msgid "inspect.empty.help"
msgstr "If you want to know more about design inspect visit Penpot's help center"
#: src/app/main/ui/inspect/right_sidebar.cljs:240
-msgid "inspect.empty.more-info"
-msgstr "More info about inspect"
+msgid "inspect.empty.more"
+msgstr "More info"
#: src/app/main/ui/inspect/right_sidebar.cljs:232
msgid "inspect.empty.select"
diff --git a/frontend/translations/es.po b/frontend/translations/es.po
index c0ed714dad..46106f4a89 100644
--- a/frontend/translations/es.po
+++ b/frontend/translations/es.po
@@ -1835,8 +1835,8 @@ msgstr ""
"de Penpot"
#: src/app/main/ui/inspect/right_sidebar.cljs:240
-msgid "inspect.empty.more-info"
-msgstr "Más información sobre la inspección"
+msgid "inspect.empty.more"
+msgstr "Más información"
#: src/app/main/ui/inspect/right_sidebar.cljs:232
msgid "inspect.empty.select"