Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d706490
feat: FIT-1433: Consolidate Badge component
ricardoantoniocm Feb 23, 2026
e42110f
feat(ui): revamp Badge component with new variants, styles, and sizes
ricardoantoniocm Feb 24, 2026
8192cae
feat(ui): update BadgeGroup to use revamped Badge component
ricardoantoniocm Feb 24, 2026
9ed257d
refactor(ui): deprecate EnterpriseBadge in favor of Badge component
ricardoantoniocm Feb 24, 2026
4a7d4dd
feat(datamanager): replace data type badges in table headers with new…
ricardoantoniocm Feb 24, 2026
04dedc7
feat(datamanager): replace badges in filter dropdowns with new Badge …
ricardoantoniocm Feb 24, 2026
9359717
feat(datamanager): update toolbar badges to use new Badge component
ricardoantoniocm Feb 24, 2026
3fcbab3
feat(settings): update badges in settings pages to use new Badge comp…
ricardoantoniocm Feb 24, 2026
bce4cf2
feat(export): replace format tags with Badge component in export modal
ricardoantoniocm Feb 24, 2026
9de3eee
refactor: replace EnterpriseBadge with Badge component across applica…
ricardoantoniocm Feb 24, 2026
1fc3e93
Fixes transition timing.
ricardoantoniocm Feb 24, 2026
fdf273a
Updates BooleanCell to use new Badge component.
ricardoantoniocm Feb 24, 2026
4f985d7
Makes state chips/badges use the rounded variant of the Badge component.
ricardoantoniocm Feb 24, 2026
84bf2a0
fix: apply biome formatting fixes
ricardoantoniocm Feb 24, 2026
fa3c4f6
Updates design tokens to support additional accent color variants for…
ricardoantoniocm Feb 24, 2026
8798b71
refactor(ui): consolidate Badge component and gradient styling
ricardoantoniocm Feb 24, 2026
16a8b7a
Adjusts -dark variant of accent colors for Dark Mode.
ricardoantoniocm Feb 24, 2026
afcdb84
refactor(state-chips): use Badge variant instead of className for FSM…
ricardoantoniocm Feb 24, 2026
b5fd9df
refactor(ui): consolidate enterprise badge with IconSpark
ricardoantoniocm Feb 24, 2026
4f10ba7
chore(ui): align Hotkeys Beta badge to Badge API (variant, style, shape)
ricardoantoniocm Feb 24, 2026
43211f3
Linter fixes.
ricardoantoniocm Feb 24, 2026
987572a
Linter fixes.
ricardoantoniocm Feb 24, 2026
c4b7af8
chore: apply biome formatting to design-tokens and tokens.js
ricardoantoniocm Feb 24, 2026
f1fe4a9
Change tailwind modifer for semantic one.
ricardoantoniocm Feb 24, 2026
fb1e795
Cleaning up Badge stories.
ricardoantoniocm Feb 24, 2026
c321caf
Cleaning up.
ricardoantoniocm Feb 24, 2026
aa08deb
Merge branch 'develop' into 'fb-fit-1433/consolidate-badge'
ricardoantoniocm Feb 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { Spinner } from "../../../components";
import { useAPI } from "../../../providers/ApiProvider";
import { cn } from "../../../utils/bem";
import "./Config.scss";
import { IconInfo } from "@humansignal/icons";
import { Button, EnterpriseBadge } from "@humansignal/ui";
import { IconInfo, IconSpark } from "@humansignal/icons";
import { Button, Badge } from "@humansignal/ui";

const listClass = cn("templates-list");

Expand Down Expand Up @@ -39,7 +39,11 @@ const TemplatesInGroup = ({ templates, group, onSelectRecipe, isEdition }) => {
<img src={recipe.image} alt={""} />
<div className="flex flex-col items-center w-full">
<h3 className="flex flex-1 justify-center text-center w-full">{recipe.title}</h3>
{isEnterpriseTemplate && isCommunityEdition && <EnterpriseBadge className="mb-base" />}
{isEnterpriseTemplate && isCommunityEdition && (
<Badge variant="gradient" icon={<IconSpark />} className="mb-base">
Enterprise
</Badge>
)}
</div>
</li>
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { EnterpriseBadge, Select, Typography } from "@humansignal/ui";
import { Badge, Select, Typography } from "@humansignal/ui";
import { IconSpark } from "@humansignal/icons";
import React from "react";
import { useHistory } from "react-router";
import { ToggleItems } from "../../components";
Expand Down Expand Up @@ -59,7 +60,9 @@ const ProjectName = ({ name, setName, onSaveName, onSubmit, error, description,
<div className="w-full flex flex-col gap-2">
<label>
Workspace
<EnterpriseBadge className="ml-2" />
<Badge variant="gradient" icon={<IconSpark />} className="ml-tight">
Enterprise
</Badge>
</label>
<Select placeholder="Select an option" disabled options={[]} triggerClassName="!flex-1" />
<Typography size="small" className="mt-tight mb-wider">
Expand Down
25 changes: 19 additions & 6 deletions web/apps/labelstudio/src/pages/ExportPage/ExportPage.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useEffect, useRef, useState, useCallback } from "react";
import { useHistory } from "react-router";
import { Button } from "@humansignal/ui";
import { Button, Badge } from "@humansignal/ui";
import {
IconWarningCircleFilled,
IconTerminal,
Expand Down Expand Up @@ -229,11 +229,24 @@ const FormatInfo = ({ availableFormats, selected, onClick }) => {
{format.title}

<Space size="small">
{format.tags?.map?.((tag, index) => (
<div key={index} className={cn("formats").elem("tag").toClassName()}>
{tag}
</div>
))}
{format.tags?.map?.((tag, index) => {
// Map tag text to badge variant
const tagLower = tag?.toLowerCase() || "";
let variant = "primary";
if (tagLower === "enterprise" || tagLower.includes("enterprise")) {
variant = "gradient";
} else if (tagLower === "beta") {
variant = "plum";
} else if (tagLower === "new" || tagLower.includes("new")) {
variant = "positive";
}

return (
<Badge key={index} variant={variant} size="small">
{tag}
</Badge>
);
})}
</Space>
</div>

Expand Down
18 changes: 15 additions & 3 deletions web/apps/labelstudio/src/pages/Settings/GeneralSettings.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { EnterpriseBadge, Select, Typography } from "@humansignal/ui";
import { Badge, Select, Typography, Tooltip } from "@humansignal/ui";
import { IconSpark } from "@humansignal/icons";
import { useCallback, useContext } from "react";
import { Button } from "@humansignal/ui";
import { Form, Input, TextArea } from "../../components/Form";
Expand Down Expand Up @@ -37,7 +38,9 @@ export const GeneralSettings = () => {
<div className={cn("workspace-placeholder").toClassName()}>
<div className={cn("workspace-placeholder").elem("badge-wrapper").toClassName()}>
<div className={cn("workspace-placeholder").elem("title").toClassName()}>Workspace</div>
<EnterpriseBadge className="ml-2" />
<Badge variant="gradient" icon={<IconSpark />} size="small" className="ml-2">
Enterprise
</Badge>
</div>
<Select placeholder="Select an option" disabled options={[]} />
<Typography size="small" className="my-tight">
Expand Down Expand Up @@ -82,7 +85,16 @@ export const GeneralSettings = () => {
value=""
label={
<>
Uncertainty sampling <EnterpriseBadge className="ml-2" />
Uncertainty sampling{" "}
<Tooltip title="Available on Label Studio Enterprise">
<Badge
variant="enterprise"
icon={<IconSpark />}
size="small"
style="ghost"
className="ml-tightest"
/>
</Tooltip>
</>
}
disabled
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EnterpriseBadge, IconSpark } from "@humansignal/ui";
import { Badge, IconSpark } from "@humansignal/ui";
import { Alert, AlertTitle, AlertDescription } from "@humansignal/shad/components/ui/alert";
import { IconCloudProviderAzure } from "@humansignal/icons";
import type { ProviderConfig } from "@humansignal/app-common/blocks/StorageProviderForm/types/provider";
Expand All @@ -10,7 +10,7 @@ const azureSpiProvider: ProviderConfig = {
"Configure your Azure Blob Storage connection using Service Principal authentication for enhanced security (proxy only)",
icon: IconCloudProviderAzure,
disabled: true,
badge: <EnterpriseBadge />,
badge: <Badge variant="gradient">Enterprise</Badge>,
fields: [
{
name: "enterprise_info",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EnterpriseBadge, IconSpark } from "@humansignal/ui";
import { Badge, IconSpark } from "@humansignal/ui";
import { Alert, AlertTitle, AlertDescription } from "@humansignal/shad/components/ui/alert";
import { IconCloudProviderDatabricks } from "@humansignal/icons";
import type { ProviderConfig } from "@humansignal/app-common/blocks/StorageProviderForm/types/provider";
Expand All @@ -9,7 +9,7 @@ const databricksProvider: ProviderConfig = {
description: "Configure your Databricks Unity Catalog Volumes connection with all required settings (proxy only)",
icon: IconCloudProviderDatabricks,
disabled: true,
badge: <EnterpriseBadge />,
badge: <Badge variant="gradient">Enterprise</Badge>,
fields: [
{
name: "enterprise_info",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EnterpriseBadge, IconSpark } from "@humansignal/ui";
import { Badge, IconSpark } from "@humansignal/ui";
import { Alert, AlertTitle, AlertDescription } from "@humansignal/shad/components/ui/alert";
import { IconCloudProviderGCS } from "@humansignal/icons";
import type { ProviderConfig } from "@humansignal/app-common/blocks/StorageProviderForm/types/provider";
Expand All @@ -10,7 +10,7 @@ const gcsWifProvider: ProviderConfig = {
"Configure your Google Cloud Storage connection with Workload Identity Federation authentication (proxy only)",
icon: IconCloudProviderGCS,
disabled: true,
badge: <EnterpriseBadge />,
badge: <Badge variant="gradient">Enterprise</Badge>,
fields: [
{
name: "enterprise_info",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EnterpriseBadge, IconSpark } from "@humansignal/ui";
import { Badge, IconSpark } from "@humansignal/ui";
import { Alert, AlertTitle, AlertDescription } from "@humansignal/shad/components/ui/alert";
import { IconCloudProviderS3 } from "@humansignal/icons";
import type { ProviderConfig } from "@humansignal/app-common/blocks/StorageProviderForm/types/provider";
Expand All @@ -9,7 +9,7 @@ const s3sProvider: ProviderConfig = {
description: "Configure your AWS S3 connection using IAM role access for enhanced security (proxy only)",
icon: IconCloudProviderS3,
disabled: true,
badge: <EnterpriseBadge />,
badge: <Badge variant="gradient">Enterprise</Badge>,
fields: [
{
name: "enterprise_info",
Expand Down
1 change: 1 addition & 0 deletions web/apps/labelstudio/src/pages/Settings/settings.scss
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
font-size: 0.875rem;
color: var(--color-neutral-content);
font-weight: 500;
line-height: var(--line-height-label-small);
}
}

Expand Down
Loading
Loading