From 2380e145ee937e678e8cb1dca02e9f95e3f3d8cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Thu, 15 Jan 2026 16:09:46 +0100
Subject: [PATCH 1/9] refactor(logo): rename logo component and update story
title
---
.../src/lib/components/logo-branded/logo-branded.stories.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libs/shared/ui/src/lib/components/logo-branded/logo-branded.stories.tsx b/libs/shared/ui/src/lib/components/logo-branded/logo-branded.stories.tsx
index a6065bafd24..2bbde2ea54a 100644
--- a/libs/shared/ui/src/lib/components/logo-branded/logo-branded.stories.tsx
+++ b/libs/shared/ui/src/lib/components/logo-branded/logo-branded.stories.tsx
@@ -1,9 +1,9 @@
import { type Meta, type StoryObj } from '@storybook/react-webpack5'
-import { LogoBrandedIcon } from './logo'
+import { LogoBrandedIcon } from './logo-branded'
const meta: Meta = {
component: LogoBrandedIcon,
- title: 'Logo',
+ title: 'LogoBranded',
}
export default meta
From ce86ca2dc11d9b950e345f815cbc108f3e8d4349 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Thu, 15 Jan 2026 18:01:20 +0100
Subject: [PATCH 2/9] feat(checkbox): enhance checkbox component with color
variants and update storybook configuration
---
.../components/checkbox/checkbox.stories.tsx | 37 +++++----
.../src/lib/components/checkbox/checkbox.tsx | 76 ++++++++++---------
.../shared/ui/src/lib/styles/base/themes.scss | 4 +-
3 files changed, 67 insertions(+), 50 deletions(-)
diff --git a/libs/shared/ui/src/lib/components/checkbox/checkbox.stories.tsx b/libs/shared/ui/src/lib/components/checkbox/checkbox.stories.tsx
index e02d8c43396..4969612afa0 100644
--- a/libs/shared/ui/src/lib/components/checkbox/checkbox.stories.tsx
+++ b/libs/shared/ui/src/lib/components/checkbox/checkbox.stories.tsx
@@ -1,9 +1,18 @@
import type { Meta } from '@storybook/react-webpack5'
-import { Checkbox } from './checkbox'
+import { Checkbox, type CheckboxProps } from './checkbox'
const Story: Meta = {
component: Checkbox,
title: 'Checkbox',
+ argTypes: {
+ color: {
+ control: { type: 'radio' },
+ options: ['brand', 'red'],
+ },
+ },
+ args: {
+ color: 'brand',
+ },
decorators: [
(Story) => (
@@ -15,27 +24,27 @@ const Story: Meta = {
export default Story
export const Primary = {
- render: () => (
+ render: (args: CheckboxProps) => (
<>
-
-
+
+
Not checked
-
-
+
+
Checked
-
- Indeterminate
+
+ Indeterminate
-
- Not checked
+
+ Not checked
-
- Checked
+
+ Checked
-
- Indeterminate
+
+ Indeterminate
>
),
diff --git a/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx b/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx
index f210f175308..25531c458a4 100644
--- a/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx
+++ b/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx
@@ -7,44 +7,41 @@ import Icon from '../icon/icon'
const checkboxVariants = cva(
[
'group',
- 'transition',
- 'bg-neutral-100',
- 'dark:bg-neutral-500',
+ 'inline-flex',
+ 'shrink-0',
+ 'items-center',
+ 'justify-center',
+ 'h-4',
+ 'w-4',
+ 'rounded',
'border',
- 'border-neutral-300',
- 'dark:border-neutral-350',
- 'rounded-sm',
- 'w-[18px]',
- 'h-[18px]',
- 'hover:border-2',
- 'data-[state=checked]:border',
- 'data-[state=indeterminate]:border-2',
- 'disabled:border',
- 'disabled:border-neutral-250',
+ 'border-neutral',
+ 'bg-surface-neutral',
+ 'transition-colors',
+ 'disabled:cursor-not-allowed',
+ 'disabled:border-neutral',
+ 'disabled:bg-surface-neutral-subtle',
+ 'disabled:hover:border-neutral',
+ 'disabled:data-[state=checked]:bg-surface-neutral-subtle',
+ 'disabled:data-[state=checked]:border-neutral',
+ 'disabled:data-[state=indeterminate]:border-neutral',
],
{
variants: {
color: {
brand: [
- 'hover:border-brand-500',
- 'dark:hover:border-brand-500',
- 'data-[state=checked]:bg-brand-500',
- 'dark:data-[state=checked]:bg-brand-500',
- 'data-[state=checked]:border-brand-500',
- 'dark:data-[state=checked]:border-brand-500',
- 'data-[state=indeterminate]:border-brand-500',
- 'disabled:data-[state=checked]:border-brand-300',
- 'disabled:data-[state=checked]:bg-brand-300',
- 'disabled:data-[state=indeterminate]:border-brand-300',
+ 'hover:border-brand-strong',
+ 'data-[state=checked]:bg-surface-brand-solid',
+ 'hover:data-[state=checked]:bg-surface-brand-solidHover',
+ 'data-[state=checked]:border-brand-strong',
+ 'data-[state=indeterminate]:border-brand-strong',
],
red: [
- 'hover:border-red-500',
- 'data-[state=checked]:bg-red-500',
- 'data-[state=checked]:border-red-500',
- 'data-[state=indeterminate]:border-red-500',
- 'disabled:data-[state=checked]:border-red-300',
- 'disabled:data-[state=checked]:bg-red-300',
- 'disabled:data-[state=indeterminate]:border-red-300',
+ 'hover:border-negative-strong',
+ 'data-[state=checked]:bg-surface-negative-solid',
+ 'hover:data-[state=checked]:bg-surface-negative-solidHover',
+ 'data-[state=checked]:border-negative-strong',
+ 'data-[state=indeterminate]:border-negative-strong',
],
},
},
@@ -54,11 +51,19 @@ const checkboxVariants = cva(
}
)
-const indeterminateVariants = cva(['h-[10px]', 'w-[10px]'], {
+const indeterminateVariants = cva(['h-3', 'w-3', 'rounded-[2px]'], {
variants: {
color: {
- brand: ['bg-brand-500', 'group-disabled:bg-brand-300'],
- red: ['bg-red-500', 'group-disabled:bg-red-300'],
+ brand: [
+ 'bg-surface-brand-solid',
+ 'hover:bg-surface-brand-solidHover',
+ 'group-disabled:bg-surface-neutral-componentHover',
+ ],
+ red: [
+ 'bg-surface-negative-solid',
+ 'hover:bg-surface-negative-solidHover',
+ 'group-disabled:bg-surface-neutral-componentHover',
+ ],
},
},
defaultVariants: {
@@ -86,7 +91,10 @@ const Checkbox = forwardRef, CheckboxP
{props.checked === 'indeterminate' ? (
) : (
-
+
)}
diff --git a/libs/shared/ui/src/lib/styles/base/themes.scss b/libs/shared/ui/src/lib/styles/base/themes.scss
index 60767afcac3..851b3c868bd 100644
--- a/libs/shared/ui/src/lib/styles/base/themes.scss
+++ b/libs/shared/ui/src/lib/styles/base/themes.scss
@@ -28,7 +28,7 @@
--neutral-invert-2: hsla(270, 4%, 10%, 1);
--neutral-invert-3: hsla(260, 4%, 14%, 1);
--neutral-invert-6: hsla(270, 5%, 24%, 1);
- --neutral-invert-12: hsla(240, 6%, 94%, 1);
+ --neutral-invert-12: hsla(300, 100%, 100%, 1);
/* Brand */
--brand-1: hsla(240, 100%, 100%, 1);
@@ -130,7 +130,7 @@
--neutral-9: hsla(251, 5%, 45%, 1);
--neutral-10: hsla(251, 4%, 50%, 1);
--neutral-11: hsla(258, 7%, 72%, 1);
- --neutral-12: hsla(240, 6%, 94%, 1);
+ --neutral-12: hsla(300, 100%, 100%, 1);
--field: hsla(270, 4%, 10%, 1);
--contrast: hsla(300, 100%, 100%, 1);
--contrast-inverted: hsla(257, 10%, 14%, 1);
From 666234e586335ba43052245d677a76a65d5b19ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Fri, 16 Jan 2026 14:16:55 +0100
Subject: [PATCH 3/9] feat(storybook): add overflow-auto class to body and
enhance InputCheckbox styles
---
libs/shared/ui/.storybook/preview.tsx | 2 ++
.../inputs/input-checkbox/input-checkbox.tsx | 15 +++++++++------
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/libs/shared/ui/.storybook/preview.tsx b/libs/shared/ui/.storybook/preview.tsx
index 21ef01b8216..37d32ec8cd2 100644
--- a/libs/shared/ui/.storybook/preview.tsx
+++ b/libs/shared/ui/.storybook/preview.tsx
@@ -5,6 +5,8 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { RouterProvider, createHashHistory, createRootRoute, createRoute, createRouter } from '@tanstack/react-router'
import '../src/lib/styles/main.scss'
+document.body.classList.add('overflow-auto')
+
const queryClient = new QueryClient({
defaultOptions: {
queries: {
diff --git a/libs/shared/ui/src/lib/components/inputs/input-checkbox/input-checkbox.tsx b/libs/shared/ui/src/lib/components/inputs/input-checkbox/input-checkbox.tsx
index b24954911dd..6abf172a9cb 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-checkbox/input-checkbox.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-checkbox/input-checkbox.tsx
@@ -62,11 +62,9 @@ export function InputCheckbox(props: InputCheckboxProps) {
checked={check}
disabled={disabled}
onChange={(e) => inputChange(e.currentTarget.checked, e)}
- className={`input-checkbox relative h-0 w-0 appearance-none font-icons before:absolute before:left-0 before:top-0 before:flex before:-translate-y-1/2 before:items-center before:justify-center before:rounded-sm before:bg-white before:text-white dark:before:bg-neutral-500 ${bigClasses} ${
- disabled
- ? 'before:border-neutral-250 dark:before:border-neutral-350'
- : 'cursor-pointer before:border-neutral-350'
- } before:border-2 before:text-xs before:font-black before:leading-none before:transition-all before:content-[''] checked:before:border-brand-500 checked:before:bg-brand-500`}
+ className={`input-checkbox relative h-0 w-0 appearance-none font-icons before:absolute before:left-0 before:top-0 before:flex before:-translate-y-1/2 before:items-center before:justify-center before:rounded before:border before:border-neutral before:bg-surface-neutral before:text-neutralInvert ${bigClasses} ${
+ disabled ? 'cursor-not-allowed' : 'cursor-pointer'
+ } before:text-xs before:font-black before:leading-none before:transition-colors before:content-[''] checked:before:border-brand-strong checked:before:bg-surface-brand-solid hover:before:border-brand-strong checked:hover:before:bg-surface-brand-solidHover disabled:before:border-neutral disabled:before:bg-surface-neutral-subtle disabled:checked:before:border-neutral disabled:checked:before:bg-surface-neutral-subtle disabled:hover:before:border-neutral`}
/>
{label && (
)}
- {check && }
+ {check && (
+
+ )}
)
}
From 7c557fb155a0ba64c0559e1ebbda630d8d450a14 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Fri, 16 Jan 2026 15:35:45 +0100
Subject: [PATCH 4/9] refactor(inputs): update input components for improved
styling and error handling
---
.../inputs/input-select/input-select.tsx | 2 +-
.../input-text-area/input-text-area.tsx | 8 +++---
.../input-text-small/input-text-small.tsx | 8 +++---
.../inputs/input-text/input-text.tsx | 20 ++++++++-----
.../ui/src/lib/styles/components/input.scss | 28 +++++++++----------
5 files changed, 36 insertions(+), 30 deletions(-)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx b/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx
index 63199d68a64..ee2f9cf690a 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx
@@ -354,7 +354,7 @@ export function InputSelect({
)}
- {hint && {hint}
}
+ {hint && !error && {hint}
}
{error && {error}
}
)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-text-area/input-text-area.tsx b/libs/shared/ui/src/lib/components/inputs/input-text-area/input-text-area.tsx
index 1ddbab0f678..2ace7cce0ac 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-text-area/input-text-area.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-text-area/input-text-area.tsx
@@ -30,7 +30,7 @@ export const InputTextArea = forwardRef
const hasError = error && error.length > 0 ? 'input--error' : ''
const inputActions = hasFocus ? 'input--focused' : ''
- const isDisabled = props.disabled ? 'input--disabled !border-neutral-250' : ''
+ const isDisabled = props.disabled ? 'input--disabled !border-neutral' : ''
return (
ref={ref}
name={name}
id={label}
- className="mt-5 min-h-[52px] w-full appearance-none bg-transparent pr-3 text-sm text-neutral-400 outline-0"
+ className="mt-5 min-h-[52px] w-full appearance-none bg-transparent pr-3 text-sm text-neutral outline-0"
value={!currentValue ? undefined : currentValue}
onChange={(e) => {
if (onChange) onChange(e)
@@ -61,8 +61,8 @@ export const InputTextArea = forwardRef
disabled={props.disabled}
/>
- {hint && {hint}
}
- {error && {error}
}
+ {hint && !error && {hint}
}
+ {error && {error}
}
)
})
diff --git a/libs/shared/ui/src/lib/components/inputs/input-text-small/input-text-small.tsx b/libs/shared/ui/src/lib/components/inputs/input-text-small/input-text-small.tsx
index 733d4f57a34..abf1e120ac7 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-text-small/input-text-small.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-text-small/input-text-small.tsx
@@ -75,7 +75,7 @@ export const InputTextSmall = forwardRef(
{(error || warning) && errorMessagePosition === 'left' && (
-
+
)}
@@ -93,7 +93,7 @@ export const InputTextSmall = forwardRef(
(
setCurrentType(currentType === 'password' ? 'text' : 'password')}
- className="absolute right-2 -translate-y-0.5 transform text-sm text-neutral-400 dark:text-neutral-50"
+ className="absolute right-2 -translate-y-[0.5px] transform text-sm text-neutral-subtle hover:text-neutral"
>
)}
{error && errorMessagePosition === 'bottom' && (
- {error}
+ {error}
)}
)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-text/input-text.tsx b/libs/shared/ui/src/lib/components/inputs/input-text/input-text.tsx
index d8979b110ba..e459385c1a7 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-text/input-text.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-text/input-text.tsx
@@ -1,3 +1,4 @@
+import clsx from 'clsx'
import { type ChangeEventHandler, type ReactNode, forwardRef, useEffect, useRef, useState } from 'react'
import Icon from '../../icon/icon'
@@ -51,7 +52,7 @@ export const InputText = forwardRef(function I
const inputActions = hasFocus ? 'input--focused' : disabled ? 'input--disabled' : ''
- const isDisabled = disabled ? 'input--disabled !border-neutral-250' : ''
+ const isDisabled = disabled ? 'input--disabled !border-neutral' : ''
const displayPicker = () => {
const input = inputRef.current?.querySelector('input')
@@ -76,7 +77,7 @@ export const InputText = forwardRef(function I
@@ -102,12 +103,12 @@ export const InputText = forwardRef
(function I
/>
{isInputDate && (
-
+
)}
{(currentValue as string)?.length > 0 && type === 'password' && (
(currentType === 'password' ? setCurrentType('text') : setCurrentType('password'))}
>
{currentType === 'password' && }
@@ -117,13 +118,18 @@ export const InputText = forwardRef(function I
{!isInputDate && rightElement && (
-
- {hint &&
{hint}
}
- {error &&
{error}
}
+ {hint && !error &&
{hint}
}
+ {error &&
{error}
}
)
})
diff --git a/libs/shared/ui/src/lib/styles/components/input.scss b/libs/shared/ui/src/lib/styles/components/input.scss
index 6d855b6772a..9f39480bca1 100644
--- a/libs/shared/ui/src/lib/styles/components/input.scss
+++ b/libs/shared/ui/src/lib/styles/components/input.scss
@@ -27,7 +27,7 @@
}
.input--small {
- @apply relative h-9 min-h-[36px];
+ @apply relative h-9 min-h-[36px] rounded;
}
.input__value {
@@ -41,7 +41,7 @@
.input--focused,
.input__button--focused {
- outline: 1px solid var(--brand-9);
+ outline: 2px solid var(--brand-4);
label {
@apply translate-y-0 text-xs;
}
@@ -60,7 +60,7 @@
min-height: theme('space.9');
height: theme('space.9');
padding: theme('space.2');
- background-color: theme('colors.neutral.150');
+ @apply bg-surface-neutral-component;
padding-top: 0;
border-color: transparent;
@@ -83,11 +83,11 @@
}
.input--disabled {
- @apply pointer-events-none border-neutral-250 bg-neutral-100;
+ @apply pointer-events-none border-neutral bg-surface-neutral-subtle;
box-shadow: none !important;
label {
- @apply text-neutral-350;
+ @apply text-neutral-disabled;
}
.input__button--focused {
@@ -97,20 +97,20 @@
.input--error,
.input--error .input__button {
- @apply border-red-500;
+ @apply border-negative-strong;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);
&:hover {
- @apply border-red-500;
+ @apply border-negative-strong;
}
}
.input--error.input--focused {
- outline: 1px solid theme('colors.red.500');
+ outline: 2px solid var(--negative-4);
}
.input--success {
- @apply border-green-500;
+ @apply border-positive-strong;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);
}
@@ -125,13 +125,13 @@
&:hover,
&:focus,
&[aria-expanded='true'] {
- @apply border-brand-500;
+ @apply border-brand-strong;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);
}
}
.input__list {
- @apply pointer-events-auto mt-2 max-h-96 w-full list-none overflow-scroll rounded border-neutral-250 bg-white p-2 text-neutral-400 focus-within:outline-none;
+ @apply pointer-events-auto mt-2 max-h-96 w-full list-none overflow-scroll rounded border-neutral bg-white p-2 text-neutral focus-within:outline-none;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
ul {
@@ -140,17 +140,17 @@
}
.input__item {
- @apply mb-1 cursor-pointer select-none rounded px-3 py-2 text-sm font-medium text-neutral-400 last:mb-0 hover:bg-neutral-150 hover:text-neutral-400;
+ @apply mb-1 cursor-pointer select-none rounded px-3 py-2 text-sm font-medium text-neutral last:mb-0 hover:bg-surface-neutral-component hover:text-neutral;
&.is-active,
&[data-current-selected],
&[data-current-nav] {
- @apply bg-neutral-150 text-neutral-400;
+ @apply bg-surface-neutral-component text-neutral;
}
}
.input__arrow {
- @apply absolute right-4 top-1/2 -translate-y-1/2 text-sm text-neutral-400;
+ @apply absolute right-4 top-1/2 -translate-y-1/2 text-sm text-neutral;
}
// time
From 58b9e42c637716572a99a41d8328d3c3354c62e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Fri, 16 Jan 2026 15:41:03 +0100
Subject: [PATCH 5/9] feat(button, dropdown): add 'select-none' utility to
button and dropdown menu item styles for improved user experience
---
.../ui/src/lib/components/button-primitive/button-primitive.tsx | 1 +
.../ui/src/lib/components/dropdown-menu/dropdown-menu.tsx | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/libs/shared/ui/src/lib/components/button-primitive/button-primitive.tsx b/libs/shared/ui/src/lib/components/button-primitive/button-primitive.tsx
index f0cd9a45c8f..11247b76d66 100644
--- a/libs/shared/ui/src/lib/components/button-primitive/button-primitive.tsx
+++ b/libs/shared/ui/src/lib/components/button-primitive/button-primitive.tsx
@@ -18,6 +18,7 @@ const _buttonVariants = cva(
'disabled:bg-surface-neutral-component',
'focus-visible:[&:not(:active)]:outline-2',
'outline-0',
+ 'select-none',
],
{
variants: {
diff --git a/libs/shared/ui/src/lib/components/dropdown-menu/dropdown-menu.tsx b/libs/shared/ui/src/lib/components/dropdown-menu/dropdown-menu.tsx
index ec165b7c06b..ac461e68e3e 100644
--- a/libs/shared/ui/src/lib/components/dropdown-menu/dropdown-menu.tsx
+++ b/libs/shared/ui/src/lib/components/dropdown-menu/dropdown-menu.tsx
@@ -5,7 +5,7 @@ import { type ComponentPropsWithoutRef, type ElementRef, type ReactElement, clon
import { twMerge } from '@qovery/shared/util-js'
const dropdownMenuItemVariants = cva(
- ['px-3', 'flex', 'items-center', 'h-8', 'text-sm', 'font-medium', 'rounded-sm', 'outline-none'],
+ ['px-3', 'flex', 'items-center', 'h-8', 'text-sm', 'font-medium', 'rounded-sm', 'outline-none', 'select-none'],
{
variants: {
color: {
From 276fa062b889a7dc2cfbc6ed48c97ae8b3e305ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Fri, 16 Jan 2026 17:58:21 +0100
Subject: [PATCH 6/9] feat(input-select): enhance styling and hover states for
input select components
---
.../input-select-small/input-select-small.tsx | 6 ++--
.../inputs/input-select/input-select.tsx | 18 ++++++------
.../ui/src/lib/styles/components/input.scss | 6 ++--
.../ui/src/lib/styles/components/select.scss | 28 ++++++++-----------
tailwind-workspace-preset.js | 2 +-
5 files changed, 28 insertions(+), 32 deletions(-)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx b/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx
index ca50737541f..a2b65b378f8 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx
@@ -48,14 +48,14 @@ export function InputSelectSmall(props: InputSelectSmallProps) {
}, [defaultValue])
return (
-
+
{label && {label} }
onClickItem(e.target.value)}
@@ -68,7 +68,7 @@ export function InputSelectSmall(props: InputSelectSmallProps) {
)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx b/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx
index ee2f9cf690a..89ef7c1b83c 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-select/input-select.tsx
@@ -134,7 +134,7 @@ export function InputSelect({
{menuListButton.label}
@@ -157,13 +157,13 @@ export function InputSelect({
{props.isSelected && }
) : props.isSelected ? (
-
+
) : props.data.icon ? (
{props.data.icon}
) : (
-
+
)}
-
+
{props.label}
{props.data.description && {props.data.description} }
@@ -226,9 +226,9 @@ export function InputSelect({
const inputActions =
hasFocus && !disabled
- ? '!border-brand-500 !shadow-[0_2px_2px_rgba(0, 0, 0, 0.05)] input--focused'
+ ? '!border-brand-strong !shadow-[0_2px_2px_rgba(0, 0, 0, 0.05)] input--focused'
: disabled
- ? '!bg-neutral-100 !border-neutral-250 !pointer-events-none'
+ ? '!bg-surface-neutral-subtle !border-neutral !pointer-events-none'
: hasError
? 'input--error'
: ''
@@ -271,12 +271,12 @@ export function InputSelect({
styles: {
menu: (base) => ({
...base,
- backgroundColor: 'var(--neutral-2)',
+ backgroundColor: 'var(--neutral-1)',
borderRadius: '6px',
}),
menuList: (base) => ({
...base,
- backgroundColor: 'var(--neutral-2)',
+ backgroundColor: 'var(--neutral-1)',
}),
menuPortal: (base) => ({
...base,
@@ -305,7 +305,7 @@ export function InputSelect({
diff --git a/libs/shared/ui/src/lib/styles/components/input.scss b/libs/shared/ui/src/lib/styles/components/input.scss
index 9f39480bca1..caa38bf034d 100644
--- a/libs/shared/ui/src/lib/styles/components/input.scss
+++ b/libs/shared/ui/src/lib/styles/components/input.scss
@@ -27,7 +27,7 @@
}
.input--small {
- @apply relative h-9 min-h-[36px] rounded;
+ @apply relative h-9 min-h-[36px];
}
.input__value {
@@ -52,7 +52,7 @@
@apply translate-y-0 text-xs;
}
.input__value[type='time'] {
- color: theme('colors.neutral.400');
+ @apply text-neutral;
}
}
@@ -75,9 +75,9 @@
}
.input-select__placeholder {
+ @apply text-neutral-disabled;
display: block !important;
font-size: theme('fontSize.ssm') !important;
- color: theme('colors.neutral.300') !important;
font-weight: 400;
}
}
diff --git a/libs/shared/ui/src/lib/styles/components/select.scss b/libs/shared/ui/src/lib/styles/components/select.scss
index 2361775bed3..3678c2de20a 100644
--- a/libs/shared/ui/src/lib/styles/components/select.scss
+++ b/libs/shared/ui/src/lib/styles/components/select.scss
@@ -1,7 +1,7 @@
.input-select__control .input-select__input-container {
@apply text-sm;
margin: 0;
- color: theme('colors.neutral.400');
+ color: theme('textColor.neutral.DEFAULT');
}
.input-select__control {
@@ -28,10 +28,10 @@
// state
.input-select--error {
- @apply border-red-500;
+ @apply border-negative-strong;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);
&:hover {
- @apply border-red-500;
+ @apply border-negative-strong;
}
}
@@ -42,10 +42,10 @@
}
.input-select--disabled {
- @apply pointer-events-none border-neutral-250 bg-neutral-100;
+ @apply pointer-events-none border-neutral bg-surface-neutral-subtle;
& > label {
- @apply text-neutral-350;
+ @apply text-neutral-subtle;
}
}
@@ -70,7 +70,7 @@
.input-select__option,
.input-select__button {
display: flex !important;
- background: var(--neutral-2) !important;
+ background: var(--neutral-1) !important;
padding: 8px !important;
cursor: pointer !important;
@apply items-center gap-2 rounded-md;
@@ -80,29 +80,25 @@
}
.input-select__checkbox {
- @apply flex h-4 w-4 shrink-0 items-center justify-center rounded-md border-2 border-neutral bg-surface-neutral;
- }
-
- &:hover {
- background: var(--neutral-2) !important;
+ @apply flex h-4 w-4 shrink-0 items-center justify-center rounded border border-neutral bg-surface-neutral;
}
}
.input-select__option--is-disabled {
label {
- @apply text-neutral-300;
+ @apply text-neutral-disabled;
}
}
.input-select__option--is-selected {
- background: theme('colors.white');
+ background: theme('colors.background.DEFAULT');
label {
@apply text-neutral;
}
.input-select__checkbox {
- @apply border-0 bg-brand-500;
+ @apply border-0 bg-surface-brand-solid;
}
}
@@ -114,8 +110,8 @@
.input-select__option--is-focused.input-select__option--is-selected,
.input-select__button:hover,
.input-select__option--is-focused:hover {
- background: var(--neutral-4) !important;
+ background: var(--brand-3) !important;
label {
- color: var(--brand-9) !important;
+ color: var(--brand-10) !important;
}
}
diff --git a/tailwind-workspace-preset.js b/tailwind-workspace-preset.js
index bdd451a7458..117d3bb2a87 100644
--- a/tailwind-workspace-preset.js
+++ b/tailwind-workspace-preset.js
@@ -343,7 +343,7 @@ module.exports = {
DEFAULT: 'var(--neutral-invert-12)',
contrasted: 'var(--contrast-inverted)',
},
- brand: { DEFAULT: 'var(--brand-11)' },
+ brand: { DEFAULT: 'var(--brand-11)', hover: 'var(--brand-10)' },
info: { DEFAULT: 'var(--info-11)' },
positive: { DEFAULT: 'var(--positive-11)' },
negative: { DEFAULT: 'var(--negative-11)' },
From b54b572a3b621c84246e28aa4c2c9764f9762166 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Mon, 19 Jan 2026 14:37:33 +0100
Subject: [PATCH 7/9] refactor(inputs): update input components for improved
styling and consistency across various input types
---
.../src/lib/components/checkbox/checkbox.tsx | 4 +--
.../input-credit-card/input-credit-card.tsx | 9 ++++---
.../inputs/input-file/input-file.tsx | 10 +++----
.../inputs/input-filter/input-filter.tsx | 4 +++
.../input-radio-box/input-radio-box.tsx | 4 +--
.../inputs/input-radio/input-radio.tsx | 6 ++---
.../input-select-small/input-select-small.tsx | 2 +-
.../input-size-unit/input-size-unit.tsx | 2 +-
.../inputs/input-tags/input-tags.tsx | 10 +++----
.../inputs/input-toggle/input-toggle.tsx | 2 +-
.../radio-group/radio-group.stories.tsx | 22 ++++++++--------
.../components/radio-group/radio-group.tsx | 26 +++++++++----------
.../ui/src/lib/components/slider/slider.tsx | 12 ++++-----
.../ui/src/lib/styles/components/input.scss | 10 ++++---
.../ui/src/lib/styles/components/select.scss | 4 +++
15 files changed, 70 insertions(+), 57 deletions(-)
diff --git a/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx b/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx
index 25531c458a4..fb37230b8fd 100644
--- a/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx
+++ b/libs/shared/ui/src/lib/components/checkbox/checkbox.tsx
@@ -33,7 +33,7 @@ const checkboxVariants = cva(
'hover:border-brand-strong',
'data-[state=checked]:bg-surface-brand-solid',
'hover:data-[state=checked]:bg-surface-brand-solidHover',
- 'data-[state=checked]:border-brand-strong',
+ 'data-[state=checked]:border-0',
'data-[state=indeterminate]:border-brand-strong',
],
red: [
@@ -93,7 +93,7 @@ const Checkbox = forwardRef, CheckboxP
) : (
)}
diff --git a/libs/shared/ui/src/lib/components/inputs/input-credit-card/input-credit-card.tsx b/libs/shared/ui/src/lib/components/inputs/input-credit-card/input-credit-card.tsx
index 83ee3b869f9..33084874470 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-credit-card/input-credit-card.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-credit-card/input-credit-card.tsx
@@ -77,7 +77,10 @@ export function InputCreditCard(props: InputCreditCardProps) {
const hasError = error && error.length > 0 ? 'input--error' : ''
- const isDisabled = disabled ? 'input--disabled !border-neutral-250' : ''
+ const inputActions = hasFocus ? 'input--focused' : disabled ? 'input--disabled' : ''
+
+
+ const isDisabled = disabled ? 'input--disabled !border-neutral' : ''
useEffect(() => {
switch (props.type) {
@@ -125,7 +128,7 @@ export function InputCreditCard(props: InputCreditCardProps) {
{props.type === 'number' && (
@@ -156,7 +159,7 @@ export function InputCreditCard(props: InputCreditCardProps) {
- {error &&
{error}
}
+ {error &&
{error}
}
)
}
diff --git a/libs/shared/ui/src/lib/components/inputs/input-file/input-file.tsx b/libs/shared/ui/src/lib/components/inputs/input-file/input-file.tsx
index 36ec5e812bc..280272609e9 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-file/input-file.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-file/input-file.tsx
@@ -48,8 +48,8 @@ export function InputFile(props: InputFileProps) {
>
) : (
diff --git a/libs/shared/ui/src/lib/components/inputs/input-filter/input-filter.tsx b/libs/shared/ui/src/lib/components/inputs/input-filter/input-filter.tsx
index 85c999b0032..d57bde2a9f7 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-filter/input-filter.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-filter/input-filter.tsx
@@ -14,6 +14,10 @@ export interface InputFilterProps {
isLoading?: boolean
}
+/*
+ * @deprecated Not used in audit logs an
+ */
+
export function InputFilter({ name, nameKey, options, onChange, defaultValue, isLoading }: InputFilterProps) {
const [isOpen, setIsOpen] = useState(false)
const [currentValue, setCurrentValue] = useState(defaultValue)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-radio-box/input-radio-box.tsx b/libs/shared/ui/src/lib/components/inputs/input-radio-box/input-radio-box.tsx
index 8b690979d0a..a74eca751cd 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-radio-box/input-radio-box.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-radio-box/input-radio-box.tsx
@@ -18,11 +18,11 @@ export function InputRadioBox(props: InputRadioBoxProps) {
data-testid="input-radio-box"
onClick={() => onChange(value)}
className={`mb-2 rounded border p-4 transition-all ${
- fieldValue === value ? 'border-brand-500 bg-brand-50' : 'border-neutral-250 bg-neutral-100'
+ fieldValue === value ? 'border-brand-strong bg-surface-brand-subtle' : 'border-neutral bg-surface-neutral-subtle'
}`}
>
- {description && {description}
}
+ {description && {description}
}
)
}
diff --git a/libs/shared/ui/src/lib/components/inputs/input-radio/input-radio.tsx b/libs/shared/ui/src/lib/components/inputs/input-radio/input-radio.tsx
index 6643bbc2571..329c020db88 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-radio/input-radio.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-radio/input-radio.tsx
@@ -57,14 +57,14 @@ export function InputRadio(props: InputRadioProps) {
checked={check}
disabled={disable}
onChange={(e) => inputChange(e.currentTarget.checked, e.currentTarget.value, e)}
- className="relative mr-5 appearance-none font-icons before:absolute before:left-[1px] before:top-[1px] before:flex before:h-[1.125rem] before:w-[1.125rem] before:items-center before:justify-center before:rounded-full before:border-2 before:border-neutral-350 before:bg-white before:text-xs before:font-black before:leading-none before:text-white before:transition-all before:content-[''] after:absolute after:left-[5px] after:top-[5px] after:h-2.5 after:w-2.5 after:rounded-full after:bg-brand-500 after:opacity-0 after:transition-all after:content-[''] checked:before:border-brand-500 checked:after:opacity-100 hover:before:border-brand-500"
+ className="relative mr-5 appearance-none font-icons before:absolute before:left-[1px] before:top-[1px] before:flex before:h-[1.125rem] before:w-[1.125rem] before:items-center before:justify-center before:rounded-full before:border before:border-neutral before:bg-surface-neutral before:text-xs before:font-black before:leading-none before:transition-all before:content-[''] after:absolute after:left-[5px] after:top-[5px] after:h-2.5 after:w-2.5 after:rounded-full after:bg-surface-brand-solid after:opacity-0 after:transition-all after:content-[''] checked:before:border-brand-strong checked:after:opacity-100 hover:before:border-brand-strong"
/>
{label}
- {description && {description}
}
+ {description && {description}
}
)
diff --git a/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx b/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx
index a2b65b378f8..e56d0e0b336 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-select-small/input-select-small.tsx
@@ -49,7 +49,7 @@ export function InputSelectSmall(props: InputSelectSmallProps) {
return (
- {label &&
{label} }
+ {label &&
{label} }
{showConsumption && (
-
+
Current consumption:{' '}
{currentSize < 1024 ? currentSize + ` ${MemorySizeEnum.MB}` : currentSize / 1024 + ` ${MemorySizeEnum.GB}`}
diff --git a/libs/shared/ui/src/lib/components/inputs/input-tags/input-tags.tsx b/libs/shared/ui/src/lib/components/inputs/input-tags/input-tags.tsx
index 744e5f5f057..57cce79bd2b 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-tags/input-tags.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-tags/input-tags.tsx
@@ -74,13 +74,13 @@ export function InputTags(props: InputTagsProps) {
{tag}
removeTag(index)}
- className="transition-background absolute right-1 top-[6px] flex h-4 w-4 cursor-pointer items-center justify-center rounded-full text-xs duration-200 ease-out hover:bg-neutral-200 "
+ className="transition-background absolute right-1 top-[6px] flex h-4 w-4 cursor-pointer items-center justify-center rounded-full text-xs duration-200 ease-out hover:bg-surface-neutral-componentHover"
>
@@ -91,10 +91,10 @@ export function InputTags(props: InputTagsProps) {
data-testid="input-tags-field"
onKeyDown={handleKeyDown}
type="text"
- className={`${!focused ? 'text-transparent' : ''} ${
+ className={`bg-transparent ${!focused ? 'text-transparent' : ''} ${
focused || currentTags?.length > 0 || inputValue.length > 0
- ? 'inline-flex text-ssm text-neutral-400'
- : 'absolute left-0 top-0 h-full w-full bg-transparent'
+ ? 'inline-flex text-ssm text-neutral'
+ : 'absolute left-0 top-0 h-full w-full'
}`}
placeholder={currentTags?.length > 0 ? placeholder : ''}
onChange={(e) => setInputValue(e.currentTarget.value)}
diff --git a/libs/shared/ui/src/lib/components/inputs/input-toggle/input-toggle.tsx b/libs/shared/ui/src/lib/components/inputs/input-toggle/input-toggle.tsx
index 2eb7c612391..b427d061762 100644
--- a/libs/shared/ui/src/lib/components/inputs/input-toggle/input-toggle.tsx
+++ b/libs/shared/ui/src/lib/components/inputs/input-toggle/input-toggle.tsx
@@ -83,7 +83,7 @@ export function InputToggle(props: InputToggleProps) {
>
diff --git a/libs/shared/ui/src/lib/components/radio-group/radio-group.stories.tsx b/libs/shared/ui/src/lib/components/radio-group/radio-group.stories.tsx
index 71f5ec73902..879edc333de 100644
--- a/libs/shared/ui/src/lib/components/radio-group/radio-group.stories.tsx
+++ b/libs/shared/ui/src/lib/components/radio-group/radio-group.stories.tsx
@@ -6,7 +6,7 @@ const Story: Meta
= {
title: 'RadioGroup',
decorators: [
(Story) => (
-
+
),
@@ -17,19 +17,19 @@ export default Story
export const Primary = {
render: () => (
-
+
Value 1
-
+
Value 2
-
+
Value 3
-
+
Value 4
-
+
Value 5
@@ -39,19 +39,19 @@ export const Primary = {
export const Check = {
render: () => (
-
+
Value 1
-
+
Value 2
-
+
Value 3
-
+
Value 4
-
+
Value 5
diff --git a/libs/shared/ui/src/lib/components/radio-group/radio-group.tsx b/libs/shared/ui/src/lib/components/radio-group/radio-group.tsx
index fa9aeaaa59e..68786a3becd 100644
--- a/libs/shared/ui/src/lib/components/radio-group/radio-group.tsx
+++ b/libs/shared/ui/src/lib/components/radio-group/radio-group.tsx
@@ -8,24 +8,22 @@ const itemVariants = cva(
[
'group',
'transition',
- 'bg-neutral-100',
- 'dark:bg-neutral-500',
+ 'bg-surface-neutral',
'border',
- 'border-neutral-300',
+ 'border-neutral',
'w-[20px]',
'h-[20px]',
'rounded-full',
- 'hover:border-2',
- 'hover:border-brand-500',
- 'data-[state=checked]:bg-brand-500',
- 'data-[state=checked]:border-2',
- 'data-[state=checked]:border-brand-500',
+ 'hover:border-brand-strong',
+ 'data-[state=checked]:bg-surface-brand-solid',
+ 'data-[state=checked]:border-0',
+ 'hover:data-[state=checked]:bg-surface-brand-solidHover',
+ 'disabled:cursor-not-allowed',
'disabled:hover:border',
- 'disabled:bg-neutral-150',
- 'disabled:border-neutral-250',
- 'disabled:data-[state=checked]:hover:border-2',
- 'disabled:data-[state=checked]:border-brand-300',
- 'disabled:data-[state=checked]:bg-brand-300',
+ 'disabled:bg-surface-neutral-component',
+ 'disabled:border-neutral-component',
+ 'disabled:data-[state=checked]:border-0',
+ 'disabled:data-[state=checked]:bg-surface-brand-component',
],
{
variants: {
@@ -69,7 +67,7 @@ const RadioGroupItem = forwardRef
, R
return (
- {variant === 'check' && }
+ {variant === 'check' && }
)
diff --git a/libs/shared/ui/src/lib/components/slider/slider.tsx b/libs/shared/ui/src/lib/components/slider/slider.tsx
index 3e9244b58e1..efa5a3db3a2 100644
--- a/libs/shared/ui/src/lib/components/slider/slider.tsx
+++ b/libs/shared/ui/src/lib/components/slider/slider.tsx
@@ -24,12 +24,12 @@ export function Slider(props: SliderProps) {
{label && (
{label && (
-
+
{label}
)}
{valueLabel && value && (
-
+
{value.map((currentValue, index) => `${currentValue}${index < value.length - 1 ? ', ' : ''}`)}
{valueLabel}
@@ -38,19 +38,19 @@ export function Slider(props: SliderProps) {
)}
handleChange(value)}
- className="relative flex h-1 w-full cursor-pointer rounded bg-neutral-300"
+ className="relative flex h-1 w-full cursor-pointer rounded bg-surface-neutral-solid"
value={value}
min={min}
max={max}
step={step}
>
-
-
+
+
{value?.map((v, index) => (
))}
diff --git a/libs/shared/ui/src/lib/styles/components/input.scss b/libs/shared/ui/src/lib/styles/components/input.scss
index caa38bf034d..bd334dfa0d8 100644
--- a/libs/shared/ui/src/lib/styles/components/input.scss
+++ b/libs/shared/ui/src/lib/styles/components/input.scss
@@ -1,7 +1,7 @@
@use '../base/variable';
.input {
- @apply relative min-h-[52px] cursor-pointer rounded-md border border-neutral-component bg-background px-3 py-2 hover:bg-surface-neutral-component;
+ @apply relative min-h-[52px] cursor-pointer rounded-md border border-neutral-component bg-surface-neutral px-3 py-2 hover:bg-surface-neutral-component;
transition:
120ms all variable.$timing-cubic,
0 outline;
@@ -39,6 +39,10 @@
color: transparent;
}
+.input-file-icon {
+ color: theme('textColor.neutral.disabled');
+}
+
.input--focused,
.input__button--focused {
outline: 2px solid var(--brand-4);
@@ -57,8 +61,8 @@
}
.input--filter {
- min-height: theme('space.9');
- height: theme('space.9');
+ min-height: theme('space.7');
+ height: theme('space.7');
padding: theme('space.2');
@apply bg-surface-neutral-component;
padding-top: 0;
diff --git a/libs/shared/ui/src/lib/styles/components/select.scss b/libs/shared/ui/src/lib/styles/components/select.scss
index 3678c2de20a..554605c0b84 100644
--- a/libs/shared/ui/src/lib/styles/components/select.scss
+++ b/libs/shared/ui/src/lib/styles/components/select.scss
@@ -26,6 +26,10 @@
transition-property: transform;
}
+.input--filter .input-select__control {
+ height:28px;
+}
+
// state
.input-select--error {
@apply border-negative-strong;
From 6e03946d5f1c675559241c8cef9549a8ac7df5d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Grandin?=
Date: Mon, 19 Jan 2026 14:58:42 +0100
Subject: [PATCH 8/9] chore(snapshots): update snapshots for various components
to reflect styling changes and improvements in button and input components
---
.../cluster-access-modal.spec.tsx.snap | 14 +-
.../cluster-delete-modal.spec.tsx.snap | 10 +-
.../cluster-log-row.spec.tsx.snap | 8 +-
.../cluster-migration-modal.spec.tsx.snap | 12 +-
.../__snapshots__/cluster-setup.spec.tsx.snap | 2 +-
.../cluster-terminal.spec.tsx.snap | 2 +-
.../terraform-export-modal.spec.tsx.snap | 6 +-
.../update-all-modal.spec.tsx.snap | 14 +-
...annotation-create-edit-modal.spec.tsx.snap | 32 +-
...registry-services-list-modal.spec.tsx.snap | 4 +-
.../git-branch-settings.spec.tsx.snap | 4 +-
...t-public-repository-settings.spec.tsx.snap | 6 +-
.../git-token-list.spec.tsx.snap | 12 +-
.../label-create-edit-modal.spec.tsx.snap | 16 +-
.../deployment-setting.spec.tsx.snap | 6 +-
...etworking-port-setting-modal.spec.tsx.snap | 26 +-
.../source-setting.spec.tsx.snap | 4 +-
.../values-override-yaml-modal.spec.tsx.snap | 6 +-
...values-override-yaml-setting.spec.tsx.snap | 2 +-
...file-fragment-inline-setting.spec.tsx.snap | 4 +-
.../auto-deploy-setting.spec.tsx.snap | 2 +-
...ation-cancel-lifecycle-modal.spec.tsx.snap | 6 +-
.../dockerfile-settings.spec.tsx.snap | 16 +-
.../force-unlock-modal.spec.tsx.snap | 6 +-
.../general-setting.spec.tsx.snap | 6 +-
.../__snapshots__/last-commit.spec.tsx.snap | 4 +-
.../__snapshots__/last-version.spec.tsx.snap | 2 +-
.../__snapshots__/pod-details.spec.tsx.snap | 8 +-
.../pod-statuses-callout.spec.tsx.snap | 4 +-
.../__snapshots__/pods-metrics.spec.tsx.snap | 2 +-
.../redeploy-modal.spec.tsx.snap | 16 +-
.../select-commit-modal.spec.tsx.snap | 10 +-
.../select-version-modal.spec.tsx.snap | 8 +-
.../service-clone-modal.spec.tsx.snap | 8 +-
.../service-links-popover.spec.tsx.snap | 169 +------
.../service-list-action-bar.spec.tsx.snap | 4 +-
.../__snapshots__/input-search.spec.tsx.snap | 4 +-
.../dropdown-variable.spec.tsx.snap | 2 +-
.../field-variable-suggestion.spec.tsx.snap | 2 +-
.../__snapshots__/variable-list.spec.tsx.snap | 44 +-
.../gcp-existing-vpc.spec.tsx.snap | 12 +-
.../gcp-vpc-feature.spec.tsx.snap | 12 +-
.../step-kubeconfig.spec.tsx.snap | 10 +-
...n-labels-annotations-feature.spec.tsx.snap | 16 +-
.../button-popover-subnets.spec.tsx.snap | 421 ++++++++++++++++++
.../devops-copilot-button.spec.tsx.snap | 2 +-
.../input/__snapshots__/input.spec.tsx.snap | 4 +-
.../button-primitive.spec.tsx.snap | 2 +-
.../button/__snapshots__/button.spec.tsx.snap | 4 +-
.../__snapshots__/input-filter.spec.tsx.snap | 6 +-
.../modal-confirmation.spec.tsx.snap | 18 +-
.../modal-multi-confirmation.spec.tsx.snap | 8 +-
52 files changed, 642 insertions(+), 386 deletions(-)
create mode 100644 libs/shared/console-shared/src/lib/cluster-settings/ui/cluster-resources-settings/button-popover-subnets/__snapshots__/button-popover-subnets.spec.tsx.snap
diff --git a/libs/domains/clusters/feature/src/lib/cluster-access-modal/__snapshots__/cluster-access-modal.spec.tsx.snap b/libs/domains/clusters/feature/src/lib/cluster-access-modal/__snapshots__/cluster-access-modal.spec.tsx.snap
index 8c319f0a503..7189d2fe849 100644
--- a/libs/domains/clusters/feature/src/lib/cluster-access-modal/__snapshots__/cluster-access-modal.spec.tsx.snap
+++ b/libs/domains/clusters/feature/src/lib/cluster-access-modal/__snapshots__/cluster-access-modal.spec.tsx.snap
@@ -70,7 +70,7 @@ exports[`ClusterAccessModal should match snapshot 1`] = `
qovery cluster kubeconfig --cluster-id 000
Copy
@@ -108,7 +108,7 @@ exports[`ClusterAccessModal should match snapshot 1`] = `
export KUBECONFIG=<path>
Copy
@@ -141,7 +141,7 @@ exports[`ClusterAccessModal should match snapshot 1`] = `
kubectl
Copy
@@ -163,7 +163,7 @@ exports[`ClusterAccessModal should match snapshot 1`] = `
k9s
Copy
@@ -251,7 +251,7 @@ exports[`ClusterAccessModal should match snapshot with SELF_MANAGED type 1`] = `
qovery cluster debug-pod --cluster-id 000
Copy
@@ -284,7 +284,7 @@ exports[`ClusterAccessModal should match snapshot with SELF_MANAGED type 1`] = `
kubectl
Copy
@@ -306,7 +306,7 @@ exports[`ClusterAccessModal should match snapshot with SELF_MANAGED type 1`] = `
k9s
Copy
diff --git a/libs/domains/clusters/feature/src/lib/cluster-delete-modal/__snapshots__/cluster-delete-modal.spec.tsx.snap b/libs/domains/clusters/feature/src/lib/cluster-delete-modal/__snapshots__/cluster-delete-modal.spec.tsx.snap
index 12f21f28aa5..73e20493cf7 100644
--- a/libs/domains/clusters/feature/src/lib/cluster-delete-modal/__snapshots__/cluster-delete-modal.spec.tsx.snap
+++ b/libs/domains/clusters/feature/src/lib/cluster-delete-modal/__snapshots__/cluster-delete-modal.spec.tsx.snap
@@ -33,7 +33,7 @@ exports[`ClusterDeleteModal should match snapshot 1`] = `
class="hidden"
/>
Cancel
diff --git a/libs/domains/clusters/feature/src/lib/cluster-logs/cluster-log-row/__snapshots__/cluster-log-row.spec.tsx.snap b/libs/domains/clusters/feature/src/lib/cluster-logs/cluster-log-row/__snapshots__/cluster-log-row.spec.tsx.snap
index e978fa91bc5..bf8e94fb0a0 100644
--- a/libs/domains/clusters/feature/src/lib/cluster-logs/cluster-log-row/__snapshots__/cluster-log-row.spec.tsx.snap
+++ b/libs/domains/clusters/feature/src/lib/cluster-logs/cluster-log-row/__snapshots__/cluster-log-row.spec.tsx.snap
@@ -55,9 +55,9 @@ exports[`ClusterLogRow should display cell error message 1`] = `
/>
- 12 Jan, 15:57:33.00
+ 19 Jan, 13:44:04.00
@@ -119,9 +119,9 @@ exports[`ClusterLogRow should display cell message 1`] = `
/>
- 12 Jan, 15:57:33.00
+ 19 Jan, 13:44:04.00
diff --git a/libs/domains/clusters/feature/src/lib/cluster-migration-modal/__snapshots__/cluster-migration-modal.spec.tsx.snap b/libs/domains/clusters/feature/src/lib/cluster-migration-modal/__snapshots__/cluster-migration-modal.spec.tsx.snap
index c04b4c2f8d6..6daa9abfa13 100644
--- a/libs/domains/clusters/feature/src/lib/cluster-migration-modal/__snapshots__/cluster-migration-modal.spec.tsx.snap
+++ b/libs/domains/clusters/feature/src/lib/cluster-migration-modal/__snapshots__/cluster-migration-modal.spec.tsx.snap
@@ -22,7 +22,7 @@ exports[`ClusterMigrationModal should match snapshot 1`] = `
>
Cancel
Copy
diff --git a/libs/domains/clusters/feature/src/lib/cluster-terminal/__snapshots__/cluster-terminal.spec.tsx.snap b/libs/domains/clusters/feature/src/lib/cluster-terminal/__snapshots__/cluster-terminal.spec.tsx.snap
index 4774df6c20d..c95986aa89f 100644
--- a/libs/domains/clusters/feature/src/lib/cluster-terminal/__snapshots__/cluster-terminal.spec.tsx.snap
+++ b/libs/domains/clusters/feature/src/lib/cluster-terminal/__snapshots__/cluster-terminal.spec.tsx.snap
@@ -24,7 +24,7 @@ exports[`ClusterTerminal should match snapshot 1`] = `
class="flex items-center gap-1"
>
Close shell
@@ -62,14 +62,14 @@ exports[`TerraformExportModal should match with snapshots 1`] = `
class="mt-6 flex justify-end gap-3"
>
Cancel
Deselect All
@@ -55,7 +55,7 @@ exports[`UpdateAllModal should reduce opacity of commit blocks 1`] = `
class="relative flex items-center gap-2 mr-4"
>
Amy Maxwell
@@ -169,7 +169,7 @@ exports[`UpdateAllModal should reduce opacity of commit blocks 1`] = `
class="relative flex items-center gap-2 mr-4"
>
Cancel
diff --git a/libs/domains/organizations/feature/src/lib/annotation-create-edit-modal/__snapshots__/annotation-create-edit-modal.spec.tsx.snap b/libs/domains/organizations/feature/src/lib/annotation-create-edit-modal/__snapshots__/annotation-create-edit-modal.spec.tsx.snap
index 83766260551..27edc46fc59 100644
--- a/libs/domains/organizations/feature/src/lib/annotation-create-edit-modal/__snapshots__/annotation-create-edit-modal.spec.tsx.snap
+++ b/libs/domains/organizations/feature/src/lib/annotation-create-edit-modal/__snapshots__/annotation-create-edit-modal.spec.tsx.snap
@@ -28,7 +28,7 @@ exports[`AnnotationCreateEditModal should match with snatpshot 1`] = `
>
Add annotation
@@ -159,7 +159,7 @@ exports[`AnnotationCreateEditModal should match with snatpshot 1`] = `
>
Cancel
Development
diff --git a/libs/domains/organizations/feature/src/lib/git-branch-settings/__snapshots__/git-branch-settings.spec.tsx.snap b/libs/domains/organizations/feature/src/lib/git-branch-settings/__snapshots__/git-branch-settings.spec.tsx.snap
index 8c7c16ccb0b..e59d0e4892a 100644
--- a/libs/domains/organizations/feature/src/lib/git-branch-settings/__snapshots__/git-branch-settings.spec.tsx.snap
+++ b/libs/domains/organizations/feature/src/lib/git-branch-settings/__snapshots__/git-branch-settings.spec.tsx.snap
@@ -119,7 +119,7 @@ exports[`GitBranchSettings should match snapshot 1`] = `
>
Customize
diff --git a/libs/domains/services/feature/src/lib/service-list/__snapshots__/service-list-action-bar.spec.tsx.snap b/libs/domains/services/feature/src/lib/service-list/__snapshots__/service-list-action-bar.spec.tsx.snap
index 3e09867f613..de49ca69f41 100644
--- a/libs/domains/services/feature/src/lib/service-list/__snapshots__/service-list-action-bar.spec.tsx.snap
+++ b/libs/domains/services/feature/src/lib/service-list/__snapshots__/service-list-action-bar.spec.tsx.snap
@@ -30,7 +30,7 @@ exports[`ServiceListActionBar should match snapshot 1`] = `
class="flex gap-3"
>
Deploy selected
my-value
@@ -69,7 +69,7 @@ exports[`InputSearch should match with snapshot 1`] = `
class="relative z-10"
>
my-value
diff --git a/libs/domains/variables/feature/src/lib/dropdown-variable/__snapshots__/dropdown-variable.spec.tsx.snap b/libs/domains/variables/feature/src/lib/dropdown-variable/__snapshots__/dropdown-variable.spec.tsx.snap
index ecdf9b9a12a..9f71467361c 100644
--- a/libs/domains/variables/feature/src/lib/dropdown-variable/__snapshots__/dropdown-variable.spec.tsx.snap
+++ b/libs/domains/variables/feature/src/lib/dropdown-variable/__snapshots__/dropdown-variable.spec.tsx.snap
@@ -39,7 +39,7 @@ exports[`DropdownVariable should render dropdown content when clicked 1`] = `
class="max-h-[200px] overflow-y-auto"
>
@@ -93,7 +93,7 @@ exports[`VariableList should match snapshot 1`] = `
aria-controls="radix-:r29:"
aria-expanded="false"
aria-haspopup="dialog"
- class="inline-flex items-center shrink-0 font-medium transition-[background-color,transform] active:scale-[0.97] disabled:scale-100 disabled:pointer-events-none disabled:border disabled:border-neutral disabled:text-neutral-disabled disabled:bg-surface-neutral-component focus-visible:[&:not(:active)]:outline-2 outline-0 outline-brand h-7 px-2 rounded bg-surface-neutral-component hover:bg-surface-neutral-componentHover text-neutral gap-1 whitespace-nowrap text-xs"
+ class="inline-flex items-center shrink-0 font-medium transition-[background-color,transform] active:scale-[0.97] disabled:scale-100 disabled:pointer-events-none disabled:border disabled:border-neutral disabled:text-neutral-disabled disabled:bg-surface-neutral-component focus-visible:[&:not(:active)]:outline-2 outline-0 select-none outline-brand h-7 px-2 rounded bg-surface-neutral-component hover:bg-surface-neutral-componentHover text-neutral gap-1 whitespace-nowrap text-xs"
data-state="closed"
type="button"
>
@@ -116,7 +116,7 @@ exports[`VariableList should match snapshot 1`] = `
aria-controls="radix-:r2c:"
aria-expanded="false"
aria-haspopup="dialog"
- class="inline-flex items-center shrink-0 font-medium transition-[background-color,transform] active:scale-[0.97] disabled:scale-100 disabled:pointer-events-none disabled:border disabled:border-neutral disabled:text-neutral-disabled disabled:bg-surface-neutral-component focus-visible:[&:not(:active)]:outline-2 outline-0 outline-brand h-7 px-2 rounded bg-surface-neutral-component hover:bg-surface-neutral-componentHover text-neutral gap-1 whitespace-nowrap text-xs"
+ class="inline-flex items-center shrink-0 font-medium transition-[background-color,transform] active:scale-[0.97] disabled:scale-100 disabled:pointer-events-none disabled:border disabled:border-neutral disabled:text-neutral-disabled disabled:bg-surface-neutral-component focus-visible:[&:not(:active)]:outline-2 outline-0 select-none outline-brand h-7 px-2 rounded bg-surface-neutral-component hover:bg-surface-neutral-componentHover text-neutral gap-1 whitespace-nowrap text-xs"
data-state="closed"
type="button"
>
@@ -182,7 +182,7 @@ exports[`VariableList should match snapshot 1`] = `
aria-expanded="false"
aria-haspopup="menu"
aria-label="actions"
- class="inline-flex items-center shrink-0 font-medium transition-[background-color,transform] active:scale-[0.97] disabled:scale-100 disabled:pointer-events-none disabled:border disabled:border-neutral disabled:text-neutral-disabled disabled:bg-surface-neutral-component focus-visible:[&:not(:active)]:outline-2 outline-0 outline-brand text-sm h-8 px-2.5 rounded-md bg-surface-neutral border border-neutral hover:border-neutral-component text-neutral"
+ class="inline-flex items-center shrink-0 font-medium transition-[background-color,transform] active:scale-[0.97] disabled:scale-100 disabled:pointer-events-none disabled:border disabled:border-neutral disabled:text-neutral-disabled disabled:bg-surface-neutral-component focus-visible:[&:not(:active)]:outline-2 outline-0 select-none outline-brand text-sm h-8 px-2.5 rounded-md bg-surface-neutral border border-neutral hover:border-neutral-component text-neutral"
data-state="closed"
id="radix-:r2e:"
type="button"
@@ -266,7 +266,7 @@ exports[`VariableList should match snapshot 1`] = `
>
diff --git a/libs/pages/cluster/src/lib/ui/page-settings-network/gcp-existing-vpc/__snapshots__/gcp-existing-vpc.spec.tsx.snap b/libs/pages/cluster/src/lib/ui/page-settings-network/gcp-existing-vpc/__snapshots__/gcp-existing-vpc.spec.tsx.snap
index e7a213751e5..ae3a932acde 100644
--- a/libs/pages/cluster/src/lib/ui/page-settings-network/gcp-existing-vpc/__snapshots__/gcp-existing-vpc.spec.tsx.snap
+++ b/libs/pages/cluster/src/lib/ui/page-settings-network/gcp-existing-vpc/__snapshots__/gcp-existing-vpc.spec.tsx.snap
@@ -34,7 +34,7 @@ exports[`GcpExistingVPC should match snapshots 1`] = `
>