@ciderpress/ui 1.0.0-rc.1 → 1.0.0-rc.11

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 (162) hide show
  1. package/dist/head/css/loader-apple.css +1 -1
  2. package/dist/head/css/loader-dots.css +1 -1
  3. package/dist/head/css/themes/amber.css +1 -1
  4. package/dist/head/css/themes/arcade.css +1 -1
  5. package/dist/head/css/themes/grannysmith.css +1 -1
  6. package/dist/head/css/themes/honeycrisp.css +1 -1
  7. package/dist/head/css/themes/midnight.css +1 -1
  8. package/dist/head/css/themes/mulled.css +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.mjs +4 -3
  11. package/dist/node.d.ts +1 -1
  12. package/dist/node.mjs +732 -55
  13. package/dist/plugins/mermaid/MermaidRenderer.tsx +49 -6
  14. package/dist/theme/components/footer/site-footer.tsx +68 -9
  15. package/dist/theme/components/home/cta.css +15 -0
  16. package/dist/theme/components/home/cta.tsx +10 -2
  17. package/dist/theme/components/home/feature-card.css +1 -1
  18. package/dist/theme/components/home/feature-card.tsx +8 -10
  19. package/dist/theme/components/home/feature.tsx +54 -31
  20. package/dist/theme/components/home/hero-demo.css +38 -0
  21. package/dist/theme/components/home/home-visual.tsx +226 -0
  22. package/dist/theme/components/home/layout.tsx +410 -108
  23. package/dist/theme/components/home/split.css +46 -19
  24. package/dist/theme/components/home/split.tsx +28 -8
  25. package/dist/theme/components/home/tabs.css +299 -0
  26. package/dist/theme/components/home/tabs.tsx +351 -0
  27. package/dist/theme/components/home/trust-strip.css +41 -0
  28. package/dist/theme/components/home/trust-strip.tsx +168 -11
  29. package/dist/theme/components/home/workspaces.tsx +176 -38
  30. package/dist/theme/components/nav/branch-tag.tsx +7 -7
  31. package/dist/theme/components/nav/ciderpress-docs-bar.css +13 -1
  32. package/dist/theme/components/nav/ciderpress-docs-bar.tsx +33 -2
  33. package/dist/theme/components/nav/ciderpress-header.css +2 -1
  34. package/dist/theme/components/nav/ciderpress-header.tsx +26 -3
  35. package/dist/theme/components/nav/ciderpress-nav-hamburger.css +50 -0
  36. package/dist/theme/components/nav/ciderpress-nav-hamburger.tsx +95 -9
  37. package/dist/theme/components/nav/ciderpress-nav-menu.css +88 -0
  38. package/dist/theme/components/nav/ciderpress-nav-menu.tsx +397 -38
  39. package/dist/theme/components/nav/ciderpress-nav-social-links.tsx +27 -22
  40. package/dist/theme/components/nav/floating-branch-indicator.tsx +7 -7
  41. package/dist/theme/components/nav/header-icon.css +24 -0
  42. package/dist/theme/components/nav/header-icon.tsx +119 -0
  43. package/dist/theme/components/nav/header-logo.css +16 -0
  44. package/dist/theme/components/nav/header-logo.tsx +200 -0
  45. package/dist/theme/components/nav/layout.tsx +117 -16
  46. package/dist/theme/components/nav/nav-logo.tsx +16 -19
  47. package/dist/theme/components/openapi/index.ts +0 -2
  48. package/dist/theme/components/openapi/openapi.css +0 -14
  49. package/dist/theme/components/shared/card-icon.tsx +37 -0
  50. package/dist/theme/components/shared/ciderpress-logo.tsx +5 -1
  51. package/dist/theme/components/shared/icon.tsx +120 -35
  52. package/dist/theme/components/shared/resolve-card-icon.ts +53 -12
  53. package/dist/theme/components/shared/section-card.tsx +37 -6
  54. package/dist/theme/components/sidebar/sidebar-badge.css +50 -0
  55. package/dist/theme/components/sidebar/sidebar-badge.tsx +153 -0
  56. package/dist/theme/components/sidebar/sidebar-links.tsx +6 -2
  57. package/dist/theme/components/sidebar/sidebar-scope.tsx +24 -1
  58. package/dist/theme/components/theme-provider.tsx +27 -11
  59. package/dist/theme/components/workspaces/card.css +4 -0
  60. package/dist/theme/components/workspaces/card.tsx +10 -12
  61. package/dist/theme/components/workspaces/grid.tsx +18 -6
  62. package/dist/theme/hooks/use-ciderpress.ts +65 -5
  63. package/dist/theme/hooks/use-nav-items.ts +82 -11
  64. package/dist/theme/index.tsx +10 -3
  65. package/dist/theme/lib/read-social-links.ts +4 -3
  66. package/dist/theme/lib/rich-text-parse.ts +740 -0
  67. package/dist/theme/lib/rich-text.test.tsx +342 -0
  68. package/dist/theme/lib/rich-text.tsx +86 -0
  69. package/dist/theme/lib/theme-favicon.ts +1 -1
  70. package/dist/theme/lib/with-mount-base.ts +31 -0
  71. package/dist/theme/styles/overrides/fonts.css +7 -4
  72. package/dist/theme/styles/overrides/footnotes.css +54 -0
  73. package/dist/theme/styles/overrides/home.css +11 -2
  74. package/dist/theme/styles/overrides/lists.css +83 -0
  75. package/dist/theme/styles/overrides/rail.css +27 -10
  76. package/dist/theme/styles/overrides/rspress.css +10 -5
  77. package/dist/theme/styles/overrides/section-card.css +9 -0
  78. package/dist/theme/styles/overrides/sidebar.css +22 -0
  79. package/dist/theme/styles/overrides/tokens.css +41 -23
  80. package/dist/theme/styles/rich-text.css +106 -0
  81. package/dist/theme/styles/themes/amber.css +32 -2
  82. package/dist/theme/styles/themes/arcade.css +16 -1
  83. package/dist/theme/styles/themes/grannysmith.css +32 -2
  84. package/dist/theme/styles/themes/honeycrisp.css +37 -7
  85. package/dist/theme/styles/themes/midnight.css +16 -1
  86. package/dist/theme/styles/themes/mulled.css +54 -9
  87. package/package.json +18 -16
  88. package/src/theme/components/footer/site-footer.tsx +68 -9
  89. package/src/theme/components/home/cta.css +15 -0
  90. package/src/theme/components/home/cta.tsx +10 -2
  91. package/src/theme/components/home/feature-card.css +1 -1
  92. package/src/theme/components/home/feature-card.tsx +8 -10
  93. package/src/theme/components/home/feature.tsx +54 -31
  94. package/src/theme/components/home/hero-demo.css +38 -0
  95. package/src/theme/components/home/home-visual.tsx +226 -0
  96. package/src/theme/components/home/layout.tsx +410 -108
  97. package/src/theme/components/home/split.css +46 -19
  98. package/src/theme/components/home/split.tsx +28 -8
  99. package/src/theme/components/home/tabs.css +299 -0
  100. package/src/theme/components/home/tabs.tsx +351 -0
  101. package/src/theme/components/home/trust-strip.css +41 -0
  102. package/src/theme/components/home/trust-strip.tsx +168 -11
  103. package/src/theme/components/home/workspaces.tsx +176 -38
  104. package/src/theme/components/nav/branch-tag.tsx +7 -7
  105. package/src/theme/components/nav/ciderpress-docs-bar.css +13 -1
  106. package/src/theme/components/nav/ciderpress-docs-bar.tsx +33 -2
  107. package/src/theme/components/nav/ciderpress-header.css +2 -1
  108. package/src/theme/components/nav/ciderpress-header.tsx +26 -3
  109. package/src/theme/components/nav/ciderpress-nav-hamburger.css +50 -0
  110. package/src/theme/components/nav/ciderpress-nav-hamburger.tsx +95 -9
  111. package/src/theme/components/nav/ciderpress-nav-menu.css +88 -0
  112. package/src/theme/components/nav/ciderpress-nav-menu.tsx +397 -38
  113. package/src/theme/components/nav/ciderpress-nav-social-links.tsx +27 -22
  114. package/src/theme/components/nav/floating-branch-indicator.tsx +7 -7
  115. package/src/theme/components/nav/header-icon.css +24 -0
  116. package/src/theme/components/nav/header-icon.tsx +119 -0
  117. package/src/theme/components/nav/header-logo.css +16 -0
  118. package/src/theme/components/nav/header-logo.tsx +200 -0
  119. package/src/theme/components/nav/layout.tsx +117 -16
  120. package/src/theme/components/nav/nav-logo.tsx +16 -19
  121. package/src/theme/components/openapi/index.ts +0 -2
  122. package/src/theme/components/openapi/openapi.css +0 -14
  123. package/src/theme/components/shared/card-icon.tsx +37 -0
  124. package/src/theme/components/shared/ciderpress-logo.tsx +5 -1
  125. package/src/theme/components/shared/icon.tsx +120 -35
  126. package/src/theme/components/shared/resolve-card-icon.ts +53 -12
  127. package/src/theme/components/shared/section-card.tsx +37 -6
  128. package/src/theme/components/sidebar/sidebar-badge.css +50 -0
  129. package/src/theme/components/sidebar/sidebar-badge.tsx +153 -0
  130. package/src/theme/components/sidebar/sidebar-links.tsx +6 -2
  131. package/src/theme/components/sidebar/sidebar-scope.tsx +24 -1
  132. package/src/theme/components/theme-provider.tsx +27 -11
  133. package/src/theme/components/workspaces/card.css +4 -0
  134. package/src/theme/components/workspaces/card.tsx +10 -12
  135. package/src/theme/components/workspaces/grid.tsx +18 -6
  136. package/src/theme/hooks/use-ciderpress.ts +65 -5
  137. package/src/theme/hooks/use-nav-items.ts +82 -11
  138. package/src/theme/index.tsx +10 -3
  139. package/src/theme/lib/read-social-links.ts +4 -3
  140. package/src/theme/lib/rich-text-parse.ts +740 -0
  141. package/src/theme/lib/rich-text.test.tsx +342 -0
  142. package/src/theme/lib/rich-text.tsx +86 -0
  143. package/src/theme/lib/theme-favicon.ts +1 -1
  144. package/src/theme/lib/with-mount-base.ts +31 -0
  145. package/src/theme/styles/overrides/fonts.css +7 -4
  146. package/src/theme/styles/overrides/footnotes.css +54 -0
  147. package/src/theme/styles/overrides/home.css +11 -2
  148. package/src/theme/styles/overrides/lists.css +83 -0
  149. package/src/theme/styles/overrides/rail.css +27 -10
  150. package/src/theme/styles/overrides/rspress.css +10 -5
  151. package/src/theme/styles/overrides/section-card.css +9 -0
  152. package/src/theme/styles/overrides/sidebar.css +22 -0
  153. package/src/theme/styles/overrides/tokens.css +41 -23
  154. package/src/theme/styles/rich-text.css +106 -0
  155. package/src/theme/styles/themes/amber.css +32 -2
  156. package/src/theme/styles/themes/arcade.css +16 -1
  157. package/src/theme/styles/themes/grannysmith.css +32 -2
  158. package/src/theme/styles/themes/honeycrisp.css +37 -7
  159. package/src/theme/styles/themes/midnight.css +16 -1
  160. package/src/theme/styles/themes/mulled.css +54 -9
  161. package/dist/theme/components/openapi/copy-markdown-button.tsx +0 -41
  162. package/src/theme/components/openapi/copy-markdown-button.tsx +0 -41
