diff --git a/packages/bbui/src/ActionButton/ActionButton.svelte b/packages/bbui/src/ActionButton/ActionButton.svelte index 01f5033e6c..60c8bec80b 100644 --- a/packages/bbui/src/ActionButton/ActionButton.svelte +++ b/packages/bbui/src/ActionButton/ActionButton.svelte @@ -113,6 +113,9 @@ .spectrum-ActionButton--quiet { padding: 0 8px; } + .spectrum-ActionButton--quiet.is-selected { + color: var(--spectrum-global-color-gray-900); + } .is-selected:not(.emphasized) .spectrum-Icon { color: var(--spectrum-global-color-gray-900); } diff --git a/packages/builder/src/components/design/Panel.svelte b/packages/builder/src/components/design/Panel.svelte index a1e3bd7eb7..6c8753a99e 100644 --- a/packages/builder/src/components/design/Panel.svelte +++ b/packages/builder/src/components/design/Panel.svelte @@ -14,10 +14,11 @@ export let borderRight = false let wide = false + $: customHeaderContent = $$slots["panel-header-content"]
-
+
{#if showBackButton} {/if} @@ -43,6 +44,13 @@ {/if}
+ + {#if customHeaderContent} + + + + {/if} +
@@ -116,4 +124,10 @@ justify-content: flex-start; align-items: stretch; } + .header.custom { + border: none; + } + .custom-content-wrap { + border-bottom: var(--border-light); + } diff --git a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsPanel.svelte b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsPanel.svelte index 096e47430c..1e889ffe93 100644 --- a/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsPanel.svelte +++ b/packages/builder/src/pages/builder/app/[application]/design/[screenId]/components/[componentId]/_components/settings/ComponentSettingsPanel.svelte @@ -10,6 +10,8 @@ getBindableProperties, getComponentBindableProperties, } from "builderStore/dataBinding" + import { ActionButton } from "@budibase/bbui" + import { capitalise } from "helpers" $: componentInstance = $selectedComponent $: componentDefinition = store.actions.components.getDefinition( @@ -25,32 +27,69 @@ ) $: isScreen = $selectedComponent?._id === $selectedScreen?.props._id $: title = isScreen ? "Screen" : $selectedComponent?._instanceName + + let section = "settings" + const tabs = ["settings", "styles", "conditions"] + + $: id = $selectedComponent?._id + $: id, (section = tabs[0]) {#if $selectedComponent} {#key $selectedComponent._id} - {#if componentDefinition?.info} - + +
+ {#each tabs as tab} + { + section = tab + }} + > + {capitalise(tab)} + + {/each} +
+
+ {#if section == "settings"} + {#if componentDefinition?.info} + + {/if} + + {/if} + {#if section == "styles"} + + + {/if} + {#if section == "conditions"} + {/if} - - - -
{/key} {/if} + +