@zentauri-ui/zentauri-components 2.1.8 → 2.2.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 +7 -5
- package/cli/props.json +381 -0
- package/cli/registry.json +9 -1
- package/dist/{chunk-4PAHLHYF.mjs → chunk-37KMH77M.mjs} +3 -3
- package/dist/{chunk-4PAHLHYF.mjs.map → chunk-37KMH77M.mjs.map} +1 -1
- package/dist/chunk-4KOQS4DT.mjs +96 -0
- package/dist/chunk-4KOQS4DT.mjs.map +1 -0
- package/dist/{chunk-D7ZTSAA6.mjs → chunk-5XSW5JYA.mjs} +4 -4
- package/dist/{chunk-D7ZTSAA6.mjs.map → chunk-5XSW5JYA.mjs.map} +1 -1
- package/dist/{chunk-UVP3MUBU.mjs → chunk-AMNJ35TT.mjs} +29 -7
- package/dist/chunk-AMNJ35TT.mjs.map +1 -0
- package/dist/chunk-DXNIAFBG.js +103 -0
- package/dist/chunk-DXNIAFBG.js.map +1 -0
- package/dist/chunk-EMZC6ICD.mjs +55 -0
- package/dist/chunk-EMZC6ICD.mjs.map +1 -0
- package/dist/{chunk-BAAXQPZ7.js → chunk-EPJYLBXV.js} +6 -6
- package/dist/{chunk-BAAXQPZ7.js.map → chunk-EPJYLBXV.js.map} +1 -1
- package/dist/{chunk-DPNTQ4AK.js → chunk-F3G3RL2N.js} +29 -7
- package/dist/chunk-F3G3RL2N.js.map +1 -0
- package/dist/chunk-GP3FUS2H.mjs +26 -0
- package/dist/chunk-GP3FUS2H.mjs.map +1 -0
- package/dist/chunk-HNPGWFVY.js +65 -0
- package/dist/chunk-HNPGWFVY.js.map +1 -0
- package/dist/chunk-PAISX7YL.js +38 -0
- package/dist/chunk-PAISX7YL.js.map +1 -0
- package/dist/{chunk-OWVQVAOY.mjs → chunk-TACF7MJE.mjs} +3 -3
- package/dist/{chunk-OWVQVAOY.mjs.map → chunk-TACF7MJE.mjs.map} +1 -1
- package/dist/chunk-VQJXOJ7G.js +19 -0
- package/dist/{chunk-6OVDBAMI.js.map → chunk-VQJXOJ7G.js.map} +1 -1
- package/dist/{chunk-L5QORCUO.js → chunk-YTCVWOBC.js} +12 -12
- package/dist/{chunk-L5QORCUO.js.map → chunk-YTCVWOBC.js.map} +1 -1
- package/dist/design-system/code-diff.d.ts +18 -0
- package/dist/design-system/code-diff.d.ts.map +1 -0
- package/dist/design-system/facade.js +9 -7
- package/dist/design-system/facade.js.map +1 -1
- package/dist/design-system/facade.mjs +8 -6
- package/dist/design-system/facade.mjs.map +1 -1
- package/dist/design-system/index.d.ts +2 -0
- package/dist/design-system/index.d.ts.map +1 -1
- package/dist/design-system/typing-indicator.d.ts +47 -0
- package/dist/design-system/typing-indicator.d.ts.map +1 -0
- package/dist/ui/buttons/animated.js +11 -9
- package/dist/ui/buttons/animated.js.map +1 -1
- package/dist/ui/buttons/animated.mjs +9 -7
- package/dist/ui/buttons/animated.mjs.map +1 -1
- package/dist/ui/buttons.js +12 -10
- package/dist/ui/buttons.mjs +10 -8
- package/dist/ui/code-diff/code-diff-base.d.ts +6 -0
- package/dist/ui/code-diff/code-diff-base.d.ts.map +1 -0
- package/dist/ui/code-diff/code-diff.d.ts +6 -0
- package/dist/ui/code-diff/code-diff.d.ts.map +1 -0
- package/dist/ui/code-diff/index.d.ts +4 -0
- package/dist/ui/code-diff/index.d.ts.map +1 -0
- package/dist/ui/code-diff/types.d.ts +26 -0
- package/dist/ui/code-diff/types.d.ts.map +1 -0
- package/dist/ui/code-diff/variants.d.ts +11 -0
- package/dist/ui/code-diff/variants.d.ts.map +1 -0
- package/dist/ui/code-diff.js +302 -0
- package/dist/ui/code-diff.js.map +1 -0
- package/dist/ui/code-diff.mjs +297 -0
- package/dist/ui/code-diff.mjs.map +1 -0
- package/dist/ui/data-table.js +23 -21
- package/dist/ui/data-table.js.map +1 -1
- package/dist/ui/data-table.mjs +13 -11
- package/dist/ui/data-table.mjs.map +1 -1
- package/dist/ui/dynamic-stepper.js +21 -19
- package/dist/ui/dynamic-stepper.js.map +1 -1
- package/dist/ui/dynamic-stepper.mjs +10 -8
- package/dist/ui/dynamic-stepper.mjs.map +1 -1
- package/dist/ui/pagination.js +13 -11
- package/dist/ui/pagination.mjs +10 -8
- package/dist/ui/split-button.js +23 -21
- package/dist/ui/split-button.js.map +1 -1
- package/dist/ui/split-button.mjs +10 -8
- package/dist/ui/split-button.mjs.map +1 -1
- package/dist/ui/typing-indicator/animated/animations.d.ts +8 -0
- package/dist/ui/typing-indicator/animated/animations.d.ts.map +1 -0
- package/dist/ui/typing-indicator/animated/index.d.ts +4 -0
- package/dist/ui/typing-indicator/animated/index.d.ts.map +1 -0
- package/dist/ui/typing-indicator/animated/types.d.ts +9 -0
- package/dist/ui/typing-indicator/animated/types.d.ts.map +1 -0
- package/dist/ui/typing-indicator/animated/typing-indicator-animated.d.ts +6 -0
- package/dist/ui/typing-indicator/animated/typing-indicator-animated.d.ts.map +1 -0
- package/dist/ui/typing-indicator/animated.js +119 -0
- package/dist/ui/typing-indicator/animated.js.map +1 -0
- package/dist/ui/typing-indicator/animated.mjs +116 -0
- package/dist/ui/typing-indicator/animated.mjs.map +1 -0
- package/dist/ui/typing-indicator/index.d.ts +4 -0
- package/dist/ui/typing-indicator/index.d.ts.map +1 -0
- package/dist/ui/typing-indicator/types.d.ts +13 -0
- package/dist/ui/typing-indicator/types.d.ts.map +1 -0
- package/dist/ui/typing-indicator/typing-indicator-base.d.ts +13 -0
- package/dist/ui/typing-indicator/typing-indicator-base.d.ts.map +1 -0
- package/dist/ui/typing-indicator/typing-indicator.d.ts +2 -0
- package/dist/ui/typing-indicator/typing-indicator.d.ts.map +1 -0
- package/dist/ui/typing-indicator/variants.d.ts +16 -0
- package/dist/ui/typing-indicator/variants.d.ts.map +1 -0
- package/dist/ui/typing-indicator.js +32 -0
- package/dist/ui/typing-indicator.js.map +1 -0
- package/dist/ui/typing-indicator.mjs +7 -0
- package/dist/ui/typing-indicator.mjs.map +1 -0
- package/package.json +4 -1
- package/src/design-system/code-diff.ts +37 -0
- package/src/design-system/index.ts +2 -0
- package/src/design-system/typing-indicator.ts +74 -0
- package/src/ui/code-diff/code-diff-base.tsx +284 -0
- package/src/ui/code-diff/code-diff.test.tsx +50 -0
- package/src/ui/code-diff/code-diff.tsx +8 -0
- package/src/ui/code-diff/index.ts +15 -0
- package/src/ui/code-diff/types.ts +31 -0
- package/src/ui/code-diff/variants.ts +49 -0
- package/src/ui/typing-indicator/animated/animations.ts +58 -0
- package/src/ui/typing-indicator/animated/index.ts +8 -0
- package/src/ui/typing-indicator/animated/types.ts +11 -0
- package/src/ui/typing-indicator/animated/typing-indicator-animated.tsx +79 -0
- package/src/ui/typing-indicator/index.ts +15 -0
- package/src/ui/typing-indicator/types.ts +20 -0
- package/src/ui/typing-indicator/typing-indicator-base.tsx +75 -0
- package/src/ui/typing-indicator/typing-indicator.test.tsx +76 -0
- package/src/ui/typing-indicator/typing-indicator.tsx +2 -0
- package/src/ui/typing-indicator/variants.ts +49 -0
- package/dist/chunk-6OVDBAMI.js +0 -19
- package/dist/chunk-DPNTQ4AK.js.map +0 -1
- package/dist/chunk-UVP3MUBU.mjs.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Transition, Variants } from "framer-motion";
|
|
2
|
+
export type TypingIndicatorAnimation = "none" | "bounce" | "pulse" | "wave";
|
|
3
|
+
export type TypingIndicatorAnimationPresets = Record<TypingIndicatorAnimation, {
|
|
4
|
+
transition: Transition;
|
|
5
|
+
variants: Variants;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const typingIndicatorAnimationPresets: TypingIndicatorAnimationPresets;
|
|
8
|
+
//# sourceMappingURL=animations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../../../src/ui/typing-indicator/animated/animations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5E,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAClD,wBAAwB,EACxB;IACE,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CACF,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,+BA6C3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/typing-indicator/animated/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EACV,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Ref } from "react";
|
|
2
|
+
import type { TypingIndicatorBaseProps } from "../types";
|
|
3
|
+
import type { TypingIndicatorAnimation } from "./animations";
|
|
4
|
+
export type { TypingIndicatorAnimation };
|
|
5
|
+
export type TypingIndicatorAnimatedProps = TypingIndicatorBaseProps & {
|
|
6
|
+
animation?: TypingIndicatorAnimation;
|
|
7
|
+
ref?: Ref<HTMLSpanElement>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ui/typing-indicator/animated/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE7D,YAAY,EAAE,wBAAwB,EAAE,CAAC;AAEzC,MAAM,MAAM,4BAA4B,GAAG,wBAAwB,GAAG;IACpE,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;CAC5B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TypingIndicatorAnimatedProps } from "./types";
|
|
2
|
+
export declare function TypingIndicatorAnimated({ appearance, size, dots, label, labelPosition, animation, className, ref, ...rest }: TypingIndicatorAnimatedProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace TypingIndicatorAnimated {
|
|
4
|
+
var displayName: string;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=typing-indicator-animated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-indicator-animated.d.ts","sourceRoot":"","sources":["../../../../src/ui/typing-indicator/animated/typing-indicator-animated.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAG5D,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,IAAI,EACJ,IAAQ,EACR,KAAK,EACL,aAAwB,EACxB,SAAoB,EACpB,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACR,EAAE,4BAA4B,2CAiD9B;yBA3De,uBAAuB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkDXNIAFBG_js = require('../../chunk-DXNIAFBG.js');
|
|
5
|
+
require('../../chunk-HNPGWFVY.js');
|
|
6
|
+
var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
|
|
7
|
+
require('../../chunk-PZ5AY32C.js');
|
|
8
|
+
var framerMotion = require('framer-motion');
|
|
9
|
+
var react = require('react');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
|
|
12
|
+
// src/ui/typing-indicator/animated/animations.ts
|
|
13
|
+
var typingIndicatorAnimationPresets = {
|
|
14
|
+
none: {
|
|
15
|
+
transition: { duration: 0 },
|
|
16
|
+
variants: {
|
|
17
|
+
initial: { y: 0 },
|
|
18
|
+
animate: { y: 0 }
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
bounce: {
|
|
22
|
+
transition: {
|
|
23
|
+
type: "spring",
|
|
24
|
+
stiffness: 500,
|
|
25
|
+
damping: 10,
|
|
26
|
+
mass: 0.5
|
|
27
|
+
},
|
|
28
|
+
variants: {
|
|
29
|
+
initial: { y: 0 },
|
|
30
|
+
animate: { y: -6 }
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
pulse: {
|
|
34
|
+
transition: {
|
|
35
|
+
duration: 0.8,
|
|
36
|
+
repeat: Infinity,
|
|
37
|
+
repeatType: "reverse",
|
|
38
|
+
ease: "easeInOut"
|
|
39
|
+
},
|
|
40
|
+
variants: {
|
|
41
|
+
initial: { scale: 1, opacity: 0.4 },
|
|
42
|
+
animate: { scale: 1.3, opacity: 1 }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
wave: {
|
|
46
|
+
transition: {
|
|
47
|
+
type: "spring",
|
|
48
|
+
stiffness: 400,
|
|
49
|
+
damping: 8,
|
|
50
|
+
mass: 0.4
|
|
51
|
+
},
|
|
52
|
+
variants: {
|
|
53
|
+
initial: { y: 0, scale: 1 },
|
|
54
|
+
animate: { y: -8, scale: 0.9 }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
function TypingIndicatorAnimated({
|
|
59
|
+
appearance,
|
|
60
|
+
size,
|
|
61
|
+
dots = 3,
|
|
62
|
+
label,
|
|
63
|
+
labelPosition = "before",
|
|
64
|
+
animation = "bounce",
|
|
65
|
+
className,
|
|
66
|
+
ref,
|
|
67
|
+
...rest
|
|
68
|
+
}) {
|
|
69
|
+
const preset = typingIndicatorAnimationPresets[animation];
|
|
70
|
+
const dotTransitionOverrides = react.useMemo(
|
|
71
|
+
() => Array.from({ length: dots }).map((_, i) => ({
|
|
72
|
+
delay: i * 0.12,
|
|
73
|
+
...animation !== "none" ? { repeat: Infinity, repeatType: "reverse" } : {},
|
|
74
|
+
...preset.transition
|
|
75
|
+
})),
|
|
76
|
+
[dots, animation, preset.transition]
|
|
77
|
+
);
|
|
78
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
79
|
+
"span",
|
|
80
|
+
{
|
|
81
|
+
ref,
|
|
82
|
+
"data-slot": "typing-indicator",
|
|
83
|
+
className: chunkZS5756ZC_js.cn(chunkDXNIAFBG_js.typingIndicatorVariants({ size }), className),
|
|
84
|
+
...rest,
|
|
85
|
+
children: [
|
|
86
|
+
label && labelPosition === "before" && /* @__PURE__ */ jsxRuntime.jsx(chunkDXNIAFBG_js.TypingIndicatorLabel, { size, children: label }),
|
|
87
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
+
"span",
|
|
89
|
+
{
|
|
90
|
+
"data-slot": "typing-indicator-dots",
|
|
91
|
+
className: chunkDXNIAFBG_js.typingIndicatorDotsVariants({ size }),
|
|
92
|
+
children: Array.from({ length: dots }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
93
|
+
framerMotion.motion.span,
|
|
94
|
+
{
|
|
95
|
+
"data-slot": "typing-indicator-dot",
|
|
96
|
+
className: chunkZS5756ZC_js.cn(
|
|
97
|
+
chunkDXNIAFBG_js.typingIndicatorDotVariants({ appearance, size }),
|
|
98
|
+
"animate-none"
|
|
99
|
+
),
|
|
100
|
+
initial: "initial",
|
|
101
|
+
animate: "animate",
|
|
102
|
+
variants: preset.variants,
|
|
103
|
+
transition: dotTransitionOverrides[i]
|
|
104
|
+
},
|
|
105
|
+
i
|
|
106
|
+
))
|
|
107
|
+
}
|
|
108
|
+
),
|
|
109
|
+
label && labelPosition === "after" && /* @__PURE__ */ jsxRuntime.jsx(chunkDXNIAFBG_js.TypingIndicatorLabel, { size, children: label })
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
TypingIndicatorAnimated.displayName = "TypingIndicatorAnimated";
|
|
115
|
+
|
|
116
|
+
exports.TypingIndicatorAnimated = TypingIndicatorAnimated;
|
|
117
|
+
exports.typingIndicatorAnimationPresets = typingIndicatorAnimationPresets;
|
|
118
|
+
//# sourceMappingURL=animated.js.map
|
|
119
|
+
//# sourceMappingURL=animated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/typing-indicator/animated/animations.ts","../../../src/ui/typing-indicator/animated/typing-indicator-animated.tsx"],"names":["useMemo","jsxs","cn","typingIndicatorVariants","jsx","TypingIndicatorLabel","typingIndicatorDotsVariants","motion","typingIndicatorDotVariants"],"mappings":"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","file":"animated.js","sourcesContent":["import type { Transition, Variants } from \"framer-motion\";\n\nexport type TypingIndicatorAnimation = \"none\" | \"bounce\" | \"pulse\" | \"wave\";\n\nexport type TypingIndicatorAnimationPresets = Record<\n TypingIndicatorAnimation,\n {\n transition: Transition;\n variants: Variants;\n }\n>;\n\nexport const typingIndicatorAnimationPresets: TypingIndicatorAnimationPresets =\n {\n none: {\n transition: { duration: 0 },\n variants: {\n initial: { y: 0 },\n animate: { y: 0 },\n },\n },\n bounce: {\n transition: {\n type: \"spring\",\n stiffness: 500,\n damping: 10,\n mass: 0.5,\n },\n variants: {\n initial: { y: 0 },\n animate: { y: -6 },\n },\n },\n pulse: {\n transition: {\n duration: 0.8,\n repeat: Infinity,\n repeatType: \"reverse\",\n ease: \"easeInOut\",\n },\n variants: {\n initial: { scale: 1, opacity: 0.4 },\n animate: { scale: 1.3, opacity: 1 },\n },\n },\n wave: {\n transition: {\n type: \"spring\",\n stiffness: 400,\n damping: 8,\n mass: 0.4,\n },\n variants: {\n initial: { y: 0, scale: 1 },\n animate: { y: -8, scale: 0.9 },\n },\n },\n };\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nimport {\n typingIndicatorDotVariants,\n typingIndicatorDotsVariants,\n typingIndicatorVariants,\n} from \"../variants\";\n\nimport { typingIndicatorAnimationPresets } from \"./animations\";\nimport type { TypingIndicatorAnimatedProps } from \"./types\";\nimport { TypingIndicatorLabel } from \"../typing-indicator-base\";\n\nexport function TypingIndicatorAnimated({\n appearance,\n size,\n dots = 3,\n label,\n labelPosition = \"before\",\n animation = \"bounce\",\n className,\n ref,\n ...rest\n}: TypingIndicatorAnimatedProps) {\n const preset = typingIndicatorAnimationPresets[animation];\n\n const dotTransitionOverrides = useMemo(\n () =>\n Array.from({ length: dots }).map((_, i) => ({\n delay: i * 0.12,\n ...(animation !== \"none\"\n ? { repeat: Infinity, repeatType: \"reverse\" as const }\n : {}),\n ...preset.transition,\n })),\n [dots, animation, preset.transition],\n );\n\n return (\n <span\n ref={ref}\n data-slot=\"typing-indicator\"\n className={cn(typingIndicatorVariants({ size }), className)}\n {...rest}\n >\n {label && labelPosition === \"before\" && (\n <TypingIndicatorLabel size={size}>{label}</TypingIndicatorLabel>\n )}\n <span\n data-slot=\"typing-indicator-dots\"\n className={typingIndicatorDotsVariants({ size })}\n >\n {Array.from({ length: dots }).map((_, i) => (\n <motion.span\n key={i}\n data-slot=\"typing-indicator-dot\"\n className={cn(\n typingIndicatorDotVariants({ appearance, size }),\n \"animate-none\",\n )}\n initial=\"initial\"\n animate=\"animate\"\n variants={preset.variants}\n transition={dotTransitionOverrides[i]}\n />\n ))}\n </span>\n {label && labelPosition === \"after\" && (\n <TypingIndicatorLabel size={size}>{label}</TypingIndicatorLabel>\n )}\n </span>\n );\n}\n\nTypingIndicatorAnimated.displayName = \"TypingIndicatorAnimated\";\n"]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { TypingIndicatorLabel, typingIndicatorDotVariants, typingIndicatorDotsVariants, typingIndicatorVariants } from '../../chunk-4KOQS4DT.mjs';
|
|
3
|
+
import '../../chunk-EMZC6ICD.mjs';
|
|
4
|
+
import { cn } from '../../chunk-4D54YOL6.mjs';
|
|
5
|
+
import '../../chunk-J5LGTIGS.mjs';
|
|
6
|
+
import { motion } from 'framer-motion';
|
|
7
|
+
import { useMemo } from 'react';
|
|
8
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
// src/ui/typing-indicator/animated/animations.ts
|
|
11
|
+
var typingIndicatorAnimationPresets = {
|
|
12
|
+
none: {
|
|
13
|
+
transition: { duration: 0 },
|
|
14
|
+
variants: {
|
|
15
|
+
initial: { y: 0 },
|
|
16
|
+
animate: { y: 0 }
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
bounce: {
|
|
20
|
+
transition: {
|
|
21
|
+
type: "spring",
|
|
22
|
+
stiffness: 500,
|
|
23
|
+
damping: 10,
|
|
24
|
+
mass: 0.5
|
|
25
|
+
},
|
|
26
|
+
variants: {
|
|
27
|
+
initial: { y: 0 },
|
|
28
|
+
animate: { y: -6 }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
pulse: {
|
|
32
|
+
transition: {
|
|
33
|
+
duration: 0.8,
|
|
34
|
+
repeat: Infinity,
|
|
35
|
+
repeatType: "reverse",
|
|
36
|
+
ease: "easeInOut"
|
|
37
|
+
},
|
|
38
|
+
variants: {
|
|
39
|
+
initial: { scale: 1, opacity: 0.4 },
|
|
40
|
+
animate: { scale: 1.3, opacity: 1 }
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
wave: {
|
|
44
|
+
transition: {
|
|
45
|
+
type: "spring",
|
|
46
|
+
stiffness: 400,
|
|
47
|
+
damping: 8,
|
|
48
|
+
mass: 0.4
|
|
49
|
+
},
|
|
50
|
+
variants: {
|
|
51
|
+
initial: { y: 0, scale: 1 },
|
|
52
|
+
animate: { y: -8, scale: 0.9 }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
function TypingIndicatorAnimated({
|
|
57
|
+
appearance,
|
|
58
|
+
size,
|
|
59
|
+
dots = 3,
|
|
60
|
+
label,
|
|
61
|
+
labelPosition = "before",
|
|
62
|
+
animation = "bounce",
|
|
63
|
+
className,
|
|
64
|
+
ref,
|
|
65
|
+
...rest
|
|
66
|
+
}) {
|
|
67
|
+
const preset = typingIndicatorAnimationPresets[animation];
|
|
68
|
+
const dotTransitionOverrides = useMemo(
|
|
69
|
+
() => Array.from({ length: dots }).map((_, i) => ({
|
|
70
|
+
delay: i * 0.12,
|
|
71
|
+
...animation !== "none" ? { repeat: Infinity, repeatType: "reverse" } : {},
|
|
72
|
+
...preset.transition
|
|
73
|
+
})),
|
|
74
|
+
[dots, animation, preset.transition]
|
|
75
|
+
);
|
|
76
|
+
return /* @__PURE__ */ jsxs(
|
|
77
|
+
"span",
|
|
78
|
+
{
|
|
79
|
+
ref,
|
|
80
|
+
"data-slot": "typing-indicator",
|
|
81
|
+
className: cn(typingIndicatorVariants({ size }), className),
|
|
82
|
+
...rest,
|
|
83
|
+
children: [
|
|
84
|
+
label && labelPosition === "before" && /* @__PURE__ */ jsx(TypingIndicatorLabel, { size, children: label }),
|
|
85
|
+
/* @__PURE__ */ jsx(
|
|
86
|
+
"span",
|
|
87
|
+
{
|
|
88
|
+
"data-slot": "typing-indicator-dots",
|
|
89
|
+
className: typingIndicatorDotsVariants({ size }),
|
|
90
|
+
children: Array.from({ length: dots }).map((_, i) => /* @__PURE__ */ jsx(
|
|
91
|
+
motion.span,
|
|
92
|
+
{
|
|
93
|
+
"data-slot": "typing-indicator-dot",
|
|
94
|
+
className: cn(
|
|
95
|
+
typingIndicatorDotVariants({ appearance, size }),
|
|
96
|
+
"animate-none"
|
|
97
|
+
),
|
|
98
|
+
initial: "initial",
|
|
99
|
+
animate: "animate",
|
|
100
|
+
variants: preset.variants,
|
|
101
|
+
transition: dotTransitionOverrides[i]
|
|
102
|
+
},
|
|
103
|
+
i
|
|
104
|
+
))
|
|
105
|
+
}
|
|
106
|
+
),
|
|
107
|
+
label && labelPosition === "after" && /* @__PURE__ */ jsx(TypingIndicatorLabel, { size, children: label })
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
TypingIndicatorAnimated.displayName = "TypingIndicatorAnimated";
|
|
113
|
+
|
|
114
|
+
export { TypingIndicatorAnimated, typingIndicatorAnimationPresets };
|
|
115
|
+
//# sourceMappingURL=animated.mjs.map
|
|
116
|
+
//# sourceMappingURL=animated.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/typing-indicator/animated/animations.ts","../../../src/ui/typing-indicator/animated/typing-indicator-animated.tsx"],"names":[],"mappings":"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","file":"animated.mjs","sourcesContent":["import type { Transition, Variants } from \"framer-motion\";\n\nexport type TypingIndicatorAnimation = \"none\" | \"bounce\" | \"pulse\" | \"wave\";\n\nexport type TypingIndicatorAnimationPresets = Record<\n TypingIndicatorAnimation,\n {\n transition: Transition;\n variants: Variants;\n }\n>;\n\nexport const typingIndicatorAnimationPresets: TypingIndicatorAnimationPresets =\n {\n none: {\n transition: { duration: 0 },\n variants: {\n initial: { y: 0 },\n animate: { y: 0 },\n },\n },\n bounce: {\n transition: {\n type: \"spring\",\n stiffness: 500,\n damping: 10,\n mass: 0.5,\n },\n variants: {\n initial: { y: 0 },\n animate: { y: -6 },\n },\n },\n pulse: {\n transition: {\n duration: 0.8,\n repeat: Infinity,\n repeatType: \"reverse\",\n ease: \"easeInOut\",\n },\n variants: {\n initial: { scale: 1, opacity: 0.4 },\n animate: { scale: 1.3, opacity: 1 },\n },\n },\n wave: {\n transition: {\n type: \"spring\",\n stiffness: 400,\n damping: 8,\n mass: 0.4,\n },\n variants: {\n initial: { y: 0, scale: 1 },\n animate: { y: -8, scale: 0.9 },\n },\n },\n };\n","\"use client\";\n\nimport { motion } from \"framer-motion\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nimport {\n typingIndicatorDotVariants,\n typingIndicatorDotsVariants,\n typingIndicatorVariants,\n} from \"../variants\";\n\nimport { typingIndicatorAnimationPresets } from \"./animations\";\nimport type { TypingIndicatorAnimatedProps } from \"./types\";\nimport { TypingIndicatorLabel } from \"../typing-indicator-base\";\n\nexport function TypingIndicatorAnimated({\n appearance,\n size,\n dots = 3,\n label,\n labelPosition = \"before\",\n animation = \"bounce\",\n className,\n ref,\n ...rest\n}: TypingIndicatorAnimatedProps) {\n const preset = typingIndicatorAnimationPresets[animation];\n\n const dotTransitionOverrides = useMemo(\n () =>\n Array.from({ length: dots }).map((_, i) => ({\n delay: i * 0.12,\n ...(animation !== \"none\"\n ? { repeat: Infinity, repeatType: \"reverse\" as const }\n : {}),\n ...preset.transition,\n })),\n [dots, animation, preset.transition],\n );\n\n return (\n <span\n ref={ref}\n data-slot=\"typing-indicator\"\n className={cn(typingIndicatorVariants({ size }), className)}\n {...rest}\n >\n {label && labelPosition === \"before\" && (\n <TypingIndicatorLabel size={size}>{label}</TypingIndicatorLabel>\n )}\n <span\n data-slot=\"typing-indicator-dots\"\n className={typingIndicatorDotsVariants({ size })}\n >\n {Array.from({ length: dots }).map((_, i) => (\n <motion.span\n key={i}\n data-slot=\"typing-indicator-dot\"\n className={cn(\n typingIndicatorDotVariants({ appearance, size }),\n \"animate-none\",\n )}\n initial=\"initial\"\n animate=\"animate\"\n variants={preset.variants}\n transition={dotTransitionOverrides[i]}\n />\n ))}\n </span>\n {label && labelPosition === \"after\" && (\n <TypingIndicatorLabel size={size}>{label}</TypingIndicatorLabel>\n )}\n </span>\n );\n}\n\nTypingIndicatorAnimated.displayName = \"TypingIndicatorAnimated\";\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TypingIndicator } from "./typing-indicator";
|
|
2
|
+
export type { TypingIndicatorBaseProps, TypingIndicatorDots, TypingIndicatorProps, TypingIndicatorVariantProps, } from "./types";
|
|
3
|
+
export { typingIndicatorDotVariants, typingIndicatorDotsVariants, typingIndicatorLabelVariants, typingIndicatorVariants, } from "./variants";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/typing-indicator/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { VariantProps } from "class-variance-authority";
|
|
2
|
+
import type { ComponentPropsWithRef, ReactNode } from "react";
|
|
3
|
+
import type { typingIndicatorDotVariants } from "./variants";
|
|
4
|
+
export type TypingIndicatorVariantProps = VariantProps<typeof typingIndicatorDotVariants>;
|
|
5
|
+
export type TypingIndicatorDots = 3 | 4 | 5;
|
|
6
|
+
export type TypingIndicatorBaseProps = TypingIndicatorVariantProps & ComponentPropsWithRef<"span"> & {
|
|
7
|
+
dots?: TypingIndicatorDots;
|
|
8
|
+
label?: ReactNode;
|
|
9
|
+
labelPosition?: "before" | "after";
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
};
|
|
12
|
+
export type TypingIndicatorProps = TypingIndicatorBaseProps;
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/typing-indicator/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,2BAA2B,GAAG,YAAY,CACpD,OAAO,0BAA0B,CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAChE,qBAAqB,CAAC,MAAM,CAAC,GAAG;IAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEJ,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TypingIndicatorBaseProps } from "./types";
|
|
2
|
+
export declare function TypingIndicatorBase({ appearance, size, dots, label, labelPosition, className, ref, ...rest }: TypingIndicatorBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace TypingIndicatorBase {
|
|
4
|
+
var displayName: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function TypingIndicatorLabel({ size, children, }: {
|
|
7
|
+
size?: TypingIndicatorBaseProps["size"];
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare namespace TypingIndicatorLabel {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=typing-indicator-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-indicator-base.d.ts","sourceRoot":"","sources":["../../../src/ui/typing-indicator/typing-indicator-base.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AASxD,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,EACV,IAAI,EACJ,IAAQ,EACR,KAAK,EACL,aAAwB,EACxB,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACR,EAAE,wBAAwB,2CA+B1B;yBAxCe,mBAAmB;;;AA4CnC,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CASA;yBAfe,oBAAoB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-indicator.d.ts","sourceRoot":"","sources":["../../../src/ui/typing-indicator/typing-indicator.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { zuiTypingIndicatorDotDelays } from "../../design-system/typing-indicator";
|
|
2
|
+
export { zuiTypingIndicatorDotDelays as typingIndicatorDotDelays };
|
|
3
|
+
export declare const typingIndicatorVariants: (props?: ({
|
|
4
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export declare const typingIndicatorDotsVariants: (props?: ({
|
|
7
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
export declare const typingIndicatorDotVariants: (props?: ({
|
|
10
|
+
appearance?: "default" | "muted" | "sky" | "emerald" | "rose" | "slate" | "gray" | "indigo" | "cyan" | "blue" | "green" | "lime" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-purple" | "zinc" | "subtle" | "primary" | null | undefined;
|
|
11
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
export declare const typingIndicatorLabelVariants: (props?: ({
|
|
14
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
//# sourceMappingURL=variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../src/ui/typing-indicator/variants.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,2BAA2B,EAM5B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,2BAA2B,IAAI,wBAAwB,EAAE,CAAC;AAEnE,eAAO,MAAM,uBAAuB;;8EAOlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;8EAKtC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;8EASrC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;8EAKvC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkDXNIAFBG_js = require('../chunk-DXNIAFBG.js');
|
|
5
|
+
require('../chunk-HNPGWFVY.js');
|
|
6
|
+
require('../chunk-ZS5756ZC.js');
|
|
7
|
+
require('../chunk-PZ5AY32C.js');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(exports, "TypingIndicator", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkDXNIAFBG_js.TypingIndicatorBase; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "typingIndicatorDotVariants", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkDXNIAFBG_js.typingIndicatorDotVariants; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "typingIndicatorDotsVariants", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkDXNIAFBG_js.typingIndicatorDotsVariants; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "typingIndicatorLabelVariants", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkDXNIAFBG_js.typingIndicatorLabelVariants; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "typingIndicatorVariants", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkDXNIAFBG_js.typingIndicatorVariants; }
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=typing-indicator.js.map
|
|
32
|
+
//# sourceMappingURL=typing-indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"typing-indicator.js"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { TypingIndicatorBase as TypingIndicator, typingIndicatorDotVariants, typingIndicatorDotsVariants, typingIndicatorLabelVariants, typingIndicatorVariants } from '../chunk-4KOQS4DT.mjs';
|
|
3
|
+
import '../chunk-EMZC6ICD.mjs';
|
|
4
|
+
import '../chunk-4D54YOL6.mjs';
|
|
5
|
+
import '../chunk-J5LGTIGS.mjs';
|
|
6
|
+
//# sourceMappingURL=typing-indicator.mjs.map
|
|
7
|
+
//# sourceMappingURL=typing-indicator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"typing-indicator.mjs"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zentauri-ui/zentauri-components",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "React + Tailwind UI kit with charts, ESM/CJS builds, per-entry exports, and a zentauri-components / zentauri-ui CLI to vendor UI or hook source into your app",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -150,5 +150,8 @@
|
|
|
150
150
|
"tsup": "^8.5.1",
|
|
151
151
|
"typescript": "^5",
|
|
152
152
|
"vitest": "^4.1.4"
|
|
153
|
+
},
|
|
154
|
+
"dependencies": {
|
|
155
|
+
"diff": "^9.0.0"
|
|
153
156
|
}
|
|
154
157
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const zuiCodeDiffBase = [
|
|
2
|
+
"relative overflow-auto rounded-lg border border-[color:var(--zui-code-diff-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-code-diff-border-dark,var(--zui-border-dark,#ffffff1a))]",
|
|
3
|
+
"bg-[var(--zui-code-diff-bg,var(--zui-surface,oklch(98.4%_0.003_247.858)))] dark:bg-[var(--zui-code-diff-bg-dark,var(--zui-surface-dark,oklch(12.9%_0.042_264.695)))]",
|
|
4
|
+
"text-[color:var(--zui-code-diff-fg,var(--zui-fg,oklch(20.8%_0.042_265.755)))] dark:text-[color:var(--zui-code-diff-fg-dark,var(--zui-fg-dark,oklch(98.4%_0.003_247.858)))]",
|
|
5
|
+
] as const;
|
|
6
|
+
|
|
7
|
+
export const zuiCodeDiffSizes = {
|
|
8
|
+
sm: "text-xs leading-5",
|
|
9
|
+
md: "text-sm leading-6",
|
|
10
|
+
lg: "text-base leading-7",
|
|
11
|
+
} as const;
|
|
12
|
+
|
|
13
|
+
export const zuiCodeDiffHeaderBase =
|
|
14
|
+
"sticky top-0 z-10 flex items-center justify-between border-b border-[color:var(--zui-code-diff-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-code-diff-border-dark,var(--zui-border-dark,#ffffff1a))] bg-[var(--zui-code-diff-header-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:bg-[var(--zui-code-diff-header-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))] px-4 py-2";
|
|
15
|
+
|
|
16
|
+
export const zuiCodeDiffTableBase = "w-full border-collapse table-fixed";
|
|
17
|
+
|
|
18
|
+
export const zuiCodeDiffLineNumberBase =
|
|
19
|
+
"select-none text-right align-top whitespace-nowrap border-r border-[color:var(--zui-code-diff-border,var(--zui-border,#0000001a))] dark:border-[color:var(--zui-code-diff-border-dark,var(--zui-border-dark,#ffffff1a))] px-3 text-[color:var(--zui-code-diff-line-number-fg,var(--zui-fg-muted,oklch(55.2%_0.046_257.417)))] dark:text-[color:var(--zui-code-diff-line-number-fg-dark,var(--zui-fg-muted-dark,oklch(70.8%_0.015_256.243)))]";
|
|
20
|
+
|
|
21
|
+
export const zuiCodeDiffLineContentBase =
|
|
22
|
+
"whitespace-pre-wrap break-all px-4 align-top";
|
|
23
|
+
|
|
24
|
+
export const zuiCodeDiffLineAdded =
|
|
25
|
+
"bg-[var(--zui-code-diff-added-bg,oklch(92.8%_0.109_150.96))] dark:bg-[var(--zui-code-diff-added-bg-dark,oklch(26.8%_0.077_146.44))] text-[color:var(--zui-code-diff-added-fg,oklch(29.1%_0.065_148.99))] dark:text-[color:var(--zui-code-diff-added-fg-dark,oklch(74%_0.131_149.02))]";
|
|
26
|
+
|
|
27
|
+
export const zuiCodeDiffLineRemoved =
|
|
28
|
+
"bg-[var(--zui-code-diff-removed-bg,oklch(93.1%_0.08_22.4))] dark:bg-[var(--zui-code-diff-removed-bg-dark,oklch(26.9%_0.07_22.54))] text-[color:var(--zui-code-diff-removed-fg,oklch(30.7%_0.06_28.07))] dark:text-[color:var(--zui-code-diff-removed-fg-dark,oklch(74.2%_0.127_24.75))]";
|
|
29
|
+
|
|
30
|
+
export const zuiCodeDiffLineUnchanged = "";
|
|
31
|
+
|
|
32
|
+
export const zuiCodeDiffGutterMarker =
|
|
33
|
+
"inline-block w-4 text-center select-none";
|
|
34
|
+
|
|
35
|
+
export const zuiCodeDiffAppearances = {
|
|
36
|
+
default: "",
|
|
37
|
+
} as const;
|
|
@@ -7,6 +7,7 @@ export * from "./badge";
|
|
|
7
7
|
export * from "./breadcrumb";
|
|
8
8
|
export * from "./button";
|
|
9
9
|
export * from "./card";
|
|
10
|
+
export * from "./code-diff";
|
|
10
11
|
export * from "./checkbox";
|
|
11
12
|
export * from "./combobox";
|
|
12
13
|
export * from "./command";
|
|
@@ -41,6 +42,7 @@ export * from "./timeline";
|
|
|
41
42
|
export * from "./toast";
|
|
42
43
|
export * from "./tokens";
|
|
43
44
|
export * from "./toggle";
|
|
45
|
+
export * from "./typing-indicator";
|
|
44
46
|
export * from "./tooltip";
|
|
45
47
|
export * from "./tree-view";
|
|
46
48
|
export * from "./typography";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export const zuiTypingIndicatorAppearances = {
|
|
2
|
+
default:
|
|
3
|
+
"bg-[var(--zui-typing-indicator-default-dot-bg,var(--zui-brand,oklch(20.8%_0.042_265.755)))] dark:bg-[var(--zui-typing-indicator-default-dot-bg-dark,var(--zui-brand-dark,oklch(98.4%_0.003_247.858)))]",
|
|
4
|
+
subtle:
|
|
5
|
+
"bg-[var(--zui-typing-indicator-subtle-dot-bg,var(--zui-surface-muted,oklch(92.9%_0.013_255.508)))] dark:bg-[var(--zui-typing-indicator-subtle-dot-bg-dark,var(--zui-surface-muted-dark,oklch(27.9%_0.041_260.031)))]",
|
|
6
|
+
muted:
|
|
7
|
+
"bg-[var(--zui-typing-indicator-muted-dot-bg,var(--zui-fg-muted,oklch(44.6%_0.043_257.281)))] dark:bg-[var(--zui-typing-indicator-muted-dot-bg-dark,var(--zui-fg-muted-dark,oklch(86.9%_0.022_252.894)))]",
|
|
8
|
+
primary:
|
|
9
|
+
"bg-[var(--zui-typing-indicator-primary-dot-bg,var(--zui-fg,oklch(20.8%_0.042_265.755)))] dark:bg-[var(--zui-typing-indicator-primary-dot-bg-dark,var(--zui-fg-dark,oklch(98.4%_0.003_247.858)))]",
|
|
10
|
+
blue: "bg-[var(--zui-typing-indicator-blue-dot-bg,var(--zui-color-blue,#2563eb))] dark:bg-[var(--zui-typing-indicator-blue-dot-bg-dark,var(--zui-color-blue-dark,#3b82f6))]",
|
|
11
|
+
cyan: "bg-[var(--zui-typing-indicator-cyan-dot-bg,var(--zui-color-cyan,#0891b2))] dark:bg-[var(--zui-typing-indicator-cyan-dot-bg-dark,var(--zui-color-cyan-dark,#22d3ee))]",
|
|
12
|
+
green:
|
|
13
|
+
"bg-[var(--zui-typing-indicator-green-dot-bg,var(--zui-color-green,#16a34a))] dark:bg-[var(--zui-typing-indicator-green-dot-bg-dark,var(--zui-color-green-dark,#22c55e))]",
|
|
14
|
+
lime: "bg-[var(--zui-typing-indicator-lime-dot-bg,var(--zui-color-lime,#65a30d))] dark:bg-[var(--zui-typing-indicator-lime-dot-bg-dark,var(--zui-color-lime-dark,#a3e635))]",
|
|
15
|
+
emerald:
|
|
16
|
+
"bg-[var(--zui-typing-indicator-emerald-dot-bg,var(--zui-color-emerald,oklch(69.6%_0.17_162.48)))] dark:bg-[var(--zui-typing-indicator-emerald-dot-bg-dark,var(--zui-color-emerald-dark,oklch(43.2%_0.095_166.913)))]",
|
|
17
|
+
indigo:
|
|
18
|
+
"bg-[var(--zui-typing-indicator-indigo-dot-bg,var(--zui-color-indigo,oklch(39.8%_0.195_277.366)))] dark:bg-[var(--zui-typing-indicator-indigo-dot-bg-dark,var(--zui-color-indigo-dark,oklch(51.1%_0.262_276.966)))]",
|
|
19
|
+
purple:
|
|
20
|
+
"bg-[var(--zui-typing-indicator-purple-dot-bg,var(--zui-color-purple,oklch(43.8%_0.218_303.724)))] dark:bg-[var(--zui-typing-indicator-purple-dot-bg-dark,var(--zui-color-purple-dark,oklch(55.8%_0.288_302.321)))]",
|
|
21
|
+
pink: "bg-[var(--zui-typing-indicator-pink-dot-bg,var(--zui-color-pink,oklch(45.9%_0.187_3.815)))] dark:bg-[var(--zui-typing-indicator-pink-dot-bg-dark,var(--zui-color-pink-dark,oklch(59.2%_0.249_0.584)))]",
|
|
22
|
+
rose: "bg-[var(--zui-typing-indicator-rose-dot-bg,var(--zui-color-rose,oklch(64.5%_0.246_16.439)))] dark:bg-[var(--zui-typing-indicator-rose-dot-bg-dark,var(--zui-color-rose-dark,oklch(51.4%_0.222_16.935)))]",
|
|
23
|
+
sky: "bg-[var(--zui-typing-indicator-sky-dot-bg,var(--zui-color-sky,oklch(68.5%_0.169_237.323)))] dark:bg-[var(--zui-typing-indicator-sky-dot-bg-dark,var(--zui-color-sky-dark,oklch(50%_0.134_242.749)))]",
|
|
24
|
+
teal: "bg-[var(--zui-typing-indicator-teal-dot-bg,var(--zui-color-teal,oklch(70.4%_0.14_182.503)))] dark:bg-[var(--zui-typing-indicator-teal-dot-bg-dark,var(--zui-color-teal-dark,oklch(51.1%_0.096_186.391)))]",
|
|
25
|
+
yellow:
|
|
26
|
+
"bg-[var(--zui-typing-indicator-yellow-dot-bg,var(--zui-color-yellow,oklch(79.5%_0.184_86.047)))] dark:bg-[var(--zui-typing-indicator-yellow-dot-bg-dark,var(--zui-color-yellow-dark,oklch(47.6%_0.114_61.907)))]",
|
|
27
|
+
orange:
|
|
28
|
+
"bg-[var(--zui-typing-indicator-orange-dot-bg,var(--zui-color-orange,oklch(70.5%_0.213_47.604)))] dark:bg-[var(--zui-typing-indicator-orange-dot-bg-dark,var(--zui-color-orange-dark,oklch(47%_0.157_37.304)))]",
|
|
29
|
+
red: "bg-[var(--zui-typing-indicator-red-dot-bg,var(--zui-color-red,#dc2626))] dark:bg-[var(--zui-typing-indicator-red-dot-bg-dark,var(--zui-color-red-dark,#ef4444))]",
|
|
30
|
+
slate:
|
|
31
|
+
"bg-[var(--zui-typing-indicator-slate-dot-bg,var(--zui-color-slate,#475569))] dark:bg-[var(--zui-typing-indicator-slate-dot-bg-dark,var(--zui-color-slate-dark,#64748b))]",
|
|
32
|
+
gray: "bg-[var(--zui-typing-indicator-gray-dot-bg,var(--zui-color-gray,oklch(55.1%_0.027_264.364)))] dark:bg-[var(--zui-typing-indicator-gray-dot-bg-dark,var(--zui-color-gray-dark,oklch(55.1%_0.027_264.364)))]",
|
|
33
|
+
zinc: "bg-[var(--zui-typing-indicator-zinc-dot-bg,var(--zui-color-zinc,#52525b))] dark:bg-[var(--zui-typing-indicator-zinc-dot-bg-dark,var(--zui-color-zinc-dark,#71717a))]",
|
|
34
|
+
"gradient-blue":
|
|
35
|
+
"bg-linear-to-r from-[var(--zui-typing-indicator-gradient-blue-from,var(--zui-color-blue,oklch(42.4%_0.199_265.638)))] dark:from-[var(--zui-typing-indicator-gradient-blue-from-dark,var(--zui-color-blue-dark,oklch(54.6%_0.245_262.881)))] to-[var(--zui-typing-indicator-gradient-blue-to,var(--zui-color-purple,oklch(43.8%_0.218_303.724)))] dark:to-[var(--zui-typing-indicator-gradient-blue-to-dark,var(--zui-color-purple-dark,oklch(55.8%_0.288_302.321)))]",
|
|
36
|
+
"gradient-green":
|
|
37
|
+
"bg-linear-to-r from-[var(--zui-typing-indicator-gradient-green-from,var(--zui-color-green,oklch(44.8%_0.119_151.328)))] dark:from-[var(--zui-typing-indicator-gradient-green-from-dark,var(--zui-color-green-dark,oklch(62.7%_0.194_149.214)))] to-[var(--zui-typing-indicator-gradient-green-to,var(--zui-color-lime,oklch(45.3%_0.124_130.933)))] dark:to-[var(--zui-typing-indicator-gradient-green-to-dark,var(--zui-color-lime-dark,oklch(64.8%_0.2_131.684)))]",
|
|
38
|
+
"gradient-purple":
|
|
39
|
+
"bg-linear-to-r from-[var(--zui-typing-indicator-gradient-purple-from,var(--zui-color-purple,oklch(43.8%_0.218_303.724)))] dark:from-[var(--zui-typing-indicator-gradient-purple-from-dark,var(--zui-color-purple-dark,oklch(55.8%_0.288_302.321)))] to-[var(--zui-typing-indicator-gradient-purple-to,var(--zui-color-pink,oklch(45.9%_0.187_3.815)))] dark:to-[var(--zui-typing-indicator-gradient-purple-to-dark,var(--zui-color-pink-dark,oklch(59.2%_0.249_0.584)))]",
|
|
40
|
+
} as const;
|
|
41
|
+
|
|
42
|
+
export const zuiTypingIndicatorDotsBase = "inline-flex items-center";
|
|
43
|
+
|
|
44
|
+
export const zuiTypingIndicatorDotBase =
|
|
45
|
+
"rounded-full animate-bounce [animation-duration:1.4s]";
|
|
46
|
+
|
|
47
|
+
export const zuiTypingIndicatorDotDelays = [
|
|
48
|
+
"[animation-delay:0s]",
|
|
49
|
+
"[animation-delay:0.16s]",
|
|
50
|
+
"[animation-delay:0.32s]",
|
|
51
|
+
] as const;
|
|
52
|
+
|
|
53
|
+
export const zuiTypingIndicatorSizes = {
|
|
54
|
+
sm: "gap-1",
|
|
55
|
+
md: "gap-1.5",
|
|
56
|
+
lg: "gap-2",
|
|
57
|
+
} as const;
|
|
58
|
+
|
|
59
|
+
export const zuiTypingIndicatorDotSizes = {
|
|
60
|
+
sm: "size-1.5",
|
|
61
|
+
md: "size-2",
|
|
62
|
+
lg: "size-2.5",
|
|
63
|
+
} as const;
|
|
64
|
+
|
|
65
|
+
export const zuiTypingIndicatorLabelBase =
|
|
66
|
+
"text-[color:var(--zui-typing-indicator-label-fg,var(--zui-fg-muted,oklch(44.6%_0.043_257.287)))] dark:text-[color:var(--zui-typing-indicator-label-fg-dark,var(--zui-fg-muted-dark,oklch(86.9%_0.022_252.894)))]";
|
|
67
|
+
|
|
68
|
+
export const zuiTypingIndicatorLabelSizes = {
|
|
69
|
+
sm: "text-xs",
|
|
70
|
+
md: "text-sm",
|
|
71
|
+
lg: "text-base",
|
|
72
|
+
} as const;
|
|
73
|
+
|
|
74
|
+
export const zuiTypingIndicatorContainerBase = "inline-flex items-center gap-2";
|