diff --git a/packages/bbui/src/Form/Core/TextArea.svelte b/packages/bbui/src/Form/Core/TextArea.svelte
index 16e6511190..5eef8e8565 100644
--- a/packages/bbui/src/Form/Core/TextArea.svelte
+++ b/packages/bbui/src/Form/Core/TextArea.svelte
@@ -32,7 +32,7 @@
if (!attribute || value == null) {
return ""
}
- if (isNaN(value)) {
+ if (typeof value === "number" && isNaN(value)) {
return `${attribute}:${value};`
}
return `${attribute}:${value}px;`
diff --git a/packages/bbui/src/InlineAlert/InlineAlert.svelte b/packages/bbui/src/InlineAlert/InlineAlert.svelte
index edfa760eb8..34a286e670 100644
--- a/packages/bbui/src/InlineAlert/InlineAlert.svelte
+++ b/packages/bbui/src/InlineAlert/InlineAlert.svelte
@@ -1,6 +1,7 @@
-
- importQueries()}
- {onCancel}
- confirmText={"Import"}
- cancelText="Back"
- size="L"
->
-
- Import
- Import your rest collection using one of the options below
-
-
-
-
- {
- $data.file = e.detail?.[0]
- lastTouched = "file"
- }}
- fileTags={[
- "OpenAPI 3.0",
- "OpenAPI 2.0",
- "Swagger 2.0",
- "cURL",
- "YAML",
- "JSON",
- ]}
- maximum={1}
- />
-
-
-
-
-
-
diff --git a/packages/builder/src/components/backend/RoleEditor/RoleNode.svelte b/packages/builder/src/components/backend/RoleEditor/RoleNode.svelte
index c01ae43362..6183246487 100644
--- a/packages/builder/src/components/backend/RoleEditor/RoleNode.svelte
+++ b/packages/builder/src/components/backend/RoleEditor/RoleNode.svelte
@@ -43,7 +43,7 @@
const validateDescription = description => {
if (!description?.length) {
- return "Please enter a name"
+ return "Please enter a description"
}
return null
}
diff --git a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte
index 48b5725e1f..7e665ae501 100644
--- a/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte
+++ b/packages/builder/src/components/common/CodeEditor/CodeEditor.svelte
@@ -334,16 +334,15 @@
EditorView.inputHandler.of((view, from, to, insert) => {
if (jsBindingWrapping && insert === "$") {
let { text } = view.state.doc.lineAt(from)
-
const left = from ? text.substring(0, from) : ""
const right = to ? text.substring(to) : ""
- const wrap = !left.includes('$("') || !right.includes('")')
+ const wrap =
+ (!left.includes('$("') || !right.includes('")')) &&
+ !(left.includes("`") && right.includes("`"))
+ const anchor = from + (wrap ? 3 : 1)
const tr = view.state.update(
{
changes: [{ from, insert: wrap ? '$("")' : "$" }],
- selection: {
- anchor: from + (wrap ? 3 : 1),
- },
},
{
scrollIntoView: true,
@@ -351,6 +350,19 @@
}
)
view.dispatch(tr)
+ // the selection needs to fired after the dispatch - this seems
+ // to fix an issue with the cursor not moving when the editor is
+ // first loaded, the first usage of the editor is not ready
+ // for the anchor to move as well as perform a change
+ setTimeout(() => {
+ view.dispatch(
+ view.state.update({
+ selection: {
+ anchor,
+ },
+ })
+ )
+ }, 1)
return true
}
return false
@@ -519,6 +531,7 @@
.code-editor {
font-size: 12px;
height: 100%;
+ cursor: text;
}
.code-editor :global(.cm-editor) {
height: 100%;
diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ClearRowSelection.svelte b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ClearRowSelection.svelte
index cd289e3f61..758cf0dab8 100644
--- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ClearRowSelection.svelte
+++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/ClearRowSelection.svelte
@@ -2,6 +2,7 @@
import { Label, Select, Body } from "@budibase/bbui"
import { findAllMatchingComponents } from "@/helpers/components"
import { selectedScreen } from "@/stores/builder"
+ import { InlineAlert } from "@budibase/bbui"
export let parameters
@@ -27,6 +28,12 @@
+
diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js
index b171b34111..2ad41076f2 100644
--- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js
+++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js
@@ -26,3 +26,4 @@ export { default as CloseModal } from "./CloseModal.svelte"
export { default as ClearRowSelection } from "./ClearRowSelection.svelte"
export { default as DownloadFile } from "./DownloadFile.svelte"
export { default as RowAction } from "./RowAction.svelte"
+export { default as CopyToClipboard } from "./CopyToClipboard.svelte"
diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json
index 631e3119e8..2bc8599057 100644
--- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json
+++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json
@@ -183,6 +183,17 @@
"name": "Row Action",
"type": "data",
"component": "RowAction"
+ },
+ {
+ "name": "Copy To Clipboard",
+ "type": "data",
+ "component": "CopyToClipboard",
+ "context": [
+ {
+ "label": "Copied text",
+ "value": "copied"
+ }
+ ]
}
]
}
diff --git a/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/panels/Queries/RestImportQueriesModal.svelte b/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/panels/Queries/RestImportQueriesModal.svelte
index dd90acf367..b144ed64b9 100644
--- a/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/panels/Queries/RestImportQueriesModal.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/data/datasource/[datasourceId]/_components/panels/Queries/RestImportQueriesModal.svelte
@@ -1,4 +1,4 @@
-