diff --git a/README.md b/README.md
index 7d11ea570f..aa368d29fd 100644
--- a/README.md
+++ b/README.md
@@ -104,12 +104,14 @@ Budibase is made to scale. With Budibase, you can self-host on your own infrastr
## 🏁 Get started
-
+
-Deploy Budibase self-Hosted in your existing infrastructure, using Docker, Kubernetes, and Digital Ocean.
+Deploy Budibase self-hosted in your existing infrastructure, using Docker, Kubernetes, and Digital Ocean.
Or use Budibase Cloud if you don't need to self-host, and would like to get started quickly.
-### [Get started with Budibase](https://budibase.com)
+### [Get started with self-hosting Budibase](https://docs.budibase.com/self-hosting/self-host)
+
+### [Get started with Budibase Cloud](https://budibase.com)
diff --git a/lerna.json b/lerna.json
index 8d6a1032c9..47ab05ebf2 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,5 @@
{
- "version": "1.0.49-alpha.7",
+ "version": "1.0.49-alpha.12",
"npmClient": "yarn",
"packages": [
"packages/*"
diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json
index 3d837779b8..71d1e9b6b3 100644
--- a/packages/backend-core/package.json
+++ b/packages/backend-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/backend-core",
- "version": "1.0.49-alpha.7",
+ "version": "1.0.49-alpha.12",
"description": "Budibase backend core libraries used in server and worker",
"main": "src/index.js",
"author": "Budibase",
diff --git a/packages/bbui/package.json b/packages/bbui/package.json
index 91a2a17880..9b14e9bba4 100644
--- a/packages/bbui/package.json
+++ b/packages/bbui/package.json
@@ -1,7 +1,7 @@
{
"name": "@budibase/bbui",
"description": "A UI solution used in the different Budibase projects.",
- "version": "1.0.49-alpha.7",
+ "version": "1.0.49-alpha.12",
"license": "MPL-2.0",
"svelte": "src/index.js",
"module": "dist/bbui.es.js",
diff --git a/packages/bbui/src/Form/Core/TextArea.svelte b/packages/bbui/src/Form/Core/TextArea.svelte
index a022a98e5f..b615e97bff 100644
--- a/packages/bbui/src/Form/Core/TextArea.svelte
+++ b/packages/bbui/src/Form/Core/TextArea.svelte
@@ -13,6 +13,7 @@
start: textarea.selectionStart,
end: textarea.selectionEnd,
})
+ export let align = null
let focus = false
let textarea
@@ -46,6 +47,7 @@
bind:this={textarea}
placeholder={placeholder || ""}
class="spectrum-Textfield-input"
+ style={align ? `text-align: ${align}` : ""}
{disabled}
{id}
on:focus={() => (focus = true)}
diff --git a/packages/bbui/src/Form/Core/TextField.svelte b/packages/bbui/src/Form/Core/TextField.svelte
index d2064ddde0..78b698eed2 100644
--- a/packages/bbui/src/Form/Core/TextField.svelte
+++ b/packages/bbui/src/Form/Core/TextField.svelte
@@ -12,6 +12,7 @@
export let updateOnChange = true
export let quiet = false
export let dataCy
+ export let align
const dispatch = createEventDispatcher()
let focus = false
@@ -92,8 +93,9 @@
on:input={onInput}
on:keyup={updateValueOnEnter}
{type}
- inputmode={type === "number" ? "decimal" : "text"}
class="spectrum-Textfield-input"
+ style={align ? `text-align: ${align};` : ""}
+ inputmode={type === "number" ? "decimal" : "text"}
/>
diff --git a/packages/bbui/src/Table/InternalRenderer.svelte b/packages/bbui/src/Table/InternalRenderer.svelte
index 0f894ac853..858d51f128 100644
--- a/packages/bbui/src/Table/InternalRenderer.svelte
+++ b/packages/bbui/src/Table/InternalRenderer.svelte
@@ -8,10 +8,35 @@
copyToClipboard(value)
}
- function copyToClipboard(value) {
- navigator.clipboard.writeText(value).then(() => {
- notifications.success("Copied")
+ const copyToClipboard = value => {
+ return new Promise(res => {
+ if (navigator.clipboard && window.isSecureContext) {
+ // Try using the clipboard API first
+ navigator.clipboard.writeText(value).then(res)
+ } else {
+ // Fall back to the textarea hack
+ let textArea = document.createElement("textarea")
+ textArea.value = value
+ textArea.style.position = "fixed"
+ textArea.style.left = "-9999px"
+ textArea.style.top = "-9999px"
+ document.body.appendChild(textArea)
+ textArea.focus()
+ textArea.select()
+ document.execCommand("copy")
+ textArea.remove()
+ res()
+ }
})
+ .then(() => {
+ notifications.success("Copied to clipboard")
+ })
+ .catch(() => {
+ notifications.error(
+ "Failed to copy to clipboard. Check the dev console for the value."
+ )
+ console.warn("Failed to copy the value", value)
+ })
}
diff --git a/packages/builder/package.json b/packages/builder/package.json
index 681c359d2c..a7757e9f92 100644
--- a/packages/builder/package.json
+++ b/packages/builder/package.json
@@ -1,6 +1,6 @@
{
"name": "@budibase/builder",
- "version": "1.0.49-alpha.7",
+ "version": "1.0.49-alpha.12",
"license": "GPL-3.0",
"private": true,
"scripts": {
@@ -66,10 +66,10 @@
}
},
"dependencies": {
- "@budibase/bbui": "^1.0.49-alpha.7",
- "@budibase/client": "^1.0.49-alpha.7",
+ "@budibase/bbui": "^1.0.49-alpha.12",
+ "@budibase/client": "^1.0.49-alpha.12",
"@budibase/colorpicker": "1.1.2",
- "@budibase/string-templates": "^1.0.49-alpha.7",
+ "@budibase/string-templates": "^1.0.49-alpha.12",
"@sentry/browser": "5.19.1",
"@spectrum-css/page": "^3.0.1",
"@spectrum-css/vars": "^3.0.1",
diff --git a/packages/builder/src/builderStore/store/frontend.js b/packages/builder/src/builderStore/store/frontend.js
index 0d740e08e0..d838150efc 100644
--- a/packages/builder/src/builderStore/store/frontend.js
+++ b/packages/builder/src/builderStore/store/frontend.js
@@ -65,6 +65,9 @@ export const getFrontendStore = () => {
const store = writable({ ...INITIAL_FRONTEND_STATE })
store.actions = {
+ reset: () => {
+ store.set({ ...INITIAL_FRONTEND_STATE })
+ },
initialise: async pkg => {
const { layouts, screens, application, clientLibPath } = pkg
const components = await fetchComponentLibDefinitions(application.appId)
diff --git a/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte b/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte
index 8805505c8d..45bc5ff330 100644
--- a/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte
+++ b/packages/builder/src/components/backend/DatasourceNavigator/TableIntegrationMenu/PlusConfigForm.svelte
@@ -188,29 +188,27 @@
{:else}