Pre demo changes

This commit is contained in:
Conor_Mack 2020-05-08 20:29:15 +01:00
parent 2b3ce7b34d
commit 2e6a0e36c0
7 changed files with 67 additions and 19 deletions

View File

@ -29,7 +29,7 @@
let selectedCategory = categories[0] let selectedCategory = categories[0]
$: components = $store.components $: components = $store.components
$: componentInstance = $store.currentComponentInfo //contains prop values of currently selected component $: componentInstance = $store.currentComponentInfo
$: componentDefinition = $store.components.find( $: componentDefinition = $store.components.find(
c => c.name === componentInstance._component c => c.name === componentInstance._component
) )
@ -39,8 +39,7 @@
c => c._component === componentInstance._component c => c._component === componentInstance._component
) )
// OLD PROPS ============================================= // SCREEN PROPS =============================================
$: screen_props = $: screen_props =
$store.currentFrontEndType === "page" $store.currentFrontEndType === "page"
? getProps($store.currentPreviewItem, ["name", "favicon"]) ? getProps($store.currentPreviewItem, ["name", "favicon"])

View File

@ -1,6 +1,7 @@
<script> <script>
import { excludeProps } from "./propertyCategories.js" import { excludeProps } from "./propertyCategories.js"
import PropertyControl from "./PropertyControl.svelte" import PropertyControl from "./PropertyControl.svelte"
export let name = "" export let name = ""
export let properties = {} export let properties = {}
export let componentInstance = {} export let componentInstance = {}
@ -8,6 +9,7 @@
export let onPropChanged = () => {} export let onPropChanged = () => {}
export let show = false export let show = false
let showComponentGroup = false
const propExistsOnComponentDef = prop => prop in componentDefinition.props const propExistsOnComponentDef = prop => prop in componentDefinition.props
const capitalize = name => name[0].toUpperCase() + name.slice(1) const capitalize = name => name[0].toUpperCase() + name.slice(1)
@ -16,10 +18,22 @@
!!v.target ? onPropChanged(key, v.target.value) : onPropChanged(key, v) !!v.target ? onPropChanged(key, v.target.value) : onPropChanged(key, v)
} }
$: {
let res = false
let componentProps = Object.keys(componentDefinition.props)
for (let prop in properties) {
if (componentProps.includes(prop)) {
showComponentGroup = true
}
if (showComponentGroup) break
}
}
$: propertyDefinition = Object.entries(properties) $: propertyDefinition = Object.entries(properties)
$: icon = show ? "ri-arrow-down-s-fill" : "ri-arrow-right-s-fill" $: icon = show ? "ri-arrow-down-s-fill" : "ri-arrow-right-s-fill"
</script> </script>
<!-- {#if showComponentGroup} -->
<div class="property-group-container"> <div class="property-group-container">
<div class="property-group-name" on:click={() => (show = !show)}> <div class="property-group-name" on:click={() => (show = !show)}>
<div class="icon"> <div class="icon">
@ -41,6 +55,7 @@
{/each} {/each}
</div> </div>
</div> </div>
<!-- {/if} -->
<style> <style>
.property-group-container { .property-group-container {

View File

@ -96,7 +96,13 @@ export const typography = {
lineHeight: { label: "Line H", control: Input }, lineHeight: { label: "Line H", control: Input },
color: { color: {
control: OptionSelect, control: OptionSelect,
options: [{ label: "red" }, { label: "blue" }, { label: "green" }], options: [
{ label: "black" },
{ label: "red" },
{ label: "white" },
{ label: "blue" },
{ label: "green" },
],
}, },
textAlign: { textAlign: {
label: "align", label: "align",
@ -114,7 +120,17 @@ export const typography = {
} }
export const background = { export const background = {
backgroundColor: { label: "Background Color", control: Input }, backgroundColor: {
label: "Background Color",
control: OptionSelect,
options: [
{ label: "white" },
{ label: "red" },
{ label: "blue" },
{ label: "green" },
{ label: "black" },
],
},
image: { control: Input }, //custom image: { control: Input }, //custom
} }

View File

@ -1,4 +1,12 @@
import { general, layout, typography, background, all } from "./propertyCategories.js" import {
general,
layout,
typography,
border,
size,
background,
all,
} from "./propertyCategories.js"
export default { export default {
categories: [ categories: [
@ -13,7 +21,7 @@ export default {
icon: 'ri-layout-row-fill', icon: 'ri-layout-row-fill',
commonProps: {}, commonProps: {},
children: [], children: [],
properties: { ...all }, properties: { background, size },
}, },
{ {
name: 'Text', name: 'Text',
@ -27,9 +35,7 @@ export default {
description: "A component for displaying heading text", description: "A component for displaying heading text",
icon: "ri-heading", icon: "ri-heading",
properties: { properties: {
general, ...all
layout,
typography,
}, },
}, },
{ {
@ -37,7 +43,7 @@ export default {
name: 'Paragraph', name: 'Paragraph',
description: "A component for displaying paragraph text.", description: "A component for displaying paragraph text.",
icon: 'ri-paragraph', icon: 'ri-paragraph',
properties: {} properties: { general, typography },
} }
] ]
}, },
@ -83,7 +89,7 @@ export default {
description: 'A basic html button that is ready for styling', description: 'A basic html button that is ready for styling',
icon: 'ri-radio-button-fill', icon: 'ri-radio-button-fill',
children: [], children: [],
properties: {}, properties: { background, typography, border, size },
}, },
{ {
_component: "@budibase/standard-components/icon", _component: "@budibase/standard-components/icon",
@ -112,8 +118,8 @@ export default {
name: 'Card', name: 'Card',
description: 'A basic card component that can contain content and actions.', description: 'A basic card component that can contain content and actions.',
icon: 'ri-layout-bottom-line', icon: 'ri-layout-bottom-line',
properties: {}, children: [],
children: [] properties: { size, background, border },
}, },
{ {
name: 'Login', name: 'Login',

View File

@ -326,6 +326,8 @@
}, },
"backgroundColor": "string", "backgroundColor": "string",
"color": "string", "color": "string",
"height": "string",
"width": "string",
"borderWidth": "string", "borderWidth": "string",
"borderColor": "string", "borderColor": "string",
"borderStyle": { "borderStyle": {
@ -343,7 +345,7 @@
], ],
"default": "none" "default": "none"
} }
}, },
"container": true, "container": true,
"tags": [ "tags": [
"div", "div",

View File

@ -3,7 +3,7 @@
import { buildStyle } from "./buildStyle" import { buildStyle } from "./buildStyle"
export let className = "default" export let className = "default"
export let disabled = false export let disabled = false
export let contentText export let text
export let onClick export let onClick
export let background export let background
export let color export let color
@ -66,9 +66,7 @@
disabled={disabled || false} disabled={disabled || false}
on:click={clickHandler} on:click={clickHandler}
style={buttonStyles}> style={buttonStyles}>
{#if !_bb.props._children || _bb.props._children.length === 0} {#if !_bb.props._children || _bb.props._children.length === 0}{text}{/if}
{contentText}
{/if}
</button> </button>
<style> <style>

View File

@ -6,6 +6,8 @@
export let type = "div" export let type = "div"
export let backgroundColor export let backgroundColor
export let color export let color
export let width
export let height
export let borderWidth export let borderWidth
export let borderColor export let borderColor
export let borderStyle export let borderStyle
@ -18,6 +20,8 @@
$: cssVariables = { $: cssVariables = {
backgroundColor, backgroundColor,
color, color,
height,
width,
borderWidth, borderWidth,
borderColor, borderColor,
borderStyle, borderStyle,
@ -108,6 +112,14 @@
color: var(--color); color: var(--color);
} }
.height {
height: var(--height);
}
.width {
width: var(--width);
}
.borderColor { .borderColor {
border-color: var(--borderColor); border-color: var(--borderColor);
} }