@windrun-huaiin/third-ui 5.14.1 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/clerk/index.d.mts +2 -21
  2. package/dist/clerk/index.d.ts +2 -21
  3. package/dist/clerk/index.js +5 -2884
  4. package/dist/clerk/index.js.map +1 -1
  5. package/dist/clerk/index.mjs +3 -2872
  6. package/dist/clerk/index.mjs.map +1 -1
  7. package/dist/clerk/server.d.mts +28 -0
  8. package/dist/clerk/server.d.ts +28 -0
  9. package/dist/clerk/server.js +3025 -0
  10. package/dist/clerk/server.js.map +1 -0
  11. package/dist/clerk/server.mjs +2991 -0
  12. package/dist/clerk/server.mjs.map +1 -0
  13. package/dist/fuma/mdx/index.d.mts +1 -12
  14. package/dist/fuma/mdx/index.d.ts +1 -12
  15. package/dist/fuma/mdx/index.js +49 -263
  16. package/dist/fuma/mdx/index.js.map +1 -1
  17. package/dist/fuma/mdx/index.mjs +50 -262
  18. package/dist/fuma/mdx/index.mjs.map +1 -1
  19. package/dist/fuma/server.d.mts +15 -2
  20. package/dist/fuma/server.d.ts +15 -2
  21. package/dist/fuma/server.js +234 -49
  22. package/dist/fuma/server.js.map +1 -1
  23. package/dist/fuma/server.mjs +231 -48
  24. package/dist/fuma/server.mjs.map +1 -1
  25. package/dist/lib/server.d.mts +509 -465
  26. package/dist/lib/server.d.ts +509 -465
  27. package/dist/main/index.d.mts +5 -56
  28. package/dist/main/index.d.ts +5 -56
  29. package/dist/main/index.js +646 -1322
  30. package/dist/main/index.js.map +1 -1
  31. package/dist/main/index.mjs +675 -1342
  32. package/dist/main/index.mjs.map +1 -1
  33. package/dist/main/server.d.mts +64 -0
  34. package/dist/main/server.d.ts +64 -0
  35. package/dist/main/server.js +4166 -0
  36. package/dist/main/server.js.map +1 -0
  37. package/dist/main/server.mjs +4128 -0
  38. package/dist/main/server.mjs.map +1 -0
  39. package/package.json +12 -2
  40. package/src/clerk/clerk-organization-client.tsx +50 -0
  41. package/src/clerk/clerk-organization.tsx +21 -38
  42. package/src/clerk/clerk-page-generator.tsx +0 -2
  43. package/src/clerk/clerk-provider-client.tsx +1 -1
  44. package/src/clerk/clerk-user-client.tsx +64 -0
  45. package/src/clerk/clerk-user.tsx +29 -58
  46. package/src/clerk/index.ts +1 -4
  47. package/src/clerk/server.ts +3 -0
  48. package/src/fuma/{mdx/fuma-banner-suit.tsx → fuma-banner-suit.tsx} +3 -6
  49. package/src/fuma/mdx/banner.tsx +0 -1
  50. package/src/fuma/mdx/index.ts +0 -2
  51. package/src/fuma/mdx/mermaid.tsx +3 -1
  52. package/src/fuma/mdx/toc-footer-wrapper.tsx +1 -0
  53. package/src/fuma/mdx/zia-file.tsx +0 -1
  54. package/src/fuma/server.ts +3 -1
  55. package/src/fuma/{mdx/site-x.tsx → site-x.tsx} +4 -5
  56. package/src/main/cta.tsx +33 -10
  57. package/src/main/faq-interactive.tsx +68 -0
  58. package/src/main/faq.tsx +62 -38
  59. package/src/main/features.tsx +40 -11
  60. package/src/main/footer.tsx +27 -16
  61. package/src/main/gallery-interactive.tsx +171 -0
  62. package/src/main/gallery.tsx +54 -101
  63. package/src/main/index.ts +1 -10
  64. package/src/main/language-detector.tsx +175 -0
  65. package/src/main/price-plan-interactive.tsx +273 -0
  66. package/src/main/price-plan.tsx +112 -129
  67. package/src/main/seo-content.tsx +46 -13
  68. package/src/main/server.ts +10 -0
  69. package/src/main/tips.tsx +48 -22
  70. package/src/main/usage.tsx +43 -11