@@ -7,7 +7,7 @@
7
7
  --cp-c-brand-fg: #ffffff;
8
8
  --cp-c-brand-soft: rgba(153, 27, 27, 0.14);
9
9
  --cp-c-on-brand: #ffffff;
10
- --cp-c-brand-light: #dc2626;
10
+ --cp-c-brand-light: #ef4444;
11
11
  --cp-c-brand-lighter: #f87171;
12
12
  --cp-c-success: #16a34a;
13
13
  --cp-c-error: #dc2626;
@@ -130,8 +130,11 @@
130
130
  --cp-radius-lg: 10px;
131
131
  --cp-radius-md-lg: 12px;
132
132
  --cp-radius-pill: 9999px;
133
- --cp-ff-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
133
+ --cp-ff-sans:
134
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
135
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
134
136
  --cp-ff-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
137
+ --cp-ff-display: 'Geist Pixel Square', ui-sans-serif, system-ui, sans-serif;
135
138
  --cp-fw-regular: 400;
136
139
  --cp-fw-medium: 500;
137
140
  --cp-fw-semibold: 600;
@@ -251,7 +254,7 @@
251
254
  --rp-c-bg-mute: #0a0a0a;
252
255
  --rp-c-bg-soft: #1c1c1c;
253
256
  --rp-c-brand: #991b1b;
