diff --git a/packages/bbui/src/ActionButton/ActionButton.svelte b/packages/bbui/src/ActionButton/ActionButton.svelte index efa777ffdb..688d3bf7e4 100644 --- a/packages/bbui/src/ActionButton/ActionButton.svelte +++ b/packages/bbui/src/ActionButton/ActionButton.svelte @@ -3,8 +3,6 @@ import { createEventDispatcher } from "svelte" const dispatch = createEventDispatcher() - /** @type {('S', 'M', 'L', 'XL')} Size of button */ - export let size = "M" export let quiet = false export let emphasized = false export let selected = false @@ -12,6 +10,12 @@ export let disabled = false export let icon = "" + export let xl = false + export let l = false + export let m = false + export let s = false + $: useDefault = ![xl, l, m, s].includes(true) + function longPress(element) { if (!longPressable) return let timer @@ -38,7 +42,11 @@ class:spectrum-ActionButton--quiet={quiet} class:spectrum-ActionButton--emphasized={emphasized} class:is-selected={selected} - class="spectrum-ActionButton spectrum-ActionButton--size{size.toUpperCase()}" + class:spectrum-ActionButton--sizeS={s} + class:spectrum-ActionButton--sizeM={m || useDefault} + class:spectrum-ActionButton--sizeL={l} + class:spectrum-ActionButton--sizeXL={xl} + class="spectrum-ActionButton" {disabled} on:longPress on:click|preventDefault @@ -54,7 +62,11 @@ {/if} {#if icon}
- +
+
diff --git a/packages/bbui/src/Drawer/Drawer.svelte b/packages/bbui/src/Drawer/Drawer.svelte index 27fe9470fb..b5af512475 100644 --- a/packages/bbui/src/Drawer/Drawer.svelte +++ b/packages/bbui/src/Drawer/Drawer.svelte @@ -42,7 +42,7 @@
- +
diff --git a/packages/bbui/src/Layout/Layout.svelte b/packages/bbui/src/Layout/Layout.svelte new file mode 100644 index 0000000000..ca18f3e3f6 --- /dev/null +++ b/packages/bbui/src/Layout/Layout.svelte @@ -0,0 +1,65 @@ + + +
+ +
+ + diff --git a/packages/bbui/src/Menu/Item.svelte b/packages/bbui/src/Menu/Item.svelte index 00ad3473ae..8aed496531 100644 --- a/packages/bbui/src/Menu/Item.svelte +++ b/packages/bbui/src/Menu/Item.svelte @@ -1,13 +1,39 @@ - \ No newline at end of file + diff --git a/packages/bbui/src/Table/SelectEditRenderer.svelte b/packages/bbui/src/Table/SelectEditRenderer.svelte index 64d36ead54..1355666489 100644 --- a/packages/bbui/src/Table/SelectEditRenderer.svelte +++ b/packages/bbui/src/Table/SelectEditRenderer.svelte @@ -13,5 +13,5 @@ {/if} {#if allowEditRows} - Edit + Edit {/if} diff --git a/packages/bbui/src/index.js b/packages/bbui/src/index.js index 3bc24d1705..842c88ef14 100644 --- a/packages/bbui/src/index.js +++ b/packages/bbui/src/index.js @@ -27,6 +27,7 @@ export { default as Popover } from "./Popover/Popover.svelte" export { default as ProgressBar } from "./ProgressBar/ProgressBar.svelte" export { default as ProgressCircle } from "./ProgressCircle/ProgressCircle.svelte" export { default as Label } from "./Styleguide/Label.svelte" +export { default as Layout } from "./Layout/Layout.svelte" export { default as Link } from "./Link/Link.svelte" export { default as Close } from "./Button/Close.svelte" export { default as Menu } from "./Menu/Menu.svelte" diff --git a/packages/builder/src/components/automation/AutomationBuilder/BlockList.svelte b/packages/builder/src/components/automation/AutomationBuilder/BlockList.svelte index c1ba0ce556..2c37e97956 100644 --- a/packages/builder/src/components/automation/AutomationBuilder/BlockList.svelte +++ b/packages/builder/src/components/automation/AutomationBuilder/BlockList.svelte @@ -65,8 +65,8 @@ {#each tabs as tab, idx}
onChangeTab(idx)}> diff --git a/packages/builder/src/components/automation/AutomationPanel/EditAutomationPopover.svelte b/packages/builder/src/components/automation/AutomationPanel/EditAutomationPopover.svelte index 3d1d98cc81..2eefac0ea8 100644 --- a/packages/builder/src/components/automation/AutomationPanel/EditAutomationPopover.svelte +++ b/packages/builder/src/components/automation/AutomationPanel/EditAutomationPopover.svelte @@ -2,26 +2,14 @@ import { goto } from "@roxi/routify" import { automationStore } from "builderStore" import { database } from "stores/backend" - import { notifications } from "@budibase/bbui" - import { Icon, Popover } from "@budibase/bbui" - import { - DropdownContainer, - DropdownItem, - } from "components/common/Dropdowns" + import { ActionMenu, MenuItem, notifications, Icon } from "@budibase/bbui" import ConfirmDialog from "components/common/ConfirmDialog.svelte" export let automation - let anchor - let dropdown let confirmDeleteDialog $: instanceId = $database._id - function showModal() { - dropdown.hide() - confirmDeleteDialog.show() - } - async function deleteAutomation() { await automationStore.actions.delete({ instanceId, @@ -32,20 +20,15 @@ } -
-
+ +
- - - - - -
+ Delete + + -
-
+ +
- - - - - -
+ Delete + + - import { notifications } from "@budibase/bbui" - import { Icon, Popover } from "@budibase/bbui" + import { ActionMenu, MenuItem, Icon, notifications } from "@budibase/bbui" import ConfirmDialog from "components/common/ConfirmDialog.svelte" - import { DropdownContainer, DropdownItem } from "components/common/Dropdowns" + import { queries } from "stores/backend" export let query - let anchor - let dropdown let confirmDeleteDialog - function hideEditor() { - dropdown?.hide() - } - - function showModal() { - hideEditor() - confirmDeleteDialog.show() - } - async function deleteQuery() { await queries.delete(query) notifications.success("Query deleted") - hideEditor() } -
-
+ +
- - - - - -
+ Delete + + screen.autoTableId === table._id @@ -35,7 +30,6 @@ willBeDeleted = ["All table data"].concat( templateScreens.map((screen) => `Screen ${screen.props._instanceName}`) ) - hideEditor() confirmDeleteDialog.show() } @@ -48,62 +42,48 @@ if (wasSelectedTable._id === table._id) { $goto("./table") } - hideEditor() + editorModal.hide() } async function save() { await tables.save(table) notifications.success("Table renamed successfully") - hideEditor() + editorModal.hide() } function checkValid(evt) { const tableName = evt.target.value error = - originalName !== tableName + originalName === tableName ? `Table with name ${tableName} already exists. Please choose another name.` : "" } -
-
+ +
- - {#if editing} -
-
Edit Table
- -
- - -
-
- {:else} - - - - - {/if} -
-
+ Edit + Delete + + + + + + + - import { goto } from "@roxi/routify" import { - store, - currentAssetName, - selectedComponent, - currentAssetId, - } from "builderStore" + ActionMenu, + ActionGroup, + ActionButton, + MenuItem, + } from "@budibase/bbui" + import { store, currentAssetName } from "builderStore" import structure from "./componentStructure.json" - import { Popover } from "@budibase/bbui" - import { DropdownContainer, DropdownItem } from "components/common/Dropdowns" $: enrichedStructure = enrichStructure(structure, $store.components) - let selectedIndex - let anchors = [] - let popover - $: anchor = selectedIndex === -1 ? null : anchors[selectedIndex] - const enrichStructure = (structure, definitions) => { let enrichedStructure = [] - structure.forEach(item => { + structure.forEach((item) => { if (typeof item === "string") { const def = definitions[`@budibase/standard-components/${item}`] if (def) { @@ -43,77 +36,37 @@ if (item.isCategory) { // Select and open this category selectedIndex = idx - popover.show() } else { // Add this component await store.actions.components.create(item.component) - popover.hide() } } -
+ {#each enrichedStructure as item, idx} -
onItemChosen(item, idx)} - class:active={idx === selectedIndex}> - {#if item.icon}{/if} - {item.name} - {#if item.isCategory}{/if} -
+ + onItemChosen(item, idx)} + > + {item.name} + + {#each item.children || [] as item} + {#if !item.showOnAsset || item.showOnAsset.includes($currentAssetName)} + onItemChosen(item)} + > + {item.name} + + {/if} + {/each} + {/each} -
- (selectedIndex = null)} - bind:this={popover} - {anchor} - align="left"> - - {#each enrichedStructure[selectedIndex].children as item} - {#if !item.showOnAsset || item.showOnAsset.includes($currentAssetName)} - onItemChosen(item)} /> - {/if} - {/each} - - - - + diff --git a/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte b/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte index 475ec1a54d..8cf46facc6 100644 --- a/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte +++ b/packages/builder/src/components/design/NavigationPanel/ComponentDropdownMenu.svelte @@ -3,23 +3,17 @@ import { store, currentAsset } from "builderStore" import ConfirmDialog from "components/common/ConfirmDialog.svelte" import { findComponentParent } from "builderStore/storeUtils" - import { Icon, Popover } from "@budibase/bbui" - import { DropdownContainer, DropdownItem } from "components/common/Dropdowns" + import { ActionMenu, MenuItem, Icon } from "@budibase/bbui" export let component let confirmDeleteDialog - let dropdown let anchor $: definition = store.actions.components.getDefinition(component?._component) $: noChildrenAllowed = !component || !definition?.hasChildren $: noPaste = !$store.componentToPaste - const hideDropdown = () => { - dropdown.hide() - } - const moveUpComponent = () => { const asset = get(currentAsset) const parent = findComponentParent(asset.props, component._id) @@ -72,62 +66,42 @@ } -
-
- - - confirmDeleteDialog.show()} - /> - - - - storeComponentForCopy(true)} - /> - storeComponentForCopy(false)} - /> -
- pasteComponent("above")} - /> - pasteComponent("below")} - /> - pasteComponent("inside")} - /> -
-
-
+ +
+ +
+ Delete + Move up + Move down + Duplicate + storeComponentForCopy(true)} + >Cut + storeComponentForCopy(false)} + >Copy + pasteComponent("above")} + disabled={noPaste}>Paste above + pasteComponent("below")} + disabled={noPaste}>Paste below + pasteComponent("inside")} + disabled={noPaste || noChildrenAllowed}>Paste inside +
{ @@ -35,25 +39,14 @@ } -
-
dropdown.show()}> - + +
+
- - - editLayoutNameModal.show()} - /> - confirmDeleteDialog.show()} - /> - - -
+ Edit + Delete + + import { goto } from "@roxi/routify" import { store, allScreens } from "builderStore" - import { notifications } from "@budibase/bbui" import ConfirmDialog from "components/common/ConfirmDialog.svelte" - import { Icon, Popover } from "@budibase/bbui" - import { DropdownContainer, DropdownItem } from "components/common/Dropdowns" + import { ActionMenu, MenuItem, Icon, notifications } from "@budibase/bbui" export let screenId let confirmDeleteDialog - let dropdown - let anchor $: screen = $allScreens.find((screen) => screen._id === screenId) @@ -27,20 +23,13 @@ } -
-
dropdown.show()}> + +
- - - confirmDeleteDialog.show()} - /> - - -
+ Delete + + - - diff --git a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/SaveFields.svelte b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/SaveFields.svelte index 4274a92a7d..77c3bd2567 100644 --- a/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/SaveFields.svelte +++ b/packages/builder/src/components/design/PropertiesPanel/PropertyControls/EventsEditor/actions/SaveFields.svelte @@ -70,6 +70,7 @@ bindings={bindableProperties} on:change={event => updateFieldValue(idx, event.detail)} /> removeField(field[0])} /> diff --git a/packages/builder/src/components/integration/QueryParameterBuilder.svelte b/packages/builder/src/components/integration/QueryParameterBuilder.svelte index 5daf6774c9..29711177ec 100644 --- a/packages/builder/src/components/integration/QueryParameterBuilder.svelte +++ b/packages/builder/src/components/integration/QueryParameterBuilder.svelte @@ -52,22 +52,32 @@ placeholder="Parameter Name" thin disabled={bindable} - bind:value={parameter.name} /> + bind:value={parameter.name} + /> + bind:value={parameter.default} + /> {#if bindable} onBindingChange(parameter.name, evt.detail)} - value={runtimeToReadableBinding(bindings, customParams?.[parameter.name])} - {bindings} /> + on:change={(evt) => onBindingChange(parameter.name, evt.detail)} + value={runtimeToReadableBinding( + bindings, + customParams?.[parameter.name] + )} + {bindings} + /> {:else} - deleteQueryParameter(idx)} /> + deleteQueryParameter(idx)} + /> {/if} {/each}
@@ -90,16 +100,5 @@ grid-template-columns: 1fr 1fr 5%; grid-gap: 10px; align-items: center; - margin-bottom: var(--spacing-xl); - } - - .delete { - transition: all 0.2s; - } - - .delete:hover { - transform: scale(1.1); - font-weight: 500; - cursor: pointer; } diff --git a/packages/builder/src/components/integration/QueryViewer.svelte b/packages/builder/src/components/integration/QueryViewer.svelte index ca8d5036b9..956ab1b158 100644 --- a/packages/builder/src/components/integration/QueryViewer.svelte +++ b/packages/builder/src/components/integration/QueryViewer.svelte @@ -6,6 +6,7 @@ Button, Body, Label, + Layout, Input, Heading, Spacer, @@ -110,46 +111,33 @@ } -
- + Query {integrationInfo?.friendlyName} - - Config - Provide a name for your query and select its function. - -
- - -
- - {#if queryConfig} +
- -
- + {#if queryConfig} +
+ +