@@ -9471,66 +9471,33 @@ function LastUpdatedDate({ date }) {
9471
9471
  ] });
9472
9472
  }
9473
9473
 
9474
- // src/fuma/mdx/fuma-banner-suit.tsx
9475
- import { useTranslations } from "next-intl";
9476
-
9477
- // src/fuma/mdx/banner.tsx
9478
- import { cva as cva2 } from "class-variance-authority";
9479
- import { useEffect as useEffect2, useState as useState5 } from "react";
9480
- import { Fragment as Fragment5, jsx as jsx42, jsxs as jsxs16 } from "react/jsx-runtime";
9481
- var buttonVariants2 = cva2(
9482
- "inline-flex items-center justify-center rounded-md p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50",
9483
- {
9484
- variants: {
9485
- color: {
9486
- primary: "bg-primary text-primary-foreground hover:bg-primary/80",
9487
- outline: "border hover:bg-accent hover:text-accent-foreground",
9488
- ghost: "hover:bg-accent hover:text-accent-foreground",
9489
- secondary: "border bg-secondary text-secondary-foreground hover:bg-accent hover:text-accent-foreground"
9490
- },
9491
- size: {
9492
- sm: "gap-1 px-2 py-1.5 text-xs",
9493
- icon: "p-1.5 [&_svg]:size-5",
9494
- "icon-sm": "p-1.5 [&_svg]:size-4.5"
9495
- }
9496
- }
9497
- }
9498
- );
9499
-
9500
- // src/fuma/mdx/fuma-banner-suit.tsx
9501
- import { Fragment as Fragment6, jsx as jsx43 } from "react/jsx-runtime";
9502
-
9503
9474
  // src/fuma/mdx/fuma-github-info.tsx
9504
- import { useEffect as useEffect3, useState as useState6 } from "react";
9505
- import { jsx as jsx44, jsxs as jsxs17 } from "react/jsx-runtime";
9506
-
9507
- // src/fuma/mdx/site-x.tsx
9508
- import { useTranslations as useTranslations2 } from "next-intl";
9509
- import { jsx as jsx45 } from "react/jsx-runtime";
9475
+ import { useEffect as useEffect2, useState as useState5 } from "react";
9476
+ import { jsx as jsx42, jsxs as jsxs16 } from "react/jsx-runtime";
9510
9477
 
9511
9478
  // src/fuma/mdx/zia-file.tsx
9512
- import { useState as useState7 } from "react";
9479
+ import { useState as useState6 } from "react";
9513
9480
  import {
9514
9481
  Collapsible,
9515
9482
  CollapsibleContent,
9516
9483
  CollapsibleTrigger
9517
9484
  } from "fumadocs-ui/components/ui/collapsible";
9518
9485
  import Link5 from "next/link";
9519
- import { jsx as jsx46, jsxs as jsxs18 } from "react/jsx-runtime";
9486
+ import { jsx as jsx43, jsxs as jsxs17 } from "react/jsx-runtime";
9520
9487
 
9521
9488
  // src/fuma/mdx/toc-footer-wrapper.tsx
9522
- import { jsx as jsx47, jsxs as jsxs19 } from "react/jsx-runtime";
9489
+ import { jsx as jsx44, jsxs as jsxs18 } from "react/jsx-runtime";
9523
9490
  function TocFooterWrapper({ lastModified, editPath, githubBaseUrl, copyButtonComponent }) {
9524
9491
  const showEdit = githubBaseUrl && editPath;
9525
- return /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-y-2 items-start m-4", children: [
9526
- /* @__PURE__ */ jsx47(LastUpdatedDate, { date: lastModified }),
9492
+ return /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-y-2 items-start m-4", children: [
9493
+ /* @__PURE__ */ jsx44(LastUpdatedDate, { date: lastModified }),
9527
9494
  copyButtonComponent,
9528
- showEdit && /* @__PURE__ */ jsx47(EditOnGitHub, { url: `${githubBaseUrl}${editPath}` })
9495
+ showEdit && /* @__PURE__ */ jsx44(EditOnGitHub, { url: `${githubBaseUrl}${editPath}` })
9529
9496
  ] });
9530
9497
  }
9531
9498
 
9532
9499
  // src/fuma/fuma-page-genarator.tsx
