diff --git a/packages/bbui/src/Layout/Page.svelte b/packages/bbui/src/Layout/Page.svelte index 02f089b340..15aabd2c61 100644 --- a/packages/bbui/src/Layout/Page.svelte +++ b/packages/bbui/src/Layout/Page.svelte @@ -42,6 +42,7 @@ justify-content: flex-start; align-items: stretch; flex: 1 1 auto; + overflow-x: hidden; } .main { overflow: auto; @@ -57,10 +58,10 @@ padding: 50px; z-index: 1; } - .wide { + .content.wide { max-width: none; } - .narrow { + .content.narrow { max-width: 840px; } #side-panel { @@ -71,6 +72,7 @@ background: var(--background); border-left: var(--border-light); width: 320px; + max-width: calc(100vw - 48px - 48px); overflow: auto; overflow-x: hidden; transform: translateX(100%); @@ -81,4 +83,13 @@ #side-panel.visible { transform: translateX(0); } + + @media (max-width: 640px) { + .content { + padding: 24px; + max-width: calc(100vw - 48px) !important; + width: calc(100vw - 48px) !important; + overflow: auto; + } + } diff --git a/packages/builder/src/components/common/AppLockModal.svelte b/packages/builder/src/components/common/AppLockModal.svelte index 74e1b12615..5e52ab269c 100644 --- a/packages/builder/src/components/common/AppLockModal.svelte +++ b/packages/builder/src/components/common/AppLockModal.svelte @@ -63,7 +63,8 @@ name="LockClosed" hoverable size={buttonSize} - on:click={() => { + on:click={e => { + e.stopPropagation() appLockModal.show() }} /> diff --git a/packages/builder/src/components/portal/page/Content.svelte b/packages/builder/src/components/portal/page/Content.svelte index e6ef93a179..d542dfcf56 100644 --- a/packages/builder/src/components/portal/page/Content.svelte +++ b/packages/builder/src/components/portal/page/Content.svelte @@ -1,9 +1,10 @@
-
+
@@ -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 -
-
-
-
- -
-
editApp(app)}> - - {app.name} - -
+
editApp(app)}> +
+
+
+
+ + {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}
- {`${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 @@ + + +Budibase Logo $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} +
+ +
+ +
+ + {#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 @@ + + + +
+ + +
+ themeModal.show()} dataCy="theme"> + Theme + + profileModal.show()} + dataCy="user-info" + > + My profile + + updatePasswordModal.show()}> + Update password + + apiKeyModal.show()} dataCy="api-key"> + View API key + + $goto("../apps")}> + Close developer mode + + + Log out + +
+ + + + + + + + + + + + + + + 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 @@