@windrun-huaiin/third-ui 26.0.0 → 28.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 (210) hide show
  1. package/dist/ai/ai-prompt-textarea.d.ts +72 -0
  2. package/dist/ai/ai-prompt-textarea.js +114 -0
  3. package/dist/ai/ai-prompt-textarea.mjs +112 -0
  4. package/dist/ai/index.d.ts +1 -0
  5. package/dist/ai/index.js +2 -0
  6. package/dist/ai/index.mjs +1 -0
  7. package/dist/clerk/clerk-provider-client.js +0 -1
  8. package/dist/clerk/clerk-provider-client.mjs +0 -1
  9. package/dist/clerk/fingerprint/fingerprint-client.js +0 -4
  10. package/dist/clerk/fingerprint/fingerprint-client.mjs +0 -4
  11. package/dist/clerk/fingerprint/use-fingerprint.js +0 -6
  12. package/dist/clerk/fingerprint/use-fingerprint.mjs +0 -6
  13. package/dist/clerk/signin-with-fingerprint-client.js +0 -9
  14. package/dist/clerk/signin-with-fingerprint-client.mjs +0 -9
  15. package/dist/clerk/signup-button-with-fingerprint-client.js +0 -16
  16. package/dist/clerk/signup-button-with-fingerprint-client.mjs +0 -16
  17. package/dist/clerk/signup-with-fingerprint-client.js +0 -9
  18. package/dist/clerk/signup-with-fingerprint-client.mjs +0 -9
  19. package/dist/fuma/base/custom-header.js +10 -8
  20. package/dist/fuma/base/custom-header.mjs +10 -8
  21. package/dist/fuma/base/custom-home-layout.d.ts +0 -4
  22. package/dist/fuma/base/docs-root-provider.d.ts +19 -0
  23. package/dist/fuma/base/docs-root-provider.js +17 -0
  24. package/dist/fuma/base/docs-root-provider.mjs +15 -0
  25. package/dist/fuma/base/index.d.ts +5 -0
  26. package/dist/fuma/base/index.js +16 -7
  27. package/dist/fuma/base/index.mjs +5 -1
  28. package/dist/fuma/base/nav-config.d.ts +10 -0
  29. package/dist/fuma/base/nav-config.js +32 -0
  30. package/dist/fuma/base/nav-config.mjs +28 -0
  31. package/dist/fuma/base/site-docs-layout.d.ts +11 -0
  32. package/dist/fuma/base/site-docs-layout.js +15 -0
  33. package/dist/fuma/base/site-docs-layout.mjs +13 -0
  34. package/dist/fuma/base/site-home-layout.d.ts +24 -0
  35. package/dist/fuma/base/site-home-layout.js +16 -0
  36. package/dist/fuma/base/site-home-layout.mjs +14 -0
  37. package/dist/fuma/base/site-layout-shared.d.ts +89 -0
  38. package/dist/fuma/base/site-layout-shared.js +48 -0
  39. package/dist/fuma/base/site-layout-shared.mjs +42 -0
  40. package/dist/fuma/base/site-layout.d.ts +4 -116
  41. package/dist/fuma/base/site-layout.js +2 -2
  42. package/dist/fuma/base/site-layout.mjs +2 -2
  43. package/dist/fuma/fuma-page-genarator.d.ts +1 -1
  44. package/dist/fuma/fuma-page-genarator.js +65 -10
  45. package/dist/fuma/fuma-page-genarator.mjs +61 -6
  46. package/dist/fuma/llm-copy-handler.js +0 -9
  47. package/dist/fuma/llm-copy-handler.mjs +0 -9
  48. package/dist/fuma/mdx/index.d.ts +0 -1
  49. package/dist/fuma/mdx/index.js +0 -2
  50. package/dist/fuma/mdx/index.mjs +0 -1
  51. package/dist/fuma/mdx/suno-embed.js +3 -1
  52. package/dist/fuma/mdx/suno-embed.mjs +3 -1
  53. package/dist/fuma/mdx/toc-base.js +0 -1
  54. package/dist/fuma/mdx/toc-base.mjs +0 -1
  55. package/dist/fuma/server/features/widgets.js +5 -1
  56. package/dist/fuma/server/features/widgets.mjs +5 -1
  57. package/dist/fuma/server/llm-copy-handler.d.ts +2 -0
  58. package/dist/fuma/server/llm-copy-handler.js +7 -0
  59. package/dist/fuma/server/llm-copy-handler.mjs +1 -0
  60. package/dist/fuma/server/page-generator.d.ts +2 -0
  61. package/dist/fuma/server/page-generator.js +7 -0
  62. package/dist/fuma/server/page-generator.mjs +1 -0
  63. package/dist/lib/seo-metadata.js +3 -3
  64. package/dist/lib/seo-metadata.mjs +1 -1
  65. package/dist/lib/seo-util.js +4 -4
  66. package/dist/lib/seo-util.mjs +1 -1
  67. package/dist/lib/site-docs-helper.d.ts +51 -0
  68. package/dist/lib/site-docs-helper.js +68 -0
  69. package/dist/lib/site-docs-helper.mjs +66 -0
  70. package/dist/main/alert-dialog/index.js +14 -0
  71. package/dist/main/alert-dialog/index.mjs +5 -0
  72. package/dist/main/buttons/gradient-button.d.ts +20 -0
  73. package/dist/main/buttons/gradient-button.js +88 -0
  74. package/dist/main/buttons/gradient-button.mjs +86 -0
  75. package/dist/main/buttons/index.d.ts +3 -0
  76. package/dist/main/buttons/index.js +12 -0
  77. package/dist/main/buttons/index.mjs +4 -0
  78. package/dist/main/buttons/x-button.d.ts +39 -0
  79. package/dist/main/buttons/x-button.js +92 -0
  80. package/dist/main/buttons/x-button.mjs +90 -0
  81. package/dist/main/buttons/x-toggle-button.d.ts +32 -0
  82. package/dist/main/buttons/x-toggle-button.js +95 -0
  83. package/dist/main/buttons/x-toggle-button.mjs +74 -0
  84. package/dist/main/credit/credit-nav-button.js +25 -1
  85. package/dist/main/credit/credit-nav-button.mjs +25 -1
  86. package/dist/main/credit/credit-overview-client.js +3 -2
  87. package/dist/main/credit/credit-overview-client.mjs +3 -2
  88. package/dist/main/credit/index.d.ts +4 -0
  89. package/dist/main/credit/index.js +10 -0
  90. package/dist/main/credit/index.mjs +3 -0
  91. package/dist/main/credit/server.d.ts +2 -0
  92. package/dist/main/credit/server.js +7 -0
  93. package/dist/main/credit/server.mjs +1 -0
  94. package/dist/main/cta.js +4 -2
  95. package/dist/main/cta.mjs +4 -2
  96. package/dist/main/footer.js +3 -3
  97. package/dist/main/footer.mjs +1 -1
  98. package/dist/main/hero/index.d.ts +2 -0
  99. package/dist/main/hero/index.js +10 -0
  100. package/dist/main/hero/index.mjs +3 -0
  101. package/dist/main/home/server.d.ts +7 -0
  102. package/dist/main/home/server.js +19 -0
  103. package/dist/main/home/server.mjs +7 -0
  104. package/dist/main/index.d.ts +0 -15
  105. package/dist/main/index.js +0 -43
  106. package/dist/main/index.mjs +0 -21
  107. package/dist/main/loading/index.d.ts +1 -0
  108. package/dist/main/loading/index.js +9 -0
  109. package/dist/main/loading/index.mjs +2 -0
  110. package/dist/main/loading-frame/index.d.ts +1 -0
  111. package/dist/main/loading-frame/index.js +9 -0
  112. package/dist/main/loading-frame/index.mjs +2 -0
  113. package/dist/main/money-price/index.d.ts +4 -0
  114. package/dist/main/money-price/index.js +15 -0
  115. package/dist/main/money-price/index.mjs +4 -0
  116. package/dist/main/money-price/money-price-button.d.ts +1 -1
  117. package/dist/main/money-price/money-price-button.js +12 -9
  118. package/dist/main/money-price/money-price-button.mjs +12 -9
  119. package/dist/main/money-price/money-price-interactive.d.ts +1 -1
  120. package/dist/main/money-price/money-price-interactive.js +22 -25
  121. package/dist/main/money-price/money-price-interactive.mjs +22 -25
  122. package/dist/main/money-price/money-price-types.d.ts +2 -0
  123. package/dist/main/money-price/server.d.ts +5 -0
  124. package/dist/main/money-price/server.js +18 -0
  125. package/dist/main/money-price/server.mjs +4 -0
  126. package/package.json +94 -4
  127. package/src/ai/index.ts +1 -0
  128. package/src/clerk/clerk-provider-client.tsx +1 -3
  129. package/src/clerk/fingerprint/fingerprint-client.ts +0 -4
  130. package/src/clerk/fingerprint/use-fingerprint.ts +0 -6
  131. package/src/clerk/signin-with-fingerprint-client.tsx +0 -10
  132. package/src/clerk/signup-button-with-fingerprint-client.tsx +0 -17
  133. package/src/clerk/signup-with-fingerprint-client.tsx +0 -10
  134. package/src/fuma/base/custom-header.tsx +12 -8
  135. package/src/fuma/base/custom-home-layout.tsx +3 -6
  136. package/src/fuma/base/docs-root-provider.tsx +58 -0
  137. package/src/fuma/base/index.ts +5 -0
  138. package/src/fuma/base/nav-config.ts +81 -0
  139. package/src/fuma/base/site-docs-layout.tsx +35 -0
  140. package/src/fuma/base/site-home-layout.tsx +78 -0
  141. package/src/fuma/base/site-layout-shared.tsx +190 -0
  142. package/src/fuma/base/site-layout.tsx +4 -289
  143. package/src/fuma/fuma-banner-suit.tsx +1 -1
  144. package/src/fuma/fuma-page-genarator.tsx +61 -8
  145. package/src/fuma/llm-copy-handler.ts +0 -11
  146. package/src/fuma/mdx/index.ts +0 -1
  147. package/src/fuma/mdx/suno-embed.tsx +1 -1
  148. package/src/fuma/mdx/toc-base.tsx +0 -1
  149. package/src/fuma/mdx/toc-footer-wrapper.tsx +2 -2
  150. package/src/fuma/server/features/widgets.tsx +1 -1
  151. package/src/fuma/server/llm-copy-handler.ts +2 -0
  152. package/src/fuma/server/page-generator.ts +2 -0
  153. package/src/lib/seo-metadata.ts +1 -1
  154. package/src/lib/seo-util.ts +2 -2
  155. package/src/lib/server.ts +1 -1
  156. package/src/{fuma/mdx → main/buttons}/gradient-button.tsx +10 -21
  157. package/src/main/buttons/index.ts +5 -0
  158. package/src/main/{x-button.tsx → buttons/x-button.tsx} +28 -42
  159. package/src/main/credit/credit-nav-button.tsx +36 -3
  160. package/src/main/credit/credit-overview-client.tsx +1 -1
  161. package/src/main/credit/index.ts +11 -0
  162. package/src/main/credit/server.ts +7 -0
  163. package/src/main/cta.tsx +1 -1
  164. package/src/main/footer.tsx +1 -2
  165. package/src/main/hero/index.ts +4 -0
  166. package/src/main/home/server.ts +7 -0
  167. package/src/main/index.ts +1 -20
  168. package/src/main/language-detector.tsx +0 -1
  169. package/src/main/loading/index.ts +3 -0
  170. package/src/main/loading-frame/index.ts +3 -0
  171. package/src/main/money-price/index.ts +18 -0
  172. package/src/main/money-price/money-price-button.tsx +17 -9
  173. package/src/main/money-price/money-price-interactive.tsx +30 -25
  174. package/src/main/money-price/money-price-types.ts +2 -0
  175. package/src/main/money-price/server.ts +22 -0
  176. package/dist/fuma/mdx/features.d.ts +0 -8
  177. package/dist/fuma/mdx/features.js +0 -92
  178. package/dist/fuma/mdx/features.mjs +0 -85
  179. package/dist/fuma/mdx/image-grid.d.ts +0 -6
  180. package/dist/fuma/mdx/image-grid.js +0 -17
  181. package/dist/fuma/mdx/image-grid.mjs +0 -15
  182. package/dist/fuma/mdx/image-zoom.d.ts +0 -22
  183. package/dist/fuma/mdx/image-zoom.js +0 -39
  184. package/dist/fuma/mdx/image-zoom.mjs +0 -37
  185. package/dist/fuma/mdx/markdown-component-map.d.ts +0 -3
  186. package/dist/fuma/mdx/markdown-component-map.js +0 -79
  187. package/dist/fuma/mdx/markdown-component-map.mjs +0 -77
  188. package/dist/fuma/mdx/math.d.ts +0 -17
  189. package/dist/fuma/mdx/math.js +0 -60
  190. package/dist/fuma/mdx/math.mjs +0 -57
  191. package/dist/fuma/mdx/mermaid.d.ts +0 -13
  192. package/dist/fuma/mdx/mermaid.js +0 -360
  193. package/dist/fuma/mdx/mermaid.mjs +0 -358
  194. package/dist/fuma/mdx/site-mdx-components.d.ts +0 -13
  195. package/dist/fuma/mdx/site-mdx-components.js +0 -19
  196. package/dist/fuma/mdx/site-mdx-components.mjs +0 -17
  197. package/dist/fuma/mdx/site-mdx-presets.d.ts +0 -13
  198. package/dist/fuma/mdx/site-mdx-presets.js +0 -49
  199. package/dist/fuma/mdx/site-mdx-presets.mjs +0 -45
  200. package/dist/fuma/server/optional-features.d.ts +0 -6
  201. package/dist/fuma/server/optional-features.js +0 -17
  202. package/dist/fuma/server/optional-features.mjs +0 -6
  203. package/dist/fuma/server/site-mdx-components.d.ts +0 -13
  204. package/dist/fuma/server/site-mdx-components.js +0 -18
  205. package/dist/fuma/server/site-mdx-components.mjs +0 -16
  206. package/dist/fuma/server/site-mdx-presets.d.ts +0 -195
  207. package/dist/fuma/server/site-mdx-presets.js +0 -55
  208. package/dist/fuma/server/site-mdx-presets.mjs +0 -52
  209. /package/src/{main → ai}/ai-prompt-textarea.tsx +0 -0
  210. /package/src/main/{x-toggle-button.tsx → buttons/x-toggle-button.tsx} +0 -0
