diff --git a/packages/bbui/src/Badge/Badge.svelte b/packages/bbui/src/Badge/Badge.svelte
index 15bb6c62c2..dadbaa3317 100644
--- a/packages/bbui/src/Badge/Badge.svelte
+++ b/packages/bbui/src/Badge/Badge.svelte
@@ -11,7 +11,7 @@
export let active = false
export let inactive = false
export let hoverable = false
- export let customColor = null
+ export let outlineColor = null
@@ -30,7 +30,7 @@
class:spectrum-Label--seafoam={seafoam}
class:spectrum-Label--active={active}
class:spectrum-Label--inactive={inactive}
- style={customColor ? `background-color: ${customColor}` : ""}
+ style={outlineColor ? `border: 2px solid ${outlineColor}` : ""}
>
diff --git a/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte b/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte
index 47811cbcb9..43c662a6d2 100644
--- a/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/_components/BuilderGroupPopover.svelte
@@ -1,49 +1,22 @@
-
-
+
+
-
-
- {#each groups as group}
-
- {/each}
-
-
-
diff --git a/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte b/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte
index 11a36706cf..0bf32e4b76 100644
--- a/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte
+++ b/packages/builder/src/pages/builder/app/[application]/_components/BuilderSidePanel.svelte
@@ -13,7 +13,6 @@
FancyInput,
Button,
FancySelect,
- Badge,
} from "@budibase/bbui"
import { builderStore, appStore, roles, appPublished } from "@/stores/builder"
import {
@@ -39,7 +38,6 @@
import { fly } from "svelte/transition"
import InfoDisplay from "../design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte"
import BuilderGroupPopover from "./BuilderGroupPopover.svelte"
- import GroupBadge from "./GroupBadge.svelte"
let query = null
let loaded = false
@@ -542,6 +540,12 @@
creationAccessType = Constants.Roles.CREATOR
}
}
+
+ const itemCountText = (word, count) => {
+ return `${count} ${word}${
+ count !== 1 ? "s" : ""
+ }`
+ }
@@ -708,9 +712,7 @@
{group.name}
- {`${group.users?.length} user${
- group.users?.length != 1 ? "s" : ""
- }`}
+ {itemCountText("user", group.users?.length)}
@@ -755,20 +757,20 @@
{user.email}
-
- {#each userGroups.slice(0, 3) as group}
-
- {/each}
- {#if userGroups.length > 3}
-
- {/if}
-
+ {#if userGroups.length}
+
+
+ {itemCountText("group", userGroups.length)}
+
+
+
+ {/if}
diff --git a/packages/builder/src/pages/builder/app/[application]/_components/GroupBadge.svelte b/packages/builder/src/pages/builder/app/[application]/_components/GroupBadge.svelte
deleted file mode 100644
index f10e2aa220..0000000000
--- a/packages/builder/src/pages/builder/app/[application]/_components/GroupBadge.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-{name}
diff --git a/packages/shared-core/src/helpers/index.ts b/packages/shared-core/src/helpers/index.ts
index 0aa378b46a..b924617a0f 100644
--- a/packages/shared-core/src/helpers/index.ts
+++ b/packages/shared-core/src/helpers/index.ts
@@ -6,3 +6,4 @@ export * as cron from "./cron"
export * as schema from "./schema"
export * as views from "./views"
export * as roles from "./roles"
+export * as lists from "./lists"
diff --git a/packages/shared-core/src/helpers/lists.ts b/packages/shared-core/src/helpers/lists.ts
new file mode 100644
index 0000000000..64b906fef8
--- /dev/null
+++ b/packages/shared-core/src/helpers/lists.ts
@@ -0,0 +1,7 @@
+export function punctuateList(list: string[]) {
+ if (list.length === 0) return ""
+ if (list.length === 1) return list[0]
+ if (list.length === 2) return list.join(" and ")
+ // For more than 2 elements: join all but the last with commas, then add "and" before the last element.
+ return list.slice(0, -1).join(", ") + " and " + list[list.length - 1]
+}