@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.
Files changed (42) hide show
  1. package/dist/clerk/index.js +1 -1
  2. package/dist/clerk/index.js.map +1 -1
  3. package/dist/clerk/index.mjs.map +1 -1
  4. package/dist/fuma/index.d.mts +1 -23
  5. package/dist/fuma/index.d.ts +1 -23
  6. package/dist/fuma/index.js +157 -319
  7. package/dist/fuma/index.js.map +1 -1
  8. package/dist/fuma/index.mjs +136 -296
  9. package/dist/fuma/index.mjs.map +1 -1
  10. package/dist/fuma/mdx/index.d.mts +23 -1
  11. package/dist/fuma/mdx/index.d.ts +23 -1
  12. package/dist/fuma/mdx/index.js +162 -1
  13. package/dist/fuma/mdx/index.js.map +1 -1
  14. package/dist/fuma/mdx/index.mjs +159 -0
  15. package/dist/fuma/mdx/index.mjs.map +1 -1
  16. package/dist/index.d.mts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +49 -210
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.mjs +35 -194
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/lib/index.js +0 -1
  23. package/dist/lib/index.js.map +1 -1
  24. package/dist/lib/index.mjs +0 -1
  25. package/dist/lib/index.mjs.map +1 -1
  26. package/dist/main/index.js +3 -2
  27. package/dist/main/index.js.map +1 -1
  28. package/dist/main/index.mjs +2 -1
  29. package/dist/main/index.mjs.map +1 -1
  30. package/package.json +2 -2
  31. package/src/clerk/clerk-organization.tsx +2 -0
  32. package/src/clerk/index.ts +1 -0
  33. package/src/fuma/index.ts +2 -4
  34. package/src/fuma/mdx/index.ts +5 -1
  35. package/src/fuma/mdx/toc-base.tsx +1 -0
  36. package/src/lib/index.ts +2 -0
  37. package/src/main/ads-alert-dialog.tsx +2 -0
  38. package/src/main/faq.tsx +2 -1
  39. package/src/main/index.ts +2 -0
  40. package/src/main/nprogress-bar.tsx +2 -1
  41. /package/src/fuma/{fuma-banner-suit.tsx → mdx/fuma-banner-suit.tsx} +0 -0
  42. /package/src/fuma/{fuma-github-info.tsx → mdx/fuma-github-info.tsx} +0 -0
package/dist/index.mjs CHANGED
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  var __defProp = Object.defineProperty;
3
2
  var __defProps = Object.defineProperties;
4
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
@@ -2162,6 +2161,7 @@ var wrappedBuiltinIconsPart = tempWrappedBuiltinIcons;
2162
2161
  var globalLucideIcons = __spreadValues(__spreadValues({}, styledLimitedIconsPart), wrappedBuiltinIconsPart);
2163
2162
  var DEFAULT_FALLBACK_ICON = "BTC";
