Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b3be1fe
feat: add Midnight theme foundation
yashwant-intelligaia Jul 21, 2026
85589d4
fix(theme): correct Midnight excellent/interactive disabled token opa…
yashwant-intelligaia Jul 28, 2026
27646e7
Midnight Theme Fixes (#12)
yashwant-intelligaia Aug 6, 2026
b4e18da
Fixes for Yarn Lock file
yashwant-intelligaia Aug 6, 2026
a6f3590
fixes for avatar token (#14)
yashwant-intelligaia Aug 6, 2026
7487b93
fix: Navigation and Header Component (#15)
yashwant-intelligaia Aug 6, 2026
a7b1729
fix: format code and improve readability in various files
yashwant-intelligaia Aug 7, 2026
984291c
fix: enhance custom icon tests to handle multi-tone and brand color e…
yashwant-intelligaia Aug 7, 2026
007e52a
fix: enhance custom icon tests to handle multi-tone and brand color e…
yashwant-intelligaia Aug 11, 2026
ef2c859
Button | Gradient Variant
jatinverma-prog Jul 30, 2026
94e40c9
Merge branch 'feat/midnight-theme-integration' of https://github.com/…
yashwant-intelligaia Aug 11, 2026
a91c025
feat(typography): add gradient text variant (#7)
jatinverma-prog Aug 3, 2026
dd6939d
feat(activity-timeline): add gradient variant (#11)
jatinverma-prog Aug 3, 2026
48fc25b
gradient variants for spider charts (#8)
jatinverma-prog Aug 5, 2026
c78a732
fix: Midnight Theme | Tokens Fixes
yashwant-intelligaia Aug 7, 2026
670859c
feat: Input Component Gradient
jatinverma-prog Aug 11, 2026
12c7b89
feat: Toast Component Gradient support
jatinverma-prog Aug 11, 2026
a52b41c
feat: Gradient for Cards Component
jatinverma-prog Aug 11, 2026
3b13c9b
fix: Navigation Component UI Fix
yashwant-intelligaia Aug 11, 2026
f0910f3
Typography | Gradient Variant
jatinverma-prog Aug 11, 2026
93db850
Fixes for Activity Timeline | Gradient Variant
jatinverma-prog Aug 11, 2026
ea0ee09
fix: Button | Gradient Variant
jatinverma-prog Aug 11, 2026
241df36
fix: Gradient fixes
jatinverma-prog Aug 11, 2026
0c3f81c
feat: Gauge Chart | Gradient Variants
jatinverma-prog Aug 11, 2026
2ee332d
sync changes
jatinverma-prog Aug 11, 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
357 changes: 357 additions & 0 deletions DESIGN-TOKEN-CHANGES.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ For audit trails, server events, or retryable workflows, pass explicit step stat
| `steps` | `ActivityTimelineStep[]` | - | Ordered list of timeline steps. |
| `automaticProgress` | `boolean` | `false` | Calculates progress from step position instead of using only step status. |
| `size` | `'medium' \| 'large'` | `'large'` | Controls text sizing and spacing. |
| `variant` | `'default' \| 'gradient'` | `'default'` | Renders glowing status dots, a per-step time, and a fade-out down older steps. |

## Step shape

Expand All @@ -90,9 +91,28 @@ interface ActivityTimelineStep {
title: string;
subTitle?: string;
content?: React.ReactNode;
time?: string;
}
```

## Gradient variant

Set `variant="gradient"` to show events with glowing status dots and a time
against the timeline. Older steps fade out down the list.

```tsx
<ActivityTimeline
variant="gradient"
steps={[
{
status: ActivityTimelineStepStatus.Complete,
title: 'Treated 29h booking as within 24h window',
time: '11:40',
},
]}
/>
```

## Accessibility

Keep titles short and descriptive so the sequence is easy to scan.
Expand Down
27 changes: 27 additions & 0 deletions docs/data/material/components/button/ButtonIconOnlyGradient.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import * as React from "react";
import MicNoneOutlinedIcon from "@mui/icons-material/MicNoneOutlined";
import { Button, Stack, ThemeMode, ThemeProvider } from "@open-ui-kit/core";

export default function ButtonIconOnlyGradient() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Stack
direction="row"
spacing={2}
alignItems="center"
useFlexGap
flexWrap="wrap"
>
<Button aria-label="Start dictation" size="large" variant="gradient">
<MicNoneOutlinedIcon />
</Button>
<Button aria-label="Start dictation" size="medium" variant="gradient">
<MicNoneOutlinedIcon />
</Button>
<Button aria-label="Start dictation" size="small" variant="gradient">
<MicNoneOutlinedIcon />
</Button>
</Stack>
</ThemeProvider>
);
}
27 changes: 27 additions & 0 deletions docs/data/material/components/button/ButtonIconOnlyGradient.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import * as React from "react";
import MicNoneOutlinedIcon from "@mui/icons-material/MicNoneOutlined";
import { Button, Stack, ThemeMode, ThemeProvider } from "@open-ui-kit/core";

export default function ButtonIconOnlyGradient() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Stack
direction="row"
spacing={2}
alignItems="center"
useFlexGap
flexWrap="wrap"
>
<Button aria-label="Start dictation" size="large" variant="gradient">
<MicNoneOutlinedIcon />
</Button>
<Button aria-label="Start dictation" size="medium" variant="gradient">
<MicNoneOutlinedIcon />
</Button>
<Button aria-label="Start dictation" size="small" variant="gradient">
<MicNoneOutlinedIcon />
</Button>
</Stack>
</ThemeProvider>
);
}
7 changes: 7 additions & 0 deletions docs/data/material/components/button/button.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@ For icon-only buttons, pass the icon as the only child and provide an accessible

{{"demo": "ButtonIcons.js", "bg": true}}

### Icon Button AI

An icon-only button on the `gradient` variant gets its own treatment rather than the text button scaled down: a round control filled with the `Icon-Button-Blue` gradient and ringed by `Icon-Button-Blue-Glow`.
It applies automatically β€” pass the icon as the only child, as above, and set `variant="gradient"`.

{{"demo": "ButtonIconOnlyGradient.js", "bg": true}}

## States

Buttons support disabled and loading states through the standard button API.
Expand Down
42 changes: 42 additions & 0 deletions docs/data/material/components/card/AlertCard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import * as React from "react";
import {
Card,
CardAlertHeader,
CardContent,
CardDescription,
CardHeader,
Stack,
ThemeMode,
ThemeProvider,
} from "@open-ui-kit/core";

export default function AlertCard() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Stack gap={2} sx={{ maxWidth: 435 }}>
<Card alert="critical">
<CardAlertHeader timestamp="4m ago">CRITICAL ALERT</CardAlertHeader>
<CardHeader title="Optimization Failure in High-Density Travel Planning Cluster" />
<CardContent>
<CardDescription variant="body2">
The system detected a revision loop during itinerary optimization
within a high-density semantic cluster. The agent produced an
itinerary that violated walking constraints, triggering an
optimization cycle before producing the final output.
</CardDescription>
</CardContent>
</Card>
<Card alert="warning">
<CardAlertHeader timestamp="3h ago">WARNING</CardAlertHeader>
<CardHeader title="Post-generation correction occurred" />
<CardContent>
<CardDescription variant="body2">
Initial itinerary violated constraints and required a revision
pass. Consider improving constraint conditioning upstream.
</CardDescription>
</CardContent>
</Card>
</Stack>
</ThemeProvider>
);
}
42 changes: 42 additions & 0 deletions docs/data/material/components/card/AlertCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import * as React from "react";
import {
Card,
CardAlertHeader,
CardContent,
CardDescription,
CardHeader,
Stack,
ThemeMode,
ThemeProvider,
} from "@open-ui-kit/core";

export default function AlertCard() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Stack gap={2} sx={{ maxWidth: 435 }}>
<Card alert="critical">
<CardAlertHeader timestamp="4m ago">CRITICAL ALERT</CardAlertHeader>
<CardHeader title="Optimization Failure in High-Density Travel Planning Cluster" />
<CardContent>
<CardDescription variant="body2">
The system detected a revision loop during itinerary optimization
within a high-density semantic cluster. The agent produced an
itinerary that violated walking constraints, triggering an
optimization cycle before producing the final output.
</CardDescription>
</CardContent>
</Card>
<Card alert="warning">
<CardAlertHeader timestamp="3h ago">WARNING</CardAlertHeader>
<CardHeader title="Post-generation correction occurred" />
<CardContent>
<CardDescription variant="body2">
Initial itinerary violated constraints and required a revision
pass. Consider improving constraint conditioning upstream.
</CardDescription>
</CardContent>
</Card>
</Stack>
</ThemeProvider>
);
}
38 changes: 38 additions & 0 deletions docs/data/material/components/card/CardWithImage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import * as React from "react";
import {
Button,
Card,
CardActions,
CardContent,
CardDescription,
CardHeader,
ThemeMode,
ThemeProvider,
} from "@open-ui-kit/core";

export default function CardWithImage() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Card
image="/static/images/cards/welcome-card.jpg"
sx={{ maxWidth: 432 }}
>
<CardHeader
title="Explain"
subheader="Uncover the β€œwhy” behind your app’s behavior."
/>
<CardContent>
<CardDescription variant="caption">
Get clear, AI-powered explanations for events, anomalies, or
performance changes.
</CardDescription>
</CardContent>
<CardActions sx={{ alignSelf: "stretch", justifyContent: "flex-end" }}>
<Button size="small" variant="tertariary">
Get Started
</Button>
</CardActions>
</Card>
</ThemeProvider>
);
}
38 changes: 38 additions & 0 deletions docs/data/material/components/card/CardWithImage.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import * as React from "react";
import {
Button,
Card,
CardActions,
CardContent,
CardDescription,
CardHeader,
ThemeMode,
ThemeProvider,
} from "@open-ui-kit/core";

export default function CardWithImage() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Card
image="/static/images/cards/welcome-card.jpg"
sx={{ maxWidth: 432 }}
>
<CardHeader
title="Explain"
subheader="Uncover the β€œwhy” behind your app’s behavior."
/>
<CardContent>
<CardDescription variant="caption">
Get clear, AI-powered explanations for events, anomalies, or
performance changes.
</CardDescription>
</CardContent>
<CardActions sx={{ alignSelf: "stretch", justifyContent: "flex-end" }}>
<Button size="small" variant="tertariary">
Get Started
</Button>
</CardActions>
</Card>
</ThemeProvider>
);
}
32 changes: 32 additions & 0 deletions docs/data/material/components/card/ConnectorCard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import * as React from "react";
import {
Card,
CardContent,
CardDescription,
CardHeader,
ThemeMode,
ThemeProvider,
Typography,
} from "@open-ui-kit/core";

export default function ConnectorCard() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Card connector sx={{ maxWidth: 280 }}>
<Typography
variant="captionSemibold"
sx={(theme) => ({ color: theme.palette.vars.baseTextMedium })}
>
Divergent Planning Paths
</Typography>
<CardHeader title="Agents fail to converge on a consistent decision state" />
<CardContent>
<CardDescription variant="body2">
The Itinerary Planner and Schedule Planner increasingly disagree on
the ordering of the same set of activities.
</CardDescription>
</CardContent>
</Card>
</ThemeProvider>
);
}
32 changes: 32 additions & 0 deletions docs/data/material/components/card/ConnectorCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import * as React from "react";
import {
Card,
CardContent,
CardDescription,
CardHeader,
ThemeMode,
ThemeProvider,
Typography,
} from "@open-ui-kit/core";

export default function ConnectorCard() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Card connector sx={{ maxWidth: 280 }}>
<Typography
variant="captionSemibold"
sx={(theme) => ({ color: theme.palette.vars.baseTextMedium })}
>
Divergent Planning Paths
</Typography>
<CardHeader title="Agents fail to converge on a consistent decision state" />
<CardContent>
<CardDescription variant="body2">
The Itinerary Planner and Schedule Planner increasingly disagree on
the ordering of the same set of activities.
</CardDescription>
</CardContent>
</Card>
</ThemeProvider>
);
}
2 changes: 1 addition & 1 deletion docs/data/material/components/card/DisabledCard.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
export default function DisabledCard() {
return (
<ThemeProvider>
<Card aria-disabled="true" sx={{ maxWidth: 360, opacity: 0.5 }}>
<Card disabled sx={{ maxWidth: 360 }}>
<CardHeader title="Audit export" subheader="Unavailable" />
<CardContent>
<CardDescription>
Expand Down
2 changes: 1 addition & 1 deletion docs/data/material/components/card/DisabledCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
export default function DisabledCard() {
return (
<ThemeProvider>
<Card aria-disabled="true" sx={{ maxWidth: 360, opacity: 0.5 }}>
<Card disabled sx={{ maxWidth: 360 }}>
<CardHeader title="Audit export" subheader="Unavailable" />
<CardContent>
<CardDescription>
Expand Down
29 changes: 29 additions & 0 deletions docs/data/material/components/card/GlassCard.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import * as React from "react";
import {
Card,
CardContent,
CardDescription,
CardHeader,
ThemeMode,
ThemeProvider,
} from "@open-ui-kit/core";

export default function GlassCard() {
return (
<ThemeProvider defaultMode={ThemeMode.Midnight}>
<Card glass sx={{ maxWidth: 360 }}>
<CardHeader
title="Introduce Resilient API Orchestration"
subheader="Moderate"
/>
<CardContent>
<CardDescription variant="caption">
Implement a layered request strategy with automatic retries,
provider failover, and timeout tuning to reduce sensitivity to
transient outages.
</CardDescription>
</CardContent>
</Card>
</ThemeProvider>
);
}
Loading