@windrun-huaiin/third-ui 3.2.2 → 3.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/clerk/index.js +1 -1
- package/dist/clerk/index.js.map +1 -1
- package/dist/clerk/index.mjs.map +1 -1
- package/dist/fuma/index.d.mts +1 -23
- package/dist/fuma/index.d.ts +1 -23
- package/dist/fuma/index.js +157 -319
- package/dist/fuma/index.js.map +1 -1
- package/dist/fuma/index.mjs +136 -296
- package/dist/fuma/index.mjs.map +1 -1
- package/dist/fuma/mdx/index.d.mts +23 -1
- package/dist/fuma/mdx/index.d.ts +23 -1
- package/dist/fuma/mdx/index.js +162 -1
- package/dist/fuma/mdx/index.js.map +1 -1
- package/dist/fuma/mdx/index.mjs +159 -0
- package/dist/fuma/mdx/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +49 -210
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +35 -194
- package/dist/index.mjs.map +1 -1
- package/dist/lib/index.js +0 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +0 -1
- package/dist/lib/index.mjs.map +1 -1
- package/dist/main/index.js +3 -2
- package/dist/main/index.js.map +1 -1
- package/dist/main/index.mjs +2 -1
- package/dist/main/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/clerk/clerk-organization.tsx +2 -0
- package/src/clerk/index.ts +1 -0
- package/src/fuma/index.ts +2 -4
- package/src/fuma/mdx/index.ts +5 -1
- package/src/fuma/mdx/toc-base.tsx +1 -0
- package/src/lib/index.ts +2 -0
- package/src/main/ads-alert-dialog.tsx +2 -0
- package/src/main/faq.tsx +2 -1
- package/src/main/index.ts +2 -0
- package/src/main/nprogress-bar.tsx +2 -1
- /package/src/fuma/{fuma-banner-suit.tsx → mdx/fuma-banner-suit.tsx} +0 -0
- /package/src/fuma/{fuma-github-info.tsx → mdx/fuma-github-info.tsx} +0 -0
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ClerkProviderClient, ClerkUser, createSignInPage, createSignUpPage, createWaitlistPage } from './clerk/index.mjs';
|
|
2
2
|
export { CTA, FAQ, Features, Footer, Gallery, GoToTop, Loading, NProgressBar, SeoContent, Tips, Usage } from './main/index.mjs';
|
|
3
|
-
export {
|
|
3
|
+
export { createFumaPage } from './fuma/index.mjs';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ClerkProviderClient, ClerkUser, createSignInPage, createSignUpPage, createWaitlistPage } from './clerk/index.js';
|
|
2
2
|
export { CTA, FAQ, Features, Footer, Gallery, GoToTop, Loading, NProgressBar, SeoContent, Tips, Usage } from './main/index.js';
|
|
3
|
-
export {
|
|
3
|
+
export { createFumaPage } from './fuma/index.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
"use strict";
|
|
3
2
|
var __create = Object.create;
|
|
4
3
|
var __defProp = Object.defineProperty;
|
|
@@ -86,8 +85,6 @@ __export(index_exports, {
|
|
|
86
85
|
FAQ: () => FAQ,
|
|
87
86
|
Features: () => Features,
|
|
88
87
|
Footer: () => Footer,
|
|
89
|
-
FumaBannerSuit: () => FumaBannerSuit,
|
|
90
|
-
FumaGithubInfo: () => FumaGithubInfo,
|
|
91
88
|
Gallery: () => Gallery,
|
|
92
89
|
GoToTop: () => GoToTop,
|
|
93
90
|
Loading: () => Loading,
|
|
@@ -2209,6 +2206,7 @@ var wrappedBuiltinIconsPart = tempWrappedBuiltinIcons;
|
|
|
2209
2206
|
var globalLucideIcons = __spreadValues(__spreadValues({}, styledLimitedIconsPart), wrappedBuiltinIconsPart);
|
|
2210
2207
|
var DEFAULT_FALLBACK_ICON = "BTC";
|
|
2211
2208
|
function getGlobalIcon(iconKey, createElement3) {
|
|
2209
|
+
var _a;
|
|
2212
2210
|
if (!iconKey) {
|
|
2213
2211
|
if (createElement3) {
|
|
2214
2212
|
return void 0;
|
|
@@ -2217,7 +2215,7 @@ function getGlobalIcon(iconKey, createElement3) {
|
|
|
2217
2215
|
}
|
|
2218
2216
|
const Icon2 = globalLucideIcons[iconKey];
|
|
2219
2217
|
if (!Icon2) {
|
|
2220
|
-
if (process.env.NODE_ENV !== "production") {
|
|
2218
|
+
if (typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NODE_ENV) !== "production") {
|
|
2221
2219
|
console.warn(
|
|
2222
2220
|
`[global-icon] iconKey "${iconKey}" is not defined in globalIcons, will use default "${String(DEFAULT_FALLBACK_ICON)}" icon, please check!`
|
|
2223
2221
|
);
|
|
@@ -3020,21 +3018,12 @@ function NProgressBar() {
|
|
|
3020
3018
|
return null;
|
|
3021
3019
|
}
|
|
3022
3020
|
|
|
3023
|
-
// src/fuma/fuma-banner-suit.tsx
|
|
3024
|
-
var import_banner = require("fumadocs-ui/components/banner");
|
|
3025
|
-
var import_next_intl10 = require("next-intl");
|
|
3026
|
-
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
3027
|
-
function FumaBannerSuit({ showText }) {
|
|
3028
|
-
const t = (0, import_next_intl10.useTranslations)("home");
|
|
3029
|
-
return showText ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_banner.Banner, { variant: "rainbow", changeLayout: true, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("p", { className: "text-xl", children: t("banner") }) }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_banner.Banner, { variant: "normal", changeLayout: true, className: "bg-white dark:bg-[rgb(10,10,10)]" });
|
|
3030
|
-
}
|
|
3031
|
-
|
|
3032
3021
|
// src/fuma/fuma-page-genarator.tsx
|
|
3033
3022
|
var import_page = require("fumadocs-ui/page");
|
|
3034
3023
|
|
|
3035
3024
|
// ../base-ui/src/lib/icon-context.tsx
|
|
3036
3025
|
var import_react36 = require("react");
|
|
3037
|
-
var
|
|
3026
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
3038
3027
|
var IconConfigContext = (0, import_react36.createContext)(null);
|
|
3039
3028
|
function useIconConfig() {
|
|
3040
3029
|
const config = (0, import_react36.useContext)(IconConfigContext);
|
|
@@ -3055,7 +3044,7 @@ function useIconConfigSafe(iconKey) {
|
|
|
3055
3044
|
}
|
|
3056
3045
|
|
|
3057
3046
|
// ../base-ui/src/lib/site-icon.tsx
|
|
3058
|
-
var
|
|
3047
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
3059
3048
|
function SiteIcon(_a) {
|
|
3060
3049
|
var _b = _a, {
|
|
3061
3050
|
size = 24,
|
|
@@ -3073,24 +3062,24 @@ function SiteIcon(_a) {
|
|
|
3073
3062
|
if (typeof configuredIcon === "string") {
|
|
3074
3063
|
if (configuredIcon === "") {
|
|
3075
3064
|
const DefaultIcon = globalLucideIcons["Download"];
|
|
3076
|
-
return /* @__PURE__ */ (0,
|
|
3065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
|
|
3077
3066
|
}
|
|
3078
3067
|
const IconComponent = globalLucideIcons[configuredIcon];
|
|
3079
3068
|
if (!IconComponent) {
|
|
3080
3069
|
throw new Error(`[SiteIcon] Icon key "${configuredIcon}" not found in globalLucideIcons.`);
|
|
3081
3070
|
}
|
|
3082
|
-
return /* @__PURE__ */ (0,
|
|
3071
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
|
|
3083
3072
|
} else {
|
|
3084
3073
|
const CustomIcon = configuredIcon;
|
|
3085
3074
|
const hasColorClass = className && /text-\w+/.test(className);
|
|
3086
3075
|
const finalClassName = hasColorClass ? className : cn(themeIconColor, className);
|
|
3087
|
-
return /* @__PURE__ */ (0,
|
|
3076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
|
|
3088
3077
|
}
|
|
3089
3078
|
}
|
|
3090
3079
|
|
|
3091
3080
|
// ../base-ui/src/components/404-page.tsx
|
|
3092
3081
|
var import_react37 = require("react");
|
|
3093
|
-
var
|
|
3082
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
3094
3083
|
function NotFoundPage() {
|
|
3095
3084
|
const [glitchText, setGlitchText] = (0, import_react37.useState)("404");
|
|
3096
3085
|
(0, import_react37.useEffect)(() => {
|
|
@@ -3108,10 +3097,10 @@ function NotFoundPage() {
|
|
|
3108
3097
|
}, 600);
|
|
3109
3098
|
return () => clearInterval(interval);
|
|
3110
3099
|
}, []);
|
|
3111
|
-
return /* @__PURE__ */ (0,
|
|
3112
|
-
/* @__PURE__ */ (0,
|
|
3113
|
-
/* @__PURE__ */ (0,
|
|
3114
|
-
/* @__PURE__ */ (0,
|
|
3100
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-col items-center justify-center min-h-[75vh] w-full px-4 py-8", children: [
|
|
3101
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "text-center space-y-8 max-w-2xl", children: [
|
|
3102
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "relative flex justify-center", children: [
|
|
3103
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
3115
3104
|
"h1",
|
|
3116
3105
|
{
|
|
3117
3106
|
className: "text-8xl md:text-9xl font-bold bg-gradient-to-r from-purple-600 via-pink-500 to-purple-700 bg-clip-text text-transparent select-none",
|
|
@@ -3123,26 +3112,26 @@ function NotFoundPage() {
|
|
|
3123
3112
|
children: glitchText
|
|
3124
3113
|
}
|
|
3125
3114
|
),
|
|
3126
|
-
/* @__PURE__ */ (0,
|
|
3115
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "absolute inset-0 pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "h-full w-full bg-gradient-to-b from-transparent via-purple-500/10 to-transparent animate-pulse" }) })
|
|
3127
3116
|
] }),
|
|
3128
|
-
/* @__PURE__ */ (0,
|
|
3129
|
-
/* @__PURE__ */ (0,
|
|
3130
|
-
/* @__PURE__ */ (0,
|
|
3117
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "space-y-4", children: [
|
|
3118
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
|
|
3119
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-lg text-muted-foreground max-w-md mx-auto leading-relaxed", children: "The page you're looking for doesn't exist" })
|
|
3131
3120
|
] }),
|
|
3132
|
-
/* @__PURE__ */ (0,
|
|
3133
|
-
/* @__PURE__ */ (0,
|
|
3134
|
-
/* @__PURE__ */ (0,
|
|
3135
|
-
/* @__PURE__ */ (0,
|
|
3121
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex justify-center items-center gap-8 pt-8 opacity-60", children: [
|
|
3122
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
3123
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(SiteIcon, {}),
|
|
3124
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: "Woops!" })
|
|
3136
3125
|
] }),
|
|
3137
|
-
/* @__PURE__ */ (0,
|
|
3138
|
-
/* @__PURE__ */ (0,
|
|
3139
|
-
/* @__PURE__ */ (0,
|
|
3140
|
-
/* @__PURE__ */ (0,
|
|
3126
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
|
|
3127
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
3128
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(NotFoundIcon, {}),
|
|
3129
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: "Error Code: 404" })
|
|
3141
3130
|
] })
|
|
3142
3131
|
] })
|
|
3143
3132
|
] }),
|
|
3144
|
-
/* @__PURE__ */ (0,
|
|
3145
|
-
/* @__PURE__ */ (0,
|
|
3133
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
|
|
3134
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
3146
3135
|
"div",
|
|
3147
3136
|
{
|
|
3148
3137
|
className: "absolute inset-0 opacity-[0.02] dark:opacity-[0.05]",
|
|
@@ -3155,7 +3144,7 @@ function NotFoundPage() {
|
|
|
3155
3144
|
}
|
|
3156
3145
|
}
|
|
3157
3146
|
),
|
|
3158
|
-
Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ (0,
|
|
3147
|
+
Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
3159
3148
|
"div",
|
|
3160
3149
|
{
|
|
3161
3150
|
className: "absolute w-2 h-2 bg-purple-500/20 rounded-full animate-bounce",
|
|
@@ -3177,7 +3166,7 @@ var import_react38 = require("react");
|
|
|
3177
3166
|
var import_navigation2 = require("next/navigation");
|
|
3178
3167
|
var import_use_copy_button = require("fumadocs-ui/utils/use-copy-button");
|
|
3179
3168
|
var import_link4 = __toESM(require("fumadocs-core/link"));
|
|
3180
|
-
var
|
|
3169
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
3181
3170
|
var cache = /* @__PURE__ */ new Map();
|
|
3182
3171
|
function LLMCopyButton({ llmApiUrl } = {}) {
|
|
3183
3172
|
const [isLoading, setLoading] = (0, import_react38.useState)(false);
|
|
@@ -3206,7 +3195,7 @@ function LLMCopyButton({ llmApiUrl } = {}) {
|
|
|
3206
3195
|
setLoading(false);
|
|
3207
3196
|
}
|
|
3208
3197
|
}));
|
|
3209
|
-
return /* @__PURE__ */ (0,
|
|
3198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
3210
3199
|
Button,
|
|
3211
3200
|
{
|
|
3212
3201
|
variant: "ghost",
|
|
@@ -3214,50 +3203,50 @@ function LLMCopyButton({ llmApiUrl } = {}) {
|
|
|
3214
3203
|
loading: isLoading,
|
|
3215
3204
|
className: "justify-start px-0 text-stone-600 hover:text-stone-500 dark:text-stone-400 dark:hover:text-stone-300",
|
|
3216
3205
|
onClick,
|
|
3217
|
-
children: checked ? /* @__PURE__ */ (0,
|
|
3218
|
-
/* @__PURE__ */ (0,
|
|
3206
|
+
children: checked ? /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
3207
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(globalLucideIcons.Check, {}),
|
|
3219
3208
|
"Copied!"
|
|
3220
|
-
] }) : /* @__PURE__ */ (0,
|
|
3221
|
-
/* @__PURE__ */ (0,
|
|
3209
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
3210
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(globalLucideIcons.Markdown, {}),
|
|
3222
3211
|
"Copy page as Markdown"
|
|
3223
3212
|
] })
|
|
3224
3213
|
}
|
|
3225
3214
|
);
|
|
3226
3215
|
}
|
|
3227
3216
|
function EditOnGitHub({ url }) {
|
|
3228
|
-
return /* @__PURE__ */ (0,
|
|
3217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
3229
3218
|
import_link4.default,
|
|
3230
3219
|
{
|
|
3231
3220
|
className: "flex items-center gap-x-2 text-stone-600 hover:text-stone-500 dark:text-stone-400 dark:hover:text-stone-300 text-sm",
|
|
3232
3221
|
href: url,
|
|
3233
3222
|
children: [
|
|
3234
|
-
/* @__PURE__ */ (0,
|
|
3223
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(globalLucideIcons.GitHub, {}),
|
|
3235
3224
|
"Edit this page on GitHub"
|
|
3236
3225
|
]
|
|
3237
3226
|
}
|
|
3238
3227
|
);
|
|
3239
3228
|
}
|
|
3240
3229
|
function LastUpdatedDate({ date }) {
|
|
3241
|
-
return /* @__PURE__ */ (0,
|
|
3242
|
-
/* @__PURE__ */ (0,
|
|
3230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-x-2 text-stone-600 dark:text-stone-400 text-sm", children: [
|
|
3231
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(globalLucideIcons.LastUpdated, {}),
|
|
3243
3232
|
"Lastest on ",
|
|
3244
3233
|
date ? date : "Ages ago"
|
|
3245
3234
|
] });
|
|
3246
3235
|
}
|
|
3247
3236
|
|
|
3248
3237
|
// src/fuma/mdx/toc.tsx
|
|
3249
|
-
var
|
|
3238
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
3250
3239
|
function TocFooter({ lastModified, showCopy, editPath, githubBaseUrl }) {
|
|
3251
3240
|
const showEdit = githubBaseUrl && editPath;
|
|
3252
|
-
return /* @__PURE__ */ (0,
|
|
3253
|
-
/* @__PURE__ */ (0,
|
|
3254
|
-
showCopy && /* @__PURE__ */ (0,
|
|
3255
|
-
showEdit && /* @__PURE__ */ (0,
|
|
3241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex flex-col gap-y-2 items-start m-4", children: [
|
|
3242
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(LastUpdatedDate, { date: lastModified }),
|
|
3243
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(LLMCopyButton, {}),
|
|
3244
|
+
showEdit && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(EditOnGitHub, { url: `${githubBaseUrl}${editPath}` })
|
|
3256
3245
|
] });
|
|
3257
3246
|
}
|
|
3258
3247
|
|
|
3259
3248
|
// src/fuma/fuma-page-genarator.tsx
|
|
3260
|
-
var
|
|
3249
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
3261
3250
|
function createFumaPage({
|
|
3262
3251
|
mdxContentSource,
|
|
3263
3252
|
getMDXComponents,
|
|
@@ -3270,10 +3259,10 @@ function createFumaPage({
|
|
|
3270
3259
|
const { slug, locale } = yield params;
|
|
3271
3260
|
const page = mdxContentSource.getPage(slug, locale);
|
|
3272
3261
|
if (!page) {
|
|
3273
|
-
return /* @__PURE__ */ (0,
|
|
3262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(NotFoundPage, {});
|
|
3274
3263
|
}
|
|
3275
3264
|
const path = githubBaseUrl ? `${mdxSourceDir}/${page.file.path}` : void 0;
|
|
3276
|
-
const tocFooterElement = /* @__PURE__ */ (0,
|
|
3265
|
+
const tocFooterElement = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3277
3266
|
TocFooter,
|
|
3278
3267
|
{
|
|
3279
3268
|
lastModified: page.data.date,
|
|
@@ -3283,7 +3272,7 @@ function createFumaPage({
|
|
|
3283
3272
|
}
|
|
3284
3273
|
);
|
|
3285
3274
|
const MDX = page.data.body;
|
|
3286
|
-
return /* @__PURE__ */ (0,
|
|
3275
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
3287
3276
|
import_page.DocsPage,
|
|
3288
3277
|
{
|
|
3289
3278
|
tableOfContent: { style: "clerk", single: false, footer: tocFooterElement },
|
|
@@ -3292,9 +3281,9 @@ function createFumaPage({
|
|
|
3292
3281
|
full: page.data.full,
|
|
3293
3282
|
article: { className: "max-sm:pb-16" },
|
|
3294
3283
|
children: [
|
|
3295
|
-
/* @__PURE__ */ (0,
|
|
3296
|
-
/* @__PURE__ */ (0,
|
|
3297
|
-
/* @__PURE__ */ (0,
|
|
3284
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_page.DocsTitle, { children: page.data.title }),
|
|
3285
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_page.DocsDescription, { className: "mb-2", children: page.data.description }),
|
|
3286
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_page.DocsBody, { className: "text-fd-foreground/80", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(MDX, { components: getMDXComponents() }) })
|
|
3298
3287
|
]
|
|
3299
3288
|
}
|
|
3300
3289
|
);
|
|
@@ -3325,154 +3314,6 @@ function createFumaPage({
|
|
|
3325
3314
|
generateMetadata
|
|
3326
3315
|
};
|
|
3327
3316
|
}
|
|
3328
|
-
|
|
3329
|
-
// src/fuma/fuma-github-info.tsx
|
|
3330
|
-
var import_react39 = require("react");
|
|
3331
|
-
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
3332
|
-
function GitHubInfoSkeleton({ owner, repo, className }) {
|
|
3333
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: `flex flex-col gap-1.5 p-2 rounded-lg text-sm text-fd-foreground/80 lg:flex-row lg:items-center animate-pulse ${className}`, children: [
|
|
3334
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3335
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "size-3.5 bg-fd-muted rounded" }),
|
|
3336
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "h-4 bg-fd-muted rounded w-20" })
|
|
3337
|
-
] }),
|
|
3338
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "h-3 bg-fd-muted rounded w-8" })
|
|
3339
|
-
] });
|
|
3340
|
-
}
|
|
3341
|
-
function GitHubInfoFallback({ owner, repo, className }) {
|
|
3342
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
3343
|
-
"a",
|
|
3344
|
-
{
|
|
3345
|
-
href: `https://github.com/${owner}/${repo}`,
|
|
3346
|
-
rel: "noreferrer noopener",
|
|
3347
|
-
target: "_blank",
|
|
3348
|
-
className: `flex flex-col gap-1.5 p-2 rounded-lg text-sm text-fd-foreground/80 transition-colors lg:flex-row lg:items-center hover:text-fd-accent-foreground hover:bg-fd-accent ${className}`,
|
|
3349
|
-
children: [
|
|
3350
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("p", { className: "flex items-center gap-2 truncate", children: [
|
|
3351
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("svg", { fill: "currentColor", viewBox: "0 0 24 24", className: "size-3.5", children: [
|
|
3352
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("title", { children: "GitHub" }),
|
|
3353
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" })
|
|
3354
|
-
] }),
|
|
3355
|
-
owner,
|
|
3356
|
-
"/",
|
|
3357
|
-
repo
|
|
3358
|
-
] }),
|
|
3359
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("p", { className: "flex text-xs items-center gap-1 text-fd-muted-foreground", children: [
|
|
3360
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(globalLucideIcons.ExternalLink, { className: "size-3" }),
|
|
3361
|
-
"GitHub"
|
|
3362
|
-
] })
|
|
3363
|
-
]
|
|
3364
|
-
}
|
|
3365
|
-
);
|
|
3366
|
-
}
|
|
3367
|
-
function GitHubInfoSuccess({
|
|
3368
|
-
owner,
|
|
3369
|
-
repo,
|
|
3370
|
-
stars,
|
|
3371
|
-
className
|
|
3372
|
-
}) {
|
|
3373
|
-
const humanizedStars = humanizeNumber(stars);
|
|
3374
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
3375
|
-
"a",
|
|
3376
|
-
{
|
|
3377
|
-
href: `https://github.com/${owner}/${repo}`,
|
|
3378
|
-
rel: "noreferrer noopener",
|
|
3379
|
-
target: "_blank",
|
|
3380
|
-
className: `flex flex-col gap-1.5 p-2 rounded-lg text-sm text-fd-foreground/80 transition-colors lg:flex-row lg:items-center hover:text-fd-accent-foreground hover:bg-fd-accent ${className}`,
|
|
3381
|
-
children: [
|
|
3382
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("p", { className: "flex items-center gap-2 truncate", children: [
|
|
3383
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("svg", { fill: "currentColor", viewBox: "0 0 24 24", className: "size-3.5", children: [
|
|
3384
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("title", { children: "GitHub" }),
|
|
3385
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" })
|
|
3386
|
-
] }),
|
|
3387
|
-
owner,
|
|
3388
|
-
"/",
|
|
3389
|
-
repo
|
|
3390
|
-
] }),
|
|
3391
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("p", { className: "flex text-xs items-center gap-1 text-fd-muted-foreground", children: [
|
|
3392
|
-
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(globalLucideIcons.Star, { className: "size-3" }),
|
|
3393
|
-
humanizedStars
|
|
3394
|
-
] })
|
|
3395
|
-
]
|
|
3396
|
-
}
|
|
3397
|
-
);
|
|
3398
|
-
}
|
|
3399
|
-
function humanizeNumber(num) {
|
|
3400
|
-
if (num < 1e3) {
|
|
3401
|
-
return num.toString();
|
|
3402
|
-
}
|
|
3403
|
-
if (num < 1e5) {
|
|
3404
|
-
const value = (num / 1e3).toFixed(1);
|
|
3405
|
-
const formattedValue = value.endsWith(".0") ? value.slice(0, -2) : value;
|
|
3406
|
-
return `${formattedValue}K`;
|
|
3407
|
-
}
|
|
3408
|
-
if (num < 1e6) {
|
|
3409
|
-
return `${Math.floor(num / 1e3)}K`;
|
|
3410
|
-
}
|
|
3411
|
-
return num.toString();
|
|
3412
|
-
}
|
|
3413
|
-
function FumaGithubInfo({ owner, repo, token, className }) {
|
|
3414
|
-
const [data, setData] = (0, import_react39.useState)(null);
|
|
3415
|
-
const [loading, setLoading] = (0, import_react39.useState)(true);
|
|
3416
|
-
const [error, setError] = (0, import_react39.useState)(null);
|
|
3417
|
-
(0, import_react39.useEffect)(() => {
|
|
3418
|
-
const fetchRepoData = () => __async(null, null, function* () {
|
|
3419
|
-
try {
|
|
3420
|
-
setLoading(true);
|
|
3421
|
-
setError(null);
|
|
3422
|
-
const controller = new AbortController();
|
|
3423
|
-
const timeoutId = setTimeout(() => controller.abort(), 5e3);
|
|
3424
|
-
const headers = new Headers({
|
|
3425
|
-
"Accept": "application/vnd.github.v3+json"
|
|
3426
|
-
});
|
|
3427
|
-
if (token) {
|
|
3428
|
-
headers.set("Authorization", `Bearer ${token}`);
|
|
3429
|
-
}
|
|
3430
|
-
const response = yield fetch(`https://api.github.com/repos/${owner}/${repo}`, {
|
|
3431
|
-
signal: controller.signal,
|
|
3432
|
-
headers
|
|
3433
|
-
});
|
|
3434
|
-
clearTimeout(timeoutId);
|
|
3435
|
-
if (!response.ok) {
|
|
3436
|
-
throw new Error(`GitHub API response error: ${response.status}`);
|
|
3437
|
-
}
|
|
3438
|
-
const repoData = yield response.json();
|
|
3439
|
-
setData({
|
|
3440
|
-
stargazers_count: repoData.stargazers_count,
|
|
3441
|
-
forks_count: repoData.forks_count
|
|
3442
|
-
});
|
|
3443
|
-
} catch (err) {
|
|
3444
|
-
console.warn("GitHub API call failed:", err);
|
|
3445
|
-
if (err instanceof Error) {
|
|
3446
|
-
if (err.name === "AbortError") {
|
|
3447
|
-
setError("Request timeout");
|
|
3448
|
-
} else {
|
|
3449
|
-
setError("Failed to get repository information");
|
|
3450
|
-
}
|
|
3451
|
-
} else {
|
|
3452
|
-
setError("Unknown error");
|
|
3453
|
-
}
|
|
3454
|
-
} finally {
|
|
3455
|
-
setLoading(false);
|
|
3456
|
-
}
|
|
3457
|
-
});
|
|
3458
|
-
fetchRepoData();
|
|
3459
|
-
}, [owner, repo, token]);
|
|
3460
|
-
if (loading) {
|
|
3461
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(GitHubInfoSkeleton, { owner, repo, className });
|
|
3462
|
-
}
|
|
3463
|
-
if (error || !data) {
|
|
3464
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(GitHubInfoFallback, { owner, repo, className });
|
|
3465
|
-
}
|
|
3466
|
-
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
3467
|
-
GitHubInfoSuccess,
|
|
3468
|
-
{
|
|
3469
|
-
owner,
|
|
3470
|
-
repo,
|
|
3471
|
-
stars: data.stargazers_count,
|
|
3472
|
-
className
|
|
3473
|
-
}
|
|
3474
|
-
);
|
|
3475
|
-
}
|
|
3476
3317
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3477
3318
|
0 && (module.exports = {
|
|
3478
3319
|
CTA,
|
|
@@ -3481,8 +3322,6 @@ function FumaGithubInfo({ owner, repo, token, className }) {
|
|
|
3481
3322
|
FAQ,
|
|
3482
3323
|
Features,
|
|
3483
3324
|
Footer,
|
|
3484
|
-
FumaBannerSuit,
|
|
3485
|
-
FumaGithubInfo,
|
|
3486
3325
|
Gallery,
|
|
3487
3326
|
GoToTop,
|
|
3488
3327
|
Loading,
|