@marimo-team/frontend 0.24.1-dev113 → 0.24.1-dev115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{CellStatus-DjaaE1KV.js → CellStatus-DJBTB8Tm.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-BYgv4Vrx.js → ConnectedDataExplorerComponent-C22y7sbC.js} +1 -1
- package/dist/assets/{ErrorBoundary-ClXmeuxA.js → ErrorBoundary-CDVGFYfr.js} +1 -1
- package/dist/assets/{JsonOutput-6STJL9Rn.js → JsonOutput-COWoYBdx.js} +2 -2
- package/dist/assets/{LazyAnyLanguageCodeMirror-BnkWE9wV.js → LazyAnyLanguageCodeMirror-nhd5JrSb.js} +2 -2
- package/dist/assets/{MarimoErrorOutput-BTqTZeiu.js → MarimoErrorOutput-Cpp7YwEl.js} +1 -1
- package/dist/assets/{RenderHTML-DUXIAUaj.js → RenderHTML-DlIzJTPL.js} +1 -1
- package/dist/assets/{RunButton-aYiWB8Ga.js → RunButton-CT16Dkr4.js} +1 -1
- package/dist/assets/{VisuallyHidden-dPzEOlg8.js → VisuallyHidden-wlQyxf8y.js} +1 -1
- package/dist/assets/{add-cell-with-ai-l_Dax5pU.js → add-cell-with-ai-DSjyPknP.js} +1 -1
- package/dist/assets/{add-connection-dialog-CpvZ5BqX.js → add-connection-dialog-DO478_EL.js} +1 -1
- package/dist/assets/{agent-panel-CbdAoVgG.js → agent-panel-DIvPSTyY.js} +1 -1
- package/dist/assets/{ai-model-dropdown-jVyB16Bq.js → ai-model-dropdown-BxqpRM7R.js} +1 -1
- package/dist/assets/{alert-dialog-D_btUJmY.js → alert-dialog-BnNhUpVP.js} +1 -1
- package/dist/assets/{any-language-editor-B6cFLupW.js → any-language-editor-kw0XJFxM.js} +1 -1
- package/dist/assets/{app-config-button-CHSwEEzP.js → app-config-button-CAZWYP6R.js} +1 -1
- package/dist/assets/badge-BSgtkC2e.js +1 -0
- package/dist/assets/{blob-CoYb7D0i.js → blob-B82D3b64.js} +1 -1
- package/dist/assets/button-Dh8EwhsF.js +1 -0
- package/dist/assets/{cache-panel-mVo7M8xm.js → cache-panel-iphovHma.js} +1 -1
- package/dist/assets/{cell-editor-Bo1CBkuH.js → cell-editor-CL59E8W0.js} +1 -1
- package/dist/assets/{cell-link-CJvbR4gk.js → cell-link-DOeJzvRH.js} +1 -1
- package/dist/assets/{cells-C3Vs2g0_.js → cells-BgH2MZS9.js} +3 -3
- package/dist/assets/{chat-display-CkS1h-qA.js → chat-display-kzxea9r-.js} +1 -1
- package/dist/assets/{chat-panel-Bl8KhsjW.js → chat-panel-BVsbI9bp.js} +1 -1
- package/dist/assets/{chat-ui-lhVS3XhN.js → chat-ui-BIaqeCtJ.js} +1 -1
- package/dist/assets/{circle-BScTJE-Z.js → circle-BiW8b6Xq.js} +1 -1
- package/dist/assets/{column-preview-CBydN0D3.js → column-preview-BWoK0ZFU.js} +1 -1
- package/dist/assets/{command-palette-D0yWoZzd.js → command-palette-CcLmXXVs.js} +1 -1
- package/dist/assets/{common-BANLqpaV.js → common-DeDcgYdz.js} +1 -1
- package/dist/assets/{components-DC6fLfDw.js → components-CtHLnRet.js} +1 -1
- package/dist/assets/{config-BzPQfGBM.js → config-DnyziF11.js} +1 -1
- package/dist/assets/{copy-icon-zfaCsLjV.js → copy-icon-D522mvZL.js} +1 -1
- package/dist/assets/{datasource-DB4KqePX.js → datasource-HG_yVRxq.js} +1 -1
- package/dist/assets/dependency-graph-panel-CVsva03Q.js +5 -0
- package/dist/assets/{documentation-panel-2myTueGx.js → documentation-panel-BSiOFIpg.js} +1 -1
- package/dist/assets/{download-VyhuV4Af.js → download-C4umhthc.js} +1 -1
- package/dist/assets/{dropdown-menu-DnX3jo0y.js → dropdown-menu-B-ZAV5lw.js} +1 -1
- package/dist/assets/{edit-page-CVhnUbM-.js → edit-page-DCOdX3sJ.js} +4 -4
- package/dist/assets/{error-banner-BsjSLKyr.js → error-banner-C5aiAh3q.js} +1 -1
- package/dist/assets/{error-entries-DZjQ7yIb.js → error-entries-Yh2iX13J.js} +1 -1
- package/dist/assets/{error-panel-BpAXL0Jx.js → error-panel-CGUFTbfd.js} +1 -1
- package/dist/assets/{file-explorer-panel-BN6gd4XO.js → file-explorer-panel-Db-8C8fm.js} +1 -1
- package/dist/assets/{file-icons-DqdK7VJg.js → file-icons-C0Mf_Axb.js} +1 -1
- package/dist/assets/{file-name-input-oiyzcfEJ.js → file-name-input-DmwIfRLx.js} +1 -1
- package/dist/assets/{floating-outline-DPSwhBkV.js → floating-outline-8Uo6Qp8W.js} +1 -1
- package/dist/assets/{gallery-page-7DdjmUx5.js → gallery-page-BpxbCG1a.js} +1 -1
- package/dist/assets/{glide-data-editor-Di4wZ4hd.js → glide-data-editor-k7azNhFM.js} +1 -1
- package/dist/assets/{home-page-Bp96aSro.js → home-page-CEzr9Hhn.js} +1 -1
- package/dist/assets/{index-BkIXRAbi.css → index-DuY6Lm00.css} +1 -1
- package/dist/assets/{index-DppxBBTx.js → index-kkDJK6-j.js} +5 -5
- package/dist/assets/{input-BBJ8nAOd.js → input-D4qvzBWu.js} +1 -1
- package/dist/assets/{layout-Cx8C7K25.js → layout-D5ovQPUb.js} +3 -3
- package/dist/assets/{logs-panel-D0bWZKWJ.js → logs-panel-Cqxpxz5Z.js} +1 -1
- package/dist/assets/{markdown-renderer-CZ3YygMD.js → markdown-renderer-zZh3O1Hm.js} +1 -1
- package/dist/assets/menu-items-CsV3aDPH.js +1 -0
- package/dist/assets/{mermaid-Bx9Qyize.js → mermaid-BovZosCC.js} +1 -1
- package/dist/assets/{name-cell-input-Bu4JMe_U.js → name-cell-input-DXP1MqrH.js} +1 -1
- package/dist/assets/{outline-panel-C1xIywWA.js → outline-panel-CMMPf-P7.js} +1 -1
- package/dist/assets/{packages-panel-DTJ-O5EO.js → packages-panel-BHZOSh3s.js} +1 -1
- package/dist/assets/{pair-with-agent-modal-DdhoVv9s.js → pair-with-agent-modal-DgckrViE.js} +1 -1
- package/dist/assets/{panel-accordion-state-Cx3vYbsP.js → panel-accordion-state-9kdNootf.js} +1 -1
- package/dist/assets/{panels-CywQefR1.js → panels-Ca-tbb7P.js} +1 -1
- package/dist/assets/{process-output-BisIKywr.js → process-output-Bi9pDe1a.js} +1 -1
- package/dist/assets/{readonly-code-display-BkxE6y3G.js → readonly-code-display-ilZfA3ua.js} +1 -1
- package/dist/assets/{readonly-python-code-BsJxWR9t.js → readonly-python-code-Bqk6NhSW.js} +1 -1
- package/dist/assets/{renderShortcut-BmNAHfqT.js → renderShortcut-BnBOGXqJ.js} +1 -1
- package/dist/assets/{reveal-component-BNl5Zqif.js → reveal-component-DpoL_y06.js} +1 -1
- package/dist/assets/{run-page-RG1gHn8i.js → run-page-rnCMzZmN.js} +1 -1
- package/dist/assets/{scratchpad-panel-DnSgF--Q.js → scratchpad-panel-BBd8n8wh.js} +1 -1
- package/dist/assets/{scroll-to-bottom-button-BsJTlAOK.js → scroll-to-bottom-button-DufiYUD7.js} +1 -1
- package/dist/assets/{secrets-panel-BKccjNx4.js → secrets-panel-C5D_CNW2.js} +1 -1
- package/dist/assets/{select-4UL7AAMx.js → select-BJKJFWHk.js} +1 -1
- package/dist/assets/{session-panel-BXwF6uCv.js → session-panel-C3kmYD9D.js} +1 -1
- package/dist/assets/{skeleton-DIGKSCaR.js → skeleton-xsRIwsVr.js} +1 -1
- package/dist/assets/{snippets-panel-Bs7D-2J3.js → snippets-panel-C1fCmhNQ.js} +1 -1
- package/dist/assets/{state-DqwSj41I.js → state-CsL-gymg.js} +1 -1
- package/dist/assets/{state-C5o_oPeD.js → state-DJSqAVnx.js} +1 -1
- package/dist/assets/{swiper-component-CeAE4PvB.js → swiper-component-5Kdi1-Gn.js} +1 -1
- package/dist/assets/{switch-qLxqA0gx.js → switch-CYJ2u4G9.js} +1 -1
- package/dist/assets/{tabs-CIEoDqa7.js → tabs-DxfkQ6UI.js} +1 -1
- package/dist/assets/{terminal-9kcc2057.js → terminal-CfkxQQwT.js} +1 -1
- package/dist/assets/{tracing-PQRp5Y6N.js → tracing-BHb672Fd.js} +1 -1
- package/dist/assets/{tracing-panel-BnrbDAGz.js → tracing-panel-3JaAnsDw.js} +2 -2
- package/dist/assets/{tree-actions-C-1KQPVN.js → tree-actions-CzmLf39g.js} +1 -1
- package/dist/assets/{useAddCell-qRhXgYb3.js → useAddCell-DuzEVBJj.js} +1 -1
- package/dist/assets/{useCellActionButton-C__VM-4x.js → useCellActionButton-B3Ve1KW5.js} +1 -1
- package/dist/assets/{useDeleteCell-xTUoM-wW.js → useDeleteCell-CEtU0g91.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-DbotHB0-.js → useDependencyPanelTab-BpSWTQLC.js} +1 -1
- package/dist/assets/{useNotebookActions-DIcNvfxA.js → useNotebookActions-C3LAhEgG.js} +1 -1
- package/dist/assets/{useRunCells-Bno18PcV.js → useRunCells-omrTl5XU.js} +1 -1
- package/dist/assets/{useSplitCell-DigdAFdD.js → useSplitCell-CgXD2Gcw.js} +1 -1
- package/dist/assets/{vega-component-DnazhC4G.js → vega-component-CwdVpUdb.js} +1 -1
- package/dist/assets/write-secret-modal-GHpJRc36.js +2 -0
- package/dist/index.html +38 -38
- package/package.json +1 -1
- package/src/components/dependency-graph/__tests__/elements.test.ts +151 -0
- package/src/components/dependency-graph/custom-edge.tsx +68 -0
- package/src/components/dependency-graph/custom-node.tsx +54 -26
- package/src/components/dependency-graph/dependency-graph-tree.tsx +110 -21
- package/src/components/dependency-graph/elements.ts +225 -31
- package/src/components/dependency-graph/panels.tsx +23 -2
- package/src/components/dependency-graph/utils/__tests__/layout.test.ts +78 -0
- package/src/components/dependency-graph/utils/layout.ts +108 -18
- package/src/components/ui/__tests__/badge.test.ts +63 -0
- package/src/components/ui/__tests__/button.test.ts +19 -0
- package/src/components/ui/__tests__/menu-items.test.ts +31 -0
- package/src/components/ui/badge.tsx +9 -7
- package/src/components/ui/button.tsx +1 -0
- package/src/components/ui/combobox.tsx +1 -1
- package/src/components/ui/date-input.tsx +1 -1
- package/src/components/ui/dialog.tsx +3 -1
- package/src/components/ui/menu-items.tsx +9 -9
- package/src/components/ui/native-select.tsx +2 -2
- package/src/components/ui/navigation.tsx +1 -1
- package/src/components/ui/range-slider.tsx +5 -3
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/sheet.tsx +1 -1
- package/src/components/ui/toast.tsx +8 -5
- package/src/components/ui/toaster.tsx +2 -2
- package/src/css/globals.css +28 -0
- package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +25 -25
- package/dist/assets/badge-D_-uqy2N.js +0 -1
- package/dist/assets/button-MlJ5qApt.js +0 -1
- package/dist/assets/dependency-graph-panel-LHjxAlPl.js +0 -5
- package/dist/assets/menu-items-BGpxTb6Y.js +0 -1
- package/dist/assets/write-secret-modal-BJCzwShk.js +0 -2
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { badgeVariants } from "../badge";
|
|
5
|
+
|
|
6
|
+
describe("badgeVariants", () => {
|
|
7
|
+
it.each([
|
|
8
|
+
{
|
|
9
|
+
variant: "default" as const,
|
|
10
|
+
expected: [
|
|
11
|
+
"forced-colors:bg-[Highlight]",
|
|
12
|
+
"forced-colors:border-[Highlight]",
|
|
13
|
+
"forced-colors:text-[HighlightText]",
|
|
14
|
+
"forced-colors:hover:bg-[Highlight]",
|
|
15
|
+
"forced-colors:hover:text-[HighlightText]",
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
variant: "defaultOutline" as const,
|
|
20
|
+
expected: [
|
|
21
|
+
"forced-colors:bg-[Canvas]",
|
|
22
|
+
"forced-colors:border-[Highlight]",
|
|
23
|
+
"forced-colors:text-[CanvasText]",
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
variant: "secondary" as const,
|
|
28
|
+
expected: [
|
|
29
|
+
"forced-colors:bg-[ButtonFace]",
|
|
30
|
+
"forced-colors:border-[ButtonText]",
|
|
31
|
+
"forced-colors:text-[ButtonText]",
|
|
32
|
+
"forced-colors:hover:bg-[Highlight]",
|
|
33
|
+
"forced-colors:hover:text-[HighlightText]",
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
])("uses system colors for $variant", ({ variant, expected }) => {
|
|
37
|
+
const classes = badgeVariants({ variant });
|
|
38
|
+
|
|
39
|
+
expect(classes).toEqual(expect.stringContaining(expected.join(" ")));
|
|
40
|
+
expect(classes).toContain("forced-color-adjust-none");
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it.each(["destructive", "success", "outline"] as const)(
|
|
44
|
+
"keeps the %s variant visible without semantic colors",
|
|
45
|
+
(variant) => {
|
|
46
|
+
const classes = badgeVariants({ variant });
|
|
47
|
+
|
|
48
|
+
expect(classes).toEqual(
|
|
49
|
+
expect.stringContaining(
|
|
50
|
+
[
|
|
51
|
+
"forced-colors:bg-[Canvas]",
|
|
52
|
+
"forced-colors:border-[ButtonText]",
|
|
53
|
+
"forced-colors:text-[CanvasText]",
|
|
54
|
+
].join(" "),
|
|
55
|
+
),
|
|
56
|
+
);
|
|
57
|
+
if (variant !== "outline") {
|
|
58
|
+
expect(classes).toContain("forced-colors:hover:bg-[Highlight]");
|
|
59
|
+
expect(classes).toContain("forced-colors:hover:text-[HighlightText]");
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
);
|
|
63
|
+
});
|
|
@@ -39,4 +39,23 @@ describe("buttonVariants", () => {
|
|
|
39
39
|
expect(classes).not.toMatch(/--(?:red|grass|yellow)-/);
|
|
40
40
|
expect(classes).not.toContain("dark:");
|
|
41
41
|
});
|
|
42
|
+
|
|
43
|
+
it("uses system colors in forced-color mode", () => {
|
|
44
|
+
const classes = buttonVariants({ variant: "default" });
|
|
45
|
+
|
|
46
|
+
expect(classes).toEqual(
|
|
47
|
+
expect.stringContaining(
|
|
48
|
+
[
|
|
49
|
+
"forced-color-adjust-none",
|
|
50
|
+
"forced-colors:border-[ButtonText]",
|
|
51
|
+
"forced-colors:bg-[ButtonFace]",
|
|
52
|
+
"forced-colors:text-[ButtonText]",
|
|
53
|
+
"forced-colors:hover:bg-[Highlight]",
|
|
54
|
+
"forced-colors:hover:text-[HighlightText]",
|
|
55
|
+
"forced-colors:disabled:border-[GrayText]",
|
|
56
|
+
"forced-colors:disabled:text-[GrayText]",
|
|
57
|
+
].join(" "),
|
|
58
|
+
),
|
|
59
|
+
);
|
|
60
|
+
});
|
|
42
61
|
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import {
|
|
5
|
+
menuControlVariants,
|
|
6
|
+
menuItemVariants,
|
|
7
|
+
menuSubTriggerVariants,
|
|
8
|
+
} from "../menu-items";
|
|
9
|
+
|
|
10
|
+
describe("menu item variants", () => {
|
|
11
|
+
it.each([
|
|
12
|
+
menuSubTriggerVariants(),
|
|
13
|
+
menuControlVariants(),
|
|
14
|
+
menuItemVariants(),
|
|
15
|
+
])("styles Radix highlighted state", (classes) => {
|
|
16
|
+
expect(classes).toContain("data-[highlighted]:bg-accent");
|
|
17
|
+
expect(classes).toContain(
|
|
18
|
+
"forced-colors:data-[highlighted]:bg-[Highlight]",
|
|
19
|
+
);
|
|
20
|
+
expect(classes).toContain(
|
|
21
|
+
"forced-colors:data-[highlighted]:text-[HighlightText]",
|
|
22
|
+
);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("keeps the command item selected state", () => {
|
|
26
|
+
const classes = menuItemVariants();
|
|
27
|
+
|
|
28
|
+
expect(classes).toContain("aria-selected:bg-accent");
|
|
29
|
+
expect(classes).toContain("forced-colors:aria-selected:bg-[Highlight]");
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -6,20 +6,22 @@ import * as React from "react";
|
|
|
6
6
|
import { cn } from "@/utils/cn";
|
|
7
7
|
|
|
8
8
|
const badgeVariants = cva(
|
|
9
|
-
"inline-flex items-center border rounded-full px-2 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
9
|
+
"inline-flex items-center border rounded-full px-2 py-0.5 text-xs font-semibold transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 forced-color-adjust-none",
|
|
10
10
|
{
|
|
11
11
|
variants: {
|
|
12
12
|
variant: {
|
|
13
13
|
default:
|
|
14
|
-
"bg-primary hover:bg-primary/60 border-transparent text-primary-foreground",
|
|
15
|
-
defaultOutline:
|
|
14
|
+
"bg-primary hover:bg-primary/60 border-transparent text-primary-foreground forced-colors:bg-[Highlight] forced-colors:border-[Highlight] forced-colors:text-[HighlightText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText]",
|
|
15
|
+
defaultOutline:
|
|
16
|
+
"bg-(--blue-2) border-(--blue-8) text-(--blue-11) forced-colors:bg-[Canvas] forced-colors:border-[Highlight] forced-colors:text-[CanvasText]",
|
|
16
17
|
secondary:
|
|
17
|
-
"bg-secondary hover:bg-secondary/80 border-transparent text-secondary-foreground",
|
|
18
|
+
"bg-secondary hover:bg-secondary/80 border-transparent text-secondary-foreground forced-colors:bg-[ButtonFace] forced-colors:border-[ButtonText] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText]",
|
|
18
19
|
destructive:
|
|
19
|
-
"bg-(--red-2) border-(--red-6) text-(--red-9) hover:bg-(--red-3)",
|
|
20
|
+
"bg-(--red-2) border-(--red-6) text-(--red-9) hover:bg-(--red-3) forced-colors:bg-[Canvas] forced-colors:border-[ButtonText] forced-colors:text-[CanvasText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText]",
|
|
20
21
|
success:
|
|
21
|
-
"bg-(--grass-2) border-(--grass-5) text-(--grass-9) hover:bg-(--grass-3)",
|
|
22
|
-
outline:
|
|
22
|
+
"bg-(--grass-2) border-(--grass-5) text-(--grass-9) hover:bg-(--grass-3) forced-colors:bg-[Canvas] forced-colors:border-[ButtonText] forced-colors:text-[CanvasText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText]",
|
|
23
|
+
outline:
|
|
24
|
+
"text-foreground forced-colors:bg-[Canvas] forced-colors:border-[ButtonText] forced-colors:text-[CanvasText]",
|
|
23
25
|
},
|
|
24
26
|
},
|
|
25
27
|
defaultVariants: {
|
|
@@ -14,6 +14,7 @@ const buttonVariants = cva(
|
|
|
14
14
|
cn(
|
|
15
15
|
"disabled:opacity-50 disabled:pointer-events-none",
|
|
16
16
|
"inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",
|
|
17
|
+
"forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]",
|
|
17
18
|
),
|
|
18
19
|
{
|
|
19
20
|
variants: {
|
|
@@ -201,7 +201,7 @@ export const Combobox = <TValue,>({
|
|
|
201
201
|
id={id}
|
|
202
202
|
type="button"
|
|
203
203
|
className={cn(
|
|
204
|
-
"flex h-6 w-fit mb-1 shadow-xs-solid items-center justify-between rounded-sm border border-input bg-transparent px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground hover:shadow-sm-solid focus:outline-hidden focus:ring-1 focus:ring-ring focus:border-primary focus:shadow-md-solid",
|
|
204
|
+
"flex h-6 w-fit mb-1 shadow-xs-solid items-center justify-between rounded-sm border border-input bg-transparent px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground hover:shadow-sm-solid focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-primary focus-visible:shadow-md-solid",
|
|
205
205
|
disabled && "cursor-not-allowed opacity-50",
|
|
206
206
|
className,
|
|
207
207
|
)}
|
|
@@ -29,7 +29,7 @@ const DateSegment = ({ className, ...props }: AriaDateSegmentProps) => {
|
|
|
29
29
|
/* Disabled */
|
|
30
30
|
"data-disabled:cursor-not-allowed data-disabled:opacity-50",
|
|
31
31
|
/* Focused */
|
|
32
|
-
"data-focused:bg-accent data-focused:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
|
32
|
+
"data-focused:bg-accent data-focused:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground",
|
|
33
33
|
/* Invalid */
|
|
34
34
|
"data-invalid:data-focused:bg-destructive data-invalid:data-focused:data-placeholder:text-destructive-foreground data-invalid:data-focused:text-destructive-foreground data-invalid:data-placeholder:text-destructive data-invalid:text-destructive",
|
|
35
35
|
className,
|
|
@@ -42,6 +42,7 @@ const DialogOverlay = React.forwardRef<
|
|
|
42
42
|
ref={ref}
|
|
43
43
|
className={cn(
|
|
44
44
|
"fixed inset-0 z-50 bg-background/80 backdrop-blur-xs transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",
|
|
45
|
+
"forced-color-adjust-none forced-colors:bg-[CanvasText] forced-colors:opacity-50",
|
|
45
46
|
className,
|
|
46
47
|
)}
|
|
47
48
|
{...props}
|
|
@@ -63,13 +64,14 @@ const DialogContent = React.forwardRef<
|
|
|
63
64
|
ref={ref}
|
|
64
65
|
className={cn(
|
|
65
66
|
"fixed z-50 grid w-full gap-4 rounded-b-lg border bg-background p-6 shadow-sm animate-in data-[state=open]:fade-in-90 data-[state=open]:slide-in-from-bottom-10 sm:max-w-2xl sm:mx-4 sm:rounded-lg sm:zoom-in-90 sm:data-[state=open]:slide-in-from-bottom-0",
|
|
67
|
+
"forced-color-adjust-none forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]",
|
|
66
68
|
className,
|
|
67
69
|
)}
|
|
68
70
|
{...restoreFocus}
|
|
69
71
|
{...props}
|
|
70
72
|
>
|
|
71
73
|
{children}
|
|
72
|
-
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
|
|
74
|
+
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
|
|
73
75
|
<X className="h-4 w-4" />
|
|
74
76
|
<span className="sr-only">Close</span>
|
|
75
77
|
</DialogPrimitive.Close>
|
|
@@ -5,7 +5,7 @@ import React from "react";
|
|
|
5
5
|
import { cn } from "@/utils/cn";
|
|
6
6
|
|
|
7
7
|
export const menuContentCommon = cva(
|
|
8
|
-
"z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
|
|
8
|
+
"z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md forced-color-adjust-none forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]",
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
11
11
|
subcontent: {
|
|
@@ -16,7 +16,7 @@ export const menuContentCommon = cva(
|
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
export const menuSubTriggerVariants = cva(
|
|
19
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden
|
|
19
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:data-[state=open]:bg-[Highlight] forced-colors:data-[state=open]:text-[HighlightText]",
|
|
20
20
|
{
|
|
21
21
|
variants: {
|
|
22
22
|
inset: {
|
|
@@ -27,11 +27,11 @@ export const menuSubTriggerVariants = cva(
|
|
|
27
27
|
);
|
|
28
28
|
|
|
29
29
|
export const MENU_ITEM_DISABLED =
|
|
30
|
-
"data-disabled:pointer-events-none data-disabled:opacity-50";
|
|
30
|
+
"data-disabled:pointer-events-none data-disabled:opacity-50 forced-colors:data-disabled:text-[GrayText]";
|
|
31
31
|
|
|
32
32
|
export const menuControlVariants = cva(
|
|
33
33
|
cn(
|
|
34
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors
|
|
34
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]",
|
|
35
35
|
MENU_ITEM_DISABLED,
|
|
36
36
|
),
|
|
37
37
|
{ variants: {} },
|
|
@@ -54,7 +54,7 @@ export const menuLabelVariants = cva("px-2 py-1.5 text-sm font-semibold", {
|
|
|
54
54
|
|
|
55
55
|
export const menuItemVariants = cva(
|
|
56
56
|
cn(
|
|
57
|
-
"menu-item relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden",
|
|
57
|
+
"menu-item relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden forced-color-adjust-none forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText] forced-colors:aria-selected:bg-[Highlight] forced-colors:aria-selected:text-[HighlightText]",
|
|
58
58
|
MENU_ITEM_DISABLED,
|
|
59
59
|
),
|
|
60
60
|
{
|
|
@@ -64,13 +64,13 @@ export const menuItemVariants = cva(
|
|
|
64
64
|
},
|
|
65
65
|
variant: {
|
|
66
66
|
default:
|
|
67
|
-
"
|
|
67
|
+
"data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",
|
|
68
68
|
danger:
|
|
69
|
-
"
|
|
69
|
+
"data-[highlighted]:bg-(--red-5) data-[highlighted]:text-(--red-12) aria-selected:bg-(--red-5) aria-selected:text-(--red-12)",
|
|
70
70
|
muted:
|
|
71
|
-
"
|
|
71
|
+
"data-[highlighted]:bg-muted/70 data-[highlighted]:text-muted-foreground aria-selected:bg-muted/70 aria-selected:text-muted-foreground",
|
|
72
72
|
success:
|
|
73
|
-
"
|
|
73
|
+
"data-[highlighted]:bg-(--grass-3) data-[highlighted]:text-(--grass-11) aria-selected:bg-(--grass-3) aria-selected:text-(--grass-11)",
|
|
74
74
|
disabled: "text-muted-foreground",
|
|
75
75
|
},
|
|
76
76
|
},
|
|
@@ -6,12 +6,12 @@ import { cn } from "@/utils/cn";
|
|
|
6
6
|
import { Events } from "@/utils/events";
|
|
7
7
|
|
|
8
8
|
export const selectStyles = cva(
|
|
9
|
-
"flex h-6 w-fit mb-1 items-center justify-between rounded-sm bg-background px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer",
|
|
9
|
+
"flex h-6 w-fit mb-1 items-center justify-between rounded-sm bg-background px-2 text-sm font-prose ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer forced-color-adjust-none forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:disabled:text-[GrayText]",
|
|
10
10
|
{
|
|
11
11
|
variants: {
|
|
12
12
|
variant: {
|
|
13
13
|
default:
|
|
14
|
-
"shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid",
|
|
14
|
+
"shadow-xs-solid border border-input hover:shadow-sm-solid focus-visible:border-primary focus-visible:shadow-md-solid disabled:hover:shadow-xs-solid forced-colors:border-[ButtonText] forced-colors:disabled:border-[GrayText]",
|
|
15
15
|
ghost: "opacity-70 hover:opacity-100 focus:opacity-100",
|
|
16
16
|
},
|
|
17
17
|
},
|
|
@@ -56,7 +56,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
|
56
56
|
const NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
57
57
|
|
|
58
58
|
const navigationMenuTriggerStyle = cva(
|
|
59
|
-
"group inline-flex rounded-md bg-background px-4 py-2 text-lg font-medium text-(--slate-12) transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50",
|
|
59
|
+
"group inline-flex rounded-md bg-background px-4 py-2 text-lg font-medium text-(--slate-12) transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50",
|
|
60
60
|
{
|
|
61
61
|
variants: {
|
|
62
62
|
orientation: {
|
|
@@ -132,7 +132,7 @@ const RangeSlider = React.forwardRef<
|
|
|
132
132
|
"relative flex touch-none select-none hover:cursor-pointer",
|
|
133
133
|
"data-[orientation=horizontal]:w-full data-[orientation=horizontal]:items-center",
|
|
134
134
|
"data-[orientation=vertical]:h-full data-[orientation=vertical]:justify-center",
|
|
135
|
-
"data-disabled:cursor-not-allowed",
|
|
135
|
+
"data-disabled:cursor-not-allowed forced-color-adjust-none",
|
|
136
136
|
className,
|
|
137
137
|
)}
|
|
138
138
|
{...props}
|
|
@@ -142,6 +142,7 @@ const RangeSlider = React.forwardRef<
|
|
|
142
142
|
data-testid="track"
|
|
143
143
|
className={cn(
|
|
144
144
|
"relative grow overflow-hidden rounded-full bg-slate-200 dark:bg-accent/60",
|
|
145
|
+
"forced-colors:border forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace]",
|
|
145
146
|
"data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:w-full",
|
|
146
147
|
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2",
|
|
147
148
|
)}
|
|
@@ -150,6 +151,7 @@ const RangeSlider = React.forwardRef<
|
|
|
150
151
|
data-testid="range"
|
|
151
152
|
className={cn(
|
|
152
153
|
"absolute bg-blue-500 dark:bg-primary",
|
|
154
|
+
"forced-colors:bg-[Highlight] forced-colors:data-disabled:bg-[GrayText]",
|
|
153
155
|
"data-[orientation=horizontal]:h-full",
|
|
154
156
|
"data-[orientation=vertical]:w-full",
|
|
155
157
|
"data-disabled:opacity-50",
|
|
@@ -165,7 +167,7 @@ const RangeSlider = React.forwardRef<
|
|
|
165
167
|
<TooltipTrigger asChild={true}>
|
|
166
168
|
<SliderPrimitive.Thumb
|
|
167
169
|
data-testid="thumb"
|
|
168
|
-
className="block h-4 w-4 rounded-full shadow-xs-solid border border-blue-500 dark:border-primary dark:bg-accent bg-white hover:bg-blue-300 focus:bg-blue-300 transition-colors focus-visible:outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50"
|
|
170
|
+
className="block h-4 w-4 rounded-full shadow-xs-solid border border-blue-500 dark:border-primary dark:bg-accent bg-white hover:bg-blue-300 focus:bg-blue-300 transition-colors focus-visible:outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50 forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:data-disabled:border-[GrayText]"
|
|
169
171
|
onFocus={openActions.setTrue}
|
|
170
172
|
onBlur={openActions.setFalse}
|
|
171
173
|
onMouseEnter={openActions.setTrue}
|
|
@@ -186,7 +188,7 @@ const RangeSlider = React.forwardRef<
|
|
|
186
188
|
<TooltipTrigger asChild={true}>
|
|
187
189
|
<SliderPrimitive.Thumb
|
|
188
190
|
data-testid="thumb"
|
|
189
|
-
className="block h-4 w-4 rounded-full shadow-xs-solid border border-blue-500 dark:border-primary dark:bg-accent bg-white hover:bg-blue-300 focus:bg-blue-300 transition-colors focus-visible:outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50"
|
|
191
|
+
className="block h-4 w-4 rounded-full shadow-xs-solid border border-blue-500 dark:border-primary dark:bg-accent bg-white hover:bg-blue-300 focus:bg-blue-300 transition-colors focus-visible:outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50 forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:data-disabled:border-[GrayText]"
|
|
190
192
|
onFocus={openActions.setTrue}
|
|
191
193
|
onBlur={openActions.setFalse}
|
|
192
194
|
onMouseEnter={openActions.setTrue}
|
|
@@ -125,7 +125,7 @@ const SelectItem = React.forwardRef<
|
|
|
125
125
|
<SelectPrimitive.Item
|
|
126
126
|
ref={ref}
|
|
127
127
|
className={cn(
|
|
128
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden
|
|
128
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground forced-colors:data-[highlighted]:bg-[Highlight] forced-colors:data-[highlighted]:text-[HighlightText]",
|
|
129
129
|
MENU_ITEM_DISABLED,
|
|
130
130
|
className,
|
|
131
131
|
)}
|
|
@@ -68,7 +68,7 @@ const SheetContent = React.forwardRef<
|
|
|
68
68
|
{...props}
|
|
69
69
|
>
|
|
70
70
|
{children}
|
|
71
|
-
<SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
|
|
71
|
+
<SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
|
|
72
72
|
<Cross2Icon className="h-4 w-4" />
|
|
73
73
|
<span className="sr-only">Close</span>
|
|
74
74
|
</SheetPrimitive.Close>
|
|
@@ -26,15 +26,16 @@ const ToastViewport = React.forwardRef<
|
|
|
26
26
|
ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
|
|
27
27
|
|
|
28
28
|
const VARIANT_CLASSES = {
|
|
29
|
-
default:
|
|
29
|
+
default:
|
|
30
|
+
"bg-background border forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]",
|
|
30
31
|
danger:
|
|
31
|
-
"group destructive text-error border-destructive bg-(--red-1) shadow-md-solid shadow-error",
|
|
32
|
+
"group destructive text-error border-destructive bg-(--red-1) shadow-md-solid shadow-error forced-colors:border-[CanvasText] forced-colors:bg-[Canvas] forced-colors:text-[CanvasText]",
|
|
32
33
|
} as const satisfies Record<string, string>;
|
|
33
34
|
|
|
34
35
|
type ToastVariant = keyof typeof VARIANT_CLASSES;
|
|
35
36
|
|
|
36
37
|
const toastVariants = cva(
|
|
37
|
-
"data-[swipe=move]:transition-none group relative pointer-events-auto flex w-full items-start justify-between gap-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full",
|
|
38
|
+
"data-[swipe=move]:transition-none group relative pointer-events-auto flex w-full items-start justify-between gap-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full forced-color-adjust-none",
|
|
38
39
|
{
|
|
39
40
|
variants: {
|
|
40
41
|
variant: VARIANT_CLASSES,
|
|
@@ -76,7 +77,8 @@ const ToastAction = React.forwardRef<
|
|
|
76
77
|
<ToastPrimitives.Action
|
|
77
78
|
ref={ref}
|
|
78
79
|
className={cn(
|
|
79
|
-
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-destructive/30 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-destructive-foreground focus:group-[.destructive]:ring-destructive",
|
|
80
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-destructive/30 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-destructive-foreground focus-visible:group-[.destructive]:ring-destructive",
|
|
81
|
+
"forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]",
|
|
80
82
|
className,
|
|
81
83
|
)}
|
|
82
84
|
{...props}
|
|
@@ -91,7 +93,8 @@ const ToastClose = React.forwardRef<
|
|
|
91
93
|
<ToastPrimitives.Close
|
|
92
94
|
ref={ref}
|
|
93
95
|
className={cn(
|
|
94
|
-
"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-hidden focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-500 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600",
|
|
96
|
+
"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-500 focus-visible:group-[.destructive]:ring-red-400 focus-visible:group-[.destructive]:ring-offset-red-600",
|
|
97
|
+
"forced-colors:text-[CanvasText] forced-colors:hover:text-[CanvasText] forced-colors:group-[.destructive]:text-[CanvasText] forced-colors:hover:group-[.destructive]:text-[CanvasText]",
|
|
95
98
|
className,
|
|
96
99
|
)}
|
|
97
100
|
toast-close=""
|
|
@@ -84,8 +84,8 @@ const ToastItem = ({
|
|
|
84
84
|
className="h-4 w-4"
|
|
85
85
|
buttonClassName={cn(
|
|
86
86
|
"absolute right-8 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity",
|
|
87
|
-
"hover:text-foreground focus:opacity-100 focus:outline-hidden group-hover:opacity-100",
|
|
88
|
-
"group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-500 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600",
|
|
87
|
+
"hover:text-foreground focus:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 group-hover:opacity-100",
|
|
88
|
+
"group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-500 focus-visible:group-[.destructive]:ring-red-400 focus-visible:group-[.destructive]:ring-offset-red-600",
|
|
89
89
|
)}
|
|
90
90
|
value={() =>
|
|
91
91
|
descriptionRef.current?.innerText ??
|
package/src/css/globals.css
CHANGED
|
@@ -151,6 +151,34 @@
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
@media (prefers-reduced-motion: reduce) {
|
|
155
|
+
.marimo,
|
|
156
|
+
.marimo::before,
|
|
157
|
+
.marimo::after,
|
|
158
|
+
.marimo *,
|
|
159
|
+
.marimo *::before,
|
|
160
|
+
.marimo *::after {
|
|
161
|
+
scroll-behavior: auto !important;
|
|
162
|
+
animation-duration: 0.01ms !important;
|
|
163
|
+
animation-delay: 0s !important;
|
|
164
|
+
animation-iteration-count: 1 !important;
|
|
165
|
+
transition-duration: 0.01ms !important;
|
|
166
|
+
transition-delay: 0s !important;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.marimo .running-app-icon {
|
|
170
|
+
visibility: visible !important;
|
|
171
|
+
animation-name: none !important;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@media (forced-colors: active) {
|
|
176
|
+
.marimo :focus-visible {
|
|
177
|
+
outline: 2px solid Highlight !important;
|
|
178
|
+
outline-offset: 2px;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
154
182
|
@layer base {
|
|
155
183
|
* {
|
|
156
184
|
@apply border-border;
|