boltdocs 2.7.9 → 2.7.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 (174) hide show
  1. package/dist/{cache-DorPMFgW.cjs → cache-Ba-DZQNH.cjs} +1 -1
  2. package/dist/{cache-CQKlT4fI.mjs → cache-BuMZ58L5.mjs} +1 -1
  3. package/dist/chunk-CU-zTemE.cjs +6 -0
  4. package/dist/client/index.cjs +1929 -1
  5. package/dist/client/index.js +1880 -1
  6. package/dist/client/mdx.cjs +7 -1
  7. package/dist/client/mdx.js +7 -1
  8. package/dist/client/primitives.cjs +60 -1
  9. package/dist/client/primitives.js +20 -1
  10. package/dist/docs-layout-BXHV0xw_.cjs +1431 -0
  11. package/dist/docs-layout-DwFndmj5.js +1231 -0
  12. package/dist/doctor-Be7Ly1oM.mjs +21 -0
  13. package/dist/{doctor-D4_Y7M4p.cjs → doctor-CrytFkqW.cjs} +1 -1
  14. package/dist/doctor-jMxWZyLJ.cjs +21 -0
  15. package/dist/generator-CHqxiQhF.cjs +21 -0
  16. package/dist/generator-ClVanhvi.mjs +21 -0
  17. package/dist/icons-dev-3cZMyt8r.cjs +1204 -0
  18. package/dist/icons-dev-Df8OQ481.js +839 -0
  19. package/dist/image-DtrI2cw3.cjs +268 -0
  20. package/dist/image-jxPb-2iV.js +214 -0
  21. package/dist/mdx-BdWkJTeB.cjs +523 -0
  22. package/dist/mdx-UTTLFWJq.js +494 -0
  23. package/dist/meta-loader-CWg2gnbY.mjs +6 -0
  24. package/dist/meta-loader-Cv9O0Pzl.cjs +6 -0
  25. package/dist/node/cli-entry.cjs +1 -1
  26. package/dist/node/cli-entry.mjs +1 -1
  27. package/dist/node/index.cjs +1 -1
  28. package/dist/node/index.mjs +1 -1
  29. package/dist/node/routes/worker.cjs +1 -1
  30. package/dist/node/routes/worker.mjs +1 -1
  31. package/dist/node-BSM4qcDK.cjs +111 -0
  32. package/dist/node-BspZN3R2.mjs +111 -0
  33. package/dist/{package-VfQM94VL.cjs → package-DIIrjuWI.cjs} +1 -1
  34. package/dist/{package-B4MD00N3.mjs → package-K0zsjGIz.mjs} +1 -1
  35. package/dist/{parser-Bh11BsdA.cjs → parser-Aq8LoH-0.cjs} +1 -1
  36. package/dist/{parser-DYRzXWmA.cjs → parser-CdNbqN5y.cjs} +1 -1
  37. package/dist/parser-nE792MLO.mjs +6 -0
  38. package/dist/rolldown-runtime-fkIsjY3S.mjs +6 -0
  39. package/dist/{routes-Co1mRM58.cjs → routes-2k3tbUmC.cjs} +1 -1
  40. package/dist/routes-CpxZIsMM.mjs +6 -0
  41. package/dist/{routes-CHf76Ye4.cjs → routes-DP1vmWRj.cjs} +1 -1
  42. package/dist/search-dialog-BHuIiUC6.js +8 -0
  43. package/dist/search-dialog-BNF10tDl.js +375 -0
  44. package/dist/search-dialog-BwkDuI9R.cjs +220 -0
  45. package/dist/search-dialog-C7xuvyNk.cjs +386 -0
  46. package/dist/search-dialog-CIQg6k8c.cjs +8 -0
  47. package/dist/search-dialog-D-DDN7zJ.js +208 -0
  48. package/dist/utils-CG65J0Sc.mjs +7 -0
  49. package/dist/utils-CKunkU96.cjs +7 -0
  50. package/dist/{worker-pool-BwU8ckrg.cjs → worker-pool-Crbqgw5R.cjs} +1 -1
  51. package/package.json +5 -5
  52. package/dist/chunk-Ds5LZdWN.cjs +0 -6
  53. package/dist/docs-layout-KoWNZc8_.js +0 -6
  54. package/dist/docs-layout-x2yKt2cL.cjs +0 -6
  55. package/dist/doctor-BD1BSB03.mjs +0 -23
  56. package/dist/doctor-BHc9ua6r.cjs +0 -23
  57. package/dist/generator-DGW6pkCC.cjs +0 -22
  58. package/dist/generator-Dv3wEmhZ.mjs +0 -22
  59. package/dist/icons-dev-B_RZIyxu.js +0 -6
  60. package/dist/icons-dev-BlV3wWFT.cjs +0 -6
  61. package/dist/image-BHhTvQzr.cjs +0 -6
  62. package/dist/image-CqKzYD8f.js +0 -6
  63. package/dist/mdx-DudBEac0.js +0 -7
  64. package/dist/mdx-r4cDQxWu.cjs +0 -7
  65. package/dist/meta-loader-0gJ4PtBC.cjs +0 -6
  66. package/dist/meta-loader-9IpAHWDS.mjs +0 -6
  67. package/dist/node-DBaH7kat.mjs +0 -111
  68. package/dist/node-t5C3Q85p.cjs +0 -111
  69. package/dist/parser-9cVdK7w9.mjs +0 -6
  70. package/dist/routes-DwrMa5-z.mjs +0 -6
  71. package/dist/search-dialog-B584t9ZF.js +0 -6
  72. package/dist/search-dialog-BvBopRsZ.cjs +0 -6
  73. package/dist/search-dialog-ByvGScjt.js +0 -6
  74. package/dist/search-dialog-Cyko6TJm.cjs +0 -6
  75. package/dist/search-dialog-D6BNohIJ.js +0 -6
  76. package/dist/search-dialog-DuYTIefy.cjs +0 -6
  77. package/dist/utils-BxNAXhZZ.mjs +0 -7
  78. package/dist/utils-Clzu7jvb.cjs +0 -7
  79. package/src/client/app/config-context.tsx +0 -51
  80. package/src/client/app/doc-page.tsx +0 -38
  81. package/src/client/app/docs-layout.tsx +0 -28
  82. package/src/client/app/head.tsx +0 -122
  83. package/src/client/app/helmet-compat.tsx +0 -36
  84. package/src/client/app/mdx-component.tsx +0 -8
  85. package/src/client/app/mdx-components-context.tsx +0 -72
  86. package/src/client/app/routes-context.tsx +0 -34
  87. package/src/client/app/scroll-handler.tsx +0 -74
  88. package/src/client/app/theme-context.tsx +0 -103
  89. package/src/client/app/ui-context.tsx +0 -42
  90. package/src/client/components/docs-layout-default.tsx +0 -85
  91. package/src/client/components/icons-dev.tsx +0 -282
  92. package/src/client/components/mdx/callout.tsx +0 -97
  93. package/src/client/components/mdx/card.tsx +0 -99
  94. package/src/client/components/mdx/cards.tsx +0 -27
  95. package/src/client/components/mdx/code-block.tsx +0 -184
  96. package/src/client/components/mdx/field.tsx +0 -33
  97. package/src/client/components/mdx/image.tsx +0 -44
  98. package/src/client/components/mdx/index.ts +0 -19
  99. package/src/client/components/mdx/table.tsx +0 -54
  100. package/src/client/components/mdx/typographics.tsx +0 -120
  101. package/src/client/components/mdx/use-code-block.ts +0 -34
  102. package/src/client/components/primitives/breadcrumbs.tsx +0 -54
  103. package/src/client/components/primitives/button-group.tsx +0 -54
  104. package/src/client/components/primitives/button.tsx +0 -6
  105. package/src/client/components/primitives/code-block.tsx +0 -120
  106. package/src/client/components/primitives/docs-layout.tsx +0 -125
  107. package/src/client/components/primitives/error-boundary.tsx +0 -107
  108. package/src/client/components/primitives/heading.tsx +0 -128
  109. package/src/client/components/primitives/helpers/observer.ts +0 -141
  110. package/src/client/components/primitives/image.tsx +0 -26
  111. package/src/client/components/primitives/link.tsx +0 -102
  112. package/src/client/components/primitives/menu.tsx +0 -137
  113. package/src/client/components/primitives/navbar.tsx +0 -466
  114. package/src/client/components/primitives/on-this-page.tsx +0 -430
  115. package/src/client/components/primitives/page-nav.tsx +0 -51
  116. package/src/client/components/primitives/popover.tsx +0 -28
  117. package/src/client/components/primitives/search-dialog.tsx +0 -193
  118. package/src/client/components/primitives/sidebar.tsx +0 -423
  119. package/src/client/components/primitives/skeleton.tsx +0 -26
  120. package/src/client/components/primitives/tabs.tsx +0 -70
  121. package/src/client/components/primitives/tooltip.tsx +0 -81
  122. package/src/client/components/primitives/types.ts +0 -11
  123. package/src/client/components/ui-base/banner.tsx +0 -66
  124. package/src/client/components/ui-base/breadcrumbs.tsx +0 -44
  125. package/src/client/components/ui-base/copy-markdown.tsx +0 -107
  126. package/src/client/components/ui-base/error-boundary.tsx +0 -15
  127. package/src/client/components/ui-base/github-stars.tsx +0 -29
  128. package/src/client/components/ui-base/icons.tsx +0 -240
  129. package/src/client/components/ui-base/index.ts +0 -16
  130. package/src/client/components/ui-base/last-updated.tsx +0 -27
  131. package/src/client/components/ui-base/navbar.tsx +0 -266
  132. package/src/client/components/ui-base/not-found.tsx +0 -26
  133. package/src/client/components/ui-base/on-this-page.tsx +0 -57
  134. package/src/client/components/ui-base/page-nav.tsx +0 -50
  135. package/src/client/components/ui-base/search-dialog.tsx +0 -163
  136. package/src/client/components/ui-base/search-highlight.tsx +0 -10
  137. package/src/client/components/ui-base/sidebar.tsx +0 -92
  138. package/src/client/components/ui-base/tabs.tsx +0 -83
  139. package/src/client/components/ui-base/theme-toggle.tsx +0 -130
  140. package/src/client/components/ui-base/version-i18n.tsx +0 -80
  141. package/src/client/hooks/index.ts +0 -13
  142. package/src/client/hooks/use-analytics.ts +0 -272
  143. package/src/client/hooks/use-breadcrumbs.ts +0 -22
  144. package/src/client/hooks/use-i18n.ts +0 -182
  145. package/src/client/hooks/use-localized-to.ts +0 -113
  146. package/src/client/hooks/use-location.ts +0 -5
  147. package/src/client/hooks/use-navbar.ts +0 -130
  148. package/src/client/hooks/use-page-nav.ts +0 -46
  149. package/src/client/hooks/use-routes.ts +0 -108
  150. package/src/client/hooks/use-search-highlight.ts +0 -185
  151. package/src/client/hooks/use-search.ts +0 -118
  152. package/src/client/hooks/use-sidebar.ts +0 -205
  153. package/src/client/hooks/use-tabs.ts +0 -46
  154. package/src/client/hooks/use-version.ts +0 -111
  155. package/src/client/index.ts +0 -31
  156. package/src/client/mdx.ts +0 -2
  157. package/src/client/primitives.ts +0 -19
  158. package/src/client/ssg/boltdocs-shell.tsx +0 -148
  159. package/src/client/ssg/create-routes.tsx +0 -473
  160. package/src/client/ssg/index.ts +0 -4
  161. package/src/client/ssg/mdx-page.tsx +0 -38
  162. package/src/client/store/boltdocs-context.tsx +0 -137
  163. package/src/client/theme/neutral.css +0 -141
  164. package/src/client/theme/reset.css +0 -189
  165. package/src/client/types.ts +0 -116
  166. package/src/client/utils/cn.ts +0 -6
  167. package/src/client/utils/copy-clipboard.ts +0 -22
  168. package/src/client/utils/get-base-file-path.ts +0 -21
  169. package/src/client/utils/github.ts +0 -121
  170. package/src/client/utils/i18n.ts +0 -23
  171. package/src/client/utils/path.ts +0 -9
  172. package/src/client/utils/react-to-text.ts +0 -34
  173. package/src/client/virtual.d.ts +0 -24
  174. /package/dist/{worker-pool-Bd8Y9KDv.mjs → worker-pool-CGn7DrLb.mjs} +0 -0