@@ -21,6 +21,10 @@ import { redirectToCustomerPortal } from './customer-portal';
21
21
  import { themeButtonGradientClass, themeButtonGradientHoverClass, themeIconColor } from '@windrun-huaiin/base-ui/lib';
22
22
 
23
23
  type BillingType = string;
24
+ type ProcessingTarget = {
25
+ plan: string;
26
+ billing: string;
27
+ } | null;
24
28
 
25
29
  interface BillingOption {
26
30
  key: string;
@@ -43,6 +47,7 @@ export function MoneyPriceInteractive({
43
47
  initialBillingType,
44
48
  disableAutoDetectBilling = false,
45
49
  initUserContext,
50
+ isInitLoading = false,
46
51
  }: MoneyPriceInteractiveProps) {
47
52
  const { redirectToSignIn, redirectToSignUp, user: clerkUser, openSignUp } = useClerk();
48
53
  const router = useRouter();
@@ -144,24 +149,21 @@ export function MoneyPriceInteractive({
144
149
  priceIdsByCycle,
145
150
  ]);
146
151
 
147
- const initialBillingCandidate = useMemo(() => {
148
- if (initialBillingType) {
149
- return resolvedInitialBilling;
150
- }
151
- if (detectedBillingType) {
152
- return detectedBillingType;
152
+ const explicitInitialBilling = useMemo<BillingType | null>(() => {
153
+ if (
154
+ initialBillingType &&
155
+ billingOptions.some(option => option.key === initialBillingType)
156
+ ) {
157
+ return initialBillingType;
153
158
  }
154
- return resolvedInitialBilling;
155
- }, [initialBillingType, resolvedInitialBilling, detectedBillingType]);
159
+ return null;
160
+ }, [initialBillingType, billingOptions]);
156
161
 
157
- const [billingType, setBillingType] = useState<BillingType>(initialBillingCandidate);
162
+ const [userSelectedBillingType, setUserSelectedBillingType] = useState<BillingType | null>(null);
163
+ const billingType = userSelectedBillingType ?? explicitInitialBilling ?? detectedBillingType ?? resolvedInitialBilling;
158
164
  const navigationLockRef = useRef(false);
159
165
 
160
- useEffect(() => {
161
- setBillingType(prev => (prev === initialBillingCandidate ? prev : initialBillingCandidate));
162
- }, [initialBillingCandidate]);
163
-
164
- const [isProcessing, setIsProcessing] = useState(false);
166
+ const [processingTarget, setProcessingTarget] = useState<ProcessingTarget>(null);
165
167
  const [isTouchDevice, setIsTouchDevice] = useState(false);
166
168
 
167
169
  useEffect(() => {
@@ -231,23 +233,22 @@ export function MoneyPriceInteractive({
231
233
 
232
234
  const handleAction = useCallback(async (plan: string, billing: string) => {
233
235
  const isSubscriptionFlow = billing !== 'onetime';
236
+ const hasActiveSubscription =
237
+ userContext.isAuthenticated &&
238
+ (userContext.subscriptionStatus === UserState.ProUser ||
239
+ userContext.subscriptionStatus === UserState.UltraUser);
234
240
 
235
- if (isSubscriptionFlow && !enableSubscriptionUpgrade) {
241
+ if (isSubscriptionFlow && hasActiveSubscription && !enableSubscriptionUpgrade) {
236
242
  return;
237
243
  }
238
244
 
239
245
  navigationLockRef.current = false;
240
- setIsProcessing(true);
246
+ setProcessingTarget({ plan, billing });
241
247
  const markNavigating = () => {
242
248
  navigationLockRef.current = true;
243
249
  };
244
250
 
245
251
  try {
246
- const hasActiveSubscription =
247
- userContext.isAuthenticated &&
248
- (userContext.subscriptionStatus === UserState.ProUser ||
249
- userContext.subscriptionStatus === UserState.UltraUser);
250
-
251
252
  const shouldUsePortal = isSubscriptionFlow && hasActiveSubscription;
252
253
 
253
254
  if (shouldUsePortal) {
@@ -327,7 +328,7 @@ export function MoneyPriceInteractive({
327
328
  console.error('Error during upgrade:', error);
328
329
  } finally {
329
330
  if (!navigationLockRef.current) {
330
- setIsProcessing(false);
331
+ setProcessingTarget(null);
331
332
  }
332
333
  }
333
334
  }, [
@@ -419,7 +420,7 @@ export function MoneyPriceInteractive({
419
420
  )}
420
421
  type="button"
421
422
  data-billing-button={option.key}
422
- onClick={() => setBillingType(option.key as BillingType)}
423
+ onClick={() => setUserSelectedBillingType(option.key)}
423
424
  >
424
425
  {option.name}
425
426
  </button>
@@ -560,8 +561,12 @@ export function MoneyPriceInteractive({
560
561
  onAuth={handleAuth}
561
562
  onAction={handleAction}
562
563
  texts={data.buttonTexts}
563
- isProcessing={isProcessing}
564
- isInitLoading={false}
564
+ isProcessing={
565
+ processingTarget?.plan === planKey &&
566
+ processingTarget?.billing === billingType
567
+ }
568
+ isAnyProcessing={!!processingTarget}
569
+ isInitLoading={isInitLoading}
565
570
  enableSubscriptionUpgrade={enableSubscriptionUpgrade}
566
571
  />
567
572
  </div>
@@ -119,6 +119,7 @@ export interface MoneyPriceInteractiveProps {
119
119
  initialBillingType?: string;
120
120
  disableAutoDetectBilling?: boolean;
121
121
  initUserContext?: InitUserContext;
122
+ isInitLoading?: boolean;
122
123
  }
123
124
 
124
125
  // 按钮组件属性
@@ -137,6 +138,7 @@ export interface MoneyPriceButtonProps {
137
138
  upgrade: string;
138
139
  };
139
140
  isProcessing?: boolean;
141
+ isAnyProcessing?: boolean;
140
142
  isInitLoading: boolean;
141
143
  enableSubscriptionUpgrade?: boolean;
142
144
  }
@@ -0,0 +1,22 @@
1
+ export { MoneyPrice } from './money-price';
2
+ export {
3
+ getActiveProviderConfigUtil,
4
+ getCreditsFromPriceIdUtil,
5
+ getPriceConfigUtil,
6
+ } from './money-price-config-util';
7
+ export { buildMoneyPriceData } from './money-price-data';
8
+ export type {
9
+ MoneyPriceConfig,
10
+ MoneyPriceProps,
11
+ MoneyPriceInteractiveProps,
12
+ MoneyPriceButtonProps,
13
+ MoneyPriceData,
14
+ InitUserContext,
15
+ PaymentProvider,
16
+ PaymentProviderConfig,
17
+ EnhancePricePlan,
18
+ SubscriptionProductConfig,
19
+ CreditPackProductConfig,
20
+ UserContext,
21
+ } from './money-price-types';
22
+ export { UserState } from './money-price-types';
@@ -1,8 +0,0 @@
1
- import type { MDXComponents } from 'mdx/types';
2
- import type { ReactNode } from 'react';
3
- export declare function createBaseMdxComponents(imageFallbackSrc?: string): MDXComponents;
4
- export declare function createCodeMdxComponents(iconMap: Record<string, ReactNode>): MDXComponents;
5
- export declare function createMathMdxComponents(): MDXComponents;
6
- export declare function createMermaidMdxComponents(watermarkEnabled?: boolean, watermarkText?: string): MDXComponents;
7
- export declare function createTypeTableMdxComponents(): MDXComponents;
8
- export declare function createWidgetMdxComponents(cdnBaseUrl?: string, imageFallbackSrc?: string): MDXComponents;
@@ -1,92 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var codeblock = require('fumadocs-ui/components/codeblock');
5
- var typeTable = require('fumadocs-ui/components/type-table');
6
- var fumadocsTypescript = require('fumadocs-typescript');
7
- var ui = require('fumadocs-typescript/ui');
8
- var markdownComponentMap = require('../share/markdown-component-map.js');
9
- var imageZoom = require('../heavy/image-zoom.js');
10
- var imageGrid = require('../heavy/image-grid.js');
11
- var math = require('../heavy/math.js');
12
- var mermaid = require('../heavy/mermaid.js');
13
- var trophyCard = require('./trophy-card.js');
14
- var ziaCard = require('./zia-card.js');
15
- var gradientButton = require('./gradient-button.js');
16
- var ziaFile = require('./zia-file.js');
17
- var sunoEmbed = require('./suno-embed.js');
18
-
19
- const typeTableGenerator = fumadocsTypescript.createGenerator();
20
- function tryToMatchIcon(props, iconMap) {
21
- var _a;
22
- let lang;
23
- const dataLanguage = props['data-language'];
24
- if (dataLanguage && dataLanguage.trim() !== '') {
25
- lang = dataLanguage.trim().toLowerCase();
26
- }
27
- else {
28
- const title = props.title;
29
- if (title) {
30
- const titleParts = title.split('.');
31
- if (titleParts.length > 1 && titleParts[0] !== '') {
32
- const extension = (_a = titleParts.pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
33
- if (extension) {
34
- lang = extension;
35
- }
36
- }
37
- }
38
- }
39
- if (lang && iconMap[lang]) {
40
- return iconMap[lang];
41
- }
42
- return undefined;
43
- }
44
- function createBaseMdxComponents(imageFallbackSrc) {
45
- return Object.assign(Object.assign({}, markdownComponentMap.baseMarkdownComponents), { img: (props) => (jsxRuntime.jsx(imageZoom.ImageZoom, Object.assign({}, props, { fallbackSrc: imageFallbackSrc }))) });
46
- }
47
- function createCodeMdxComponents(iconMap) {
48
- return {
49
- pre: (props) => {
50
- const customIcon = tryToMatchIcon(props, iconMap);
51
- return (jsxRuntime.jsx(codeblock.CodeBlock, Object.assign({}, props, (customIcon && { icon: customIcon }), { children: jsxRuntime.jsx(codeblock.Pre, { children: props.children }) })));
52
- },
53
- CodeBlock: codeblock.CodeBlock,
54
- Pre: codeblock.Pre,
55
- };
56
- }
57
- function createMathMdxComponents() {
58
- return {
59
- MathBlock: math.MathBlock,
60
- InlineMath: math.InlineMath,
61
- };
62
- }
63
- function createMermaidMdxComponents(watermarkEnabled, watermarkText) {
64
- return {
65
- Mermaid: (props) => (jsxRuntime.jsx(mermaid.Mermaid, Object.assign({}, props, { watermarkEnabled: watermarkEnabled, watermarkText: watermarkText }))),
66
- };
67
- }
68
- function createTypeTableMdxComponents() {
69
- return {
70
- TypeTable: typeTable.TypeTable,
71
- AutoTypeTable: (props) => (jsxRuntime.jsx(ui.AutoTypeTable, Object.assign({}, props, { generator: typeTableGenerator }))),
72
- };
73
- }
74
- function createWidgetMdxComponents(cdnBaseUrl, imageFallbackSrc) {
75
- return {
76
- TrophyCard: trophyCard.TrophyCard,
77
- ZiaCard: ziaCard.ZiaCard,
78
- GradientButton: gradientButton.GradientButton,
79
- ZiaFile: ziaFile.ZiaFile,
80
- ZiaFolder: ziaFile.ZiaFolder,
81
- SunoEmbed: sunoEmbed.SunoEmbed,
82
- ImageGrid: (props) => (jsxRuntime.jsx(imageGrid.ImageGrid, Object.assign({}, props, { cdnBaseUrl: cdnBaseUrl }))),
83
- ImageZoom: (props) => (jsxRuntime.jsx(imageZoom.ImageZoom, Object.assign({}, props, { fallbackSrc: imageFallbackSrc }))),
84
- };
85
- }
86
-
87
- exports.createBaseMdxComponents = createBaseMdxComponents;
88
- exports.createCodeMdxComponents = createCodeMdxComponents;
89
- exports.createMathMdxComponents = createMathMdxComponents;
90
- exports.createMermaidMdxComponents = createMermaidMdxComponents;
91
- exports.createTypeTableMdxComponents = createTypeTableMdxComponents;
92
- exports.createWidgetMdxComponents = createWidgetMdxComponents;
@@ -1,85 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Pre, CodeBlock } from 'fumadocs-ui/components/codeblock';
3
- import { TypeTable } from 'fumadocs-ui/components/type-table';
4
- import { createGenerator } from 'fumadocs-typescript';
5
- import { AutoTypeTable } from 'fumadocs-typescript/ui';
6
- import { baseMarkdownComponents } from '../share/markdown-component-map.mjs';
7
- import { ImageZoom } from '../heavy/image-zoom.mjs';
8
- import { ImageGrid } from '../heavy/image-grid.mjs';
9
- import { InlineMath, MathBlock } from '../heavy/math.mjs';
10
- import { Mermaid } from '../heavy/mermaid.mjs';
11
- import { TrophyCard } from './trophy-card.mjs';
12
- import { ZiaCard } from './zia-card.mjs';
13
- import { GradientButton } from './gradient-button.mjs';
14
- import { ZiaFolder, ZiaFile } from './zia-file.mjs';
15
- import { SunoEmbed } from './suno-embed.mjs';
16
-
17
- const typeTableGenerator = createGenerator();
18
- function tryToMatchIcon(props, iconMap) {
19
- var _a;
20
- let lang;
21
- const dataLanguage = props['data-language'];
22
- if (dataLanguage && dataLanguage.trim() !== '') {
23
- lang = dataLanguage.trim().toLowerCase();
24
- }
25
- else {
26
- const title = props.title;
27
- if (title) {
28
- const titleParts = title.split('.');
29
- if (titleParts.length > 1 && titleParts[0] !== '') {
30
- const extension = (_a = titleParts.pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
31
- if (extension) {
32
- lang = extension;
33
- }
34
- }
35
- }
36
- }
37
- if (lang && iconMap[lang]) {
38
- return iconMap[lang];
39
- }
40
- return undefined;
41
- }
42
- function createBaseMdxComponents(imageFallbackSrc) {
43
- return Object.assign(Object.assign({}, baseMarkdownComponents), { img: (props) => (jsx(ImageZoom, Object.assign({}, props, { fallbackSrc: imageFallbackSrc }))) });
44
- }
45
- function createCodeMdxComponents(iconMap) {
46
- return {
47
- pre: (props) => {
48
- const customIcon = tryToMatchIcon(props, iconMap);
49
- return (jsx(CodeBlock, Object.assign({}, props, (customIcon && { icon: customIcon }), { children: jsx(Pre, { children: props.children }) })));
50
- },
51
- CodeBlock,
52
- Pre,
53
- };
54
- }
55
- function createMathMdxComponents() {
56
- return {
57
- MathBlock,
58
- InlineMath,
59
- };
60
- }
61
- function createMermaidMdxComponents(watermarkEnabled, watermarkText) {
62
- return {
63
- Mermaid: (props) => (jsx(Mermaid, Object.assign({}, props, { watermarkEnabled: watermarkEnabled, watermarkText: watermarkText }))),
64
- };
65
- }
66
- function createTypeTableMdxComponents() {
67
- return {
68
- TypeTable,
69
- AutoTypeTable: (props) => (jsx(AutoTypeTable, Object.assign({}, props, { generator: typeTableGenerator }))),
70
- };
71
- }
72
- function createWidgetMdxComponents(cdnBaseUrl, imageFallbackSrc) {
73
- return {
74
- TrophyCard,
75
- ZiaCard,
76
- GradientButton,
77
- ZiaFile,
78
- ZiaFolder,
79
- SunoEmbed,
80
- ImageGrid: (props) => (jsx(ImageGrid, Object.assign({}, props, { cdnBaseUrl: cdnBaseUrl }))),
81
- ImageZoom: (props) => (jsx(ImageZoom, Object.assign({}, props, { fallbackSrc: imageFallbackSrc }))),
82
- };
83
- }
84
-
85
- export { createBaseMdxComponents, createCodeMdxComponents, createMathMdxComponents, createMermaidMdxComponents, createTypeTableMdxComponents, createWidgetMdxComponents };
@@ -1,6 +0,0 @@
1
- export declare function ImageGrid({ type, images, altPrefix, cdnBaseUrl, }: {
2
- type: "url" | "local";
3
- images: string[];
4
- altPrefix?: string;
5
- cdnBaseUrl?: string;
6
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,17 +0,0 @@
1
- "use client";
2
- 'use strict';
3
-
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var imageZoom = require('./image-zoom.js');
6
-
7
- function ImageGrid({ type = "url", images, altPrefix = '', cdnBaseUrl, }) {
8
- return (jsxRuntime.jsx("div", { style: {
9
- display: 'grid',
10
- gridTemplateColumns: 'repeat(2, 1fr)',
11
- gap: '16px',
12
- justifyItems: 'center',
13
- alignItems: 'center',
14
- }, children: images.map((img, idx) => (jsxRuntime.jsx(imageZoom.ImageZoom, { src: img.startsWith('http://') || img.startsWith('https://') ? img : (type === "url" ? `${cdnBaseUrl === null || cdnBaseUrl === void 0 ? void 0 : cdnBaseUrl.replace(/\/+$/, '')}/${img.replace(/^\/+/, '')}` : img), alt: `${altPrefix}-${idx + 1}` }, img))) }));
15
- }
16
-
17
- exports.ImageGrid = ImageGrid;
@@ -1,15 +0,0 @@
1
- "use client";
2
- import { jsx } from 'react/jsx-runtime';
3
- import { ImageZoom } from './image-zoom.mjs';
4
-
5
- function ImageGrid({ type = "url", images, altPrefix = '', cdnBaseUrl, }) {
6
- return (jsx("div", { style: {
7
- display: 'grid',
8
- gridTemplateColumns: 'repeat(2, 1fr)',
9
- gap: '16px',
10
- justifyItems: 'center',
11
- alignItems: 'center',
12
- }, children: images.map((img, idx) => (jsx(ImageZoom, { src: img.startsWith('http://') || img.startsWith('https://') ? img : (type === "url" ? `${cdnBaseUrl === null || cdnBaseUrl === void 0 ? void 0 : cdnBaseUrl.replace(/\/+$/, '')}/${img.replace(/^\/+/, '')}` : img), alt: `${altPrefix}-${idx + 1}` }, img))) }));
13
- }
14
-
15
- export { ImageGrid };
@@ -1,22 +0,0 @@
1
- import { type ImageProps } from 'fumadocs-core/framework';
2
- import { type ImgHTMLAttributes } from 'react';
3
- import { type UncontrolledProps } from 'react-medium-image-zoom';
4
- export type ImageZoomProps = ImageProps & {
5
- /**
6
- * Image props when zoom in
7
- */
8
- zoomInProps?: ImgHTMLAttributes<HTMLImageElement>;
9
- /**
10
- * Props for `react-medium-image-zoom`
11
- */
12
- rmiz?: UncontrolledProps;
13
- /**
14
- * placeholder image path
15
- */
16
- fallbackSrc?: string;
17
- };
18
- /**
19
- * @example
20
- * <ImageZoom src="URL" fallbackSrc="/my-placeholder.png" />
21
- */
22
- export declare function ImageZoom({ zoomInProps, children, rmiz, fallbackSrc, ...props }: ImageZoomProps): import("react/jsx-runtime").JSX.Element;
@@ -1,39 +0,0 @@
1
- "use client";
2
- 'use strict';
3
-
4
- var tslib = require('tslib');
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var framework = require('fumadocs-core/framework');
7
- var React = require('react');
8
- var Zoom = require('react-medium-image-zoom');
9
-
10
- function getImageSrc(src) {
11
- if (typeof src === 'string')
12
- return src;
13
- if (typeof src === 'object') {
14
- // Next.js
15
- if ('default' in src)
16
- return src.default.src;
17
- return src.src;
18
- }
19
- return '';
20
- }
21
- /**
22
- * @example
23
- * <ImageZoom src="URL" fallbackSrc="/my-placeholder.png" />
24
- */
25
- function ImageZoom(_a) {
26
- var _b;
27
- var { zoomInProps, children, rmiz, fallbackSrc = 'https://r2.d8ger.com/default.webp' } = _a, props = tslib.__rest(_a, ["zoomInProps", "children", "rmiz", "fallbackSrc"]);
28
- const [imgSrc, setImgSrc] = React.useState(getImageSrc(props.src));
29
- // fallback logic
30
- const handleError = () => {
31
- console.warn('ImageZoom check error:', imgSrc, fallbackSrc);
32
- if (imgSrc !== fallbackSrc) {
33
- setImgSrc(fallbackSrc);
34
- }
35
- };
36
- return (jsxRuntime.jsx(Zoom, Object.assign({ zoomMargin: 20, wrapElement: "span" }, rmiz, { zoomImg: Object.assign(Object.assign({ src: imgSrc, sizes: undefined }, zoomInProps), { onError: handleError }), children: children !== null && children !== void 0 ? children : (jsxRuntime.jsx(framework.Image, Object.assign({}, props, { src: imgSrc, onError: handleError, sizes: "(max-width: 400px) 100vw, 300px", style: { width: '100%', height: 'auto', maxWidth: 300 }, alt: (_b = props.alt) !== null && _b !== void 0 ? _b : '', width: 300, height: 225 }))) })));
37
- }
38
-
39
- exports.ImageZoom = ImageZoom;
@@ -1,37 +0,0 @@
1
- "use client";
2
- import { __rest } from 'tslib';
3
- import { jsx } from 'react/jsx-runtime';
4
- import { Image } from 'fumadocs-core/framework';
5
- import { useState } from 'react';
6
- import Zoom from 'react-medium-image-zoom';
7
-
8
- function getImageSrc(src) {
9
- if (typeof src === 'string')
10
- return src;
11
- if (typeof src === 'object') {
12
- // Next.js
13
- if ('default' in src)
14
- return src.default.src;
15
- return src.src;
16
- }
17
- return '';
18
- }
19
- /**
20
- * @example
21
- * <ImageZoom src="URL" fallbackSrc="/my-placeholder.png" />
22
- */
23
- function ImageZoom(_a) {
24
- var _b;
25
- var { zoomInProps, children, rmiz, fallbackSrc = 'https://r2.d8ger.com/default.webp' } = _a, props = __rest(_a, ["zoomInProps", "children", "rmiz", "fallbackSrc"]);
26
- const [imgSrc, setImgSrc] = useState(getImageSrc(props.src));
27
- // fallback logic
28
- const handleError = () => {
29
- console.warn('ImageZoom check error:', imgSrc, fallbackSrc);
30
- if (imgSrc !== fallbackSrc) {
31
- setImgSrc(fallbackSrc);
32
- }
33
- };
34
- return (jsx(Zoom, Object.assign({ zoomMargin: 20, wrapElement: "span" }, rmiz, { zoomImg: Object.assign(Object.assign({ src: imgSrc, sizes: undefined }, zoomInProps), { onError: handleError }), children: children !== null && children !== void 0 ? children : (jsx(Image, Object.assign({}, props, { src: imgSrc, onError: handleError, sizes: "(max-width: 400px) 100vw, 300px", style: { width: '100%', height: 'auto', maxWidth: 300 }, alt: (_b = props.alt) !== null && _b !== void 0 ? _b : '', width: 300, height: 225 }))) })));
35
- }
36
-
37
- export { ImageZoom };
@@ -1,3 +0,0 @@
1
- import { type ComponentType } from 'react';
2
- export type MarkdownComponentMap = Record<string, ComponentType<any>>;
3
- export declare const baseMarkdownComponents: MarkdownComponentMap;
@@ -1,79 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var utils = require('@windrun-huaiin/lib/utils');
6
- var defaultMdxComponents = require('fumadocs-ui/mdx');
7
- var imageZoom = require('../heavy/image-zoom.js');
8
- require('katex');
9
- require('@windrun-huaiin/base-ui/icons');
10
- require('next-themes');
11
- require('roughjs');
12
- require('react');
13
- require('@windrun-huaiin/base-ui/lib');
14
-
15
- function normalizeMarkdownProps(props) {
16
- const { class: legacyClassName, className } = props, restProps = tslib.__rest(props, ["class", "className"]);
17
- return Object.assign(Object.assign({}, restProps), { className: utils.cn(typeof legacyClassName === 'string' ? legacyClassName : undefined, className) });
18
- }
19
- const baseMarkdownComponents = Object.assign(Object.assign({}, defaultMdxComponents), { a: (_a) => {
20
- var _b, _c;
21
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
22
- return (jsxRuntime.jsx("a", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('underline underline-offset-4 transition hover:opacity-80', normalizeMarkdownProps(props).className, className), target: (_b = props.target) !== null && _b !== void 0 ? _b : '_blank', rel: (_c = props.rel) !== null && _c !== void 0 ? _c : 'noreferrer noopener' })));
23
- }, blockquote: (_a) => {
24
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
25
- return (jsxRuntime.jsx("blockquote", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('border-l-2 border-border pl-4 text-muted-foreground', normalizeMarkdownProps(props).className, className) })));
26
- }, code: (_a) => {
27
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
28
- return (jsxRuntime.jsx("code", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('rounded-md bg-muted px-1.5 py-0.5 font-mono text-[0.9em]', normalizeMarkdownProps(props).className, className) })));
29
- }, h1: (_a) => {
30
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
31
- return (jsxRuntime.jsx("h1", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('text-2xl font-semibold tracking-tight', normalizeMarkdownProps(props).className, className) })));
32
- }, h2: (_a) => {
33
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
34
- return (jsxRuntime.jsx("h2", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('text-xl font-semibold tracking-tight', normalizeMarkdownProps(props).className, className) })));
35
- }, h3: (_a) => {
36
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
37
- return (jsxRuntime.jsx("h3", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('text-lg font-semibold', normalizeMarkdownProps(props).className, className) })));
38
- }, h4: (_a) => {
39
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
40
- return (jsxRuntime.jsx("h4", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('text-base font-semibold', normalizeMarkdownProps(props).className, className) })));
41
- }, h5: (_a) => {
42
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
43
- return (jsxRuntime.jsx("h5", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('text-sm font-semibold', normalizeMarkdownProps(props).className, className) })));
44
- }, h6: (_a) => {
45
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
46
- return (jsxRuntime.jsx("h6", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('text-sm font-semibold', normalizeMarkdownProps(props).className, className) })));
47
- }, hr: (_a) => {
48
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
49
- return (jsxRuntime.jsx("hr", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('border-border', normalizeMarkdownProps(props).className, className) })));
50
- }, img: (_a) => {
51
- var { className, alt, src } = _a, props = tslib.__rest(_a, ["className", "alt", "src"]);
52
- return (jsxRuntime.jsx(imageZoom.ImageZoom, Object.assign({}, normalizeMarkdownProps(props), { alt: typeof alt === 'string' ? alt : '', src: typeof src === 'string' ? src : '', className: utils.cn('overflow-hidden rounded-2xl', normalizeMarkdownProps(props).className, className) })));
53
- }, li: (_a) => {
54
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
55
- return (jsxRuntime.jsx("li", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('leading-7', normalizeMarkdownProps(props).className, className) })));
56
- }, ol: (_a) => {
57
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
58
- return (jsxRuntime.jsx("ol", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('list-decimal space-y-2 pl-6', normalizeMarkdownProps(props).className, className) })));
59
- }, p: (_a) => {
60
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
61
- return (jsxRuntime.jsx("p", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('leading-7', normalizeMarkdownProps(props).className, className) })));
62
- }, pre: (_a) => {
63
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
64
- return (jsxRuntime.jsx("pre", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('overflow-x-auto rounded-2xl border border-border bg-muted px-4 py-3 text-sm', normalizeMarkdownProps(props).className, className) })));
65
- }, table: (_a) => {
66
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
67
- return (jsxRuntime.jsx("div", { className: "overflow-x-auto", children: jsxRuntime.jsx("table", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('w-full border-collapse text-sm', normalizeMarkdownProps(props).className, className) })) }));
68
- }, td: (_a) => {
69
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
70
- return (jsxRuntime.jsx("td", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('border border-border px-3 py-2 align-top', normalizeMarkdownProps(props).className, className) })));
71
- }, th: (_a) => {
72
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
73
- return (jsxRuntime.jsx("th", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('border border-border px-3 py-2 text-left font-medium', normalizeMarkdownProps(props).className, className) })));
74
- }, ul: (_a) => {
75
- var { className } = _a, props = tslib.__rest(_a, ["className"]);
76
- return (jsxRuntime.jsx("ul", Object.assign({}, normalizeMarkdownProps(props), { className: utils.cn('list-disc space-y-2 pl-6', normalizeMarkdownProps(props).className, className) })));
77
- } });
78
-
79
- exports.baseMarkdownComponents = baseMarkdownComponents;
@@ -1,77 +0,0 @@
1
- import { __rest } from 'tslib';
2
- import { jsx } from 'react/jsx-runtime';
3
- import { cn } from '@windrun-huaiin/lib/utils';
4
- import defaultMdxComponents from 'fumadocs-ui/mdx';
5
- import { ImageZoom } from '../heavy/image-zoom.mjs';
6
- import 'katex';
7
- import '@windrun-huaiin/base-ui/icons';
8
- import 'next-themes';
9
- import 'roughjs';
10
- import 'react';
11
- import '@windrun-huaiin/base-ui/lib';
12
-
13
- function normalizeMarkdownProps(props) {
14
- const { class: legacyClassName, className } = props, restProps = __rest(props, ["class", "className"]);
15
- return Object.assign(Object.assign({}, restProps), { className: cn(typeof legacyClassName === 'string' ? legacyClassName : undefined, className) });
16
- }
17
- const baseMarkdownComponents = Object.assign(Object.assign({}, defaultMdxComponents), { a: (_a) => {
18
- var _b, _c;
19
- var { className } = _a, props = __rest(_a, ["className"]);
20
- return (jsx("a", Object.assign({}, normalizeMarkdownProps(props), { className: cn('underline underline-offset-4 transition hover:opacity-80', normalizeMarkdownProps(props).className, className), target: (_b = props.target) !== null && _b !== void 0 ? _b : '_blank', rel: (_c = props.rel) !== null && _c !== void 0 ? _c : 'noreferrer noopener' })));
21
- }, blockquote: (_a) => {
22
- var { className } = _a, props = __rest(_a, ["className"]);
23
- return (jsx("blockquote", Object.assign({}, normalizeMarkdownProps(props), { className: cn('border-l-2 border-border pl-4 text-muted-foreground', normalizeMarkdownProps(props).className, className) })));
24
- }, code: (_a) => {
25
- var { className } = _a, props = __rest(_a, ["className"]);
26
- return (jsx("code", Object.assign({}, normalizeMarkdownProps(props), { className: cn('rounded-md bg-muted px-1.5 py-0.5 font-mono text-[0.9em]', normalizeMarkdownProps(props).className, className) })));
27
- }, h1: (_a) => {
28
- var { className } = _a, props = __rest(_a, ["className"]);
29
- return (jsx("h1", Object.assign({}, normalizeMarkdownProps(props), { className: cn('text-2xl font-semibold tracking-tight', normalizeMarkdownProps(props).className, className) })));
30
- }, h2: (_a) => {
31
- var { className } = _a, props = __rest(_a, ["className"]);
32
- return (jsx("h2", Object.assign({}, normalizeMarkdownProps(props), { className: cn('text-xl font-semibold tracking-tight', normalizeMarkdownProps(props).className, className) })));
33
- }, h3: (_a) => {
34
- var { className } = _a, props = __rest(_a, ["className"]);
35
- return (jsx("h3", Object.assign({}, normalizeMarkdownProps(props), { className: cn('text-lg font-semibold', normalizeMarkdownProps(props).className, className) })));
36
- }, h4: (_a) => {
37
- var { className } = _a, props = __rest(_a, ["className"]);
38
- return (jsx("h4", Object.assign({}, normalizeMarkdownProps(props), { className: cn('text-base font-semibold', normalizeMarkdownProps(props).className, className) })));
39
- }, h5: (_a) => {
40
- var { className } = _a, props = __rest(_a, ["className"]);
41
- return (jsx("h5", Object.assign({}, normalizeMarkdownProps(props), { className: cn('text-sm font-semibold', normalizeMarkdownProps(props).className, className) })));
42
- }, h6: (_a) => {
43
- var { className } = _a, props = __rest(_a, ["className"]);
44
- return (jsx("h6", Object.assign({}, normalizeMarkdownProps(props), { className: cn('text-sm font-semibold', normalizeMarkdownProps(props).className, className) })));
45
- }, hr: (_a) => {
46
- var { className } = _a, props = __rest(_a, ["className"]);
47
- return (jsx("hr", Object.assign({}, normalizeMarkdownProps(props), { className: cn('border-border', normalizeMarkdownProps(props).className, className) })));
48
- }, img: (_a) => {
49
- var { className, alt, src } = _a, props = __rest(_a, ["className", "alt", "src"]);
50
- return (jsx(ImageZoom, Object.assign({}, normalizeMarkdownProps(props), { alt: typeof alt === 'string' ? alt : '', src: typeof src === 'string' ? src : '', className: cn('overflow-hidden rounded-2xl', normalizeMarkdownProps(props).className, className) })));
51
- }, li: (_a) => {
52
- var { className } = _a, props = __rest(_a, ["className"]);
53
- return (jsx("li", Object.assign({}, normalizeMarkdownProps(props), { className: cn('leading-7', normalizeMarkdownProps(props).className, className) })));
54
- }, ol: (_a) => {
55
- var { className } = _a, props = __rest(_a, ["className"]);
56
- return (jsx("ol", Object.assign({}, normalizeMarkdownProps(props), { className: cn('list-decimal space-y-2 pl-6', normalizeMarkdownProps(props).className, className) })));
57
- }, p: (_a) => {
58
- var { className } = _a, props = __rest(_a, ["className"]);
59
- return (jsx("p", Object.assign({}, normalizeMarkdownProps(props), { className: cn('leading-7', normalizeMarkdownProps(props).className, className) })));
60
- }, pre: (_a) => {
61
- var { className } = _a, props = __rest(_a, ["className"]);
62
- return (jsx("pre", Object.assign({}, normalizeMarkdownProps(props), { className: cn('overflow-x-auto rounded-2xl border border-border bg-muted px-4 py-3 text-sm', normalizeMarkdownProps(props).className, className) })));
63
- }, table: (_a) => {
64
- var { className } = _a, props = __rest(_a, ["className"]);
65
- return (jsx("div", { className: "overflow-x-auto", children: jsx("table", Object.assign({}, normalizeMarkdownProps(props), { className: cn('w-full border-collapse text-sm', normalizeMarkdownProps(props).className, className) })) }));
66
- }, td: (_a) => {
67
- var { className } = _a, props = __rest(_a, ["className"]);
68
- return (jsx("td", Object.assign({}, normalizeMarkdownProps(props), { className: cn('border border-border px-3 py-2 align-top', normalizeMarkdownProps(props).className, className) })));
69
- }, th: (_a) => {
70
- var { className } = _a, props = __rest(_a, ["className"]);
71
- return (jsx("th", Object.assign({}, normalizeMarkdownProps(props), { className: cn('border border-border px-3 py-2 text-left font-medium', normalizeMarkdownProps(props).className, className) })));
72
- }, ul: (_a) => {
73
- var { className } = _a, props = __rest(_a, ["className"]);
74
- return (jsx("ul", Object.assign({}, normalizeMarkdownProps(props), { className: cn('list-disc space-y-2 pl-6', normalizeMarkdownProps(props).className, className) })));
75
- } });
76
-
77
- export { baseMarkdownComponents };