diff --git a/frontend/src/app/main/ui/ds/buttons/button.cljs b/frontend/src/app/main/ui/ds/buttons/button.cljs index 237b4c5e23..e87a18516d 100644 --- a/frontend/src/app/main/ui/ds/buttons/button.cljs +++ b/frontend/src/app/main/ui/ds/buttons/button.cljs @@ -15,6 +15,7 @@ (def ^:private schema:button [:map [:class {:optional true} :string] + [:type {:optional true} [:maybe [:enum "button" "submit" "reset"]]] [:icon {:optional true} [:and :string [:fn #(contains? icon-list %)]]] [:on-ref {:optional true} fn?] @@ -24,7 +25,7 @@ (mf/defc button* {::mf/schema schema:button} - [{:keys [variant icon children class on-ref to] :rest props}] + [{:keys [variant icon children class on-ref to type] :rest props}] (let [variant (d/nilv variant "primary") element (if to "a" "button") internal-class (stl/css-case :button true @@ -35,6 +36,7 @@ :button-destructive (= variant "destructive")) props (mf/spread-props props {:class [class internal-class] :href to + :type (d/nilv type "button") :ref (fn [node] (when on-ref (on-ref node)))})] diff --git a/frontend/src/app/main/ui/ds/buttons/button.stories.jsx b/frontend/src/app/main/ui/ds/buttons/button.stories.jsx index d41e12c2de..7e544990b1 100644 --- a/frontend/src/app/main/ui/ds/buttons/button.stories.jsx +++ b/frontend/src/app/main/ui/ds/buttons/button.stories.jsx @@ -28,6 +28,7 @@ export default { children: "Lorem ipsum", disabled: false, variant: undefined, + type: "button", }, parameters: { controls: { exclude: ["children"] }, diff --git a/frontend/src/app/main/ui/ds/notifications/actionable.cljs b/frontend/src/app/main/ui/ds/notifications/actionable.cljs index 550d2a2976..f97ef075e0 100644 --- a/frontend/src/app/main/ui/ds/notifications/actionable.cljs +++ b/frontend/src/app/main/ui/ds/notifications/actionable.cljs @@ -48,10 +48,12 @@ (when cancel-label [:> button* {:variant "secondary" + :type "button" :on-click on-cancel} cancel-label]) (when accept-label [:> button* {:variant (if (= variant "default") "primary" "destructive") + :type "button" :on-click on-accept} accept-label])])) diff --git a/frontend/src/app/main/ui/inspect/attributes/common.cljs b/frontend/src/app/main/ui/inspect/attributes/common.cljs index f462eed605..22a760274b 100644 --- a/frontend/src/app/main/ui/inspect/attributes/common.cljs +++ b/frontend/src/app/main/ui/inspect/attributes/common.cljs @@ -70,6 +70,7 @@ [:img {:class (stl/css :resolved-image) :src (cf/resolve-file-media image)}]] [:> button* {:class (stl/css :download-button) + :type "button" :variant "secondary" :target "_blank" :download name diff --git a/frontend/src/app/main/ui/inspect/styles/rows/color_properties_row.cljs b/frontend/src/app/main/ui/inspect/styles/rows/color_properties_row.cljs index 53d26c3c23..8d8c4833c5 100644 --- a/frontend/src/app/main/ui/inspect/styles/rows/color_properties_row.cljs +++ b/frontend/src/app/main/ui/inspect/styles/rows/color_properties_row.cljs @@ -120,6 +120,7 @@ :alt (tr "inspect.attributes.image.preview")}]] [:> button* {:variant "secondary" :to color-image-url + :type "button" :target "_blank" :download color-image-name} (tr "inspect.attributes.image.download")]])])) diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs index ccdcd83a3a..364a484ecd 100644 --- a/frontend/src/app/main/ui/workspace/plugins.cljs +++ b/frontend/src/app/main/ui/workspace/plugins.cljs @@ -79,6 +79,7 @@ [:> button* {:class (stl/css :open-button) :variant "secondary" + :type "button" :on-click handle-open-click :title (when-not can-open? (tr "workspace.plugins.error.need-editor")) :disabled (not can-open?)} (tr "workspace.plugins.button-open")] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs index 50b46b1627..3144897f2c 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/component.cljs @@ -1089,6 +1089,7 @@ (when (and multi all-main? (not any-variant?)) [:> button* {:variant "secondary" + :type "button" :class (stl/css :component-combine) :on-click on-combine-as-variants} (tr "workspace.shape.menu.combine-as-variants")]) diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs index d7a19fb9b7..db555e60fe 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/variants_help_modal.cljs @@ -96,6 +96,7 @@ [:div {:class (stl/css :button-row)} [:> button* {:variant "primary" + :type "button" :class (stl/css :modal-accept-btn) :on-click on-close} (tr "ds.confirm-ok")]]]])) diff --git a/frontend/src/app/main/ui/workspace/tokens/settings/menu.cljs b/frontend/src/app/main/ui/workspace/tokens/settings/menu.cljs index b020a370a6..8469d83f28 100644 --- a/frontend/src/app/main/ui/workspace/tokens/settings/menu.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/settings/menu.cljs @@ -100,9 +100,11 @@ [:div {:class (stl/css :settings-modal-actions)} [:> button* {:on-click modal/hide! + :type "button" :variant "secondary"} (tr "labels.cancel")] [:> button* {:on-click on-set-font + :type "button" :disabled (not is-valid) :variant "primary"} (tr "labels.save")]]]]]])) diff --git a/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs b/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs index 750049166b..2f45e32fe6 100644 --- a/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs @@ -116,6 +116,7 @@ [:div {:class (stl/css :import-export-button-wrapper)} [:> button* {:on-click open-menu + :type "button" :icon i/import-export :variant "secondary"} (tr "workspace.tokens.tools")] diff --git a/frontend/src/app/main/ui/workspace/tokens/themes.cljs b/frontend/src/app/main/ui/workspace/tokens/themes.cljs index 275881c147..fde37f4001 100644 --- a/frontend/src/app/main/ui/workspace/tokens/themes.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/themes.cljs @@ -46,6 +46,7 @@ [:div {:class (stl/css :theme-selector-wrapper)} [:& theme-selector] [:> button* {:variant "secondary" + :type "button" :class (stl/css :edit-theme-button) :on-click open-modal} (tr "labels.edit")]]