@revealui/presentation 0.3.2 → 0.3.3
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/README.md +14 -0
- package/dist/{Text-BWMs9_wn.js → Text-mMOCv1lF.js} +11 -3
- package/dist/Text-mMOCv1lF.js.map +1 -0
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +16 -10
- package/dist/client.js.map +1 -1
- package/dist/components/BuiltWithRevealUI.d.ts +4 -2
- package/dist/components/BuiltWithRevealUI.d.ts.map +1 -1
- package/dist/components/Button.d.ts +4 -2
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/accordion.d.ts.map +1 -1
- package/dist/components/alert.d.ts.map +1 -1
- package/dist/components/avatar.d.ts.map +1 -1
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/breadcrumb.d.ts.map +1 -1
- package/dist/components/button-headless.d.ts.map +1 -1
- package/dist/components/callout.d.ts.map +1 -1
- package/dist/components/checkbox-headless.d.ts.map +1 -1
- package/dist/components/combobox.d.ts.map +1 -1
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/drawer.d.ts.map +1 -1
- package/dist/components/dropdown.d.ts.map +1 -1
- package/dist/components/empty-state.d.ts.map +1 -1
- package/dist/components/fieldset.d.ts.map +1 -1
- package/dist/components/icon.d.ts +53 -0
- package/dist/components/icon.d.ts.map +1 -0
- package/dist/components/input-headless.d.ts.map +1 -1
- package/dist/components/kbd.d.ts.map +1 -1
- package/dist/components/listbox.d.ts.map +1 -1
- package/dist/components/navbar.d.ts.map +1 -1
- package/dist/components/radio.d.ts.map +1 -1
- package/dist/components/select-headless.d.ts.map +1 -1
- package/dist/components/sidebar.d.ts.map +1 -1
- package/dist/components/skeleton.d.ts.map +1 -1
- package/dist/components/stat.d.ts.map +1 -1
- package/dist/components/switch.d.ts.map +1 -1
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/textarea-headless.d.ts.map +1 -1
- package/dist/components/timeline.d.ts.map +1 -1
- package/dist/components/toast.d.ts.map +1 -1
- package/dist/components/tooltip.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/use-theme.d.ts +26 -0
- package/dist/hooks/use-theme.d.ts.map +1 -0
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +403 -3
- package/dist/server.js.map +1 -0
- package/dist/{skeleton-Bb51IWbG.js → skeleton-CHPpiyJj.js} +35 -83
- package/dist/skeleton-CHPpiyJj.js.map +1 -0
- package/dist/{tooltip-DZGP3hO_.js → use-theme-QxeZadnD.js} +285 -154
- package/dist/use-theme-QxeZadnD.js.map +1 -0
- package/dist/utils/cn.d.ts +21 -4
- package/dist/utils/cn.d.ts.map +1 -1
- package/package.json +3 -6
- package/dist/Text-BWMs9_wn.js.map +0 -1
- package/dist/skeleton-Bb51IWbG.js.map +0 -1
- package/dist/tooltip-DZGP3hO_.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","names":[],"sources":["../src/components/icon.tsx"],"sourcesContent":["import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst sizeClasses: Record<IconSize, string> = {\n xs: 'size-3',\n sm: 'size-4',\n md: 'size-5',\n lg: 'size-6',\n xl: 'size-8',\n};\n\nexport interface IconProps extends React.SVGProps<SVGSVGElement> {\n /** Icon size preset */\n size?: IconSize;\n /** Accessible label — if omitted, icon is decorative (aria-hidden) */\n label?: string;\n}\n\n/**\n * Base SVG icon wrapper. All icons use 24x24 viewBox with stroke rendering.\n * Pass `label` for accessible icons, omit for decorative.\n */\nfunction IconBase({ size = 'md', label, className, children, ...props }: IconProps) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden={label ? undefined : true}\n aria-label={label}\n role={label ? 'img' : undefined}\n className={cn(sizeClasses[size], 'shrink-0', className)}\n {...props}\n >\n {label && <title>{label}</title>}\n {children}\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Navigation & Actions\n// ---------------------------------------------------------------------------\n\nexport function IconChevronDown(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m6 9 6 6 6-6\" />\n </IconBase>\n );\n}\n\nexport function IconChevronUp(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m18 15-6-6-6 6\" />\n </IconBase>\n );\n}\n\nexport function IconChevronLeft(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m15 18-6-6 6-6\" />\n </IconBase>\n );\n}\n\nexport function IconChevronRight(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m9 18 6-6-6-6\" />\n </IconBase>\n );\n}\n\nexport function IconArrowLeft(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M19 12H5M12 19l-7-7 7-7\" />\n </IconBase>\n );\n}\n\nexport function IconArrowRight(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M5 12h14M12 5l7 7-7 7\" />\n </IconBase>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Interface\n// ---------------------------------------------------------------------------\n\nexport function IconClose(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </IconBase>\n );\n}\n\nexport function IconMenu(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M4 6h16M4 12h16M4 18h16\" />\n </IconBase>\n );\n}\n\nexport function IconSearch(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </IconBase>\n );\n}\n\nexport function IconPlus(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M12 5v14M5 12h14\" />\n </IconBase>\n );\n}\n\nexport function IconMinus(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M5 12h14\" />\n </IconBase>\n );\n}\n\nexport function IconMoreHorizontal(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </IconBase>\n );\n}\n\nexport function IconMoreVertical(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"12\" cy=\"5\" r=\"1\" />\n <circle cx=\"12\" cy=\"19\" r=\"1\" />\n </IconBase>\n );\n}\n\nexport function IconExternalLink(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14 21 3\" />\n </IconBase>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Status & Feedback\n// ---------------------------------------------------------------------------\n\nexport function IconCheck(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M20 6 9 17l-5-5\" />\n </IconBase>\n );\n}\n\nexport function IconCheckCircle(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <path d=\"m9 11 3 3L22 4\" />\n </IconBase>\n );\n}\n\nexport function IconAlertCircle(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 8v4M12 16h.01\" />\n </IconBase>\n );\n}\n\nexport function IconAlertTriangle(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\" />\n <path d=\"M12 9v4M12 17h.01\" />\n </IconBase>\n );\n}\n\nexport function IconInfo(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4M12 8h.01\" />\n </IconBase>\n );\n}\n\nexport function IconXCircle(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m15 9-6 6M9 9l6 6\" />\n </IconBase>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Content & Data\n// ---------------------------------------------------------------------------\n\nexport function IconCopy(props: IconProps) {\n return (\n <IconBase {...props}>\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </IconBase>\n );\n}\n\nexport function IconTrash(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M3 6h18M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n </IconBase>\n );\n}\n\nexport function IconEdit(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\" />\n <path d=\"m15 5 4 4\" />\n </IconBase>\n );\n}\n\nexport function IconDownload(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3\" />\n </IconBase>\n );\n}\n\nexport function IconUpload(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12\" />\n </IconBase>\n );\n}\n\nexport function IconFilter(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M22 3H2l8 9.46V19l4 2v-8.54Z\" />\n </IconBase>\n );\n}\n\n// ---------------------------------------------------------------------------\n// User & Auth\n// ---------------------------------------------------------------------------\n\nexport function IconUser(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </IconBase>\n );\n}\n\nexport function IconUsers(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75\" />\n </IconBase>\n );\n}\n\nexport function IconLogOut(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9\" />\n </IconBase>\n );\n}\n\nexport function IconSettings(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1Z\" />\n </IconBase>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Theme\n// ---------------------------------------------------------------------------\n\nexport function IconSun(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\" />\n </IconBase>\n );\n}\n\nexport function IconMoon(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z\" />\n </IconBase>\n );\n}\n\nexport function IconMonitor(props: IconProps) {\n return (\n <IconBase {...props}>\n <rect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\" />\n <path d=\"M8 21h8M12 17v4\" />\n </IconBase>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Misc\n// ---------------------------------------------------------------------------\n\nexport function IconCode(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m16 18 6-6-6-6M8 6l-6 6 6 6\" />\n </IconBase>\n );\n}\n\nexport function IconTerminal(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m4 17 6-6-6-6M12 19h8\" />\n </IconBase>\n );\n}\n\nexport function IconGlobe(props: IconProps) {\n return (\n <IconBase {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10Z\" />\n </IconBase>\n );\n}\n\nexport function IconHeart(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\" />\n </IconBase>\n );\n}\n\nexport function IconStar(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01Z\" />\n </IconBase>\n );\n}\n\nexport function IconEye(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </IconBase>\n );\n}\n\nexport function IconEyeOff(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <path d=\"m1 1 22 22\" />\n </IconBase>\n );\n}\n\nexport function IconLock(props: IconProps) {\n return (\n <IconBase {...props}>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </IconBase>\n );\n}\n\nexport function IconUnlock(props: IconProps) {\n return (\n <IconBase {...props}>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 9.9-1\" />\n </IconBase>\n );\n}\n\nexport function IconRefresh(props: IconProps) {\n return (\n <IconBase {...props}>\n <path d=\"M1 4v6h6M23 20v-6h-6\" />\n <path d=\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4-4.64 4.36A9 9 0 0 1 3.51 15\" />\n </IconBase>\n );\n}\n\nexport function IconLoading(props: IconProps) {\n return (\n <IconBase {...props} className={cn('animate-spin', props.className)}>\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </IconBase>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,77 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
//#region ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
4
|
-
function r(e) {
|
|
5
|
-
var t, f, n = "";
|
|
6
|
-
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
7
|
-
else if ("object" == typeof e) if (Array.isArray(e)) {
|
|
8
|
-
var o = e.length;
|
|
9
|
-
for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
|
|
10
|
-
} else for (f in e) e[f] && (n && (n += " "), n += f);
|
|
11
|
-
return n;
|
|
12
|
-
}
|
|
13
|
-
function clsx() {
|
|
14
|
-
for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
15
|
-
return n;
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region ../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs
|
|
19
|
-
/**
|
|
20
|
-
* Copyright 2022 Joe Bell. All rights reserved.
|
|
21
|
-
*
|
|
22
|
-
* This file is licensed to you under the Apache License, Version 2.0
|
|
23
|
-
* (the "License"); you may not use this file except in compliance with the
|
|
24
|
-
* License. You may obtain a copy of the License at
|
|
25
|
-
*
|
|
26
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
27
|
-
*
|
|
28
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
29
|
-
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
30
|
-
* WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the
|
|
31
|
-
* License for the specific language governing permissions and limitations under
|
|
32
|
-
* the License.
|
|
33
|
-
*/ var falsyToString = (value) => typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
34
|
-
var cx = clsx;
|
|
35
|
-
var cva = (base, config) => (props) => {
|
|
36
|
-
var _config_compoundVariants;
|
|
37
|
-
if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
38
|
-
const { variants, defaultVariants } = config;
|
|
39
|
-
const getVariantClassNames = Object.keys(variants).map((variant) => {
|
|
40
|
-
const variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
41
|
-
const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
42
|
-
if (variantProp === null) return null;
|
|
43
|
-
const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
44
|
-
return variants[variant][variantKey];
|
|
45
|
-
});
|
|
46
|
-
const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param) => {
|
|
47
|
-
let [key, value] = param;
|
|
48
|
-
if (value === void 0) return acc;
|
|
49
|
-
acc[key] = value;
|
|
50
|
-
return acc;
|
|
51
|
-
}, {});
|
|
52
|
-
return cx(base, getVariantClassNames, config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param) => {
|
|
53
|
-
let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
|
|
54
|
-
return Object.entries(compoundVariantOptions).every((param) => {
|
|
55
|
-
let [key, value] = param;
|
|
56
|
-
return Array.isArray(value) ? value.includes({
|
|
57
|
-
...defaultVariants,
|
|
58
|
-
...propsWithoutUndefined
|
|
59
|
-
}[key]) : {
|
|
60
|
-
...defaultVariants,
|
|
61
|
-
...propsWithoutUndefined
|
|
62
|
-
}[key] === value;
|
|
63
|
-
}) ? [
|
|
64
|
-
...acc,
|
|
65
|
-
cvClass,
|
|
66
|
-
cvClassName
|
|
67
|
-
] : acc;
|
|
68
|
-
}, []), props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
69
|
-
};
|
|
70
|
-
//#endregion
|
|
71
3
|
//#region src/utils/cn.ts
|
|
72
4
|
function cn(...inputs) {
|
|
73
5
|
const classes = [];
|
|
74
|
-
for (const input of inputs.flat()) {
|
|
6
|
+
for (const input of inputs.flat(Infinity)) {
|
|
75
7
|
if (!input) continue;
|
|
76
8
|
if (typeof input === "string" || typeof input === "number") {
|
|
77
9
|
classes.push(String(input));
|
|
@@ -83,6 +15,22 @@ function cn(...inputs) {
|
|
|
83
15
|
}
|
|
84
16
|
return classes.join(" ").trim();
|
|
85
17
|
}
|
|
18
|
+
function cva(base, config) {
|
|
19
|
+
const fn = (props) => {
|
|
20
|
+
const parts = [base];
|
|
21
|
+
for (const key of Object.keys(config.variants)) {
|
|
22
|
+
const propValue = props?.[key];
|
|
23
|
+
const selected = propValue === null ? null : propValue ?? config.defaultVariants?.[key];
|
|
24
|
+
if (selected != null) {
|
|
25
|
+
const value = config.variants[key]?.[selected];
|
|
26
|
+
if (value) parts.push(value);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (props?.className) parts.push(props.className);
|
|
30
|
+
return parts.filter(Boolean).join(" ");
|
|
31
|
+
};
|
|
32
|
+
return fn;
|
|
33
|
+
}
|
|
86
34
|
//#endregion
|
|
87
35
|
//#region src/primitives/Slot.tsx
|
|
88
36
|
/**
|
|
@@ -103,7 +51,7 @@ function Slot({ children, asChild, ref, ...slotProps }) {
|
|
|
103
51
|
}
|
|
104
52
|
//#endregion
|
|
105
53
|
//#region src/components/Button.tsx
|
|
106
|
-
var buttonVariants = cva("inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background
|
|
54
|
+
var buttonVariants = cva("inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 active:scale-[0.97]", {
|
|
107
55
|
defaultVariants: {
|
|
108
56
|
size: "default",
|
|
109
57
|
variant: "default"
|
|
@@ -117,12 +65,12 @@ var buttonVariants = cva("inline-flex items-center justify-center whitespace-now
|
|
|
117
65
|
sm: "h-9 rounded px-3"
|
|
118
66
|
},
|
|
119
67
|
variant: {
|
|
120
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
121
|
-
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
68
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-md",
|
|
69
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm hover:shadow-md",
|
|
122
70
|
ghost: "hover:bg-card hover:text-accent-foreground",
|
|
123
71
|
link: "text-primary items-start justify-start underline-offset-4 hover:underline",
|
|
124
|
-
outline: "border border-border bg-background hover:bg-card hover:text-accent-foreground",
|
|
125
|
-
primary: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
72
|
+
outline: "border border-border bg-background hover:bg-card hover:text-accent-foreground shadow-sm",
|
|
73
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-md",
|
|
126
74
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80"
|
|
127
75
|
}
|
|
128
76
|
}
|
|
@@ -134,6 +82,10 @@ function Button({ asChild = false, className, isLoading, size, variant, ref, chi
|
|
|
134
82
|
size,
|
|
135
83
|
variant
|
|
136
84
|
})),
|
|
85
|
+
style: {
|
|
86
|
+
transition: "all var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1))",
|
|
87
|
+
borderRadius: "var(--rvui-radius-md, 10px)"
|
|
88
|
+
},
|
|
137
89
|
ref,
|
|
138
90
|
disabled: disabled || isLoading,
|
|
139
91
|
"aria-busy": isLoading || void 0,
|
|
@@ -178,14 +130,14 @@ function Breadcrumb({ items, separator, className }) {
|
|
|
178
130
|
return /* @__PURE__ */ jsx("nav", {
|
|
179
131
|
"aria-label": "Breadcrumb",
|
|
180
132
|
children: /* @__PURE__ */ jsx("ol", {
|
|
181
|
-
className:
|
|
133
|
+
className: cn("flex flex-wrap items-center gap-1.5 text-sm", className),
|
|
182
134
|
children: items.map((item, index) => {
|
|
183
135
|
const isLast = index === items.length - 1;
|
|
184
136
|
return /* @__PURE__ */ jsxs("li", {
|
|
185
137
|
className: "flex items-center gap-1.5",
|
|
186
138
|
children: [isLast || !item.href ? /* @__PURE__ */ jsx("span", {
|
|
187
139
|
"aria-current": isLast ? "page" : void 0,
|
|
188
|
-
className:
|
|
140
|
+
className: cn(isLast ? "font-medium text-zinc-950 dark:text-white" : "text-zinc-500 dark:text-zinc-400"),
|
|
189
141
|
children: item.label
|
|
190
142
|
}) : /* @__PURE__ */ jsx("a", {
|
|
191
143
|
href: item.href,
|
|
@@ -201,7 +153,7 @@ function Breadcrumb({ items, separator, className }) {
|
|
|
201
153
|
//#region src/components/empty-state.tsx
|
|
202
154
|
function EmptyState({ icon, title, description, action, className }) {
|
|
203
155
|
return /* @__PURE__ */ jsxs("div", {
|
|
204
|
-
className:
|
|
156
|
+
className: cn("flex flex-col items-center justify-center rounded-xl border border-dashed border-zinc-300 px-6 py-16 text-center dark:border-zinc-700", className),
|
|
205
157
|
children: [
|
|
206
158
|
icon && /* @__PURE__ */ jsx("div", {
|
|
207
159
|
className: "mb-4 flex size-12 items-center justify-center rounded-full bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400",
|
|
@@ -488,20 +440,20 @@ function Skeleton({ className, ...props }) {
|
|
|
488
440
|
return /* @__PURE__ */ jsx("div", {
|
|
489
441
|
"aria-hidden": "true",
|
|
490
442
|
...props,
|
|
491
|
-
className:
|
|
443
|
+
className: cn("animate-pulse rounded-md bg-zinc-200 dark:bg-zinc-700", className)
|
|
492
444
|
});
|
|
493
445
|
}
|
|
494
446
|
function SkeletonText({ lines = 3, className }) {
|
|
495
447
|
return /* @__PURE__ */ jsx("div", {
|
|
496
|
-
className:
|
|
448
|
+
className: cn("space-y-2", className),
|
|
497
449
|
children: Array.from({ length: lines }).map((_, i) => {
|
|
498
|
-
return /* @__PURE__ */ jsx(Skeleton, { className:
|
|
450
|
+
return /* @__PURE__ */ jsx(Skeleton, { className: cn("h-4", i === lines - 1 && lines > 1 ? "w-4/5" : "w-full") }, i);
|
|
499
451
|
})
|
|
500
452
|
});
|
|
501
453
|
}
|
|
502
454
|
function SkeletonCard({ className }) {
|
|
503
455
|
return /* @__PURE__ */ jsxs("div", {
|
|
504
|
-
className:
|
|
456
|
+
className: cn("rounded-xl border border-zinc-200 p-4 dark:border-zinc-700", className),
|
|
505
457
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
506
458
|
className: "flex items-center gap-3",
|
|
507
459
|
children: [/* @__PURE__ */ jsx(Skeleton, { className: "size-10 rounded-full" }), /* @__PURE__ */ jsxs("div", {
|
|
@@ -515,6 +467,6 @@ function SkeletonCard({ className }) {
|
|
|
515
467
|
});
|
|
516
468
|
}
|
|
517
469
|
//#endregion
|
|
518
|
-
export { Slot as _, PricingTable as a,
|
|
470
|
+
export { Slot as _, PricingTable as a, PaginationEllipsis as c, PaginationNext as d, PaginationPrevious as f, buttonVariants as g, Button as h, Box as i, PaginationItem as l, Breadcrumb as m, SkeletonCard as n, Pagination as o, EmptyState as p, SkeletonText as r, PaginationContent as s, Skeleton as t, PaginationLink as u, cn as v, cva as y };
|
|
519
471
|
|
|
520
|
-
//# sourceMappingURL=skeleton-
|
|
472
|
+
//# sourceMappingURL=skeleton-CHPpiyJj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton-CHPpiyJj.js","names":[],"sources":["../src/utils/cn.ts","../src/primitives/Slot.tsx","../src/components/Button.tsx","../src/components/breadcrumb.tsx","../src/components/empty-state.tsx","../src/components/Pagination.tsx","../src/components/pricing-table.tsx","../src/primitives/Box.tsx","../src/components/skeleton.tsx"],"sourcesContent":["/**\n * Utility function for conditionally joining classNames together.\n * Drop-in replacement for clsx — supports strings, numbers, booleans,\n * objects, and arbitrarily nested arrays.\n */\ntype ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | { [key: string]: boolean }\n | ClassValue[];\n\nexport function cn(...inputs: ClassValue[]): string {\n const classes: string[] = [];\n\n for (const input of (inputs as readonly unknown[]).flat(Infinity) as Exclude<\n ClassValue,\n ClassValue[]\n >[]) {\n if (!input) continue;\n\n if (typeof input === 'string' || typeof input === 'number') {\n classes.push(String(input));\n continue;\n }\n\n if (typeof input === 'object') {\n for (const [key, value] of Object.entries(input)) {\n if (value) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ').trim();\n}\n\n/**\n * Lightweight class-variance-authority replacement.\n * Supports base classes, variants, and defaultVariants.\n */\ntype VariantValues = Record<string, string>;\ntype VariantConfig = Record<string, VariantValues>;\n\ninterface CvaConfig<V extends VariantConfig> {\n variants: V;\n defaultVariants?: { [K in keyof V]?: keyof V[K] };\n}\n\ntype VariantProps<T> = T extends (props?: infer P) => string ? P : never;\n\nfunction cva<V extends VariantConfig>(base: string, config: CvaConfig<V>) {\n type Props = { [K in keyof V]?: keyof V[K] | null } & { className?: string };\n\n const fn = (props?: Props): string => {\n const parts: string[] = [base];\n\n for (const key of Object.keys(config.variants)) {\n const propValue = props?.[key as keyof Props];\n const selected = propValue === null ? null : (propValue ?? config.defaultVariants?.[key]);\n if (selected != null) {\n const value = config.variants[key]?.[selected as string];\n if (value) parts.push(value);\n }\n }\n\n if (props?.className) parts.push(props.className);\n return parts.filter(Boolean).join(' ');\n };\n\n return fn;\n}\n\nexport { cva, type VariantProps };\n","import React, { type Ref } from 'react';\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n asChild?: boolean;\n ref?: React.Ref<HTMLElement>;\n}\n\n/**\n * Slot component for polymorphic composition\n * Allows components to merge props with child elements\n */\nfunction Slot({ children, asChild, ref, ...slotProps }: SlotProps) {\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...slotProps,\n ...(children.props as Record<string, unknown>),\n ref,\n } as unknown as React.HTMLAttributes<HTMLElement>);\n }\n\n return (\n <div {...slotProps} ref={ref as Ref<HTMLDivElement>}>\n {children}\n </div>\n );\n}\n\nexport { Slot };\n","import type React from 'react';\nimport { Slot } from '../primitives/Slot.js';\nimport { cn, cva, type VariantProps } from '../utils/cn.js';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded text-sm font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 active:scale-[0.97]',\n {\n defaultVariants: {\n size: 'default',\n variant: 'default',\n },\n variants: {\n size: {\n clear: '',\n default: 'h-10 px-4 py-2',\n icon: 'size-10',\n lg: 'h-11 rounded px-8',\n sm: 'h-9 rounded px-3',\n },\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-md',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm hover:shadow-md',\n ghost: 'hover:bg-card hover:text-accent-foreground',\n link: 'text-primary items-start justify-start underline-offset-4 hover:underline',\n outline:\n 'border border-border bg-background hover:bg-card hover:text-accent-foreground shadow-sm',\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-md',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n },\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n isLoading?: boolean;\n ref?: React.Ref<HTMLButtonElement>;\n}\n\nfunction Button({\n asChild = false,\n className,\n isLoading,\n size,\n variant,\n ref,\n children,\n disabled,\n ...props\n}: ButtonProps) {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n className={cn(buttonVariants({ className, size, variant }))}\n style={{\n transition:\n 'all var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1))',\n borderRadius: 'var(--rvui-radius-md, 10px)',\n }}\n ref={ref}\n disabled={disabled || isLoading}\n aria-busy={isLoading || undefined}\n {...props}\n >\n {isLoading && (\n <svg\n className=\"mr-2 size-4 animate-spin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n {children}\n </Comp>\n );\n}\n\nexport { Button, buttonVariants };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type BreadcrumbItem = {\n label: React.ReactNode;\n href?: string;\n};\n\nexport function Breadcrumb({\n items,\n separator,\n className,\n}: {\n items: BreadcrumbItem[];\n separator?: React.ReactNode;\n className?: string;\n}) {\n const sep = separator ?? (\n <svg aria-hidden=\"true\" viewBox=\"0 0 16 16\" fill=\"none\" className=\"size-3.5 text-zinc-400\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n\n return (\n <nav aria-label=\"Breadcrumb\">\n <ol className={cn('flex flex-wrap items-center gap-1.5 text-sm', className)}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: breadcrumb items are positionally ordered with no stable ID\n <li key={index} className=\"flex items-center gap-1.5\">\n {isLast || !item.href ? (\n <span\n aria-current={isLast ? 'page' : undefined}\n className={cn(\n isLast\n ? 'font-medium text-zinc-950 dark:text-white'\n : 'text-zinc-500 dark:text-zinc-400',\n )}\n >\n {item.label}\n </span>\n ) : (\n <a\n href={item.href}\n className=\"text-zinc-500 transition-colors hover:text-zinc-950 dark:text-zinc-400 dark:hover:text-white\"\n >\n {item.label}\n </a>\n )}\n {!isLast && sep}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n}\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n}: {\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: React.ReactNode;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'flex flex-col items-center justify-center rounded-xl border border-dashed border-zinc-300 px-6 py-16 text-center dark:border-zinc-700',\n className,\n )}\n >\n {icon && (\n <div className=\"mb-4 flex size-12 items-center justify-center rounded-full bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400\">\n {icon}\n </div>\n )}\n <h3 className=\"text-sm font-semibold text-zinc-950 dark:text-white\">{title}</h3>\n {description && (\n <p className=\"mt-1 max-w-sm text-sm text-zinc-500 dark:text-zinc-400\">{description}</p>\n )}\n {action && <div className=\"mt-6\">{action}</div>}\n </div>\n );\n}\n","import type * as React from 'react';\nimport { cn } from '../utils/cn.js';\nimport type { ButtonProps } from './Button.js';\nimport { buttonVariants } from './Button.js';\n\nconst ChevronLeft = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className={cn('size-6', className)}\n >\n <title>Previous page</title>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n </svg>\n );\n};\n\nconst ChevronRight = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className={cn('size-6', className)}\n >\n <title>Next page</title>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" />\n </svg>\n );\n};\n\nconst MoreHorizontal = ({ className }: { className?: string }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 6\"\n className={cn('size-6', className)}\n >\n <title>More pages</title>\n <circle cx=\"6\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n <circle cx=\"18\" cy=\"3\" r=\"3\" fill=\"currentColor\" />\n </svg>\n );\n};\n\nexport type PaginationProps = React.ComponentProps<'nav'>;\n\nconst Pagination = ({ className, ...props }: PaginationProps) => (\n <nav\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n);\n\nfunction PaginationContent({\n className,\n ref,\n ...props\n}: React.ComponentProps<'ul'> & { ref?: React.Ref<HTMLUListElement> }) {\n return <ul className={cn('flex flex-row items-center gap-1', className)} ref={ref} {...props} />;\n}\n\nfunction PaginationItem({\n className,\n ref,\n ...props\n}: React.ComponentProps<'li'> & { ref?: React.Ref<HTMLLIElement> }) {\n return <li className={cn('', className)} ref={ref} {...props} />;\n}\n\nexport interface PaginationLinkProps\n extends Pick<ButtonProps, 'size'>,\n React.ComponentProps<'button'> {\n isActive?: boolean;\n}\n\nconst PaginationLink = ({\n className,\n isActive,\n size = 'icon',\n disabled,\n ...props\n}: PaginationLinkProps) => (\n <button\n aria-current={isActive ? 'page' : undefined}\n aria-disabled={disabled ? true : undefined}\n disabled={disabled}\n className={cn(\n buttonVariants({\n size,\n variant: isActive ? 'outline' : 'ghost',\n }),\n className,\n )}\n {...props}\n />\n);\n\nexport type PaginationPreviousProps = React.ComponentProps<typeof PaginationLink>;\n\nconst PaginationPrevious = ({ className, ...props }: PaginationPreviousProps) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn('gap-1 pl-2.5', className)}\n size=\"default\"\n {...props}\n >\n <ChevronLeft className=\"size-4\" />\n <span>Previous</span>\n </PaginationLink>\n);\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink>;\n\nconst PaginationNext = ({ className, ...props }: PaginationNextProps) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn('gap-1 pr-2.5', className)}\n size=\"default\"\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"size-4\" />\n </PaginationLink>\n);\n\nexport type PaginationEllipsisProps = React.ComponentProps<'span'>;\n\nconst PaginationEllipsis = ({ className, ...props }: PaginationEllipsisProps) => (\n <span\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n);\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","import { cn } from '../utils/cn.js';\n\n// =============================================================================\n// Types (mirrors @revealui/contracts/pricing — no import to avoid coupling)\n// =============================================================================\n\nexport interface PricingTier {\n id: string;\n name: string;\n price?: string;\n period?: string;\n description: string;\n features: string[];\n cta: string;\n ctaHref: string;\n highlighted: boolean;\n}\n\nexport interface PricingTableProps {\n tiers: PricingTier[];\n /** Highlights the active plan tier */\n currentTier?: string;\n /** Compact (horizontal row) vs full (grid) layout */\n compact?: boolean;\n /** Callback when a tier is selected */\n onSelectTier?: (id: string) => void;\n className?: string;\n}\n\n// =============================================================================\n// Check Icon (inline SVG — no external deps)\n// =============================================================================\n\nfunction CheckIcon() {\n return (\n <svg\n className=\"h-4 w-4 shrink-0 text-blue-600 mt-0.5\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n}\n\n// =============================================================================\n// PricingTable\n// =============================================================================\n\nexport function PricingTable({\n tiers,\n currentTier,\n compact = false,\n onSelectTier,\n className,\n}: PricingTableProps) {\n if (compact) {\n return (\n <div className={cn('flex flex-col gap-4 sm:flex-row', className)}>\n {tiers.map((tier) => (\n <PricingCardCompact\n key={tier.id}\n tier={tier}\n isCurrent={tier.id === currentTier}\n onSelect={onSelectTier}\n />\n ))}\n </div>\n );\n }\n\n return (\n <div\n className={cn(\n 'grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-4',\n tiers.length === 3 && 'lg:grid-cols-3',\n tiers.length === 2 && 'lg:grid-cols-2 max-w-3xl mx-auto',\n className,\n )}\n >\n {tiers.map((tier) => (\n <PricingCardFull\n key={tier.id}\n tier={tier}\n isCurrent={tier.id === currentTier}\n onSelect={onSelectTier}\n />\n ))}\n </div>\n );\n}\n\n// =============================================================================\n// Full Card (marketing grid layout)\n// =============================================================================\n\nfunction PricingCardFull({\n tier,\n isCurrent,\n onSelect,\n}: {\n tier: PricingTier;\n isCurrent: boolean;\n onSelect?: (id: string) => void;\n}) {\n const isHighlighted = tier.highlighted && !isCurrent;\n\n return (\n <div\n className={cn(\n 'relative rounded-2xl bg-white p-8 shadow-lg dark:bg-zinc-900',\n isHighlighted\n ? 'ring-2 ring-blue-600'\n : isCurrent\n ? 'ring-2 ring-emerald-500'\n : 'ring-1 ring-zinc-200 dark:ring-zinc-800',\n )}\n >\n {isHighlighted && (\n <div className=\"absolute -top-4 left-0 right-0 mx-auto w-32 rounded-full bg-gradient-to-r from-blue-600 to-indigo-600 px-3 py-1.5 text-sm font-semibold text-white text-center shadow-lg\">\n Most Popular\n </div>\n )}\n {isCurrent && (\n <div className=\"absolute -top-4 left-0 right-0 mx-auto w-32 rounded-full bg-emerald-600 px-3 py-1.5 text-sm font-semibold text-white text-center shadow-lg\">\n Current Plan\n </div>\n )}\n\n <div className=\"mb-8\">\n <h3 className=\"text-xl font-bold tracking-tight text-zinc-900 dark:text-white\">\n {tier.name}\n </h3>\n <p className=\"mt-2 text-sm text-zinc-600 dark:text-zinc-400\">{tier.description}</p>\n <p className=\"mt-6 flex items-baseline gap-x-1\">\n <span className=\"text-4xl font-bold tracking-tight text-zinc-900 dark:text-white\">\n {tier.price ?? '—'}\n </span>\n {tier.period && (\n <span className=\"text-sm text-zinc-600 dark:text-zinc-400\">{tier.period}</span>\n )}\n </p>\n </div>\n\n <ul className=\"mb-8 space-y-3\">\n {tier.features.map((feature) => (\n <li key={feature} className=\"flex items-start gap-x-3\">\n <CheckIcon />\n <span className=\"text-sm text-zinc-600 dark:text-zinc-400\">{feature}</span>\n </li>\n ))}\n </ul>\n\n {onSelect ? (\n <button\n type=\"button\"\n onClick={() => onSelect(tier.id)}\n disabled={isCurrent}\n className={cn(\n 'block w-full rounded-md px-6 py-3 text-center text-sm font-semibold transition-colors',\n isCurrent\n ? 'cursor-default bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-400'\n : isHighlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500 shadow-sm'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {isCurrent ? 'Current Plan' : tier.cta}\n </button>\n ) : (\n <a\n href={tier.ctaHref}\n className={cn(\n 'block w-full rounded-md px-6 py-3 text-center text-sm font-semibold transition-colors',\n isHighlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500 shadow-sm'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {tier.cta}\n </a>\n )}\n </div>\n );\n}\n\n// =============================================================================\n// Compact Card (embeddable in dialogs/prompts)\n// =============================================================================\n\nfunction PricingCardCompact({\n tier,\n isCurrent,\n onSelect,\n}: {\n tier: PricingTier;\n isCurrent: boolean;\n onSelect?: (id: string) => void;\n}) {\n return (\n <div\n className={cn(\n 'flex-1 rounded-xl p-5 shadow-sm dark:bg-zinc-900',\n isCurrent\n ? 'ring-2 ring-emerald-500 bg-emerald-50/50 dark:bg-emerald-900/10'\n : tier.highlighted\n ? 'ring-2 ring-blue-600 bg-blue-50/50 dark:bg-blue-900/10'\n : 'ring-1 ring-zinc-200 bg-white dark:ring-zinc-800',\n )}\n >\n <div className=\"flex items-baseline justify-between gap-2\">\n <h4 className=\"text-sm font-bold text-zinc-900 dark:text-white\">{tier.name}</h4>\n {isCurrent && (\n <span className=\"rounded-full bg-emerald-100 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400\">\n Current\n </span>\n )}\n </div>\n <p className=\"mt-1 flex items-baseline gap-x-1\">\n <span className=\"text-2xl font-bold text-zinc-900 dark:text-white\">\n {tier.price ?? '—'}\n </span>\n {tier.period && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">{tier.period}</span>\n )}\n </p>\n <p className=\"mt-1 text-xs text-zinc-500 dark:text-zinc-400 line-clamp-2\">\n {tier.description}\n </p>\n\n {onSelect ? (\n <button\n type=\"button\"\n onClick={() => onSelect(tier.id)}\n disabled={isCurrent}\n className={cn(\n 'mt-3 block w-full rounded-md px-3 py-2 text-center text-xs font-semibold transition-colors',\n isCurrent\n ? 'cursor-default bg-emerald-50 text-emerald-700 dark:bg-emerald-900/20 dark:text-emerald-400'\n : tier.highlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {isCurrent ? 'Current' : tier.cta}\n </button>\n ) : (\n <a\n href={tier.ctaHref}\n className={cn(\n 'mt-3 block w-full rounded-md px-3 py-2 text-center text-xs font-semibold transition-colors',\n tier.highlighted\n ? 'bg-blue-600 text-white hover:bg-blue-500'\n : 'bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700',\n )}\n >\n {tier.cta}\n </a>\n )}\n </div>\n );\n}\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n as?: 'div' | 'span' | 'section' | 'article' | 'header' | 'footer' | 'main' | 'aside' | 'nav';\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * Box primitive - Basic container component\n */\nfunction Box({ as: Component = 'div', className, ref, ...props }: BoxProps) {\n return <Component ref={ref} className={cn(className)} {...props} />;\n}\n\nexport { Box };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport function Skeleton({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n aria-hidden=\"true\"\n {...props}\n className={cn('animate-pulse rounded-md bg-zinc-200 dark:bg-zinc-700', className)}\n />\n );\n}\n\nexport function SkeletonText({ lines = 3, className }: { lines?: number; className?: string }) {\n return (\n <div className={cn('space-y-2', className)}>\n {Array.from({ length: lines }).map((_, i) => {\n return (\n <Skeleton\n // biome-ignore lint/suspicious/noArrayIndexKey: skeleton lines are generated placeholders with no stable ID\n key={i}\n className={cn('h-4', i === lines - 1 && lines > 1 ? 'w-4/5' : 'w-full')}\n />\n );\n })}\n </div>\n );\n}\n\nexport function SkeletonCard({ className }: { className?: string }) {\n return (\n <div className={cn('rounded-xl border border-zinc-200 p-4 dark:border-zinc-700', className)}>\n <div className=\"flex items-center gap-3\">\n <Skeleton className=\"size-10 rounded-full\" />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-1/3\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n </div>\n <SkeletonText lines={3} className=\"mt-4\" />\n </div>\n );\n}\n"],"mappings":"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"}
|