@windrun-huaiin/third-ui 6.2.2 → 6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-45PUPAKX.js +128 -0
- package/dist/chunk-45PUPAKX.js.map +1 -0
- package/dist/chunk-5BELDGQB.mjs +19 -0
- package/dist/chunk-5BELDGQB.mjs.map +1 -0
- package/dist/chunk-ECWCWQCD.js +231 -0
- package/dist/chunk-ECWCWQCD.js.map +1 -0
- package/dist/chunk-EH6BJNHH.mjs +3266 -0
- package/dist/chunk-EH6BJNHH.mjs.map +1 -0
- package/dist/chunk-ETOMEWHS.mjs +231 -0
- package/dist/chunk-ETOMEWHS.mjs.map +1 -0
- package/dist/chunk-GPRHQYBI.mjs +2962 -0
- package/dist/chunk-GPRHQYBI.mjs.map +1 -0
- package/dist/chunk-M4ASGKEP.mjs +128 -0
- package/dist/chunk-M4ASGKEP.mjs.map +1 -0
- package/dist/chunk-NQKOD34Z.js +2962 -0
- package/dist/chunk-NQKOD34Z.js.map +1 -0
- package/dist/chunk-OZQO43WJ.js +981 -0
- package/dist/chunk-OZQO43WJ.js.map +1 -0
- package/dist/chunk-SQFKTU52.mjs +981 -0
- package/dist/chunk-SQFKTU52.mjs.map +1 -0
- package/dist/chunk-UNJOOO7O.js +101 -0
- package/dist/chunk-UNJOOO7O.js.map +1 -0
- package/dist/chunk-WWEZQKHX.mjs +103 -0
- package/dist/chunk-WWEZQKHX.mjs.map +1 -0
- package/dist/chunk-XCKOFS5W.js +3266 -0
- package/dist/chunk-XCKOFS5W.js.map +1 -0
- package/dist/chunk-ZURRPUFV.js +19 -0
- package/dist/chunk-ZURRPUFV.js.map +1 -0
- package/dist/clerk/index.js +18 -57
- package/dist/clerk/index.js.map +1 -1
- package/dist/clerk/index.mjs +11 -26
- package/dist/clerk/index.mjs.map +1 -1
- package/dist/clerk/server.js +68 -2906
- package/dist/clerk/server.js.map +1 -1
- package/dist/clerk/server.mjs +42 -2846
- package/dist/clerk/server.mjs.map +1 -1
- package/dist/fuma/mdx/index.js +7 -4084
- package/dist/fuma/mdx/index.js.map +1 -1
- package/dist/fuma/mdx/index.mjs +20 -4058
- package/dist/fuma/mdx/index.mjs.map +1 -1
- package/dist/fuma/server.js +722 -3535
- package/dist/fuma/server.js.map +1 -1
- package/dist/fuma/server.mjs +511 -3315
- package/dist/fuma/server.mjs.map +1 -1
- package/dist/lib/server.js +45 -103
- package/dist/lib/server.js.map +1 -1
- package/dist/lib/server.mjs +12 -24
- package/dist/lib/server.mjs.map +1 -1
- package/dist/main/index.js +6 -6214
- package/dist/main/index.js.map +1 -1
- package/dist/main/index.mjs +16 -6184
- package/dist/main/index.mjs.map +1 -1
- package/dist/main/server.js +195 -6030
- package/dist/main/server.js.map +1 -1
- package/dist/main/server.mjs +160 -5957
- package/dist/main/server.mjs.map +1 -1
- package/package.json +9 -2
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }/* eslint-disable */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkECWCWQCDjs = require('./chunk-ECWCWQCD.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkNQKOD34Zjs = require('./chunk-NQKOD34Z.js');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkUNJOOO7Ojs = require('./chunk-UNJOOO7O.js');
|
|
14
|
+
|
|
15
|
+
// src/fuma/mdx/gradient-button.tsx
|
|
16
|
+
_chunkUNJOOO7Ojs.init_cjs_shims.call(void 0, );
|
|
17
|
+
var _link = require('next/link'); var _link2 = _interopRequireDefault(_link);
|
|
18
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
19
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
20
|
+
function GradientButton({
|
|
21
|
+
title,
|
|
22
|
+
icon,
|
|
23
|
+
align = "left",
|
|
24
|
+
disabled = false,
|
|
25
|
+
className = "",
|
|
26
|
+
href,
|
|
27
|
+
openInNewTab = true,
|
|
28
|
+
onClick,
|
|
29
|
+
loadingText,
|
|
30
|
+
preventDoubleClick = true
|
|
31
|
+
}) {
|
|
32
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, false);
|
|
33
|
+
const actualLoadingText = loadingText || (title == null ? void 0 : title.toString().trim()) || "Loading...";
|
|
34
|
+
const getAlignmentClass = () => {
|
|
35
|
+
switch (align) {
|
|
36
|
+
case "center":
|
|
37
|
+
return "justify-center";
|
|
38
|
+
case "right":
|
|
39
|
+
return "justify-end";
|
|
40
|
+
default:
|
|
41
|
+
return "justify-start";
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const handleClick = (e) => _chunkUNJOOO7Ojs.__async.call(void 0, null, null, function* () {
|
|
45
|
+
if (disabled || isLoading) {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (onClick) {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
if (preventDoubleClick) {
|
|
52
|
+
setIsLoading(true);
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
yield onClick();
|
|
56
|
+
} catch (error) {
|
|
57
|
+
console.error("GradientButton onClick error:", error);
|
|
58
|
+
} finally {
|
|
59
|
+
if (preventDoubleClick) {
|
|
60
|
+
setIsLoading(false);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const isDisabled = disabled || isLoading;
|
|
66
|
+
const displayTitle = isLoading ? actualLoadingText : title;
|
|
67
|
+
const displayIcon = isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQKOD34Zjs.globalLucideIcons.Loader2, { className: "h-4 w-4 text-white animate-spin" }) : icon ? _react2.default.cloneElement(icon, {
|
|
68
|
+
className: "h-4 w-4 text-white"
|
|
69
|
+
}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQKOD34Zjs.globalLucideIcons.ArrowRight, { className: "h-4 w-4 text-white" });
|
|
70
|
+
const buttonContent = onClick ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
71
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: displayIcon }),
|
|
72
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "ml-1", children: displayTitle })
|
|
73
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
74
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: displayTitle }),
|
|
75
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "ml-1", children: displayIcon })
|
|
76
|
+
] });
|
|
77
|
+
const buttonClassName = `
|
|
78
|
+
bg-gradient-to-r
|
|
79
|
+
from-purple-400 to-pink-500
|
|
80
|
+
hover:from-purple-500 hover:to-pink-600
|
|
81
|
+
dark:from-purple-500 dark:to-pink-600
|
|
82
|
+
dark:hover:from-purple-600 dark:hover:to-pink-700
|
|
83
|
+
text-white text-base font-bold shadow-lg hover:shadow-xl
|
|
84
|
+
transition-all duration-300
|
|
85
|
+
rounded-full
|
|
86
|
+
${isDisabled ? "opacity-50 cursor-not-allowed" : ""}
|
|
87
|
+
${className}
|
|
88
|
+
`;
|
|
89
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `flex flex-col sm:flex-row gap-3 ${getAlignmentClass()}`, children: onClick ? (
|
|
90
|
+
// for click
|
|
91
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
92
|
+
_chunkECWCWQCDjs.Button,
|
|
93
|
+
{
|
|
94
|
+
size: "lg",
|
|
95
|
+
className: buttonClassName,
|
|
96
|
+
onClick: handleClick,
|
|
97
|
+
disabled: isDisabled,
|
|
98
|
+
children: buttonContent
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
) : (
|
|
102
|
+
// for Link
|
|
103
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
104
|
+
_chunkECWCWQCDjs.Button,
|
|
105
|
+
{
|
|
106
|
+
asChild: true,
|
|
107
|
+
size: "lg",
|
|
108
|
+
className: buttonClassName,
|
|
109
|
+
disabled: isDisabled,
|
|
110
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
111
|
+
_link2.default,
|
|
112
|
+
_chunkUNJOOO7Ojs.__spreadProps.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {
|
|
113
|
+
href: href || "#",
|
|
114
|
+
className: "no-underline hover:no-underline"
|
|
115
|
+
}, openInNewTab ? { target: "_blank", rel: "noopener noreferrer" } : {}), {
|
|
116
|
+
onClick: isDisabled ? (e) => e.preventDefault() : void 0,
|
|
117
|
+
children: buttonContent
|
|
118
|
+
})
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
) });
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
exports.GradientButton = GradientButton;
|
|
128
|
+
//# sourceMappingURL=chunk-45PUPAKX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/funeye/IdeaProjects/next-ai-build/packages/third-ui/dist/chunk-45PUPAKX.js","../src/fuma/mdx/gradient-button.tsx"],"names":[],"mappings":"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","file":"/Users/funeye/IdeaProjects/next-ai-build/packages/third-ui/dist/chunk-45PUPAKX.js","sourcesContent":[null,"'use client';\nimport { Button } from \"@base-ui/ui/button\";\nimport { globalLucideIcons as icons } from \"@base-ui/components/global-icon\";\nimport Link from \"next/link\";\nimport React, { useState } from 'react';\n\nexport interface GradientButtonProps {\n title: React.ReactNode;\n icon?: React.ReactNode;\n align?: 'left' | 'center' | 'right';\n disabled?: boolean;\n className?: string;\n // for Link\n href?: string;\n openInNewTab?: boolean;\n \n // for click\n onClick?: () => void | Promise<void>;\n loadingText?: React.ReactNode;\n preventDoubleClick?: boolean;\n}\n\nexport function GradientButton({\n title,\n icon,\n align = 'left',\n disabled = false,\n className = \"\",\n href,\n openInNewTab = true,\n onClick,\n loadingText,\n preventDoubleClick = true,\n}: GradientButtonProps) {\n const [isLoading, setIsLoading] = useState(false);\n const actualLoadingText = loadingText || title?.toString().trim() || 'Loading...'\n\n // set justify class according to alignment\n const getAlignmentClass = () => {\n switch (align) {\n case 'center':\n return 'justify-center';\n case 'right':\n return 'justify-end';\n default: // 'left'\n return 'justify-start';\n }\n };\n\n const handleClick = async (e: React.MouseEvent) => {\n if (disabled || isLoading) {\n e.preventDefault();\n return;\n }\n\n if (onClick) {\n e.preventDefault();\n \n if (preventDoubleClick) {\n setIsLoading(true);\n }\n \n try {\n await onClick();\n } catch (error) {\n console.error('GradientButton onClick error:', error);\n } finally {\n if (preventDoubleClick) {\n setIsLoading(false);\n }\n }\n }\n };\n\n const isDisabled = disabled || isLoading;\n\n const displayTitle = isLoading ? actualLoadingText : title;\n\n // icon\n const displayIcon = isLoading ? (\n <icons.Loader2 className=\"h-4 w-4 text-white animate-spin\" />\n ) : icon ? (\n React.cloneElement(icon as React.ReactElement<{ className?: string }>, { \n className: \"h-4 w-4 text-white\" \n })\n ) : (\n <icons.ArrowRight className=\"h-4 w-4 text-white\" />\n );\n\n const buttonContent = onClick ? (\n <>\n <span>{displayIcon}</span>\n <span className=\"ml-1\">{displayTitle}</span>\n </>\n ) : (\n <>\n <span>{displayTitle}</span>\n <span className=\"ml-1\">{displayIcon}</span>\n </>\n );\n\n const buttonClassName = `\n bg-gradient-to-r \n from-purple-400 to-pink-500 \n hover:from-purple-500 hover:to-pink-600\n dark:from-purple-500 dark:to-pink-600 \n dark:hover:from-purple-600 dark:hover:to-pink-700\n text-white text-base font-bold shadow-lg hover:shadow-xl\n transition-all duration-300\n rounded-full\n ${isDisabled ? 'opacity-50 cursor-not-allowed' : ''}\n ${className}\n `;\n\n return (\n <div className={`flex flex-col sm:flex-row gap-3 ${getAlignmentClass()}`}>\n {onClick ? (\n // for click\n <Button\n size=\"lg\"\n className={buttonClassName}\n onClick={handleClick}\n disabled={isDisabled}\n >\n {buttonContent}\n </Button>\n ) : (\n // for Link\n <Button\n asChild\n size=\"lg\"\n className={buttonClassName}\n disabled={isDisabled}\n >\n <Link\n href={href || \"#\"}\n className=\"no-underline hover:no-underline\"\n {...(openInNewTab ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {})}\n onClick={isDisabled ? (e) => e.preventDefault() : undefined}\n >\n {buttonContent}\n </Link>\n </Button>\n )}\n </div>\n );\n} "]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
import {
|
|
3
|
+
__spreadValues,
|
|
4
|
+
init_esm_shims
|
|
5
|
+
} from "./chunk-WWEZQKHX.mjs";
|
|
6
|
+
|
|
7
|
+
// src/lib/clerk-intl.ts
|
|
8
|
+
init_esm_shims();
|
|
9
|
+
import { enUS, zhCN } from "@clerk/localizations";
|
|
10
|
+
var customZH = __spreadValues({}, zhCN);
|
|
11
|
+
var clerkIntl = {
|
|
12
|
+
en: enUS,
|
|
13
|
+
zh: customZH
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
clerkIntl
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=chunk-5BELDGQB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/clerk-intl.ts"],"sourcesContent":["import { enUS, zhCN } from '@clerk/localizations';\nimport type { LocalizationResource } from '@clerk/types';\n\n// https://github.com/clerk/javascript/blob/main/packages/localizations/src/en-US.ts#L492\n// https://clerk.com/docs/customization/localization\nconst customZH: LocalizationResource = {\n ...zhCN,\n}\n\nexport const clerkIntl = {\n en: enUS,\n zh: customZH,\n}"],"mappings":";;;;;;;AAAA;AAAA,SAAS,MAAM,YAAY;AAK3B,IAAM,WAAiC,mBAClC;AAGE,IAAM,YAAY;AAAA,EACvB,IAAI;AAAA,EACJ,IAAI;AACN;","names":[]}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }/* eslint-disable */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkNQKOD34Zjs = require('./chunk-NQKOD34Z.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkUNJOOO7Ojs = require('./chunk-UNJOOO7O.js');
|
|
11
|
+
|
|
12
|
+
// ../lib/src/utils.ts
|
|
13
|
+
_chunkUNJOOO7Ojs.init_cjs_shims.call(void 0, );
|
|
14
|
+
var _clsx = require('clsx');
|
|
15
|
+
var _tailwindmerge = require('tailwind-merge');
|
|
16
|
+
function cn(...inputs) {
|
|
17
|
+
return _tailwindmerge.twMerge.call(void 0, _clsx.clsx.call(void 0, inputs));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// ../base-ui/src/ui/button.tsx
|
|
21
|
+
_chunkUNJOOO7Ojs.init_cjs_shims.call(void 0, );
|
|
22
|
+
var _react = require('react'); var React3 = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React = _interopRequireWildcard(_react);
|
|
23
|
+
|
|
24
|
+
// ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.mjs
|
|
25
|
+
_chunkUNJOOO7Ojs.init_cjs_shims.call(void 0, );
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// ../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.2_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
|
|
29
|
+
_chunkUNJOOO7Ojs.init_cjs_shims.call(void 0, );
|
|
30
|
+
|
|
31
|
+
function setRef(ref, value) {
|
|
32
|
+
if (typeof ref === "function") {
|
|
33
|
+
return ref(value);
|
|
34
|
+
} else if (ref !== null && ref !== void 0) {
|
|
35
|
+
ref.current = value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function composeRefs(...refs) {
|
|
39
|
+
return (node) => {
|
|
40
|
+
let hasCleanup = false;
|
|
41
|
+
const cleanups = refs.map((ref) => {
|
|
42
|
+
const cleanup = setRef(ref, node);
|
|
43
|
+
if (!hasCleanup && typeof cleanup == "function") {
|
|
44
|
+
hasCleanup = true;
|
|
45
|
+
}
|
|
46
|
+
return cleanup;
|
|
47
|
+
});
|
|
48
|
+
if (hasCleanup) {
|
|
49
|
+
return () => {
|
|
50
|
+
for (let i = 0; i < cleanups.length; i++) {
|
|
51
|
+
const cleanup = cleanups[i];
|
|
52
|
+
if (typeof cleanup == "function") {
|
|
53
|
+
cleanup();
|
|
54
|
+
} else {
|
|
55
|
+
setRef(refs[i], null);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function useComposedRefs(...refs) {
|
|
63
|
+
return React.useCallback(composeRefs(...refs), refs);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-slot/dist/index.mjs
|
|
67
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
68
|
+
// @__NO_SIDE_EFFECTS__
|
|
69
|
+
function createSlot(ownerName) {
|
|
70
|
+
const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
|
|
71
|
+
const Slot2 = React2.forwardRef((props, forwardedRef) => {
|
|
72
|
+
const _a = props, { children } = _a, slotProps = _chunkUNJOOO7Ojs.__objRest.call(void 0, _a, ["children"]);
|
|
73
|
+
const childrenArray = React2.Children.toArray(children);
|
|
74
|
+
const slottable = childrenArray.find(isSlottable);
|
|
75
|
+
if (slottable) {
|
|
76
|
+
const newElement = slottable.props.children;
|
|
77
|
+
const newChildren = childrenArray.map((child) => {
|
|
78
|
+
if (child === slottable) {
|
|
79
|
+
if (React2.Children.count(newElement) > 1) return React2.Children.only(null);
|
|
80
|
+
return React2.isValidElement(newElement) ? newElement.props.children : null;
|
|
81
|
+
} else {
|
|
82
|
+
return child;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotClone, _chunkUNJOOO7Ojs.__spreadProps.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {}, slotProps), { ref: forwardedRef, children: React2.isValidElement(newElement) ? React2.cloneElement(newElement, void 0, newChildren) : null }));
|
|
86
|
+
}
|
|
87
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlotClone, _chunkUNJOOO7Ojs.__spreadProps.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {}, slotProps), { ref: forwardedRef, children }));
|
|
88
|
+
});
|
|
89
|
+
Slot2.displayName = `${ownerName}.Slot`;
|
|
90
|
+
return Slot2;
|
|
91
|
+
}
|
|
92
|
+
var Slot = /* @__PURE__ */ createSlot("Slot");
|
|
93
|
+
// @__NO_SIDE_EFFECTS__
|
|
94
|
+
function createSlotClone(ownerName) {
|
|
95
|
+
const SlotClone = React2.forwardRef((props, forwardedRef) => {
|
|
96
|
+
const _a = props, { children } = _a, slotProps = _chunkUNJOOO7Ojs.__objRest.call(void 0, _a, ["children"]);
|
|
97
|
+
if (React2.isValidElement(children)) {
|
|
98
|
+
const childrenRef = getElementRef(children);
|
|
99
|
+
const props2 = mergeProps(slotProps, children.props);
|
|
100
|
+
if (children.type !== React2.Fragment) {
|
|
101
|
+
props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
|
|
102
|
+
}
|
|
103
|
+
return React2.cloneElement(children, props2);
|
|
104
|
+
}
|
|
105
|
+
return React2.Children.count(children) > 1 ? React2.Children.only(null) : null;
|
|
106
|
+
});
|
|
107
|
+
SlotClone.displayName = `${ownerName}.SlotClone`;
|
|
108
|
+
return SlotClone;
|
|
109
|
+
}
|
|
110
|
+
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
111
|
+
// @__NO_SIDE_EFFECTS__
|
|
112
|
+
function createSlottable(ownerName) {
|
|
113
|
+
const Slottable2 = ({ children }) => {
|
|
114
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
|
|
115
|
+
};
|
|
116
|
+
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
117
|
+
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
118
|
+
return Slottable2;
|
|
119
|
+
}
|
|
120
|
+
function isSlottable(child) {
|
|
121
|
+
return React2.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
122
|
+
}
|
|
123
|
+
function mergeProps(slotProps, childProps) {
|
|
124
|
+
const overrideProps = _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {}, childProps);
|
|
125
|
+
for (const propName in childProps) {
|
|
126
|
+
const slotPropValue = slotProps[propName];
|
|
127
|
+
const childPropValue = childProps[propName];
|
|
128
|
+
const isHandler = /^on[A-Z]/.test(propName);
|
|
129
|
+
if (isHandler) {
|
|
130
|
+
if (slotPropValue && childPropValue) {
|
|
131
|
+
overrideProps[propName] = (...args) => {
|
|
132
|
+
const result = childPropValue(...args);
|
|
133
|
+
slotPropValue(...args);
|
|
134
|
+
return result;
|
|
135
|
+
};
|
|
136
|
+
} else if (slotPropValue) {
|
|
137
|
+
overrideProps[propName] = slotPropValue;
|
|
138
|
+
}
|
|
139
|
+
} else if (propName === "style") {
|
|
140
|
+
overrideProps[propName] = _chunkUNJOOO7Ojs.__spreadValues.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {}, slotPropValue), childPropValue);
|
|
141
|
+
} else if (propName === "className") {
|
|
142
|
+
overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return _chunkUNJOOO7Ojs.__spreadValues.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {}, slotProps), overrideProps);
|
|
146
|
+
}
|
|
147
|
+
function getElementRef(element) {
|
|
148
|
+
var _a, _b;
|
|
149
|
+
let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
|
|
150
|
+
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
151
|
+
if (mayWarn) {
|
|
152
|
+
return element.ref;
|
|
153
|
+
}
|
|
154
|
+
getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
|
|
155
|
+
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
156
|
+
if (mayWarn) {
|
|
157
|
+
return element.props.ref;
|
|
158
|
+
}
|
|
159
|
+
return element.props.ref || element.ref;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// ../base-ui/src/ui/button.tsx
|
|
163
|
+
var _classvarianceauthority = require('class-variance-authority');
|
|
164
|
+
|
|
165
|
+
var buttonVariants = _classvarianceauthority.cva.call(void 0,
|
|
166
|
+
"inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
167
|
+
{
|
|
168
|
+
variants: {
|
|
169
|
+
variant: {
|
|
170
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
171
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
172
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
173
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
174
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
175
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
176
|
+
},
|
|
177
|
+
size: {
|
|
178
|
+
default: "h-10 px-4 py-2",
|
|
179
|
+
sm: "h-9 rounded-md px-3",
|
|
180
|
+
lg: "h-11 rounded-md px-8",
|
|
181
|
+
icon: "h-10 w-10"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
defaultVariants: {
|
|
185
|
+
variant: "default",
|
|
186
|
+
size: "default"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
var Button = React3.forwardRef(
|
|
191
|
+
(_a, ref) => {
|
|
192
|
+
var _b = _a, { className, variant, size, asChild = false, loading = false, children } = _b, props = _chunkUNJOOO7Ojs.__objRest.call(void 0, _b, ["className", "variant", "size", "asChild", "loading", "children"]);
|
|
193
|
+
const Comp = asChild ? Slot : "button";
|
|
194
|
+
if (asChild) {
|
|
195
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
196
|
+
Comp,
|
|
197
|
+
_chunkUNJOOO7Ojs.__spreadProps.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {
|
|
198
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
199
|
+
ref,
|
|
200
|
+
disabled: loading || props.disabled
|
|
201
|
+
}, props), {
|
|
202
|
+
children
|
|
203
|
+
})
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
207
|
+
Comp,
|
|
208
|
+
_chunkUNJOOO7Ojs.__spreadProps.call(void 0, _chunkUNJOOO7Ojs.__spreadValues.call(void 0, {
|
|
209
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
210
|
+
ref,
|
|
211
|
+
disabled: loading || props.disabled
|
|
212
|
+
}, props), {
|
|
213
|
+
children: [
|
|
214
|
+
children,
|
|
215
|
+
loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNQKOD34Zjs.globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
|
|
216
|
+
]
|
|
217
|
+
})
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
);
|
|
221
|
+
Button.displayName = "Button";
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
exports.cn = cn; exports.useComposedRefs = useComposedRefs; exports.createSlot = createSlot; exports.createSlottable = createSlottable; exports.buttonVariants = buttonVariants; exports.Button = Button;
|
|
231
|
+
//# sourceMappingURL=chunk-ECWCWQCD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/funeye/IdeaProjects/next-ai-build/packages/third-ui/dist/chunk-ECWCWQCD.js","../../lib/src/utils.ts","../../base-ui/src/ui/button.tsx","../../../node_modules/.pnpm/@radix-ui+react-slot@1.2.3_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-slot/src/slot.tsx","../../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.2_@types+react@19.1.2_react@19.1.0/node_modules/@radix-ui/react-compose-refs/src/compose-refs.tsx"],"names":["Slot","Slottable"],"mappings":"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","file":"/Users/funeye/IdeaProjects/next-ai-build/packages/third-ui/dist/chunk-ECWCWQCD.js","sourcesContent":[null,"import type * as React from \"react\";\nimport { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\nimport { format, isValid } from 'date-fns';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function formatTimestamp(timestamp: string, formatter: string) {\n const fail = \"\";\n if (!timestamp) {\n return fail;\n }\n\n // Assume gitTimestamp is a millisecond timestamp string\n const timestampMs = parseInt(timestamp, 10);\n if (isNaN(timestampMs)) {\n return fail;\n }\n\n const date = new Date(timestampMs); // or if it is determined to be seconds, use fromUnixTime(timestampSeconds)\n\n // Check if the date is valid\n if (!isValid(date)) {\n return fail;\n }\n\n // Format the date\n try {\n // 'yyyy-MM-dd HH:mm:ss' is the date-fns formatting pattern\n return format(date, formatter);\n } catch (error) {\n // format may also throw an error due to an invalid date (although isValid should have already caught it)\n console.error(\"Error formatting date:\", error);\n return fail;\n }\n} \n\n// Only allow pasting plain text, prohibit style content\nexport function handlePastePlainText(e: React.ClipboardEvent<HTMLElement>) {\n e.preventDefault();\n const text = e.clipboardData.getData('text/plain');\n const selection = window.getSelection();\n if (!selection || !selection.rangeCount) return;\n // Delete the current selected content\n selection.deleteFromDocument();\n // Insert plain text\n const textNode = document.createTextNode(text);\n const range = selection.getRangeAt(0);\n range.insertNode(textNode);\n // Move the cursor to the inserted text\n range.setStartAfter(textNode);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n}","'use client';\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { globalLucideIcons as icons } from \"@base-ui/components/global-icon\"\nimport { cn } from \"@lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n loading?: boolean\n align?: 'left' | 'center' | 'right'\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, loading = false, children, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n \n if (asChild) {\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n disabled={loading || props.disabled}\n {...props}\n >\n {children}\n </Comp>\n )\n }\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n disabled={loading || props.disabled}\n {...props}\n >\n {children}\n {loading && <icons.Loader2 className=\"ml-2 h-4 w-4 animate-spin\" />}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == 'function') {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n"]}
|