@zentauri-ui/zentauri-components 0.0.92 → 1.0.0
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 +108 -38
- package/dist/chunk-B23TPTVG.mjs +11 -0
- package/dist/chunk-B23TPTVG.mjs.map +1 -0
- package/dist/{chunk-BZSIXBA7.js → chunk-BITDSQMR.js} +8 -6
- package/dist/chunk-BITDSQMR.js.map +1 -0
- package/dist/{chunk-VJHD7QZH.mjs → chunk-BORK3BJO.mjs} +4 -7
- package/dist/chunk-BORK3BJO.mjs.map +1 -0
- package/dist/chunk-WZ2GOU2J.js +13 -0
- package/dist/chunk-WZ2GOU2J.js.map +1 -0
- package/dist/ui/accordion.d.mts +1 -1
- package/dist/ui/accordion.d.ts +1 -1
- package/dist/ui/accordion.js +80 -61
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/accordion.mjs +46 -39
- package/dist/ui/accordion.mjs.map +1 -1
- package/dist/ui/alert.d.mts +1 -1
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/alert.js +57 -46
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/alert.mjs +28 -30
- package/dist/ui/alert.mjs.map +1 -1
- package/dist/ui/badge.js +20 -25
- package/dist/ui/badge.js.map +1 -1
- package/dist/ui/badge.mjs +8 -20
- package/dist/ui/badge.mjs.map +1 -1
- package/dist/ui/buttons.js +19 -21
- package/dist/ui/buttons.js.map +1 -1
- package/dist/ui/buttons.mjs +8 -18
- package/dist/ui/buttons.mjs.map +1 -1
- package/dist/ui/card.js +59 -54
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/card.mjs +29 -39
- package/dist/ui/card.mjs.map +1 -1
- package/dist/ui/divider.js +39 -35
- package/dist/ui/divider.js.map +1 -1
- package/dist/ui/divider.mjs +18 -23
- package/dist/ui/divider.mjs.map +1 -1
- package/dist/ui/drawer.d.mts +1 -1
- package/dist/ui/drawer.d.ts +1 -1
- package/dist/ui/drawer.js +106 -73
- package/dist/ui/drawer.js.map +1 -1
- package/dist/ui/drawer.mjs +64 -45
- package/dist/ui/drawer.mjs.map +1 -1
- package/dist/ui/dropdown.js +42 -48
- package/dist/ui/dropdown.js.map +1 -1
- package/dist/ui/dropdown.mjs +13 -29
- package/dist/ui/dropdown.mjs.map +1 -1
- package/dist/ui/empty-state.d.mts +3 -3
- package/dist/ui/empty-state.d.ts +3 -3
- package/dist/ui/empty-state.js +83 -59
- package/dist/ui/empty-state.js.map +1 -1
- package/dist/ui/empty-state.mjs +64 -52
- package/dist/ui/empty-state.mjs.map +1 -1
- package/dist/ui/inputs.js +26 -31
- package/dist/ui/inputs.js.map +1 -1
- package/dist/ui/inputs.mjs +8 -19
- package/dist/ui/inputs.mjs.map +1 -1
- package/dist/ui/modal.d.mts +1 -1
- package/dist/ui/modal.d.ts +1 -1
- package/dist/ui/modal.js +116 -78
- package/dist/ui/modal.js.map +1 -1
- package/dist/ui/modal.mjs +74 -51
- package/dist/ui/modal.mjs.map +1 -1
- package/dist/ui/pagination.js +47 -60
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +10 -32
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/progress.js +70 -58
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/progress.mjs +44 -43
- package/dist/ui/progress.mjs.map +1 -1
- package/dist/ui/select.js +73 -81
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/select.mjs +38 -59
- package/dist/ui/select.mjs.map +1 -1
- package/dist/ui/skeleton.js +45 -50
- package/dist/ui/skeleton.js.map +1 -1
- package/dist/ui/skeleton.mjs +8 -25
- package/dist/ui/skeleton.mjs.map +1 -1
- package/dist/ui/spinner.js +37 -38
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/spinner.mjs +11 -18
- package/dist/ui/spinner.mjs.map +1 -1
- package/dist/ui/table.js +77 -79
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/table.mjs +43 -60
- package/dist/ui/table.mjs.map +1 -1
- package/dist/ui/tabs.js +75 -75
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/tabs.mjs +48 -59
- package/dist/ui/tabs.mjs.map +1 -1
- package/dist/ui/toast.d.mts +2 -2
- package/dist/ui/toast.d.ts +2 -2
- package/dist/ui/toast.js +111 -88
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toast.mjs +77 -69
- package/dist/ui/toast.mjs.map +1 -1
- package/dist/ui/toggle.js +26 -28
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/toggle.mjs +12 -21
- package/dist/ui/toggle.mjs.map +1 -1
- package/dist/ui/tooltip.js +29 -36
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/ui/tooltip.mjs +8 -23
- package/dist/ui/tooltip.mjs.map +1 -1
- package/package.json +5 -3
- package/dist/chunk-BZSIXBA7.js.map +0 -1
- package/dist/chunk-E5UX537J.js +0 -11
- package/dist/chunk-E5UX537J.js.map +0 -1
- package/dist/chunk-MEWYFWBX.mjs +0 -14
- package/dist/chunk-MEWYFWBX.mjs.map +0 -1
- package/dist/chunk-VJHD7QZH.mjs.map +0 -1
package/dist/ui/alert.mjs
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
} from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { createContext, useContext, useMemo } from "react";
|
|
9
|
-
import { motion } from "framer-motion";
|
|
10
|
-
import { HiExclamationTriangle, HiInformationCircle, HiXMark } from "react-icons/hi2";
|
|
2
|
+
import { cn } from '../chunk-B23TPTVG.mjs';
|
|
3
|
+
import { createContext, useMemo, useContext } from 'react';
|
|
4
|
+
import { motion } from 'framer-motion';
|
|
5
|
+
import { HiXMark, HiExclamationTriangle, HiInformationCircle } from 'react-icons/hi2';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
11
8
|
|
|
12
9
|
// src/ui/alert/animations.ts
|
|
13
10
|
var alertAnimationPresets = {
|
|
@@ -28,9 +25,6 @@ var alertAnimationPresets = {
|
|
|
28
25
|
transition: { type: "spring", stiffness: 520, damping: 28 }
|
|
29
26
|
}
|
|
30
27
|
};
|
|
31
|
-
|
|
32
|
-
// src/ui/alert/variants.ts
|
|
33
|
-
import { cva } from "class-variance-authority";
|
|
34
28
|
var alertVariants = cva(
|
|
35
29
|
"relative flex w-full gap-3 border text-sm ring-offset-slate-950 transition-colors",
|
|
36
30
|
{
|
|
@@ -92,9 +86,6 @@ var alertDescriptionVariants = cva("text-slate-300", {
|
|
|
92
86
|
},
|
|
93
87
|
defaultVariants: { size: "md" }
|
|
94
88
|
});
|
|
95
|
-
|
|
96
|
-
// src/ui/alert/alert.tsx
|
|
97
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
98
89
|
var AlertSizeContext = createContext("md");
|
|
99
90
|
function useAlertSize() {
|
|
100
91
|
const ctx = useContext(AlertSizeContext);
|
|
@@ -157,12 +148,26 @@ function Alert(props) {
|
|
|
157
148
|
}
|
|
158
149
|
Alert.displayName = "Alert";
|
|
159
150
|
function AlertIcon({ className, children }) {
|
|
160
|
-
return /* @__PURE__ */ jsx(
|
|
151
|
+
return /* @__PURE__ */ jsx(
|
|
152
|
+
"span",
|
|
153
|
+
{
|
|
154
|
+
"data-slot": "alert-icon",
|
|
155
|
+
className: cn("mt-0.5 shrink-0 text-current", className),
|
|
156
|
+
children
|
|
157
|
+
}
|
|
158
|
+
);
|
|
161
159
|
}
|
|
162
160
|
AlertIcon.displayName = "AlertIcon";
|
|
163
161
|
function AlertTitle({ className, children }) {
|
|
164
162
|
const size = useAlertSize();
|
|
165
|
-
return /* @__PURE__ */ jsx(
|
|
163
|
+
return /* @__PURE__ */ jsx(
|
|
164
|
+
"div",
|
|
165
|
+
{
|
|
166
|
+
"data-slot": "alert-title",
|
|
167
|
+
className: cn(alertTitleVariants({ size }), className),
|
|
168
|
+
children
|
|
169
|
+
}
|
|
170
|
+
);
|
|
166
171
|
}
|
|
167
172
|
AlertTitle.displayName = "AlertTitle";
|
|
168
173
|
function AlertDescription({ className, children }) {
|
|
@@ -199,22 +204,15 @@ function AlertClose({
|
|
|
199
204
|
);
|
|
200
205
|
}
|
|
201
206
|
AlertClose.displayName = "AlertClose";
|
|
202
|
-
function AlertDefaultIcon({
|
|
207
|
+
function AlertDefaultIcon({
|
|
208
|
+
appearance
|
|
209
|
+
}) {
|
|
203
210
|
if (appearance === "error") {
|
|
204
211
|
return /* @__PURE__ */ jsx(HiExclamationTriangle, { className: "size-5", "aria-hidden": true });
|
|
205
212
|
}
|
|
206
213
|
return /* @__PURE__ */ jsx(HiInformationCircle, { className: "size-5", "aria-hidden": true });
|
|
207
214
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
AlertDefaultIcon,
|
|
212
|
-
AlertDescription,
|
|
213
|
-
AlertIcon,
|
|
214
|
-
AlertTitle,
|
|
215
|
-
alertAnimationPresets,
|
|
216
|
-
alertDescriptionVariants,
|
|
217
|
-
alertTitleVariants,
|
|
218
|
-
alertVariants
|
|
219
|
-
};
|
|
215
|
+
|
|
216
|
+
export { Alert, AlertClose, AlertDefaultIcon, AlertDescription, AlertIcon, AlertTitle, alertAnimationPresets, alertDescriptionVariants, alertTitleVariants, alertVariants };
|
|
217
|
+
//# sourceMappingURL=alert.mjs.map
|
|
220
218
|
//# sourceMappingURL=alert.mjs.map
|
package/dist/ui/alert.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/alert/alert.tsx","../../src/ui/alert/animations.ts","../../src/ui/alert/variants.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { HiExclamationTriangle, HiInformationCircle, HiXMark } from \"react-icons/hi2\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { alertAnimationPresets } from \"./animations\";\nimport type { AlertProps, AlertSectionProps, AlertSize } from \"./types\";\nimport {\n alertDescriptionVariants,\n alertTitleVariants,\n alertVariants,\n} from \"./variants\";\n\nconst AlertSizeContext = createContext<AlertSize>(\"md\");\n\nfunction useAlertSize(): AlertSize {\n const ctx = useContext(AlertSizeContext);\n if (!ctx) {\n throw new Error(\"useAlertSize must be used within an Alert\");\n }\n return ctx;\n}\n\nexport function Alert(props: AlertProps) {\n const {\n className,\n triggerClassName,\n appearance,\n size = \"md\",\n animation = \"none\",\n closable = false,\n onClose,\n closeLabel = \"Dismiss alert\",\n children,\n ref,\n ...rest\n } = props;\n const motionProps = alertAnimationPresets[animation];\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n const ctx = useMemo(() => size ?? \"md\", [size]);\n\n return (\n <AlertSizeContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"alert\"\n role=\"alert\"\n aria-live={live}\n className={cn(\n alertVariants({ appearance, size }),\n closable ? \"pr-12\" : \"\",\n className,\n )}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {children}\n {closable ? (\n <button\n type=\"button\"\n data-slot=\"alert-close\"\n aria-label={closeLabel}\n onClick={onClose}\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30\",\n triggerClassName,\n )}\n >\n <HiXMark className=\"size-4\" aria-hidden />\n </button>\n ) : null}\n </motion.div>\n </AlertSizeContext.Provider>\n );\n}\n\nAlert.displayName = \"Alert\";\n\nexport function AlertIcon({ className, children }: AlertSectionProps) {\n return (\n <span data-slot=\"alert-icon\" className={cn(\"mt-0.5 shrink-0 text-current\", className)}>\n {children}\n </span>\n );\n}\n\nAlertIcon.displayName = \"AlertIcon\";\n\nexport function AlertTitle({ className, children }: AlertSectionProps) {\n const size = useAlertSize();\n return (\n <div data-slot=\"alert-title\" className={cn(alertTitleVariants({ size }), className)}>\n {children}\n </div>\n );\n}\n\nAlertTitle.displayName = \"AlertTitle\";\n\nexport function AlertDescription({ className, children }: AlertSectionProps) {\n const size = useAlertSize();\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(alertDescriptionVariants({ size }), className)}\n >\n {children}\n </div>\n );\n}\n\nAlertDescription.displayName = \"AlertDescription\";\n\nexport function AlertClose({\n className,\n children,\n \"aria-label\": ariaLabel = \"Dismiss alert\",\n onClick,\n}: AlertSectionProps & { onClick?: () => void; \"aria-label\"?: string }) {\n return (\n <button\n type=\"button\"\n data-slot=\"alert-close\"\n aria-label={ariaLabel}\n onClick={onClick}\n className={cn(\n \"inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30\",\n className,\n )}\n >\n {children ?? <HiXMark className=\"size-4\" aria-hidden />}\n </button>\n );\n}\n\nAlertClose.displayName = \"AlertClose\";\n\nexport function AlertDefaultIcon({ appearance }: { appearance?: AlertProps[\"appearance\"] }) {\n if (appearance === \"error\") {\n return <HiExclamationTriangle className=\"size-5\" aria-hidden />;\n }\n return <HiInformationCircle className=\"size-5\" aria-hidden />;\n}\n","import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { AlertAnimation } from \"./types\";\n\ntype AlertPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\"\n>;\n\nexport type AlertAnimationPresets = Record<AlertAnimation, AlertPresetMotionProps>;\n\nexport const alertAnimationPresets: AlertAnimationPresets = {\n none: {},\n \"slide-down\": {\n initial: { y: -8, opacity: 0 },\n animate: { y: 0, opacity: 1 },\n transition: { type: \"spring\", stiffness: 420, damping: 30 },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.2 },\n },\n pop: {\n initial: { scale: 0.96, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const alertVariants = cva(\n \"relative flex w-full gap-3 border text-sm ring-offset-slate-950 transition-colors\",\n {\n variants: {\n appearance: {\n default: \"border-white/10 bg-white/5 text-slate-50\",\n success: \"border-emerald-500/40 bg-emerald-500/10 text-emerald-50\",\n warning: \"border-amber-500/40 bg-amber-500/10 text-amber-50\",\n error: \"border-rose-500/50 bg-rose-500/10 text-rose-50\",\n info: \"border-sky-500/40 bg-sky-500/10 text-sky-50\",\n ghost: \"border-transparent bg-transparent text-slate-200\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\": \"border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\": \"border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\": \"border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\": \"border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\": \"border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\": \"border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\": \"border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\": \"border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\": \"border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"rounded-lg p-3\",\n md: \"rounded-xl p-4\",\n lg: \"rounded-2xl p-5 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const alertTitleVariants = cva(\"font-semibold leading-tight\", {\n variants: {\n size: {\n sm: \"text-xs md:text-sm\",\n md: \"text-xs md:text-sm\",\n lg: \"text-xs md:text-sm\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const alertDescriptionVariants = cva(\"text-slate-300\", {\n variants: {\n size: {\n sm: \"text-xs md:text-sm\",\n md: \"text-xs md:text-sm\",\n lg: \"text-xs md:text-sm\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/alert/animations.ts","../../src/ui/alert/variants.ts","../../src/ui/alert/alert.tsx"],"names":[],"mappings":"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","file":"alert.mjs","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { AlertAnimation } from \"./types\";\n\ntype AlertPresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\"\n>;\n\nexport type AlertAnimationPresets = Record<\n AlertAnimation,\n AlertPresetMotionProps\n>;\n\nexport const alertAnimationPresets: AlertAnimationPresets = {\n none: {},\n \"slide-down\": {\n initial: { y: -8, opacity: 0 },\n animate: { y: 0, opacity: 1 },\n transition: { type: \"spring\", stiffness: 420, damping: 30 },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.2 },\n },\n pop: {\n initial: { scale: 0.96, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const alertVariants = cva(\n \"relative flex w-full gap-3 border text-sm ring-offset-slate-950 transition-colors\",\n {\n variants: {\n appearance: {\n default: \"border-white/10 bg-white/5 text-slate-50\",\n success: \"border-emerald-500/40 bg-emerald-500/10 text-emerald-50\",\n warning: \"border-amber-500/40 bg-amber-500/10 text-amber-50\",\n error: \"border-rose-500/50 bg-rose-500/10 text-rose-50\",\n info: \"border-sky-500/40 bg-sky-500/10 text-sky-50\",\n ghost: \"border-transparent bg-transparent text-slate-200\",\n purple: \"border-purple-600 bg-purple-950/70 backdrop-blur-xl\",\n pink: \"border-pink-600 bg-pink-950/70 backdrop-blur-xl\",\n orange: \"border-orange-600 bg-orange-950/70 backdrop-blur-xl\",\n yellow: \"border-yellow-600 bg-yellow-950/70 backdrop-blur-xl\",\n teal: \"border-teal-600 bg-teal-950/70 backdrop-blur-xl\",\n indigo: \"border-indigo-600 bg-indigo-950/70 backdrop-blur-xl\",\n gray: \"border-gray-600 bg-gray-950/70 backdrop-blur-xl\",\n violet: \"border-violet-600 bg-violet-950/70 backdrop-blur-xl\",\n \"gradient-blue\":\n \"border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-green\":\n \"border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl\",\n \"gradient-red\":\n \"border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-yellow\":\n \"border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl\",\n \"gradient-purple\":\n \"border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl\",\n \"gradient-teal\":\n \"border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl\",\n \"gradient-indigo\":\n \"border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl\",\n \"gradient-pink\":\n \"border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl\",\n \"gradient-orange\":\n \"border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl\",\n },\n size: {\n sm: \"rounded-lg p-3\",\n md: \"rounded-xl p-4\",\n lg: \"rounded-2xl p-5 text-base\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const alertTitleVariants = cva(\"font-semibold leading-tight\", {\n variants: {\n size: {\n sm: \"text-xs md:text-sm\",\n md: \"text-xs md:text-sm\",\n lg: \"text-xs md:text-sm\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const alertDescriptionVariants = cva(\"text-slate-300\", {\n variants: {\n size: {\n sm: \"text-xs md:text-sm\",\n md: \"text-xs md:text-sm\",\n lg: \"text-xs md:text-sm\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n","\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\nimport {\n HiExclamationTriangle,\n HiInformationCircle,\n HiXMark,\n} from \"react-icons/hi2\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { alertAnimationPresets } from \"./animations\";\nimport type { AlertProps, AlertSectionProps, AlertSize } from \"./types\";\nimport {\n alertDescriptionVariants,\n alertTitleVariants,\n alertVariants,\n} from \"./variants\";\n\nconst AlertSizeContext = createContext<AlertSize>(\"md\");\n\nfunction useAlertSize(): AlertSize {\n const ctx = useContext(AlertSizeContext);\n if (!ctx) {\n throw new Error(\"useAlertSize must be used within an Alert\");\n }\n return ctx;\n}\n\nexport function Alert(props: AlertProps) {\n const {\n className,\n triggerClassName,\n appearance,\n size = \"md\",\n animation = \"none\",\n closable = false,\n onClose,\n closeLabel = \"Dismiss alert\",\n children,\n ref,\n ...rest\n } = props;\n const motionProps = alertAnimationPresets[animation];\n const live = appearance === \"error\" ? \"assertive\" : \"polite\";\n\n const ctx = useMemo(() => size ?? \"md\", [size]);\n\n return (\n <AlertSizeContext.Provider value={ctx}>\n <motion.div\n ref={ref}\n data-slot=\"alert\"\n role=\"alert\"\n aria-live={live}\n className={cn(\n alertVariants({ appearance, size }),\n closable ? \"pr-12\" : \"\",\n className,\n )}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {children}\n {closable ? (\n <button\n type=\"button\"\n data-slot=\"alert-close\"\n aria-label={closeLabel}\n onClick={onClose}\n className={cn(\n \"absolute right-3 top-3 inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30\",\n triggerClassName,\n )}\n >\n <HiXMark className=\"size-4\" aria-hidden />\n </button>\n ) : null}\n </motion.div>\n </AlertSizeContext.Provider>\n );\n}\n\nAlert.displayName = \"Alert\";\n\nexport function AlertIcon({ className, children }: AlertSectionProps) {\n return (\n <span\n data-slot=\"alert-icon\"\n className={cn(\"mt-0.5 shrink-0 text-current\", className)}\n >\n {children}\n </span>\n );\n}\n\nAlertIcon.displayName = \"AlertIcon\";\n\nexport function AlertTitle({ className, children }: AlertSectionProps) {\n const size = useAlertSize();\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(alertTitleVariants({ size }), className)}\n >\n {children}\n </div>\n );\n}\n\nAlertTitle.displayName = \"AlertTitle\";\n\nexport function AlertDescription({ className, children }: AlertSectionProps) {\n const size = useAlertSize();\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(alertDescriptionVariants({ size }), className)}\n >\n {children}\n </div>\n );\n}\n\nAlertDescription.displayName = \"AlertDescription\";\n\nexport function AlertClose({\n className,\n children,\n \"aria-label\": ariaLabel = \"Dismiss alert\",\n onClick,\n}: AlertSectionProps & { onClick?: () => void; \"aria-label\"?: string }) {\n return (\n <button\n type=\"button\"\n data-slot=\"alert-close\"\n aria-label={ariaLabel}\n onClick={onClick}\n className={cn(\n \"inline-flex size-8 items-center justify-center rounded-md text-slate-200 transition hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/30\",\n className,\n )}\n >\n {children ?? <HiXMark className=\"size-4\" aria-hidden />}\n </button>\n );\n}\n\nAlertClose.displayName = \"AlertClose\";\n\nexport function AlertDefaultIcon({\n appearance,\n}: {\n appearance?: AlertProps[\"appearance\"];\n}) {\n if (appearance === \"error\") {\n return <HiExclamationTriangle className=\"size-5\" aria-hidden />;\n }\n return <HiInformationCircle className=\"size-5\" aria-hidden />;\n}\n"]}
|
package/dist/ui/badge.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
"use
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
2
3
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
var
|
|
4
|
+
var chunkWZ2GOU2J_js = require('../chunk-WZ2GOU2J.js');
|
|
5
|
+
var framerMotion = require('framer-motion');
|
|
6
|
+
var hi2 = require('react-icons/hi2');
|
|
7
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
9
|
|
|
9
10
|
// src/ui/badge/animations.ts
|
|
10
11
|
var badgeAnimationPresets = {
|
|
@@ -25,9 +26,6 @@ var badgeAnimationPresets = {
|
|
|
25
26
|
transition: { duration: 0.2 }
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
|
-
|
|
29
|
-
// src/ui/badge/variants.ts
|
|
30
|
-
var _classvarianceauthority = require('class-variance-authority');
|
|
31
29
|
var buttonLikeSolidAppearances = {
|
|
32
30
|
default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]",
|
|
33
31
|
secondary: "bg-slate-800 text-slate-50",
|
|
@@ -59,7 +57,7 @@ var badgeAppearances = {
|
|
|
59
57
|
outline: "border border-white/15 bg-transparent text-slate-200 shadow-none",
|
|
60
58
|
ghost: "bg-transparent text-slate-300 shadow-none"
|
|
61
59
|
};
|
|
62
|
-
var badgeVariants =
|
|
60
|
+
var badgeVariants = classVarianceAuthority.cva(
|
|
63
61
|
[
|
|
64
62
|
"inline-flex max-w-full items-center justify-center gap-1 font-medium",
|
|
65
63
|
"whitespace-nowrap ring-offset-slate-950 transition-colors",
|
|
@@ -87,7 +85,7 @@ var badgeVariants = _classvarianceauthority.cva.call(void 0,
|
|
|
87
85
|
}
|
|
88
86
|
}
|
|
89
87
|
);
|
|
90
|
-
var badgeCloseButtonVariants =
|
|
88
|
+
var badgeCloseButtonVariants = classVarianceAuthority.cva(
|
|
91
89
|
"inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40",
|
|
92
90
|
{
|
|
93
91
|
variants: {
|
|
@@ -100,9 +98,6 @@ var badgeCloseButtonVariants = _classvarianceauthority.cva.call(void 0,
|
|
|
100
98
|
defaultVariants: { size: "md" }
|
|
101
99
|
}
|
|
102
100
|
);
|
|
103
|
-
|
|
104
|
-
// src/ui/badge/badge.tsx
|
|
105
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
106
101
|
function Badge(props) {
|
|
107
102
|
const {
|
|
108
103
|
className,
|
|
@@ -120,21 +115,21 @@ function Badge(props) {
|
|
|
120
115
|
} = props;
|
|
121
116
|
const motionProps = badgeAnimationPresets[animation];
|
|
122
117
|
const isDot = shape === "dot";
|
|
123
|
-
const resolvedAriaLabel =
|
|
124
|
-
return /* @__PURE__ */
|
|
125
|
-
|
|
118
|
+
const resolvedAriaLabel = ariaLabel ?? (isDot ? "Status indicator" : void 0);
|
|
119
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
120
|
+
framerMotion.motion.span,
|
|
126
121
|
{
|
|
127
122
|
ref,
|
|
128
123
|
role: "status",
|
|
129
124
|
"data-slot": "badge",
|
|
130
125
|
"aria-label": resolvedAriaLabel,
|
|
131
|
-
className:
|
|
126
|
+
className: chunkWZ2GOU2J_js.cn(badgeVariants({ appearance, size, shape }), className),
|
|
132
127
|
initial: animation === "none" ? false : void 0,
|
|
133
128
|
...motionProps,
|
|
134
129
|
...rest,
|
|
135
130
|
children: [
|
|
136
131
|
!isDot ? children : null,
|
|
137
|
-
closable ? /* @__PURE__ */
|
|
132
|
+
closable ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
133
|
"button",
|
|
139
134
|
{
|
|
140
135
|
type: "button",
|
|
@@ -142,7 +137,7 @@ function Badge(props) {
|
|
|
142
137
|
"aria-label": closeLabel,
|
|
143
138
|
onClick: onClose,
|
|
144
139
|
className: badgeCloseButtonVariants({ size }),
|
|
145
|
-
children: /* @__PURE__ */
|
|
140
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(hi2.HiXMark, { className: "size-3.5", "aria-hidden": true })
|
|
146
141
|
}
|
|
147
142
|
) : null
|
|
148
143
|
]
|
|
@@ -151,9 +146,9 @@ function Badge(props) {
|
|
|
151
146
|
}
|
|
152
147
|
Badge.displayName = "Badge";
|
|
153
148
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
149
|
+
exports.Badge = Badge;
|
|
150
|
+
exports.badgeAnimationPresets = badgeAnimationPresets;
|
|
151
|
+
exports.badgeCloseButtonVariants = badgeCloseButtonVariants;
|
|
152
|
+
exports.badgeVariants = badgeVariants;
|
|
153
|
+
//# sourceMappingURL=badge.js.map
|
|
159
154
|
//# sourceMappingURL=badge.js.map
|
package/dist/ui/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["../../src/ui/badge/animations.ts","../../src/ui/badge/variants.ts","../../src/ui/badge/badge.tsx"],"names":["cva","jsxs","motion","cn","jsx","HiXMark"],"mappings":"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","file":"badge.js","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { BadgeAnimation } from \"./types\";\n\ntype BadgePresetMotionProps = Pick<\n HTMLMotionProps<\"span\">,\n \"style\" | \"transition\" | \"whileHover\" | \"whileTap\" | \"animate\" | \"initial\"\n>;\n\nexport type BadgeAnimationPresets = Record<\n BadgeAnimation,\n BadgePresetMotionProps\n>;\n\nexport const badgeAnimationPresets: BadgeAnimationPresets = {\n none: {},\n pop: {\n initial: { scale: 0.92, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n bounce: {\n whileHover: { y: -2, scale: 1.04 },\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", bounce: 0.45, stiffness: 420, damping: 18 },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.2 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\n/**\n * Tailwind class maps mirroring `buttons/variants.ts` appearance tokens.\n * Reused by primitives that should stay visually aligned with Button.\n */\nexport const buttonLikeSolidAppearances = {\n default: \"bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]\",\n secondary: \"bg-slate-800 text-slate-50\",\n destructive: \"bg-rose-600 text-white\",\n outline: \"border border-white/10 bg-white/5 text-slate-50\",\n ghost: \"bg-transparent text-slate-200\",\n glass: \"border border-white/15 bg-white/10 text-white backdrop-blur-md\",\n emerald: \"bg-emerald-600 text-white\",\n indigo: \"bg-indigo-600 text-white\",\n purple: \"bg-purple-600 text-white\",\n pink: \"bg-pink-600 text-white\",\n rose: \"bg-rose-600 text-white\",\n sky: \"bg-sky-600 text-white\",\n teal: \"bg-teal-600 text-white\",\n yellow: \"bg-yellow-600 text-white\",\n orange: \"bg-orange-600 text-white\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 text-white\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 text-white\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 text-white\",\n \"gradient-yellow\":\n \"bg-gradient-to-r from-yellow-600 to-orange-600 text-white\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 text-white\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 text-white\",\n \"gradient-indigo\":\n \"bg-gradient-to-r from-indigo-600 to-purple-600 text-white\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 text-white\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 text-white\",\n} as const;\n\nexport type ButtonLikeSolidAppearance = keyof typeof buttonLikeSolidAppearances;\n\nconst badgeAppearances = {\n ...buttonLikeSolidAppearances,\n outline: \"border border-white/15 bg-transparent text-slate-200 shadow-none\",\n ghost: \"bg-transparent text-slate-300 shadow-none\",\n} as const;\n\nexport const badgeVariants = cva(\n [\n \"inline-flex max-w-full items-center justify-center gap-1 font-medium\",\n \"whitespace-nowrap ring-offset-slate-950 transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2\",\n \"select-none\",\n ],\n {\n variants: {\n appearance: badgeAppearances,\n size: {\n sm: \"h-6 min-h-6 px-2 text-[0.65rem] leading-none\",\n md: \"h-7 min-h-7 px-2.5 text-xs leading-none\",\n lg: \"h-8 min-h-8 px-3 text-sm leading-none\",\n },\n shape: {\n pill: \"rounded-full\",\n square: \"rounded-md\",\n dot: \"h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"pill\",\n },\n },\n);\n\nexport const badgeCloseButtonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { HiXMark } from \"react-icons/hi2\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { badgeAnimationPresets } from \"./animations\";\nimport type { BadgeProps } from \"./types\";\nimport { badgeCloseButtonVariants, badgeVariants } from \"./variants\";\n\nexport function Badge(props: BadgeProps) {\n const {\n className,\n appearance,\n size,\n shape,\n animation = \"none\",\n closable = false,\n onClose,\n closeLabel = \"Remove\",\n children,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const motionProps = badgeAnimationPresets[animation];\n const isDot = shape === \"dot\";\n const resolvedAriaLabel =\n ariaLabel ?? (isDot ? \"Status indicator\" : undefined);\n\n return (\n <motion.span\n ref={ref}\n role=\"status\"\n data-slot=\"badge\"\n aria-label={resolvedAriaLabel}\n className={cn(badgeVariants({ appearance, size, shape }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {!isDot ? children : null}\n {closable ? (\n <button\n type=\"button\"\n data-slot=\"badge-close\"\n aria-label={closeLabel}\n onClick={onClose}\n className={badgeCloseButtonVariants({ size })}\n >\n <HiXMark className=\"size-3.5\" aria-hidden />\n </button>\n ) : null}\n </motion.span>\n );\n}\n\nBadge.displayName = \"Badge\";\n"]}
|
package/dist/ui/badge.mjs
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
} from
|
|
6
|
-
|
|
7
|
-
// src/ui/badge/badge.tsx
|
|
8
|
-
import { motion } from "framer-motion";
|
|
9
|
-
import { HiXMark } from "react-icons/hi2";
|
|
2
|
+
import { cn } from '../chunk-B23TPTVG.mjs';
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
import { HiXMark } from 'react-icons/hi2';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
10
7
|
|
|
11
8
|
// src/ui/badge/animations.ts
|
|
12
9
|
var badgeAnimationPresets = {
|
|
@@ -27,9 +24,6 @@ var badgeAnimationPresets = {
|
|
|
27
24
|
transition: { duration: 0.2 }
|
|
28
25
|
}
|
|
29
26
|
};
|
|
30
|
-
|
|
31
|
-
// src/ui/badge/variants.ts
|
|
32
|
-
import { cva } from "class-variance-authority";
|
|
33
27
|
var buttonLikeSolidAppearances = {
|
|
34
28
|
default: "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]",
|
|
35
29
|
secondary: "bg-slate-800 text-slate-50",
|
|
@@ -102,9 +96,6 @@ var badgeCloseButtonVariants = cva(
|
|
|
102
96
|
defaultVariants: { size: "md" }
|
|
103
97
|
}
|
|
104
98
|
);
|
|
105
|
-
|
|
106
|
-
// src/ui/badge/badge.tsx
|
|
107
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
108
99
|
function Badge(props) {
|
|
109
100
|
const {
|
|
110
101
|
className,
|
|
@@ -152,10 +143,7 @@ function Badge(props) {
|
|
|
152
143
|
);
|
|
153
144
|
}
|
|
154
145
|
Badge.displayName = "Badge";
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
badgeCloseButtonVariants,
|
|
159
|
-
badgeVariants
|
|
160
|
-
};
|
|
146
|
+
|
|
147
|
+
export { Badge, badgeAnimationPresets, badgeCloseButtonVariants, badgeVariants };
|
|
148
|
+
//# sourceMappingURL=badge.mjs.map
|
|
161
149
|
//# sourceMappingURL=badge.mjs.map
|
package/dist/ui/badge.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/badge/
|
|
1
|
+
{"version":3,"sources":["../../src/ui/badge/animations.ts","../../src/ui/badge/variants.ts","../../src/ui/badge/badge.tsx"],"names":[],"mappings":"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","file":"badge.mjs","sourcesContent":["import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { BadgeAnimation } from \"./types\";\n\ntype BadgePresetMotionProps = Pick<\n HTMLMotionProps<\"span\">,\n \"style\" | \"transition\" | \"whileHover\" | \"whileTap\" | \"animate\" | \"initial\"\n>;\n\nexport type BadgeAnimationPresets = Record<\n BadgeAnimation,\n BadgePresetMotionProps\n>;\n\nexport const badgeAnimationPresets: BadgeAnimationPresets = {\n none: {},\n pop: {\n initial: { scale: 0.92, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: { type: \"spring\", stiffness: 520, damping: 28 },\n },\n bounce: {\n whileHover: { y: -2, scale: 1.04 },\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", bounce: 0.45, stiffness: 420, damping: 18 },\n },\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { duration: 0.2 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\n/**\n * Tailwind class maps mirroring `buttons/variants.ts` appearance tokens.\n * Reused by primitives that should stay visually aligned with Button.\n */\nexport const buttonLikeSolidAppearances = {\n default: \"bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)]\",\n secondary: \"bg-slate-800 text-slate-50\",\n destructive: \"bg-rose-600 text-white\",\n outline: \"border border-white/10 bg-white/5 text-slate-50\",\n ghost: \"bg-transparent text-slate-200\",\n glass: \"border border-white/15 bg-white/10 text-white backdrop-blur-md\",\n emerald: \"bg-emerald-600 text-white\",\n indigo: \"bg-indigo-600 text-white\",\n purple: \"bg-purple-600 text-white\",\n pink: \"bg-pink-600 text-white\",\n rose: \"bg-rose-600 text-white\",\n sky: \"bg-sky-600 text-white\",\n teal: \"bg-teal-600 text-white\",\n yellow: \"bg-yellow-600 text-white\",\n orange: \"bg-orange-600 text-white\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 text-white\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 text-white\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 text-white\",\n \"gradient-yellow\":\n \"bg-gradient-to-r from-yellow-600 to-orange-600 text-white\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 text-white\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 text-white\",\n \"gradient-indigo\":\n \"bg-gradient-to-r from-indigo-600 to-purple-600 text-white\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 text-white\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 text-white\",\n} as const;\n\nexport type ButtonLikeSolidAppearance = keyof typeof buttonLikeSolidAppearances;\n\nconst badgeAppearances = {\n ...buttonLikeSolidAppearances,\n outline: \"border border-white/15 bg-transparent text-slate-200 shadow-none\",\n ghost: \"bg-transparent text-slate-300 shadow-none\",\n} as const;\n\nexport const badgeVariants = cva(\n [\n \"inline-flex max-w-full items-center justify-center gap-1 font-medium\",\n \"whitespace-nowrap ring-offset-slate-950 transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-300 focus-visible:ring-offset-2\",\n \"select-none\",\n ],\n {\n variants: {\n appearance: badgeAppearances,\n size: {\n sm: \"h-6 min-h-6 px-2 text-[0.65rem] leading-none\",\n md: \"h-7 min-h-7 px-2.5 text-xs leading-none\",\n lg: \"h-8 min-h-8 px-3 text-sm leading-none\",\n },\n shape: {\n pill: \"rounded-full\",\n square: \"rounded-md\",\n dot: \"h-2.5 min-h-2.5 w-2.5 min-w-2.5 rounded-full p-0 px-0 text-[0]\",\n },\n },\n defaultVariants: {\n appearance: \"default\",\n size: \"md\",\n shape: \"pill\",\n },\n },\n);\n\nexport const badgeCloseButtonVariants = cva(\n \"inline-flex shrink-0 items-center justify-center rounded-md p-0.5 text-current opacity-70 transition hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { HiXMark } from \"react-icons/hi2\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { badgeAnimationPresets } from \"./animations\";\nimport type { BadgeProps } from \"./types\";\nimport { badgeCloseButtonVariants, badgeVariants } from \"./variants\";\n\nexport function Badge(props: BadgeProps) {\n const {\n className,\n appearance,\n size,\n shape,\n animation = \"none\",\n closable = false,\n onClose,\n closeLabel = \"Remove\",\n children,\n ref,\n \"aria-label\": ariaLabel,\n ...rest\n } = props;\n const motionProps = badgeAnimationPresets[animation];\n const isDot = shape === \"dot\";\n const resolvedAriaLabel =\n ariaLabel ?? (isDot ? \"Status indicator\" : undefined);\n\n return (\n <motion.span\n ref={ref}\n role=\"status\"\n data-slot=\"badge\"\n aria-label={resolvedAriaLabel}\n className={cn(badgeVariants({ appearance, size, shape }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {!isDot ? children : null}\n {closable ? (\n <button\n type=\"button\"\n data-slot=\"badge-close\"\n aria-label={closeLabel}\n onClick={onClose}\n className={badgeCloseButtonVariants({ size })}\n >\n <HiXMark className=\"size-3.5\" aria-hidden />\n </button>\n ) : null}\n </motion.span>\n );\n}\n\nBadge.displayName = \"Badge\";\n"]}
|
package/dist/ui/buttons.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
"use
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
2
3
|
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
// src/ui/buttons/button.tsx
|
|
9
|
-
var _framermotion = require('framer-motion');
|
|
4
|
+
var chunkBITDSQMR_js = require('../chunk-BITDSQMR.js');
|
|
5
|
+
var chunkWZ2GOU2J_js = require('../chunk-WZ2GOU2J.js');
|
|
6
|
+
var framerMotion = require('framer-motion');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
8
|
|
|
11
9
|
// src/ui/buttons/animations.ts
|
|
12
10
|
var buttonAnimationPresets = {
|
|
@@ -40,9 +38,6 @@ var buttonAnimationPresets = {
|
|
|
40
38
|
transition: { type: "spring", bounce: 0.45, duration: 0.45 }
|
|
41
39
|
}
|
|
42
40
|
};
|
|
43
|
-
|
|
44
|
-
// src/ui/buttons/button.tsx
|
|
45
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
46
41
|
var Button = (props) => {
|
|
47
42
|
if (props.as === "link") {
|
|
48
43
|
const {
|
|
@@ -57,15 +52,15 @@ var Button = (props) => {
|
|
|
57
52
|
...rest2
|
|
58
53
|
} = props;
|
|
59
54
|
const motionProps2 = buttonAnimationPresets[animation2];
|
|
60
|
-
return /* @__PURE__ */
|
|
61
|
-
|
|
55
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
+
framerMotion.motion.a,
|
|
62
57
|
{
|
|
63
58
|
ref: ref2,
|
|
64
59
|
href,
|
|
65
60
|
target,
|
|
66
61
|
rel: target === "_blank" ? "noopener noreferrer" : void 0,
|
|
67
62
|
"data-slot": "button",
|
|
68
|
-
className:
|
|
63
|
+
className: chunkWZ2GOU2J_js.cn(chunkBITDSQMR_js.buttonVariants({ appearance: appearance2, size: size2 }), className2),
|
|
69
64
|
initial: false,
|
|
70
65
|
...motionProps2,
|
|
71
66
|
...rest2,
|
|
@@ -84,13 +79,13 @@ var Button = (props) => {
|
|
|
84
79
|
...rest
|
|
85
80
|
} = props;
|
|
86
81
|
const motionProps = buttonAnimationPresets[animation];
|
|
87
|
-
return /* @__PURE__ */
|
|
88
|
-
|
|
82
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
83
|
+
framerMotion.motion.button,
|
|
89
84
|
{
|
|
90
85
|
ref,
|
|
91
86
|
type,
|
|
92
87
|
"data-slot": "button",
|
|
93
|
-
className:
|
|
88
|
+
className: chunkWZ2GOU2J_js.cn(chunkBITDSQMR_js.buttonVariants({ appearance, size }), className),
|
|
94
89
|
initial: false,
|
|
95
90
|
...motionProps,
|
|
96
91
|
...rest,
|
|
@@ -100,8 +95,11 @@ var Button = (props) => {
|
|
|
100
95
|
};
|
|
101
96
|
Button.displayName = "Button";
|
|
102
97
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
98
|
+
Object.defineProperty(exports, "buttonVariants", {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () { return chunkBITDSQMR_js.buttonVariants; }
|
|
101
|
+
});
|
|
102
|
+
exports.Button = Button;
|
|
103
|
+
exports.buttonAnimationPresets = buttonAnimationPresets;
|
|
104
|
+
//# sourceMappingURL=buttons.js.map
|
|
107
105
|
//# sourceMappingURL=buttons.js.map
|
package/dist/ui/buttons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["../../src/ui/buttons/animations.ts","../../src/ui/buttons/button.tsx"],"names":["className","appearance","size","children","ref","animation","rest","motionProps","jsx","motion","cn","buttonVariants"],"mappings":"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","file":"buttons.js","sourcesContent":["import type { AnimationPresets } from \"./types\";\n\nexport const buttonAnimationPresets: AnimationPresets = {\n none: {},\n lift: {\n whileHover: { y: -2, scale: 1.02 },\n whileTap: { y: 0, scale: 0.98 },\n transition: { type: \"spring\", stiffness: 420, damping: 28 },\n },\n press: {\n whileTap: { scale: 0.96 },\n transition: { type: \"spring\", stiffness: 520, damping: 30 },\n },\n glow: {\n whileHover: {\n boxShadow:\n \"0 0 0 1px rgba(255,255,255,0.25), 0 18px 42px rgba(15,23,42,0.35)\",\n scale: 1.01,\n },\n whileTap: { scale: 0.98 },\n transition: { duration: 0.2, ease: \"easeOut\" },\n },\n tilt: {\n whileHover: { rotateX: 6, rotateY: -6, scale: 1.01 },\n whileTap: { scale: 0.98, rotateX: 0, rotateY: 0 },\n transition: { type: \"spring\", stiffness: 300, damping: 20 },\n style: { transformStyle: \"preserve-3d\" },\n },\n bounce: {\n whileHover: { y: -4, scale: 1.03 },\n whileTap: { y: 0, scale: 0.97 },\n transition: { type: \"spring\", bounce: 0.45, duration: 0.45 },\n },\n};\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\nimport type { ButtonProps } from \"./types\";\nimport { buttonAnimationPresets } from \"./animations\";\nimport { buttonVariants } from \"./variants\";\n\nexport const Button = (props: ButtonProps) => {\n if (props.as === \"link\") {\n const {\n className,\n appearance,\n size,\n children,\n ref,\n href,\n target,\n animation = \"none\",\n ...rest\n } = props;\n const motionProps = buttonAnimationPresets[animation];\n\n return (\n <motion.a\n ref={ref}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.a>\n );\n }\n\n const {\n className,\n appearance,\n size,\n type = \"button\",\n children,\n ref,\n animation = \"none\",\n ...rest\n } = props;\n const motionProps = buttonAnimationPresets[animation];\n\n return (\n <motion.button\n ref={ref}\n type={type}\n data-slot=\"button\"\n className={cn(buttonVariants({ appearance, size }), className)}\n initial={false}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.button>\n );\n};\n\nButton.displayName = \"Button\";\n"]}
|
package/dist/ui/buttons.mjs
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from
|
|
6
|
-
import {
|
|
7
|
-
cn
|
|
8
|
-
} from "../chunk-MEWYFWBX.mjs";
|
|
9
|
-
|
|
10
|
-
// src/ui/buttons/button.tsx
|
|
11
|
-
import { motion } from "framer-motion";
|
|
2
|
+
import { buttonVariants } from '../chunk-BORK3BJO.mjs';
|
|
3
|
+
export { buttonVariants } from '../chunk-BORK3BJO.mjs';
|
|
4
|
+
import { cn } from '../chunk-B23TPTVG.mjs';
|
|
5
|
+
import { motion } from 'framer-motion';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
12
7
|
|
|
13
8
|
// src/ui/buttons/animations.ts
|
|
14
9
|
var buttonAnimationPresets = {
|
|
@@ -42,9 +37,6 @@ var buttonAnimationPresets = {
|
|
|
42
37
|
transition: { type: "spring", bounce: 0.45, duration: 0.45 }
|
|
43
38
|
}
|
|
44
39
|
};
|
|
45
|
-
|
|
46
|
-
// src/ui/buttons/button.tsx
|
|
47
|
-
import { jsx } from "react/jsx-runtime";
|
|
48
40
|
var Button = (props) => {
|
|
49
41
|
if (props.as === "link") {
|
|
50
42
|
const {
|
|
@@ -101,9 +93,7 @@ var Button = (props) => {
|
|
|
101
93
|
);
|
|
102
94
|
};
|
|
103
95
|
Button.displayName = "Button";
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
buttonVariants
|
|
108
|
-
};
|
|
96
|
+
|
|
97
|
+
export { Button, buttonAnimationPresets };
|
|
98
|
+
//# sourceMappingURL=buttons.mjs.map
|
|
109
99
|
//# sourceMappingURL=buttons.mjs.map
|