-
+
+
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/common/Checkbox.svelte b/packages/builder/src/common/Checkbox.svelte
index c1cea90df..9f777ca70 100644
--- a/packages/builder/src/common/Checkbox.svelte
+++ b/packages/builder/src/common/Checkbox.svelte
@@ -1,16 +1,13 @@
-
{label}
+
+{label}
\ No newline at end of file
+ input {
+ margin-right: 7px;
+ }
+
diff --git a/packages/builder/src/common/CodeArea.svelte b/packages/builder/src/common/CodeArea.svelte
index af60b9b34..47f563b04 100644
--- a/packages/builder/src/common/CodeArea.svelte
+++ b/packages/builder/src/common/CodeArea.svelte
@@ -1,24 +1,22 @@
{label}
-
+
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/common/ComingSoon.svelte b/packages/builder/src/common/ComingSoon.svelte
index 328ccc24a..afb2a7d22 100644
--- a/packages/builder/src/common/ComingSoon.svelte
+++ b/packages/builder/src/common/ComingSoon.svelte
@@ -1,17 +1,13 @@
-
Coming Sometime: {name}
+ Coming Sometime: {name}
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/common/DatePicker.svelte b/packages/builder/src/common/DatePicker.svelte
index ca6547ebf..78fb506e4 100644
--- a/packages/builder/src/common/DatePicker.svelte
+++ b/packages/builder/src/common/DatePicker.svelte
@@ -1,36 +1,34 @@
-
{label}
-
-
-
+
{label}
+
+
+
-
diff --git a/packages/builder/src/common/Dropdown.svelte b/packages/builder/src/common/Dropdown.svelte
index a9163d838..8a3dbfba4 100644
--- a/packages/builder/src/common/Dropdown.svelte
+++ b/packages/builder/src/common/Dropdown.svelte
@@ -1,39 +1,44 @@
-
-
{label}
-
- {#if multiple}
-
-
- {#each options as option}
- {!textMember ? option : textMember(option)}
- {/each}
-
-
- {:else}
-
-
- {#each options as option}
- {!textMember ? option : textMember(option)}
- {/each}
-
- {/if}
-
+
{label}
+
+ {#if multiple}
+
+ {#each options as option}
+
+ {!textMember ? option : textMember(option)}
+
+ {/each}
+
+ {:else}
+
+ {#each options as option}
+
+ {!textMember ? option : textMember(option)}
+
+ {/each}
+
+ {/if}
+
diff --git a/packages/builder/src/common/DropdownButton.svelte b/packages/builder/src/common/DropdownButton.svelte
index 9953aaa8c..0455c8b7d 100644
--- a/packages/builder/src/common/DropdownButton.svelte
+++ b/packages/builder/src/common/DropdownButton.svelte
@@ -1,68 +1,65 @@
+
(isDroppedDown = !isDroppedDown)}>
+ {@html getIcon(iconName)}
-
isDroppedDown = !isDroppedDown}>
- {@html getIcon(iconName)}
-
-
isDroppedDown = false} style="display: {isDroppedDown ? 'block' : 'none'}">
+
(isDroppedDown = false)}
+ style="display: {isDroppedDown ? 'block' : 'none'}" />
-
- {#each actions as action}
-
- {action.label}
-
- {/each}
-
-
-
+
+ {#each actions as action}
+
{action.label}
+ {/each}
+
+
\ No newline at end of file
+ color: var(--white);
+ }
+
diff --git a/packages/builder/src/common/ErrorsBox.svelte b/packages/builder/src/common/ErrorsBox.svelte
index 3d863f19e..9ddea77a4 100644
--- a/packages/builder/src/common/ErrorsBox.svelte
+++ b/packages/builder/src/common/ErrorsBox.svelte
@@ -1,29 +1,29 @@
{#if hasErrors}
-
+
{#each errors as error}
-
{error.field ? `${error.field}: ` : ""}{error.error}
+
+ {error.field ? `${error.field}: ` : ''}{error.error}
+
{/each}
-
+
{/if}
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/common/IconButton.svelte b/packages/builder/src/common/IconButton.svelte
index 47af2b7da..d589d6ce7 100644
--- a/packages/builder/src/common/IconButton.svelte
+++ b/packages/builder/src/common/IconButton.svelte
@@ -1,63 +1,59 @@
-
- {@html getIcon(icon, size)}
+
+ {@html getIcon(icon, size)}
-
\ No newline at end of file
+ button:active {
+ outline: none;
+ }
+
diff --git a/packages/builder/src/common/Icons/ArrowDown.svelte b/packages/builder/src/common/Icons/ArrowDown.svelte
index a710c8ae8..5a0f2231e 100644
--- a/packages/builder/src/common/Icons/ArrowDown.svelte
+++ b/packages/builder/src/common/Icons/ArrowDown.svelte
@@ -1,4 +1,10 @@
-
-
-
+
+
+
diff --git a/packages/builder/src/common/Icons/CircleIndicator.svelte b/packages/builder/src/common/Icons/CircleIndicator.svelte
index 9c0fe034f..35938fb7e 100644
--- a/packages/builder/src/common/Icons/CircleIndicator.svelte
+++ b/packages/builder/src/common/Icons/CircleIndicator.svelte
@@ -1,3 +1,3 @@
-
+
-
\ No newline at end of file
+
diff --git a/packages/builder/src/common/Icons/Image.svelte b/packages/builder/src/common/Icons/Image.svelte
index 8a07fedbd..698ef4121 100644
--- a/packages/builder/src/common/Icons/Image.svelte
+++ b/packages/builder/src/common/Icons/Image.svelte
@@ -1,4 +1,13 @@
-
-
-
+
+
+
diff --git a/packages/builder/src/common/Icons/Input.svelte b/packages/builder/src/common/Icons/Input.svelte
index 58c44466c..4a322bcc0 100644
--- a/packages/builder/src/common/Icons/Input.svelte
+++ b/packages/builder/src/common/Icons/Input.svelte
@@ -1,4 +1,12 @@
-
-
-
+
+
+
diff --git a/packages/builder/src/common/Icons/Layout.svelte b/packages/builder/src/common/Icons/Layout.svelte
index 7d5a04ca2..872c05af1 100644
--- a/packages/builder/src/common/Icons/Layout.svelte
+++ b/packages/builder/src/common/Icons/Layout.svelte
@@ -1,3 +1,11 @@
-
-
+
+
+
diff --git a/packages/builder/src/common/Icons/Paint.svelte b/packages/builder/src/common/Icons/Paint.svelte
index 641e6b101..e6cbe6079 100644
--- a/packages/builder/src/common/Icons/Paint.svelte
+++ b/packages/builder/src/common/Icons/Paint.svelte
@@ -1,3 +1,13 @@
-
-
+
+
+
diff --git a/packages/builder/src/common/Icons/Pencil.svelte b/packages/builder/src/common/Icons/Pencil.svelte
index 266458a13..eb2471683 100644
--- a/packages/builder/src/common/Icons/Pencil.svelte
+++ b/packages/builder/src/common/Icons/Pencil.svelte
@@ -16,4 +16,4 @@
svg:hover {
cursor: pointer;
}
-
\ No newline at end of file
+
diff --git a/packages/builder/src/common/Icons/Terminal.svelte b/packages/builder/src/common/Icons/Terminal.svelte
index d27888bf7..4d3b6e3b5 100644
--- a/packages/builder/src/common/Icons/Terminal.svelte
+++ b/packages/builder/src/common/Icons/Terminal.svelte
@@ -1,4 +1,12 @@
-
-
-
+
+
+
diff --git a/packages/builder/src/common/Input.svelte b/packages/builder/src/common/Input.svelte
index 04938b670..e7c5e7884 100644
--- a/packages/builder/src/common/Input.svelte
+++ b/packages/builder/src/common/Input.svelte
@@ -1,7 +1,9 @@
+
+
-
-
diff --git a/packages/builder/src/common/Inputs/InputGroup.svelte b/packages/builder/src/common/Inputs/InputGroup.svelte
index 22a272aec..320b5ad51 100644
--- a/packages/builder/src/common/Inputs/InputGroup.svelte
+++ b/packages/builder/src/common/Inputs/InputGroup.svelte
@@ -1,29 +1,29 @@
{#each meta as { placeholder }, i}
- _values[i] = e.target.value} />
+ (_values[i] = e.target.value)} />
{/each}
-
-
-
- {#if onClosed}
-
- {/if}
-
-
-
diff --git a/packages/builder/src/common/NumberBox.svelte b/packages/builder/src/common/NumberBox.svelte
index b1f4f3410..23db0f12b 100644
--- a/packages/builder/src/common/NumberBox.svelte
+++ b/packages/builder/src/common/NumberBox.svelte
@@ -1,26 +1,21 @@
-
{label}
-
-
-
+
{label}
+
+
+
-
diff --git a/packages/builder/src/common/PlusButton.svelte b/packages/builder/src/common/PlusButton.svelte
index 7424ffa66..5f5724425 100644
--- a/packages/builder/src/common/PlusButton.svelte
+++ b/packages/builder/src/common/PlusButton.svelte
@@ -1,3 +1,5 @@
++
+
-
-+
diff --git a/packages/builder/src/common/Select.svelte b/packages/builder/src/common/Select.svelte
index bebad32c3..be0ccafa7 100644
--- a/packages/builder/src/common/Select.svelte
+++ b/packages/builder/src/common/Select.svelte
@@ -1,8 +1,17 @@
+
+
+
+
+
+ {@html getIcon('chevron-down', '24')}
+
+
+
-
-
-
-
-
-
- {@html getIcon('chevron-down', '24')}
-
-
diff --git a/packages/builder/src/common/Textbox.svelte b/packages/builder/src/common/Textbox.svelte
index 1cb533820..621af6e25 100644
--- a/packages/builder/src/common/Textbox.svelte
+++ b/packages/builder/src/common/Textbox.svelte
@@ -1,32 +1,32 @@
-
{label}
-
-
-
- {#if infoText}
+
{label}
+
+
+
+ {#if infoText}
{infoText}
- {/if}
+ {/if}
-
diff --git a/packages/builder/src/common/ValuesList.svelte b/packages/builder/src/common/ValuesList.svelte
index 73f039edf..96e7dcac8 100644
--- a/packages/builder/src/common/ValuesList.svelte
+++ b/packages/builder/src/common/ValuesList.svelte
@@ -1,35 +1,30 @@
-
-
{label}
-
-
-
+
{label}
+
+
+
\ No newline at end of file
+ textarea {
+ width: 300px;
+ height: 200px;
+ }
+
diff --git a/packages/builder/src/database/ActionsHeader.svelte b/packages/builder/src/database/ActionsHeader.svelte
index 7292afc75..6dd8f3a4e 100644
--- a/packages/builder/src/database/ActionsHeader.svelte
+++ b/packages/builder/src/database/ActionsHeader.svelte
@@ -1,62 +1,59 @@
-
-
- {#if $store.currentNodeIsNew}
- Create
- {:else}
- Update
- {/if}
-
-
- {#if !$store.currentNodeIsNew}
-
- Delete
-
- {/if}
-
-
- {#if !!$store.errors && $store.errors.length > 0}
+
+
+ {#if $store.currentNodeIsNew}Create{:else}Update{/if}
+
+
+ {#if !$store.currentNodeIsNew}
+
+ Delete
+
+ {/if}
+
+
+ {#if !!$store.errors && $store.errors.length > 0}
-
+
- {/if}
-
-
- Are you sure you want to delete {$store.currentNode.name} ?
-
- Yes
- confirmDelete = false}>No
-
-
+ {/if}
+
+
+
+ Are you sure you want to delete {$store.currentNode.name} ?
+
+
+ Yes
+ (confirmDelete = false)}>
+ No
+
+
+
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/database/CollectionView.svelte b/packages/builder/src/database/CollectionView.svelte
index b4006b73f..494401e95 100644
--- a/packages/builder/src/database/CollectionView.svelte
+++ b/packages/builder/src/database/CollectionView.svelte
@@ -1,20 +1,16 @@
-
{record.name}
-
+
{record.name}
+
\ No newline at end of file
+
diff --git a/packages/builder/src/database/DatabaseRoot.svelte b/packages/builder/src/database/DatabaseRoot.svelte
index d290c1646..f8e1b2875 100644
--- a/packages/builder/src/database/DatabaseRoot.svelte
+++ b/packages/builder/src/database/DatabaseRoot.svelte
@@ -1,82 +1,85 @@
-
-
- {#if !$store.currentNode}
-
:)
- {:else if $store.currentNode.type === "record"}
-
- {:else}
-
- {/if}
-
+
+
+ {#if !$store.currentNode}
+
:)
+ {:else if $store.currentNode.type === 'record'}
+
+ {:else}
+
+ {/if}
+
-
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/database/FieldView.svelte b/packages/builder/src/database/FieldView.svelte
index b44035331..a369272dc 100644
--- a/packages/builder/src/database/FieldView.svelte
+++ b/packages/builder/src/database/FieldView.svelte
@@ -1,121 +1,158 @@
-
-
-
-
-
- Save
- onFinished(false)}>Cancel
-
+
+
+
+
+
+ Save
+ onFinished(false)}>
+ Cancel
+
+
\ No newline at end of file
+
diff --git a/packages/builder/src/database/HierarchyRow.svelte b/packages/builder/src/database/HierarchyRow.svelte
index ef0bae03c..852383922 100644
--- a/packages/builder/src/database/HierarchyRow.svelte
+++ b/packages/builder/src/database/HierarchyRow.svelte
@@ -1,45 +1,42 @@
-
store.selectExistingNode(node.nodeId)} style="padding-left: {20 + (level * 20)}px">
- {node.name}
-
- {#if node.children}
+
store.selectExistingNode(node.nodeId)}
+ style="padding-left: {20 + level * 20}px">
+ {node.name}
+
+ {#if node.children}
{#each node.children as child}
-
+
{/each}
- {/if}
+ {/if}
-
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/database/IndexView.svelte b/packages/builder/src/database/IndexView.svelte
index a3bd26224..ba1f5a12d 100644
--- a/packages/builder/src/database/IndexView.svelte
+++ b/packages/builder/src/database/IndexView.svelte
@@ -1,76 +1,79 @@
\ No newline at end of file
+ .allowed-records > span {
+ margin-right: 30px;
+ }
+
diff --git a/packages/builder/src/database/RecordView.svelte b/packages/builder/src/database/RecordView.svelte
index b6cf351b4..3b7a26d4d 100644
--- a/packages/builder/src/database/RecordView.svelte
+++ b/packages/builder/src/database/RecordView.svelte
@@ -1,300 +1,307 @@
-
-
- Fields {@html getIcon("plus")}
-
-
- {#if record.fields.length > 0}
-
-
-
- Name
- Type
- Options
-
-
-
-
- {#each record.fields as field}
-
-
- {field.label}
- {field.name}
-
- {field.type}
- {@html getTypeOptions(field.typeOptions)}
-
- editField(field)}>{@html getIcon("edit")}
- deleteField(field)}>{@html getIcon("trash")}
-
-
- {/each}
-
-
- {:else}
- (no fields added)
+
+
+ Fields
+
+ {@html getIcon('plus')}
+
+
- {#if editingField}
-
onFinishedFieldEdit(false) }>
-
+ {#if record.fields.length > 0}
+
+
+
+ Name
+ Type
+ Options
+
+
+
+
+ {#each record.fields as field}
+
+
+ {field.label}
+
+ {field.name}
+
+
+ {field.type}
+
+ {@html getTypeOptions(field.typeOptions)}
+
+
+ editField(field)}>
+ {@html getIcon('edit')}
+
+ deleteField(field)}>
+ {@html getIcon('trash')}
+
+
+
+ {/each}
+
+
+ {:else}(no fields added){/if}
+
+ {#if editingField}
+ onFinishedFieldEdit(false)}>
+
- {/if}
+ {/if}
-
- Indexes
-
+ Indexes
- {#each record.indexes as index}
+ {#each record.indexes as index}
-
- {index.name}
- editIndex(index)}>{@html getIcon("edit")}
-
-
- records indexed:
- {getIndexAllowedRecords(index)}
- type:
- {index.indexType}
-
+
+ {index.name}
+ editIndex(index)}>
+ {@html getIcon('edit')}
+
+
+
+ records indexed:
+ {getIndexAllowedRecords(index)}
+ type:
+ {index.indexType}
+
+
+ map:
+ {index.map}
+
+ {#if index.filter}
- map:
- {index.map}
+ filter:
+ {index.filter}
- {#if index.filter}
-
- filter:
- {index.filter}
-
- {/if}
-
- {:else}
-
- No indexes added.
+ {/if}
- {/each}
+ {:else}
+ No indexes added.
+ {/each}
-
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/nav/BackendNav.svelte b/packages/builder/src/nav/BackendNav.svelte
index 9545098fb..d73e9d04e 100644
--- a/packages/builder/src/nav/BackendNav.svelte
+++ b/packages/builder/src/nav/BackendNav.svelte
@@ -1,163 +1,153 @@
-
-
-
-
+
+
+
+
-
- {#each $store.hierarchy.children as record}
-
- {/each}
+
+ {#each $store.hierarchy.children as record}
+
+ {/each}
- {#each $store.hierarchy.indexes as index}
-
- {/each}
-
+ {#each $store.hierarchy.indexes as index}
+
+ {/each}
+
-
-
+
+
-
\ No newline at end of file
+ overflow-y: auto;
+ }
+
diff --git a/packages/builder/src/nav/HierarchyRow.svelte b/packages/builder/src/nav/HierarchyRow.svelte
index f7a62c3f0..6a84df40a 100644
--- a/packages/builder/src/nav/HierarchyRow.svelte
+++ b/packages/builder/src/nav/HierarchyRow.svelte
@@ -1,66 +1,63 @@
-
store.selectExistingNode(node.nodeId)} style="padding-left: {20 + (level * 20)}px">
- {@html getIcon(icon, 12)} {node.name}
-
- {#if node.children}
- {#each node.children as child}
-
- {/each}
- {/if}
- {#if node.indexes}
- {#each node.indexes as index}
-
- {/each}
- {/if}
+
store.selectExistingNode(node.nodeId)}
+ style="padding-left: {20 + level * 20}px">
+ {@html getIcon(icon, 12)}
+ {node.name}
+
+ {#if node.children}
+ {#each node.children as child}
+
+ {/each}
+ {/if}
+ {#if node.indexes}
+ {#each node.indexes as index}
+
+ {/each}
+ {/if}
-
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/nav/NavItem.svelte b/packages/builder/src/nav/NavItem.svelte
index d87033c15..6fc3dd1d8 100644
--- a/packages/builder/src/nav/NavItem.svelte
+++ b/packages/builder/src/nav/NavItem.svelte
@@ -1,43 +1,35 @@
-
- {label}
-
-
+
{label}
\ No newline at end of file
+ }
+
diff --git a/packages/builder/src/userInterface/CodeEditor.svelte b/packages/builder/src/userInterface/CodeEditor.svelte
index 68719a52a..05072e856 100644
--- a/packages/builder/src/userInterface/CodeEditor.svelte
+++ b/packages/builder/src/userInterface/CodeEditor.svelte
@@ -1,83 +1,84 @@
-
-
+
-
+
+
+
-
-
-
Use the code box below to control how this component is displayed, with javascript.
-
-
-
function(render, context, store) {"{"}
-
-
-
-
- {"}"}
-
+
+ Use the code box below to control how this component is displayed, with
+ javascript.
+
+
+
+
+ function(render, context, store) {'{'}
+
+
+
+
{'}'}
-
-
- Save
- Close
-
+
+
+ Save
+ Close
+
+
diff --git a/packages/builder/src/userInterface/ComponentPanel.svelte b/packages/builder/src/userInterface/ComponentPanel.svelte
index 1de496bb1..ada73a61b 100644
--- a/packages/builder/src/userInterface/ComponentPanel.svelte
+++ b/packages/builder/src/userInterface/ComponentPanel.svelte
@@ -1,119 +1,129 @@
-
-
- current_view = 'props'}>
-
-
-
-
- current_view = 'layout'}>
-
-
-
-
- codeEditor && codeEditor.show()}>
- {#if componentInfo._code && componentInfo._code.trim().length > 0}
-
-
-
- {/if}
-
-
-
-
- current_view = 'events'}>
-
-
-
-
-
- {#if !componentInfo.component}
-
-
- {#if current_view === 'props'}
-
- {:else if current_view === 'layout'}
-
- {:else if current_view === 'events'}
-
+
+
+ (current_view = 'props')}>
+
+
+
+
+ (current_view = 'layout')}>
+
+
+
+
+ codeEditor && codeEditor.show()}>
+ {#if componentInfo._code && componentInfo._code.trim().length > 0}
+
+
+
{/if}
-
-
-
-
- {:else}
-
This is a screen, this will be dealt with later
- {/if}
+
+
+
+
+ (current_view = 'events')}>
+
+
+
+
+
+ {#if !componentInfo.component}
+
+
+ {#if current_view === 'props'}
+
+ {:else if current_view === 'layout'}
+
+ {:else if current_view === 'events'}
+
+ {/if}
+
+
+
+
+ {:else}
+
This is a screen, this will be dealt with later
+ {/if}
-
diff --git a/packages/builder/src/userInterface/ComponentSearch.svelte b/packages/builder/src/userInterface/ComponentSearch.svelte
index a56932963..340098880 100644
--- a/packages/builder/src/userInterface/ComponentSearch.svelte
+++ b/packages/builder/src/userInterface/ComponentSearch.svelte
@@ -1,64 +1,59 @@
-
-
-
- {#each filteredComponents as component}
-
onComponentChosen(component)}>
-
{component.name}
-
{component.description}
-
- {/each}
-
+
+
+
+ {#each filteredComponents as component}
+
onComponentChosen(component)}>
+
{component.name}
+
{component.description}
+
+ {/each}
+
diff --git a/packages/builder/src/userInterface/ComponentSelector.svelte b/packages/builder/src/userInterface/ComponentSelector.svelte
index 9a7ad0c19..ec7355a97 100644
--- a/packages/builder/src/userInterface/ComponentSelector.svelte
+++ b/packages/builder/src/userInterface/ComponentSelector.svelte
@@ -1,184 +1,138 @@
{#each componentLibraries as lib}
-
+
-
+
{#if allowGenerators}
-
-
- {#each lib.generators as generator}
+
-
onGeneratorChosen(generator)}>
-
- {splitName(generator.name).componentName}
+ {#each lib.generators as generator}
+
onGeneratorChosen(generator)}>
+
{splitName(generator.name).componentName}
+
{generator.description}
-
- {generator.description}
-
-
-
- {/each}
+ {/each}
{/if}
-
+
{#each lib.components as component}
-
-
onComponentChosen(component)}>
-
- {splitName(component.name).componentName}
-
-
- {component.description}
-
-
-
+
onComponentChosen(component)}>
+
{splitName(component.name).componentName}
+
{component.description}
+
{/each}
-
-
+
{/each}
-
-
+
- {#each screens as component}
-
-
onComponentChosen(component)}>
-
- {component.name}
-
-
- {component.description}
-
+ {#each screens as component}
+
onComponentChosen(component)}>
+
{component.name}
+
{component.description}
-
- {/each}
+ {/each}
-
diff --git a/packages/builder/src/userInterface/ComponentsHierarchy.svelte b/packages/builder/src/userInterface/ComponentsHierarchy.svelte
index 48f0ed175..c1542019b 100644
--- a/packages/builder/src/userInterface/ComponentsHierarchy.svelte
+++ b/packages/builder/src/userInterface/ComponentsHierarchy.svelte
@@ -1,120 +1,114 @@
+ import { last, sortBy, map, trimCharsStart, trimChars, join } from "lodash/fp"
-
+ import { pipe } from "../common/core"
+ import { store } from "../builderStore"
+ import { ArrowDownIcon } from "../common/Icons/"
+
+ export let components = []
+
+ const joinPath = join("/")
+
+ const normalizedName = name =>
+ pipe(name, [
+ trimCharsStart("./"),
+ trimCharsStart("~/"),
+ trimCharsStart("../"),
+ trimChars(" "),
+ ])
+
+ const lastPartOfName = c =>
+ last(c.name ? c.name.split("/") : c._component.split("/"))
+
+ const isComponentSelected = (current, comp) =>
+ current &&
+ current.component &&
+ comp.component &&
+ current.component.name === comp.component.name
- {#each _components as component}
-
store.setCurrentScreen(component.component.name)}>
+ const isFolderSelected = (current, folder) => isInSubfolder(current, folder)
-
- {#if component.component.props && component.component.props._children}
-
- {/if}
-
+ $: _components = pipe(components, [
+ map(c => ({ component: c, title: lastPartOfName(c) })),
+ sortBy("title"),
+ ])
-
{component.title}
-
+ function select_component(screen, component) {
+ store.setCurrentScreen(screen)
+ store.selectComponent(component)
+ }
- {#if isScreenSelected(component) && component.component.props && component.component.props._children}
-
select_component(component.component.name, child)} />
+ const isScreenSelected = component =>
+ component.component &&
+ $store.currentFrontEndItem &&
+ component.component.name === $store.currentFrontEndItem.name
+
+
+
+
+ {#each _components as component}
+
store.setCurrentScreen(component.component.name)}>
+
+
+ {#if component.component.props && component.component.props._children}
+
{/if}
- {/each}
+
+
+
{component.title}
+
+
+ {#if isScreenSelected(component) && component.component.props && component.component.props._children}
+
select_component(component.component.name, child)} />
+ {/if}
+ {/each}
diff --git a/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte b/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte
index 433f17641..2a1d39cf9 100644
--- a/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte
+++ b/packages/builder/src/userInterface/ComponentsHierarchyChildren.svelte
@@ -1,29 +1,31 @@
{#each components as component}
- onSelect(component)}>
-
+ onSelect(component)}>
+
{get_capitalised_name(component._component)}
{#if component._children}
-
+
{/if}
{/each}
@@ -46,6 +48,6 @@
}
.selected {
color: var(--button-text);
- background: var(--background-button)!important;
+ background: var(--background-button) !important;
}
diff --git a/packages/builder/src/userInterface/ComponentsList.svelte b/packages/builder/src/userInterface/ComponentsList.svelte
index ca8ea6824..0fa88a5da 100644
--- a/packages/builder/src/userInterface/ComponentsList.svelte
+++ b/packages/builder/src/userInterface/ComponentsList.svelte
@@ -1,96 +1,91 @@
- {#each componentLibraries as lib}
-
+ {#each componentLibraries as lib}
+
-
-
- current_view = 'text'}>
-
-
-
-
- current_view = 'layout'}>
-
-
-
-
- current_view = 'media'}>
-
-
-
-
-
- {#each lib.components.filter(_ => true) as component}
-
-
onComponentChosen(component.name)}>
-
- {splitName(component.name).componentName}
-
+
+
+ (current_view = 'text')}>
+
+
+
+
+ (current_view = 'layout')}>
+
+
+
+
+ (current_view = 'media')}>
+
+
+
+
+
+ {#each lib.components.filter(_ => true) as component}
+
onComponentChosen(component.name)}>
+
{splitName(component.name).componentName}
-
- {/each}
+ {/each}
-
- {/each}
+ {/each}
-
diff --git a/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte b/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte
index a9a373eb0..76f7b83b8 100644
--- a/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte
+++ b/packages/builder/src/userInterface/ComponentsPaneSwitcher.svelte
@@ -1,63 +1,59 @@
-
+
- selectTab("properties")}>
- Properties
-
+ selectTab('properties')}>
+ Properties
+
- selectTab("components")}>
- Components
-
+ selectTab('components')}>
+ Components
+
-
+
-
- {#if selected==="properties"}
-
- {/if}
+
+ {#if selected === 'properties'}
+
+ {/if}
- {#if selected==="components"}
-
- {/if}
-
+ {#if selected === 'components'}
+
+ {/if}
+
-
diff --git a/packages/builder/src/userInterface/CurrentItemPreview.svelte b/packages/builder/src/userInterface/CurrentItemPreview.svelte
index 84420c7bd..e1f5b9935 100644
--- a/packages/builder/src/userInterface/CurrentItemPreview.svelte
+++ b/packages/builder/src/userInterface/CurrentItemPreview.svelte
@@ -1,85 +1,71 @@
-
- {#if hasComponent}
-