@marimo-team/islands 0.23.2-dev33 → 0.23.2-dev34

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.23.2-dev33",
3
+ "version": "0.23.2-dev34",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -24,32 +24,41 @@ const ToastViewport = React.forwardRef<
24
24
  ));
25
25
  ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
26
26
 
27
+ const VARIANT_CLASSES = {
28
+ default: "bg-background border",
29
+ danger:
30
+ "group destructive text-error border-destructive bg-(--red-1) shadow-md-solid shadow-error",
31
+ } as const satisfies Record<string, string>;
32
+
33
+ type ToastVariant = keyof typeof VARIANT_CLASSES;
34
+
27
35
  const toastVariants = cva(
28
36
  "data-[swipe=move]:transition-none group relative pointer-events-auto flex w-full items-center justify-between space-x-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",
29
37
  {
30
38
  variants: {
31
- variant: {
32
- default: "bg-background border",
33
- danger:
34
- "group destructive text-error border-destructive bg-(--red-1) shadow-md-solid shadow-error",
35
- },
39
+ variant: VARIANT_CLASSES,
36
40
  },
37
41
  defaultVariants: {
38
- variant: "default",
42
+ variant: "default" satisfies ToastVariant,
39
43
  },
40
44
  },
41
45
  );
42
46
 
47
+ function isToastVariant(value: unknown): value is ToastVariant {
48
+ return typeof value === "string" && value in VARIANT_CLASSES;
49
+ }
50
+
43
51
  const Toast = React.forwardRef<
44
52
  React.ElementRef<typeof ToastPrimitives.Root>,
45
53
  React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &
46
54
  VariantProps<typeof toastVariants>
47
55
  >(({ className, variant, ...props }, ref) => {
56
+ const resolvedVariant = isToastVariant(variant) ? variant : "default";
48
57
  return (
49
58
  <ToastPrimitives.Root
50
59
  ref={ref}
51
60
  className={cn(
52
- toastVariants({ variant: variant || "default" }),
61
+ toastVariants({ variant: resolvedVariant }),
53
62
  "print:hidden",
54
63
  className,
55
64
  )}