2164
2163
  function getGlobalIcon(iconKey, createElement3) {
2164
+ var _a;
2165
2165
  if (!iconKey) {
2166
2166
  if (createElement3) {
2167
2167
  return void 0;
@@ -2170,7 +2170,7 @@ function getGlobalIcon(iconKey, createElement3) {
2170
2170
  }
2171
2171
  const Icon2 = globalLucideIcons[iconKey];
2172
2172
  if (!Icon2) {
2173
- if (process.env.NODE_ENV !== "production") {
2173
+ if (typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NODE_ENV) !== "production") {
2174
2174
  console.warn(
2175
2175
  `[global-icon] iconKey "${iconKey}" is not defined in globalIcons, will use default "${String(DEFAULT_FALLBACK_ICON)}" icon, please check!`
2176
2176
  );
@@ -2973,21 +2973,12 @@ function NProgressBar() {
2973
2973
  return null;
2974
2974
  }
2975
2975
 
2976
- // src/fuma/fuma-banner-suit.tsx
2977
- import { Banner } from "fumadocs-ui/components/banner";
2978
- import { useTranslations as useTranslations10 } from "next-intl";
2979
- import { jsx as jsx47 } from "react/jsx-runtime";
2980
- function FumaBannerSuit({ showText }) {
2981
- const t = useTranslations10("home");
2982
- return showText ? /* @__PURE__ */ jsx47(Banner, { variant: "rainbow", changeLayout: true, children: /* @__PURE__ */ jsx47("p", { className: "text-xl", children: t("banner") }) }) : /* @__PURE__ */ jsx47(Banner, { variant: "normal", changeLayout: true, className: "bg-white dark:bg-[rgb(10,10,10)]" });
2983
- }
2984
-
2985
2976
  // src/fuma/fuma-page-genarator.tsx
2986
2977
  import { DocsBody, DocsDescription, DocsPage, DocsTitle } from "fumadocs-ui/page";
2987
2978
 
2988
2979
  // ../base-ui/src/lib/icon-context.tsx
2989
2980
  import { createContext, useContext } from "react";
2990
- import { jsx as jsx48 } from "react/jsx-runtime";
2981
+ import { jsx as jsx47 } from "react/jsx-runtime";
2991
2982
  var IconConfigContext = createContext(null);
2992
2983
  function useIconConfig() {
2993
2984
  const config = useContext(IconConfigContext);
@@ -3008,7 +2999,7 @@ function useIconConfigSafe(iconKey) {
3008
2999
  }
3009
3000
 
3010
3001
  // ../base-ui/src/lib/site-icon.tsx
3011
- import { jsx as jsx49 } from "react/jsx-runtime";
3002
+ import { jsx as jsx48 } from "react/jsx-runtime";
3012
3003
  function SiteIcon(_a) {
3013
3004
  var _b = _a, {
3014
3005
  size = 24,
@@ -3026,24 +3017,24 @@ function SiteIcon(_a) {
3026
3017
  if (typeof configuredIcon === "string") {
3027
3018
  if (configuredIcon === "") {
3028
3019
  const DefaultIcon = globalLucideIcons["Download"];
3029
- return /* @__PURE__ */ jsx49(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
3020
+ return /* @__PURE__ */ jsx48(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
3030
3021
  }
3031
3022
  const IconComponent = globalLucideIcons[configuredIcon];
3032
3023
  if (!IconComponent) {
3033
3024
  throw new Error(`[SiteIcon] Icon key "${configuredIcon}" not found in globalLucideIcons.`);
3034
3025
  }
3035
- return /* @__PURE__ */ jsx49(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
3026
+ return /* @__PURE__ */ jsx48(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
3036
3027
  } else {
3037
3028
  const CustomIcon = configuredIcon;
3038
3029
  const hasColorClass = className && /text-\w+/.test(className);
3039
3030
  const finalClassName = hasColorClass ? className : cn(themeIconColor, className);
3040
- return /* @__PURE__ */ jsx49(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
3031
+ return /* @__PURE__ */ jsx48(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
3041
3032
  }
3042
3033
  }
3043
3034
 
3044
3035
  // ../base-ui/src/components/404-page.tsx
3045
3036
  import { useEffect as useEffect3, useState as useState3 } from "react";
3046
- import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
3037
+ import { jsx as jsx49, jsxs as jsxs20 } from "react/jsx-runtime";
3047
3038
  function NotFoundPage() {
3048
3039
  const [glitchText, setGlitchText] = useState3("404");
3049
3040
  useEffect3(() => {
@@ -3064,7 +3055,7 @@ function NotFoundPage() {
3064
3055
  return /* @__PURE__ */ jsxs20("div", { className: "flex flex-col items-center justify-center min-h-[75vh] w-full px-4 py-8", children: [
3065
3056
  /* @__PURE__ */ jsxs20("div", { className: "text-center space-y-8 max-w-2xl", children: [
3066
3057
  /* @__PURE__ */ jsxs20("div", { className: "relative flex justify-center", children: [
3067
- /* @__PURE__ */ jsx50(
3058
+ /* @__PURE__ */ jsx49(
3068
3059
  "h1",
3069
3060
  {
3070
3061
  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",
@@ -3076,26 +3067,26 @@ function NotFoundPage() {
3076
3067
  children: glitchText
3077
3068
  }
3078
3069
  ),
3079
- /* @__PURE__ */ jsx50("div", { className: "absolute inset-0 pointer-events-none", children: /* @__PURE__ */ jsx50("div", { className: "h-full w-full bg-gradient-to-b from-transparent via-purple-500/10 to-transparent animate-pulse" }) })
3070
+ /* @__PURE__ */ jsx49("div", { className: "absolute inset-0 pointer-events-none", children: /* @__PURE__ */ jsx49("div", { className: "h-full w-full bg-gradient-to-b from-transparent via-purple-500/10 to-transparent animate-pulse" }) })
3080
3071
  ] }),
3081
3072
  /* @__PURE__ */ jsxs20("div", { className: "space-y-4", children: [
3082
- /* @__PURE__ */ jsx50("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
3083
- /* @__PURE__ */ jsx50("p", { className: "text-lg text-muted-foreground max-w-md mx-auto leading-relaxed", children: "The page you're looking for doesn't exist" })
3073
+ /* @__PURE__ */ jsx49("h2", { className: "text-2xl md:text-3xl font-semibold text-foreground", children: "Page Not Found" }),
3074
+ /* @__PURE__ */ jsx49("p", { className: "text-lg text-muted-foreground max-w-md mx-auto leading-relaxed", children: "The page you're looking for doesn't exist" })
3084
3075
  ] }),
3085
3076
  /* @__PURE__ */ jsxs20("div", { className: "flex justify-center items-center gap-8 pt-8 opacity-60", children: [
3086
3077
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
3087
- /* @__PURE__ */ jsx50(SiteIcon, {}),
3088
- /* @__PURE__ */ jsx50("span", { children: "Woops!" })
3078
+ /* @__PURE__ */ jsx49(SiteIcon, {}),
3079
+ /* @__PURE__ */ jsx49("span", { children: "Woops!" })
3089
3080
  ] }),
3090
- /* @__PURE__ */ jsx50("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
3081
+ /* @__PURE__ */ jsx49("div", { className: "w-1 h-1 bg-purple-500 rounded-full animate-ping" }),
3091
3082
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
3092
- /* @__PURE__ */ jsx50(NotFoundIcon, {}),
3093
- /* @__PURE__ */ jsx50("span", { children: "Error Code: 404" })
3083
+ /* @__PURE__ */ jsx49(NotFoundIcon, {}),
3084
+ /* @__PURE__ */ jsx49("span", { children: "Error Code: 404" })
3094
3085
  ] })
3095
3086
  ] })
3096
3087
  ] }),
3097
3088
  /* @__PURE__ */ jsxs20("div", { className: "fixed inset-0 pointer-events-none overflow-hidden -z-10", children: [
3098
- /* @__PURE__ */ jsx50(
3089
+ /* @__PURE__ */ jsx49(
3099
3090
  "div",
3100
3091
  {
3101
3092
  className: "absolute inset-0 opacity-[0.02] dark:opacity-[0.05]",
@@ -3108,7 +3099,7 @@ function NotFoundPage() {
3108
3099
  }
3109
3100
  }
3110
3101
  ),
3111
- Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx50(
3102
+ Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx49(
3112
3103
  "div",
3113
3104
  {
3114
3105
  className: "absolute w-2 h-2 bg-purple-500/20 rounded-full animate-bounce",
@@ -3130,7 +3121,7 @@ import { useState as useState4 } from "react";
3130
3121
  import { useParams } from "next/navigation";
3131
3122
  import { useCopyButton } from "fumadocs-ui/utils/use-copy-button";
3132
3123
  import Link4 from "fumadocs-core/link";
3133
- import { Fragment as Fragment4, jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
3124
+ import { Fragment as Fragment4, jsx as jsx50, jsxs as jsxs21 } from "react/jsx-runtime";
3134
3125
  var cache = /* @__PURE__ */ new Map();
3135
3126
  function LLMCopyButton({ llmApiUrl } = {}) {
3136
3127
  const [isLoading, setLoading] = useState4(false);
@@ -3159,7 +3150,7 @@ function LLMCopyButton({ llmApiUrl } = {}) {
3159
3150
  setLoading(false);
3160
3151
  }
3161
3152
  }));
3162
- return /* @__PURE__ */ jsx51(
3153
+ return /* @__PURE__ */ jsx50(
3163
3154
  Button,
3164
3155
  {
3165
3156
  variant: "ghost",
@@ -3168,10 +3159,10 @@ function LLMCopyButton({ llmApiUrl } = {}) {
3168
3159
  className: "justify-start px-0 text-stone-600 hover:text-stone-500 dark:text-stone-400 dark:hover:text-stone-300",
3169
3160
  onClick,
3170
3161
  children: checked ? /* @__PURE__ */ jsxs21(Fragment4, { children: [
3171
- /* @__PURE__ */ jsx51(globalLucideIcons.Check, {}),
3162
+ /* @__PURE__ */ jsx50(globalLucideIcons.Check, {}),
3172
3163
  "Copied!"
3173
3164
  ] }) : /* @__PURE__ */ jsxs21(Fragment4, { children: [
3174
- /* @__PURE__ */ jsx51(globalLucideIcons.Markdown, {}),
3165
+ /* @__PURE__ */ jsx50(globalLucideIcons.Markdown, {}),
3175
3166
  "Copy page as Markdown"
3176
3167
  ] })
3177
3168
  }
@@ -3184,7 +3175,7 @@ function EditOnGitHub({ url }) {
3184
3175
  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",
3185
3176
  href: url,
3186
3177
  children: [
3187
- /* @__PURE__ */ jsx51(globalLucideIcons.GitHub, {}),
3178
+ /* @__PURE__ */ jsx50(globalLucideIcons.GitHub, {}),
3188
3179
  "Edit this page on GitHub"
3189
3180
  ]
3190
3181
  }
@@ -3192,25 +3183,25 @@ function EditOnGitHub({ url }) {
3192
3183
  }
3193
3184
  function LastUpdatedDate({ date }) {
3194
3185
  return /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-x-2 text-stone-600 dark:text-stone-400 text-sm", children: [
3195
- /* @__PURE__ */ jsx51(globalLucideIcons.LastUpdated, {}),
3186
+ /* @__PURE__ */ jsx50(globalLucideIcons.LastUpdated, {}),
3196
3187
  "Lastest on ",
3197
3188
  date ? date : "Ages ago"
3198
3189
  ] });
3199
3190
  }
3200
3191
 
3201
3192
  // src/fuma/mdx/toc.tsx
3202
- import { jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
3193
+ import { jsx as jsx51, jsxs as jsxs22 } from "react/jsx-runtime";
3203
3194
  function TocFooter({ lastModified, showCopy, editPath, githubBaseUrl }) {
3204
3195
  const showEdit = githubBaseUrl && editPath;
3205
3196
  return /* @__PURE__ */ jsxs22("div", { className: "flex flex-col gap-y-2 items-start m-4", children: [
3206
- /* @__PURE__ */ jsx52(LastUpdatedDate, { date: lastModified }),
3207
- showCopy && /* @__PURE__ */ jsx52(LLMCopyButton, {}),
3208
- showEdit && /* @__PURE__ */ jsx52(EditOnGitHub, { url: `${githubBaseUrl}${editPath}` })
3197
+ /* @__PURE__ */ jsx51(LastUpdatedDate, { date: lastModified }),
3198
+ showCopy && /* @__PURE__ */ jsx51(LLMCopyButton, {}),
3199
+ showEdit && /* @__PURE__ */ jsx51(EditOnGitHub, { url: `${githubBaseUrl}${editPath}` })
3209
3200
  ] });
3210
3201
  }
3211
3202
 
3212
3203
  // src/fuma/fuma-page-genarator.tsx
3213
- import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
3204
+ import { jsx as jsx52, jsxs as jsxs23 } from "react/jsx-runtime";
3214
3205
  function createFumaPage({
3215
3206
  mdxContentSource,
3216
3207
  getMDXComponents,
@@ -3223,10 +3214,10 @@ function createFumaPage({
3223
3214
  const { slug, locale } = yield params;
3224
3215
  const page = mdxContentSource.getPage(slug, locale);
3225
3216
  if (!page) {
3226
- return /* @__PURE__ */ jsx53(NotFoundPage, {});
3217
+ return /* @__PURE__ */ jsx52(NotFoundPage, {});
3227
3218
  }
3228
3219
  const path = githubBaseUrl ? `${mdxSourceDir}/${page.file.path}` : void 0;
3229
- const tocFooterElement = /* @__PURE__ */ jsx53(
3220
+ const tocFooterElement = /* @__PURE__ */ jsx52(
3230
3221
  TocFooter,
3231
3222
  {
3232
3223
  lastModified: page.data.date,
@@ -3245,9 +3236,9 @@ function createFumaPage({
3245
3236
  full: page.data.full,
3246
3237
  article: { className: "max-sm:pb-16" },
3247
3238
  children: [
3248
- /* @__PURE__ */ jsx53(DocsTitle, { children: page.data.title }),
3249
- /* @__PURE__ */ jsx53(DocsDescription, { className: "mb-2", children: page.data.description }),
3250
- /* @__PURE__ */ jsx53(DocsBody, { className: "text-fd-foreground/80", children: /* @__PURE__ */ jsx53(MDX, { components: getMDXComponents() }) })
3239
+ /* @__PURE__ */ jsx52(DocsTitle, { children: page.data.title }),
3240
+ /* @__PURE__ */ jsx52(DocsDescription, { className: "mb-2", children: page.data.description }),
3241
+ /* @__PURE__ */ jsx52(DocsBody, { className: "text-fd-foreground/80", children: /* @__PURE__ */ jsx52(MDX, { components: getMDXComponents() }) })
3251
3242
  ]
3252
3243
  }
3253
3244
  );
@@ -3278,154 +3269,6 @@ function createFumaPage({
3278
3269
  generateMetadata
3279
3270
  };
3280
3271
  }
3281
-
3282
- // src/fuma/fuma-github-info.tsx
3283
- import { useEffect as useEffect4, useState as useState5 } from "react";
3284
- import { jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
3285
- function GitHubInfoSkeleton({ owner, repo, className }) {
3286
- return /* @__PURE__ */ jsxs24("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: [
3287
- /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
3288
- /* @__PURE__ */ jsx54("div", { className: "size-3.5 bg-fd-muted rounded" }),
3289
- /* @__PURE__ */ jsx54("div", { className: "h-4 bg-fd-muted rounded w-20" })
3290
- ] }),
3291
- /* @__PURE__ */ jsx54("div", { className: "h-3 bg-fd-muted rounded w-8" })
3292
- ] });
3293
- }
3294
- function GitHubInfoFallback({ owner, repo, className }) {
3295
- return /* @__PURE__ */ jsxs24(
3296
- "a",
3297
- {
3298
- href: `https://github.com/${owner}/${repo}`,
3299
- rel: "noreferrer noopener",
3300
- target: "_blank",
3301
- 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}`,
3302
- children: [
3303
- /* @__PURE__ */ jsxs24("p", { className: "flex items-center gap-2 truncate", children: [
3304
- /* @__PURE__ */ jsxs24("svg", { fill: "currentColor", viewBox: "0 0 24 24", className: "size-3.5", children: [
3305
- /* @__PURE__ */ jsx54("title", { children: "GitHub" }),
3306
- /* @__PURE__ */ jsx54("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" })
3307
- ] }),
3308
- owner,
3309
- "/",
3310
- repo
3311
- ] }),
3312
- /* @__PURE__ */ jsxs24("p", { className: "flex text-xs items-center gap-1 text-fd-muted-foreground", children: [
3313
- /* @__PURE__ */ jsx54(globalLucideIcons.ExternalLink, { className: "size-3" }),
3314
- "GitHub"
3315
- ] })
3316
- ]
3317
- }
3318
- );
3319
- }
3320
- function GitHubInfoSuccess({
3321
- owner,
3322
- repo,
3323
- stars,
3324
- className
3325
- }) {
3326
- const humanizedStars = humanizeNumber(stars);
3327
- return /* @__PURE__ */ jsxs24(
3328
- "a",
3329
- {
3330
- href: `https://github.com/${owner}/${repo}`,
3331
- rel: "noreferrer noopener",
3332
- target: "_blank",
3333
- 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}`,
3334
- children: [
3335
- /* @__PURE__ */ jsxs24("p", { className: "flex items-center gap-2 truncate", children: [
3336
- /* @__PURE__ */ jsxs24("svg", { fill: "currentColor", viewBox: "0 0 24 24", className: "size-3.5", children: [
3337
- /* @__PURE__ */ jsx54("title", { children: "GitHub" }),
3338
- /* @__PURE__ */ jsx54("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" })
3339
- ] }),
3340
- owner,
3341
- "/",
3342
- repo
3343
- ] }),
3344
- /* @__PURE__ */ jsxs24("p", { className: "flex text-xs items-center gap-1 text-fd-muted-foreground", children: [
3345
- /* @__PURE__ */ jsx54(globalLucideIcons.Star, { className: "size-3" }),
3346
- humanizedStars
3347
- ] })
3348
- ]
3349
- }
3350
- );
3351
- }
3352
- function humanizeNumber(num) {
3353
- if (num < 1e3) {
3354
- return num.toString();
3355
- }
3356
- if (num < 1e5) {
3357
- const value = (num / 1e3).toFixed(1);
3358
- const formattedValue = value.endsWith(".0") ? value.slice(0, -2) : value;
3359
- return `${formattedValue}K`;
3360
- }
3361
- if (num < 1e6) {
3362
- return `${Math.floor(num / 1e3)}K`;
3363
- }
3364
- return num.toString();
3365
- }
3366
- function FumaGithubInfo({ owner, repo, token, className }) {
3367
- const [data, setData] = useState5(null);
3368
- const [loading, setLoading] = useState5(true);
3369
- const [error, setError] = useState5(null);
3370
- useEffect4(() => {
3371
- const fetchRepoData = () => __async(null, null, function* () {
3372
- try {
3373
- setLoading(true);
3374
- setError(null);
3375
- const controller = new AbortController();
3376
- const timeoutId = setTimeout(() => controller.abort(), 5e3);
3377
- const headers = new Headers({
3378
- "Accept": "application/vnd.github.v3+json"
3379
- });
3380
- if (token) {
3381
- headers.set("Authorization", `Bearer ${token}`);
3382
- }
3383
- const response = yield fetch(`https://api.github.com/repos/${owner}/${repo}`, {
3384
- signal: controller.signal,
3385
- headers
3386
- });
3387
- clearTimeout(timeoutId);
3388
- if (!response.ok) {
3389
- throw new Error(`GitHub API response error: ${response.status}`);
3390
- }
3391
- const repoData = yield response.json();
3392
- setData({
3393
- stargazers_count: repoData.stargazers_count,
3394
- forks_count: repoData.forks_count
3395
- });
3396
- } catch (err) {
3397
- console.warn("GitHub API call failed:", err);
3398
- if (err instanceof Error) {
3399
- if (err.name === "AbortError") {
3400
- setError("Request timeout");
3401
- } else {
3402
- setError("Failed to get repository information");
3403
- }
3404
- } else {
3405
- setError("Unknown error");
3406
- }
3407
- } finally {
3408
- setLoading(false);
3409
- }
3410
- });
3411
- fetchRepoData();
3412
- }, [owner, repo, token]);
3413
- if (loading) {
3414
- return /* @__PURE__ */ jsx54(GitHubInfoSkeleton, { owner, repo, className });
3415
- }
3416
- if (error || !data) {
3417
- return /* @__PURE__ */ jsx54(GitHubInfoFallback, { owner, repo, className });
3418
- }
3419
- return /* @__PURE__ */ jsx54(
3420
- GitHubInfoSuccess,
3421
- {
3422
- owner,
3423
- repo,
3424
- stars: data.stargazers_count,
3425
- className
3426
- }
3427
- );
3428
- }
3429
3272
  export {
3430
3273
  CTA,
3431
3274
  ClerkProviderClient,
@@ -3433,8 +3276,6 @@ export {
3433
3276
  FAQ,
3434
3277
  Features,
3435
3278
  Footer,
3436
- FumaBannerSuit,
3437
- FumaGithubInfo,
3438
3279
  Gallery,
3439
3280
  GoToTop,
3440
3281
  Loading,