ui(settings): optimize layout (#2604)

* ui(settings): optimize layout

* ui: fixed width of settings modal

* fix(ui): border color of settings header
pull/2614/head
Charlie 2021-08-11 19:25:19 +08:00 committed by GitHub
parent d8400b389a
commit 7cabee4bf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 332 additions and 164 deletions

View File

@ -37,10 +37,10 @@
:on-change (fn [e]
(reset! email (util/evalue e)))}]]]]
(ui/button
"Submit"
:on-click
(fn []
(user-handler/set-email! @email)))
"Submit"
:on-click
(fn []
(user-handler/set-email! @email)))
[:hr]
@ -61,10 +61,10 @@
:on-change (fn [e]
(reset! cors (util/evalue e)))}]]]]
(ui/button
"Submit"
:on-click
(fn []
(user-handler/set-cors! @cors)))
"Submit"
:on-click
(fn []
(user-handler/set-cors! @cors)))
[:hr]
@ -83,16 +83,19 @@
detail-text]]])
(rum/defcs app-updater < rum/reactive
[state]
[state version]
(let [update-pending? (state/sub :electron/updater-pending?)
{:keys [type payload]} (state/sub :electron/updater)]
[:span.cp__settings-app-updater
(ui/button
(if update-pending? "Checking ..." "Check for updates")
:class "text-sm p-1 mr-3"
:disabled update-pending?
:on-click #(js/window.apis.checkForUpdates false))
[:div.ctls.flex.items-center
(ui/button
(if update-pending? "Checking ..." "Check for updates")
:class "text-sm p-1 mr-3"
:disabled update-pending?
:on-click #(js/window.apis.checkForUpdates false))
[:span version]]
(when-not (or update-pending?
(string/blank? type))
@ -123,21 +126,21 @@
(rum/defc delete-account-confirm
[close-fn]
(rum/with-context [[t] i18n/*tongue-context*]
[:div
(ui/admonition
:important
[:p.text-gray-700 (t :user/delete-account-notice)])
[:div.mt-5.sm:mt-4.sm:flex.sm:flex-row-reverse
[:span.flex.w-full.rounded-md.sm:ml-3.sm:w-auto
[:button.inline-flex.justify-center.w-full.rounded-md.border.border-transparent.px-4.py-2.bg-indigo-600.text-base.leading-6.font-medium.text-white.shadow-sm.hover:bg-indigo-500.focus:outline-none.focus:border-indigo-700.focus:shadow-outline-indigo.transition.ease-in-out.duration-150.sm:text-sm.sm:leading-5
{:type "button"
:on-click user-handler/delete-account!}
(t :user/delete-account)]]
[:span.mt-3.flex.w-full.rounded-md.sm:mt-0.sm:w-auto
[:button.inline-flex.justify-center.w-full.rounded-md.border.border-gray-300.px-4.py-2.bg-white.text-base.leading-6.font-medium.text-gray-700.shadow-sm.hover:text-gray-500.focus:outline-none.focus:border-blue-300.focus:shadow-outline-blue.transition.ease-in-out.duration-150.sm:text-sm.sm:leading-5
{:type "button"
:on-click close-fn}
"Cancel"]]]]))
[:div
(ui/admonition
:important
[:p.text-gray-700 (t :user/delete-account-notice)])
[:div.mt-5.sm:mt-4.sm:flex.sm:flex-row-reverse
[:span.flex.w-full.rounded-md.sm:ml-3.sm:w-auto
[:button.inline-flex.justify-center.w-full.rounded-md.border.border-transparent.px-4.py-2.bg-indigo-600.text-base.leading-6.font-medium.text-white.shadow-sm.hover:bg-indigo-500.focus:outline-none.focus:border-indigo-700.focus:shadow-outline-indigo.transition.ease-in-out.duration-150.sm:text-sm.sm:leading-5
{:type "button"
:on-click user-handler/delete-account!}
(t :user/delete-account)]]
[:span.mt-3.flex.w-full.rounded-md.sm:mt-0.sm:w-auto
[:button.inline-flex.justify-center.w-full.rounded-md.border.border-gray-300.px-4.py-2.bg-white.text-base.leading-6.font-medium.text-gray-700.shadow-sm.hover:text-gray-500.focus:outline-none.focus:border-blue-300.focus:shadow-outline-blue.transition.ease-in-out.duration-150.sm:text-sm.sm:leading-5
{:type "button"
:on-click close-fn}
"Cancel"]]]]))
(rum/defc outdenting-hint
[]
@ -149,16 +152,16 @@
[:a.text-sm
{:target "_blank" :href "https://discuss.logseq.com/t/whats-your-preferred-outdent-behavior-the-direct-one-or-the-logical-one/978"}
"→ Learn more"]]
[:img {:src "https://discuss.logseq.com/uploads/default/original/1X/e8ea82f63a5e01f6d21b5da827927f538f3277b9.gif"
:width 500
[:img {:src "https://discuss.logseq.com/uploads/default/original/1X/e8ea82f63a5e01f6d21b5da827927f538f3277b9.gif"
:width 500
:height 500}]]])
(defn edit-config-edn []
(rum/with-context [[t] i18n/*tongue-context*]
[:div.text-sm
[:a {:href (rfe/href :file {:path (config/get-config-path)})
:on-click #(js/setTimeout (fn [] (ui-handler/toggle-settings-modal!)))}
(t :settings-page/edit-config-edn)]]))
[:div.text-sm
[:a.text-xs {:href (rfe/href :file {:path (config/get-config-path)})
:on-click #(js/setTimeout (fn [] (ui-handler/toggle-settings-modal!)))}
(t :settings-page/edit-config-edn)]]))
(defn show-brackets-row [t show-brackets?]
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
@ -173,15 +176,37 @@
[:div {:style {:text-align "right"}}
(ui/keyboard-shortcut (shortcut-helper/gen-shortcut-seq :ui/toggle-brackets))]])
(rum/defcs current-graph
[state t]
(when-let [current-repo (state/sub :git/current-repo)]
(let [repo-list (state/sub [:me :repos])]
[:div.it.sm:grid.sm:grid-cols-5.sm:gap-4.sm:items-start.sm:grid-rows-1
[:label.block.text-sm.font-medium.leading-5.opacity-70.sm:col-span-1
{:for "input_current_graph"}
(t :settings-page/current-graph)]
[:div.mt-1.sm:mt-0.sm:col-span-4
[:div.max-w-lg.rounded-md
[:select#input_current_graph.form-select.is-small
{:value current-repo
:disabled true
:on-change #()}
(for [it repo-list]
(when-let [url (and (not= (:url it) "local") (:url it))]
[:option {:key url :value url} (util/node-path.basename url)]))]
[:div.inline-flex.items-center.pl-5 (edit-config-edn)]]]])))
(defn language-row [t preferred-language]
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
[:div.it.sm:grid.sm:grid-cols-5.sm:gap-4.sm:items-start
[:label.block.text-sm.font-medium.leading-5.opacity-70
{:for "preferred_language"}
(t :language)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.mt-1.sm:mt-0.sm:col-span-4
[:div.max-w-lg.rounded-md
[:select.form-select.is-small
{:value preferred-language
{:value preferred-language
:on-change (fn [e]
(let [lang-code (util/evalue e)]
(state/set-preferred-language! lang-code)
@ -192,11 +217,11 @@
[:option {:key lang-code :value lang-code} lang-label]))]]]])
(defn theme-modes-row [t switch-theme system-theme? dark?]
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4
[:div.it.sm:grid.sm:grid-cols-5.sm:gap-4
[:label.block.text-sm.font-medium.leading-5.opacity-70
{:for "toggle_theme"}
(t :right-side-bar/switch-theme (string/capitalize switch-theme))]
[:div.flex.flex-row.mt-1.sm:mt-0.sm:col-span-1
[:div.flex.flex-row.mt-1.sm:mt-0.sm:col-span-4
[:div.rounded-md.sm:max-w-xs
[:ul.theme-modes-options
@ -205,10 +230,10 @@
[:li {:on-click (partial state/use-theme-mode! "dark")
:class (classnames [{:active (and (not system-theme?) dark?)}])} [:i.mode-dark] [:strong "dark"]]
[:li {:on-click (partial state/use-theme-mode! "system")
:class (classnames [{:active system-theme?}])} [:i.mode-system] [:strong "system"]]]]]
:class (classnames [{:active system-theme?}])} [:i.mode-system] [:strong "system"]]]]
[:div {:style {:text-align "right"}}
(ui/keyboard-shortcut (shortcut-helper/gen-shortcut-seq :ui/toggle-theme))]])
[:div.pl-16
(ui/keyboard-shortcut (shortcut-helper/gen-shortcut-seq :ui/toggle-theme))]]])
(defn file-format-row [t preferred-format]
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
@ -218,7 +243,7 @@
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md
[:select.form-select.is-small
{:value (name preferred-format)
{:value (name preferred-format)
:on-change (fn [e]
(let [format (-> (util/evalue e)
(string/lower-case)
@ -235,14 +260,14 @@
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md
[:select.form-select.is-small
{:value preferred-date-format
{:value preferred-date-format
:on-change (fn [e]
(let [format (util/evalue e)]
(when-not (string/blank? format)
(config-handler/set-config! :journal/page-title-format format)
(notification/show!
[:div "You need to re-index your graph to make the change works"]
:success)
[:div "You need to re-index your graph to make the change works"]
:success)
(state/close-modal!)
(route-handler/redirect! {:to :repos}))))}
(for [format (sort (date/journal-title-formatters))]
@ -256,7 +281,7 @@
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md
[:select.form-select.is-small
{:value (name preferred-workflow)
{:value (name preferred-workflow)
:on-change (fn [e]
(-> (util/evalue e)
string/lower-case
@ -270,10 +295,10 @@
(defn outdenting-row [t logical-outdenting?]
(toggle "preferred_outdenting"
[(t :settings-page/preferred-outdenting)
(ui/tippy {:html (outdenting-hint)
:class "tippy-hover ml-2"
(ui/tippy {:html (outdenting-hint)
:class "tippy-hover ml-2"
:interactive true
:disabled false}
:disabled false}
(svg/info))]
logical-outdenting?
config-handler/toggle-logical-outdenting!))
@ -329,10 +354,10 @@
[:div.max-w-lg.rounded-md.sm:max-w-xs
[:input#home-default-page.form-input.is-small.transition.duration-150.ease-in-out
{:default-value (state/sub-default-home-page)
:on-blur update-home-page
:on-key-press (fn [e]
(when (= "Enter" (util/ekey e))
(update-home-page e)))}]]]])])
:on-blur update-home-page
:on-key-press (fn [e]
(when (= "Enter" (util/ekey e))
(update-home-page e)))}]]]])])
(defn enable-all-pages-public-row [t enable-all-pages-public?]
(toggle "all pages public"
@ -358,21 +383,22 @@
(let [value (not enable-encryption?)]
(config-handler/set-config! :feature/enable-encryption? value)))))
(defn keyboard-shortcuts-row [t]
(rum/defc keyboard-shortcuts-row
[t]
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
[:label.block.text-sm.font-medium.leading-5.opacity-70
{:for "customize_shortcuts"}
(t :settings-page/customize-shortcuts)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div
(ui/button
(t :settings-page/shortcut-settings)
:class "text-sm p-1"
:style {:margin-top "0px"}
:on-click
(fn []
(state/close-settings!)
(route-handler/redirect! {:to :shortcut-setting})))]]])
(let [h (fn []
(state/close-settings!)
(route-handler/redirect! {:to :shortcut-setting}))]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div
(ui/button
(t :settings-page/shortcut-settings)
:class "text-sm p-1"
:style {:margin-top "0px"}
:on-click h)]])])
(defn zotero-settings-row [t]
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
@ -382,13 +408,13 @@
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div
(ui/button
"Zotero settings"
:class "text-sm p-1"
:style {:margin-top "0px"}
:on-click
(fn []
(state/close-settings!)
(route-handler/redirect! {:to :zotero-setting})))]]])
"Zotero settings"
:class "text-sm p-1"
:style {:margin-top "0px"}
:on-click
(fn []
(state/close-settings!)
(route-handler/redirect! {:to :zotero-setting})))]]])
(defn auto-push-row [t current-repo enable-git-auto-push?]
(when (string/starts-with? current-repo "https://")
@ -404,28 +430,29 @@
(t :settings-page/disable-sentry)
(not instrument-disabled?)
(fn [] (instrument/disable-instrument
(not instrument-disabled?)))
(not instrument-disabled?)))
[:span.text-sm.opacity-50 "Logseq will never collect your local graph database or sell your data."]))
(defn clear-cache-row [t]
[:div.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center.sm:pt-5
[:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center.sm:pt-5
[:label.block.text-sm.font-medium.leading-5.opacity-70
{:for "clear_cache"}
(t :settings-page/clear-cache)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md.sm:max-w-xs
(ui/button
(t :settings-page/clear)
:class "text-sm p-1"
:on-click handler/clear-cache!)]]])
(t :settings-page/clear)
:class "text-sm p-1"
:on-click handler/clear-cache!)]]])
(defn version-row [t version]
[:div.it.app-updater.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start
[:div.it.app-updater.sm:grid.sm:grid-cols-5.sm:gap-4.sm:items-center
[:label.block.text-sm.font-medium.leading-5.opacity-70
(t :settings-page/current-version)]
[:div.wrap.sm:mt-0.sm:col-span-2
(when (util/electron?) (app-updater))
[:span.ver version]]])
[:div.wrap.sm:mt-0.sm:col-span-4
(if (util/electron?)
(app-updater version)
[:span.ver version])]])
(defn developer-mode-row [t developer-mode?]
(toggle "developer_mode"
@ -439,8 +466,11 @@
(js/logseq.api.relaunch)))))
[:div.text-sm.opacity-50 (t :settings-page/developer-mode-desc)]))
(rum/defcs settings < rum/reactive
[]
(rum/defcs settings
< (rum/local :general ::active)
rum/reactive
[state]
(let [preferred-format (state/get-preferred-format)
preferred-date-format (state/get-date-formatter)
preferred-workflow (state/get-preferred-workflow)
@ -463,81 +493,108 @@
theme (state/sub :ui/theme)
dark? (= "dark" theme)
system-theme? (state/sub :ui/system-theme?)
switch-theme (if dark? "white" "dark")]
(rum/with-context [[t] i18n/*tongue-context*]
switch-theme (if dark? "white" "dark")
*active (::active state)]
(rum/with-context
[[t] i18n/*tongue-context*]
[:div#settings.cp__settings-main
[:div.panel-wrap
[:header
[:h1.title (t :settings)]]
(when current-repo
[[:div.panel-wrap
(edit-config-edn)]])
[:div.cp__settings-inner.md:flex
[:hr]
[:aside.md:w-40
[:ul
(for [[label text icon] [[:general (t :settings-page/tab-general) (svg/adjustments 16)]
[:editor (t :settings-page/tab-editor) (svg/icon-editor 16)]
[:shortcuts (t :settings-page/tab-shortcuts) (svg/icon-cmd 18)]
[:advanced (t :settings-page/tab-advanced) (svg/icon-cli 16)]]]
[:div.panel-wrap
(theme-modes-row t switch-theme system-theme? dark?)
(language-row t preferred-language)
(file-format-row t preferred-format)
(date-format-row t preferred-date-format)
(workflow-row t preferred-workflow)
;; (enable-block-timestamps-row t enable-block-timestamps?)
(show-brackets-row t show-brackets?)
(outdenting-row t logical-outdenting?)
(tooltip-row t enable-tooltip?)
(timetracking-row t enable-timetracking?)
(journal-row t enable-journals?)
(enable-all-pages-public-row t enable-all-pages-public?)
(encryption-row t enable-encryption?)
(keyboard-shortcuts-row t)
(zotero-settings-row t)
(auto-push-row t current-repo enable-git-auto-push?)]
[:li
{:class (util/classnames [{:active (= label @*active)}])
:on-click #(reset! *active label)}
[:hr] ;; Outside of panel wrap so that it is wider
[:a.flex.items-center
[[:i.flex.items-center icon] [:strong text]]]])]]
[:div.panel-wrap
(clear-cache-row t)
(version-row t version)
(usage-diagnostics-row t instrument-disabled?)
(developer-mode-row t developer-mode?)
[:article
(when logged?
[:div
[:div.mt-6.sm:mt-5.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center.sm:pt-5
[:label.block.text-sm.font-medium.leading-5.sm:mt-px..opacity-70
{:for "cors"}
(t :settings-page/custom-cors-proxy-server)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md.sm:max-w-xs
[:input#pat.form-input.is-small.transition.duration-150.ease-in-out
{:default-value cors-proxy
:on-blur (fn [event]
(when-let [server (util/evalue event)]
(user-handler/set-cors! server)
(notification/show! "Custom CORS proxy updated successfully!" :success)))
:on-key-press (fn [event]
(let [k (gobj/get event "key")]
(if (= "Enter" k)
(case @*active
:general
[:div.panel-wrap.is-general
(version-row t version)
(current-graph t)
(language-row t preferred-language)
(theme-modes-row t switch-theme system-theme? dark?)]
:editor
[:div.panel-wrap.is-editor
(file-format-row t preferred-format)
(date-format-row t preferred-date-format)
(workflow-row t preferred-workflow)
;; (enable-block-timestamps-row t enable-block-timestamps?)
(show-brackets-row t show-brackets?)
(outdenting-row t logical-outdenting?)
(tooltip-row t enable-tooltip?)
(timetracking-row t enable-timetracking?)
(journal-row t enable-journals?)
(enable-all-pages-public-row t enable-all-pages-public?)
(encryption-row t enable-encryption?)
(zotero-settings-row t)
(auto-push-row t current-repo enable-git-auto-push?)]
:shortcuts
[:div.panel-wrap
(keyboard-shortcuts-row t)]
:advanced
[:div.panel-wrap.is-advanced
(clear-cache-row t)
(usage-diagnostics-row t instrument-disabled?)
(developer-mode-row t developer-mode?)
(when logged?
[:div
[:div.mt-6.sm:mt-5.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center.sm:pt-5
[:label.block.text-sm.font-medium.leading-5.sm:mt-px..opacity-70
{:for "cors"}
(t :settings-page/custom-cors-proxy-server)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md.sm:max-w-xs
[:input#pat.form-input.is-small.transition.duration-150.ease-in-out
{:default-value cors-proxy
:on-blur (fn [event]
(when-let [server (util/evalue event)]
(user-handler/set-cors! server)
(notification/show! "Custom CORS proxy updated successfully!" :success)))))}]]]]
(ui/admonition
:important
[:p (t :settings-page/dont-use-other-peoples-proxy-servers)
[:a {:href "https://github.com/isomorphic-git/cors-proxy"
:target "_blank"}
"https://github.com/isomorphic-git/cors-proxy"]])])
(notification/show! "Custom CORS proxy updated successfully!" :success)))
:on-key-press (fn [event]
(let [k (gobj/get event "key")]
(if (= "Enter" k)
(when-let [server (util/evalue event)]
(user-handler/set-cors! server)
(notification/show! "Custom CORS proxy updated successfully!" :success)))))}]]]]
(ui/admonition
:important
[:p (t :settings-page/dont-use-other-peoples-proxy-servers)
[:a {:href "https://github.com/isomorphic-git/cors-proxy"
:target "_blank"}
"https://github.com/isomorphic-git/cors-proxy"]])])
(when logged?
[:div
[:hr]
[:div.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center.sm:pt-5
[:label.block.text-sm.font-medium.leading-5.opacity-70.text-red-600.dark:text-red-400
{:for "delete account"}
(t :user/delete-account)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md.sm:max-w-xs
(ui/button (t :user/delete-your-account)
:on-click (fn []
(ui-handler/toggle-settings-modal!)
(js/setTimeout #(state/set-modal! delete-account-confirm))))]]]])]])))
(when logged?
[:div
[:hr]
[:div.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-center.sm:pt-5
[:label.block.text-sm.font-medium.leading-5.opacity-70.text-red-600.dark:text-red-400
{:for "delete account"}
(t :user/delete-account)]
[:div.mt-1.sm:mt-0.sm:col-span-2
[:div.max-w-lg.rounded-md.sm:max-w-xs
(ui/button (t :user/delete-your-account)
:on-click (fn []
(ui-handler/toggle-settings-modal!)
(js/setTimeout #(state/set-modal! delete-account-confirm))))]]]])]
nil)]]])))

View File

@ -1,16 +1,77 @@
.cp__settings {
> h1.title {
margin-bottom: 0;
}
&-main {
hr {
margin: 1rem 0;
opacity: .5;
&-main {
> header {
padding: 10px;
padding-top: 0;
border-bottom: 1px solid var(--ls-quaternary-background-color);
h1 {
font-size: 22px;
margin: 0;
}
}
}
&-inner {
> aside {
border-right: 1px solid var(--ls-quaternary-background-color);
ul {
padding: 12px;
padding-left: 5px;
margin: 0;
> li {
list-style: none;
padding: 0;
margin: 5px 0;
border-radius: 4px;
> a {
padding: 10px;
user-select: none;
color: var(--ls-primary-text-color);
> i {
width: 20px;
height: 20px;
overflow: hidden;
opacity: .6;
}
> strong {
font-size: 14px;
font-weight: normal;
padding-left: 5px;
opacity: .9;
}
}
&.active {
background-color: var(--ls-quaternary-background-color);
i {
opacity: 1;
}
}
}
}
}
> article {
flex: 1;
padding: 0 12px 12px;
max-height: 70vh;
overflow: auto;
}
.panel-wrap {
padding: 0 12px;
padding: 12px;
@screen sm {
width: 600px;
}
> .it {
margin-bottom: 0;
@ -37,6 +98,7 @@
padding-top: 15px;
align-items: start;
> .wrap {
display: block;
@ -48,13 +110,27 @@
}
.form-select, .form-input {
width: 68%;
width: 55%;
display: inline-block;
}
&:first-of-type {
padding-top: 14px;
}
}
&.is-general {
> .it {
margin-bottom: 8px;
}
}
&.is-advanced {
> .it {
margin-bottom: 8px;
}
}
}
.admonitionblock {
@ -118,7 +194,10 @@
position: relative;
margin-bottom: -5px;
button.check-update {
.ctls {
position: relative;
top: -8px;
&:disabled {
cursor: progress;
}
@ -126,8 +205,9 @@
.update-state {
padding: 15px;
background-color: var(--ls-secondary-background-color);
background-color: var(--ls-quaternary-background-color);
border-radius: 4px;
margin-bottom: -8px;
> p {
margin: 0;
@ -145,7 +225,7 @@
margin-right: 2px;
}
&:hover {
&:hover {
text-decoration: underline;
}
}

View File

@ -619,7 +619,24 @@
[:path {:d "M512 981.333333C253.866667 981.333333 42.666667 770.133333 42.666667 512S253.866667 42.666667 512 42.666667s469.333333 211.2 469.333333 469.333333-211.2 469.333333-469.333333 469.333333z m0-844.8c-206.506667 0-375.466667 168.96-375.466667 375.466667 0 206.506667 168.96 375.466667 375.466667 375.466667 206.506667 0 375.466667-168.96 375.466667-375.466667 0-206.506667-168.96-375.466667-375.466667-375.466667z" :p-id "2326" :fill "currentColor"}]
[:path {:d "M512 796.714667a46.08 46.08 0 0 1-46.933333-46.933334v-269.056c0-26.624 20.352-46.933333 46.933333-46.933333 26.581333 0 46.933333 20.309333 46.933333 46.933333v269.056c0 26.624-20.352 46.933333-46.933333 46.933334zM512 364.928a46.08 46.08 0 0 1-46.933333-46.933333V274.218667c0-26.624 20.352-46.933333 46.933333-46.933334 26.581333 0 46.933333 20.309333 46.933333 46.933334v43.776c0 26.624-21.888 46.933333-46.933333 46.933333z" :p-id "2327" :fill "currentColor"}]]))
(defn icon-cmd
([] (icon-cmd 16))
([size]
[:svg {:viewBox "0 0 1024 1024" :width size :height size}
[:path {:d "M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32z m-40 728H184V184h656v656z" :fill "currentColor"}]
[:path {:d "M370.8 554.4c-54.6 0-98.8 44.2-98.8 98.8s44.2 98.8 98.8 98.8 98.8-44.2 98.8-98.8v-42.4h84.7v42.4c0 54.6 44.2 98.8 98.8 98.8s98.8-44.2 98.8-98.8-44.2-98.8-98.8-98.8h-42.4v-84.7h42.4c54.6 0 98.8-44.2 98.8-98.8 0-54.6-44.2-98.8-98.8-98.8s-98.8 44.2-98.8 98.8v42.4h-84.7v-42.4c0-54.6-44.2-98.8-98.8-98.8S272 316.2 272 370.8s44.2 98.8 98.8 98.8h42.4v84.7h-42.4z m42.4 98.8c0 23.4-19 42.4-42.4 42.4s-42.4-19-42.4-42.4 19-42.4 42.4-42.4h42.4v42.4z m197.6-282.4c0-23.4 19-42.4 42.4-42.4s42.4 19 42.4 42.4-19 42.4-42.4 42.4h-42.4v-42.4z m0 240h42.4c23.4 0 42.4 19 42.4 42.4s-19 42.4-42.4 42.4-42.4-19-42.4-42.4v-42.4zM469.6 469.6h84.7v84.7h-84.7v-84.7z m-98.8-56.4c-23.4 0-42.4-19-42.4-42.4s19-42.4 42.4-42.4 42.4 19 42.4 42.4v42.4h-42.4z" :fill "currentColor"}]]))
(defn icon-editor
([] (icon-editor 16))
([size]
[:svg {:viewBox "0 0 1024 1024" :width size :height size}
[:path {:d "M934.443 258.719L496.176 696.983h-157.92V539.059L776.523 100.8c6.165-6.165 14.235-9.175 22.315-9.175 8.1 0 16.185 3.01 22.35 9.175l113.255 113.247c6.17 6.17 9.175 14.24 9.175 22.335 0 8.072-3.005 16.17-9.175 22.337z m-135.585-74.977L417.216 565.378v52.65h52.64l381.642-381.647-52.64-52.639z m-289.519 39.485H180.337v631.676h631.681V525.899c0-21.79 17.665-39.475 39.48-39.475 21.805 0 39.48 17.685 39.48 39.475v355.324c0 29.075-23.57 52.645-52.64 52.645H154.017c-29.07 0-52.64-23.57-52.64-52.645V196.902c0-29.07 23.57-52.64 52.64-52.64h355.322c21.805 0 39.48 17.685 39.48 39.48s-17.675 39.485-39.48 39.485z" :fill "currentColor"}]]))
(defn icon-cli
([] (icon-cli 16))
([size]
[:svg {:viewBox "0 0 1024 1024" :width size :height size}
[:path {:d "M324.608 312.32l-60.416 60.416 140.288 140.288-139.264 139.264 60.416 60.416 199.68-199.68-200.704-200.704z m193.536 345.088h235.52v97.28h-235.52v-97.28zM28.672 76.8v870.4h967.68v-870.4H28.672z m870.4 774.144H124.928V173.056h774.144v677.888z" :fill "currentColor"}]]))
(defn view-list
([] (view-list 16))

View File

@ -231,6 +231,11 @@
:settings-page/disable-developer-mode "Disable developer mode"
:settings-page/developer-mode-desc "Developer mode helps contributors and extension developers test their integrations with Logseq more efficiently."
:settings-page/current-version "Current version"
:settings-page/current-graph "Current graph"
:settings-page/tab-general "General"
:settings-page/tab-editor "Editor"
:settings-page/tab-shortcuts "Shortcuts"
:settings-page/tab-advanced "Advanced"
:logseq "Logseq"
:on "ON"
:more-options "More options"
@ -903,6 +908,11 @@
:settings-page/disable-developer-mode "禁用开发者模式"
:settings-page/developer-mode-desc "开发者模式帮助贡献者和扩展开发者更有效地测试他们与 Logseq 的集成。"
:settings-page/current-version "当前版本"
:settings-page/current-graph "当前仓库"
:settings-page/tab-general "常规"
:settings-page/tab-editor "编辑器"
:settings-page/tab-shortcuts "快捷键"
:settings-page/tab-advanced "高级设置"
:logseq "Logseq"
:on "已打开"
:more-options "更多选项"
@ -1158,6 +1168,10 @@
:settings-page/enable-developer-mode "啟用開發者模式"
:settings-page/disable-developer-mode "禁用開發者模式"
:settings-page/developer-mode-desc "開發者模式幫助貢獻者和擴展開發者更有效地測試他們與 Logseq 的集成。"
:settings-page/tab-general "常規"
:settings-page/tab-editor "編輯器"
:settings-page/tab-shortcuts "快捷鍵"
:settings-page/tab-advanced "高級設置"
:logseq "Logseq"
:on "已打開"
:more-options "更多選項"

View File

@ -86,7 +86,7 @@
.panel-content {
overflow-y: auto;
max-height: 85vh;
max-width: 768px;
max-width: 96vw;
padding: 2rem;
}
}