From f138ca68a8ee835081cbefa04bfdb5f38f542d15 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Tue, 24 Feb 2026 13:37:57 +0100 Subject: [PATCH] :bug: Fix comments --- .../management/forms/controls/combobox.cljs | 18 ++++++++++++------ ...avigation.cljs => combobox_navigation.cljs} | 3 +-- .../{floating.cljs => floating_dropdown.cljs} | 2 +- .../forms/controls/token_parsing.cljs | 5 +++-- .../management/forms/controls}/utils.cljs | 2 +- frontend/src/app/util/dom.cljs | 5 +++++ 6 files changed, 23 insertions(+), 12 deletions(-) rename frontend/src/app/main/ui/workspace/tokens/management/forms/controls/{navigation.cljs => combobox_navigation.cljs} (96%) rename frontend/src/app/main/ui/workspace/tokens/management/forms/controls/{floating.cljs => floating_dropdown.cljs} (99%) rename frontend/src/app/main/ui/{ds/controls/utilities => workspace/tokens/management/forms/controls}/utils.cljs (97%) diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs index 9d9f8eeedd..2f93b7ab89 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox.cljs @@ -10,17 +10,19 @@ [app.common.data :as d] [app.common.types.token :as cto] [app.common.types.tokens-lib :as ctob] + [app.config :as cf] [app.main.data.style-dictionary :as sd] + [app.main.data.tokenscript :as ts] [app.main.ui.context :as muc] [app.main.ui.ds.buttons.icon-button :refer [icon-button*]] [app.main.ui.ds.controls.input :as ds] [app.main.ui.ds.controls.shared.options-dropdown :refer [options-dropdown*]] - [app.main.ui.ds.controls.utilities.utils :as csu] [app.main.ui.ds.foundations.assets.icon :as i] [app.main.ui.forms :as fc] - [app.main.ui.workspace.tokens.management.forms.controls.floating :refer [use-floating-dropdown]] - [app.main.ui.workspace.tokens.management.forms.controls.navigation :refer [use-navigation]] + [app.main.ui.workspace.tokens.management.forms.controls.combobox-navigation :refer [use-navigation]] + [app.main.ui.workspace.tokens.management.forms.controls.floating-dropdown :refer [use-floating-dropdown]] [app.main.ui.workspace.tokens.management.forms.controls.token-parsing :as tp] + [app.main.ui.workspace.tokens.management.forms.controls.utils :as csu] [app.util.dom :as dom] [app.util.forms :as fm] [app.util.i18n :refer [tr]] @@ -46,11 +48,15 @@ (dissoc (:name prev-token)) (update (:name token) #(ctob/make-token (merge % prev-token token))))] - (->> tokens - (sd/resolve-tokens-interactive) + (->> (if (contains? cf/flags :tokenscript) + (rx/of (ts/resolve-tokens tokens)) + (sd/resolve-tokens-interactive tokens)) (rx/mapcat (fn [resolved-tokens] - (let [{:keys [errors resolved-value] :as resolved-token} (get resolved-tokens (:name token))] + (let [{:keys [errors resolved-value] :as resolved-token} (get resolved-tokens (:name token)) + resolved-value (if (contains? cf/flags :tokenscript) + (ts/tokenscript-symbols->penpot-unit resolved-value) + resolved-value)] (if resolved-value (rx/of {:value resolved-value}) (rx/of {:error (first errors)})))))))) diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/navigation.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox_navigation.cljs similarity index 96% rename from frontend/src/app/main/ui/workspace/tokens/management/forms/controls/navigation.cljs rename to frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox_navigation.cljs index a0f53d54ac..de0f6f279f 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/navigation.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/combobox_navigation.cljs @@ -4,7 +4,7 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.workspace.tokens.management.forms.controls.navigation +(ns app.main.ui.workspace.tokens.management.forms.controls.combobox-navigation (:require [app.util.dom :as dom] [app.util.keyboard :as kbd] @@ -45,7 +45,6 @@ down? (kbd/down-arrow? event) enter? (kbd/enter? event) esc? (kbd/esc? event) - ;; TODO: this should be optional? open-dropdown (kbd/is-key? event "{") close-dropdown (kbd/is-key? event "}") options (mf/ref-val options-ref) diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/floating.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/floating_dropdown.cljs similarity index 99% rename from frontend/src/app/main/ui/workspace/tokens/management/forms/controls/floating.cljs rename to frontend/src/app/main/ui/workspace/tokens/management/forms/controls/floating_dropdown.cljs index c0d1e68c79..739ca0628c 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/floating.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/floating_dropdown.cljs @@ -4,7 +4,7 @@ ;; ;; Copyright (c) KALEIDOS INC -(ns app.main.ui.workspace.tokens.management.forms.controls.floating +(ns app.main.ui.workspace.tokens.management.forms.controls.floating-dropdown (:require [app.util.dom :as dom] [rumext.v2 :as mf])) diff --git a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/token_parsing.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/token_parsing.cljs index 1a89195f67..e0a12e4018 100644 --- a/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/token_parsing.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/token_parsing.cljs @@ -7,6 +7,7 @@ (ns app.main.ui.workspace.tokens.management.forms.controls.token-parsing (:require [app.main.ui.ds.controls.select :refer [get-option]] + [app.util.dom :as dom] [cuerdas.core :as str] [rumext.v2 :as mf])) @@ -43,7 +44,7 @@ (subs value cursor))))) (defn active-token [value input-node] - (let [cursor (.-selectionStart input-node)] + (let [cursor (dom/selection-start input-node)] (extract-partial-token value cursor))) (defn remove-self-token [filtered-options current-token] @@ -56,7 +57,7 @@ (defn select-option-by-id [id options-ref input-node value] - (let [cursor (.-selectionStart input-node) + (let [cursor (dom/selection-start input-node) options (mf/ref-val options-ref) options (if (delay? options) @options options) diff --git a/frontend/src/app/main/ui/ds/controls/utilities/utils.cljs b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/utils.cljs similarity index 97% rename from frontend/src/app/main/ui/ds/controls/utilities/utils.cljs rename to frontend/src/app/main/ui/workspace/tokens/management/forms/controls/utils.cljs index 0214d34506..2d887d9daf 100644 --- a/frontend/src/app/main/ui/ds/controls/utilities/utils.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/management/forms/controls/utils.cljs @@ -1,4 +1,4 @@ -(ns app.main.ui.ds.controls.utilities.utils +(ns app.main.ui.workspace.tokens.management.forms.controls.utils (:require [app.common.data.macros :as dm] [app.common.types.token :as cto] diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs index a5e35afb92..11a42cf2fb 100644 --- a/frontend/src/app/util/dom.cljs +++ b/frontend/src/app/util/dom.cljs @@ -277,6 +277,11 @@ (when (and (some? node) (some? (unchecked-get node "select"))) (.select ^js node))) +(defn selection-start + [^js node] + (when (some? node) + (.-selectionStart node))) + (defn ^boolean equals? [^js node-a ^js node-b]