diff --git a/airflow-core/src/airflow/ui/src/components/DagActions/FavoriteDagButton.tsx b/airflow-core/src/airflow/ui/src/components/DagActions/FavoriteDagButton.tsx index 38024ecddde51..b3cf88fc10eab 100644 --- a/airflow-core/src/airflow/ui/src/components/DagActions/FavoriteDagButton.tsx +++ b/airflow-core/src/airflow/ui/src/components/DagActions/FavoriteDagButton.tsx @@ -16,11 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -import { Box } from "@chakra-ui/react"; +import { Box, useToken } from "@chakra-ui/react"; import { useTranslation } from "react-i18next"; import { FiStar } from "react-icons/fi"; import { useToggleFavoriteDag } from "src/queries/useToggleFavoriteDag"; +import { resolveTokenValue } from "src/theme"; import ActionButton from "../ui/ActionButton"; @@ -35,17 +36,21 @@ export const FavoriteDagButton = ({ dagId, isFavorite = false, withText = true } const { isLoading, toggleFavorite } = useToggleFavoriteDag(dagId); + const [brandSolidColor] = useToken("colors", ["brand.solid"]) + .map(token => resolveTokenValue(token || "oklch(0.5 0 0)")); + const onToggle = () => toggleFavorite(isFavorite); return ( } diff --git a/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx b/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx index 3ee9dbf62c8bc..753be792c31ef 100644 --- a/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx +++ b/airflow-core/src/airflow/ui/src/components/DateTimeInput.tsx @@ -41,6 +41,8 @@ export const DateTimeInput = forwardRef(({ onChange, va return ( onChange?.({ ...event, diff --git a/airflow-core/src/airflow/ui/src/components/DurationChart.tsx b/airflow-core/src/airflow/ui/src/components/DurationChart.tsx index c0fd7cf796b97..98a7b07f4d5a6 100644 --- a/airflow-core/src/airflow/ui/src/components/DurationChart.tsx +++ b/airflow-core/src/airflow/ui/src/components/DurationChart.tsx @@ -35,7 +35,7 @@ import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import type { TaskInstanceResponse, GridRunsResponse } from "openapi/requests/types.gen"; -import { getComputedCSSVariableValue } from "src/theme"; +import { resolveTokenValue } from "src/theme"; import { DEFAULT_DATETIME_FORMAT } from "src/utils/datetimeUtils"; ChartJS.register( @@ -68,14 +68,15 @@ export const DurationChart = ({ }) => { const { t: translate } = useTranslation(["components", "common"]); const navigate = useNavigate(); - const [queuedColorToken] = useToken("colors", ["queued.solid"]); + const [queuedColor] = useToken("colors", ["queued.solid"]) + .map(token => resolveTokenValue(token || "oklch(0.5 0 0)")); // Get states and create color tokens for them const states = entries?.map((entry) => entry.state).filter(Boolean) ?? []; - const stateColorTokens = useToken( + const stateColors = useToken( "colors", states.map((state) => `${state}.solid`), - ); + ).map(token => resolveTokenValue(token || "oklch(0.5 0 0)")); if (!entries) { return undefined; @@ -85,8 +86,8 @@ export const DurationChart = ({ const stateColorMap: Record = {}; states.forEach((state, index) => { - if (state) { - stateColorMap[state] = getComputedCSSVariableValue(stateColorTokens[index] ?? "oklch(0.5 0 0)"); + if (state && stateColors[index]) { + stateColorMap[state] = stateColors[index]; } }); @@ -125,7 +126,7 @@ export const DurationChart = ({ data={{ datasets: [ { - backgroundColor: getComputedCSSVariableValue(queuedColorToken ?? "oklch(0.5 0 0)"), + backgroundColor: queuedColor, data: entries.map((entry: RunResponse) => { switch (kind) { case "Dag Run": { diff --git a/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx b/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx index 239720f61f219..519cf77993127 100644 --- a/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx +++ b/airflow-core/src/airflow/ui/src/components/EditableMarkdownButton.tsx @@ -57,6 +57,7 @@ const EditableMarkdownButton = ({ { if (!isOpen) { @@ -70,7 +71,7 @@ const EditableMarkdownButton = ({ /> {Boolean(mdContent?.trim()) && ( - + {header} diff --git a/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx b/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx index 849047dde072f..245ec7c84b426 100644 --- a/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx +++ b/airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx @@ -143,9 +143,10 @@ export const FilterBar = ({ diff --git a/airflow-core/src/airflow/ui/src/components/FilterBar/FilterPill.tsx b/airflow-core/src/airflow/ui/src/components/FilterBar/FilterPill.tsx index ef789617f203b..a5042c541d093 100644 --- a/airflow-core/src/airflow/ui/src/components/FilterBar/FilterPill.tsx +++ b/airflow-core/src/airflow/ui/src/components/FilterBar/FilterPill.tsx @@ -113,10 +113,10 @@ export const FilterPill = ({ {filter.config.label}: diff --git a/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx b/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx index 2218e611984b7..76531e8736094 100644 --- a/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx +++ b/airflow-core/src/airflow/ui/src/components/Graph/DownloadButton.tsx @@ -67,6 +67,7 @@ export const DownloadButton = ({ name }: { readonly name: string }) => { return ( { diff --git a/airflow-core/src/airflow/ui/src/components/JsonEditor.tsx b/airflow-core/src/airflow/ui/src/components/JsonEditor.tsx index d422fab6abe30..488c69b582e32 100644 --- a/airflow-core/src/airflow/ui/src/components/JsonEditor.tsx +++ b/airflow-core/src/airflow/ui/src/components/JsonEditor.tsx @@ -17,15 +17,20 @@ * under the License. */ import { json } from "@codemirror/lang-json"; +import { useToken } from "@chakra-ui/react"; import { githubLight, githubDark } from "@uiw/codemirror-themes-all"; import CodeMirror, { type ReactCodeMirrorProps, type ReactCodeMirrorRef } from "@uiw/react-codemirror"; import { forwardRef } from "react"; import { useColorMode } from "src/context/colorMode"; +import { resolveTokenValue } from "src/theme"; export const JsonEditor = forwardRef((props, ref) => { const { colorMode } = useColorMode(); + const [borderColor] = useToken("colors", ["border.emphasized"]) + .map(token => resolveTokenValue(token || "oklch(0.5 0 0)")); + return ( (( height="200px" ref={ref} style={{ - border: "1px solid var(--chakra-colors-border-emphasized)", + border: `1px solid ${borderColor}`, borderRadius: "8px", outline: "none", padding: "2px", diff --git a/airflow-core/src/airflow/ui/src/components/NeedsReviewButton.tsx b/airflow-core/src/airflow/ui/src/components/NeedsReviewButton.tsx index c0ec70f44ddcf..af4ec0b7c403c 100644 --- a/airflow-core/src/airflow/ui/src/components/NeedsReviewButton.tsx +++ b/airflow-core/src/airflow/ui/src/components/NeedsReviewButton.tsx @@ -58,7 +58,7 @@ export const NeedsReviewButton = ({ return hitlTIsCount > 0 ? ( } isLoading={isLoading} diff --git a/airflow-core/src/airflow/ui/src/components/QuickFilterButton.tsx b/airflow-core/src/airflow/ui/src/components/QuickFilterButton.tsx index 4450e48e062b6..6729531a9af7e 100644 --- a/airflow-core/src/airflow/ui/src/components/QuickFilterButton.tsx +++ b/airflow-core/src/airflow/ui/src/components/QuickFilterButton.tsx @@ -24,12 +24,12 @@ type QuickFilterButtonProps = { export const QuickFilterButton = ({ children, isActive, ...rest }: QuickFilterButtonProps) => (