@@ -1,85 +0,0 @@
1
- import { DocsLayout as DocsLayoutPrimitive } from './primitives/docs-layout'
2
- import { Navbar } from './ui-base/navbar'
3
- import { Sidebar } from './ui-base/sidebar'
4
- import { OnThisPage } from './ui-base/on-this-page'
5
- import { Breadcrumbs } from './ui-base/breadcrumbs'
6
- import { PageNav } from './ui-base/page-nav'
7
- import { ErrorBoundary } from './ui-base/error-boundary'
8
- import { CopyMarkdown } from './ui-base/copy-markdown'
9
- import { useRoutes } from '../hooks/use-routes'
10
- import { useConfig } from '../app/config-context'
11
-
12
- interface DocsLayoutThemeProps {
13
- children?: React.ReactNode
14
- }
15
-
16
- /**
17
- * Pre-assembled high-fidelity documentation layout component.
18
- * Fully styled and optimized to adapt seamlessly to our custom Parchment/Slate theme.
19
- */
20
- function DocsLayoutComponent({ children }: DocsLayoutThemeProps) {
21
- const { routes: filteredRoutes, currentRoute } = useRoutes()
22
- const config = useConfig()
23
-
24
- return (
25
- <DocsLayoutPrimitive className="selection:bg-primary-500/10 selection:text-primary-500">
26
- <Navbar />
27
- <DocsLayoutPrimitive.Body className="bg-main">
28
- <Sidebar routes={filteredRoutes || []} config={config} />
29
- <DocsLayoutPrimitive.Content className="animate-in fade-in duration-500 scroll-smooth">
30
- <DocsLayoutPrimitive.ContentMdx className="max-w-3xl sm:max-w-4xl lg:max-w-4xl px-2 pt-8 pb-24">
31
- <DocsLayoutPrimitive.Header>
32
- <div className="mb-4 border-b border-subtle pb-4 flex flex-wrap items-center justify-between gap-3">
33
- <Breadcrumbs />
34
- <CopyMarkdown
35
- mdxRaw={currentRoute?._rawContent}
36
- route={currentRoute}
37
- />
38
- </div>
39
-
40
- {/* Inject Main Page Heading automatically */}
41
- {currentRoute?.title && (
42
- <h1 className="text-4xl font-bold tracking-tight text-default mb-3">
43
- {currentRoute.title}
44
- </h1>
45
- )}
46
- {currentRoute?.description && (
47
- <p className="text-lg text-muted-foreground mb-6 leading-relaxed">
48
- {currentRoute.description}
49
- </p>
50
- )}
51
- </DocsLayoutPrimitive.Header>
52
-
53
- <ErrorBoundary>
54
- <div className="prose prose-neutral dark:prose-invert max-w-none">
55
- {children}
56
- </div>
57
- </ErrorBoundary>
58
-
59
- <DocsLayoutPrimitive.Footer>
60
- <PageNav />
61
- </DocsLayoutPrimitive.Footer>
62
- </DocsLayoutPrimitive.ContentMdx>
63
- </DocsLayoutPrimitive.Content>
64
- <OnThisPage
65
- headings={currentRoute?.headings}
66
- editLink={config.theme?.editLink}
67
- communityHelp={config.theme?.communityHelp}
68
- filePath={currentRoute?.filePath}
69
- />
70
- </DocsLayoutPrimitive.Body>
71
- </DocsLayoutPrimitive>
72
- )
73
- }
74
-
75
- // Expose the primitive sub-components directly on the Default DocsLayout
76
- // to maintain complete backward-compatibility for custom theme assemblies.
77
- export const DocsLayout = Object.assign(DocsLayoutComponent, {
78
- Body: DocsLayoutPrimitive.Body,
79
- Content: DocsLayoutPrimitive.Content,
80
- ContentMdx: DocsLayoutPrimitive.ContentMdx,
81
- Header: DocsLayoutPrimitive.Header,
82
- Footer: DocsLayoutPrimitive.Footer,
83
- }) as any
84
-
85
- export default DocsLayout
@@ -1,282 +0,0 @@
1
- type WrapperProps = React.SVGProps<SVGSVGElement> & {
2
- size?: number
3
- }
4
-
5
- function wrapperProps(props: WrapperProps) {
6
- const { size = 20, ...rest } = props
7
- return {
8
- ...rest,
9
- width: size,
10
- height: size,
11
- }
12
- }
13
-
14
- export const Github = (props: WrapperProps) => (
15
- <svg
16
- xmlns="http://www.w3.org/2000/svg"
17
- viewBox="0 0 24 24"
18
- fill="currentColor"
19
- {...wrapperProps(props)}
20
- >
21
- <title>{'GitHub'}</title>
22
- <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" />
23
- </svg>
24
- )
25
-
26
- export const Csv = (props: WrapperProps) => (
27
- <svg
28
- xmlns="http://www.w3.org/2000/svg"
29
- fill="none"
30
- viewBox="0 0 24 24"
31
- {...wrapperProps(props)}
32
- >
33
- <title>{'CSV'}</title>
34
- <mask
35
- id="a"
36
- maskUnits="userSpaceOnUse"
37
- x="3"
38
- y="3"
39
- width="18"
40
- height="18"
41
- fill="#000"
42
- >
43
- <path fill="#fff" d="M3 3h18v18H3z" />
44
- <path
45
- fillRule="evenodd"
46
- clipRule="evenodd"
47
- d="M15.8889 5H8.11111C6.39289 5 5 6.39289 5 8.11111v7.77779C5 17.6071 6.39289 19 8.11111 19h7.77779C17.6071 19 19 17.6071 19 15.8889V8.11111C19 6.39289 17.6071 5 15.8889 5Zm0 12.4444H8.1111c-.05369 0-.10674-.0027-.15904-.008.0523.0053.10536.008.15905.008h7.77779Zm1.5555-1.5555c0 .8054-.6121 1.4679-1.3965 1.5475.7844-.0797 1.3965-.7421 1.3965-1.5475V8.11111v7.77779Z"
48
- />
49
- </mask>
50
- <path
51
- d="M15.8889 19.4444c1.1046 0 2-.8954 2-2 0-1.1045-.8954-2-2-2v4Zm-7.7778-2 .00001-2H8.1111v2Zm-.15904-.008.20206-1.9898c-1.09891-.1115-2.08022.6888-2.19182 1.7877-.1116 1.099.68877 2.0803 1.78768 2.1919l.20208-1.9898Zm8.09584 0-.2021-1.9897c-1.0989.1116-1.8992 1.0929-1.7876 2.1918.1116 1.0989 1.0929 1.8993 2.1918 1.7877l-.2021-1.9898Zm3.3965-9.32529c0-1.10457-.8954-2-2-2-1.1045 0-2 .89543-2 2h4ZM8.11111 7h7.77779V3H8.11111v4ZM7 8.11111C7 7.49746 7.49746 7 8.11111 7V3C5.28832 3 3 5.28832 3 8.11111h4Zm0 7.77779V8.11111H3v7.77779h4ZM8.11111 17C7.49746 17 7 16.5025 7 15.8889H3C3 18.7117 5.28832 21 8.11111 21v-4Zm7.77779 0H8.11111v4h7.77779v-4ZM17 15.8889C17 16.5025 16.5025 17 15.8889 17v4C18.7117 21 21 18.7117 21 15.8889h-4Zm0-7.77779v7.77779h4V8.11111h-4ZM15.8889 7C16.5025 7 17 7.49746 17 8.11111h4C21 5.28832 18.7117 3 15.8889 3v4Zm0 8.4444H8.11111l-.00001 4h7.7778v-4Zm-7.7778 0c.01378 0 .02816.0007.04302.0022l-.40411 3.9796c.11944.0121.23994.0182.36109.0182v-4Zm-.36112 3.9818c.11935.0121.23985.0182.36113.0182v-4c.01389 0 .02828.0008.04304.0022l-.40417 3.9796Zm.36113.0182h7.77779v-4H8.11111v4Zm8.13889-.0182c1.7951-.1823 3.1944-1.6951 3.1944-3.5373h-4c0-.2314.1752-.4193.4015-.4423l.4041 3.9796Zm-.8056-3.5373c0-.2314.1752-.4193.4014-.4422l.4042 3.9795c1.795-.1823 3.1944-1.6951 3.1944-3.5373h-4Zm0-7.77779v7.77779h4V8.11111h-4Zm4 0c0-.07155-.0038-.14596-.0124-.22267-.0086-.07678-.0218-.15478-.0403-.23343-.0184-.07869-.0416-.15651-.0697-.233-.0281-.07648-.0604-.15005-.0963-.22045-.036-.07036-.0749-.13629-.1158-.1978-.0408-.06145-.0832-.11775-.1258-.16912-.085-.10251-.1704-.18478-.2468-.2495-.0383-.03245-.0749-.061-.1089-.08594-.034-.02494-.0659-.04672-.0949-.06556-.029-.01883-.0558-.03518-.0797-.04914-.0239-.01396-.0456-.02598-.0644-.03606-.0188-.01008-.0355-.01864-.0493-.02558-.0139-.00694-.0257-.01268-.0348-.01701-.009-.00429-.0163-.00769-.0207-.00971-.0022-.00104-.004-.00187-.0051-.00238-.0006-.00025-.001-.00046-.0013-.00059-.0002-.00006-.0003-.00011-.0003-.00014-.0001-.00001-.0001-.00003-.0001-.00004v-.00001c-.0006-.00027.0028.00131.0068.00316.0044.00202.0117.00541.0207.00971.0091.00433.0209.01007.0348.01701.0138.00694.0305.0155.0493.02558.0188.01008.0405.0221.0644.03606.0239.01396.0507.03031.0797.04914.029.01883.0609.04062.0949.06556.0339.02494.0706.05349.1089.08594.0764.06472.1618.14698.2468.24949.0426.05138.085.10768.1258.16913.0409.06151.0798.12744.1157.19779.036.07041.0683.14397.0964.22046.028.07648.0513.15431.0697.23299.0185.07865.0317.15665.0403.23344.0086.07671.0124.15112.0124.22267h-4c0 .07154.0039.14595.0125.22267.0086.07678.0218.15478.0402.23343.0185.07868.0417.15651.0698.233.0281.07648.0604.15005.0963.22045.036.07036.0749.13629.1158.1978.0408.06144.0832.11775.1258.16912.0849.10251.1704.18478.2468.2495.0383.03244.0749.061.1089.08594.0339.02493.0658.04672.0949.06556.029.01883.0558.03517.0797.04914.0239.01396.0456.02598.0644.03606.0188.01007.0354.01864.0493.02558.0139.00693.0257.01268.0348.01701.009.00429.0163.00769.0207.00971.0022.00104.004.00187.0051.00237.0006.00026.001.00047.0013.00059.0001.00007.0003.00012.0003.00015.0001.00001.0001.00003.0001.00004v.00001c.0006.00026-.0028-.00131-.0068-.00316-.0044-.00202-.0117-.00542-.0207-.00971-.0091-.00433-.0209-.01008-.0348-.01701-.0139-.00694-.0305-.01551-.0493-.02558-.0188-.01008-.0405-.0221-.0644-.03606-.0239-.01396-.0507-.03031-.0797-.04914-.029-.01884-.061-.04062-.0949-.06556-.034-.02494-.0706-.0535-.1089-.08594-.0764-.06472-.1619-.14699-.2468-.2495-.0426-.05137-.085-.10767-.1258-.16912-.0409-.06151-.0798-.12744-.1158-.1978-.0359-.0704-.0682-.14397-.0963-.22045-.0281-.07649-.0513-.15431-.0698-.233-.0184-.07865-.0316-.15665-.0402-.23343-.0086-.07671-.0125-.15112-.0125-.22267h4Zm0 7.77779V8.11111h-4v7.77779h4Z"
52
- fill="#14B8A6"
53
- mask="url(#a)"
54
- />
55
- <rect x="7" y="7" width="4" height="2" rx="1" fill="#14B8A6" />
56
- <rect x="7" y="11" width="4" height="2" rx="1" fill="#14B8A6" />
57
- <rect x="7" y="15" width="4" height="2" rx="1" fill="#14B8A6" />
58
- <rect x="13" y="7" width="4" height="2" rx="1" fill="#14B8A6" />
59
- <rect x="13" y="11" width="4" height="2" rx="1" fill="#14B8A6" />
60
- <rect x="13" y="15" width="4" height="2" rx="1" fill="#14B8A6" />
61
- </svg>
62
- )
63
-
64
- export const Discord = (props: WrapperProps) => (
65
- <svg
66
- xmlns="http://www.w3.org/2000/svg"
67
- viewBox="0 0 24 24"
68
- fill="currentColor"
69
- {...wrapperProps(props)}
70
- >
71
- <title>{'Discord'}</title>
72
- <path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z" />
73
- </svg>
74
- )
75
-
76
- export const XSocial = (props: WrapperProps) => (
77
- <svg
78
- xmlns="http://www.w3.org/2000/svg"
79
- viewBox="0 0 24 24"
80
- fill="currentColor"
81
- {...wrapperProps(props)}
82
- >
83
- <title>{'X'}</title>
84
- <path d="M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z" />
85
- </svg>
86
- )
87
-
88
- export const Bluesky = (props: WrapperProps) => (
89
- <svg
90
- xmlns="http://www.w3.org/2000/svg"
91
- viewBox="0 0 24 24"
92
- fill="currentColor"
93
- {...wrapperProps(props)}
94
- >
95
- <title>{'Bluesky'}</title>
96
- <path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026" />
97
- </svg>
98
- )
99
-
100
- // Icons file
101
-
102
- export const TypeScript = (props: WrapperProps) => (
103
- <svg
104
- xmlns="http://www.w3.org/2000/svg"
105
- fill="none"
106
- viewBox="0 0 24 24"
107
- {...wrapperProps(props)}
108
- >
109
- <title>{'TypeScript'}</title>
110
- <path
111
- fill="#2563EB"
112
- d="M3.234 9.093V7.318h8.363v1.775H8.479V17.5H6.352V9.093H3.234zm15.263 1.153c-.04-.4-.21-.712-.512-.934-.301-.222-.71-.333-1.228-.333-.351 0-.648.05-.89.149-.242.096-.427.23-.557.403a.969.969 0 0 0-.189.586.838.838 0 0 0 .115.477c.086.136.204.254.353.353.149.097.321.181.517.254.195.07.404.13.626.179l.915.219c.444.1.852.232 1.223.397.371.166.693.37.965.612.271.242.482.527.631.855.152.328.23.704.234 1.129-.004.623-.163 1.163-.478 1.62-.311.454-.762.807-1.352 1.06-.587.248-1.294.372-2.123.372-.822 0-1.538-.126-2.147-.378-.607-.252-1.081-.624-1.422-1.118-.338-.497-.516-1.112-.532-1.845h2.083c.023.342.12.627.293.855.176.226.41.397.701.513a2.8 2.8 0 0 0 1 .168c.364 0 .68-.053.949-.159a1.45 1.45 0 0 0 .631-.442c.15-.189.224-.406.224-.651a.846.846 0 0 0-.204-.577c-.132-.156-.328-.288-.586-.398a5.964 5.964 0 0 0-.94-.298l-1.109-.278c-.858-.21-1.536-.536-2.033-.98-.497-.444-.744-1.042-.74-1.795-.004-.616.16-1.155.491-1.615.335-.461.794-.82 1.377-1.08.584-.258 1.247-.387 1.99-.387.755 0 1.414.13 1.978.388.567.258 1.007.618 1.322 1.079.315.46.477.994.488 1.6h-2.064z"
113
- />
114
- </svg>
115
- )
116
-
117
- export const JavaScript = (props: WrapperProps) => (
118
- <svg
119
- xmlns="http://www.w3.org/2000/svg"
120
- fill="none"
121
- viewBox="0 0 24 24"
122
- {...wrapperProps(props)}
123
- >
124
- <title>{'JavaScript'}</title>
125
- <path
126
- fill="#F59E0B"
127
- d="M8.383 7.318h2.127v7.1c0 .656-.147 1.226-.442 1.71a2.924 2.924 0 01-1.218 1.118c-.52.262-1.125.393-1.815.393-.613 0-1.17-.107-1.67-.323a2.67 2.67 0 01-1.183-.994c-.292-.448-.436-1.01-.433-1.686h2.143c.006.269.061.5.164.691.106.19.25.335.432.438.186.1.405.15.657.15.265 0 .488-.057.67-.17.186-.116.327-.285.423-.507.096-.222.145-.496.145-.82v-7.1zm9.43 2.928c-.04-.4-.21-.712-.511-.934-.302-.222-.711-.333-1.228-.333-.352 0-.648.05-.89.149-.242.096-.428.23-.557.403a.969.969 0 00-.19.586.838.838 0 00.115.477c.087.136.204.254.353.353.15.097.322.181.517.254.196.07.405.13.627.179l.915.219c.444.1.851.232 1.223.397.37.166.692.37.964.612s.482.527.631.855a2.7 2.7 0 01.234 1.129c-.003.623-.162 1.163-.477 1.62-.312.454-.763.807-1.353 1.06-.586.248-1.294.372-2.122.372-.822 0-1.538-.126-2.148-.378-.607-.252-1.08-.624-1.422-1.118-.338-.497-.515-1.112-.532-1.845h2.083c.023.342.121.627.293.855.176.226.41.397.702.513.295.112.628.168.999.168.364 0 .68-.053.95-.159.271-.106.482-.253.63-.442.15-.189.224-.406.224-.651a.846.846 0 00-.203-.577c-.133-.156-.329-.288-.587-.398a5.964 5.964 0 00-.94-.298l-1.108-.278c-.859-.21-1.537-.536-2.034-.98-.497-.444-.744-1.042-.74-1.795-.004-.616.16-1.155.492-1.615.334-.461.793-.82 1.377-1.08.583-.258 1.246-.387 1.989-.387.755 0 1.415.13 1.978.388.567.258 1.008.618 1.323 1.079.314.46.477.994.487 1.6h-2.063z"
128
- ></path>
129
- </svg>
130
- )
131
-
132
- export const Json = (props: WrapperProps) => (
133
- <svg
134
- xmlns="http://www.w3.org/2000/svg"
135
- fill="none"
136
- viewBox="0 0 24 24"
137
- {...wrapperProps(props)}
138
- >
139
- <title>{'JSON'}</title>
140
- <path
141
- fill="#F59E0B"
142
- d="M4.778 6.667A2.667 2.667 0 017.444 4a.889.889 0 010 1.778.889.889 0 00-.888.889v3.5c0 .701-.273 1.35-.73 1.833.457.483.73 1.132.73 1.832v3.501c0 .491.398.89.888.89a.889.889 0 010 1.777 2.667 2.667 0 01-2.666-2.667v-3.5a.889.889 0 00-.674-.863l-.43-.108a.889.889 0 010-1.724l.43-.108a.889.889 0 00.674-.862V6.667zm14.222 0A2.667 2.667 0 0016.333 4a.889.889 0 000 1.778c.491 0 .89.398.89.889v3.5c0 .701.272 1.35.729 1.833a2.664 2.664 0 00-.73 1.832v3.501a.889.889 0 01-.889.89.889.889 0 000 1.777A2.667 2.667 0 0019 17.333v-3.5c0-.408.278-.764.673-.863l.431-.108a.889.889 0 000-1.724l-.43-.108a.889.889 0 01-.674-.862V6.667z"
143
- ></path>
144
- </svg>
145
- )
146
-
147
- export const Css = (props: WrapperProps) => (
148
- <svg
149
- xmlns="http://www.w3.org/2000/svg"
150
- fill="none"
151
- viewBox="0 0 24 24"
152
- {...wrapperProps(props)}
153
- >
154
- <title>{'CSS'}</title>
155
- <path
156
- fill="#0EA5E9"
157
- d="M4.778 6.667A2.667 2.667 0 017.444 4a.889.889 0 010 1.778.889.889 0 00-.888.889v3.5c0 .701-.273 1.35-.73 1.833.457.483.73 1.132.73 1.832v3.501c0 .491.398.89.888.89a.889.889 0 010 1.777 2.667 2.667 0 01-2.666-2.667v-3.5a.889.889 0 00-.674-.863l-.43-.108a.889.889 0 010-1.724l.43-.108a.889.889 0 00.674-.862V6.667zm14.222 0A2.667 2.667 0 0016.333 4a.889.889 0 000 1.778c.491 0 .89.398.89.889v3.5c0 .701.272 1.35.729 1.833a2.664 2.664 0 00-.73 1.832v3.501a.889.889 0 01-.889.89.889.889 0 000 1.777A2.667 2.667 0 0019 17.333v-3.5c0-.408.278-.764.673-.863l.431-.108a.889.889 0 000-1.724l-.43-.108a.889.889 0 01-.674-.862V6.667z"
158
- ></path>
159
- </svg>
160
- )
161
-
162
- export const BracketsOrange = (props: WrapperProps) => (
163
- <svg
164
- xmlns="http://www.w3.org/2000/svg"
165
- fill="none"
166
- viewBox="0 0 24 24"
167
- {...wrapperProps(props)}
168
- >
169
- <title>{'HTML'}</title>
170
- <path
171
- fill="#EA580C"
172
- d="M4.778 6.667A2.667 2.667 0 017.444 4a.889.889 0 010 1.778.889.889 0 00-.888.889v3.5c0 .701-.273 1.35-.73 1.833.457.483.73 1.132.73 1.832v3.501c0 .491.398.89.888.89a.889.889 0 010 1.777 2.667 2.667 0 01-2.666-2.667v-3.5a.889.889 0 00-.674-.863l-.43-.108a.889.889 0 010-1.724l.43-.108a.889.889 0 00.674-.862V6.667zm14.222 0A2.667 2.667 0 0016.333 4a.889.889 0 000 1.778c.491 0 .89.398.89.889v3.5c0 .701.272 1.35.729 1.833a2.664 2.664 0 00-.73 1.832v3.501a.889.889 0 01-.889.89.889.889 0 000 1.777A2.667 2.667 0 0019 17.333v-3.5c0-.408.278-.764.673-.863l.431-.108a.889.889 0 000-1.724l-.43-.108a.889.889 0 01-.674-.862V6.667z"
173
- ></path>
174
- </svg>
175
- )
176
-
177
- export const React = (props: WrapperProps) => (
178
- <svg
179
- xmlns="http://www.w3.org/2000/svg"
180
- fill="none"
181
- viewBox="0 0 24 24"
182
- {...wrapperProps(props)}
183
- >
184
- <title>{'React'}</title>
185
- <path
186
- fill="#0E8ADC"
187
- d="M12 13.677a1.677 1.677 0 100-3.354 1.677 1.677 0 000 3.354z"
188
- ></path>
189
- <path
190
- stroke="#0E8ADC"
191
- d="M12 15.436c4.97 0 9-1.538 9-3.436s-4.03-3.436-9-3.436S3 10.102 3 12s4.03 3.436 9 3.436z"
192
- ></path>
193
- <path
194
- stroke="#0E8ADC"
195
- d="M9.024 13.718c2.485 4.305 5.832 7.025 7.476 6.076 1.644-.949.961-5.208-1.524-9.512C12.491 5.977 9.144 3.257 7.5 4.206c-1.644.949-.961 5.208 1.524 9.512z"
196
- ></path>
197
- <path
198
- stroke="#0E8ADC"
199
- d="M9.024 10.282c-2.485 4.304-3.168 8.563-1.524 9.512 1.644.95 4.99-1.771 7.476-6.076 2.485-4.304 3.168-8.563 1.524-9.512-1.644-.95-4.99 1.771-7.476 6.076z"
200
- ></path>
201
- </svg>
202
- )
203
-
204
- export const Markdown = (props: WrapperProps) => (
205
- <svg
206
- xmlns="http://www.w3.org/2000/svg"
207
- fill="none"
208
- viewBox="0 0 24 24"
209
- {...wrapperProps(props)}
210
- >
211
- <title>{'Markdown'}</title>
212
- <path
213
- fill="#60A5FA"
214
- d="M3 15.714V8h2.323l2.322 2.836L9.968 8h2.322v7.714H9.968V11.29l-2.323 2.836-2.322-2.836v4.424H3zm14.516 0l-3.484-3.743h2.323V8h2.322v3.97H21l-3.484 3.744z"
215
- ></path>
216
- </svg>
217
- )
218
-
219
- export const Shell = (props: WrapperProps) => (
220
- <svg
221
- xmlns="http://www.w3.org/2000/svg"
222
- fill="none"
223
- viewBox="0 0 25 24"
224
- {...wrapperProps(props)}
225
- >
226
- <title>{'Shell'}</title>
227
- <path
228
- stroke="#14B8A6"
229
- strokeLinecap="round"
230
- strokeLinejoin="round"
231
- strokeWidth="2"
232
- d="M4.336 17l6-6-6-6M12.336 19h8"
233
- ></path>
234
- </svg>
235
- )
236
-
237
- export const Yaml = (props: WrapperProps) => (
238
- <svg
239
- xmlns="http://www.w3.org/2000/svg"
240
- fill="none"
241
- viewBox="0 0 24 24"
242
- {...wrapperProps(props)}
243
- >
244
- <title>YAML</title>
245
- <path
246
- fill="#A78BFA"
247
- d="M6.533 5.864h2.755l2.654 5.011h.113l2.654-5.011h2.756l-4.245 7.522V17.5h-2.443v-4.114L6.533 5.864z"
248
- ></path>
249
- </svg>
250
- )
251
-
252
- export const Rust = (props: WrapperProps) => (
253
- <svg
254
- xmlns="http://www.w3.org/2000/svg"
255
- fill="none"
256
- viewBox="0 0 25 24"
257
- {...wrapperProps(props)}
258
- >
259
- <title>Rust</title>
260
- <path
261
- fill="#EA580C"
262
- fillRule="evenodd"
263
- d="M12.58 2.136a.287.287 0 00-.488 0l-.526.85a8.974 8.974 0 00-.232.022l-.683-.73a.287.287 0 00-.478.096l-.35.935c-.075.021-.15.044-.224.067l-.812-.583a.287.287 0 00-.45.187l-.162.989a9.088 9.088 0 00-.204.11l-.913-.417a.287.287 0 00-.406.272l.036 1.005a9.099 9.099 0 00-.175.144l-.98-.231a.287.287 0 00-.345.345l.231.98a9.125 9.125 0 00-.144.175L4.27 6.316a.287.287 0 00-.271.406l.416.913a9.036 9.036 0 00-.11.203L3.317 8a.287.287 0 00-.187.45l.584.813a8.953 8.953 0 00-.068.223l-.935.35a.287.287 0 00-.095.479l.73.682a8.966 8.966 0 00-.023.233l-.85.526a.287.287 0 000 .488l.85.526c.007.078.014.156.023.233l-.73.682a.287.287 0 00.095.479l.935.35.068.223-.584.812a.287.287 0 00.187.451l.99.162c.035.068.072.135.109.203l-.416.913a.287.287 0 00.271.406l1.006-.036c.047.059.095.117.143.174l-.23.981a.287.287 0 00.344.345l.981-.23c.057.048.115.095.174.142l-.036 1.006a.287.287 0 00.406.272l.914-.417c.067.038.135.074.203.11l.161.99a.287.287 0 00.451.186l.813-.584c.074.024.148.046.223.068l.35.935a.287.287 0 00.478.095l.683-.73c.077.01.154.017.232.023l.526.85a.287.287 0 00.489 0l.526-.85c.078-.006.155-.014.232-.023l.682.73a.287.287 0 00.479-.095l.35-.935c.075-.022.15-.044.223-.068l.813.584a.287.287 0 00.45-.187l.162-.99a8.77 8.77 0 00.203-.109l.913.417a.287.287 0 00.406-.272l-.035-1.006c.058-.047.116-.094.174-.143l.98.231a.287.287 0 00.346-.345l-.231-.98.143-.175 1.006.036a.287.287 0 00.271-.406l-.416-.913a9.4 9.4 0 00.109-.203l.99-.162a.287.287 0 00.187-.45l-.584-.813a8.43 8.43 0 00.067-.223l.935-.35a.287.287 0 00.096-.479l-.73-.682c.009-.077.016-.155.023-.233l.85-.526a.287.287 0 000-.488l-.85-.526a8.844 8.844 0 00-.023-.233l.73-.682a.287.287 0 00-.096-.479l-.934-.35a9.246 9.246 0 00-.068-.223l.584-.812A.287.287 0 0021.357 8l-.99-.162a8.92 8.92 0 00-.11-.203l.417-.913a.287.287 0 00-.271-.406l-1.006.036a9.178 9.178 0 00-.143-.174l.23-.981a.287.287 0 00-.345-.345l-.98.23a9.43 9.43 0 00-.174-.142l.035-1.006a.287.287 0 00-.405-.272l-.914.417a9.11 9.11 0 00-.203-.11l-.162-.99a.287.287 0 00-.45-.186l-.813.584a9.088 9.088 0 00-.223-.068l-.35-.935a.287.287 0 00-.479-.095l-.682.73a9.062 9.062 0 00-.232-.023l-.526-.85zm-.257 1.62a.592.592 0 01.578.596.595.595 0 11-.578-.595zm1.363.98A7.324 7.324 0 0118.7 8.309l-.702 1.585a.547.547 0 00.275.717l1.352.6c.041.422.047.847.015 1.27h-.752c-.075 0-.106.05-.106.123v.344c0 .812-.457.99-.859 1.034-.383.044-.806-.161-.86-.394-.22-1.24-.583-1.526-1.152-1.975l-.041-.033c.736-.467 1.502-1.158 1.502-2.08 0-.998-.683-1.625-1.148-1.934-.655-.43-1.379-.516-1.574-.516H6.88a7.324 7.324 0 014.098-2.312l.916.96a.54.54 0 00.766.018l1.026-.978zm-8.46 4.407a.595.595 0 11-.034 1.19.595.595 0 01.034-1.19zm14.192.026a.595.595 0 11-.035 1.19.595.595 0 01.035-1.19zm-13.07.096h1.037v4.678H5.291a7.324 7.324 0 01-.237-2.797l1.282-.57a.542.542 0 00.276-.716l-.264-.595zm4.33.05h2.47c.128 0 .901.147.901.727 0 .48-.593.653-1.081.653h-2.293l.002-1.38zm0 3.36h1.892c.172 0 .924.05 1.164 1.011.026.104.064.291.107.503.078.389.174.861.247 1.06.113.345.57 1.034 1.058 1.034h3.089c-.207.277-.433.54-.677.785l-1.258-.27a.544.544 0 00-.645.417l-.298 1.394a7.323 7.323 0 01-6.108-.03l-.298-1.392a.542.542 0 00-.643-.418l-1.23.264a7.32 7.32 0 01-.636-.75h5.984c.067 0 .113-.011.113-.074v-2.117c0-.061-.046-.075-.113-.075h-1.75l.001-1.341zm-2.763 4.848a.595.595 0 11-.034 1.19.595.595 0 01.034-1.19zm8.814.027a.596.596 0 11-.035 1.19.596.596 0 01.035-1.19z"
264
- clipRule="evenodd"
265
- ></path>
266
- </svg>
267
- )
268
-
269
- export const BracketsRed = (props: WrapperProps) => (
270
- <svg
271
- xmlns="http://www.w3.org/2000/svg"
272
- fill="none"
273
- viewBox="0 0 24 24"
274
- {...wrapperProps(props)}
275
- >
276
- <title>Rust</title>
277
- <path
278
- fill="#F87171"
279
- d="M4.778 6.667A2.667 2.667 0 017.444 4a.889.889 0 010 1.778.889.889 0 00-.888.889v3.5c0 .701-.273 1.35-.73 1.833.457.483.73 1.132.73 1.832v3.501c0 .491.398.89.888.89a.889.889 0 010 1.777 2.667 2.667 0 01-2.666-2.667v-3.5a.889.889 0 00-.674-.863l-.43-.108a.889.889 0 010-1.724l.43-.108a.889.889 0 00.674-.862V6.667zm14.222 0A2.667 2.667 0 0016.333 4a.889.889 0 000 1.778c.491 0 .89.398.89.889v3.5c0 .701.272 1.35.729 1.833a2.664 2.664 0 00-.73 1.832v3.501a.889.889 0 01-.889.89.889.889 0 000 1.777A2.667 2.667 0 0019 17.333v-3.5c0-.408.278-.764.673-.863l.431-.108a.889.889 0 000-1.724l-.43-.108a.889.889 0 01-.674-.862V6.667z"
280
- ></path>
281
- </svg>
282
- )
@@ -1,97 +0,0 @@
1
- import { Info, Lightbulb, AlertTriangle, AlertCircle } from '../ui-base/icons'
2
- import { cn } from '../../utils/cn'
3
-
4
- export type CalloutVariant = 'note' | 'tip' | 'warning' | 'danger' | 'info'
5
-
6
- export interface CalloutProps extends React.HTMLAttributes<HTMLDivElement> {
7
- variant?: CalloutVariant
8
- title?: string
9
- }
10
-
11
- const variantStyles: Record<
12
- CalloutVariant,
13
- {
14
- container: string
15
- titleText: string
16
- iconColor: string
17
- icon: React.ComponentType<any>
18
- defaultTitle: string
19
- }
20
- > = {
21
- note: {
22
- container:
23
- 'bg-slate-500/5 dark:bg-slate-500/10 border-slate-500/40 text-slate-800 dark:text-slate-200',
24
- titleText: 'text-slate-900 dark:text-slate-100',
25
- iconColor: 'text-slate-500',
26
- icon: Info,
27
- defaultTitle: 'Note',
28
- },
29
- info: {
30
- container:
31
- 'bg-indigo-500/5 dark:bg-indigo-500/10 border-indigo-500/40 text-indigo-800 dark:text-indigo-200',
32
- titleText: 'text-indigo-900 dark:text-indigo-100',
33
- iconColor: 'text-indigo-500',
34
- icon: Info,
35
- defaultTitle: 'Info',
36
- },
37
- tip: {
38
- container:
39
- 'bg-green-500/5 dark:bg-green-500/10 border-green-500/40 text-green-800 dark:text-green-200',
40
- titleText: 'text-green-900 dark:text-green-100',
41
- iconColor: 'text-green-500',
42
- icon: Lightbulb,
43
- defaultTitle: 'Tip',
44
- },
45
- warning: {
46
- container:
47
- 'bg-amber-500/5 dark:bg-amber-500/10 border-amber-500/40 text-amber-800 dark:text-amber-200',
48
- titleText: 'text-amber-900 dark:text-amber-100',
49
- iconColor: 'text-amber-500',
50
- icon: AlertTriangle,
51
- defaultTitle: 'Warning',
52
- },
53
- danger: {
54
- container:
55
- 'bg-rose-500/5 dark:bg-rose-500/10 border-rose-500/40 text-rose-800 dark:text-rose-200',
56
- titleText: 'text-rose-900 dark:text-rose-100',
57
- iconColor: 'text-rose-500',
58
- icon: AlertCircle,
59
- defaultTitle: 'Danger',
60
- },
61
- }
62
-
63
- export function Callout({
64
- children,
65
- className = '',
66
- variant = 'note',
67
- title,
68
- ...props
69
- }: CalloutProps) {
70
- const styles = variantStyles[variant] || variantStyles.note
71
- const Icon = styles.icon
72
-
73
- return (
74
- <div
75
- className={cn(
76
- 'my-6 flex gap-4 p-4 rounded-xl border-2',
77
- styles.container,
78
- className,
79
- )}
80
- {...props}
81
- >
82
- <div className={cn('shrink-0 pt-0.5', styles.iconColor)}>
83
- <Icon className="w-5 h-5 stroke-[2]" />
84
- </div>
85
- <div className="flex-1 text-[0.875rem] leading-[1.6]">
86
- <div className={cn('font-bold text-sm mb-1', styles.titleText)}>
87
- {title || styles.defaultTitle}
88
- </div>
89
- <div className="prose prose-neutral dark:prose-invert max-w-none [&>p]:m-0 [&>p+p]:mt-2">
90
- {children}
91
- </div>
92
- </div>
93
- </div>
94
- )
95
- }
96
-
97
- export default Callout
@@ -1,99 +0,0 @@
1
- import { useState, useRef } from 'react'
2
- import { cn } from '../../utils/cn'
3
-
4
- export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
5
- title?: React.ReactNode
6
- icon?: React.ReactNode
7
- href?: string
8
- }
9
-
10
- export function Card({
11
- className,
12
- title,
13
- icon,
14
- href,
15
- children,
16
- ...props
17
- }: CardProps) {
18
- const [position, setPosition] = useState({ x: 0, y: 0 })
19
- const [opacity, setOpacity] = useState(0)
20
- const cardRef = useRef<HTMLDivElement>(null)
21
-
22
- const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {
23
- if (!cardRef.current) return
24
- const rect = cardRef.current.getBoundingClientRect()
25
- setPosition({ x: e.clientX - rect.left, y: e.clientY - rect.top })
26
- }
27
-
28
- const handleMouseEnter = () => setOpacity(1)
29
- const handleMouseLeave = () => setOpacity(0)
30
-
31
- const Wrapper = href ? 'a' : 'div'
32
- const spotlightColor = 'var(--color-primary-500, #eb5828)'
33
-
34
- return (
35
- <Wrapper
36
- ref={cardRef}
37
- href={href}
38
- onMouseMove={handleMouseMove}
39
- onMouseEnter={handleMouseEnter}
40
- onMouseLeave={handleMouseLeave}
41
- className={cn(
42
- 'group relative flex flex-col gap-3 rounded-2xl border p-6 overflow-hidden transition-all duration-300',
43
- 'hover:shadow-lg dark:hover:shadow-none hover:-translate-y-0.5',
44
- 'bg-surface border-subtle text-paragraph',
45
- href && 'cursor-pointer',
46
- className,
47
- )}
48
- {...(props as any)}
49
- >
50
- {/* Background Spotlight */}
51
- <div
52
- className="pointer-events-none absolute inset-0 transition-opacity duration-300"
53
- style={{
54
- opacity,
55
- background: `radial-gradient(600px circle at ${position.x}px ${position.y}px, color-mix(in srgb, ${spotlightColor} 8%, transparent), transparent 40%)`,
56
- }}
57
- />
58
- {/* Border Spotlight Glow */}
59
- <div
60
- className="pointer-events-none absolute inset-0 rounded-2xl transition-opacity duration-300"
61
- style={{
62
- opacity,
63
- padding: '1px',
64
- background: `radial-gradient(400px circle at ${position.x}px ${position.y}px, color-mix(in srgb, ${spotlightColor} 50%, transparent), transparent 40%)`,
65
- WebkitMask:
66
- 'linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)',
67
- WebkitMaskComposite: 'xor',
68
- maskComposite: 'exclude',
69
- }}
70
- />
71
-
72
- {/* Header Content */}
73
- <div className="relative z-10 flex items-center gap-3">
74
- {icon && (
75
- <div
76
- className={cn(
77
- 'shrink-0 transition-transform duration-500 group-hover:rotate-[15deg] group-hover:scale-110 flex items-center justify-center text-muted group-hover:text-primary-500',
78
- '[&>svg]:w-6 [&>svg]:h-6 [&>svg]:stroke-[1.5]',
79
- )}
80
- >
81
- {icon}
82
- </div>
83
- )}
84
- {title && (
85
- <h3 className="font-semibold text-base m-0 leading-none text-body">
86
- {title}
87
- </h3>
88
- )}
89
- </div>
90
-
91
- {/* Body Content */}
92
- <div className="relative z-10 text-[0.875rem] leading-[1.6] opacity-90 prose prose-neutral dark:prose-invert max-w-none [&>p]:m-0 [&>p+p]:mt-2">
93
- {children}
94
- </div>
95
- </Wrapper>
96
- )
97
- }
98
-
99
- export default Card
@@ -1,27 +0,0 @@
1
- import { cn } from '../../utils/cn'
2
-
3
- export interface CardsProps extends React.HTMLAttributes<HTMLDivElement> {
4
- cols?: 1 | 2 | 3 | 4
5
- }
6
-
7
- export function Cards({ children, className, cols = 2, ...props }: CardsProps) {
8
- return (
9
- <div
10
- className={cn(
11
- 'grid gap-4 my-6',
12
- {
13
- 'grid-cols-1': cols === 1,
14
- 'grid-cols-1 sm:grid-cols-2': cols === 2,
15
- 'grid-cols-1 sm:grid-cols-2 md:grid-cols-3': cols === 3,
16
- 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4': cols === 4,
17
- },
18
- className,
19
- )}
20
- {...props}
21
- >
22
- {children}
23
- </div>
24
- )
25
- }
26
-
27
- export default Cards