-
{getStatusIcon(status)}
-
{children}
+
+
+
{getStatusIcon(status)}
+
{children}
-
{duration ?? '--'}
+
{duration ?? '--'}
diff --git a/packages/ui/src/icons/circle-with-sector.svg b/packages/ui/src/icons/circle-with-sector.svg
new file mode 100644
index 0000000000..6b349b9550
--- /dev/null
+++ b/packages/ui/src/icons/circle-with-sector.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/packages/ui/src/icons/collapse-in.svg b/packages/ui/src/icons/collapse-in.svg
new file mode 100644
index 0000000000..c57ad4faf3
--- /dev/null
+++ b/packages/ui/src/icons/collapse-in.svg
@@ -0,0 +1,6 @@
+
diff --git a/packages/ui/src/icons/collapse-out.svg b/packages/ui/src/icons/collapse-out.svg
new file mode 100644
index 0000000000..c2168bf59c
--- /dev/null
+++ b/packages/ui/src/icons/collapse-out.svg
@@ -0,0 +1,4 @@
+
diff --git a/packages/ui/src/icons/command-symbol.svg b/packages/ui/src/icons/command-symbol.svg
new file mode 100644
index 0000000000..bb5103fc72
--- /dev/null
+++ b/packages/ui/src/icons/command-symbol.svg
@@ -0,0 +1,14 @@
+
diff --git a/packages/ui/src/icons/docker.svg b/packages/ui/src/icons/docker.svg
new file mode 100644
index 0000000000..552c3ba2f3
--- /dev/null
+++ b/packages/ui/src/icons/docker.svg
@@ -0,0 +1,11 @@
+
diff --git a/packages/ui/src/icons/list.svg b/packages/ui/src/icons/list.svg
index 911b208eea..15e0eeaeb5 100644
--- a/packages/ui/src/icons/list.svg
+++ b/packages/ui/src/icons/list.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/packages/ui/src/icons/minus.svg b/packages/ui/src/icons/minus.svg
new file mode 100644
index 0000000000..a8a899f675
--- /dev/null
+++ b/packages/ui/src/icons/minus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/ui/src/icons/pin.svg b/packages/ui/src/icons/pin.svg
index 3d5fcc290b..5d73cd7b62 100644
--- a/packages/ui/src/icons/pin.svg
+++ b/packages/ui/src/icons/pin.svg
@@ -1,9 +1 @@
-
+
\ No newline at end of file
diff --git a/packages/ui/src/icons/plus.svg b/packages/ui/src/icons/plus.svg
index f09410c2b1..b5738ca716 100644
--- a/packages/ui/src/icons/plus.svg
+++ b/packages/ui/src/icons/plus.svg
@@ -1,3 +1 @@
-
+
\ No newline at end of file
diff --git a/packages/ui/src/icons/slack.svg b/packages/ui/src/icons/slack.svg
new file mode 100644
index 0000000000..ea22ee9a23
--- /dev/null
+++ b/packages/ui/src/icons/slack.svg
@@ -0,0 +1,14 @@
+
diff --git a/packages/ui/src/icons/square-dashed.svg b/packages/ui/src/icons/square-dashed.svg
new file mode 100644
index 0000000000..f8f473680d
--- /dev/null
+++ b/packages/ui/src/icons/square-dashed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/ui/src/icons/stop-icon.svg b/packages/ui/src/icons/stop-icon.svg
new file mode 100644
index 0000000000..d06c6431df
--- /dev/null
+++ b/packages/ui/src/icons/stop-icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/packages/ui/src/icons/unpin.svg b/packages/ui/src/icons/unpin.svg
index 53b532ffff..b6958e1d42 100644
--- a/packages/ui/src/icons/unpin.svg
+++ b/packages/ui/src/icons/unpin.svg
@@ -1,9 +1 @@
-
+
\ No newline at end of file
diff --git a/packages/ui/src/shared-style-variables.css b/packages/ui/src/shared-style-variables.css
index 8957922173..78786b60d3 100644
--- a/packages/ui/src/shared-style-variables.css
+++ b/packages/ui/src/shared-style-variables.css
@@ -45,7 +45,8 @@
:root {
/* value */
/* color */
- --canary-base-chrome-white: 0 0% 100%;
+ --canary-pure-white: 0 0% 100%;
+ --canary-pure-black: 0 0% 0%;
--canary-base-chrome-50: 240 20% 99%;
--canary-base-chrome-100: 240 28% 95.1%;
--canary-base-chrome-150: 240 29.4% 88%;
@@ -54,12 +55,12 @@
--canary-base-chrome-300: 240 12.9% 80.2%;
--canary-base-chrome-500: 240 7.8% 59.6%;
--canary-base-chrome-600: 244.3 6.4% 43.1%;
- --canary-base-chrome-700: 240 8.2% 38%;
+ --canary-base-chrome-700: 240 8.2% 32%;
--canary-base-chrome-800: 240 7.8% 27.6%;
--canary-base-chrome-850: 240 8% 18%;
- --canary-base-chrome-900: 240 6.4% 9.2%;
+ --canary-base-chrome-900: 240 6.4% 10%;
--canary-base-chrome-950: 240 8.1% 7.3%;
- --canary-base-chrome-black: 240 10.3% 5.7%;
+ --canary-base-chrome-1000: 240 10.3% 5.7%;
--canary-accent-50: 210 100% 96.5%;
--canary-accent-100: 210.7 100% 92%;
--canary-accent-150: 215.3 89.5% 88.8%;
@@ -103,6 +104,7 @@
--canary-amber-300: 42.1 63.3% 61.6%;
--canary-amber-400: 40.2 56.5% 54.9%;
--canary-amber-500: 37.3 50.2% 50.4%;
+ --canary-amber-600: 34.2 47.5% 47.1%;
--canary-amber-700: 30.6 48.5% 38%;
--canary-amber-800: 25.7 40.2% 34.1%;
--canary-amber-850: 19.5 33.9% 24.9%;
@@ -454,40 +456,565 @@
--canary-graph-gradient-bg-2: hsla(0, 0%, 100%, 0);
--canary-graph-gradient-executing-1: hsla(220, 100%, 85%, 0.2);
--canary-graph-gradient-executing-2: hsla(220, 100%, 85%, 1);
+ --canary-graph-viewport-bg: hsl(var(--canary-grey-12));
}
/* Need .light and .dark classes for MFE */
/* Standalone app uses .light-std-std and .dark-std-std as defaults for light and dark themes */
.light,
+ .light-std-low {
+ --canary-background: var(--canary-base-chrome-50);
+ --canary-foreground: var(--canary-base-chrome-850);
+ --canary-card: var(--canary-pure-white);
+ --canary-card-foreground: var(--canary-base-chrome-1000);
+ --canary-popover: var(--canary-pure-white);
+ --canary-popover-foreground: var(--canary-base-chrome-1000);
+ --canary-primary: var(--canary-base-chrome-1000);
+ --canary-primary-background: var(--canary-base-chrome-50);
+ --canary-primary-foreground: var(--canary-base-chrome-850);
+ --canary-primary-muted: var(--canary-base-chrome-850);
+ --canary-primary-accent: var(--canary-base-chrome-950);
+ --canary-secondary: var(--canary-base-chrome-100);
+ --canary-secondary-foreground: var(--canary-base-chrome-1000);
+ --canary-secondary-background: var(--canary-pure-white);
+ --canary-secondary-muted: var(--canary-base-chrome-600);
+ --canary-tertiary: var(--canary-base-chrome-100);
+ --canary-tertiary-foreground: var(--canary-base-chrome-1000);
+ --canary-tertiary-background: var(--canary-base-chrome-600);
+ --canary-muted: var(--canary-base-chrome-100);
+ --canary-muted-foreground: var(--canary-base-chrome-600);
+ --canary-accent: var(--canary-base-chrome-100);
+ --canary-accent-foreground: var(--canary-base-chrome-1000);
+ --canary-destructive: var(--canary-red-600);
+ --canary-destructive-foreground: var(--canary-pure-white);
+ --canary-border: var(--canary-base-chrome-150);
+ --canary-border-background: var(--canary-base-chrome-150);
+ --canary-input: var(--canary-base-chrome-150);
+ --canary-input-background: var(--canary-pure-white);
+ --canary-ring: var(--canary-accent-400);
+
+ --canary-radius: 0.5rem;
+ --canary-success: var(--canary-green-600);
+ --canary-error: var(--canary-red-500);
+ --canary-warning: var(--canary-amber-700);
+ --canary-emphasis: var(--canary-accent-600);
+ --canary-ai: var(--canary-purple-700);
+ --canary-ai-button-stop-1: var(--canary-yellow-100);
+ --canary-ai-button-stop-2: var(--canary-pink-200);
+ --canary-ai-button-stop-3: var(--canary-purple-400);
+ --canary-ai-button-stop-4: var(--canary-cyan-200);
+
+ --diff-grey: hsl(var(--canary-base-chrome-50));
+ --diff-add-content--: hsl(var(--canary-green-50));
+ --diff-del-content--: hsl(var(--canary-red-50));
+ --diff-add-lineNumber--: hsl(var(--canary-green-100));
+ --diff-del-lineNumber--: hsl(var(--canary-red-100));
+ --diff-plain-content--: hsl(var(--canary-background-01));
+ --diff-expand-content--: hsl(var(--canary-background-01));
+ --diff-plain-lineNumber--: hsl(var(--canary-background-01));
+ --diff-plain-lineNumber-color--: hsl(var(--canary-base-chrome-850));
+ --diff-hunk-content--: hsl(var(--canary-accent-50));
+ --diff-hunk-lineNumber--: hsla(var(--canary-accent-100) / 0.7);
+ --diff-add-content-highlight--: hsl(var(--canary-green-100));
+ --diff-del-content-highlight--: hsl(var(--canary-red-100));
+ --diff-add-widget--: hsl(var(--canary-base-chrome-100));
+ --diff-add-widget-color--: hsl(var(--canary-base-chrome-850));
+ --diff-empty-content--: hsl(var(--canary-background-01));
+ --diff-hunk-content-color--: hsl(var(--canary-base-chrome-850));
+
+ /* New colors design variables */
+ /* Text */
+ --canary-foreground-01: var(--canary-base-chrome-1000);
+ --canary-foreground-02: var(--canary-base-chrome-800);
+ --canary-foreground-03: var(--canary-base-chrome-700);
+ --canary-foreground-04: var(--canary-base-chrome-600);
+ --canary-foreground-05: var(--canary-base-chrome-500);
+ --canary-foreground-06: var(--canary-pure-white);
+ --canary-foreground-07: var(--canary-base-chrome-600);
+ --canary-foreground-08: var(--canary-base-chrome-800);
+ --canary-foreground-09: var(--canary-base-chrome-600);
+ --canary-foreground-10: var(--canary-base-chrome-200);
+ --canary-foreground-danger: var(--canary-red-500);
+ --canary-foreground-alert: var(--canary-amber-700);
+ --canary-foreground-success: var(--canary-green-600);
+ --canary-foreground-accent: var(--canary-accent-600);
+
+ /* Backgrounds */
+ --canary-background-01: var(--canary-base-chrome-50);
+ --canary-background-02: var(--canary-pure-white);
+ --canary-background-03: var(--canary-base-chrome-100);
+ --canary-background-04: var(--canary-base-chrome-500) / 0.12;
+ --canary-background-05: var(--canary-base-chrome-950);
+ --canary-background-06: var(--canary-base-chrome-850);
+ --canary-background-07: var(--canary-base-chrome-50);
+ --canary-background-08: var(--canary-pure-white);
+ --canary-background-09: var(--canary-base-chrome-150);
+ --canary-background-10: var(--canary-base-chrome-850);
+ --canary-background-11: var(--canary-base-chrome-200);
+ --canary-background-12: var(--canary-base-chrome-150);
+ --canary-background-13: var(--canary-base-chrome-600);
+ --canary-background-14: var(--canary-base-chrome-200);
+ --canary-background-surface: var(--canary-pure-white);
+ --canary-background-accent: var(--canary-accent-500);
+ --canary-background-danger: var(--canary-red-50);
+ --canary-background-success: var(--canary-green-50);
+ --canary-toast-background-danger: var(--canary-red-200);
+
+ /* Borders */
+ --canary-border-01: var(--canary-base-chrome-150);
+ --canary-border-02: var(--canary-base-chrome-150);
+ --canary-border-03: var(--canary-base-chrome-500);
+ --canary-border-04: var(--canary-base-chrome-150);
+ --canary-border-05: var(--canary-base-chrome-150);
+ --canary-border-06: var(--canary-base-chrome-600);
+ --canary-border-07: var(--canary-pure-white);
+ --canary-border-08: var(--canary-base-chrome-150);
+ --canary-border-09: var(--canary-base-chrome-1000);
+ --canary-border-10: var(--canary-base-chrome-150);
+ --canary-border-danger: var(--canary-red-400);
+ --canary-border-success: var(--canary-green-400);
+ --canary-border-accent: var(--canary-accent-400);
+ --canary-border-alert: var(--canary-amber-500);
+
+ /* Icons */
+ --canary-icon-01: var(--canary-base-chrome-600);
+ --canary-icon-02: var(--canary-base-chrome-1000);
+ --canary-icon-03: var(--canary-base-chrome-800);
+ --canary-icon-04: var(--canary-base-chrome-500);
+ --canary-icon-05: var(--canary-pure-white);
+ --canary-icon-06: var(--canary-base-chrome-200);
+ --canary-icon-07: var(--canary-base-chrome-800);
+ --canary-icon-08: var(--canary-base-chrome-1000);
+ --canary-icon-09: var(--canary-base-chrome-500);
+ --canary-icon-10: var(--canary-pure-white);
+ --canary-icon-danger: var(--canary-red-500);
+ --canary-icon-alert: var(--canary-amber-700);
+ --canary-icon-success: var(--canary-green-600);
+ --canary-icon-accent: var(--canary-accent-600);
+ --canary-icon-merged: var(--canary-purple-700);
+
+ /* Tags */
+ /* --gray */
+ --canary-tag-foreground-gray-01: var(--canary-base-chrome-800);
+ --canary-tag-border-gray-01: var(--canary-base-chrome-200);
+ --canary-tag-background-gray-01: var(--canary-base-chrome-100);
+ --canary-tag-background-gray-02: var(--canary-base-chrome-150);
+ /* --purple */
+ --canary-tag-foreground-purple-01: var(--canary-purple-700);
+ --canary-tag-border-purple-01: var(--canary-purple-150);
+ --canary-tag-background-purple-01: var(--canary-purple-50);
+ --canary-tag-background-purple-02: var(--canary-purple-100);
+ /* --blue */
+ --canary-tag-foreground-blue-01: var(--canary-accent-700);
+ --canary-tag-border-blue-01: var(--canary-accent-150);
+ --canary-tag-background-blue-01: var(--canary-accent-50);
+ --canary-tag-background-blue-02: var(--canary-accent-100);
+ /* --mint */
+ --canary-tag-foreground-mint-01: var(--canary-green-700);
+ --canary-tag-border-mint-01: var(--canary-green-150);
+ --canary-tag-background-mint-01: var(--canary-green-50);
+ --canary-tag-background-mint-02: var(--canary-green-100);
+ /* --amber */
+ --canary-tag-foreground-amber-01: var(--canary-amber-700);
+ --canary-tag-border-amber-01: var(--canary-amber-150);
+ --canary-tag-background-amber-01: var(--canary-amber-50);
+ --canary-tag-background-amber-02: var(--canary-amber-100);
+ /* --peach */
+ --canary-tag-foreground-peach-01: var(--canary-peach-700);
+ --canary-tag-border-peach-01: var(--canary-peach-150);
+ --canary-tag-background-peach-01: var(--canary-peach-50);
+ --canary-tag-background-peach-02: var(--canary-peach-100);
+ /* --red */
+ --canary-tag-foreground-red-01: var(--canary-red-700);
+ --canary-tag-border-red-01: var(--canary-red-150);
+ --canary-tag-background-red-01: var(--canary-red-50);
+ --canary-tag-background-red-02: var(--canary-red-100);
+
+ /* Labels */
+ --canary-label-background-black-01: hsla(var(--canary-pure-white) / 0.7);
+ --canary-label-background-blue-01: hsla(var(--canary-accent-100));
+ --canary-label-background-brown-01: hsla(var(--canary-brown-100));
+ --canary-label-background-cyan-01: hsla(var(--canary-cyan-100));
+ --canary-label-background-green-01: hsla(var(--canary-green-100));
+ --canary-label-background-indigo-01: hsla(var(--canary-indigo-100));
+ --canary-label-background-lime-01: hsla(var(--canary-lime-100));
+ --canary-label-background-mint-01: hsla(var(--canary-mint-100));
+ --canary-label-background-orange-01: hsla(var(--canary-orange-100));
+ --canary-label-background-pink-01: hsla(var(--canary-pink-100));
+ --canary-label-background-purple-01: hsla(var(--canary-purple-100));
+ --canary-label-background-red-01: hsla(var(--canary-red-100));
+ --canary-label-background-violet-01: hsla(var(--canary-violet-100));
+ --canary-label-background-yellow-01: hsla(var(--canary-yellow-100));
+ --canary-label-foreground-blue-01: hsla(var(--canary-accent-700));
+ --canary-label-foreground-brown-01: hsla(var(--canary-brown-700));
+ --canary-label-foreground-cyan-01: hsla(var(--canary-cyan-700));
+ --canary-label-foreground-green-01: hsla(var(--canary-green-700));
+ --canary-label-foreground-indigo-01: hsla(var(--canary-indigo-700));
+ --canary-label-foreground-lime-01: hsla(var(--canary-lime-700));
+ --canary-label-foreground-mint-01: hsla(var(--canary-mint-700));
+ --canary-label-foreground-orange-01: hsla(var(--canary-orange-700));
+ --canary-label-foreground-pink-01: hsla(var(--canary-pink-700));
+ --canary-label-foreground-purple-01: hsla(var(--canary-purple-700));
+ --canary-label-foreground-red-01: hsla(var(--canary-red-700));
+ --canary-label-foreground-violet-01: hsla(var(--canary-violet-700));
+ --canary-label-foreground-yellow-01: hsla(var(--canary-yellow-700));
+
+ /* Button */
+ --canary-button-foreground-danger-01: var(--canary-red-700);
+ --canary-button-background-danger-01: var(--canary-red-50);
+ --canary-button-background-danger-02: var(--canary-red-100);
+ --canary-button-background-danger-03: var(--canary-red-50);
+ --canary-button-border-danger-01: var(--canary-red-150);
+ --canary-button-foreground-success-01: var(--canary-green-700);
+ --canary-button-background-success-01: var(--canary-green-50);
+ --canary-button-background-success-02: var(--canary-green-100);
+ --canary-button-border-success-01: var(--canary-green-150);
+ --canary-button-foreground-disabled-01: var(--canary-base-chrome-500);
+ --canary-button-background-disabled-01: var(--canary-base-chrome-50);
+ --canary-button-border-disabled-01: var(--canary-base-chrome-150);
+
+ /* Box shadow colors */
+ --canary-box-shadow-1: var(--canary-base-chrome-300) / 0.3;
+ --canary-box-shadow-2: var(--canary-base-chrome-300) / 0.12;
+ --canary-box-shadow-pagination: var(--canary-base-chrome-300) / 0.12;
+ --shadow-sm: var(--canary-base-chrome-100);
+
+ --canary-widget-bg-gradient-from: var(--canary-base-chrome-100) / 1;
+ --canary-widget-bg-gradient-to: var(--canary-pure-white) / 1;
+ --canary-widget-number-gradient-from: var(--canary-base-chrome-500) / 1;
+ --canary-widget-number-gradient-to: var(--canary-base-chrome-600) / 1;
+ --canary-widget-number-bg-gradient-from: var(--canary-base-chrome-150) / 1;
+ --canary-widget-number-bg-gradient-to: var(--canary-pure-white) / 1;
+
+ /* Graph */
+ --canary-graph-gradient-bg-1: hsla(var(--canary-pure-white) / 0.5);
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-100) / 0.3);
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-100));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-amber-500));
+ --canary-graph-gradient-executing-3: hsla(var(--canary-amber-100));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-amber-100));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-150));
+
+ /* Navigation gradients */
+ /* We’ve removed them until we find a better solution in the design.
+ --canary-nav-gradient-1-1: var();
+ --canary-nav-gradient-1-2: var();
+ --canary-nav-gradient-2-1: var();
+ --canary-nav-gradient-2-2: var();
+ --canary-nav-gradient-2-3: var();
+ --canary-nav-gradient-3-1: var();
+ --canary-nav-gradient-3-2: var();
+ --canary-nav-gradient-4-1: var();
+ --canary-nav-gradient-4-2: var();
+ --canary-nav-item-gradient-1: var();
+ --canary-nav-item-gradient-2: var();
+ --canary-nav-item-gradient-3: var();
+ --canary-nav-item-gradient-4: var();
+ --canary-nav-item-gradient-5: var();
+ --canary-nav-item-gradient-6: var();
+ */
+
+ /* Selected tab bg element*/
+ /* We’ve removed them until we find a better solution in the design.
+ --canary-tab-item-gradient-from: var();
+ --canary-tab-item-gradient-to: var();
+ --canary-tab-item-gradient-stops: hsla(var(--canary-tab-item-gradient-from)),
+ hsla(var(--canary-tab-item-gradient-to));
+ --canary-tab-background-gradient: radial-gradient(closest-side, var(--canary-tab-item-gradient-stops));
+ */
+ }
+
.light-std-std {
--canary-background: var(--canary-base-chrome-50);
--canary-foreground: var(--canary-base-chrome-850);
- --canary-card: var(--canary-base-chrome-white);
- --canary-card-foreground: var(--canary-base-chrome-black);
- --canary-popover: var(--canary-base-chrome-white);
- --canary-popover-foreground: var(--canary-base-chrome-black);
- --canary-primary: var(--canary-base-chrome-black);
+ --canary-card: var(--canary-pure-white);
+ --canary-card-foreground: var(--canary-base-chrome-1000);
+ --canary-popover: var(--canary-pure-white);
+ --canary-popover-foreground: var(--canary-base-chrome-1000);
+ --canary-primary: var(--canary-base-chrome-1000);
+ --canary-primary-background: var(--canary-base-chrome-50);
+ --canary-primary-foreground: var(--canary-base-chrome-850);
+ --canary-primary-muted: var(--canary-base-chrome-850);
+ --canary-primary-accent: var(--canary-base-chrome-950);
+ --canary-secondary: var(--canary-base-chrome-100);
+ --canary-secondary-foreground: var(--canary-base-chrome-1000);
+ --canary-secondary-background: var(--canary-pure-white);
+ --canary-secondary-muted: var(--canary-base-chrome-600);
+ --canary-tertiary: var(--canary-base-chrome-100);
+ --canary-tertiary-foreground: var(--canary-base-chrome-1000);
+ --canary-tertiary-background: var(--canary-base-chrome-600);
+ --canary-muted: var(--canary-base-chrome-100);
+ --canary-muted-foreground: var(--canary-base-chrome-600);
+ --canary-accent: var(--canary-base-chrome-100);
+ --canary-accent-foreground: var(--canary-base-chrome-1000);
+ --canary-destructive: var(--canary-red-600);
+ --canary-destructive-foreground: var(--canary-pure-white);
+ --canary-border: var(--canary-base-chrome-150);
+ --canary-border-background: var(--canary-base-chrome-150);
+ --canary-input: var(--canary-base-chrome-150);
+ --canary-input-background: var(--canary-pure-white);
+ --canary-ring: var(--canary-accent-400);
+
+ --canary-radius: 0.5rem;
+ --canary-success: var(--canary-green-600);
+ --canary-error: var(--canary-red-500);
+ --canary-warning: var(--canary-amber-700);
+ --canary-emphasis: var(--canary-accent-600);
+ --canary-ai: var(--canary-purple-700);
+ --canary-ai-button-stop-1: var(--canary-yellow-100);
+ --canary-ai-button-stop-2: var(--canary-pink-200);
+ --canary-ai-button-stop-3: var(--canary-purple-400);
+ --canary-ai-button-stop-4: var(--canary-cyan-200);
+
+ --diff-grey: hsl(var(--canary-base-chrome-50));
+ --diff-add-content--: hsl(var(--canary-green-50));
+ --diff-del-content--: hsl(var(--canary-red-50));
+ --diff-add-lineNumber--: hsl(var(--canary-green-100));
+ --diff-del-lineNumber--: hsl(var(--canary-red-100));
+ --diff-plain-content--: hsl(var(--canary-background-01));
+ --diff-expand-content--: hsl(var(--canary-background-01));
+ --diff-plain-lineNumber--: hsl(var(--canary-background-01));
+ --diff-plain-lineNumber-color--: hsl(var(--canary-base-chrome-850));
+ --diff-hunk-content--: hsl(var(--canary-accent-50));
+ --diff-hunk-lineNumber--: hsla(var(--canary-accent-100) / 0.7);
+ --diff-add-content-highlight--: hsl(var(--canary-green-100));
+ --diff-del-content-highlight--: hsl(var(--canary-red-100));
+ --diff-add-widget--: hsl(var(--canary-base-chrome-100));
+ --diff-add-widget-color--: hsl(var(--canary-base-chrome-850));
+ --diff-empty-content--: hsl(var(--canary-background-01));
+ --diff-hunk-content-color--: hsl(var(--canary-base-chrome-850));
+
+ /* New colors design variables */
+ /* Text */
+ --canary-foreground-01: var(--canary-base-chrome-1000);
+ --canary-foreground-02: var(--canary-base-chrome-800);
+ --canary-foreground-03: var(--canary-base-chrome-700);
+ --canary-foreground-04: var(--canary-base-chrome-600);
+ --canary-foreground-05: var(--canary-base-chrome-500);
+ --canary-foreground-06: var(--canary-pure-white);
+ --canary-foreground-07: var(--canary-base-chrome-600);
+ --canary-foreground-08: var(--canary-base-chrome-800);
+ --canary-foreground-09: var(--canary-base-chrome-600);
+ --canary-foreground-10: var(--canary-base-chrome-200);
+ --canary-foreground-danger: var(--canary-red-500);
+ --canary-foreground-alert: var(--canary-amber-700);
+ --canary-foreground-success: var(--canary-green-600);
+ --canary-foreground-accent: var(--canary-accent-600);
+
+ /* Backgrounds */
+ --canary-background-01: var(--canary-base-chrome-50);
+ --canary-background-02: var(--canary-pure-white);
+ --canary-background-03: var(--canary-base-chrome-100);
+ --canary-background-04: var(--canary-base-chrome-500) / 0.12;
+ --canary-background-05: var(--canary-base-chrome-950);
+ --canary-background-06: var(--canary-base-chrome-850);
+ --canary-background-07: var(--canary-base-chrome-50);
+ --canary-background-08: var(--canary-pure-white);
+ --canary-background-09: var(--canary-base-chrome-150);
+ --canary-background-10: var(--canary-base-chrome-850);
+ --canary-background-11: var(--canary-base-chrome-200);
+ --canary-background-12: var(--canary-base-chrome-150);
+ --canary-background-13: var(--canary-base-chrome-600);
+ --canary-background-14: var(--canary-base-chrome-200);
+ --canary-background-surface: var(--canary-pure-white);
+ --canary-background-accent: var(--canary-accent-500);
+ --canary-background-danger: var(--canary-red-50);
+ --canary-background-success: var(--canary-green-50);
+ --canary-toast-background-danger: var(--canary-red-200);
+
+ /* Borders */
+ --canary-border-01: var(--canary-base-chrome-150);
+ --canary-border-02: var(--canary-base-chrome-150);
+ --canary-border-03: var(--canary-base-chrome-500);
+ --canary-border-04: var(--canary-base-chrome-150);
+ --canary-border-05: var(--canary-base-chrome-150);
+ --canary-border-06: var(--canary-base-chrome-600);
+ --canary-border-07: var(--canary-pure-white);
+ --canary-border-08: var(--canary-base-chrome-150);
+ --canary-border-09: var(--canary-base-chrome-1000);
+ --canary-border-10: var(--canary-base-chrome-150);
+ --canary-border-danger: var(--canary-red-400);
+ --canary-border-success: var(--canary-green-400);
+ --canary-border-accent: var(--canary-accent-400);
+ --canary-border-alert: var(--canary-amber-500);
+
+ /* Icons */
+ --canary-icon-01: var(--canary-base-chrome-600);
+ --canary-icon-02: var(--canary-base-chrome-1000);
+ --canary-icon-03: var(--canary-base-chrome-800);
+ --canary-icon-04: var(--canary-base-chrome-500);
+ --canary-icon-05: var(--canary-pure-white);
+ --canary-icon-06: var(--canary-base-chrome-200);
+ --canary-icon-07: var(--canary-base-chrome-800);
+ --canary-icon-08: var(--canary-base-chrome-1000);
+ --canary-icon-09: var(--canary-base-chrome-500);
+ --canary-icon-10: var(--canary-pure-white);
+ --canary-icon-danger: var(--canary-red-500);
+ --canary-icon-alert: var(--canary-amber-700);
+ --canary-icon-success: var(--canary-green-600);
+ --canary-icon-accent: var(--canary-accent-600);
+ --canary-icon-merged: var(--canary-purple-700);
+
+ /* Tags */
+ /* --gray */
+ --canary-tag-foreground-gray-01: var(--canary-base-chrome-800);
+ --canary-tag-border-gray-01: var(--canary-base-chrome-200);
+ --canary-tag-background-gray-01: var(--canary-base-chrome-100);
+ --canary-tag-background-gray-02: var(--canary-base-chrome-150);
+ /* --purple */
+ --canary-tag-foreground-purple-01: var(--canary-purple-700);
+ --canary-tag-border-purple-01: var(--canary-purple-150);
+ --canary-tag-background-purple-01: var(--canary-purple-50);
+ --canary-tag-background-purple-02: var(--canary-purple-100);
+ /* --blue */
+ --canary-tag-foreground-blue-01: var(--canary-accent-700);
+ --canary-tag-border-blue-01: var(--canary-accent-150);
+ --canary-tag-background-blue-01: var(--canary-accent-50);
+ --canary-tag-background-blue-02: var(--canary-accent-100);
+ /* --mint */
+ --canary-tag-foreground-mint-01: var(--canary-green-700);
+ --canary-tag-border-mint-01: var(--canary-green-150);
+ --canary-tag-background-mint-01: var(--canary-green-50);
+ --canary-tag-background-mint-02: var(--canary-green-100);
+ /* --amber */
+ --canary-tag-foreground-amber-01: var(--canary-amber-700);
+ --canary-tag-border-amber-01: var(--canary-amber-150);
+ --canary-tag-background-amber-01: var(--canary-amber-50);
+ --canary-tag-background-amber-02: var(--canary-amber-100);
+ /* --peach */
+ --canary-tag-foreground-peach-01: var(--canary-peach-700);
+ --canary-tag-border-peach-01: var(--canary-peach-150);
+ --canary-tag-background-peach-01: var(--canary-peach-50);
+ --canary-tag-background-peach-02: var(--canary-peach-100);
+ /* --red */
+ --canary-tag-foreground-red-01: var(--canary-red-700);
+ --canary-tag-border-red-01: var(--canary-red-150);
+ --canary-tag-background-red-01: var(--canary-red-50);
+ --canary-tag-background-red-02: var(--canary-red-100);
+
+ /* Labels */
+ --canary-label-background-black-01: hsla(var(--canary-pure-white) / 0.7);
+ --canary-label-background-blue-01: hsla(var(--canary-accent-100));
+ --canary-label-background-brown-01: hsla(var(--canary-brown-100));
+ --canary-label-background-cyan-01: hsla(var(--canary-cyan-100));
+ --canary-label-background-green-01: hsla(var(--canary-green-100));
+ --canary-label-background-indigo-01: hsla(var(--canary-indigo-100));
+ --canary-label-background-lime-01: hsla(var(--canary-lime-100));
+ --canary-label-background-mint-01: hsla(var(--canary-mint-100));
+ --canary-label-background-orange-01: hsla(var(--canary-orange-100));
+ --canary-label-background-pink-01: hsla(var(--canary-pink-100));
+ --canary-label-background-purple-01: hsla(var(--canary-purple-100));
+ --canary-label-background-red-01: hsla(var(--canary-red-100));
+ --canary-label-background-violet-01: hsla(var(--canary-violet-100));
+ --canary-label-background-yellow-01: hsla(var(--canary-yellow-100));
+ --canary-label-foreground-blue-01: hsla(var(--canary-accent-700));
+ --canary-label-foreground-brown-01: hsla(var(--canary-brown-700));
+ --canary-label-foreground-cyan-01: hsla(var(--canary-cyan-700));
+ --canary-label-foreground-green-01: hsla(var(--canary-green-700));
+ --canary-label-foreground-indigo-01: hsla(var(--canary-indigo-700));
+ --canary-label-foreground-lime-01: hsla(var(--canary-lime-700));
+ --canary-label-foreground-mint-01: hsla(var(--canary-mint-700));
+ --canary-label-foreground-orange-01: hsla(var(--canary-orange-700));
+ --canary-label-foreground-pink-01: hsla(var(--canary-pink-700));
+ --canary-label-foreground-purple-01: hsla(var(--canary-purple-700));
+ --canary-label-foreground-red-01: hsla(var(--canary-red-700));
+ --canary-label-foreground-violet-01: hsla(var(--canary-violet-700));
+ --canary-label-foreground-yellow-01: hsla(var(--canary-yellow-700));
+
+ /* Button */
+ --canary-button-foreground-danger-01: var(--canary-red-700);
+ --canary-button-background-danger-01: var(--canary-red-50);
+ --canary-button-background-danger-02: var(--canary-red-100);
+ --canary-button-background-danger-03: var(--canary-red-50);
+ --canary-button-border-danger-01: var(--canary-red-150);
+ --canary-button-foreground-success-01: var(--canary-green-700);
+ --canary-button-background-success-01: var(--canary-green-50);
+ --canary-button-background-success-02: var(--canary-green-100);
+ --canary-button-border-success-01: var(--canary-green-150);
+ --canary-button-foreground-disabled-01: var(--canary-base-chrome-500);
+ --canary-button-background-disabled-01: var(--canary-base-chrome-50);
+ --canary-button-border-disabled-01: var(--canary-base-chrome-150);
+
+ /* Box shadow colors */
+ --canary-box-shadow-1: var(--canary-base-chrome-300) / 0.3;
+ --canary-box-shadow-2: var(--canary-base-chrome-300) / 0.12;
+ --canary-box-shadow-pagination: var(--canary-base-chrome-300) / 0.12;
+ --shadow-sm: var(--canary-base-chrome-100);
+
+ --canary-widget-bg-gradient-from: var(--canary-base-chrome-100) / 1;
+ --canary-widget-bg-gradient-to: var(--canary-pure-white) / 1;
+ --canary-widget-number-gradient-from: var(--canary-base-chrome-500) / 1;
+ --canary-widget-number-gradient-to: var(--canary-base-chrome-600) / 1;
+ --canary-widget-number-bg-gradient-from: var(--canary-base-chrome-150) / 1;
+ --canary-widget-number-bg-gradient-to: var(--canary-pure-white) / 1;
+
+ /* Graph */
+ --canary-graph-gradient-bg-1: hsla(var(--canary-pure-white) / 0.5);
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-100) / 0.3);
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-100));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-amber-500));
+ --canary-graph-gradient-executing-3: hsla(var(--canary-amber-100));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-amber-100));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-150));
+
+ /* Navigation gradients */
+ /* We’ve removed them until we find a better solution in the design.
+ --canary-nav-gradient-1-1: var();
+ --canary-nav-gradient-1-2: var();
+ --canary-nav-gradient-2-1: var();
+ --canary-nav-gradient-2-2: var();
+ --canary-nav-gradient-2-3: var();
+ --canary-nav-gradient-3-1: var();
+ --canary-nav-gradient-3-2: var();
+ --canary-nav-gradient-4-1: var();
+ --canary-nav-gradient-4-2: var();
+ --canary-nav-item-gradient-1: var();
+ --canary-nav-item-gradient-2: var();
+ --canary-nav-item-gradient-3: var();
+ --canary-nav-item-gradient-4: var();
+ --canary-nav-item-gradient-5: var();
+ --canary-nav-item-gradient-6: var();
+ */
+
+ /* Selected tab bg element*/
+ /* We’ve removed them until we find a better solution in the design.
+ --canary-tab-item-gradient-from: var();
+ --canary-tab-item-gradient-to: var();
+ --canary-tab-item-gradient-stops: hsla(var(--canary-tab-item-gradient-from)),
+ hsla(var(--canary-tab-item-gradient-to));
+ --canary-tab-background-gradient: radial-gradient(closest-side, var(--canary-tab-item-gradient-stops));
+ */
+ }
+
+ .light-std-high {
+ --canary-background: var(--canary-base-chrome-50);
+ --canary-foreground: var(--canary-base-chrome-850);
+ --canary-card: var(--canary-pure-white);
+ --canary-card-foreground: var(--canary-base-chrome-1000);
+ --canary-popover: var(--canary-pure-white);
+ --canary-popover-foreground: var(--canary-base-chrome-1000);
+ --canary-primary: var(--canary-base-chrome-1000);
--canary-primary-background: var(--canary-base-chrome-50);
--canary-primary-foreground: var(--canary-base-chrome-850);
--canary-primary-muted: var(--canary-base-chrome-850);
- --canary-primary-accent: var(--canary-accent-500);
+ --canary-primary-accent: var(--canary-base-chrome-950);
--canary-secondary: var(--canary-base-chrome-100);
- --canary-secondary-foreground: var(--canary-base-chrome-black);
- --canary-secondary-background: var(--canary-base-chrome-white);
+ --canary-secondary-foreground: var(--canary-base-chrome-1000);
+ --canary-secondary-background: var(--canary-pure-white);
--canary-secondary-muted: var(--canary-base-chrome-600);
--canary-tertiary: var(--canary-base-chrome-100);
- --canary-tertiary-foreground: var(--canary-base-chrome-black);
+ --canary-tertiary-foreground: var(--canary-base-chrome-1000);
--canary-tertiary-background: var(--canary-base-chrome-600);
--canary-muted: var(--canary-base-chrome-100);
--canary-muted-foreground: var(--canary-base-chrome-600);
--canary-accent: var(--canary-base-chrome-100);
- --canary-accent-foreground: var(--canary-base-chrome-black);
+ --canary-accent-foreground: var(--canary-base-chrome-1000);
--canary-destructive: var(--canary-red-600);
- --canary-destructive-foreground: var(--canary-base-chrome-white);
+ --canary-destructive-foreground: var(--canary-pure-white);
--canary-border: var(--canary-base-chrome-150);
--canary-border-background: var(--canary-base-chrome-150);
--canary-input: var(--canary-base-chrome-150);
- --canary-input-background: var(--canary-base-chrome-white);
+ --canary-input-background: var(--canary-pure-white);
--canary-ring: var(--canary-accent-400);
--canary-radius: 0.5rem;
@@ -521,14 +1048,14 @@
/* New colors design variables */
/* Text */
- --canary-foreground-01: var(--canary-base-chrome-black);
- --canary-foreground-02: var(--canary-base-chrome-850);
+ --canary-foreground-01: var(--canary-base-chrome-1000);
+ --canary-foreground-02: var(--canary-base-chrome-800);
--canary-foreground-03: var(--canary-base-chrome-700);
--canary-foreground-04: var(--canary-base-chrome-600);
- --canary-foreground-05: var(--canary-base-chrome-600);
- --canary-foreground-06: var(--canary-base-chrome-white);
+ --canary-foreground-05: var(--canary-base-chrome-500);
+ --canary-foreground-06: var(--canary-pure-white);
--canary-foreground-07: var(--canary-base-chrome-600);
- --canary-foreground-08: var(--canary-base-chrome-850);
+ --canary-foreground-08: var(--canary-base-chrome-800);
--canary-foreground-09: var(--canary-base-chrome-600);
--canary-foreground-10: var(--canary-base-chrome-200);
--canary-foreground-danger: var(--canary-red-500);
@@ -538,20 +1065,20 @@
/* Backgrounds */
--canary-background-01: var(--canary-base-chrome-50);
- --canary-background-02: var(--canary-base-chrome-white);
- --canary-background-03: var(--canary-base-chrome-white);
+ --canary-background-02: var(--canary-pure-white);
+ --canary-background-03: var(--canary-base-chrome-100);
--canary-background-04: var(--canary-base-chrome-500) / 0.12;
- --canary-background-05: var(--canary-accent-500);
- --canary-background-06: var(--canary-accent-500) / 0.2;
+ --canary-background-05: var(--canary-base-chrome-950);
+ --canary-background-06: var(--canary-base-chrome-850);
--canary-background-07: var(--canary-base-chrome-50);
- --canary-background-08: var(--canary-base-chrome-white);
+ --canary-background-08: var(--canary-pure-white);
--canary-background-09: var(--canary-base-chrome-150);
- --canary-background-10: var(--canary-accent-600);
+ --canary-background-10: var(--canary-base-chrome-850);
--canary-background-11: var(--canary-base-chrome-200);
--canary-background-12: var(--canary-base-chrome-150);
--canary-background-13: var(--canary-base-chrome-600);
--canary-background-14: var(--canary-base-chrome-200);
- --canary-background-surface: var(--canary-base-chrome-white);
+ --canary-background-surface: var(--canary-pure-white);
--canary-background-accent: var(--canary-accent-500);
--canary-background-danger: var(--canary-red-50);
--canary-background-success: var(--canary-green-50);
@@ -564,9 +1091,9 @@
--canary-border-04: var(--canary-base-chrome-150);
--canary-border-05: var(--canary-base-chrome-150);
--canary-border-06: var(--canary-base-chrome-600);
- --canary-border-07: var(--canary-base-chrome-white);
+ --canary-border-07: var(--canary-pure-white);
--canary-border-08: var(--canary-base-chrome-150);
- --canary-border-09: var(--canary-accent-400);
+ --canary-border-09: var(--canary-base-chrome-1000);
--canary-border-10: var(--canary-base-chrome-150);
--canary-border-danger: var(--canary-red-400);
--canary-border-success: var(--canary-green-400);
@@ -575,15 +1102,15 @@
/* Icons */
--canary-icon-01: var(--canary-base-chrome-600);
- --canary-icon-02: var(--canary-base-chrome-black);
- --canary-icon-03: var(--canary-base-chrome-850);
- --canary-icon-04: var(--canary-base-chrome-600);
- --canary-icon-05: var(--canary-base-chrome-white);
+ --canary-icon-02: var(--canary-base-chrome-1000);
+ --canary-icon-03: var(--canary-base-chrome-800);
+ --canary-icon-04: var(--canary-base-chrome-500);
+ --canary-icon-05: var(--canary-pure-white);
--canary-icon-06: var(--canary-base-chrome-200);
- --canary-icon-07: var(--canary-base-chrome-850);
- --canary-icon-08: var(--canary-base-chrome-black);
- --canary-icon-09: var(--canary-base-chrome-600);
- --canary-icon-10: var(--canary-base-chrome-white);
+ --canary-icon-07: var(--canary-base-chrome-800);
+ --canary-icon-08: var(--canary-base-chrome-1000);
+ --canary-icon-09: var(--canary-base-chrome-500);
+ --canary-icon-10: var(--canary-pure-white);
--canary-icon-danger: var(--canary-red-500);
--canary-icon-alert: var(--canary-amber-700);
--canary-icon-success: var(--canary-green-600);
@@ -628,7 +1155,7 @@
--canary-tag-background-red-02: var(--canary-red-100);
/* Labels */
- --canary-label-background-black-01: hsla(var(--canary-base-chrome-white) / 0.7);
+ --canary-label-background-black-01: hsla(var(--canary-pure-white) / 0.7);
--canary-label-background-blue-01: hsla(var(--canary-accent-100));
--canary-label-background-brown-01: hsla(var(--canary-brown-100));
--canary-label-background-cyan-01: hsla(var(--canary-cyan-100));
@@ -677,17 +1204,18 @@
--shadow-sm: var(--canary-base-chrome-100);
--canary-widget-bg-gradient-from: var(--canary-base-chrome-100) / 1;
- --canary-widget-bg-gradient-to: var(--canary-base-chrome-white) / 1;
+ --canary-widget-bg-gradient-to: var(--canary-pure-white) / 1;
--canary-widget-number-gradient-from: var(--canary-base-chrome-500) / 1;
--canary-widget-number-gradient-to: var(--canary-base-chrome-600) / 1;
--canary-widget-number-bg-gradient-from: var(--canary-base-chrome-150) / 1;
- --canary-widget-number-bg-gradient-to: var(--canary-base-chrome-white) / 1;
+ --canary-widget-number-bg-gradient-to: var(--canary-pure-white) / 1;
/* Graph */
- --canary-graph-gradient-bg-1: hsla(0, 0%, 100%, 0.04);
- --canary-graph-gradient-bg-2: hsla(0, 0%, 100%, 0);
- --canary-graph-gradient-executing-1: hsla(var(--canary-accent-200) / 0.2);
- --canary-graph-gradient-executing-2: hsla(var(--canary-accent-500));
+ --canary-graph-gradient-bg-1: hsla(var(--canary-pure-white) / 0.5);
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-100) / 0.3);
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-150));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-amber-600));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-150));
/* Navigation gradients */
/* We’ve removed them until we find a better solution in the design.
@@ -721,32 +1249,32 @@
.light-prot-std {
--canary-background: var(--canary-base-chrome-50);
--canary-foreground: var(--canary-base-chrome-850);
- --canary-card: var(--canary-base-chrome-white);
- --canary-card-foreground: var(--canary-base-chrome-black);
- --canary-popover: var(--canary-base-chrome-white);
- --canary-popover-foreground: var(--canary-base-chrome-black);
- --canary-primary: var(--canary-base-chrome-black);
+ --canary-card: var(--canary-pure-white);
+ --canary-card-foreground: var(--canary-base-chrome-1000);
+ --canary-popover: var(--canary-pure-white);
+ --canary-popover-foreground: var(--canary-base-chrome-1000);
+ --canary-primary: var(--canary-base-chrome-1000);
--canary-primary-background: var(--canary-base-chrome-50);
--canary-primary-foreground: var(--canary-base-chrome-850);
--canary-primary-muted: var(--canary-base-chrome-850);
- --canary-primary-accent: var(--canary-accent-500);
+ --canary-primary-accent: var(--canary-base-chrome-850);
--canary-secondary: var(--canary-base-chrome-100);
- --canary-secondary-foreground: var(--canary-base-chrome-black);
- --canary-secondary-background: var(--canary-base-chrome-white);
+ --canary-secondary-foreground: var(--canary-base-chrome-1000);
+ --canary-secondary-background: var(--canary-pure-white);
--canary-secondary-muted: var(--canary-base-chrome-600);
--canary-tertiary: var(--canary-base-chrome-100);
- --canary-tertiary-foreground: var(--canary-base-chrome-black);
+ --canary-tertiary-foreground: var(--canary-base-chrome-1000);
--canary-tertiary-background: var(--canary-base-chrome-600);
--canary-muted: var(--canary-base-chrome-100);
--canary-muted-foreground: var(--canary-base-chrome-600);
--canary-accent: var(--canary-base-chrome-100);
- --canary-accent-foreground: var(--canary-base-chrome-black);
+ --canary-accent-foreground: var(--canary-base-chrome-1000);
--canary-destructive: var(--canary-yellow-600);
- --canary-destructive-foreground: var(--canary-base-chrome-white);
+ --canary-destructive-foreground: var(--canary-pure-white);
--canary-border: var(--canary-base-chrome-150);
--canary-border-background: var(--canary-base-chrome-150);
--canary-input: var(--canary-base-chrome-150);
- --canary-input-background: var(--canary-base-chrome-white);
+ --canary-input-background: var(--canary-pure-white);
--canary-ring: var(--canary-accent-400);
--canary-radius: 0.5rem;
@@ -780,14 +1308,14 @@
/* New colors design variables */
/* Text */
- --canary-foreground-01: var(--canary-base-chrome-black);
- --canary-foreground-02: var(--canary-base-chrome-850);
+ --canary-foreground-01: var(--canary-base-chrome-1000);
+ --canary-foreground-02: var(--canary-base-chrome-800);
--canary-foreground-03: var(--canary-base-chrome-700);
--canary-foreground-04: var(--canary-base-chrome-600);
- --canary-foreground-05: var(--canary-base-chrome-600);
- --canary-foreground-06: var(--canary-base-chrome-white);
+ --canary-foreground-05: var(--canary-base-chrome-500);
+ --canary-foreground-06: var(--canary-pure-white);
--canary-foreground-07: var(--canary-base-chrome-600);
- --canary-foreground-08: var(--canary-base-chrome-850);
+ --canary-foreground-08: var(--canary-base-chrome-800);
--canary-foreground-09: var(--canary-base-chrome-600);
--canary-foreground-10: var(--canary-base-chrome-200);
--canary-foreground-danger: var(--canary-yellow-700);
@@ -797,20 +1325,20 @@
/* Backgrounds */
--canary-background-01: var(--canary-base-chrome-50);
- --canary-background-02: var(--canary-base-chrome-white);
- --canary-background-03: var(--canary-base-chrome-white);
+ --canary-background-02: var(--canary-pure-white);
+ --canary-background-03: var(--canary-base-chrome-100);
--canary-background-04: var(--canary-base-chrome-500) / 0.12;
- --canary-background-05: var(--canary-accent-500);
- --canary-background-06: var(--canary-accent-500) / 0.2;
+ --canary-background-05: var(--canary-base-chrome-950);
+ --canary-background-06: var(--canary-base-chrome-850);
--canary-background-07: var(--canary-base-chrome-50);
- --canary-background-08: var(--canary-base-chrome-white);
+ --canary-background-08: var(--canary-pure-white);
--canary-background-09: var(--canary-base-chrome-150);
- --canary-background-10: var(--canary-accent-500);
+ --canary-background-10: var(--canary-base-chrome-850);
--canary-background-11: var(--canary-base-chrome-200);
--canary-background-12: var(--canary-base-chrome-150);
--canary-background-13: var(--canary-base-chrome-600);
--canary-background-14: var(--canary-base-chrome-200);
- --canary-background-surface: var(--canary-base-chrome-white);
+ --canary-background-surface: var(--canary-pure-white);
--canary-background-accent: var(--canary-accent-500);
--canary-background-danger: var(--canary-yellow-50);
--canary-background-success: var(--canary-indigo-50);
@@ -823,9 +1351,9 @@
--canary-border-04: var(--canary-base-chrome-150);
--canary-border-05: var(--canary-base-chrome-150);
--canary-border-06: var(--canary-base-chrome-600);
- --canary-border-07: var(--canary-base-chrome-white);
+ --canary-border-07: var(--canary-pure-white);
--canary-border-08: var(--canary-base-chrome-150);
- --canary-border-09: var(--canary-accent-400);
+ --canary-border-09: var(--canary-base-chrome-1000);
--canary-border-10: var(--canary-base-chrome-150);
--canary-border-danger: var(--canary-yellow-500);
--canary-border-success: var(--canary-indigo-400);
@@ -834,15 +1362,15 @@
/* Icons */
--canary-icon-01: var(--canary-base-chrome-600);
- --canary-icon-02: var(--canary-base-chrome-black);
+ --canary-icon-02: var(--canary-base-chrome-1000);
--canary-icon-03: var(--canary-base-chrome-850);
--canary-icon-04: var(--canary-base-chrome-600);
- --canary-icon-05: var(--canary-base-chrome-white);
+ --canary-icon-05: var(--canary-pure-white);
--canary-icon-06: var(--canary-base-chrome-200);
--canary-icon-07: var(--canary-base-chrome-850);
- --canary-icon-08: var(--canary-base-chrome-black);
+ --canary-icon-08: var(--canary-base-chrome-1000);
--canary-icon-09: var(--canary-base-chrome-600);
- --canary-icon-10: var(--canary-base-chrome-white);
+ --canary-icon-10: var(--canary-pure-white);
--canary-icon-danger: var(--canary-yellow-700);
--canary-icon-alert: var(--canary-amber-700);
--canary-icon-success: var(--canary-indigo-600);
@@ -887,7 +1415,7 @@
--canary-tag-background-red-02: var(--canary-yellow-100);
/* Labels */
- --canary-label-background-black-01: hsla(var(--canary-base-chrome-white) / 0.7);
+ --canary-label-background-black-01: hsla(var(--canary-pure-white) / 0.7);
--canary-label-background-blue-01: hsla(var(--canary-accent-100));
--canary-label-background-brown-01: hsla(var(--canary-brown-100));
--canary-label-background-cyan-01: hsla(var(--canary-cyan-100));
@@ -898,22 +1426,22 @@
--canary-label-background-orange-01: hsla(var(--canary-orange-100));
--canary-label-background-pink-01: hsla(var(--canary-pink-100));
--canary-label-background-purple-01: hsla(var(--canary-purple-100));
- --canary-label-background-red-01: var(--canary-yellow-100);
- --canary-label-background-violet-01: var(--canary-violet-100);
- --canary-label-background-yellow-01: var(--canary-yellow-100);
- --canary-label-foreground-blue-01: var(--canary-accent-700);
- --canary-label-foreground-brown-01: var(--canary-brown-700);
- --canary-label-foreground-cyan-01: var(--canary-cyan-700);
- --canary-label-foreground-green-01: var(--canary-indigo-700);
- --canary-label-foreground-indigo-01: var(--canary-indigo-700);
- --canary-label-foreground-lime-01: var(--canary-lime-700);
- --canary-label-foreground-mint-01: var(--canary-mint-700);
- --canary-label-foreground-orange-01: var(--canary-orange-700);
- --canary-label-foreground-pink-01: var(--canary-pink-700);
- --canary-label-foreground-purple-01: var(--canary-purple-700);
- --canary-label-foreground-red-01: var(--canary-yellow-700);
- --canary-label-foreground-violet-01: var(--canary-violet-700);
- --canary-label-foreground-yellow-01: var(--canary-yellow-700);
+ --canary-label-background-red-01: hsla(var(--canary-yellow-100));
+ --canary-label-background-violet-01: hsla(var(--canary-violet-100));
+ --canary-label-background-yellow-01: hsla(var(--canary-yellow-100));
+ --canary-label-foreground-blue-01: hsla(var(--canary-accent-700));
+ --canary-label-foreground-brown-01: hsla(var(--canary-brown-700));
+ --canary-label-foreground-cyan-01: hsla(var(--canary-cyan-700));
+ --canary-label-foreground-green-01: hsla(var(--canary-indigo-700));
+ --canary-label-foreground-indigo-01: hsla(var(--canary-indigo-700));
+ --canary-label-foreground-lime-01: hsla(var(--canary-lime-700));
+ --canary-label-foreground-mint-01: hsla(var(--canary-mint-700));
+ --canary-label-foreground-orange-01: hsla(var(--canary-orange-700));
+ --canary-label-foreground-pink-01: hsla(var(--canary-pink-700));
+ --canary-label-foreground-purple-01: hsla(var(--canary-purple-700));
+ --canary-label-foreground-red-01: hsla(var(--canary-yellow-700));
+ --canary-label-foreground-violet-01: hsla(var(--canary-violet-700));
+ --canary-label-foreground-yellow-01: hsla(var(--canary-yellow-700));
/* Button */
--canary-button-foreground-danger-01: var(--canary-yellow-700);
@@ -936,13 +1464,24 @@
--shadow-sm: var(--canary-base-chrome-100);
/* Graph */
- --canary-graph-gradient-bg-1: hsla(0, 0%, 100%, 0.04);
- --canary-graph-gradient-bg-2: hsla(0, 0%, 100%, 0);
+ --canary-graph-gradient-bg-1: hsla(var(--canary-pure-white));
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-100) / 0.3);
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-100));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-amber-500));
+ --canary-graph-gradient-executing-3: hsla(var(--canary-amber-100));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-amber-100));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-150));
+
+ --canary-widget-bg-gradient-from: var(--canary-base-chrome-100);
+ --canary-widget-bg-gradient-to: var(--canary-pure-white);
+ --canary-widget-number-gradient-from: var(--canary-base-chrome-500);
+ --canary-widget-number-gradient-to: var(--canary-base-chrome-600);
+ --canary-widget-number-bg-gradient-from: var(--canary-base-chrome-150);
+ --canary-widget-number-bg-gradient-to: var(--canary-pure-white);
}
.dark,
- .dark-std-low,
- .dark-std-std {
+ .dark-std-low {
--canary-background: var(--canary-grey-6);
--canary-foreground: var(--canary-grey-94);
--canary-card: var(--canary-grey-10);
@@ -967,7 +1506,7 @@
--canary-accent-foreground: var(--canary-white);
--canary-destructive: var(--canary-red);
--canary-destructive-foreground: var(--canary-white);
- --canary-border: var(--canary-grey-15);
+ --canary-border: var(--canary-grey-20);
--canary-border-background: var(--canary-grey-10);
--canary-input: var(--canary-grey-15);
--canary-input-background: var(--canary-grey-6);
@@ -1172,38 +1711,43 @@
/* Graph */
--canary-graph-gradient-bg-1: hsla(0, 0%, 100%, 0.04);
--canary-graph-gradient-bg-2: hsla(0, 0%, 100%, 0);
+ --canary-graph-gradient-executing-1: hsla(var(--canary-orange-55));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-orange-55) / 0.2);
+ --canary-graph-gradient-executing-3: hsla(var(--canary-orange-55));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-orange-55));
+ --canary-graph-viewport-bg: hsla(var(--canary-grey-12));
}
- .dark-std-high {
- --canary-background: var(--canary-base-chrome-black);
- --canary-foreground: var(--canary-base-chrome-white);
+ .dark-std-std {
+ --canary-background: var(--canary-base-chrome-1000);
+ --canary-foreground: var(--canary-pure-white);
--canary-card: var(--canary-base-chrome-950);
- --canary-card-foreground: var(--canary-base-chrome-white);
+ --canary-card-foreground: var(--canary-pure-white);
--canary-popover: var(--canary-base-chrome-900);
- --canary-popover-foreground: var(--canary-base-chrome-white);
- --canary-primary: var(--canary-base-chrome-white);
- --canary-primary-background: var(--canary-base-chrome-black);
+ --canary-popover-foreground: var(--canary-pure-white);
+ --canary-primary: var(--canary-pure-white);
+ --canary-primary-background: var(--canary-base-chrome-1000);
--canary-primary-foreground: var(--canary-base-chrome-950);
--canary-primary-muted: var(--canary-base-chrome-200);
- --canary-primary-accent: var(--canary-accent-600);
+ --canary-primary-accent: var(--canary-base-chrome-100);
--canary-secondary: var(--canary-base-chrome-850);
- --canary-secondary-foreground: var(--canary-base-chrome-white);
+ --canary-secondary-foreground: var(--canary-pure-white);
--canary-secondary-background: var(--canary-base-chrome-950);
--canary-secondary-muted: var(--canary-base-chrome-500);
--canary-tertiary: var(--canary-base-chrome-850);
- --canary-tertiary-foreground: var(--canary-base-chrome-white);
+ --canary-tertiary-foreground: var(--canary-pure-white);
--canary-tertiary-background: var(--canary-base-chrome-500);
--canary-muted: var(--canary-base-chrome-850);
--canary-muted-foreground: var(--canary-base-chrome-500);
--canary-accent: var(--canary-base-chrome-850);
- --canary-accent-foreground: var(--canary-base-chrome-white);
+ --canary-accent-foreground: var(--canary-pure-white);
--canary-destructive: var(--canary-red-200);
- --canary-destructive-foreground: var(--canary-base-chrome-black);
+ --canary-destructive-foreground: var(--canary-base-chrome-1000);
--canary-border: var(--canary-base-chrome-850);
--canary-border-background: var(--canary-base-chrome-850);
--canary-input: var(--canary-base-chrome-850);
--canary-input-background: var(--canary-base-chrome-950);
- --canary-ring: var(--canary-accent-300);
+ --canary-ring: var(--canary-base-chrome-400);
--canary-radius: 0.5rem;
--canary-success: var(--canary-green-200);
@@ -1236,12 +1780,12 @@
/* New colors design variables */
/* Text */
- --canary-foreground-01: var(--canary-base-chrome-white);
+ --canary-foreground-01: var(--canary-pure-white);
--canary-foreground-02: var(--canary-base-chrome-200);
--canary-foreground-03: var(--canary-base-chrome-400);
--canary-foreground-04: var(--canary-base-chrome-500);
--canary-foreground-05: var(--canary-base-chrome-500);
- --canary-foreground-06: var(--canary-base-chrome-white);
+ --canary-foreground-06: var(--canary-base-chrome-1000);
--canary-foreground-07: var(--canary-base-chrome-500);
--canary-foreground-08: var(--canary-base-chrome-200);
--canary-foreground-09: var(--canary-base-chrome-400);
@@ -1249,19 +1793,19 @@
--canary-foreground-danger: var(--canary-red-200);
--canary-foreground-alert: var(--canary-amber-200);
--canary-foreground-success: var(--canary-green-200);
- --canary-foreground-accent: var(--canary-blue-60);
+ --canary-foreground-accent: var(--canary-accent-200);
/* Backgrounds */
- --canary-background-01: var(--canary-base-chrome-black);
+ --canary-background-01: var(--canary-base-chrome-1000);
--canary-background-02: var(--canary-base-chrome-950);
- --canary-background-03: var(--canary-base-chrome-950);
+ --canary-background-03: var(--canary-base-chrome-900);
--canary-background-04: var(--canary-base-chrome-850) / 0.5;
- --canary-background-05: var(--canary-accent-600);
- --canary-background-06: var(--canary-accent-600) / 0.2;
- --canary-background-07: var(--canary-base-chrome-black);
- --canary-background-08: var(--canary-base-chrome-900);
+ --canary-background-05: var(--canary-base-chrome-100);
+ --canary-background-06: var(--canary-base-chrome-150);
+ --canary-background-07: var(--canary-base-chrome-1000);
+ --canary-background-08: var(--canary-base-chrome-850);
--canary-background-09: var(--canary-base-chrome-850);
- --canary-background-10: var(--canary-accent-500);
+ --canary-background-10: var(--canary-base-chrome-150);
--canary-background-11: var(--canary-base-chrome-800);
--canary-background-12: var(--canary-base-chrome-800);
--canary-background-13: var(--canary-base-chrome-400);
@@ -1276,12 +1820,12 @@
--canary-border-01: var(--canary-base-chrome-850);
--canary-border-02: var(--canary-base-chrome-850);
--canary-border-03: var(--canary-base-chrome-400);
- --canary-border-04: var(--canary-base-chrome-850);
+ --canary-border-04: var(--canary-base-chrome-850) / 0.6;
--canary-border-05: var(--canary-base-chrome-850);
--canary-border-06: var(--canary-base-chrome-400);
- --canary-border-07: var(--canary-base-chrome-white);
+ --canary-border-07: var(--canary-pure-white);
--canary-border-08: var(--canary-base-chrome-850);
- --canary-border-09: var(--canary-accent-300);
+ --canary-border-09: var(--canary-base-chrome-50);
--canary-border-10: var(--canary-base-chrome-850);
--canary-border-danger: var(--canary-red-300);
--canary-border-success: var(--canary-green-300);
@@ -1290,15 +1834,15 @@
/* Icons */
--canary-icon-01: var(--canary-base-chrome-400);
- --canary-icon-02: var(--canary-base-chrome-white);
+ --canary-icon-02: var(--canary-pure-white);
--canary-icon-03: var(--canary-base-chrome-200);
--canary-icon-04: var(--canary-base-chrome-500);
- --canary-icon-05: var(--canary-base-chrome-black);
+ --canary-icon-05: var(--canary-base-chrome-1000);
--canary-icon-06: var(--canary-base-chrome-700);
--canary-icon-07: var(--canary-base-chrome-200);
- --canary-icon-08: var(--canary-base-chrome-white);
+ --canary-icon-08: var(--canary-pure-white);
--canary-icon-09: var(--canary-base-chrome-400);
- --canary-icon-10: var(--canary-base-chrome-black);
+ --canary-icon-10: var(--canary-base-chrome-1000);
--canary-icon-danger: var(--canary-red-200);
--canary-icon-alert: var(--canary-amber-200);
--canary-icon-success: var(--canary-green-200);
@@ -1343,7 +1887,7 @@
--canary-tag-background-red-02: var(--canary-red-900);
/* Labels */
- --canary-label-background-black-01: hsla(var(--canary-base-chrome-black) / 0.45);
+ --canary-label-background-black-01: hsla(var(--canary-base-chrome-1000) / 0.45);
--canary-label-background-blue-01: hsl(var(--canary-accent-900));
--canary-label-background-brown-01: hsl(var(--canary-brown-900));
--canary-label-background-cyan-01: hsl(var(--canary-cyan-900));
@@ -1386,14 +1930,288 @@
--canary-button-border-disabled-01: var(--canary-base-chrome-850);
/* Box shadow colors */
- --canary-box-shadow-1: var(--canary-base-chrome-black) / 0.8;
- --canary-box-shadow-2: var(--canary-base-chrome-black) / 0.6;
- --canary-box-shadow-pagination: var(--canary-base-chrome-black) / 0.5;
- --shadow-sm: 0px 1px 6px 0px var(--canary-base-chrome-black);
+ --canary-box-shadow-1: var(--canary-base-chrome-1000) / 0.8;
+ --canary-box-shadow-2: var(--canary-base-chrome-1000) / 0.6;
+ --canary-box-shadow-pagination: var(--canary-base-chrome-1000) / 0.5;
+ --shadow-sm: 0px 1px 6px 0px var(--canary-base-chrome-1000);
/* Graph */
- --canary-graph-gradient-bg-1: hsla(0, 0%, 100%, 0.04);
- --canary-graph-gradient-bg-2: hsla(0, 0%, 100%, 0);
+ --canary-graph-gradient-bg-1: hsla(var(--canary-base-chrome-850));
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-900));
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-200));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-base-chrome-850));
+ --canary-graph-gradient-executing-3: hsla(var(--canary-amber-200));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-amber-200));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-850) / 0.6);
+
+ --canary-widget-number-gradient-from: var(--canary-base-chrome-200) / 1;
+ --canary-widget-number-gradient-to: var(--canary-base-chrome-600) / 0;
+ --canary-widget-number-bg-gradient-from: var(--canary-base-chrome-800);
+ --canary-widget-number-bg-gradient-to: var(--canary-base-chrome-850);
+ --canary-widget-bg-gradient-from: var(--canary-base-chrome-850);
+ --canary-widget-bg-gradient-to: var(--canary-base-chrome-950);
+
+ /* Navigation gradients */
+ /* We’ve removed them until we find a better solution in the design.
+ --canary-nav-gradient-1-1: var();
+ --canary-nav-gradient-1-2: var();
+ --canary-nav-gradient-2-1: var();
+ --canary-nav-gradient-2-2: var();
+ --canary-nav-gradient-2-3: var();
+ --canary-nav-gradient-3-1: var();
+ --canary-nav-gradient-3-2: var();
+ --canary-nav-gradient-4-1: var();
+ --canary-nav-gradient-4-2: var();
+ --canary-nav-item-gradient-1: var();
+ --canary-nav-item-gradient-2: var();
+ --canary-nav-item-gradient-3: var();
+ --canary-nav-item-gradient-4: var();
+ --canary-nav-item-gradient-5: var();
+ --canary-nav-item-gradient-6: var();
+ */
+
+ /* Selected tab bg element*/
+ /* We’ve removed them until we find a better solution in the design.
+ --canary-tab-item-gradient-from: var();
+ --canary-tab-item-gradient-to: var();
+ --canary-tab-item-gradient-stops: hsla(var(--canary-tab-item-gradient-from)),
+ hsla(var(--canary-tab-item-gradient-to));
+ --canary-tab-background-gradient: radial-gradient(closest-side, var(--canary-tab-item-gradient-stops));
+ */
+ }
+
+ .dark-std-high {
+ --canary-background: var(--canary-base-chrome-1000);
+ --canary-foreground: var(--canary-pure-white);
+ --canary-card: var(--canary-base-chrome-900);
+ --canary-card-foreground: var(--canary-pure-white);
+ --canary-popover: var(--canary-base-chrome-900);
+ --canary-popover-foreground: var(--canary-pure-white);
+ --canary-primary: var(--canary-base-chrome-100);
+ --canary-primary-background: var(--canary-base-chrome-1000);
+ --canary-primary-foreground: var(--canary-base-chrome-950);
+ --canary-primary-muted: var(--canary-base-chrome-200);
+ --canary-primary-accent: var(--canary-base-chrome-100);
+ --canary-secondary: var(--canary-base-chrome-850);
+ --canary-secondary-foreground: var(--canary-pure-white);
+ --canary-secondary-background: var(--canary-base-chrome-950);
+ --canary-secondary-muted: var(--canary-base-chrome-400);
+ --canary-tertiary: var(--canary-base-chrome-850);
+ --canary-tertiary-foreground: var(--canary-pure-white);
+ --canary-tertiary-background: var(--canary-base-chrome-500);
+ --canary-muted: var(--canary-base-chrome-850);
+ --canary-muted-foreground: var(--canary-base-chrome-400);
+ --canary-accent: var(--canary-base-chrome-850);
+ --canary-accent-foreground: var(--canary-pure-white);
+ --canary-destructive: var(--canary-red-200);
+ --canary-destructive-foreground: var(--canary-base-chrome-1000);
+ --canary-border: var(--canary-base-chrome-700);
+ --canary-border-background: var(--canary-base-chrome-700);
+ --canary-input: var(--canary-base-chrome-700);
+ --canary-input-background: var(--canary-base-chrome-900);
+ --canary-ring: var(--canary-base-chrome-200);
+
+ --canary-radius: 0.5rem;
+ --canary-success: var(--canary-green-200);
+ --canary-error: var(--canary-red-200);
+ --canary-warning: var(--canary-amber-200);
+ --canary-emphasis: var(--canary-accent-200);
+ --canary-ai: var(--canary-purple-200);
+ --canary-ai-button-stop-1: var(--canary-yellow-100);
+ --canary-ai-button-stop-2: var(--canary-pink-150);
+ --canary-ai-button-stop-3: var(--canary-purple-300);
+ --canary-ai-button-stop-4: var(--canary-cyan-200);
+
+ --diff-grey: hsl(var(--canary-base-chrome-950));
+ --diff-add-content--: hsl(var(--canary-green-950));
+ --diff-del-content--: hsl(var(--canary-red-950));
+ --diff-add-lineNumber--: hsl(var(--canary-green-900));
+ --diff-del-lineNumber--: hsl(var(--canary-red-900));
+ --diff-plain-content--: hsl(var(--canary-background-01));
+ --diff-expand-content--: hsl(var(--canary-background-01));
+ --diff-plain-lineNumber--: hsl(var(--canary-background-01));
+ --diff-plain-lineNumber-color--: hsl(var(--canary-base-chrome-200));
+ --diff-hunk-content--: hsl(var(--canary-accent-950));
+ --diff-hunk-lineNumber--: hsla(var(--canary-accent-900) / 0.5);
+ --diff-add-content-highlight--: hsl(var(--canary-green-900));
+ --diff-del-content-highlight--: hsl(var(--canary-red-900));
+ --diff-add-widget--: hsl(var(--canary-base-chrome-900));
+ --diff-add-widget-color--: hsl(var(--canary-base-chrome-200));
+ --diff-empty-content--: hsl(var(--canary-background-01));
+ --diff-hunk-content-color--: hsl(var(--canary-base-chrome-200));
+
+ /* New colors design variables */
+ /* Text */
+ --canary-foreground-01: var(--canary-pure-white);
+ --canary-foreground-02: var(--canary-base-chrome-100);
+ --canary-foreground-03: var(--canary-base-chrome-200);
+ --canary-foreground-04: var(--canary-base-chrome-300);
+ --canary-foreground-05: var(--canary-base-chrome-300);
+ --canary-foreground-06: var(--canary-base-chrome-1000);
+ --canary-foreground-07: var(--canary-base-chrome-400);
+ --canary-foreground-08: var(--canary-base-chrome-150);
+ --canary-foreground-09: var(--canary-base-chrome-400);
+ --canary-foreground-10: var(--canary-base-chrome-700);
+ --canary-foreground-danger: var(--canary-red-200);
+ --canary-foreground-alert: var(--canary-amber-200);
+ --canary-foreground-success: var(--canary-green-200);
+ --canary-foreground-accent: var(--canary-accent-200);
+
+ /* Backgrounds */
+ --canary-background-01: var(--canary-base-chrome-1000);
+ --canary-background-02: var(--canary-base-chrome-950);
+ --canary-background-03: var(--canary-base-chrome-900);
+ --canary-background-04: var(--canary-base-chrome-400) / 0.1;
+ --canary-background-05: var(--canary-base-chrome-100);
+ --canary-background-06: var(--canary-base-chrome-150);
+ --canary-background-07: var(--canary-base-chrome-1000);
+ --canary-background-08: var(--canary-base-chrome-850);
+ --canary-background-09: var(--canary-base-chrome-850);
+ --canary-background-10: var(--canary-base-chrome-150);
+ --canary-background-11: var(--canary-base-chrome-800);
+ --canary-background-12: var(--canary-base-chrome-800);
+ --canary-background-13: var(--canary-base-chrome-400);
+ --canary-background-14: var(--canary-base-chrome-500);
+ --canary-background-surface: var(--canary-base-chrome-900);
+ --canary-background-accent: var(--canary-accent-600);
+ --canary-background-danger: var(--canary-red-950);
+ --canary-background-success: var(--canary-green-950);
+ --canary-toast-background-danger: var(--canary-red-600);
+
+ /* Borders */
+ --canary-border-01: var(--canary-base-chrome-700);
+ --canary-border-02: var(--canary-base-chrome-700);
+ --canary-border-03: var(--canary-base-chrome-200);
+ --canary-border-04: var(--canary-base-chrome-700) / 0.6;
+ --canary-border-05: var(--canary-base-chrome-700);
+ --canary-border-06: var(--canary-base-chrome-400);
+ --canary-border-07: var(--canary-pure-white);
+ --canary-border-08: var(--canary-base-chrome-700);
+ --canary-border-09: var(--canary-pure-white);
+ --canary-border-10: var(--canary-base-chrome-700);
+ --canary-border-danger: var(--canary-red-300);
+ --canary-border-success: var(--canary-green-300);
+ --canary-border-accent: var(--canary-accent-500);
+ --canary-border-alert: var(--canary-amber-400);
+
+ /* Icons */
+ --canary-icon-01: var(--canary-base-chrome-150);
+ --canary-icon-02: var(--canary-pure-white);
+ --canary-icon-03: var(--canary-base-chrome-150);
+ --canary-icon-04: var(--canary-base-chrome-200);
+ --canary-icon-05: var(--canary-base-chrome-1000);
+ --canary-icon-06: var(--canary-base-chrome-500);
+ --canary-icon-07: var(--canary-base-chrome-150);
+ --canary-icon-08: var(--canary-pure-white);
+ --canary-icon-09: var(--canary-base-chrome-150);
+ --canary-icon-10: var(--canary-base-chrome-1000);
+ --canary-icon-danger: var(--canary-red-200);
+ --canary-icon-alert: var(--canary-amber-200);
+ --canary-icon-success: var(--canary-green-200);
+ --canary-icon-accent: var(--canary-accent-200);
+ --canary-icon-merged: var(--canary-purple-200);
+
+ /* Tags */
+ /* --gray */
+ --canary-tag-foreground-gray-01: var(--canary-base-chrome-200);
+ --canary-tag-border-gray-01: var(--canary-base-chrome-800);
+ --canary-tag-background-gray-01: var(--canary-base-chrome-900);
+ --canary-tag-background-gray-02: var(--canary-base-chrome-850);
+ /* --purple */
+ --canary-tag-foreground-purple-01: var(--canary-purple-200);
+ --canary-tag-border-purple-01: var(--canary-purple-850);
+ --canary-tag-background-purple-01: var(--canary-purple-950);
+ --canary-tag-background-purple-02: var(--canary-purple-900);
+ /* --blue */
+ --canary-tag-foreground-blue-01: var(--canary-accent-200);
+ --canary-tag-border-blue-01: var(--canary-accent-850);
+ --canary-tag-background-blue-01: var(--canary-accent-950);
+ --canary-tag-background-blue-02: var(--canary-accent-950);
+ /* --mint */
+ --canary-tag-foreground-mint-01: var(--canary-green-200);
+ --canary-tag-border-mint-01: var(--canary-green-850);
+ --canary-tag-background-mint-01: var(--canary-green-950);
+ --canary-tag-background-mint-02: var(--canary-green-900);
+ /* --amber */
+ --canary-tag-foreground-amber-01: var(--canary-amber-200);
+ --canary-tag-border-amber-01: var(--canary-amber-850);
+ --canary-tag-background-amber-01: var(--canary-amber-950);
+ --canary-tag-background-amber-02: var(--canary-amber-900);
+ /* --peach */
+ --canary-tag-foreground-peach-01: var(--canary-peach-200);
+ --canary-tag-border-peach-01: var(--canary-peach-850);
+ --canary-tag-background-peach-01: var(--canary-peach-950);
+ --canary-tag-background-peach-02: var(--canary-peach-900);
+ /* --red */
+ --canary-tag-foreground-red-01: var(--canary-red-200);
+ --canary-tag-border-red-01: var(--canary-red-850);
+ --canary-tag-background-red-01: var(--canary-red-950);
+ --canary-tag-background-red-02: var(--canary-red-900);
+
+ /* Labels */
+ --canary-label-background-black-01: hsla(var(--canary-base-chrome-1000) / 0.45);
+ --canary-label-background-blue-01: hsl(var(--canary-accent-900));
+ --canary-label-background-brown-01: hsl(var(--canary-brown-900));
+ --canary-label-background-cyan-01: hsl(var(--canary-cyan-900));
+ --canary-label-background-green-01: hsl(var(--canary-green-900));
+ --canary-label-background-indigo-01: hsl(var(--canary-indigo-900));
+ --canary-label-background-lime-01: hsl(var(--canary-lime-900));
+ --canary-label-background-mint-01: hsl(var(--canary-mint-900));
+ --canary-label-background-orange-01: hsl(var(--canary-orange-900));
+ --canary-label-background-pink-01: hsl(var(--canary-pink-900));
+ --canary-label-background-purple-01: hsl(var(--canary-purple-900));
+ --canary-label-background-red-01: hsl(var(--canary-red-900));
+ --canary-label-background-violet-01: hsl(var(--canary-violet-900));
+ --canary-label-background-yellow-01: hsl(var(--canary-yellow-900));
+ --canary-label-foreground-blue-01: hsl(var(--canary-accent-300));
+ --canary-label-foreground-brown-01: hsl(var(--canary-brown-300));
+ --canary-label-foreground-cyan-01: hsl(var(--canary-cyan-300));
+ --canary-label-foreground-green-01: hsl(var(--canary-green-300));
+ --canary-label-foreground-indigo-01: hsl(var(--canary-indigo-300));
+ --canary-label-foreground-lime-01: hsl(var(--canary-lime-300));
+ --canary-label-foreground-mint-01: hsl(var(--canary-mint-300));
+ --canary-label-foreground-orange-01: hsl(var(--canary-orange-300));
+ --canary-label-foreground-pink-01: hsl(var(--canary-pink-300));
+ --canary-label-foreground-purple-01: hsl(var(--canary-purple-300));
+ --canary-label-foreground-red-01: hsl(var(--canary-red-300));
+ --canary-label-foreground-violet-01: hsl(var(--canary-violet-300));
+ --canary-label-foreground-yellow-01: hsl(var(--canary-yellow-300));
+
+ /* Button */
+ --canary-button-foreground-danger-01: var(--canary-red-200);
+ --canary-button-background-danger-01: var(--canary-red-950);
+ --canary-button-background-danger-02: var(--canary-red-900);
+ --canary-button-background-danger-03: var(--canary-red-950);
+ --canary-button-border-danger-01: var(--canary-red-850);
+ --canary-button-foreground-success-01: var(--canary-green-200);
+ --canary-button-background-success-01: var(--canary-green-950);
+ --canary-button-background-success-02: var(--canary-green-900);
+ --canary-button-border-success-01: var(--canary-green-850);
+ --canary-button-foreground-disabled-01: var(--canary-base-chrome-800);
+ --canary-button-background-disabled-01: var(--canary-base-chrome-950);
+ --canary-button-border-disabled-01: var(--canary-base-chrome-850);
+
+ /* Box shadow colors */
+ --canary-box-shadow-1: var(--canary-base-chrome-1000) / 0.8;
+ --canary-box-shadow-2: var(--canary-base-chrome-1000) / 0.6;
+ --canary-box-shadow-pagination: var(--canary-base-chrome-1000) / 0.5;
+ --shadow-sm: 0px 1px 6px 0px var(--canary-base-chrome-1000);
+
+ /* Graph */
+ --canary-graph-gradient-bg-1: hsla(var(--canary-base-chrome-800));
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-900));
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-200));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-base-chrome-700));
+ --canary-graph-gradient-executing-3: hsla(var(--canary-amber-200));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-amber-200));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-700) / 0.5);
+
+ --canary-widget-number-gradient-from: var(--canary-base-chrome-100);
+ --canary-widget-number-gradient-to: var(--canary-base-chrome-500);
+ --canary-widget-number-bg-gradient-from: var(--canary-base-chrome-800);
+ --canary-widget-number-bg-gradient-to: var(--canary-base-chrome-850);
+ --canary-widget-bg-gradient-from: var(--canary-base-chrome-850);
+ --canary-widget-bg-gradient-to: var(--canary-base-chrome-950);
/* Navigation gradients */
/* We’ve removed them until we find a better solution in the design.
@@ -1425,30 +2243,30 @@
}
.dark-prot-std {
- --canary-background: var(--canary-base-chrome-black);
- --canary-foreground: var(--canary-base-chrome-white);
+ --canary-background: var(--canary-base-chrome-1000);
+ --canary-foreground: var(--canary-pure-white);
--canary-card: var(--canary-base-chrome-950);
- --canary-card-foreground: var(--canary-base-chrome-white);
+ --canary-card-foreground: var(--canary-pure-white);
--canary-popover: var(--canary-base-chrome-900);
- --canary-popover-foreground: var(--canary-base-chrome-white);
- --canary-primary: var(--canary-base-chrome-white);
- --canary-primary-background: var(--canary-base-chrome-black);
+ --canary-popover-foreground: var(--canary-pure-white);
+ --canary-primary: var(--canary-pure-white);
+ --canary-primary-background: var(--canary-base-chrome-1000);
--canary-primary-foreground: var(--canary-base-chrome-950);
--canary-primary-muted: var(--canary-base-chrome-200);
- --canary-primary-accent: var(--canary-accent-600);
+ --canary-primary-accent: var(--canary-base-chrome-100);
--canary-secondary: var(--canary-base-chrome-850);
- --canary-secondary-foreground: var(--canary-base-chrome-white);
+ --canary-secondary-foreground: var(--canary-pure-white);
--canary-secondary-background: var(--canary-base-chrome-950);
--canary-secondary-muted: var(--canary-base-chrome-500);
--canary-tertiary: var(--canary-base-chrome-850);
- --canary-tertiary-foreground: var(--canary-base-chrome-white);
+ --canary-tertiary-foreground: var(--canary-pure-white);
--canary-tertiary-background: var(--canary-base-chrome-500);
--canary-muted: var(--canary-base-chrome-850);
--canary-muted-foreground: var(--canary-base-chrome-500);
--canary-accent: var(--canary-base-chrome-850);
- --canary-accent-foreground: var(--canary-base-chrome-white);
+ --canary-accent-foreground: var(--canary-pure-white);
--canary-destructive: var(--canary-yellow-200);
- --canary-destructive-foreground: var(--canary-base-chrome-black);
+ --canary-destructive-foreground: var(--canary-base-chrome-1000);
--canary-border: var(--canary-base-chrome-850);
--canary-border-background: var(--canary-base-chrome-850);
--canary-input: var(--canary-base-chrome-850);
@@ -1483,12 +2301,12 @@
--diff-hunk-content-color--: hsl(var(--canary-base-chrome-200));
/* New colors design variables */
/* Text */
- --canary-foreground-01: var(--canary-base-chrome-white);
+ --canary-foreground-01: var(--canary-pure-white);
--canary-foreground-02: var(--canary-base-chrome-200);
--canary-foreground-03: var(--canary-base-chrome-400);
--canary-foreground-04: var(--canary-base-chrome-500);
--canary-foreground-05: var(--canary-base-chrome-500);
- --canary-foreground-06: var(--canary-base-chrome-white);
+ --canary-foreground-06: var(--canary-base-chrome-1000);
--canary-foreground-07: var(--canary-base-chrome-500);
--canary-foreground-08: var(--canary-base-chrome-200);
--canary-foreground-09: var(--canary-base-chrome-400);
@@ -1499,16 +2317,16 @@
--canary-foreground-accent: var(--canary-accent-200);
/* Backgrounds */
- --canary-background-01: var(--canary-base-chrome-black);
+ --canary-background-01: var(--canary-base-chrome-1000);
--canary-background-02: var(--canary-base-chrome-950);
- --canary-background-03: var(--canary-base-chrome-950);
+ --canary-background-03: var(--canary-base-chrome-900);
--canary-background-04: var(--canary-base-chrome-850) / 0.5;
- --canary-background-05: var(--canary-accent-600);
- --canary-background-06: var(--canary-accent-600) / 0.2;
- --canary-background-07: var(--canary-base-chrome-black);
- --canary-background-08: var(--canary-base-chrome-900);
+ --canary-background-05: var(--canary-base-chrome-100);
+ --canary-background-06: var(--canary-base-chrome-150);
+ --canary-background-07: var(--canary-base-chrome-1000);
+ --canary-background-08: var(--canary-base-chrome-850);
--canary-background-09: var(--canary-base-chrome-850);
- --canary-background-10: var(--canary-accent-600);
+ --canary-background-10: var(--canary-base-chrome-150);
--canary-background-11: var(--canary-base-chrome-800);
--canary-background-12: var(--canary-base-chrome-800);
--canary-background-13: var(--canary-base-chrome-400);
@@ -1523,12 +2341,12 @@
--canary-border-01: var(--canary-base-chrome-850);
--canary-border-02: var(--canary-base-chrome-850);
--canary-border-03: var(--canary-base-chrome-400);
- --canary-border-04: var(--canary-base-chrome-850);
+ --canary-border-04: var(--canary-base-chrome-850) / 0.6;
--canary-border-05: var(--canary-base-chrome-850);
--canary-border-06: var(--canary-base-chrome-400);
- --canary-border-07: var(--canary-base-chrome-white);
+ --canary-border-07: var(--canary-pure-white);
--canary-border-08: var(--canary-base-chrome-850);
- --canary-border-09: var(--canary-accent-300);
+ --canary-border-09: var(--canary-base-chrome-50);
--canary-border-10: var(--canary-base-chrome-850);
--canary-border-danger: var(--canary-yellow-400);
--canary-border-success: var(--canary-indigo-300);
@@ -1537,15 +2355,15 @@
/* Icons */
--canary-icon-01: var(--canary-base-chrome-400);
- --canary-icon-02: var(--canary-base-chrome-white);
+ --canary-icon-02: var(--canary-pure-white);
--canary-icon-03: var(--canary-base-chrome-200);
--canary-icon-04: var(--canary-base-chrome-500);
- --canary-icon-05: var(--canary-base-chrome-white);
+ --canary-icon-05: var(--canary-base-chrome-1000);
--canary-icon-06: var(--canary-base-chrome-700);
--canary-icon-07: var(--canary-base-chrome-200);
- --canary-icon-08: var(--canary-base-chrome-white);
+ --canary-icon-08: var(--canary-pure-white);
--canary-icon-09: var(--canary-base-chrome-400);
- --canary-icon-10: var(--canary-base-chrome-black);
+ --canary-icon-10: var(--canary-base-chrome-1000);
--canary-icon-danger: var(--canary-yellow-200);
--canary-icon-alert: var(--canary-amber-200);
--canary-icon-success: var(--canary-indigo-300);
@@ -1590,7 +2408,7 @@
--canary-tag-background-red-02: var(--canary-yellow-900);
/* Labels */
- --canary-label-background-black-01: hsla(var(--canary-base-chrome-black) / 0.45);
+ --canary-label-background-black-01: hsla(var(--canary-base-chrome-1000) / 0.45);
--canary-label-background-blue-01: hsl(var(--canary-accent-900));
--canary-label-background-brown-01: hsl(var(--canary-brown-900));
--canary-label-background-cyan-01: hsl(var(--canary-cyan-900));
@@ -1633,13 +2451,25 @@
--canary-button-border-disabled-01: var(--canary-base-chrome-850);
/* Box shadow colors */
- --canary-box-shadow-1: var(--canary-base-chrome-black) / 0.8;
- --canary-box-shadow-2: var(--canary-base-chrome-black) / 0.6;
- --canary-box-shadow-pagination: var(--canary-base-chrome-black) / 0.5;
- --shadow-sm: 0px 1px 6px 0px var(--canary-base-chrome-black);
+ --canary-box-shadow-1: var(--canary-base-chrome-1000) / 0.8;
+ --canary-box-shadow-2: var(--canary-base-chrome-1000) / 0.6;
+ --canary-box-shadow-pagination: var(--canary-base-chrome-1000) / 0.5;
+ --shadow-sm: 0px 1px 6px 0px var(--canary-base-chrome-1000);
/* Graph */
- --canary-graph-gradient-bg-1: hsla(0, 0%, 100%, 0.04);
- --canary-graph-gradient-bg-2: hsla(0, 0%, 100%, 0);
+ --canary-graph-gradient-bg-1: hsla(var(--canary-base-chrome-850));
+ --canary-graph-gradient-bg-2: hsla(var(--canary-base-chrome-900));
+ --canary-graph-gradient-executing-1: hsla(var(--canary-amber-200));
+ --canary-graph-gradient-executing-2: hsla(var(--canary-base-chrome-850));
+ --canary-graph-gradient-executing-3: hsla(var(--canary-amber-200));
+ --canary-graph-gradient-executing-4: hsla(var(--canary-amber-200));
+ --canary-graph-viewport-bg: hsla(var(--canary-base-chrome-850) / 0.4);
+
+ --canary-widget-number-gradient-from: var(--canary-base-chrome-200) / 1;
+ --canary-widget-number-gradient-to: var(--canary-base-chrome-600) / 0;
+ --canary-widget-number-bg-gradient-from: var(--canary-base-chrome-800);
+ --canary-widget-number-bg-gradient-to: var(--canary-base-chrome-850);
+ --canary-widget-bg-gradient-from: var(--canary-base-chrome-850);
+ --canary-widget-bg-gradient-to: var(--canary-base-chrome-950);
}
}
diff --git a/packages/ui/src/views/execution/console-logs.tsx b/packages/ui/src/views/execution/console-logs.tsx
index 2337549e0f..85fae88250 100644
--- a/packages/ui/src/views/execution/console-logs.tsx
+++ b/packages/ui/src/views/execution/console-logs.tsx
@@ -1,9 +1,9 @@
import { FC, useCallback, useEffect, useRef } from 'react'
-import { Text } from '@/components'
+import { cn } from '@utils/cn'
-import { formatDuration, formatTimestamp } from '../../utils/TimeUtils'
-import { ConsoleLogsProps, LivelogLine } from './types'
+import { formatTimestamp } from '../../utils/TimeUtils'
+import { ConsoleLogsProps, LivelogLine, LivelogLineType } from './types'
export const createStreamedLogLineElement = (log: LivelogLine) => {
const lineElement = document.createElement('div')
@@ -45,19 +45,19 @@ const ConsoleLogs: FC
= ({ logs, query }) => {
const logText = useCallback(
(log: string) => {
if (!query?.length) {
- return {log}
+ return {log}
}
const match = log.match(new RegExp(query, 'i'))
- if (!match) return {log}
+ if (!match) return {log}
const matchIndex = match.index ?? 0
return (
-
+
{log.slice(0, matchIndex)}
{log.slice(matchIndex, matchIndex + query.length)}
{log.slice(matchIndex + query.length)}
-
+
)
},
[query]
@@ -66,17 +66,24 @@ const ConsoleLogs: FC = ({ logs, query }) => {
if (!logs || !logs.length) return null
return (
-
- {logs.filter(Boolean).map(({ pos, out, time, duration }, index) => (
-
-
- {pos !== undefined && pos >= 0 ?
{pos} : null}
- {time ?
[{formatTimestamp(time * 1_000)}] : null}
- {out ? logText(out) : null}
+
+ {logs.filter(Boolean).map(({ pos, out, time, type = LivelogLineType.INFO }, index) => (
+
+
+ {pos !== undefined && pos >= 0 ? (
+ {pos}
+ ) : null}
+
+ {time ? `[${formatTimestamp(time * 1_000)}]` : null}
+ {out ? logText(out) : null}
+
-
- {formatDuration(duration && duration > 0 ? duration * 1_000 : 0)}
-
))}
diff --git a/packages/ui/src/views/execution/execution-header.tsx b/packages/ui/src/views/execution/execution-header.tsx
index 70ac7e8b2a..d7fb5a7194 100644
--- a/packages/ui/src/views/execution/execution-header.tsx
+++ b/packages/ui/src/views/execution/execution-header.tsx
@@ -1,4 +1,7 @@
-import { Breadcrumb, Text } from '@/components'
+import { FC } from 'react'
+
+import { Icon } from '@/components'
+import { cn } from '@utils/cn'
import { ExecutionState } from '@views/repo/pull-request'
import { PipelineStatus } from './pipeline-status'
@@ -6,21 +9,24 @@ import { PipelineStatus } from './pipeline-status'
interface ExecutionHeaderProps {
commitName: string
branchName: string
- title: { number: string; title: string }
- storage: string
- storageAverage: string
- simpleOperation: string
- advancedOperations: string
- dataTransfer: string
- branch: string
- commit: string
+ title: { number?: string; title: string }
+ storage?: string
+ storageAverage?: string
+ simpleOperation?: string
+ advancedOperations?: string
+ dataTransfer?: string
+ branch?: string
+ commit?: string
status: ExecutionState
buildTime: string
- createdTime: string
+ createdTime?: string
+ startedTime?: string
+ delegateType?: string
pipelineName: string
+ className?: string
}
-export const ExecutionHeader: React.FC
= ({
+export const ExecutionHeader: FC = ({
title,
storage,
storageAverage,
@@ -32,72 +38,71 @@ export const ExecutionHeader: React.FC = ({
status,
buildTime,
createdTime,
- pipelineName
+ startedTime,
+ delegateType,
+ className
}) => {
return (
-
-
- {/* Breadcrumbs */}
-
-
-
- Pipeline list
-
-
- {pipelineName}
-
-
-
- {/*
-
- to
-
-
*/}
-
- #{title.number}
- {title.title}
-
+
+
+
+ {title.number && #{title.number} }
+ {title.title}
+
-
+
-
-
- Storage
- {storage}
-
-
- Storage (average)
- {storageAverage}
-
-
- Simple Operation
- {simpleOperation}
-
-
- Advanced Operations
- {advancedOperations}
-
-
- Data Transfer
- {dataTransfer}
-
+
+ {storage && (
+
+ Storage
+ {storage}
+
+ )}
+ {storageAverage && (
+
+ Storage (average)
+
+ {storageAverage}
+
+
+ )}
+ {simpleOperation && (
+
+ Simple Operation
+
+ {simpleOperation}
+
+
+
+ )}
+ {advancedOperations && (
+
+ Advanced Operations
+
+ {advancedOperations}
+
+
+
+ )}
+ {dataTransfer && (
+
+ Data Transfer
+
+ {dataTransfer}
+
+
+
+ )}
diff --git a/packages/ui/src/views/execution/execution-info.tsx b/packages/ui/src/views/execution/execution-info.tsx
index ff4aa96fc8..2502f4e7db 100644
--- a/packages/ui/src/views/execution/execution-info.tsx
+++ b/packages/ui/src/views/execution/execution-info.tsx
@@ -5,9 +5,10 @@ export const ExecutionInfo: React.FC
= ({
useLogsStore,
onEdit,
onDownload,
- onCopy
+ onCopy,
+ isDrawer = false
}): React.ReactElement => {
const { logs } = useLogsStore()
- return
+ return
}
diff --git a/packages/ui/src/views/execution/execution-tree.tsx b/packages/ui/src/views/execution/execution-tree.tsx
index 44a8bdd4fc..344c4ad108 100644
--- a/packages/ui/src/views/execution/execution-tree.tsx
+++ b/packages/ui/src/views/execution/execution-tree.tsx
@@ -1,12 +1,14 @@
+import { FC } from 'react'
+
import { Tree } from '@/components'
import { ExecutionTreeProps } from './types'
import { renderTree } from './utils'
-export const ExecutionTree: React.FC = props => {
+export const ExecutionTree: FC = props => {
const { defaultSelectedId, elements } = props
return (
-
+
{renderTree(elements, props.onSelectNode)}
)
diff --git a/packages/ui/src/views/execution/pipeline-status.tsx b/packages/ui/src/views/execution/pipeline-status.tsx
index 18fea7d8bd..f41c9d063b 100644
--- a/packages/ui/src/views/execution/pipeline-status.tsx
+++ b/packages/ui/src/views/execution/pipeline-status.tsx
@@ -1,83 +1,55 @@
-import { useEffect, useRef, useState } from 'react'
-
import { ExecutionState } from '@views/repo/pull-request'
import { ExecutionStatus } from './execution-status'
const PipelineStatus = ({
status,
- // buildTime,
- // createdTime,
+ buildTime,
+ createdTime,
commit,
- branch
+ branch,
+ delegateType
}: {
status: ExecutionState
buildTime: string
- createdTime: string
- commit: string
- branch: string
+ createdTime?: string
+ commit?: string
+ branch?: string
+ startedTime?: string
+ delegateType?: string
}) => {
- const [elapsedTime, setElapsedTime] = useState('00:00')
- const [createdTimeElapsed, setCreatedTimeElapsed] = useState('00:00')
- const createdStartRef = useRef(Date.now())
- const elapsedStartRef = useRef(Date.now())
-
- const formatTime = (seconds: number) => {
- const minutes = Math.floor(seconds / 60)
- const secs = seconds % 60
- return `${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`
- }
-
- // Created timer (always counts up from 0)
- useEffect(() => {
- createdStartRef.current = Date.now()
-
- const interval = setInterval(() => {
- const now = Date.now()
- const totalDiff = Math.floor((now - createdStartRef.current) / 1000)
- setCreatedTimeElapsed(formatTime(totalDiff))
- }, 1000)
-
- return () => clearInterval(interval)
- }, [])
-
- // Elapsed timer (stops when status changes to success)
- useEffect(() => {
- elapsedStartRef.current = Date.now()
-
- const interval = setInterval(() => {
- if (status === 'success') return
-
- const now = Date.now()
- const elapsedDiff = Math.floor((now - elapsedStartRef.current) / 1000)
- setElapsedTime(formatTime(elapsedDiff))
- }, 1000)
-
- return () => clearInterval(interval)
- }, [status])
-
return (
-
-
- Commit
- {commit}
-
-
- Branch
- {branch}
-
-
-
Status
+
+ {commit && (
+
+ Commit
+ {commit}
+
+ )}
+ {branch && (
+
+ Branch
+ {branch}
+
+ )}
+
+ Status
-
-
Build time
-
{elapsedTime}
+
+ Build time
+ {buildTime}
-
-
Created
-
{createdTimeElapsed}
+
+ Created
+ {createdTime}
+ {delegateType && (
+
+ Delegate type
+ {delegateType}
+
+ )}
)
}
diff --git a/packages/ui/src/views/execution/step-execution.tsx b/packages/ui/src/views/execution/step-execution.tsx
index 479086b39d..b08694004b 100644
--- a/packages/ui/src/views/execution/step-execution.tsx
+++ b/packages/ui/src/views/execution/step-execution.tsx
@@ -1,6 +1,7 @@
import { useState } from 'react'
import { Button, Icon, Layout, ScrollArea, SearchBox, Tabs, TabsContent, TabsList, TabsTrigger } from '@/components'
+import { cn } from '@utils/cn'
import ConsoleLogs from './console-logs'
import { KeyValueTable } from './key-value-table'
@@ -20,26 +21,43 @@ const StepExecutionToolbar: React.FC<
+ >
+
+
+ F
+
+
-
)
}
-export const StepExecution: React.FC
= ({ step, logs, onEdit, onDownload, onCopy }) => {
+export const StepExecution: React.FC = ({
+ step,
+ logs,
+ onEdit,
+ onDownload,
+ onCopy,
+ isDrawer = false
+}) => {
const inputTable = step?.inputs || []
const outputTable = step?.outputs || []
const [query, setQuery] = useState('')
@@ -50,14 +68,27 @@ export const StepExecution: React.FC = ({ step, logs, onEdit
return (
-
-
-
-
+
+
+
+
Logs
- Inputs
- Output
+
+ Inputs
+
+
+ Output
+
= ({ step, logs, onEdit
/>
-
+
{/*here is the execution details of input table */}
-
+
= ({ step, logs, onEdit
{/*here is the execution details of output table */}
-
+
void
onDownload: () => void
onCopy: () => void
@@ -33,6 +34,7 @@ export interface ILogsStore {
}
export interface ExecutionInfoProps {
+ isDrawer?: boolean
useLogsStore: () => ILogsStore
onEdit: () => void
onDownload: () => void
@@ -44,11 +46,18 @@ export interface ConsoleLogsProps {
query?: string
}
+export enum LivelogLineType {
+ ERROR = 'error',
+ WARNING = 'warning',
+ INFO = 'info'
+}
+
export interface LivelogLine {
out?: string
pos?: number
time?: number
duration?: number
+ type?: LivelogLineType
}
export interface NodeSelectionProps {
diff --git a/packages/ui/src/views/execution/utils.tsx b/packages/ui/src/views/execution/utils.tsx
index 01bdba8858..a27a571aec 100644
--- a/packages/ui/src/views/execution/utils.tsx
+++ b/packages/ui/src/views/execution/utils.tsx
@@ -8,6 +8,7 @@ interface RenderTreeElementProps {
element: TreeViewElement
handleClick: ExecutionTreeProps['onSelectNode']
parentElement?: TreeViewElement | null
+ level?: number
}
export const renderTree = (
@@ -20,41 +21,53 @@ export const renderTree = (
))
}
-const renderTreeFolder = ({ element: folderElement, handleClick }: RenderTreeElementProps): ReactNode => {
+const renderTreeFolder = ({ element: folderElement, handleClick, level = 0 }: RenderTreeElementProps): ReactNode => {
return (
{folderElement.children?.map(childElement => (
-
- {renderTreeElement({ parentElement: folderElement, element: childElement, handleClick })}
+
+ {renderTreeElement({ parentElement: folderElement, element: childElement, handleClick, level: level + 1 })}
))}
)
}
-const renderTreeFile = ({ element: fileElement, handleClick, parentElement }: RenderTreeElementProps): ReactNode => {
+const renderTreeFile = ({
+ element: fileElement,
+ handleClick,
+ parentElement,
+ level = 0
+}: RenderTreeElementProps): ReactNode => {
return (
handleClick({ parentNode: parentElement, childNode: fileElement })}
+ level={level}
>
- {fileElement.name}
+ {fileElement.name}
)
}
-const renderTreeElement = ({ element, handleClick, parentElement }: RenderTreeElementProps): React.ReactNode => {
+const renderTreeElement = ({
+ element,
+ handleClick,
+ parentElement,
+ level = 0
+}: RenderTreeElementProps): React.ReactNode => {
if (element.children && element.children.length > 0) {
- return renderTreeFolder({ element, handleClick, parentElement })
+ return renderTreeFolder({ element, handleClick, parentElement, level })
}
- return renderTreeFile({ element, handleClick, parentElement })
+ return renderTreeFile({ element, handleClick, parentElement, level })
}
export const getElementById = (elements: TreeViewElement[], id: string): TreeViewElement | null => {
diff --git a/packages/ui/src/views/index.ts b/packages/ui/src/views/index.ts
index 0ee931968f..27fdf2a16c 100644
--- a/packages/ui/src/views/index.ts
+++ b/packages/ui/src/views/index.ts
@@ -2,7 +2,7 @@
export * from './types/link-types'
// layouts
-export * as SandboxLayout from './layouts/SandboxLayout'
+export * from './layouts/SandboxLayout'
export * from './layouts/Floating1ColumnLayout'
export * from './layouts/PullRequestLayout'
export * from './layouts/content-layout-with-sidebar'
diff --git a/packages/ui/src/views/layouts/SandboxLayout.tsx b/packages/ui/src/views/layouts/SandboxLayout.tsx
index fa5cbf0427..990bf9f512 100644
--- a/packages/ui/src/views/layouts/SandboxLayout.tsx
+++ b/packages/ui/src/views/layouts/SandboxLayout.tsx
@@ -102,4 +102,5 @@ function Column({ children, className }: { children: ReactNode; className?: stri
)
}
-export { Root, LeftPanel, LeftSubPanel, Header, SubHeader, Main, Content, Columns, Column }
+const SandboxLayout = { Root, LeftPanel, LeftSubPanel, Header, SubHeader, Main, Content, Columns, Column }
+export { SandboxLayout }
diff --git a/packages/ui/src/views/pipeline-edit/components/graph-implementation/canvas/canvas-controls.tsx b/packages/ui/src/views/pipeline-edit/components/graph-implementation/canvas/canvas-controls.tsx
index 4094fa5fc6..cd23c40089 100644
--- a/packages/ui/src/views/pipeline-edit/components/graph-implementation/canvas/canvas-controls.tsx
+++ b/packages/ui/src/views/pipeline-edit/components/graph-implementation/canvas/canvas-controls.tsx
@@ -1,19 +1,22 @@
+import { Icon } from '@components/icon'
+
import { useCanvasContext } from '@harnessio/pipeline-graph'
import { CanvasButton } from './canvas-button'
export function CanvasControls() {
- const { fit } = useCanvasContext()
+ const { reset, increase, decrease } = useCanvasContext()
return (
- {/* TODO: uncomment increase/decrease once its fixed in pipeline-graph */}
- {/*
-
increase()}>+
-
decrease()}>-
- */}
-
fit()}>
-
+
+
+
+
+
+
+
+
)
diff --git a/packages/ui/src/views/pipeline-edit/components/graph-implementation/context/PipelineStudioNodeContext.tsx b/packages/ui/src/views/pipeline-edit/components/graph-implementation/context/PipelineStudioNodeContext.tsx
index ede40ab587..1754c05d50 100644
--- a/packages/ui/src/views/pipeline-edit/components/graph-implementation/context/PipelineStudioNodeContext.tsx
+++ b/packages/ui/src/views/pipeline-edit/components/graph-implementation/context/PipelineStudioNodeContext.tsx
@@ -10,7 +10,7 @@ export interface ContextMenuData {
isIn?: boolean
}
-export interface PipelineStudioNodeContextProps {
+export interface PipelineStudioNodeContextProps
{
// context menu
showContextMenu: (
contextMenu: () => React.ReactNode,
@@ -34,9 +34,10 @@ export interface PipelineStudioNodeContextProps {
onEditIntention: (nodeData: CommonNodeDataType) => void
onDeleteIntention: (nodeData: CommonNodeDataType) => void
onRevealInYaml: (path: string | undefined) => void
+ globalData?: T
}
-export const PipelineStudioNodeContext = createContext({
+export const PipelineStudioNodeContext = createContext>({
showContextMenu: (
_contextMenu: () => React.ReactNode,
_nodeData: CommonNodeDataType,
@@ -60,11 +61,11 @@ export const PipelineStudioNodeContext = createContext undefined
})
-export function usePipelineStudioNodeContext(): PipelineStudioNodeContextProps {
+export function usePipelineStudioNodeContext(): PipelineStudioNodeContextProps {
return useContext(PipelineStudioNodeContext)
}
-export interface PipelineStudioNodeContextProviderProps {
+export interface PipelineStudioNodeContextProviderProps {
children: React.ReactNode
selectedPath?: string
onSelectIntention: (nodeData: CommonNodeDataType) => undefined
@@ -76,6 +77,7 @@ export interface PipelineStudioNodeContextProviderProps {
onEditIntention: (nodeData: CommonNodeDataType) => undefined
onDeleteIntention: (nodeData: CommonNodeDataType) => undefined
onRevealInYaml: (_path: string | undefined) => undefined
+ globalData?: T
}
export const PipelineStudioNodeContextProvider: React.FC = props => {
const {
@@ -85,7 +87,8 @@ export const PipelineStudioNodeContextProvider: React.FC(undefined)
@@ -127,7 +130,8 @@ export const PipelineStudioNodeContextProvider: React.FC
{children}
diff --git a/packages/ui/src/views/pipeline-edit/components/pipeline-studio-footer.tsx b/packages/ui/src/views/pipeline-edit/components/pipeline-studio-footer.tsx
index 001a705c80..e6c5c821c2 100644
--- a/packages/ui/src/views/pipeline-edit/components/pipeline-studio-footer.tsx
+++ b/packages/ui/src/views/pipeline-edit/components/pipeline-studio-footer.tsx
@@ -1,4 +1,5 @@
import { Icon, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectItem } from '@/components'
+import { cn } from '@utils/cn'
import { PopoverCommitInfo } from './popover-commit-info'
@@ -34,7 +35,7 @@ export const PipelineStudioFooter: React.FC = (props:
return (