9533
- import { jsx as jsx48, jsxs as jsxs20 } from "react/jsx-runtime";
9500
+ import { jsx as jsx45, jsxs as jsxs19 } from "react/jsx-runtime";
9534
9501
  function createFumaPage({
9535
9502
  sourceKey,
9536
9503
  mdxContentSource,
@@ -9547,10 +9514,10 @@ function createFumaPage({
9547
9514
  const { slug, locale } = yield params;
9548
9515
  const page = mdxContentSource.getPage(slug, locale);
9549
9516
  if (!page) {
9550
- return /* @__PURE__ */ jsx48(FallbackPage, { siteIcon });
9517
+ return /* @__PURE__ */ jsx45(FallbackPage, { siteIcon });
9551
9518
  }
9552
9519
  const path2 = githubBaseUrl ? `${mdxSourceDir}/${page.file.path}` : void 0;
9553
- const tocFooterElement = /* @__PURE__ */ jsx48(
9520
+ const tocFooterElement = /* @__PURE__ */ jsx45(
9554
9521
  TocFooterWrapper,
9555
9522
  {
9556
9523
  lastModified: page.data.date,
@@ -9560,7 +9527,7 @@ function createFumaPage({
9560
9527
  }
9561
9528
  );
9562
9529
  const MDX = page.data.body;
9563
- return /* @__PURE__ */ jsxs20(
9530
+ return /* @__PURE__ */ jsxs19(
9564
9531
  DocsPage,
9565
9532
  {
9566
9533
  tableOfContent: { style: "clerk", single: false, footer: tocFooterElement },
@@ -9569,9 +9536,9 @@ function createFumaPage({
9569
9536
  full: page.data.full,
9570
9537
  article: { className: "max-sm:pb-16" },
9571
9538
  children: [
9572
- /* @__PURE__ */ jsx48(DocsTitle, { children: page.data.title }),
9573
- /* @__PURE__ */ jsx48(DocsDescription, { className: "mb-2", children: page.data.description }),
9574
- /* @__PURE__ */ jsx48(DocsBody, { className: "text-fd-foreground/80", children: /* @__PURE__ */ jsx48(MDX, { components: getMDXComponents() }) })
9539
+ /* @__PURE__ */ jsx45(DocsTitle, { children: page.data.title }),
9540
+ /* @__PURE__ */ jsx45(DocsDescription, { className: "mb-2", children: page.data.description }),
9541
+ /* @__PURE__ */ jsx45(DocsBody, { className: "text-fd-foreground/80", children: /* @__PURE__ */ jsx45(MDX, { components: getMDXComponents() }) })
9575
9542
  ]
9576
9543
  }
9577
9544
  );
@@ -29970,8 +29937,224 @@ function LLMCopyHandler(options) {
29970
29937
  }
29971
29938
  });
29972
29939
  }
29940
+
29941
+ // src/fuma/fuma-banner-suit.tsx
29942
+ import { getTranslations } from "next-intl/server";
29943
+
29944
+ // src/fuma/mdx/banner.tsx
29945
+ import { cva as cva2 } from "class-variance-authority";
29946
+ import { useEffect as useEffect3, useState as useState7 } from "react";
29947
+ import { Fragment as Fragment5, jsx as jsx46, jsxs as jsxs20 } from "react/jsx-runtime";
29948
+ var buttonVariants2 = cva2(
29949
+ "inline-flex items-center justify-center rounded-md p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50",
29950
+ {
29951
+ variants: {
29952
+ color: {
29953
+ primary: "bg-primary text-primary-foreground hover:bg-primary/80",
29954
+ outline: "border hover:bg-accent hover:text-accent-foreground",
29955
+ ghost: "hover:bg-accent hover:text-accent-foreground",
29956
+ secondary: "border bg-secondary text-secondary-foreground hover:bg-accent hover:text-accent-foreground"
29957
+ },
29958
+ size: {
29959
+ sm: "gap-1 px-2 py-1.5 text-xs",
29960
+ icon: "p-1.5 [&_svg]:size-5",
29961
+ "icon-sm": "p-1.5 [&_svg]:size-4.5"
29962
+ }
29963
+ }
29964
+ }
29965
+ );
29966
+ function Banner(_a) {
29967
+ var _b = _a, {
29968
+ id,
29969
+ variant = "rainbow",
29970
+ changeLayout = true,
29971
+ height = 3
29972
+ } = _b, props = __objRest(_b, [
29973
+ "id",
29974
+ "variant",
29975
+ "changeLayout",
29976
+ "height"
29977
+ ]);
29978
+ const [open, setOpen] = useState7(true);
29979
+ const globalKey = id ? `nd-banner-${id}` : null;
29980
+ const bannerHeight = `${height}rem`;
29981
+ useEffect3(() => {
29982
+ if (globalKey) setOpen(localStorage.getItem(globalKey) !== "true");
29983
+ }, [globalKey]);
29984
+ if (!open) return null;
29985
+ return /* @__PURE__ */ jsxs20(
29986
+ "div",
29987
+ __spreadProps(__spreadValues({
29988
+ id
29989
+ }, props), {
29990
+ className: cn(
29991
+ "flex flex-row items-center justify-center px-4 text-center text-sm font-medium",
29992
+ "bg-neutral-100 dark:bg-neutral-900",
29993
+ !open && "hidden",
29994
+ props.className
29995
+ ),
29996
+ style: {
29997
+ // 将 fuma.css 中的 .sticky.top-0.z-40 样式完全移到这里
29998
+ position: "fixed",
29999
+ top: 0,
30000
+ left: 0,
30001
+ width: "100vw",
30002
+ zIndex: 1001,
30003
+ height: bannerHeight,
30004
+ minHeight: bannerHeight,
30005
+ maxHeight: bannerHeight,
30006
+ margin: 0,
30007
+ borderRadius: 0
30008
+ },
30009
+ children: [
30010
+ globalKey ? /* @__PURE__ */ jsx46("style", { children: `.${globalKey} #${id} { display: none; }` }) : null,
30011
+ globalKey ? /* @__PURE__ */ jsx46(
30012
+ "script",
30013
+ {
30014
+ dangerouslySetInnerHTML: {
30015
+ __html: `if (localStorage.getItem('${globalKey}') === 'true') document.documentElement.classList.add('${globalKey}');`
30016
+ }
30017
+ }
30018
+ ) : null,
30019
+ variant === "rainbow" ? rainbowLayer : null,
30020
+ props.children,
30021
+ id ? /* @__PURE__ */ jsx46(
30022
+ "button",
30023
+ {
30024
+ type: "button",
30025
+ "aria-label": "Close Banner",
30026
+ onClick: () => {
30027
+ setOpen(false);
30028
+ if (globalKey) localStorage.setItem(globalKey, "true");
30029
+ },
30030
+ className: cn(
30031
+ buttonVariants2({
30032
+ color: "ghost",
30033
+ className: "absolute end-2 top-1/2 -translate-y-1/2 text-neutral-600 dark:text-neutral-400",
30034
+ size: "icon"
30035
+ })
30036
+ ),
30037
+ children: /* @__PURE__ */ jsx46(globalLucideIcons.X, {})
30038
+ }
30039
+ ) : null
30040
+ ]
30041
+ })
30042
+ );
30043
+ }
30044
+ var maskImage = "linear-gradient(to bottom,white,transparent), radial-gradient(circle at top center, white, transparent)";
30045
+ var rainbowLayer = /* @__PURE__ */ jsxs20(Fragment5, { children: [
30046
+ /* @__PURE__ */ jsx46(
30047
+ "div",
30048
+ {
30049
+ className: "absolute inset-0 z-[-1]",
30050
+ style: {
30051
+ maskImage,
30052
+ maskComposite: "intersect",
30053
+ animation: "fd-moving-banner 16s linear infinite",
30054
+ "--start": "rgba(0,87,255,0.5)",
30055
+ "--mid": "rgba(255,0,166,0.77)",
30056
+ "--end": "rgba(255,77,0,0.4)",
30057
+ "--via": "rgba(164,255,68,0.4)",
30058
+ animationDirection: "reverse",
30059
+ backgroundImage: "repeating-linear-gradient(60deg, var(--end), var(--start) 2%, var(--start) 5%, transparent 8%, transparent 14%, var(--via) 18%, var(--via) 22%, var(--mid) 28%, var(--mid) 30%, var(--via) 34%, var(--via) 36%, transparent, var(--end) calc(50% - 12px))",
30060
+ backgroundSize: "200% 100%",
30061
+ mixBlendMode: "difference"
30062
+ }
30063
+ }
30064
+ ),
30065
+ /* @__PURE__ */ jsx46(
30066
+ "div",
30067
+ {
30068
+ className: "absolute inset-0 z-[-1]",
30069
+ style: {
30070
+ maskImage,
30071
+ maskComposite: "intersect",
30072
+ animation: "fd-moving-banner 20s linear infinite",
30073
+ "--start": "rgba(255,120,120,0.5)",
30074
+ "--mid": "rgba(36,188,255,0.4)",
30075
+ "--end": "rgba(64,0,255,0.51)",
30076
+ "--via": "rgba(255,89,0,0.56)",
30077
+ backgroundImage: "repeating-linear-gradient(45deg, var(--end), var(--start) 4%, var(--start) 8%, transparent 9%, transparent 14%, var(--mid) 16%, var(--mid) 20%, transparent, var(--via) 36%, var(--via) 40%, transparent 42%, var(--end) 46%, var(--end) calc(50% - 16.8px))",
30078
+ backgroundSize: "200% 100%",
30079
+ mixBlendMode: "color-dodge"
30080
+ }
30081
+ }
30082
+ ),
30083
+ /* @__PURE__ */ jsx46("style", { children: `@keyframes fd-moving-banner {
30084
+ from { background-position: 0% 0; }
30085
+ to { background-position: 100% 0; }
30086
+ }` })
30087
+ ] });
30088
+
30089
+ // src/fuma/fuma-banner-suit.tsx
30090
+ import { Fragment as Fragment6, jsx as jsx47 } from "react/jsx-runtime";
30091
+ function FumaBannerSuit(_0) {
30092
+ return __async(this, arguments, function* ({ locale, showBanner }) {
30093
+ const t = yield getTranslations({ locale, namespace: "home" });
30094
+ const heightValue = showBanner ? 3 : 0.5;
30095
+ const height = `${heightValue}rem`;
30096
+ return /* @__PURE__ */ jsx47(Fragment6, { children: showBanner ? /* @__PURE__ */ jsx47(Banner, { variant: "rainbow", changeLayout: true, height: heightValue, children: /* @__PURE__ */ jsx47("p", { className: "text-xl", children: t("banner") }) }) : /* @__PURE__ */ jsx47(
30097
+ "div",
30098
+ {
30099
+ className: "fixed top-0 left-0 w-screen z-[1001] m-0 rounded-none bg-neutral-100 dark:bg-neutral-900",
30100
+ style: {
30101
+ height,
30102
+ minHeight: height,
30103
+ maxHeight: height
30104
+ }
30105
+ }
30106
+ ) });
30107
+ });
30108
+ }
30109
+
30110
+ // src/fuma/site-x.tsx
30111
+ import { getTranslations as getTranslations2 } from "next-intl/server";
30112
+ import { jsx as jsx48 } from "react/jsx-runtime";
30113
+ function SiteX(_a) {
30114
+ return __async(this, null, function* () {
30115
+ var _b = _a, { locale, type, namespace, tKey, className } = _b, props = __objRest(_b, ["locale", "type", "namespace", "tKey", "className"]);
30116
+ let ns = namespace;
30117
+ let key = tKey;
30118
+ if (!ns) {
30119
+ ns = type === "site" ? "home" : "footer";
30120
+ }
30121
+ if (!key) {
30122
+ key = type === "site" ? "title" : "email";
30123
+ }
30124
+ const t = yield getTranslations2({ locale, namespace: ns });
30125
+ const text5 = t(key, { defaultValue: type === "site" ? "Site----" : "----@example.com" });
30126
+ if (type === "site") {
30127
+ return /* @__PURE__ */ jsx48(
30128
+ "strong",
30129
+ __spreadProps(__spreadValues({}, props), {
30130
+ className: cn(
30131
+ "font-extrabold text-sm",
30132
+ className
30133
+ ),
30134
+ children: text5
30135
+ })
30136
+ );
30137
+ }
30138
+ if (type === "email") {
30139
+ return /* @__PURE__ */ jsx48(
30140
+ "a",
30141
+ __spreadProps(__spreadValues({}, props), {
30142
+ href: `mailto:${text5}`,
30143
+ className: cn(
30144
+ "font-mono underline text-sm",
30145
+ className
30146
+ ),
30147
+ children: text5
30148
+ })
30149
+ );
30150
+ }
30151
+ return null;
30152
+ });
30153
+ }
29973
30154
  export {
30155
+ FumaBannerSuit,
29974
30156
  LLMCopyHandler,
30157
+ SiteX,
29975
30158
  createFumaPage
29976
30159
  };
29977
30160
  /*! Bundled license information: