@marimo-team/frontend 0.24.1-dev114 → 0.24.1-dev116

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.
Files changed (132) hide show
  1. package/dist/assets/{CellStatus-DjaaE1KV.js → CellStatus-BnX3kFgK.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-BYgv4Vrx.js → ConnectedDataExplorerComponent-Slfh2UI3.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-ClXmeuxA.js → ErrorBoundary-CDVGFYfr.js} +1 -1
  4. package/dist/assets/{JsonOutput-6STJL9Rn.js → JsonOutput-i6wa-ZZg.js} +10 -10
  5. package/dist/assets/{LazyAnyLanguageCodeMirror-BnkWE9wV.js → LazyAnyLanguageCodeMirror-LboTfNDv.js} +2 -2
  6. package/dist/assets/{MarimoErrorOutput-BTqTZeiu.js → MarimoErrorOutput-CIYHG601.js} +1 -1
  7. package/dist/assets/{RenderHTML-DUXIAUaj.js → RenderHTML-BIg2a2gf.js} +1 -1
  8. package/dist/assets/{RunButton-aYiWB8Ga.js → RunButton-z5x8Nygi.js} +1 -1
  9. package/dist/assets/{VisuallyHidden-dPzEOlg8.js → VisuallyHidden-K_kroCIL.js} +1 -1
  10. package/dist/assets/{add-cell-with-ai-l_Dax5pU.js → add-cell-with-ai-P7MBEjnv.js} +1 -1
  11. package/dist/assets/{add-connection-dialog-CpvZ5BqX.js → add-connection-dialog-B7yGNrvC.js} +1 -1
  12. package/dist/assets/{agent-panel-CbdAoVgG.js → agent-panel-DUUWyz59.js} +1 -1
  13. package/dist/assets/{ai-model-dropdown-jVyB16Bq.js → ai-model-dropdown-BN9nyr0_.js} +1 -1
  14. package/dist/assets/alert-dialog-CA-2mBs3.js +11 -0
  15. package/dist/assets/{any-language-editor-B6cFLupW.js → any-language-editor-DflLjPSQ.js} +1 -1
  16. package/dist/assets/{app-config-button-CHSwEEzP.js → app-config-button-vxdvoC0x.js} +1 -1
  17. package/dist/assets/badge-BSgtkC2e.js +1 -0
  18. package/dist/assets/{blob-CoYb7D0i.js → blob-DDxD75AS.js} +1 -1
  19. package/dist/assets/button-Dh8EwhsF.js +1 -0
  20. package/dist/assets/{cache-panel-mVo7M8xm.js → cache-panel-DqgtC98s.js} +1 -1
  21. package/dist/assets/{cell-editor-Bo1CBkuH.js → cell-editor-D6Cyy4UF.js} +1 -1
  22. package/dist/assets/{cell-link-CJvbR4gk.js → cell-link-B7DFi5Hf.js} +1 -1
  23. package/dist/assets/{cells-C3Vs2g0_.js → cells-CS_eEQ19.js} +4 -4
  24. package/dist/assets/{chat-display-CkS1h-qA.js → chat-display-CtnwRDHx.js} +1 -1
  25. package/dist/assets/{chat-panel-Bl8KhsjW.js → chat-panel-DScfSsWl.js} +1 -1
  26. package/dist/assets/{chat-ui-lhVS3XhN.js → chat-ui-9G115u_7.js} +1 -1
  27. package/dist/assets/{circle-BScTJE-Z.js → circle-ByJdIf5p.js} +1 -1
  28. package/dist/assets/{column-preview-CBydN0D3.js → column-preview-BVtft2uw.js} +1 -1
  29. package/dist/assets/{command-palette-D0yWoZzd.js → command-palette-uGrOQhzq.js} +1 -1
  30. package/dist/assets/{common-BANLqpaV.js → common-CQLiJ8JV.js} +1 -1
  31. package/dist/assets/{components-DC6fLfDw.js → components-B5BY9RR4.js} +1 -1
  32. package/dist/assets/config-CJhe6_P2.js +1 -0
  33. package/dist/assets/{copy-icon-zfaCsLjV.js → copy-icon-z8fuTE3w.js} +1 -1
  34. package/dist/assets/{datasource-DB4KqePX.js → datasource-Br61QFhd.js} +1 -1
  35. package/dist/assets/{dependency-graph-panel-D_rv_6mb.js → dependency-graph-panel-DoAAA7Y1.js} +1 -1
  36. package/dist/assets/{dist-ConG15vZ.js → dist-DzCQtGkt.js} +1 -1
  37. package/dist/assets/{documentation-panel-2myTueGx.js → documentation-panel-CYUIPHeO.js} +1 -1
  38. package/dist/assets/{download-VyhuV4Af.js → download-D2Ha98tp.js} +1 -1
  39. package/dist/assets/dropdown-menu-C40jM9o4.js +1 -0
  40. package/dist/assets/{edit-page-CIBvi-g9.js → edit-page-ClGPnVOK.js} +4 -4
  41. package/dist/assets/{error-banner-BsjSLKyr.js → error-banner-Dw5YY9wq.js} +1 -1
  42. package/dist/assets/{error-entries-DZjQ7yIb.js → error-entries-ooCnKQtX.js} +1 -1
  43. package/dist/assets/{error-panel-BpAXL0Jx.js → error-panel-CRtClD-k.js} +1 -1
  44. package/dist/assets/{es-DP79Qs0u.js → es-CrFhA96G.js} +1 -1
  45. package/dist/assets/{file-explorer-panel-BN6gd4XO.js → file-explorer-panel-DB17Zw1x.js} +1 -1
  46. package/dist/assets/{file-icons-DqdK7VJg.js → file-icons-D0QvDCq_.js} +1 -1
  47. package/dist/assets/{file-name-input-oiyzcfEJ.js → file-name-input-DsaNomb7.js} +1 -1
  48. package/dist/assets/{floating-outline-DPSwhBkV.js → floating-outline-FQva8xB9.js} +1 -1
  49. package/dist/assets/{fullscreen-BFfuaW3H.js → fullscreen-BH2jz-F4.js} +5 -5
  50. package/dist/assets/{gallery-page-7DdjmUx5.js → gallery-page-LX7vPBcZ.js} +1 -1
  51. package/dist/assets/{glide-data-editor-Di4wZ4hd.js → glide-data-editor-DgWXD84U.js} +1 -1
  52. package/dist/assets/{home-page-Bp96aSro.js → home-page-DtRwYsH-.js} +1 -1
  53. package/dist/assets/{index-KEC-OVKY.js → index-BphlL86Q.js} +5 -5
  54. package/dist/assets/index-D1E_LKIW.css +2 -0
  55. package/dist/assets/{input-BBJ8nAOd.js → input-C-RazPBA.js} +1 -1
  56. package/dist/assets/{layout-Cx8C7K25.js → layout-C4U2fp5O.js} +3 -3
  57. package/dist/assets/{logs-panel-D0bWZKWJ.js → logs-panel-BPfZpDxG.js} +1 -1
  58. package/dist/assets/{markdown-renderer-CZ3YygMD.js → markdown-renderer-CbdXI4uO.js} +1 -1
  59. package/dist/assets/menu-items-BSRA2YI9.js +1 -0
  60. package/dist/assets/{mermaid-Bx9Qyize.js → mermaid-BJLFqJtJ.js} +1 -1
  61. package/dist/assets/{name-cell-input-Bu4JMe_U.js → name-cell-input-CObHxs3L.js} +1 -1
  62. package/dist/assets/{outline-panel-C1xIywWA.js → outline-panel-Dyr_2yws.js} +1 -1
  63. package/dist/assets/{packages-panel-DTJ-O5EO.js → packages-panel-Cato7lRU.js} +1 -1
  64. package/dist/assets/{pair-with-agent-modal-DdhoVv9s.js → pair-with-agent-modal-bYFRKgrw.js} +1 -1
  65. package/dist/assets/{panel-accordion-state-Cx3vYbsP.js → panel-accordion-state-CB4RQUbp.js} +1 -1
  66. package/dist/assets/{panels-CywQefR1.js → panels-CaAkyFQ2.js} +1 -1
  67. package/dist/assets/{process-output-BisIKywr.js → process-output-BvjsWKqP.js} +1 -1
  68. package/dist/assets/{readonly-code-display-BkxE6y3G.js → readonly-code-display-D0VodUl8.js} +1 -1
  69. package/dist/assets/{readonly-python-code-BsJxWR9t.js → readonly-python-code-DlajH1tG.js} +1 -1
  70. package/dist/assets/{renderShortcut-BmNAHfqT.js → renderShortcut-DCEcfEd4.js} +1 -1
  71. package/dist/assets/{reveal-component-BNl5Zqif.js → reveal-component-NBGQ6pCq.js} +1 -1
  72. package/dist/assets/{run-page-RG1gHn8i.js → run-page-TDSGBzJ2.js} +1 -1
  73. package/dist/assets/{scratchpad-panel-DnSgF--Q.js → scratchpad-panel-smtKLHdh.js} +1 -1
  74. package/dist/assets/{scroll-to-bottom-button-BsJTlAOK.js → scroll-to-bottom-button-DufiYUD7.js} +1 -1
  75. package/dist/assets/{secrets-panel-BKccjNx4.js → secrets-panel-CWX3By7x.js} +1 -1
  76. package/dist/assets/select-nLt2y0Sw.js +1 -0
  77. package/dist/assets/{session-panel-BXwF6uCv.js → session-panel-BEpBnPuv.js} +1 -1
  78. package/dist/assets/{skeleton-DIGKSCaR.js → skeleton-BVafJh4G.js} +1 -1
  79. package/dist/assets/{snippets-panel-Bs7D-2J3.js → snippets-panel-D5Fdmjit.js} +1 -1
  80. package/dist/assets/{state-DqwSj41I.js → state-CbrP-RfI.js} +1 -1
  81. package/dist/assets/{state-C5o_oPeD.js → state-D2Q_Pzdk.js} +1 -1
  82. package/dist/assets/{swiper-component-CeAE4PvB.js → swiper-component-5Kdi1-Gn.js} +1 -1
  83. package/dist/assets/{switch-qLxqA0gx.js → switch-BzJYj8tz.js} +1 -1
  84. package/dist/assets/{tabs-CIEoDqa7.js → tabs-Cy1qXLzH.js} +1 -1
  85. package/dist/assets/{terminal-9kcc2057.js → terminal-CWTEGSbX.js} +1 -1
  86. package/dist/assets/{tooltip-BO5vfMvm.js → tooltip-BUtPzKB4.js} +1 -1
  87. package/dist/assets/{tracing-PQRp5Y6N.js → tracing-htk2wAUH.js} +1 -1
  88. package/dist/assets/{tracing-panel-BnrbDAGz.js → tracing-panel-D_FtT8xh.js} +2 -2
  89. package/dist/assets/{tree-actions-C-1KQPVN.js → tree-actions-CIKsGmOE.js} +1 -1
  90. package/dist/assets/{useAddCell-qRhXgYb3.js → useAddCell-B9V9LPof.js} +1 -1
  91. package/dist/assets/{useCellActionButton-C__VM-4x.js → useCellActionButton-Byz1dxEY.js} +1 -1
  92. package/dist/assets/{useDeleteCell-xTUoM-wW.js → useDeleteCell-xIU8YxOm.js} +1 -1
  93. package/dist/assets/{useDependencyPanelTab-DbotHB0-.js → useDependencyPanelTab-CTX4KBOX.js} +1 -1
  94. package/dist/assets/{useNotebookActions-DIcNvfxA.js → useNotebookActions-CEWtEB4v.js} +1 -1
  95. package/dist/assets/{useRunCells-Bno18PcV.js → useRunCells-DpLEou4d.js} +1 -1
  96. package/dist/assets/{useSplitCell-DigdAFdD.js → useSplitCell-DIMMMQzM.js} +1 -1
  97. package/dist/assets/{vega-component-DnazhC4G.js → vega-component-D23FlAOS.js} +1 -1
  98. package/dist/assets/write-secret-modal-C2V1d4p-.js +2 -0
  99. package/dist/index.html +42 -42
  100. package/package.json +1 -1
  101. package/src/components/editor/Output.tsx +40 -0
  102. package/src/components/editor/__tests__/Output.test.tsx +85 -2
  103. package/src/components/ui/__tests__/badge.test.ts +63 -0
  104. package/src/components/ui/__tests__/button.test.ts +19 -0
  105. package/src/components/ui/__tests__/fullscreen.test.tsx +88 -0
  106. package/src/components/ui/__tests__/menu-items.test.ts +31 -0
  107. package/src/components/ui/badge.tsx +9 -7
  108. package/src/components/ui/button.tsx +1 -0
  109. package/src/components/ui/combobox.tsx +1 -1
  110. package/src/components/ui/date-input.tsx +1 -1
  111. package/src/components/ui/dialog.tsx +3 -1
  112. package/src/components/ui/fullscreen.tsx +43 -1
  113. package/src/components/ui/menu-items.tsx +9 -9
  114. package/src/components/ui/native-select.tsx +2 -2
  115. package/src/components/ui/navigation.tsx +1 -1
  116. package/src/components/ui/range-slider.tsx +5 -3
  117. package/src/components/ui/select.tsx +1 -1
  118. package/src/components/ui/sheet.tsx +1 -1
  119. package/src/components/ui/toast.tsx +8 -5
  120. package/src/components/ui/toaster.tsx +2 -2
  121. package/src/css/globals.css +28 -0
  122. package/src/hooks/useEventListener.ts +1 -1
  123. package/src/plugins/impl/data-frames/forms/__tests__/__snapshots__/form.test.tsx.snap +25 -25
  124. package/dist/assets/alert-dialog-D_btUJmY.js +0 -11
  125. package/dist/assets/badge-D_-uqy2N.js +0 -1
  126. package/dist/assets/button-MlJ5qApt.js +0 -1
  127. package/dist/assets/config-BzPQfGBM.js +0 -1
  128. package/dist/assets/dropdown-menu-DnX3jo0y.js +0 -1
  129. package/dist/assets/index-BkIXRAbi.css +0 -2
  130. package/dist/assets/menu-items-BGpxTb6Y.js +0 -1
  131. package/dist/assets/select-4UL7AAMx.js +0 -1
  132. package/dist/assets/write-secret-modal-BJCzwShk.js +0 -2
