@epilot/spark-ui 0.25.1 → 0.26.1
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/components/accordion.cjs.map +1 -1
- package/dist/components/accordion.d.cts +1 -1
- package/dist/components/accordion.d.ts +1 -1
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.cjs +5 -3
- package/dist/components/alert-dialog.cjs.map +1 -1
- package/dist/components/alert-dialog.d.cts +4 -1
- package/dist/components/alert-dialog.d.ts +4 -1
- package/dist/components/alert-dialog.js +5 -3
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/autocomplete.cjs +3 -2
- package/dist/components/autocomplete.cjs.map +1 -1
- package/dist/components/autocomplete.js +3 -2
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.cjs +74 -0
- package/dist/components/banner.cjs.map +1 -0
- package/dist/components/banner.d.cts +27 -0
- package/dist/components/banner.d.ts +27 -0
- package/dist/components/banner.js +72 -0
- package/dist/components/banner.js.map +1 -0
- package/dist/components/box.js +1 -1
- package/dist/components/bubble.d.cts +1 -1
- package/dist/components/bubble.d.ts +1 -1
- package/dist/components/button-group.js +1 -1
- package/dist/components/button.d.cts +2 -2
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/callout.cjs +1 -1
- package/dist/components/callout.cjs.map +1 -1
- package/dist/components/callout.js +1 -1
- package/dist/components/callout.js.map +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/data-list.cjs +39 -0
- package/dist/components/data-list.cjs.map +1 -0
- package/dist/components/data-list.d.cts +33 -0
- package/dist/components/data-list.d.ts +33 -0
- package/dist/components/data-list.js +35 -0
- package/dist/components/data-list.js.map +1 -0
- package/dist/components/dialog.cjs +5 -3
- package/dist/components/dialog.cjs.map +1 -1
- package/dist/components/dialog.d.cts +4 -1
- package/dist/components/dialog.d.ts +4 -1
- package/dist/components/dialog.js +5 -3
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/drawer.cjs +13 -3
- package/dist/components/drawer.cjs.map +1 -1
- package/dist/components/drawer.d.cts +4 -1
- package/dist/components/drawer.d.ts +4 -1
- package/dist/components/drawer.js +14 -4
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown-menu.cjs +5 -3
- package/dist/components/dropdown-menu.cjs.map +1 -1
- package/dist/components/dropdown-menu.d.cts +1 -0
- package/dist/components/dropdown-menu.d.ts +1 -0
- package/dist/components/dropdown-menu.js +5 -3
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/empty-state.cjs +97 -25
- package/dist/components/empty-state.cjs.map +1 -1
- package/dist/components/empty-state.d.cts +28 -11
- package/dist/components/empty-state.d.ts +28 -11
- package/dist/components/empty-state.js +94 -26
- package/dist/components/empty-state.js.map +1 -1
- package/dist/components/energy-breakdown.cjs +1 -1
- package/dist/components/energy-breakdown.cjs.map +1 -1
- package/dist/components/energy-breakdown.js +1 -1
- package/dist/components/energy-breakdown.js.map +1 -1
- package/dist/components/entity-card.cjs +1 -1
- package/dist/components/entity-card.cjs.map +1 -1
- package/dist/components/entity-card.js +1 -1
- package/dist/components/entity-card.js.map +1 -1
- package/dist/components/field.cjs +4 -4
- package/dist/components/field.cjs.map +1 -1
- package/dist/components/field.js +4 -4
- package/dist/components/field.js.map +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/info-block.d.cts +1 -1
- package/dist/components/info-block.d.ts +1 -1
- package/dist/components/input-otp.cjs +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.cjs +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/kbd.cjs +14 -0
- package/dist/components/kbd.cjs.map +1 -0
- package/dist/components/kbd.d.cts +13 -0
- package/dist/components/kbd.d.ts +13 -0
- package/dist/components/kbd.js +13 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/marker.d.cts +1 -1
- package/dist/components/marker.d.ts +1 -1
- package/dist/components/message-scroller.cjs +2 -2
- package/dist/components/message-scroller.cjs.map +1 -1
- package/dist/components/message-scroller.js +2 -2
- package/dist/components/message-scroller.js.map +1 -1
- package/dist/components/pill.js +1 -1
- package/dist/components/popover.cjs +3 -2
- package/dist/components/popover.cjs.map +1 -1
- package/dist/components/popover.js +3 -2
- package/dist/components/popover.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/schedule-list.cjs +1 -1
- package/dist/components/schedule-list.cjs.map +1 -1
- package/dist/components/schedule-list.js +1 -1
- package/dist/components/schedule-list.js.map +1 -1
- package/dist/components/select.cjs +4 -3
- package/dist/components/select.cjs.map +1 -1
- package/dist/components/select.js +4 -3
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.cjs +35 -17
- package/dist/components/separator.cjs.map +1 -1
- package/dist/components/separator.d.cts +1 -0
- package/dist/components/separator.d.ts +1 -0
- package/dist/components/separator.js +35 -17
- package/dist/components/separator.js.map +1 -1
- package/dist/components/sheet.cjs +4 -2
- package/dist/components/sheet.cjs.map +1 -1
- package/dist/components/sheet.d.cts +4 -1
- package/dist/components/sheet.d.ts +4 -1
- package/dist/components/sheet.js +4 -2
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/stat-card.cjs +1 -1
- package/dist/components/stat-card.cjs.map +1 -1
- package/dist/components/stat-card.js +1 -1
- package/dist/components/stat-card.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/textarea.cjs +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/theme.cjs +118 -24
- package/dist/components/theme.cjs.map +1 -1
- package/dist/components/theme.d.cts +7 -1
- package/dist/components/theme.d.ts +7 -1
- package/dist/components/theme.js +120 -27
- package/dist/components/theme.js.map +1 -1
- package/dist/components/toast.cjs +4 -3
- package/dist/components/toast.cjs.map +1 -1
- package/dist/components/toast.js +4 -3
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle.cjs +1 -1
- package/dist/components/toggle.js +2 -2
- package/dist/components/tooltip.cjs +5 -3
- package/dist/components/tooltip.cjs.map +1 -1
- package/dist/components/tooltip.d.cts +1 -0
- package/dist/components/tooltip.d.ts +1 -0
- package/dist/components/tooltip.js +5 -3
- package/dist/components/tooltip.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import { VariantProps } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
//#region src/components/banner.d.ts
|
|
7
|
+
type BannerVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning';
|
|
8
|
+
declare const bannerVariants: (props?: ({
|
|
9
|
+
variant?: "success" | "warning" | "error" | "neutral" | "info" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
interface BannerProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof bannerVariants> {
|
|
12
|
+
/** Renders a close button. The Banner stays visible: hide it in this handler. */
|
|
13
|
+
onClose?: () => void;
|
|
14
|
+
/** Accessible name of the close button. */
|
|
15
|
+
closeLabel?: string;
|
|
16
|
+
}
|
|
17
|
+
declare const Banner: ({
|
|
18
|
+
variant,
|
|
19
|
+
onClose,
|
|
20
|
+
closeLabel,
|
|
21
|
+
className,
|
|
22
|
+
children,
|
|
23
|
+
...props
|
|
24
|
+
}: BannerProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Banner, type BannerProps, type BannerVariant, bannerVariants };
|
|
27
|
+
//# sourceMappingURL=banner.d.cts.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import { VariantProps } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
//#region src/components/banner.d.ts
|
|
7
|
+
type BannerVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning';
|
|
8
|
+
declare const bannerVariants: (props?: ({
|
|
9
|
+
variant?: "success" | "warning" | "error" | "neutral" | "info" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
interface BannerProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof bannerVariants> {
|
|
12
|
+
/** Renders a close button. The Banner stays visible: hide it in this handler. */
|
|
13
|
+
onClose?: () => void;
|
|
14
|
+
/** Accessible name of the close button. */
|
|
15
|
+
closeLabel?: string;
|
|
16
|
+
}
|
|
17
|
+
declare const Banner: ({
|
|
18
|
+
variant,
|
|
19
|
+
onClose,
|
|
20
|
+
closeLabel,
|
|
21
|
+
className,
|
|
22
|
+
children,
|
|
23
|
+
...props
|
|
24
|
+
}: BannerProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Banner, type BannerProps, type BannerVariant, bannerVariants };
|
|
27
|
+
//# sourceMappingURL=banner.d.ts.map
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { buttonVariants } from "./button.js";
|
|
4
|
+
import { Cancel, CheckCircle, Close, Info, Warning } from "@epilot/spark-icons";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
//#region src/components/banner.tsx
|
|
8
|
+
const bannerVariants = cva("flex w-full items-start gap-2 border-b px-4 py-3 text-sm", {
|
|
9
|
+
variants: { variant: {
|
|
10
|
+
error: "border-red-a6 bg-error-soft text-error-soft-foreground",
|
|
11
|
+
success: "border-green-a6 bg-success-soft text-success-soft-foreground",
|
|
12
|
+
warning: "border-orange-a6 bg-warning-soft text-warning-soft-foreground",
|
|
13
|
+
info: "border-blue-a6 bg-base-info-soft text-info",
|
|
14
|
+
neutral: "border-gray-a6 bg-base-gray-soft text-gray"
|
|
15
|
+
} },
|
|
16
|
+
defaultVariants: { variant: "info" }
|
|
17
|
+
});
|
|
18
|
+
const BANNER_ICONS = {
|
|
19
|
+
error: {
|
|
20
|
+
icon: Cancel,
|
|
21
|
+
className: "text-error-soft-foreground"
|
|
22
|
+
},
|
|
23
|
+
success: {
|
|
24
|
+
icon: CheckCircle,
|
|
25
|
+
className: "text-success-soft-foreground"
|
|
26
|
+
},
|
|
27
|
+
warning: {
|
|
28
|
+
icon: Warning,
|
|
29
|
+
className: "text-warning-soft-foreground"
|
|
30
|
+
},
|
|
31
|
+
info: {
|
|
32
|
+
icon: Info,
|
|
33
|
+
className: "text-info-light"
|
|
34
|
+
},
|
|
35
|
+
neutral: {
|
|
36
|
+
icon: Info,
|
|
37
|
+
className: "text-gray-light"
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const Banner = ({ variant = "info", onClose, closeLabel = "Close", className, children, ...props }) => {
|
|
41
|
+
const { icon: Glyph, className: iconClassName } = BANNER_ICONS[variant ?? "info"];
|
|
42
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
43
|
+
"data-slot": "banner",
|
|
44
|
+
className: cn(bannerVariants({ variant }), className),
|
|
45
|
+
...props,
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsx(Glyph, { className: cn("[--spark-icon-size:calc(20px*var(--spark-scaling,1))]", iconClassName) }),
|
|
48
|
+
/* @__PURE__ */ jsx("div", {
|
|
49
|
+
className: "min-w-0 flex-1",
|
|
50
|
+
children
|
|
51
|
+
}),
|
|
52
|
+
onClose ? /* @__PURE__ */ jsx("button", {
|
|
53
|
+
"aria-label": closeLabel,
|
|
54
|
+
className: cn(buttonVariants({
|
|
55
|
+
size: "icon-small",
|
|
56
|
+
variant: "tertiary"
|
|
57
|
+
}), "-my-1 -mr-1 size-7 shrink-0 self-center text-inherit"),
|
|
58
|
+
"data-slot": "banner-close",
|
|
59
|
+
onClick: onClose,
|
|
60
|
+
type: "button",
|
|
61
|
+
children: /* @__PURE__ */ jsx(Close, {
|
|
62
|
+
"aria-hidden": "true",
|
|
63
|
+
className: "[--spark-icon-size:18px]"
|
|
64
|
+
})
|
|
65
|
+
}) : null
|
|
66
|
+
]
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
//#endregion
|
|
70
|
+
export { Banner, bannerVariants };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","names":[],"sources":["../../src/components/banner.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Close,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport type * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype BannerVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst bannerVariants = cva(\n 'flex w-full items-start gap-2 border-b px-4 py-3 text-sm',\n {\n variants: {\n variant: {\n error: 'border-red-a6 bg-error-soft text-error-soft-foreground',\n success: 'border-green-a6 bg-success-soft text-success-soft-foreground',\n warning:\n 'border-orange-a6 bg-warning-soft text-warning-soft-foreground',\n info: 'border-blue-a6 bg-base-info-soft text-info',\n neutral: 'border-gray-a6 bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst BANNER_ICONS: Record<\n BannerVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface BannerProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof bannerVariants> {\n /** Renders a close button. The Banner stays visible: hide it in this handler. */\n onClose?: () => void\n /** Accessible name of the close button. */\n closeLabel?: string\n}\n\nconst Banner = ({\n variant = 'info',\n onClose,\n closeLabel = 'Close',\n className,\n children,\n ...props\n}: BannerProps) => {\n const { icon: Glyph, className: iconClassName } =\n BANNER_ICONS[variant ?? 'info']\n\n return (\n <div\n data-slot=\"banner\"\n className={cn(bannerVariants({ variant }), className)}\n {...props}\n >\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n iconClassName,\n )}\n />\n <div className=\"min-w-0 flex-1\">{children}</div>\n {onClose ? (\n <button\n aria-label={closeLabel}\n className={cn(\n buttonVariants({ size: 'icon-small', variant: 'tertiary' }),\n '-my-1 -mr-1 size-7 shrink-0 self-center text-inherit',\n )}\n data-slot=\"banner-close\"\n onClick={onClose}\n type=\"button\"\n >\n <Close aria-hidden=\"true\" className=\"[--spark-icon-size:18px]\" />\n </button>\n ) : null}\n </div>\n )\n}\n\nexport { Banner, bannerVariants }\nexport type { BannerProps, BannerVariant }\n"],"mappings":";;;;;;;AAeA,MAAM,iBAAiB,IACrB,4DACA;CACE,UAAU,EACR,SAAS;EACP,OAAO;EACP,SAAS;EACT,SACE;EACF,MAAM;EACN,SAAS;CACX,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CACF;AAEA,MAAM,eAGF;CACF,OAAO;EAAE,MAAM;EAAQ,WAAW;CAA6B;CAC/D,SAAS;EAAE,MAAM;EAAa,WAAW;CAA+B;CACxE,SAAS;EAAE,MAAM;EAAS,WAAW;CAA+B;CACpE,MAAM;EAAE,MAAM;EAAM,WAAW;CAAkB;CACjD,SAAS;EAAE,MAAM;EAAM,WAAW;CAAkB;AACtD;AAYA,MAAM,UAAU,EACd,UAAU,QACV,SACA,aAAa,SACb,WACA,UACA,GAAG,YACc;CACjB,MAAM,EAAE,MAAM,OAAO,WAAW,kBAC9B,aAAa,WAAW;CAE1B,OACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;EACpD,GAAI;YAHN;GAKE,oBAAC,OAAD,EACE,WAAW,GACT,yDACA,aACF,EACD,CAAA;GACD,oBAAC,OAAD;IAAK,WAAU;IAAkB;GAAc,CAAA;GAC9C,UACC,oBAAC,UAAD;IACE,cAAY;IACZ,WAAW,GACT,eAAe;KAAE,MAAM;KAAc,SAAS;IAAW,CAAC,GAC1D,sDACF;IACA,aAAU;IACV,SAAS;IACT,MAAK;cAEL,oBAAC,OAAD;KAAO,eAAY;KAAO,WAAU;IAA4B,CAAA;GAC1D,CAAA,IACN;EACD;;AAET"}
|
package/dist/components/box.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { containerChrome, containerInteractiveClasses, containerPaddingAll, radiusClasses } from "../lib/container-chrome.js";
|
|
3
2
|
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { containerChrome, containerInteractiveClasses, containerPaddingAll, radiusClasses } from "../lib/container-chrome.js";
|
|
4
4
|
import { cva } from "class-variance-authority";
|
|
5
5
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
6
6
|
import { useRender } from "@base-ui/react/use-render";
|
|
@@ -10,7 +10,7 @@ declare function BubbleGroup({
|
|
|
10
10
|
...props
|
|
11
11
|
}: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
declare const bubbleVariants: (props?: ({
|
|
13
|
-
variant?: "ghost" | "
|
|
13
|
+
variant?: "ghost" | "default" | "outline" | "destructive" | "secondary" | "muted" | "tinted" | null | undefined;
|
|
14
14
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
15
|
declare function Bubble({
|
|
16
16
|
variant,
|
|
@@ -10,7 +10,7 @@ declare function BubbleGroup({
|
|
|
10
10
|
...props
|
|
11
11
|
}: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
declare const bubbleVariants: (props?: ({
|
|
13
|
-
variant?: "ghost" | "
|
|
13
|
+
variant?: "ghost" | "default" | "outline" | "destructive" | "secondary" | "muted" | "tinted" | null | undefined;
|
|
14
14
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
15
15
|
declare function Bubble({
|
|
16
16
|
variant,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
|
-
import { accentByColor } from "../lib/accent-colors.js";
|
|
4
3
|
import { cn } from "../utils/cn.js";
|
|
4
|
+
import { accentByColor } from "../lib/accent-colors.js";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import { Button } from "@base-ui/react/button";
|
|
@@ -8,8 +8,8 @@ import { VariantProps } from "class-variance-authority";
|
|
|
8
8
|
//#region src/components/button.d.ts
|
|
9
9
|
declare const buttonVariants: (props?: ({
|
|
10
10
|
variant?: "primary" | "destructive" | "secondary" | "tertiary" | "bare" | null | undefined;
|
|
11
|
-
color?: "neutral" | "accent" | "primary" | "
|
|
12
|
-
size?: "small" | "default" | "
|
|
11
|
+
color?: "neutral" | "accent" | "primary" | "danger" | "destructive" | null | undefined;
|
|
12
|
+
size?: "small" | "default" | "icon" | "medium" | "icon-small" | "icon-medium" | null | undefined;
|
|
13
13
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
14
|
/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */
|
|
15
15
|
type SparkButtonColor = 'primary' | 'accent' | 'neutral' | 'destructive' | 'danger';
|
|
@@ -8,8 +8,8 @@ import { VariantProps } from "class-variance-authority";
|
|
|
8
8
|
//#region src/components/button.d.ts
|
|
9
9
|
declare const buttonVariants: (props?: ({
|
|
10
10
|
variant?: "primary" | "destructive" | "secondary" | "tertiary" | "bare" | null | undefined;
|
|
11
|
-
color?: "neutral" | "accent" | "primary" | "
|
|
12
|
-
size?: "small" | "default" | "
|
|
11
|
+
color?: "neutral" | "accent" | "primary" | "danger" | "destructive" | null | undefined;
|
|
12
|
+
size?: "small" | "default" | "icon" | "medium" | "icon-small" | "icon-medium" | null | undefined;
|
|
13
13
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
14
|
/** Preferred: `primary` | `neutral` | `destructive`. `accent` / `danger` stay as aliases. */
|
|
15
15
|
type SparkButtonColor = 'primary' | 'accent' | 'neutral' | 'destructive' | 'danger';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
|
-
import { accentByColor } from "../lib/accent-colors.js";
|
|
4
3
|
import { cn } from "../utils/cn.js";
|
|
4
|
+
import { accentByColor } from "../lib/accent-colors.js";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import { Button as Button$1 } from "@base-ui/react/button";
|
|
@@ -88,7 +88,7 @@ const Callout = ({ variant = "info", icon, className, children, ...props }) => {
|
|
|
88
88
|
className: (0, cn.cn)(calloutVariants({ variant }), className),
|
|
89
89
|
...props,
|
|
90
90
|
children: [Glyph ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Glyph, { className: (0, cn.cn)("[--spark-icon-size:calc(20px*var(--spark-scaling,1))]", variantIcon.className) }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
91
|
-
className: "flex w-full min-w-0 flex-col gap-
|
|
91
|
+
className: "flex w-full min-w-0 flex-col gap-2",
|
|
92
92
|
children
|
|
93
93
|
})]
|
|
94
94
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callout.cjs","names":["Cancel","CheckCircle","Warning","Info","React","Button"],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button, type ButtonProps } from './button'\n\ntype CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst calloutVariants = cva(\n 'group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none',\n {\n variants: {\n variant: {\n error: 'bg-error-soft text-error-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n info: 'bg-base-info-soft text-info',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst CALLOUT_ICONS: Record<\n CalloutVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface CalloutProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof calloutVariants> {\n /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */\n icon?: SparkIcon | false\n}\n\nconst CalloutTitle = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n data-slot=\"callout-title\"\n className={cn('text-base leading-5 font-semibold', className)}\n {...props}\n />\n)\n\nconst CalloutDescription = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p\n data-slot=\"callout-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n)\n\nconst CalloutVariantContext = React.createContext<CalloutVariant>('info')\n\nconst CALLOUT_ACTION_COLORS: Record<CalloutVariant, string> = {\n error:\n 'bg-error-soft text-error-soft-foreground hover:bg-error-soft-hover focus-visible:bg-error-soft-hover',\n success:\n 'bg-success-soft text-success-soft-foreground hover:bg-success-soft-hover focus-visible:bg-success-soft-hover',\n warning:\n 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft-hover focus-visible:bg-warning-soft-hover',\n info: 'bg-base-info-soft text-info hover:bg-blue-a4 focus-visible:bg-blue-a4',\n neutral:\n 'bg-base-gray-soft text-gray hover:bg-gray-a4 focus-visible:bg-gray-a4',\n}\n\nconst CalloutActions = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"callout-actions\"\n className={cn(\n 'mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0',\n className,\n )}\n {...props}\n />\n)\n\ntype CalloutActionType = Omit<ButtonProps, 'styleVariant' | 'color'> & {\n align?: 'start' | 'end'\n primary?: boolean\n}\n\nconst CalloutAction = ({\n className,\n align = 'start',\n primary = false,\n ...props\n}: CalloutActionType) => {\n const calloutVariant = React.useContext(CalloutVariantContext)\n\n return (\n <Button\n data-slot=\"callout-action\"\n size=\"small\"\n styleVariant={primary ? 'solid' : 'surface'}\n color={primary ? 'primary' : 'neutral'}\n className={cn(\n 'mt-2 w-fit',\n { 'self-start': align === 'start', 'self-end': align === 'end' },\n !primary && CALLOUT_ACTION_COLORS[calloutVariant],\n className,\n )}\n {...props}\n />\n )\n}\n\nconst Callout = ({\n variant = 'info',\n icon,\n className,\n children,\n ...props\n}: CalloutProps) => {\n const variantIcon = CALLOUT_ICONS[variant ?? 'info']\n const Glyph = icon === false ? null : (icon ?? variantIcon.icon)\n\n return (\n <CalloutVariantContext.Provider value={variant ?? 'info'}>\n <div\n data-slot=\"callout\"\n className={cn(calloutVariants({ variant }), className)}\n {...props}\n >\n {Glyph ? (\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n variantIcon.className,\n )}\n />\n ) : null}\n <div className=\"flex w-full min-w-0 flex-col gap-
|
|
1
|
+
{"version":3,"file":"callout.cjs","names":["Cancel","CheckCircle","Warning","Info","React","Button"],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button, type ButtonProps } from './button'\n\ntype CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst calloutVariants = cva(\n 'group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none',\n {\n variants: {\n variant: {\n error: 'bg-error-soft text-error-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n info: 'bg-base-info-soft text-info',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst CALLOUT_ICONS: Record<\n CalloutVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface CalloutProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof calloutVariants> {\n /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */\n icon?: SparkIcon | false\n}\n\nconst CalloutTitle = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n data-slot=\"callout-title\"\n className={cn('text-base leading-5 font-semibold', className)}\n {...props}\n />\n)\n\nconst CalloutDescription = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p\n data-slot=\"callout-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n)\n\nconst CalloutVariantContext = React.createContext<CalloutVariant>('info')\n\nconst CALLOUT_ACTION_COLORS: Record<CalloutVariant, string> = {\n error:\n 'bg-error-soft text-error-soft-foreground hover:bg-error-soft-hover focus-visible:bg-error-soft-hover',\n success:\n 'bg-success-soft text-success-soft-foreground hover:bg-success-soft-hover focus-visible:bg-success-soft-hover',\n warning:\n 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft-hover focus-visible:bg-warning-soft-hover',\n info: 'bg-base-info-soft text-info hover:bg-blue-a4 focus-visible:bg-blue-a4',\n neutral:\n 'bg-base-gray-soft text-gray hover:bg-gray-a4 focus-visible:bg-gray-a4',\n}\n\nconst CalloutActions = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"callout-actions\"\n className={cn(\n 'mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0',\n className,\n )}\n {...props}\n />\n)\n\ntype CalloutActionType = Omit<ButtonProps, 'styleVariant' | 'color'> & {\n align?: 'start' | 'end'\n primary?: boolean\n}\n\nconst CalloutAction = ({\n className,\n align = 'start',\n primary = false,\n ...props\n}: CalloutActionType) => {\n const calloutVariant = React.useContext(CalloutVariantContext)\n\n return (\n <Button\n data-slot=\"callout-action\"\n size=\"small\"\n styleVariant={primary ? 'solid' : 'surface'}\n color={primary ? 'primary' : 'neutral'}\n className={cn(\n 'mt-2 w-fit',\n { 'self-start': align === 'start', 'self-end': align === 'end' },\n !primary && CALLOUT_ACTION_COLORS[calloutVariant],\n className,\n )}\n {...props}\n />\n )\n}\n\nconst Callout = ({\n variant = 'info',\n icon,\n className,\n children,\n ...props\n}: CalloutProps) => {\n const variantIcon = CALLOUT_ICONS[variant ?? 'info']\n const Glyph = icon === false ? null : (icon ?? variantIcon.icon)\n\n return (\n <CalloutVariantContext.Provider value={variant ?? 'info'}>\n <div\n data-slot=\"callout\"\n className={cn(calloutVariants({ variant }), className)}\n {...props}\n >\n {Glyph ? (\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n variantIcon.className,\n )}\n />\n ) : null}\n <div className=\"flex w-full min-w-0 flex-col gap-2\">{children}</div>\n </div>\n </CalloutVariantContext.Provider>\n )\n}\n\nexport {\n Callout,\n CalloutAction,\n CalloutActions,\n CalloutDescription,\n CalloutTitle,\n calloutVariants,\n}\nexport type { CalloutProps, CalloutVariant }\n"],"mappings":";;;;;;;;;;;AAcA,MAAM,mBAAA,GAAA,yBAAA,KACJ,kJACA;CACE,UAAU,EACR,SAAS;EACP,OAAO;EACP,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;CACX,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CACF;AAEA,MAAM,gBAGF;CACF,OAAO;EAAE,MAAMA,oBAAAA;EAAQ,WAAW;CAA6B;CAC/D,SAAS;EAAE,MAAMC,oBAAAA;EAAa,WAAW;CAA+B;CACxE,SAAS;EAAE,MAAMC,oBAAAA;EAAS,WAAW;CAA+B;CACpE,MAAM;EAAE,MAAMC,oBAAAA;EAAM,WAAW;CAAkB;CACjD,SAAS;EAAE,MAAMA,oBAAAA;EAAM,WAAW;CAAkB;AACtD;AAUA,MAAM,gBAAgB,EACpB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,QAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IAAc,qCAAqC,SAAS;CAC5D,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,KAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IAAc,WAAW,SAAS;CAClC,GAAI;AACL,CAAA;AAGH,MAAM,wBAAwBC,MAAM,cAA8B,MAAM;AAExE,MAAM,wBAAwD;CAC5D,OACE;CACF,SACE;CACF,SACE;CACF,MAAM;CACN,SACE;AACJ;AAEA,MAAM,kBAAkB,EACtB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IACE,8EACA,SACF;CACA,GAAI;AACL,CAAA;AAQH,MAAM,iBAAiB,EACrB,WACA,QAAQ,SACR,UAAU,OACV,GAAG,YACoB;CACvB,MAAM,iBAAiBA,MAAM,WAAW,qBAAqB;CAE7D,OACE,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,QAAD;EACE,aAAU;EACV,MAAK;EACL,cAAc,UAAU,UAAU;EAClC,OAAO,UAAU,YAAY;EAC7B,YAAA,GAAA,GAAA,IACE,cACA;GAAE,cAAc,UAAU;GAAS,YAAY,UAAU;EAAM,GAC/D,CAAC,WAAW,sBAAsB,iBAClC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,WAAW,EACf,UAAU,QACV,MACA,WACA,UACA,GAAG,YACe;CAClB,MAAM,cAAc,cAAc,WAAW;CAC7C,MAAM,QAAQ,SAAS,QAAQ,OAAQ,QAAQ,YAAY;CAE3D,OACE,iBAAA,GAAA,kBAAA,KAAC,sBAAsB,UAAvB;EAAgC,OAAO,WAAW;YAChD,iBAAA,GAAA,kBAAA,MAAC,OAAD;GACE,aAAU;GACV,YAAA,GAAA,GAAA,IAAc,gBAAgB,EAAE,QAAQ,CAAC,GAAG,SAAS;GACrD,GAAI;aAHN,CAKG,QACC,iBAAA,GAAA,kBAAA,KAAC,OAAD,EACE,YAAA,GAAA,GAAA,IACE,yDACA,YAAY,SACd,EACD,CAAA,IACC,MACJ,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,WAAU;IAAsC;GAAc,CAAA,CAChE;;CACyB,CAAA;AAEpC"}
|
|
@@ -85,7 +85,7 @@ const Callout = ({ variant = "info", icon, className, children, ...props }) => {
|
|
|
85
85
|
className: cn(calloutVariants({ variant }), className),
|
|
86
86
|
...props,
|
|
87
87
|
children: [Glyph ? /* @__PURE__ */ jsx(Glyph, { className: cn("[--spark-icon-size:calc(20px*var(--spark-scaling,1))]", variantIcon.className) }) : null, /* @__PURE__ */ jsx("div", {
|
|
88
|
-
className: "flex w-full min-w-0 flex-col gap-
|
|
88
|
+
className: "flex w-full min-w-0 flex-col gap-2",
|
|
89
89
|
children
|
|
90
90
|
})]
|
|
91
91
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callout.js","names":["React"],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button, type ButtonProps } from './button'\n\ntype CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst calloutVariants = cva(\n 'group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none',\n {\n variants: {\n variant: {\n error: 'bg-error-soft text-error-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n info: 'bg-base-info-soft text-info',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst CALLOUT_ICONS: Record<\n CalloutVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface CalloutProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof calloutVariants> {\n /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */\n icon?: SparkIcon | false\n}\n\nconst CalloutTitle = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n data-slot=\"callout-title\"\n className={cn('text-base leading-5 font-semibold', className)}\n {...props}\n />\n)\n\nconst CalloutDescription = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p\n data-slot=\"callout-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n)\n\nconst CalloutVariantContext = React.createContext<CalloutVariant>('info')\n\nconst CALLOUT_ACTION_COLORS: Record<CalloutVariant, string> = {\n error:\n 'bg-error-soft text-error-soft-foreground hover:bg-error-soft-hover focus-visible:bg-error-soft-hover',\n success:\n 'bg-success-soft text-success-soft-foreground hover:bg-success-soft-hover focus-visible:bg-success-soft-hover',\n warning:\n 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft-hover focus-visible:bg-warning-soft-hover',\n info: 'bg-base-info-soft text-info hover:bg-blue-a4 focus-visible:bg-blue-a4',\n neutral:\n 'bg-base-gray-soft text-gray hover:bg-gray-a4 focus-visible:bg-gray-a4',\n}\n\nconst CalloutActions = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"callout-actions\"\n className={cn(\n 'mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0',\n className,\n )}\n {...props}\n />\n)\n\ntype CalloutActionType = Omit<ButtonProps, 'styleVariant' | 'color'> & {\n align?: 'start' | 'end'\n primary?: boolean\n}\n\nconst CalloutAction = ({\n className,\n align = 'start',\n primary = false,\n ...props\n}: CalloutActionType) => {\n const calloutVariant = React.useContext(CalloutVariantContext)\n\n return (\n <Button\n data-slot=\"callout-action\"\n size=\"small\"\n styleVariant={primary ? 'solid' : 'surface'}\n color={primary ? 'primary' : 'neutral'}\n className={cn(\n 'mt-2 w-fit',\n { 'self-start': align === 'start', 'self-end': align === 'end' },\n !primary && CALLOUT_ACTION_COLORS[calloutVariant],\n className,\n )}\n {...props}\n />\n )\n}\n\nconst Callout = ({\n variant = 'info',\n icon,\n className,\n children,\n ...props\n}: CalloutProps) => {\n const variantIcon = CALLOUT_ICONS[variant ?? 'info']\n const Glyph = icon === false ? null : (icon ?? variantIcon.icon)\n\n return (\n <CalloutVariantContext.Provider value={variant ?? 'info'}>\n <div\n data-slot=\"callout\"\n className={cn(calloutVariants({ variant }), className)}\n {...props}\n >\n {Glyph ? (\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n variantIcon.className,\n )}\n />\n ) : null}\n <div className=\"flex w-full min-w-0 flex-col gap-
|
|
1
|
+
{"version":3,"file":"callout.js","names":["React"],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import {\n Cancel,\n CheckCircle,\n Info,\n Warning,\n type SparkIcon,\n} from '@epilot/spark-icons'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button, type ButtonProps } from './button'\n\ntype CalloutVariant = 'error' | 'info' | 'neutral' | 'success' | 'warning'\n\nconst calloutVariants = cva(\n 'group/callout flex w-full items-start gap-2 rounded-lg px-4 py-3 text-sm transition-colors duration-150 ease-out motion-reduce:transition-none',\n {\n variants: {\n variant: {\n error: 'bg-error-soft text-error-soft-foreground',\n success: 'bg-success-soft text-success-soft-foreground',\n warning: 'bg-warning-soft text-warning-soft-foreground',\n info: 'bg-base-info-soft text-info',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n },\n)\n\nconst CALLOUT_ICONS: Record<\n CalloutVariant,\n { icon: SparkIcon; className: string }\n> = {\n error: { icon: Cancel, className: 'text-error-soft-foreground' },\n success: { icon: CheckCircle, className: 'text-success-soft-foreground' },\n warning: { icon: Warning, className: 'text-warning-soft-foreground' },\n info: { icon: Info, className: 'text-info-light' },\n neutral: { icon: Info, className: 'text-gray-light' },\n}\n\ninterface CalloutProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof calloutVariants> {\n /** Overrides the variant's default icon; the variant's color is kept. `false` renders no icon. */\n icon?: SparkIcon | false\n}\n\nconst CalloutTitle = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n data-slot=\"callout-title\"\n className={cn('text-base leading-5 font-semibold', className)}\n {...props}\n />\n)\n\nconst CalloutDescription = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => (\n <p\n data-slot=\"callout-description\"\n className={cn('text-sm', className)}\n {...props}\n />\n)\n\nconst CalloutVariantContext = React.createContext<CalloutVariant>('info')\n\nconst CALLOUT_ACTION_COLORS: Record<CalloutVariant, string> = {\n error:\n 'bg-error-soft text-error-soft-foreground hover:bg-error-soft-hover focus-visible:bg-error-soft-hover',\n success:\n 'bg-success-soft text-success-soft-foreground hover:bg-success-soft-hover focus-visible:bg-success-soft-hover',\n warning:\n 'bg-warning-soft text-warning-soft-foreground hover:bg-warning-soft-hover focus-visible:bg-warning-soft-hover',\n info: 'bg-base-info-soft text-info hover:bg-blue-a4 focus-visible:bg-blue-a4',\n neutral:\n 'bg-base-gray-soft text-gray hover:bg-gray-a4 focus-visible:bg-gray-a4',\n}\n\nconst CalloutActions = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"callout-actions\"\n className={cn(\n 'mt-2 flex flex-wrap items-center gap-2 [&_[data-slot=callout-action]]:mt-0',\n className,\n )}\n {...props}\n />\n)\n\ntype CalloutActionType = Omit<ButtonProps, 'styleVariant' | 'color'> & {\n align?: 'start' | 'end'\n primary?: boolean\n}\n\nconst CalloutAction = ({\n className,\n align = 'start',\n primary = false,\n ...props\n}: CalloutActionType) => {\n const calloutVariant = React.useContext(CalloutVariantContext)\n\n return (\n <Button\n data-slot=\"callout-action\"\n size=\"small\"\n styleVariant={primary ? 'solid' : 'surface'}\n color={primary ? 'primary' : 'neutral'}\n className={cn(\n 'mt-2 w-fit',\n { 'self-start': align === 'start', 'self-end': align === 'end' },\n !primary && CALLOUT_ACTION_COLORS[calloutVariant],\n className,\n )}\n {...props}\n />\n )\n}\n\nconst Callout = ({\n variant = 'info',\n icon,\n className,\n children,\n ...props\n}: CalloutProps) => {\n const variantIcon = CALLOUT_ICONS[variant ?? 'info']\n const Glyph = icon === false ? null : (icon ?? variantIcon.icon)\n\n return (\n <CalloutVariantContext.Provider value={variant ?? 'info'}>\n <div\n data-slot=\"callout\"\n className={cn(calloutVariants({ variant }), className)}\n {...props}\n >\n {Glyph ? (\n <Glyph\n className={cn(\n '[--spark-icon-size:calc(20px*var(--spark-scaling,1))]',\n variantIcon.className,\n )}\n />\n ) : null}\n <div className=\"flex w-full min-w-0 flex-col gap-2\">{children}</div>\n </div>\n </CalloutVariantContext.Provider>\n )\n}\n\nexport {\n Callout,\n CalloutAction,\n CalloutActions,\n CalloutDescription,\n CalloutTitle,\n calloutVariants,\n}\nexport type { CalloutProps, CalloutVariant }\n"],"mappings":";;;;;;;;AAcA,MAAM,kBAAkB,IACtB,kJACA;CACE,UAAU,EACR,SAAS;EACP,OAAO;EACP,SAAS;EACT,SAAS;EACT,MAAM;EACN,SAAS;CACX,EACF;CACA,iBAAiB,EACf,SAAS,OACX;AACF,CACF;AAEA,MAAM,gBAGF;CACF,OAAO;EAAE,MAAM;EAAQ,WAAW;CAA6B;CAC/D,SAAS;EAAE,MAAM;EAAa,WAAW;CAA+B;CACxE,SAAS;EAAE,MAAM;EAAS,WAAW;CAA+B;CACpE,MAAM;EAAE,MAAM;EAAM,WAAW;CAAkB;CACjD,SAAS;EAAE,MAAM;EAAM,WAAW;CAAkB;AACtD;AAUA,MAAM,gBAAgB,EACpB,WACA,GAAG,YAEH,oBAAC,QAAD;CACE,aAAU;CACV,WAAW,GAAG,qCAAqC,SAAS;CAC5D,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,oBAAC,KAAD;CACE,aAAU;CACV,WAAW,GAAG,WAAW,SAAS;CAClC,GAAI;AACL,CAAA;AAGH,MAAM,wBAAwBA,QAAM,cAA8B,MAAM;AAExE,MAAM,wBAAwD;CAC5D,OACE;CACF,SACE;CACF,SACE;CACF,MAAM;CACN,SACE;AACJ;AAEA,MAAM,kBAAkB,EACtB,WACA,GAAG,YAEH,oBAAC,OAAD;CACE,aAAU;CACV,WAAW,GACT,8EACA,SACF;CACA,GAAI;AACL,CAAA;AAQH,MAAM,iBAAiB,EACrB,WACA,QAAQ,SACR,UAAU,OACV,GAAG,YACoB;CACvB,MAAM,iBAAiBA,QAAM,WAAW,qBAAqB;CAE7D,OACE,oBAAC,QAAD;EACE,aAAU;EACV,MAAK;EACL,cAAc,UAAU,UAAU;EAClC,OAAO,UAAU,YAAY;EAC7B,WAAW,GACT,cACA;GAAE,cAAc,UAAU;GAAS,YAAY,UAAU;EAAM,GAC/D,CAAC,WAAW,sBAAsB,iBAClC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,WAAW,EACf,UAAU,QACV,MACA,WACA,UACA,GAAG,YACe;CAClB,MAAM,cAAc,cAAc,WAAW;CAC7C,MAAM,QAAQ,SAAS,QAAQ,OAAQ,QAAQ,YAAY;CAE3D,OACE,oBAAC,sBAAsB,UAAvB;EAAgC,OAAO,WAAW;YAChD,qBAAC,OAAD;GACE,aAAU;GACV,WAAW,GAAG,gBAAgB,EAAE,QAAQ,CAAC,GAAG,SAAS;GACrD,GAAI;aAHN,CAKG,QACC,oBAAC,OAAD,EACE,WAAW,GACT,yDACA,YAAY,SACd,EACD,CAAA,IACC,MACJ,oBAAC,OAAD;IAAK,WAAU;IAAsC;GAAc,CAAA,CAChE;;CACyB,CAAA;AAEpC"}
|
package/dist/components/card.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { containerChrome, containerInteractiveClasses, containerPaddingX, radiusClasses } from "../lib/container-chrome.js";
|
|
3
2
|
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { containerChrome, containerInteractiveClasses, containerPaddingX, radiusClasses } from "../lib/container-chrome.js";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { accentByColor } from "../lib/accent-colors.js";
|
|
3
2
|
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { accentByColor } from "../lib/accent-colors.js";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_components_separator = require("./separator.cjs");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let cn = require("cn");
|
|
6
|
+
//#region src/components/data-list.tsx
|
|
7
|
+
const DataList = ({ variant = "plain", className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dl", {
|
|
8
|
+
"data-slot": "data-list",
|
|
9
|
+
"data-variant": variant,
|
|
10
|
+
className: (0, cn.cn)("group/data-list flex flex-col text-sm text-gray", variant === "stacked" ? "gap-4" : "gap-2", className),
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
const DataListItem = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
14
|
+
"data-slot": "data-list-item",
|
|
15
|
+
className: (0, cn.cn)("flex items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-col group-data-[variant=stacked]/data-list:items-stretch group-data-[variant=stacked]/data-list:gap-1", className),
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
const DataListLabel = ({ className, children, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("dt", {
|
|
19
|
+
"data-slot": "data-list-label",
|
|
20
|
+
className: (0, cn.cn)("flex flex-1 items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-none group-data-[variant=stacked]/data-list:text-gray-light", className),
|
|
21
|
+
...props,
|
|
22
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_separator.Separator, {
|
|
23
|
+
variant: "dotted",
|
|
24
|
+
className: "hidden min-w-4 flex-1 group-data-[variant=dotted]/data-list:block",
|
|
25
|
+
"aria-hidden": true
|
|
26
|
+
})]
|
|
27
|
+
});
|
|
28
|
+
const DataListValue = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dd", {
|
|
29
|
+
"data-slot": "data-list-value",
|
|
30
|
+
className: (0, cn.cn)("min-w-0 text-end wrap-break-word tabular-nums group-data-[variant=dotted]/data-list:shrink-0 group-data-[variant=stacked]/data-list:text-start", className),
|
|
31
|
+
...props
|
|
32
|
+
});
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.DataList = DataList;
|
|
35
|
+
exports.DataListItem = DataListItem;
|
|
36
|
+
exports.DataListLabel = DataListLabel;
|
|
37
|
+
exports.DataListValue = DataListValue;
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=data-list.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list.cjs","names":["Separator"],"sources":["../../src/components/data-list.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Separator } from './separator'\n\ninterface DataListProps extends React.HTMLAttributes<HTMLDListElement> {\n /**\n * `dotted` joins each label to its value with a dotted leader; `stacked` puts\n * each label above its value.\n */\n variant?: 'plain' | 'dotted' | 'stacked'\n}\n\nconst DataList = ({\n variant = 'plain',\n className,\n ...props\n}: DataListProps) => (\n <dl\n data-slot=\"data-list\"\n data-variant={variant}\n className={cn(\n 'group/data-list flex flex-col text-sm text-gray',\n variant === 'stacked' ? 'gap-4' : 'gap-2',\n className,\n )}\n {...props}\n />\n)\n\nconst DataListItem = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"data-list-item\"\n className={cn(\n 'flex items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-col group-data-[variant=stacked]/data-list:items-stretch group-data-[variant=stacked]/data-list:gap-1',\n className,\n )}\n {...props}\n />\n)\n\n// The leader lives inside <dt>: a <dl> item may only hold <dt> and <dd>.\n// A plain value wraps instead of overflowing; a dotted one (an amount) never breaks.\nconst DataListLabel = ({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLElement>) => (\n <dt\n data-slot=\"data-list-label\"\n className={cn(\n 'flex flex-1 items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-none group-data-[variant=stacked]/data-list:text-gray-light',\n className,\n )}\n {...props}\n >\n <span>{children}</span>\n <Separator\n variant=\"dotted\"\n className=\"hidden min-w-4 flex-1 group-data-[variant=dotted]/data-list:block\"\n aria-hidden\n />\n </dt>\n)\n\nconst DataListValue = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) => (\n <dd\n data-slot=\"data-list-value\"\n className={cn(\n 'min-w-0 text-end wrap-break-word tabular-nums group-data-[variant=dotted]/data-list:shrink-0 group-data-[variant=stacked]/data-list:text-start',\n className,\n )}\n {...props}\n />\n)\n\nexport { DataList, DataListItem, DataListLabel, DataListValue }\nexport type { DataListProps }\n"],"mappings":";;;;;;AAYA,MAAM,YAAY,EAChB,UAAU,SACV,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,MAAD;CACE,aAAU;CACV,gBAAc;CACd,YAAA,GAAA,GAAA,IACE,mDACA,YAAY,YAAY,UAAU,SAClC,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,gBAAgB,EACpB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,OAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IACE,+KACA,SACF;CACA,GAAI;AACL,CAAA;AAKH,MAAM,iBAAiB,EACrB,WACA,UACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,MAAC,MAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IACE,4IACA,SACF;CACA,GAAI;WANN,CAQE,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAO,SAAe,CAAA,GACtB,iBAAA,GAAA,kBAAA,KAACA,6BAAAA,WAAD;EACE,SAAQ;EACR,WAAU;EACV,eAAA;CACD,CAAA,CACC;;AAGN,MAAM,iBAAiB,EACrB,WACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAC,MAAD;CACE,aAAU;CACV,YAAA,GAAA,GAAA,IACE,kJACA,SACF;CACA,GAAI;AACL,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/data-list.d.ts
|
|
6
|
+
interface DataListProps extends React$1.HTMLAttributes<HTMLDListElement> {
|
|
7
|
+
/**
|
|
8
|
+
* `dotted` joins each label to its value with a dotted leader; `stacked` puts
|
|
9
|
+
* each label above its value.
|
|
10
|
+
*/
|
|
11
|
+
variant?: 'plain' | 'dotted' | 'stacked';
|
|
12
|
+
}
|
|
13
|
+
declare const DataList: ({
|
|
14
|
+
variant,
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
}: DataListProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare const DataListItem: ({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React$1.HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
declare const DataListLabel: ({
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
...props
|
|
26
|
+
}: React$1.HTMLAttributes<HTMLElement>) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
declare const DataListValue: ({
|
|
28
|
+
className,
|
|
29
|
+
...props
|
|
30
|
+
}: React$1.HTMLAttributes<HTMLElement>) => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { DataList, DataListItem, DataListLabel, type DataListProps, DataListValue };
|
|
33
|
+
//# sourceMappingURL=data-list.d.cts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/data-list.d.ts
|
|
6
|
+
interface DataListProps extends React$1.HTMLAttributes<HTMLDListElement> {
|
|
7
|
+
/**
|
|
8
|
+
* `dotted` joins each label to its value with a dotted leader; `stacked` puts
|
|
9
|
+
* each label above its value.
|
|
10
|
+
*/
|
|
11
|
+
variant?: 'plain' | 'dotted' | 'stacked';
|
|
12
|
+
}
|
|
13
|
+
declare const DataList: ({
|
|
14
|
+
variant,
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
}: DataListProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare const DataListItem: ({
|
|
19
|
+
className,
|
|
20
|
+
...props
|
|
21
|
+
}: React$1.HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
declare const DataListLabel: ({
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
...props
|
|
26
|
+
}: React$1.HTMLAttributes<HTMLElement>) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
declare const DataListValue: ({
|
|
28
|
+
className,
|
|
29
|
+
...props
|
|
30
|
+
}: React$1.HTMLAttributes<HTMLElement>) => import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { DataList, DataListItem, DataListLabel, type DataListProps, DataListValue };
|
|
33
|
+
//# sourceMappingURL=data-list.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../utils/cn.js";
|
|
3
|
+
import { Separator } from "./separator.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/data-list.tsx
|
|
6
|
+
const DataList = ({ variant = "plain", className, ...props }) => /* @__PURE__ */ jsx("dl", {
|
|
7
|
+
"data-slot": "data-list",
|
|
8
|
+
"data-variant": variant,
|
|
9
|
+
className: cn("group/data-list flex flex-col text-sm text-gray", variant === "stacked" ? "gap-4" : "gap-2", className),
|
|
10
|
+
...props
|
|
11
|
+
});
|
|
12
|
+
const DataListItem = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
13
|
+
"data-slot": "data-list-item",
|
|
14
|
+
className: cn("flex items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-col group-data-[variant=stacked]/data-list:items-stretch group-data-[variant=stacked]/data-list:gap-1", className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
const DataListLabel = ({ className, children, ...props }) => /* @__PURE__ */ jsxs("dt", {
|
|
18
|
+
"data-slot": "data-list-label",
|
|
19
|
+
className: cn("flex flex-1 items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-none group-data-[variant=stacked]/data-list:text-gray-light", className),
|
|
20
|
+
...props,
|
|
21
|
+
children: [/* @__PURE__ */ jsx("span", { children }), /* @__PURE__ */ jsx(Separator, {
|
|
22
|
+
variant: "dotted",
|
|
23
|
+
className: "hidden min-w-4 flex-1 group-data-[variant=dotted]/data-list:block",
|
|
24
|
+
"aria-hidden": true
|
|
25
|
+
})]
|
|
26
|
+
});
|
|
27
|
+
const DataListValue = ({ className, ...props }) => /* @__PURE__ */ jsx("dd", {
|
|
28
|
+
"data-slot": "data-list-value",
|
|
29
|
+
className: cn("min-w-0 text-end wrap-break-word tabular-nums group-data-[variant=dotted]/data-list:shrink-0 group-data-[variant=stacked]/data-list:text-start", className),
|
|
30
|
+
...props
|
|
31
|
+
});
|
|
32
|
+
//#endregion
|
|
33
|
+
export { DataList, DataListItem, DataListLabel, DataListValue };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=data-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list.js","names":[],"sources":["../../src/components/data-list.tsx"],"sourcesContent":["import type * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Separator } from './separator'\n\ninterface DataListProps extends React.HTMLAttributes<HTMLDListElement> {\n /**\n * `dotted` joins each label to its value with a dotted leader; `stacked` puts\n * each label above its value.\n */\n variant?: 'plain' | 'dotted' | 'stacked'\n}\n\nconst DataList = ({\n variant = 'plain',\n className,\n ...props\n}: DataListProps) => (\n <dl\n data-slot=\"data-list\"\n data-variant={variant}\n className={cn(\n 'group/data-list flex flex-col text-sm text-gray',\n variant === 'stacked' ? 'gap-4' : 'gap-2',\n className,\n )}\n {...props}\n />\n)\n\nconst DataListItem = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"data-list-item\"\n className={cn(\n 'flex items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-col group-data-[variant=stacked]/data-list:items-stretch group-data-[variant=stacked]/data-list:gap-1',\n className,\n )}\n {...props}\n />\n)\n\n// The leader lives inside <dt>: a <dl> item may only hold <dt> and <dd>.\n// A plain value wraps instead of overflowing; a dotted one (an amount) never breaks.\nconst DataListLabel = ({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLElement>) => (\n <dt\n data-slot=\"data-list-label\"\n className={cn(\n 'flex flex-1 items-baseline gap-2 group-data-[variant=stacked]/data-list:flex-none group-data-[variant=stacked]/data-list:text-gray-light',\n className,\n )}\n {...props}\n >\n <span>{children}</span>\n <Separator\n variant=\"dotted\"\n className=\"hidden min-w-4 flex-1 group-data-[variant=dotted]/data-list:block\"\n aria-hidden\n />\n </dt>\n)\n\nconst DataListValue = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) => (\n <dd\n data-slot=\"data-list-value\"\n className={cn(\n 'min-w-0 text-end wrap-break-word tabular-nums group-data-[variant=dotted]/data-list:shrink-0 group-data-[variant=stacked]/data-list:text-start',\n className,\n )}\n {...props}\n />\n)\n\nexport { DataList, DataListItem, DataListLabel, DataListValue }\nexport type { DataListProps }\n"],"mappings":";;;;;AAYA,MAAM,YAAY,EAChB,UAAU,SACV,WACA,GAAG,YAEH,oBAAC,MAAD;CACE,aAAU;CACV,gBAAc;CACd,WAAW,GACT,mDACA,YAAY,YAAY,UAAU,SAClC,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,gBAAgB,EACpB,WACA,GAAG,YAEH,oBAAC,OAAD;CACE,aAAU;CACV,WAAW,GACT,+KACA,SACF;CACA,GAAI;AACL,CAAA;AAKH,MAAM,iBAAiB,EACrB,WACA,UACA,GAAG,YAEH,qBAAC,MAAD;CACE,aAAU;CACV,WAAW,GACT,4IACA,SACF;CACA,GAAI;WANN,CAQE,oBAAC,QAAD,EAAO,SAAe,CAAA,GACtB,oBAAC,WAAD;EACE,SAAQ;EACR,WAAU;EACV,eAAA;CACD,CAAA,CACC;;AAGN,MAAM,iBAAiB,EACrB,WACA,GAAG,YAEH,oBAAC,MAAD;CACE,aAAU;CACV,WAAW,GACT,kJACA,SACF;CACA,GAAI;AACL,CAAA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const require_chunk = require("../chunk-DY84GLCh.cjs");
|
|
4
4
|
const require_components_button = require("./button.cjs");
|
|
5
|
+
const require_components_theme = require("./theme.cjs");
|
|
5
6
|
let react = require("react");
|
|
6
7
|
react = require_chunk.__toESM(react);
|
|
7
8
|
let _epilot_spark_icons = require("@epilot/spark-icons");
|
|
@@ -31,10 +32,11 @@ function DialogTrigger(props) {
|
|
|
31
32
|
...props
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
|
-
function DialogPortal(props) {
|
|
35
|
+
function DialogPortal({ children, ...props }) {
|
|
35
36
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Portal, {
|
|
36
37
|
"data-slot": "dialog-portal",
|
|
37
|
-
...props
|
|
38
|
+
...props,
|
|
39
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_theme.PortalTheme, { children })
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
42
|
function DialogClose({ className, children, ...props }) {
|
|
@@ -72,7 +74,7 @@ function DialogContent({ className, ...props }) {
|
|
|
72
74
|
function DialogHeader({ className, ...props }) {
|
|
73
75
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
74
76
|
"data-slot": "dialog-header",
|
|
75
|
-
className: (0, cn.cn)("flex flex-col gap-
|
|
77
|
+
className: (0, cn.cn)("flex flex-col gap-2", className),
|
|
76
78
|
...props
|
|
77
79
|
});
|
|
78
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.cjs","names":["DialogPrimitive","buttonVariants","Close"],"sources":["../../src/components/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog'\nimport { Close } from '@epilot/spark-icons'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\n// Our dialogs contain interactive elements that are mounted outside of the dialog\n// Browser extensions like password managers or grammar checkers are also mounted outside\n// We still dismiss on a click/tap outside: a genuine outside press lands on a\n// backdrop (our styled one, or Base UI's internal inert backdrop when modal)\nfunction isBackdropPress(event: Event | undefined) {\n const target = event?.target\n return (\n target instanceof HTMLElement &&\n (target.dataset.overlay === 'true' ||\n target.hasAttribute('data-base-ui-inert'))\n )\n}\n\nfunction Dialog({\n onOpenChange,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n {...props}\n onOpenChange={(open, eventDetails) => {\n if (\n !open &&\n eventDetails.reason === 'outside-press' &&\n !isBackdropPress(eventDetails.event)\n ) {\n eventDetails.cancel()\n return\n }\n onOpenChange?.(open, eventDetails)\n }}\n />\n )\n}\n\nfunction DialogTrigger(\n props: React.ComponentProps<typeof DialogPrimitive.Trigger>,\n) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal(\n props: React.ComponentProps<typeof DialogPrimitive.Portal
|
|
1
|
+
{"version":3,"file":"dialog.cjs","names":["DialogPrimitive","PortalTheme","buttonVariants","Close"],"sources":["../../src/components/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog'\nimport { Close } from '@epilot/spark-icons'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\nimport { PortalTheme } from './theme'\n\n// Our dialogs contain interactive elements that are mounted outside of the dialog\n// Browser extensions like password managers or grammar checkers are also mounted outside\n// We still dismiss on a click/tap outside: a genuine outside press lands on a\n// backdrop (our styled one, or Base UI's internal inert backdrop when modal)\nfunction isBackdropPress(event: Event | undefined) {\n const target = event?.target\n return (\n target instanceof HTMLElement &&\n (target.dataset.overlay === 'true' ||\n target.hasAttribute('data-base-ui-inert'))\n )\n}\n\nfunction Dialog({\n onOpenChange,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n {...props}\n onOpenChange={(open, eventDetails) => {\n if (\n !open &&\n eventDetails.reason === 'outside-press' &&\n !isBackdropPress(eventDetails.event)\n ) {\n eventDetails.cancel()\n return\n }\n onOpenChange?.(open, eventDetails)\n }}\n />\n )\n}\n\nfunction DialogTrigger(\n props: React.ComponentProps<typeof DialogPrimitive.Trigger>,\n) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return (\n <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props}>\n <PortalTheme>{children}</PortalTheme>\n </DialogPrimitive.Portal>\n )\n}\n\n// bare = the ready-made corner X (label is the consumer's, via aria-label);\n// with children or a render prop it stays the bare primitive (footer buttons, custom closes)\nfunction DialogClose({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n if (children || props.render) {\n return (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={className}\n {...props}\n >\n {children}\n </DialogPrimitive.Close>\n )\n }\n\n return (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-2.5 right-3 rounded-full',\n className,\n )}\n {...props}\n >\n <Close className=\"[--spark-icon-size:calc(20px*var(--spark-scaling,1))]\" />\n </DialogPrimitive.Close>\n )\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Backdrop>) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed top-(--spark-viewport-top,0) right-0 left-0 z-50 h-(--spark-viewport-height,100%) bg-(--color-overlay) transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs motion-reduce:transition-none',\n className,\n )}\n data-overlay=\"true\"\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Popup>) {\n return (\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-(--spark-viewport-center-y,50%) left-[50%] z-50 grid w-[90%] max-w-lg min-w-80 translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg bg-gray-2 p-4 text-gray shadow-lg transition-[top,opacity,translate,scale] duration-200 motion-reduce:transition-none sm:w-1/2',\n // enter/exit: fade + zoom + a slight upward offset (was animate-in/out)\n 'data-starting-style:translate-y-[-52%] data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-ending-style:translate-y-[-52%] data-ending-style:scale-95 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-4 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-lg font-bold text-gray', className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-sm text-gray-light', className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAS,gBAAgB,OAA0B;CACjD,MAAM,SAAS,OAAO;CACtB,OACE,kBAAkB,gBACjB,OAAO,QAAQ,YAAY,UAC1B,OAAO,aAAa,oBAAoB;AAE9C;AAEA,SAAS,OAAO,EACd,cACA,GAAG,SACiD;CACpD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,MAAjB;EACE,GAAI;EACJ,eAAe,MAAM,iBAAiB;GACpC,IACE,CAAC,QACD,aAAa,WAAW,mBACxB,CAAC,gBAAgB,aAAa,KAAK,GACnC;IACA,aAAa,OAAO;IACpB;GACF;GACA,eAAe,MAAM,YAAY;EACnC;CACD,CAAA;AAEL;AAEA,SAAS,cACP,OACA;CACA,OAAO,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE;AAEA,SAAS,aAAa,EACpB,UACA,GAAG,SACmD;CACtD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;YACpD,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,aAAD,EAAc,SAAsB,CAAA;CACd,CAAA;AAE5B;AAIA,SAAS,YAAY,EACnB,WACA,UACA,GAAG,SACkD;CACrD,IAAI,YAAY,MAAM,QACpB,OACE,iBAAA,GAAA,kBAAA,KAACD,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACC;EACX,GAAI;EAEH;CACoB,CAAA;CAI3B,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IACEE,0BAAAA,eAAe;GAAE,MAAM;GAAQ,SAAS;EAAW,CAAC,GACpD,yCACA,SACF;EACA,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAACC,oBAAAA,OAAD,EAAO,WAAU,wDAAyD,CAAA;CACrD,CAAA;AAE3B;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACqD;CACxD,OACE,iBAAA,GAAA,kBAAA,KAACH,sBAAAA,OAAgB,UAAjB;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IACE,kRACA,SACF;EACA,gBAAa;EACb,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACkD;CACrD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IACE,kRAEA,qGACA,+FACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IAAc,uBAAuB,SAAS;EAC9C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IACE,0DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;CACrD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IAAc,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;CAC3D,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,aAAjB;EACE,aAAU;EACV,YAAA,GAAA,GAAA,IAAc,2BAA2B,SAAS;EAClD,GAAI;CACL,CAAA;AAEL"}
|
|
@@ -9,7 +9,10 @@ declare function Dialog({
|
|
|
9
9
|
...props
|
|
10
10
|
}: React$1.ComponentProps<typeof Dialog$1.Root>): import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
declare function DialogTrigger(props: React$1.ComponentProps<typeof Dialog$1.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
declare function DialogPortal(
|
|
12
|
+
declare function DialogPortal({
|
|
13
|
+
children,
|
|
14
|
+
...props
|
|
15
|
+
}: React$1.ComponentProps<typeof Dialog$1.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
13
16
|
declare function DialogClose({
|
|
14
17
|
className,
|
|
15
18
|
children,
|
|
@@ -9,7 +9,10 @@ declare function Dialog({
|
|
|
9
9
|
...props
|
|
10
10
|
}: React$1.ComponentProps<typeof Dialog$1.Root>): import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
declare function DialogTrigger(props: React$1.ComponentProps<typeof Dialog$1.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
declare function DialogPortal(
|
|
12
|
+
declare function DialogPortal({
|
|
13
|
+
children,
|
|
14
|
+
...props
|
|
15
|
+
}: React$1.ComponentProps<typeof Dialog$1.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
13
16
|
declare function DialogClose({
|
|
14
17
|
className,
|
|
15
18
|
children,
|