+
@@ -28,4 +29,18 @@
.main.narrow {
max-width: 600px;
}
+
+ @media (max-width: 640px) {
+ .content {
+ flex-direction: column;
+ }
+ .side-nav:not(.show-mobile) {
+ display: none;
+ }
+ .side-nav.show-mobile :global(.side-nav) {
+ border-bottom: var(--border-light);
+ margin: 0 -24px;
+ padding: 0 24px 32px 24px;
+ }
+ }
diff --git a/packages/builder/src/components/portal/page/Header.svelte b/packages/builder/src/components/portal/page/Header.svelte
index be75c5271b..19a2cd59a8 100644
--- a/packages/builder/src/components/portal/page/Header.svelte
+++ b/packages/builder/src/components/portal/page/Header.svelte
@@ -2,9 +2,10 @@
import { Heading } from "@budibase/bbui"
export let title
+ export let wrap = true
-
+
{title}
@@ -20,10 +21,19 @@
align-items: center;
gap: var(--spacing-xl);
}
+ .header.wrap {
+ flex-wrap: wrap;
+ }
.header :global(.spectrum-Heading) {
flex: 1 1 auto;
margin-top: -2px;
}
+ .header:not(.wrap) :global(.spectrum-Heading) {
+ overflow: hidden;
+ width: 0;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
.buttons {
display: flex;
flex-direction: row;
@@ -34,4 +44,9 @@
.buttons :global(> div) {
display: contents;
}
+ @media (max-width: 640px) {
+ .wrap .buttons {
+ margin-bottom: var(--spacing-m);
+ }
+ }
diff --git a/packages/builder/src/components/start/AppRow.svelte b/packages/builder/src/components/start/AppRow.svelte
index a1a9cf69f7..47cf2d20a4 100644
--- a/packages/builder/src/components/start/AppRow.svelte
+++ b/packages/builder/src/components/start/AppRow.svelte
@@ -8,41 +8,39 @@
export let appOverview
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/builder/src/pages/builder/portal/_layout.svelte b/packages/builder/src/pages/builder/portal/_layout.svelte
index 99a140f16a..9048502550 100644
--- a/packages/builder/src/pages/builder/portal/_layout.svelte
+++ b/packages/builder/src/pages/builder/portal/_layout.svelte
@@ -1,30 +1,15 @@
-
-
- editApp(app)}>
-
- {app.name}
-
-
+ editApp(app)}>
+
- {`${window.origin}/app${app.url}`}
+ {app.deployed ? "Published" : "Unpublished"}
@@ -64,24 +58,29 @@
background: var(--background);
padding: 24px 32px;
border-radius: 8px;
- display: flex;
- flex-direction: column;
- justify-content: flex-start;
- align-items: stretch;
- gap: var(--spacing-m);
- }
-
- .header {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
+ display: grid;
+ grid-template-columns: 35% 25% 15% auto;
align-items: center;
+ gap: var(--spacing-m);
+ transition: border 130ms ease-out;
+ border: 1px solid transparent;
+ }
+ .app-row:hover {
+ cursor: pointer;
+ border-color: var(--spectrum-global-color-gray-300);
}
.updated {
color: var(--spectrum-global-color-gray-700);
}
+ .title,
+ .name {
+ flex: 1 1 auto;
+ }
+ .name {
+ width: 0;
+ }
.title,
.app-status {
display: flex;
@@ -106,9 +105,8 @@
gap: var(--spacing-m);
display: flex;
flex-direction: row;
- justify-content: flex-start;
+ justify-content: flex-end;
align-items: center;
- margin-top: var(--spacing-m);
}
.name {
@@ -120,15 +118,26 @@
white-space: nowrap;
text-overflow: ellipsis;
}
- .title :global(h1:hover) {
- color: var(--spectrum-global-color-blue-600);
- cursor: pointer;
- transition: color 130ms ease;
- }
+ @media (max-width: 1000px) {
+ .app-row {
+ grid-template-columns: 45% 30% auto;
+ }
+ .updated {
+ display: none;
+ }
+ }
+ @media (max-width: 800px) {
+ .app-row {
+ grid-template-columns: 1fr auto;
+ }
+ .app-status {
+ display: none;
+ }
+ }
@media (max-width: 640px) {
- .desktop {
- display: none !important;
+ .app-row {
+ padding: 20px;
}
}
diff --git a/packages/builder/src/pages/builder/portal/_components/Logo.svelte b/packages/builder/src/pages/builder/portal/_components/Logo.svelte
new file mode 100644
index 0000000000..8276510201
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/_components/Logo.svelte
@@ -0,0 +1,13 @@
+
+
+ $goto("./apps")} />
+
+
diff --git a/packages/builder/src/pages/builder/portal/_components/MobileMenu.svelte b/packages/builder/src/pages/builder/portal/_components/MobileMenu.svelte
new file mode 100644
index 0000000000..bfb08f9b36
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/_components/MobileMenu.svelte
@@ -0,0 +1,79 @@
+
+
+{#if visible}
+
+{/if}
+
+
-
+
+
+
+ {app.name}
+
+
+
- {#if app.updatedAt}
- {processStringSync("Updated {{ duration time 'millisecond' }} ago", {
- time: new Date().getTime() - new Date(app.updatedAt).getTime(),
- })}
- {:else}
- Never updated
- {/if}
-
+
+ {#if app.updatedAt}
+ {processStringSync("Updated {{ duration time 'millisecond' }} ago", {
+ time: new Date().getTime() - new Date(app.updatedAt).getTime(),
+ })}
+ {:else}
+ Never updated
+ {/if}
+
+
-
-
+
+
+ {#each menu as { title, href }}
+
+ {/each}
+
+
+
+
+
diff --git a/packages/builder/src/pages/builder/portal/_components/UpgradeButton.svelte b/packages/builder/src/pages/builder/portal/_components/UpgradeButton.svelte
new file mode 100644
index 0000000000..29066b8117
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/_components/UpgradeButton.svelte
@@ -0,0 +1,20 @@
+
+
+{#if $admin.cloud && $auth?.user?.accountPortalAccess}
+
+{:else if !$admin.cloud && $auth.isAdmin}
+
+{/if}
diff --git a/packages/builder/src/pages/builder/portal/_components/UserDropdown.svelte b/packages/builder/src/pages/builder/portal/_components/UserDropdown.svelte
new file mode 100644
index 0000000000..552e9247fc
--- /dev/null
+++ b/packages/builder/src/pages/builder/portal/_components/UserDropdown.svelte
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+