@@ -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>
@@ -4,7 +4,7 @@ import type { Popover } from "radix-ui";
4
4
 
5
5
  type PopoverContentProps = Popover.PopoverContentProps;
6
6
 
7
- import React, { useState } from "react";
7
+ import React, { type RefObject, useState, useSyncExternalStore } from "react";
8
8
  import { isInVscodeExtension } from "@/core/vscode/is-in-vscode";
9
9
  import { useEventListener } from "@/hooks/useEventListener";
10
10
 
@@ -27,6 +27,48 @@ export function useFullScreenElement() {
27
27
  return fullScreenElement;
28
28
  }
29
29
 
30
+ const fullScreenSubscribers = new Set<() => void>();
31
+
32
+ function notifyFullScreenSubscribers() {
33
+ for (const subscriber of fullScreenSubscribers) {
34
+ subscriber();
35
+ }
36
+ }
37
+
38
+ /**
39
+ * One document listener serves every subscriber, so the cost of a full screen
40
+ * transition does not grow with the number of mounted components.
41
+ */
42
+ function subscribeToFullScreen(onStoreChange: () => void) {
43
+ if (fullScreenSubscribers.size === 0) {
44
+ document.addEventListener("fullscreenchange", notifyFullScreenSubscribers);
45
+ }
46
+ fullScreenSubscribers.add(onStoreChange);
47
+
48
+ return () => {
49
+ fullScreenSubscribers.delete(onStoreChange);
50
+ if (fullScreenSubscribers.size === 0) {
51
+ document.removeEventListener(
52
+ "fullscreenchange",
53
+ notifyFullScreenSubscribers,
54
+ );
55
+ }
56
+ };
57
+ }
58
+
59
+ /**
60
+ * Whether the given element is the full screen element.
61
+ *
62
+ * The hook returns a boolean, so a component re-renders only when its own
63
+ * element enters or leaves full screen.
64
+ */
65
+ export function useIsFullScreen(ref: RefObject<Element | null>): boolean {
66
+ return useSyncExternalStore(subscribeToFullScreen, () => {
67
+ const fullScreenElement = document.fullscreenElement;
68
+ return fullScreenElement !== null && fullScreenElement === ref.current;
69
+ });
70
+ }
71
+
30
72
  /**
31
73
  * HOC wrapping a Portal component to use the
32
74
  * full screen element as the container if we are in full screen mode
@@ -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 focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
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 focus:bg-accent focus:text-accent-foreground",
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
- "focus:bg-accent focus:text-accent-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",
67
+ "data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",
68
68
  danger:
69
- "focus:bg-(--red-5) focus:text-(--red-12) aria-selected:bg-(--red-5) aria-selected:text-(--red-12)",
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
- "focus:bg-muted/70 focus:text-muted-foreground aria-selected:bg-muted/70 aria-selected:text-muted-foreground",
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
- "focus:bg-(--grass-3) focus:text-(--grass-11) aria-selected:bg-(--grass-3) aria-selected:text-(--grass-11)",
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 focus:bg-accent focus:text-accent-foreground",
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: "bg-background border",
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 ??
@@ -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;
@@ -17,7 +17,7 @@ export function isRefObject<T>(target: unknown): target is RefObject<T | null> {
17
17
  }
18
18
 
19
19
  export function useEventListener<K extends keyof DocumentEventMap>(
20
- targetValue: Document,
20
+ targetValue: Document | null,
21
21
  type: K,
22
22
  listener: (ev: DocumentEventMap[K]) => unknown,
23
23
  options?: boolean | AddEventListenerOptions,
@@ -32,7 +32,7 @@ exports[`renderZodSchema > should render a form aggregate 1`] = `
32
32
  aria-disabled="false"
33
33
  aria-expanded="false"
34
34
  aria-haspopup="dialog"
35
- class="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 min-w-[180px]"
35
+ class="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 min-w-[180px]"
36
36
  data-state="closed"
37
37
  id="_r_26_-form-item"
38
38
  type="button"
@@ -88,7 +88,7 @@ exports[`renderZodSchema > should render a form aggregate 1`] = `
88
88
  aria-disabled="false"
89
89
  aria-expanded="false"
90
90
  aria-haspopup="dialog"
91
- class="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 min-w-[180px]"
91
+ class="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 min-w-[180px]"
92
92
  data-state="closed"
93
93
  id="_r_28_-form-item"
94
94
  type="button"
@@ -155,7 +155,7 @@ exports[`renderZodSchema > should render a form column_conversion 1`] = `
155
155
  aria-autocomplete="none"
156
156
  aria-controls="radix-_r_e_"
157
157
  aria-expanded="false"
158
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
158
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
159
159
  data-placeholder=""
160
160
  data-state="closed"
161
161
  dir="ltr"
@@ -204,7 +204,7 @@ exports[`renderZodSchema > should render a form column_conversion 1`] = `
204
204
  aria-autocomplete="none"
205
205
  aria-controls="radix-_r_g_"
206
206
  aria-expanded="false"
207
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
207
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
208
208
  data-placeholder=""
209
209
  data-state="closed"
210
210
  dir="ltr"
@@ -337,7 +337,7 @@ exports[`renderZodSchema > should render a form expand_dict 1`] = `
337
337
  aria-autocomplete="none"
338
338
  aria-controls="radix-_r_2r_"
339
339
  aria-expanded="false"
340
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
340
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
341
341
  data-placeholder=""
342
342
  data-state="closed"
343
343
  dir="ltr"
@@ -406,7 +406,7 @@ exports[`renderZodSchema > should render a form explode_columns 1`] = `
406
406
  aria-disabled="false"
407
407
  aria-expanded="false"
408
408
  aria-haspopup="dialog"
409
- class="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 min-w-[180px]"
409
+ class="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 min-w-[180px]"
410
410
  data-state="closed"
411
411
  id="_r_2o_-form-item"
412
412
  type="button"
@@ -539,7 +539,7 @@ exports[`renderZodSchema > should render a form filter_rows 1`] = `
539
539
  </div>
540
540
  <div>
541
541
  <button
542
- class="disabled:opacity-50 disabled:pointer-events-none inline-flex items-center justify-center font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background opacity-80 hover:opacity-100 active:opacity-100 h-7 px-2 rounded-md text-xs hover:text-accent-foreground"
542
+ class="disabled:opacity-50 disabled:pointer-events-none inline-flex items-center justify-center font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background 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] opacity-80 hover:opacity-100 active:opacity-100 h-7 px-2 rounded-md text-xs hover:text-accent-foreground"
543
543
  data-testid="marimo-plugin-data-frames-add-array-item"
544
544
  >
545
545
  <svg
@@ -604,7 +604,7 @@ exports[`renderZodSchema > should render a form group_by 1`] = `
604
604
  aria-disabled="false"
605
605
  aria-expanded="false"
606
606
  aria-haspopup="dialog"
607
- class="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 min-w-[180px]"
607
+ class="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 min-w-[180px]"
608
608
  data-state="closed"
609
609
  id="_r_1o_-form-item"
610
610
  type="button"
@@ -660,7 +660,7 @@ exports[`renderZodSchema > should render a form group_by 1`] = `
660
660
  aria-disabled="false"
661
661
  aria-expanded="false"
662
662
  aria-haspopup="dialog"
663
- class="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 min-w-[180px]"
663
+ class="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 min-w-[180px]"
664
664
  data-state="closed"
665
665
  id="_r_1q_-form-item"
666
666
  type="button"
@@ -710,7 +710,7 @@ exports[`renderZodSchema > should render a form group_by 1`] = `
710
710
  aria-autocomplete="none"
711
711
  aria-controls="radix-_r_1t_"
712
712
  aria-expanded="false"
713
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
713
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
714
714
  data-placeholder=""
715
715
  data-state="closed"
716
716
  dir="ltr"
@@ -812,7 +812,7 @@ exports[`renderZodSchema > should render a form pivot 1`] = `
812
812
  aria-disabled="false"
813
813
  aria-expanded="false"
814
814
  aria-haspopup="dialog"
815
- class="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 min-w-[180px]"
815
+ class="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 min-w-[180px]"
816
816
  data-state="closed"
817
817
  id="_r_3a_-form-item"
818
818
  type="button"
@@ -868,7 +868,7 @@ exports[`renderZodSchema > should render a form pivot 1`] = `
868
868
  aria-disabled="false"
869
869
  aria-expanded="false"
870
870
  aria-haspopup="dialog"
871
- class="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 min-w-[180px]"
871
+ class="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 min-w-[180px]"
872
872
  data-state="closed"
873
873
  id="_r_3c_-form-item"
874
874
  type="button"
@@ -924,7 +924,7 @@ exports[`renderZodSchema > should render a form pivot 1`] = `
924
924
  aria-disabled="false"
925
925
  aria-expanded="false"
926
926
  aria-haspopup="dialog"
927
- class="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 min-w-[180px]"
927
+ class="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 min-w-[180px]"
928
928
  data-state="closed"
929
929
  id="_r_3e_-form-item"
930
930
  type="button"
@@ -974,7 +974,7 @@ exports[`renderZodSchema > should render a form pivot 1`] = `
974
974
  aria-autocomplete="none"
975
975
  aria-controls="radix-_r_3h_"
976
976
  aria-expanded="false"
977
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
977
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
978
978
  data-placeholder=""
979
979
  data-state="closed"
980
980
  dir="ltr"
@@ -1039,7 +1039,7 @@ exports[`renderZodSchema > should render a form rename_column 1`] = `
1039
1039
  aria-autocomplete="none"
1040
1040
  aria-controls="radix-_r_6_"
1041
1041
  aria-expanded="false"
1042
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
1042
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
1043
1043
  data-placeholder=""
1044
1044
  data-state="closed"
1045
1045
  dir="ltr"
@@ -1217,7 +1217,7 @@ exports[`renderZodSchema > should render a form sample_rows 1`] = `
1217
1217
  class="flex flex-row align-start"
1218
1218
  >
1219
1219
  <button
1220
- class="disabled:opacity-50 disabled:pointer-events-none inline-flex items-center justify-center font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background bg-secondary text-secondary-foreground hover:bg-secondary/80 border border-input shadow-xs active:shadow-none h-7 px-2 rounded-md text-xs"
1220
+ class="disabled:opacity-50 disabled:pointer-events-none inline-flex items-center justify-center font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background 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] bg-secondary text-secondary-foreground hover:bg-secondary/80 border border-input shadow-xs active:shadow-none h-7 px-2 rounded-md text-xs"
1221
1221
  data-testid="marimo-plugin-data-frames-random-number-button"
1222
1222
  >
1223
1223
  <svg
@@ -1319,7 +1319,7 @@ exports[`renderZodSchema > should render a form select_columns 1`] = `
1319
1319
  aria-disabled="false"
1320
1320
  aria-expanded="false"
1321
1321
  aria-haspopup="dialog"
1322
- class="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 min-w-[180px]"
1322
+ class="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 min-w-[180px]"
1323
1323
  data-state="closed"
1324
1324
  id="_r_3_-form-item"
1325
1325
  type="button"
@@ -1371,7 +1371,7 @@ exports[`renderZodSchema > should render a form shuffle_rows 1`] = `
1371
1371
  class="flex flex-row align-start"
1372
1372
  >
1373
1373
  <button
1374
- class="disabled:opacity-50 disabled:pointer-events-none inline-flex items-center justify-center font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background bg-secondary text-secondary-foreground hover:bg-secondary/80 border border-input shadow-xs active:shadow-none h-7 px-2 rounded-md text-xs"
1374
+ class="disabled:opacity-50 disabled:pointer-events-none inline-flex items-center justify-center font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background 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] bg-secondary text-secondary-foreground hover:bg-secondary/80 border border-input shadow-xs active:shadow-none h-7 px-2 rounded-md text-xs"
1375
1375
  data-testid="marimo-plugin-data-frames-random-number-button"
1376
1376
  >
1377
1377
  <svg
@@ -1436,7 +1436,7 @@ exports[`renderZodSchema > should render a form sort_column 1`] = `
1436
1436
  aria-autocomplete="none"
1437
1437
  aria-controls="radix-_r_1e_"
1438
1438
  aria-expanded="false"
1439
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
1439
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
1440
1440
  data-placeholder=""
1441
1441
  data-state="closed"
1442
1442
  dir="ltr"
@@ -1607,7 +1607,7 @@ exports[`renderZodSchema > should render a form unique 1`] = `
1607
1607
  aria-disabled="false"
1608
1608
  aria-expanded="false"
1609
1609
  aria-haspopup="dialog"
1610
- class="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 min-w-[180px]"
1610
+ class="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 min-w-[180px]"
1611
1611
  data-state="closed"
1612
1612
  id="_r_31_-form-item"
1613
1613
  type="button"
@@ -1657,7 +1657,7 @@ exports[`renderZodSchema > should render a form unique 1`] = `
1657
1657
  aria-autocomplete="none"
1658
1658
  aria-controls="radix-_r_34_"
1659
1659
  aria-expanded="false"
1660
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
1660
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
1661
1661
  data-placeholder=""
1662
1662
  data-state="closed"
1663
1663
  dir="ltr"
@@ -1711,7 +1711,7 @@ exports[`renders custom forms column_id 1`] = `
1711
1711
  aria-autocomplete="none"
1712
1712
  aria-controls="radix-_r_3q_"
1713
1713
  aria-expanded="false"
1714
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
1714
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
1715
1715
  data-placeholder=""
1716
1716
  data-state="closed"
1717
1717
  dir="ltr"
@@ -1767,7 +1767,7 @@ exports[`renders custom forms column_id_array 1`] = `
1767
1767
  aria-disabled="false"
1768
1768
  aria-expanded="false"
1769
1769
  aria-haspopup="dialog"
1770
- class="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 min-w-[180px]"
1770
+ class="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 min-w-[180px]"
1771
1771
  data-state="closed"
1772
1772
  id="_r_40_-form-item"
1773
1773
  type="button"
@@ -1818,7 +1818,7 @@ exports[`renders custom forms column_id_dot_array 1`] = `
1818
1818
  aria-disabled="false"
1819
1819
  aria-expanded="false"
1820
1820
  aria-haspopup="dialog"
1821
- class="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 min-w-[180px]"
1821
+ class="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 min-w-[180px]"
1822
1822
  data-state="closed"
1823
1823
  id="_r_42_-form-item"
1824
1824
  type="button"
@@ -1872,7 +1872,7 @@ exports[`renders custom forms column_id_optional 1`] = `
1872
1872
  aria-autocomplete="none"
1873
1873
  aria-controls="radix-_r_45_"
1874
1874
  aria-expanded="false"
1875
- class="flex h-6 w-fit 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 shadow-xs-solid border border-input hover:shadow-sm-solid focus:border-primary focus:shadow-md-solid disabled:hover:shadow-xs-solid mb-0 min-w-[180px]"
1875
+ class="flex h-6 w-fit 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] 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] mb-0 min-w-[180px]"
1876
1876
  data-placeholder=""
1877
1877
  data-state="closed"
1878
1878
  dir="ltr"
@@ -1,11 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CBDbhulC.js";import{t as n}from"./compiler-runtime-CYIjoINj.js";import{i as r,o as i,r as a}from"./useEventListener-92uWqz-P.js";import{t as o}from"./cn-ldLVeaqm.js";import{t as s}from"./jsx-runtime-B74pBk57.js";import{C as c,S as l,_ as u,c as d,d as ee,f as te,m as ne,o as re,r as ie,s as ae,u as oe,v as f,w as p,x as m,y as se}from"./fullscreen-BFfuaW3H.js";import{n as h}from"./button-MlJ5qApt.js";var g=e(t(),1),_=s(),v=`Dialog`,[y,b]=c(v),[ce,x]=y(v),le=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=g.useRef(null),c=g.useRef(null),[l,d]=se({prop:r,defaultProp:i??!1,onChange:a,caller:v});return(0,_.jsx)(ce,{scope:t,triggerRef:s,contentRef:c,contentId:u(),titleId:u(),descriptionId:u(),open:l,onOpenChange:d,onOpenToggle:g.useCallback(()=>d(e=>!e),[d]),modal:o,children:n})};le.displayName=v;var ue=`DialogTrigger`,S=g.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=x(ue,n),o=i(t,a.triggerRef);return(0,_.jsx)(p.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.contentId,"data-state":L(a.open),...r,ref:o,onClick:m(e.onClick,a.onOpenToggle)})});S.displayName=ue;var C=`DialogPortal`,[de,w]=y(C,{forceMount:void 0}),T=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=x(C,t);return(0,_.jsx)(de,{scope:t,forceMount:n,children:g.Children.map(r,e=>(0,_.jsx)(f,{present:n||a.open,children:(0,_.jsx)(ee,{asChild:!0,container:i,children:e})}))})};T.displayName=C;var E=`DialogOverlay`,D=g.forwardRef((e,t)=>{let n=w(E,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=x(E,e.__scopeDialog);return a.modal?(0,_.jsx)(f,{present:r||a.open,children:(0,_.jsx)(pe,{...i,ref:t})}):null});D.displayName=E;var fe=a(`DialogOverlay.RemoveScroll`),pe=g.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=x(E,n);return(0,_.jsx)(d,{as:fe,allowPinchZoom:!0,shards:[i.contentRef],children:(0,_.jsx)(p.div,{"data-state":L(i.open),...r,ref:t,style:{pointerEvents:`auto`,...r.style}})})}),O=`DialogContent`,k=g.forwardRef((e,t)=>{let n=w(O,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=x(O,e.__scopeDialog);return(0,_.jsx)(f,{present:r||a.open,children:a.modal?(0,_.jsx)(me,{...i,ref:t}):(0,_.jsx)(he,{...i,ref:t})})});k.displayName=O;var me=g.forwardRef((e,t)=>{let n=x(O,e.__scopeDialog),r=g.useRef(null),a=i(t,n.contentRef,r);return g.useEffect(()=>{let e=r.current;if(e)return ae(e)},[]),(0,_.jsx)(A,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:m(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:m(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:m(e.onFocusOutside,e=>e.preventDefault())})}),he=g.forwardRef((e,t)=>{let n=x(O,e.__scopeDialog),r=g.useRef(!1),i=g.useRef(!1);return(0,_.jsx)(A,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),A=g.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:o,...s}=e,c=x(O,n),l=g.useRef(null),u=i(t,l);return oe(),(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(te,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:o,children:(0,_.jsx)(ne,{role:`dialog`,id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":L(c.open),...s,ref:u,onDismiss:()=>c.onOpenChange(!1)})}),(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(_e,{titleId:c.titleId}),(0,_.jsx)(ye,{contentRef:l,descriptionId:c.descriptionId})]})]})}),j=`DialogTitle`,M=g.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=x(j,n);return(0,_.jsx)(p.h2,{id:i.titleId,...r,ref:t})});M.displayName=j;var N=`DialogDescription`,P=g.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=x(N,n);return(0,_.jsx)(p.p,{id:i.descriptionId,...r,ref:t})});P.displayName=N;var F=`DialogClose`,I=g.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=x(F,n);return(0,_.jsx)(p.button,{type:`button`,...r,ref:t,onClick:m(e.onClick,()=>i.onOpenChange(!1))})});I.displayName=F;function L(e){return e?`open`:`closed`}var R=`DialogTitleWarning`,[ge,z]=l(R,{contentName:O,titleName:j,docsSlug:`dialog`}),_e=({titleId:e})=>{let t=z(R),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
2
-
3
- If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
4
-
5
- For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return g.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ve=`DialogDescriptionWarning`,ye=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${z(ve).contentName}}.`;return g.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},B=le,V=S,H=T,U=D,W=k,G=M,K=P,q=I,J=`AlertDialog`,[be,xe]=c(J,[b]),Y=b(),X=e=>{let{__scopeAlertDialog:t,...n}=e,r=Y(t);return(0,_.jsx)(B,{...r,...n,modal:!0})};X.displayName=J;var Se=`AlertDialogTrigger`,Ce=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Y(n);return(0,_.jsx)(V,{...i,...r,ref:t})});Ce.displayName=Se;var we=`AlertDialogPortal`,Te=e=>{let{__scopeAlertDialog:t,...n}=e,r=Y(t);return(0,_.jsx)(H,{...r,...n})};Te.displayName=we;var Ee=`AlertDialogOverlay`,De=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Y(n);return(0,_.jsx)(U,{...i,...r,ref:t})});De.displayName=Ee;var Z=`AlertDialogContent`,[Oe,ke]=be(Z),Ae=r(`AlertDialogContent`),je=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:r,...a}=e,o=Y(n),s=g.useRef(null),c=i(t,s),l=g.useRef(null);return(0,_.jsx)(ge,{contentName:Z,titleName:Me,docsSlug:`alert-dialog`,children:(0,_.jsx)(Oe,{scope:n,cancelRef:l,children:(0,_.jsxs)(W,{role:`alertdialog`,...o,...a,ref:c,onOpenAutoFocus:m(a.onOpenAutoFocus,e=>{e.preventDefault(),l.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,_.jsx)(Ae,{children:r}),(0,_.jsx)(Be,{contentRef:s})]})})})});je.displayName=Z;var Me=`AlertDialogTitle`,Ne=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Y(n);return(0,_.jsx)(G,{...i,...r,ref:t})});Ne.displayName=Me;var Pe=`AlertDialogDescription`,Fe=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Y(n);return(0,_.jsx)(K,{...i,...r,ref:t})});Fe.displayName=Pe;var Ie=`AlertDialogAction`,Le=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Y(n);return(0,_.jsx)(q,{...i,...r,ref:t})});Le.displayName=Ie;var Re=`AlertDialogCancel`,ze=g.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=ke(Re,n),o=Y(n),s=i(t,a);return(0,_.jsx)(q,{...o,...r,ref:s})});ze.displayName=Re;var Be=({contentRef:e})=>{let t=`\`${Z}\` requires a description for the component to be accessible for screen reader users.
6
-
7
- You can add a description to the \`${Z}\` by passing a \`${Pe}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
8
-
9
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Z}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
10
-
11
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return g.useEffect(()=>{document.getElementById(e.current?.getAttribute(`aria-describedby`))||console.warn(t)},[t,e]),null},Ve=X,He=Ce,Ue=Te,We=De,Ge=je,Q=Le,Ke=ze,qe=Ne,Je=Fe,$=n();function Ye(){let e=(0,$.c)(3),[t,n]=(0,g.useState)(null),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{n(document.activeElement)},e[0]=r):r=e[0];let i=r,a;return e[1]===t?a=e[2]:(a={onOpenAutoFocus:i,onCloseAutoFocus:e=>{document.activeElement===document.body&&(t instanceof HTMLElement&&t.focus(),e.preventDefault())}},e[1]=t,e[2]=a),a}var Xe=Ve,Ze=He,Qe=ie(({children:e,...t})=>(0,_.jsx)(Ue,{...t,children:(0,_.jsx)(re,{children:(0,_.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-end justify-center sm:items-start sm:top-[15%]`,children:e})})}));Qe.displayName=Ue.displayName;var $e=g.forwardRef((e,t)=>{let n=(0,$.c)(9),r,i;if(n[0]!==e){let{className:t,children:a,...o}=e;r=t,i=o,n[0]=e,n[1]=r,n[2]=i}else r=n[1],i=n[2];let a;n[3]===r?a=n[4]:(a=o(`fixed inset-0 z-50 bg-background/80 backdrop-blur-xs transition-opacity animate-in fade-in`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(We,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});$e.displayName=We.displayName;var et=g.forwardRef((e,t)=>{let n=(0,$.c)(11),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a=Ye(),s;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,_.jsx)($e,{}),n[3]=s):s=n[3];let c;n[4]===r?c=n[5]:(c=o(`fixed z-50 grid w-full max-w-2xl scale-100 gap-4 border bg-background p-6 opacity-100 shadow-sm animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full`,r),n[4]=r,n[5]=c);let l;return n[6]!==i||n[7]!==t||n[8]!==a||n[9]!==c?(l=(0,_.jsxs)(Qe,{children:[s,(0,_.jsx)(Ge,{ref:t,className:c,...a,...i})]}),n[6]=i,n[7]=t,n[8]=a,n[9]=c,n[10]=l):l=n[10],l});et.displayName=Ge.displayName;var tt=e=>{let t=(0,$.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,_.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};tt.displayName=`AlertDialogHeader`;var nt=e=>{let t=(0,$.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=o(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,_.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a};nt.displayName=`AlertDialogFooter`;var rt=g.forwardRef((e,t)=>{let n=(0,$.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=o(`text-lg font-semibold`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(qe,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});rt.displayName=qe.displayName;var it=g.forwardRef((e,t)=>{let n=(0,$.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=o(`text-muted-foreground`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(Je,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});it.displayName=Je.displayName;var at=g.forwardRef((e,t)=>{let n=(0,$.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=o(h(),r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(Q,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});at.displayName=Q.displayName;var ot=g.forwardRef((e,t)=>{let n=(0,$.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=o(h({variant:`destructive`}),r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(Q,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});ot.displayName=`AlertDialogDestructiveAction`;var st=g.forwardRef((e,t)=>{let n=(0,$.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=o(h({variant:`secondary`}),`mt-2 sm:mt-0`,r),n[3]=r,n[4]=a);let s;return n[5]!==i||n[6]!==t||n[7]!==a?(s=(0,_.jsx)(Ke,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=s):s=n[8],s});st.displayName=Ke.displayName;export{B as _,it as a,tt as c,Ye as d,q as f,H as g,U as h,et as i,rt as l,K as m,at as n,ot as o,W as p,st as r,nt as s,Xe as t,Ze as u,G as v,V as y};