+
(show = !show)}>
@@ -31,17 +30,14 @@
{#each propertyDefinition as [key, definition]}
-
- {#if propExistsOnComponentDef(key)}
- {definition.label || capitalize(key)}
-
- {/if}
-
+
+
onChange(key, value)}
+ props={{ ...excludeProps(definition, ['control']) }} />
+
{/each}
@@ -63,14 +59,19 @@
flex-flow: row nowrap;
}
- .icon {
- flex: 0 0 20px;
- text-align: center;
- }
-
.name {
flex: 1;
text-align: left;
+ padding-top: 2px;
+ font-size: 14px;
+ font-weight: 500;
+ letter-spacing: 0.14px;
+ color: #393c44;
+ }
+
+ .icon {
+ flex: 0 0 20px;
+ text-align: center;
}
.property-panel {
@@ -78,11 +79,6 @@
overflow: hidden;
}
- .property-control {
- display: flex;
- flex-flow: row nowrap;
- }
-
.show {
overflow: auto;
height: auto;
diff --git a/packages/builder/src/components/userInterface/TempSelect.svelte b/packages/builder/src/components/userInterface/TempSelect.svelte
deleted file mode 100644
index 514c9b5a20..0000000000
--- a/packages/builder/src/components/userInterface/TempSelect.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
diff --git a/packages/builder/src/components/userInterface/UserInterfaceRoot.svelte b/packages/builder/src/components/userInterface/UserInterfaceRoot.svelte
index 4f32c55d24..13d7a7e2a1 100644
--- a/packages/builder/src/components/userInterface/UserInterfaceRoot.svelte
+++ b/packages/builder/src/components/userInterface/UserInterfaceRoot.svelte
@@ -114,7 +114,7 @@
.root {
display: grid;
- grid-template-columns: 275px 1fr 275px;
+ grid-template-columns: 275px 1fr 300px;
height: 100%;
width: 100%;
background: #fafafa;
@@ -151,7 +151,7 @@
.components-pane {
grid-column: 3;
background-color: var(--white);
- min-height: 0px;
+ height: 100vh;
overflow-y: scroll;
}
diff --git a/packages/builder/src/components/userInterface/propertyCategories.js b/packages/builder/src/components/userInterface/propertyCategories.js
index 6246462ecb..525738f02f 100644
--- a/packages/builder/src/components/userInterface/propertyCategories.js
+++ b/packages/builder/src/components/userInterface/propertyCategories.js
@@ -1,75 +1,102 @@
-import ColorPicker from "../common/Colorpicker.svelte"
import Input from "../common/Input.svelte"
-import TempSelect from "./TempSelect.svelte"
+import OptionSelect from "./OptionSelect.svelte"
/*
- TODO: all strings types are really inputs and could be typed as such
- TODO: Options types need option items
TODO: Allow for default values for all properties
*/
export const general = {
- text: { control: Input }
+ text: { control: Input },
}
export const layout = {
- flexDirection: { label: "Direction", control: "string" },
- justifyContent: { label: "Justify", control: "string" },
- alignItems: { label: "Align", control: "string" },
- flexWrap: { label: "Wrap", control: "options" },
+ flexDirection: {
+ label: "Direction",
+ control: OptionSelect,
+ initialValue: "columnReverse",
+ options: [
+ { label: "row" },
+ { label: "row-reverse", value: "rowReverse" },
+ { label: "column" },
+ { label: "column-reverse", value: "columnReverse" },
+ ],
+ },
+ justifyContent: { label: "Justify", control: Input },
+ alignItems: { label: "Align", control: Input },
+ flexWrap: {
+ label: "Wrap",
+ control: OptionSelect,
+ options: [{ label: "wrap" }, { label: "no wrap", value: "noWrap" }],
+ },
}
export const spacing = {
- padding: { control: "string" },
- margin: { control: "string" },
+ padding: { control: Input },
+ margin: { control: Input },
}
export const size = {
- width: { control: "string" },
- height: { control: "string" },
- minWidth: { label: "Min W", control: "string" },
- minHeight: { label: "Min H", control: "string" },
- maxWidth: { label: "Max W", control: "string" },
- maxHeight: { label: "Max H", control: "string" },
- overflow: { control: "string" }, //custom
+ width: { control: Input },
+ height: { control: Input },
+ minWidth: { label: "Min W", control: Input },
+ minHeight: { label: "Min H", control: Input },
+ maxWidth: { label: "Max W", control: Input },
+ maxHeight: { label: "Max H", control: Input },
+ overflow: { control: Input }, //custom
}
export const position = {
- position: { control: "options" },
+ position: { control: Input },
}
export const typography = {
- font: { control: "options" },
- weight: { control: "options" },
- size: { control: "string" },
- lineHeight: { label: "Line H", control: "string" },
- color: { control: "colour" },
- align: { control: "string" }, //custom
- transform: { control: "string" }, //custom
- style: { control: "string" }, //custom
+ font: { control: Input },
+ weight: { control: Input },
+ 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
}
export const background = {
- backgroundColor: { label: "Background Color", control: ColorPicker },
+ backgroundColor: { label: "Background Color", control: Input },
image: { control: Input }, //custom
}
export const border = {
- radius: { control: "string" },
- width: { control: "string" }, //custom
- color: { control: "colour" },
- style: { control: "options" },
+ radius: { control: Input },
+ width: { control: Input }, //custom
+ color: { control: Input },
+ style: { control: Input },
}
export const effects = {
- opacity: "string",
- rotate: "string",
- shadow: "string",
+ opacity: { control: Input },
+ rotate: { control: Input },
+ shadow: { control: Input },
}
export const transitions = {
- property: { control: "options" },
- duration: { control: "string" },
- ease: { control: "options" },
+ property: { control: Input },
+ duration: { control: Input },
+ ease: { control: Input },
+}
+
+export const all = {
+ general,
+ layout,
+ spacing,
+ size,
+ position,
+ typography,
+ background,
+ border,
+ effects,
+ transitions,
}
export function excludeProps(props, propsToExclude) {
diff --git a/packages/builder/src/components/userInterface/temporaryPanelStructure.js b/packages/builder/src/components/userInterface/temporaryPanelStructure.js
index bc60ac2bd6..c4426d1035 100644
--- a/packages/builder/src/components/userInterface/temporaryPanelStructure.js
+++ b/packages/builder/src/components/userInterface/temporaryPanelStructure.js
@@ -1,4 +1,4 @@
-import { general, layout, background } from "./propertyCategories.js"
+import { general, layout, typography, background, all } from "./propertyCategories.js"
export default {
categories: [
@@ -13,7 +13,7 @@ export default {
icon: 'ri-layout-row-fill',
commonProps: {},
children: [],
- properties: { background },
+ properties: { ...all },
},
{
name: 'Text',
@@ -29,7 +29,7 @@ export default {
properties: {
general,
layout,
- background,
+ typography,
},
},
{