254
- --rp-c-brand-light: #dc2626;
257
+ --rp-c-brand-light: #ef4444;
255
258
  --rp-c-brand-lighter: #f87171;
256
259
  --rp-c-brand-dark: #7f1d1d;
257
260
  --rp-c-brand-darker: #450a0a;
@@ -270,6 +273,18 @@
270
273
  --rp-home-feature-bg: #1c1c1c;
271
274
  --rp-home-hero-secondary-color: rgba(245, 245, 245, 0.72);
272
275
  --rp-home-hero-title-color: #f5f5f5;
276
+ --rp-font-family-base:
277
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
278
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
279
+ --rp-font-family-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
280
+ --cp-font-family-base:
281
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
282
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
283
+ --cp-font-family-sans:
284
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
285
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
286
+ --cp-font-family-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
287
+ --cp-font-family-pixel: 'Geist Pixel Square', ui-sans-serif, system-ui, sans-serif;
273
288
  }
274
289
 
275
290
  html[data-cp-theme='mulled'][data-cp-variant='dark'] {
@@ -279,7 +294,7 @@ html[data-cp-theme='mulled'][data-cp-variant='dark'] {
279
294
  --cp-c-brand-fg: #ffffff;
280
295
  --cp-c-brand-soft: rgba(153, 27, 27, 0.14);
281
296
  --cp-c-on-brand: #ffffff;
282
- --cp-c-brand-light: #dc2626;
297
+ --cp-c-brand-light: #ef4444;
283
298
  --cp-c-brand-lighter: #f87171;
284
299
  --cp-c-success: #16a34a;
285
300
  --cp-c-error: #dc2626;
@@ -402,8 +417,11 @@ html[data-cp-theme='mulled'][data-cp-variant='dark'] {
402
417
  --cp-radius-lg: 10px;
403
418
  --cp-radius-md-lg: 12px;
404
419
  --cp-radius-pill: 9999px;
405
- --cp-ff-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
420
+ --cp-ff-sans:
421
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
422
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
406
423
  --cp-ff-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
424
+ --cp-ff-display: 'Geist Pixel Square', ui-sans-serif, system-ui, sans-serif;
407
425
  --cp-fw-regular: 400;
408
426
  --cp-fw-medium: 500;
409
427
  --cp-fw-semibold: 600;
@@ -523,7 +541,7 @@ html[data-cp-theme='mulled'][data-cp-variant='dark'] {
523
541
  --rp-c-bg-mute: #0a0a0a;
524
542
  --rp-c-bg-soft: #1c1c1c;
525
543
  --rp-c-brand: #991b1b;
526
- --rp-c-brand-light: #dc2626;
544
+ --rp-c-brand-light: #ef4444;
527
545
  --rp-c-brand-lighter: #f87171;
528
546
  --rp-c-brand-dark: #7f1d1d;
529
547
  --rp-c-brand-darker: #450a0a;
@@ -542,6 +560,18 @@ html[data-cp-theme='mulled'][data-cp-variant='dark'] {
542
560
  --rp-home-feature-bg: #1c1c1c;
543
561
  --rp-home-hero-secondary-color: rgba(245, 245, 245, 0.72);
544
562
  --rp-home-hero-title-color: #f5f5f5;
563
+ --rp-font-family-base:
564
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
565
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
566
+ --rp-font-family-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
567
+ --cp-font-family-base:
568
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
569
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
570
+ --cp-font-family-sans:
571
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
572
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
573
+ --cp-font-family-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
574
+ --cp-font-family-pixel: 'Geist Pixel Square', ui-sans-serif, system-ui, sans-serif;
545
575
  }
546
576
 
547
577
  html[data-cp-theme='mulled'][data-cp-variant='light'] {
@@ -551,7 +581,7 @@ html[data-cp-theme='mulled'][data-cp-variant='light'] {
551
581
  --cp-c-brand-fg: #ffffff;
552
582
  --cp-c-brand-soft: rgba(153, 27, 27, 0.14);
553
583
  --cp-c-on-brand: #ffffff;
554
- --cp-c-brand-light: #dc2626;
584
+ --cp-c-brand-light: #ef4444;
555
585
  --cp-c-brand-lighter: #f87171;
556
586
  --cp-c-success: #16a34a;
557
587
  --cp-c-error: #dc2626;
@@ -674,8 +704,11 @@ html[data-cp-theme='mulled'][data-cp-variant='light'] {
674
704
  --cp-radius-lg: 10px;
675
705
  --cp-radius-md-lg: 12px;
676
706
  --cp-radius-pill: 9999px;
677
- --cp-ff-sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
707
+ --cp-ff-sans:
708
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
709
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
678
710
  --cp-ff-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
711
+ --cp-ff-display: 'Geist Pixel Square', ui-sans-serif, system-ui, sans-serif;
679
712
  --cp-fw-regular: 400;
680
713
  --cp-fw-medium: 500;
681
714
  --cp-fw-semibold: 600;
@@ -795,7 +828,7 @@ html[data-cp-theme='mulled'][data-cp-variant='light'] {
795
828
  --rp-c-bg-mute: #fbf6f4;
796
829
  --rp-c-bg-soft: #ead9d4;
797
830
  --rp-c-brand: #991b1b;
798
- --rp-c-brand-light: #dc2626;
831
+ --rp-c-brand-light: #ef4444;
799
832
  --rp-c-brand-lighter: #f87171;
800
833
  --rp-c-brand-dark: #7f1d1d;
801
834
  --rp-c-brand-darker: #450a0a;
@@ -814,4 +847,16 @@ html[data-cp-theme='mulled'][data-cp-variant='light'] {
814
847
  --rp-home-feature-bg: #ead9d4;
815
848
  --rp-home-hero-secondary-color: rgba(42, 6, 6, 0.72);
816
849
  --rp-home-hero-title-color: #2a0606;
850
+ --rp-font-family-base:
851
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
852
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
853
+ --rp-font-family-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
854
+ --cp-font-family-base:
855
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
856
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
857
+ --cp-font-family-sans:
858
+ 'Inter var experimental', 'Inter var', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
859
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
860
+ --cp-font-family-mono: 'Geist Mono', ui-monospace, 'SFMono-Regular', monospace;
861
+ --cp-font-family-pixel: 'Geist Pixel Square', ui-sans-serif, system-ui, sans-serif;
817
862
  }
@@ -1,41 +0,0 @@
1
- import { LlmsCopyButton } from '@rspress/core/theme'
2
- import type React from 'react'
3
- import { useCallback } from 'react'
4
-
5
- export interface CopyMarkdownButtonProps {
6
- /**
7
- * Markdown content to copy to the clipboard.
8
- */
9
- readonly markdown: string
10
- }
11
-
12
- /**
13
- * Copy Markdown button that overrides Rspress's default copy behavior.
14
- *
15
- * Uses the native Clipboard API to copy pre-generated markdown content
16
- * instead of the raw MDX source.
17
- *
18
- * @param props - Props with the markdown string to copy to the clipboard
19
- * @returns React element with the copy button
20
- */
21
- export function CopyMarkdownButton({
22
- markdown,
23
- }: CopyMarkdownButtonProps): React.ReactElement | null {
24
- if (import.meta.env.SSG_MD) {
25
- return null
26
- }
27
-
28
- const handleClick = useCallback(
29
- (event: React.MouseEvent<HTMLButtonElement>) => {
30
- event.preventDefault()
31
- return navigator.clipboard.writeText(markdown).catch(() => null)
32
- },
33
- [markdown]
34
- )
35
-
36
- return (
37
- <div className="cp-oas-copy-markdown">
38
- <LlmsCopyButton text="Copy Markdown" onClick={handleClick} />
39
- </div>
40
- )
41
- }
@@ -1,41 +0,0 @@
1
- import { LlmsCopyButton } from '@rspress/core/theme'
2
- import type React from 'react'
3
- import { useCallback } from 'react'
4
-
5
- export interface CopyMarkdownButtonProps {
6
- /**
7
- * Markdown content to copy to the clipboard.
8
- */
9
- readonly markdown: string
10
- }
11
-
12
- /**
13
- * Copy Markdown button that overrides Rspress's default copy behavior.
14
- *
15
- * Uses the native Clipboard API to copy pre-generated markdown content
16
- * instead of the raw MDX source.
17
- *
18
- * @param props - Props with the markdown string to copy to the clipboard
19
- * @returns React element with the copy button
20
- */
21
- export function CopyMarkdownButton({
22
- markdown,
23
- }: CopyMarkdownButtonProps): React.ReactElement | null {
24
- if (import.meta.env.SSG_MD) {
25
- return null
26
- }
27
-
28
- const handleClick = useCallback(
29
- (event: React.MouseEvent<HTMLButtonElement>) => {
30
- event.preventDefault()
31
- return navigator.clipboard.writeText(markdown).catch(() => null)
32
- },
33
- [markdown]
34
- )
35
-
36
- return (
37
- <div className="cp-oas-copy-markdown">
38
- <LlmsCopyButton text="Copy Markdown" onClick={handleClick} />
39
- </div>
40
- )
41
- }