diff --git a/packages/builder/src/components/userInterface/OptionSelect.svelte b/packages/builder/src/components/userInterface/OptionSelect.svelte
index cbbdb8f91f..b3cfa5e54b 100644
--- a/packages/builder/src/components/userInterface/OptionSelect.svelte
+++ b/packages/builder/src/components/userInterface/OptionSelect.svelte
@@ -4,6 +4,9 @@
export let onChange = value => {}
export let options = []
export let initialValue = ""
+ export let styleBindingProperty = ""
+
+ $: bindOptionToStyle = !!styleBindingProperty
onMount(() => {
if (!value && !!initialValue) {
@@ -17,6 +20,14 @@
{value}
on:change={ev => onChange(ev.target.value)}>
{#each options as { value, label }}
-
+ {#if bindOptionToStyle}
+
+ {:else}
+
+ {/if}
{/each}
diff --git a/packages/builder/src/components/userInterface/propertyCategories.js b/packages/builder/src/components/userInterface/propertyCategories.js
index 525738f02f..7505645b65 100644
--- a/packages/builder/src/components/userInterface/propertyCategories.js
+++ b/packages/builder/src/components/userInterface/propertyCategories.js
@@ -41,25 +41,76 @@ export const size = {
minHeight: { label: "Min H", control: Input },
maxWidth: { label: "Max W", control: Input },
maxHeight: { label: "Max H", control: Input },
- overflow: { control: Input }, //custom
+ overflow: {
+ control: OptionSelect,
+ options: [
+ { label: "visible" },
+ { label: "auto" },
+ { label: "hidden" },
+ { label: "auto" },
+ { label: "scroll" },
+ ],
+ }, //custom
}
export const position = {
- position: { control: Input },
+ position: {
+ control: OptionSelect,
+ options: [
+ { label: "static" },
+ { label: "relative" },
+ { label: "fixed" },
+ { label: "absolute" },
+ { label: "sticky" },
+ ],
+ },
}
export const typography = {
- font: { control: Input },
- weight: { control: Input },
- size: { control: Input },
+ fontFamily: {
+ label: "Font",
+ control: OptionSelect,
+ options: [
+ { label: "initial" },
+ { label: "Times New Roman" },
+ { label: "Georgia" },
+ { label: "Arial" },
+ { label: "Arial Black" },
+ { label: "Comic Sans MS" },
+ { label: "Impact" },
+ { label: "Lucida Sans Unicode" },
+ ],
+ styleBindingProperty: "font-family",
+ },
+ fontWeight: {
+ label: "weight",
+ control: OptionSelect,
+ options: [
+ { label: "normal" },
+ { label: "bold" },
+ { label: "bolder" },
+ { label: "lighter" },
+ ],
+ },
+ fontSize: { label: "size", control: Input },
lineHeight: { label: "Line H", control: Input },
color: {
control: OptionSelect,
options: [{ label: "red" }, { label: "blue" }, { label: "green" }],
},
- align: { control: Input }, //custom
- transform: { control: Input }, //custom
- style: { control: Input }, //custom
+ textAlign: {
+ label: "align",
+ control: OptionSelect,
+ options: [
+ { label: "initial" },
+ { label: "left" },
+ { label: "right" },
+ { label: "center" },
+ { label: "justify" },
+ ],
+ }, //custom
+ textTransform: { label: "transform", control: Input }, //custom
+ fontStyle: { label: "style", control: Input }, //custom
}
export const background = {
@@ -68,10 +119,10 @@ export const background = {
}
export const border = {
- radius: { control: Input },
- width: { control: Input }, //custom
- color: { control: Input },
- style: { control: Input },
+ borderRadius: { label: "radius", control: Input },
+ borderWidth: { label: "width", control: Input }, //custom
+ borderColor: { label: "color", control: Input },
+ borderStyle: { label: "style", control: Input },
}
export const effects = {