@docubook/mdx-content 1.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.
- package/LICENSE +21 -0
- package/README.md +211 -0
- package/dist/adapters/next/ButtonMdx.d.ts +4 -0
- package/dist/adapters/next/ButtonMdx.d.ts.map +1 -0
- package/dist/adapters/next/ButtonMdx.jsx +7 -0
- package/dist/adapters/next/ButtonMdx.jsx.map +1 -0
- package/dist/adapters/next/CardMdx.d.ts +4 -0
- package/dist/adapters/next/CardMdx.d.ts.map +1 -0
- package/dist/adapters/next/CardMdx.jsx +7 -0
- package/dist/adapters/next/CardMdx.jsx.map +1 -0
- package/dist/adapters/next/ImageMdx.d.ts +8 -0
- package/dist/adapters/next/ImageMdx.d.ts.map +1 -0
- package/dist/adapters/next/ImageMdx.jsx +7 -0
- package/dist/adapters/next/ImageMdx.jsx.map +1 -0
- package/dist/adapters/next/LinkMdx.d.ts +3 -0
- package/dist/adapters/next/LinkMdx.d.ts.map +1 -0
- package/dist/adapters/next/LinkMdx.jsx +10 -0
- package/dist/adapters/next/LinkMdx.jsx.map +1 -0
- package/dist/adapters/next/index.d.ts +5 -0
- package/dist/adapters/next/index.d.ts.map +1 -0
- package/dist/adapters/next/index.js +5 -0
- package/dist/adapters/next/index.js.map +1 -0
- package/dist/client.d.ts +7 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +7 -0
- package/dist/client.js.map +1 -0
- package/dist/components/AccordionContext.d.ts +8 -0
- package/dist/components/AccordionContext.d.ts.map +1 -0
- package/dist/components/AccordionContext.jsx +4 -0
- package/dist/components/AccordionContext.jsx.map +1 -0
- package/dist/components/AccordionGroupMdx.d.ts +7 -0
- package/dist/components/AccordionGroupMdx.d.ts.map +1 -0
- package/dist/components/AccordionGroupMdx.jsx +17 -0
- package/dist/components/AccordionGroupMdx.jsx.map +1 -0
- package/dist/components/AccordionMdx.d.ts +11 -0
- package/dist/components/AccordionMdx.d.ts.map +1 -0
- package/dist/components/AccordionMdx.jsx +76 -0
- package/dist/components/AccordionMdx.jsx.map +1 -0
- package/dist/components/ButtonMdx.d.ts +18 -0
- package/dist/components/ButtonMdx.d.ts.map +1 -0
- package/dist/components/ButtonMdx.jsx +58 -0
- package/dist/components/ButtonMdx.jsx.map +1 -0
- package/dist/components/CardGroupMdx.d.ts +9 -0
- package/dist/components/CardGroupMdx.d.ts.map +1 -0
- package/dist/components/CardGroupMdx.jsx +29 -0
- package/dist/components/CardGroupMdx.jsx.map +1 -0
- package/dist/components/CardMdx.d.ts +17 -0
- package/dist/components/CardMdx.d.ts.map +1 -0
- package/dist/components/CardMdx.jsx +87 -0
- package/dist/components/CardMdx.jsx.map +1 -0
- package/dist/components/CodeBlock.d.ts +8 -0
- package/dist/components/CodeBlock.d.ts.map +1 -0
- package/dist/components/CodeBlock.jsx +77 -0
- package/dist/components/CodeBlock.jsx.map +1 -0
- package/dist/components/CopyButton.d.ts +6 -0
- package/dist/components/CopyButton.d.ts.map +1 -0
- package/dist/components/CopyButton.jsx +43 -0
- package/dist/components/CopyButton.jsx.map +1 -0
- package/dist/components/FileTreeMdx.d.ts +19 -0
- package/dist/components/FileTreeMdx.d.ts.map +1 -0
- package/dist/components/FileTreeMdx.jsx +79 -0
- package/dist/components/FileTreeMdx.jsx.map +1 -0
- package/dist/components/IconMdx.d.ts +6 -0
- package/dist/components/IconMdx.d.ts.map +1 -0
- package/dist/components/IconMdx.jsx +14 -0
- package/dist/components/IconMdx.jsx.map +1 -0
- package/dist/components/ImageMdx.d.ts +8 -0
- package/dist/components/ImageMdx.d.ts.map +1 -0
- package/dist/components/ImageMdx.jsx +126 -0
- package/dist/components/ImageMdx.jsx.map +1 -0
- package/dist/components/KeyboardMdx.d.ts +10 -0
- package/dist/components/KeyboardMdx.d.ts.map +1 -0
- package/dist/components/KeyboardMdx.jsx +41 -0
- package/dist/components/KeyboardMdx.jsx.map +1 -0
- package/dist/components/LinkMdx.d.ts +4 -0
- package/dist/components/LinkMdx.d.ts.map +1 -0
- package/dist/components/LinkMdx.jsx +9 -0
- package/dist/components/LinkMdx.jsx.map +1 -0
- package/dist/components/NoteMdx.d.ts +13 -0
- package/dist/components/NoteMdx.d.ts.map +1 -0
- package/dist/components/NoteMdx.jsx +87 -0
- package/dist/components/NoteMdx.jsx.map +1 -0
- package/dist/components/ReleaseMdx.d.ts +16 -0
- package/dist/components/ReleaseMdx.d.ts.map +1 -0
- package/dist/components/ReleaseMdx.jsx +56 -0
- package/dist/components/ReleaseMdx.jsx.map +1 -0
- package/dist/components/StepperMdx.d.ts +17 -0
- package/dist/components/StepperMdx.d.ts.map +1 -0
- package/dist/components/StepperMdx.jsx +82 -0
- package/dist/components/StepperMdx.jsx.map +1 -0
- package/dist/components/TableMdx.d.ts +9 -0
- package/dist/components/TableMdx.d.ts.map +1 -0
- package/dist/components/TableMdx.jsx +57 -0
- package/dist/components/TableMdx.jsx.map +1 -0
- package/dist/components/TabsMdx.d.ts +21 -0
- package/dist/components/TabsMdx.d.ts.map +1 -0
- package/dist/components/TabsMdx.jsx +124 -0
- package/dist/components/TabsMdx.jsx.map +1 -0
- package/dist/components/TooltipsMdx.d.ts +10 -0
- package/dist/components/TooltipsMdx.d.ts.map +1 -0
- package/dist/components/TooltipsMdx.jsx +42 -0
- package/dist/components/TooltipsMdx.jsx.map +1 -0
- package/dist/components/YoutubeMdx.d.ts +7 -0
- package/dist/components/YoutubeMdx.d.ts.map +1 -0
- package/dist/components/YoutubeMdx.jsx +15 -0
- package/dist/components/YoutubeMdx.jsx.map +1 -0
- package/dist/components/index.d.ts +17 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/index.d.ts +4 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +41 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +12 -0
- package/dist/server.js.map +1 -0
- package/package.json +75 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Wildan Nursahidan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# @docubook/mdx-content
|
|
2
|
+
|
|
3
|
+
Portable MDX components and framework adapters for [DocuBook](https://docubook.pro/). Provides a collection of ready-to-use React components designed for MDX-based documentation sites, with built-in support for Next.js adapters.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# npm
|
|
9
|
+
npm install @docubook/mdx-content
|
|
10
|
+
|
|
11
|
+
# pnpm
|
|
12
|
+
pnpm add @docubook/mdx-content
|
|
13
|
+
|
|
14
|
+
# yarn
|
|
15
|
+
yarn add @docubook/mdx-content
|
|
16
|
+
|
|
17
|
+
# bun
|
|
18
|
+
bun add @docubook/mdx-content
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
### 1. Create a custom components registry
|
|
24
|
+
|
|
25
|
+
Create `lib/mdx/index.ts` to register your custom MDX components:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
// lib/mdx/index.ts
|
|
29
|
+
import type { MdxComponentMap } from "@docubook/mdx-content";
|
|
30
|
+
|
|
31
|
+
export const customMdxComponents: MdxComponentMap = {
|
|
32
|
+
// add your custom components here
|
|
33
|
+
};
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. Create the MDX components map
|
|
37
|
+
|
|
38
|
+
Create `lib/mdx-components.ts` to define the full component map. Import built-in components individually and merge them with your custom ones via `createMdxComponents`:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
// lib/mdx-components.ts
|
|
42
|
+
import {
|
|
43
|
+
createMdxComponents,
|
|
44
|
+
type MdxComponentMap,
|
|
45
|
+
AccordionGroupMdx,
|
|
46
|
+
AccordionMdx,
|
|
47
|
+
CardGroupMdx,
|
|
48
|
+
ChangesMdx,
|
|
49
|
+
CodeBlock,
|
|
50
|
+
FileMdx,
|
|
51
|
+
FilesMdx,
|
|
52
|
+
FolderMdx,
|
|
53
|
+
KbdMdx,
|
|
54
|
+
NoteMdx,
|
|
55
|
+
ReleaseMdx,
|
|
56
|
+
StepperItemMdx,
|
|
57
|
+
StepperMdx,
|
|
58
|
+
TableBodyMdx,
|
|
59
|
+
TableCellMdx,
|
|
60
|
+
TableFooterMdx,
|
|
61
|
+
TableHeadMdx,
|
|
62
|
+
TableHeaderMdx,
|
|
63
|
+
TableMdx,
|
|
64
|
+
TableRowMdx,
|
|
65
|
+
TabsContentMdx,
|
|
66
|
+
TabsListMdx,
|
|
67
|
+
TabsMdx,
|
|
68
|
+
TabsTriggerMdx,
|
|
69
|
+
TooltipMdx,
|
|
70
|
+
YoutubeMdx,
|
|
71
|
+
} from "@docubook/mdx-content";
|
|
72
|
+
import { ImageMdx, LinkMdx, ButtonMdx, CardMdx } from "@docubook/mdx-content/next";
|
|
73
|
+
import { customMdxComponents } from "@/lib/mdx";
|
|
74
|
+
|
|
75
|
+
const builtInOverrides: MdxComponentMap = {
|
|
76
|
+
Tabs: TabsMdx,
|
|
77
|
+
TabsContent: TabsContentMdx,
|
|
78
|
+
TabsList: TabsListMdx,
|
|
79
|
+
TabsTrigger: TabsTriggerMdx,
|
|
80
|
+
table: TableMdx,
|
|
81
|
+
thead: TableHeaderMdx,
|
|
82
|
+
tbody: TableBodyMdx,
|
|
83
|
+
tfoot: TableFooterMdx,
|
|
84
|
+
tr: TableRowMdx,
|
|
85
|
+
th: TableHeadMdx,
|
|
86
|
+
td: TableCellMdx,
|
|
87
|
+
pre: CodeBlock,
|
|
88
|
+
Card: CardMdx,
|
|
89
|
+
Button: ButtonMdx,
|
|
90
|
+
Note: NoteMdx,
|
|
91
|
+
Stepper: StepperMdx,
|
|
92
|
+
StepperItem: StepperItemMdx,
|
|
93
|
+
Accordion: AccordionMdx,
|
|
94
|
+
AccordionGroup: AccordionGroupMdx,
|
|
95
|
+
CardGroup: CardGroupMdx,
|
|
96
|
+
Kbd: KbdMdx,
|
|
97
|
+
Release: ReleaseMdx,
|
|
98
|
+
Changes: ChangesMdx,
|
|
99
|
+
File: FileMdx,
|
|
100
|
+
Files: FilesMdx,
|
|
101
|
+
Folder: FolderMdx,
|
|
102
|
+
Youtube: YoutubeMdx,
|
|
103
|
+
Tooltip: TooltipMdx,
|
|
104
|
+
img: ImageMdx,
|
|
105
|
+
a: LinkMdx,
|
|
106
|
+
Link: LinkMdx,
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export const mdxComponents = createMdxComponents({
|
|
110
|
+
...builtInOverrides,
|
|
111
|
+
...customMdxComponents,
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
> For Next.js projects, import `Link`, `Button`, `Card`, and `Image` from `@docubook/mdx-content/next` to use Next.js-optimized versions (`next/link`, `next/image`).
|
|
116
|
+
|
|
117
|
+
### 3. Use the components map when rendering MDX
|
|
118
|
+
|
|
119
|
+
Pass `mdxComponents` to `createMdxContentService` from `@docubook/core`:
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
// lib/markdown.ts
|
|
123
|
+
import { createMdxContentService } from "@docubook/core";
|
|
124
|
+
import { cache } from "react";
|
|
125
|
+
import { mdxComponents as components } from "@/lib/mdx-components";
|
|
126
|
+
|
|
127
|
+
const docsService = createMdxContentService({
|
|
128
|
+
parseOptions: { components },
|
|
129
|
+
cacheFn: cache,
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Available import paths
|
|
134
|
+
|
|
135
|
+
| Path | Description |
|
|
136
|
+
| ------------------------------ | -------------------------------------------------------------- |
|
|
137
|
+
| `@docubook/mdx-content` | All server-safe components + `createMdxComponents` registry |
|
|
138
|
+
| `@docubook/mdx-content/client` | Client-only components (accordion, tabs, tooltip, etc.) |
|
|
139
|
+
| `@docubook/mdx-content/server` | Server-side components |
|
|
140
|
+
| `@docubook/mdx-content/next` | Next.js-optimized adapters (`Link`, `Button`, `Card`, `Image`) |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Custom Components
|
|
145
|
+
|
|
146
|
+
### 1. Create your component
|
|
147
|
+
|
|
148
|
+
Add a new file under `lib/mdx/`:
|
|
149
|
+
|
|
150
|
+
```tsx
|
|
151
|
+
// lib/mdx/Callout.tsx
|
|
152
|
+
export default function Callout({ children }: { children: React.ReactNode }) {
|
|
153
|
+
return (
|
|
154
|
+
<div className="border-l-4 border-blue-500 pl-4 py-2 bg-blue-50">
|
|
155
|
+
{children}
|
|
156
|
+
</div>
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 2. Register your component
|
|
162
|
+
|
|
163
|
+
Import and add it to `customMdxComponents` in `lib/mdx/index.ts`:
|
|
164
|
+
|
|
165
|
+
```ts
|
|
166
|
+
// lib/mdx/index.ts
|
|
167
|
+
import type { MdxComponentMap } from "@docubook/mdx-content";
|
|
168
|
+
import Callout from "@/lib/mdx/Callout";
|
|
169
|
+
|
|
170
|
+
export const customMdxComponents: MdxComponentMap = {
|
|
171
|
+
Callout,
|
|
172
|
+
};
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
`customMdxComponents` is already spread into `createMdxComponents` in `lib/mdx-components.ts`, so no further changes are needed. You can now use `<Callout>` in any `.mdx` file:
|
|
176
|
+
|
|
177
|
+
```mdx
|
|
178
|
+
<Callout>
|
|
179
|
+
This is a custom callout component.
|
|
180
|
+
</Callout>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Available Components
|
|
186
|
+
|
|
187
|
+
For full usage examples of all built-in components, refer to [components.md](./components.md).
|
|
188
|
+
|
|
189
|
+
Components included out of the box:
|
|
190
|
+
|
|
191
|
+
- `Accordion` / `AccordionGroup`
|
|
192
|
+
- `Button`
|
|
193
|
+
- `Card` / `CardGroup`
|
|
194
|
+
- Code Block (`pre`)
|
|
195
|
+
- `Files` / `Folder` / `File`
|
|
196
|
+
- `Image` / `img`
|
|
197
|
+
- `Kbd`
|
|
198
|
+
- `Link` / `a`
|
|
199
|
+
- `Note`
|
|
200
|
+
- `Release` / `Changes`
|
|
201
|
+
- `Stepper` / `StepperItem`
|
|
202
|
+
- `Tabs` / `TabsList` / `TabsTrigger` / `TabsContent`
|
|
203
|
+
- `Tooltip`
|
|
204
|
+
- `Youtube`
|
|
205
|
+
- Table (`table`, `thead`, `tbody`, `tfoot`, `tr`, `th`, `td`)
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## License
|
|
210
|
+
|
|
211
|
+
MIT — see [LICENSE](./LICENSE) for details.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ButtonMdxProps as CoreButtonMdxProps } from "../../components/ButtonMdx";
|
|
2
|
+
export type ButtonMdxProps = Omit<CoreButtonMdxProps, "__LinkComponent">;
|
|
3
|
+
export declare function ButtonMdx(props: ButtonMdxProps): import("react").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=ButtonMdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonMdx.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/ButtonMdx.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGvF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAEzE,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BAE9C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ButtonMdx as CoreButtonMdx } from "../../components/ButtonMdx";
|
|
3
|
+
import { LinkMdx } from "./LinkMdx";
|
|
4
|
+
export function ButtonMdx(props) {
|
|
5
|
+
return <CoreButtonMdx {...props} __LinkComponent={LinkMdx}/>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=ButtonMdx.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonMdx.jsx","sourceRoot":"","sources":["../../../src/adapters/next/ButtonMdx.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC3C,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAG,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CardMdxProps as CoreCardMdxProps } from "../../components/CardMdx";
|
|
2
|
+
export type CardMdxProps = Omit<CoreCardMdxProps, "__LinkComponent">;
|
|
3
|
+
export declare function CardMdx(props: CardMdxProps): import("react").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=CardMdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardMdx.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/CardMdx.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAErE,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,+BAE1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardMdx.jsx","sourceRoot":"","sources":["../../../src/adapters/next/CardMdx.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,UAAU,OAAO,CAAC,KAAmB;IACvC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAG,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ComponentProps } from "react";
|
|
2
|
+
import NextImage from "next/image";
|
|
3
|
+
import { type ImageMdxProps as CoreImageMdxProps } from "../../components/ImageMdx";
|
|
4
|
+
export type ImageMdxProps = Omit<CoreImageMdxProps, "src"> & {
|
|
5
|
+
src?: ComponentProps<typeof NextImage>["src"];
|
|
6
|
+
};
|
|
7
|
+
export declare function ImageMdx(props: ImageMdxProps): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ImageMdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageMdx.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/ImageMdx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAA4B,KAAK,aAAa,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9G,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG;IACzD,GAAG,CAAC,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,+BAE5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageMdx.jsx","sourceRoot":"","sources":["../../../src/adapters/next/ImageMdx.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAA2C,MAAM,2BAA2B,CAAC;AAM9G,MAAM,UAAU,QAAQ,CAAC,KAAoB;IACzC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkMdx.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/LinkMdx.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,sCAQpE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import NextLink from "next/link";
|
|
2
|
+
export function LinkMdx({ href, rel, target, ...props }) {
|
|
3
|
+
if (!href)
|
|
4
|
+
return null;
|
|
5
|
+
const external = /^https?:\/\//.test(href);
|
|
6
|
+
const computedTarget = target ?? (external ? "_blank" : undefined);
|
|
7
|
+
const computedRel = rel ?? (external ? "noopener noreferrer" : undefined);
|
|
8
|
+
return <NextLink href={href} target={computedTarget} rel={computedRel} {...props}/>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=LinkMdx.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkMdx.jsx","sourceRoot":"","sources":["../../../src/adapters/next/LinkMdx.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAgB;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAsB,MAAM,YAAY,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { AccordionMdx } from "./components/AccordionMdx";
|
|
2
|
+
export { AccordionGroupMdx } from "./components/AccordionGroupMdx";
|
|
3
|
+
export { CopyButton } from "./components/CopyButton";
|
|
4
|
+
export { NoteMdx } from "./components/NoteMdx";
|
|
5
|
+
export { TabsMdx, TabsListMdx, TabsTriggerMdx, TabsContentMdx } from "./components/TabsMdx";
|
|
6
|
+
export { TooltipMdx } from "./components/TooltipsMdx";
|
|
7
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { AccordionMdx } from "./components/AccordionMdx";
|
|
2
|
+
export { AccordionGroupMdx } from "./components/AccordionGroupMdx";
|
|
3
|
+
export { CopyButton } from "./components/CopyButton";
|
|
4
|
+
export { NoteMdx } from "./components/NoteMdx";
|
|
5
|
+
export { TabsMdx, TabsListMdx, TabsTriggerMdx, TabsContentMdx } from "./components/TabsMdx";
|
|
6
|
+
export { TooltipMdx } from "./components/TooltipsMdx";
|
|
7
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type AccordionGroupContextType = {
|
|
2
|
+
inGroup: boolean;
|
|
3
|
+
openTitle: string | null;
|
|
4
|
+
setOpenTitle: (title: string | null) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const AccordionGroupContext: import("react").Context<AccordionGroupContextType | null>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=AccordionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionContext.d.ts","sourceRoot":"","sources":["../../src/components/AccordionContext.tsx"],"names":[],"mappings":"AAIA,KAAK,yBAAyB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,qBAAqB,2DAAwD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionContext.jsx","sourceRoot":"","sources":["../../src/components/AccordionContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAmC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
type AccordionGroupMdxProps = {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
};
|
|
5
|
+
export declare function AccordionGroupMdx({ children }: AccordionGroupMdxProps): import("react").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=AccordionGroupMdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionGroupMdx.d.ts","sourceRoot":"","sources":["../../src/components/AccordionGroupMdx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1D,KAAK,sBAAsB,GAAG;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAsBrE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo, useState } from "react";
|
|
3
|
+
import { AccordionGroupContext } from "./AccordionContext";
|
|
4
|
+
export function AccordionGroupMdx({ children }) {
|
|
5
|
+
const [openTitle, setOpenTitle] = useState(null);
|
|
6
|
+
const value = useMemo(() => ({ inGroup: true, openTitle, setOpenTitle }), [openTitle]);
|
|
7
|
+
return (<AccordionGroupContext.Provider value={value}>
|
|
8
|
+
<div className="mdx-accordion-group" style={{
|
|
9
|
+
margin: "1rem 0",
|
|
10
|
+
display: "grid",
|
|
11
|
+
gap: "0.85rem",
|
|
12
|
+
}}>
|
|
13
|
+
{children}
|
|
14
|
+
</div>
|
|
15
|
+
</AccordionGroupContext.Provider>);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=AccordionGroupMdx.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionGroupMdx.jsx","sourceRoot":"","sources":["../../src/components/AccordionGroupMdx.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAA0B;IAClE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,OAAO,CACjB,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAClD,CAAC,SAAS,CAAC,CACd,CAAC;IAEF,OAAO,CACH,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CACzC;YAAA,CAAC,GAAG,CACA,SAAS,CAAC,qBAAqB,CAC/B,KAAK,CAAC,CAAC;YACH,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,SAAS;SACjB,CAAC,CAEF;gBAAA,CAAC,QAAQ,CACb;YAAA,EAAE,GAAG,CACT;QAAA,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CACpC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { IconProp } from "./IconMdx";
|
|
3
|
+
type AccordionMdxProps = {
|
|
4
|
+
title: string;
|
|
5
|
+
icon?: IconProp;
|
|
6
|
+
className?: string;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
export declare function AccordionMdx({ title, icon, className, children }: AccordionMdxProps): import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=AccordionMdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionMdx.d.ts","sourceRoot":"","sources":["../../src/components/AccordionMdx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExF,OAAO,EAAE,QAAQ,EAAqB,MAAM,WAAW,CAAC;AAGxD,KAAK,iBAAiB,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,+BAuGnF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useContext, useId, useState } from "react";
|
|
3
|
+
import { AccordionGroupContext } from "./AccordionContext";
|
|
4
|
+
import { resolveLucideIcon } from "./IconMdx";
|
|
5
|
+
import { ChevronRight } from "lucide-react";
|
|
6
|
+
export function AccordionMdx({ title, icon, className, children }) {
|
|
7
|
+
const groupContext = useContext(AccordionGroupContext);
|
|
8
|
+
const [localOpen, setLocalOpen] = useState(false);
|
|
9
|
+
const panelId = useId();
|
|
10
|
+
const triggerId = `${panelId}-trigger`;
|
|
11
|
+
const isGroup = groupContext?.inGroup === true;
|
|
12
|
+
const isOpen = isGroup ? groupContext?.openTitle === title : localOpen;
|
|
13
|
+
const resolvedIcon = resolveLucideIcon(icon);
|
|
14
|
+
function onToggle() {
|
|
15
|
+
if (isGroup && groupContext) {
|
|
16
|
+
groupContext.setOpenTitle(groupContext.openTitle === title ? null : title);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
setLocalOpen((prev) => !prev);
|
|
20
|
+
}
|
|
21
|
+
return (<div className={`mdx-accordion ${isGroup ? "mdx-accordion-group-item" : ""} ${className ?? ""}`} style={{
|
|
22
|
+
border: "1px solid hsl(var(--border, 210 14% 94%))",
|
|
23
|
+
borderRadius: 10,
|
|
24
|
+
overflow: "hidden",
|
|
25
|
+
background: "hsl(var(--card, 0 0% 100%))",
|
|
26
|
+
}}>
|
|
27
|
+
<button className="mdx-accordion-header" type="button" onClick={onToggle} aria-expanded={isOpen} aria-controls={panelId} id={triggerId} onKeyDown={(event) => {
|
|
28
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
onToggle();
|
|
31
|
+
}
|
|
32
|
+
}} style={{
|
|
33
|
+
width: "100%",
|
|
34
|
+
display: "flex",
|
|
35
|
+
alignItems: "center",
|
|
36
|
+
justifyContent: "flex-start",
|
|
37
|
+
gap: "0.5rem",
|
|
38
|
+
textAlign: "left",
|
|
39
|
+
border: 0,
|
|
40
|
+
cursor: "pointer",
|
|
41
|
+
background: "hsl(var(--muted, 210 12% 96%))",
|
|
42
|
+
color: "hsl(var(--foreground, 222 12% 12%))",
|
|
43
|
+
fontWeight: 600,
|
|
44
|
+
padding: "0.95rem 1rem",
|
|
45
|
+
}}>
|
|
46
|
+
<ChevronRight className="mdx-accordion-chevron" aria-hidden="true" size={16} style={{
|
|
47
|
+
transform: isOpen ? "rotate(90deg)" : "rotate(0deg)",
|
|
48
|
+
transition: "transform 0.2s ease",
|
|
49
|
+
flexShrink: 0,
|
|
50
|
+
color: "hsl(var(--foreground, 222 12% 12%) / 0.74)",
|
|
51
|
+
marginRight: "0.4rem",
|
|
52
|
+
}}/>
|
|
53
|
+
<span style={{ display: "inline-flex", alignItems: "center", gap: "0.5rem", flex: 1 }}>
|
|
54
|
+
{resolvedIcon ? (<span aria-hidden="true" style={{
|
|
55
|
+
display: "inline-flex",
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
justifyContent: "center",
|
|
58
|
+
minWidth: "1.45rem",
|
|
59
|
+
height: "1.45rem",
|
|
60
|
+
color: "hsl(var(--foreground, 222 12% 12%))",
|
|
61
|
+
}}>
|
|
62
|
+
{resolvedIcon}
|
|
63
|
+
</span>) : null}
|
|
64
|
+
<span>{title}</span>
|
|
65
|
+
</span>
|
|
66
|
+
</button>
|
|
67
|
+
<div id={panelId} role="region" aria-labelledby={triggerId} hidden={!isOpen} className="mdx-accordion-content" style={{
|
|
68
|
+
padding: "0.75rem 0.8rem",
|
|
69
|
+
background: "hsl(var(--card, 0 0% 100%))",
|
|
70
|
+
color: "hsl(var(--card-foreground, 222 12% 20%))",
|
|
71
|
+
}}>
|
|
72
|
+
{children}
|
|
73
|
+
</div>
|
|
74
|
+
</div>);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=AccordionMdx.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionMdx.jsx","sourceRoot":"","sources":["../../src/components/AccordionMdx.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, ComponentType } from "react";
|
|
2
|
+
import { IconProp } from "./IconMdx";
|
|
3
|
+
import type { LinkMdxProps } from "./LinkMdx";
|
|
4
|
+
type LinkRenderer = ComponentType<LinkMdxProps>;
|
|
5
|
+
export type ButtonMdxProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
6
|
+
href?: string;
|
|
7
|
+
variant?: "primary" | "secondary" | "ghost";
|
|
8
|
+
variation?: "primary" | "secondary" | "ghost";
|
|
9
|
+
size?: "sm" | "md" | "lg";
|
|
10
|
+
icon?: IconProp;
|
|
11
|
+
text?: string;
|
|
12
|
+
target?: string;
|
|
13
|
+
/** Internal adapter hook: inject framework link component without duplicating styles. */
|
|
14
|
+
__LinkComponent?: LinkRenderer;
|
|
15
|
+
};
|
|
16
|
+
export declare function ButtonMdx({ href, variant, variation, size, icon, text, style, children, target, __LinkComponent, ...props }: ButtonMdxProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=ButtonMdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonMdx.d.ts","sourceRoot":"","sources":["../../src/components/ButtonMdx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAqB,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,KAAK,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IAC9C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,eAAe,CAAC,EAAE,YAAY,CAAC;CAClC,CAAC;AA0CF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,+BAyBlJ"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { LinkMdx } from "./LinkMdx";
|
|
2
|
+
import { resolveLucideIcon } from "./IconMdx";
|
|
3
|
+
const baseStyle = {
|
|
4
|
+
display: "inline-flex",
|
|
5
|
+
alignItems: "center",
|
|
6
|
+
justifyContent: "center",
|
|
7
|
+
gap: "0.375rem",
|
|
8
|
+
borderRadius: 10,
|
|
9
|
+
border: "1px solid hsl(var(--border, 210 14% 94%))",
|
|
10
|
+
background: "hsl(var(--card, 0 0% 100%))",
|
|
11
|
+
color: "hsl(var(--foreground, 222 12% 12%))",
|
|
12
|
+
textDecoration: "none",
|
|
13
|
+
fontWeight: 600,
|
|
14
|
+
fontSize: "0.9rem",
|
|
15
|
+
lineHeight: 1,
|
|
16
|
+
padding: "0.65rem 0.85rem",
|
|
17
|
+
cursor: "pointer",
|
|
18
|
+
};
|
|
19
|
+
const variantStyles = {
|
|
20
|
+
primary: {
|
|
21
|
+
background: "hsl(var(--accent, 200 100% 40%))",
|
|
22
|
+
borderColor: "hsl(var(--accent, 200 100% 40%))",
|
|
23
|
+
color: "#ffffff",
|
|
24
|
+
},
|
|
25
|
+
secondary: {
|
|
26
|
+
background: "hsl(var(--muted, 210 12% 96%))",
|
|
27
|
+
color: "hsl(var(--foreground, 222 12% 12%))",
|
|
28
|
+
},
|
|
29
|
+
ghost: {
|
|
30
|
+
background: "transparent",
|
|
31
|
+
borderColor: "transparent",
|
|
32
|
+
color: "hsl(var(--foreground, 222 12% 12%))",
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
const sizeStyles = {
|
|
36
|
+
sm: { padding: "0.45rem 0.6rem", fontSize: "0.8rem" },
|
|
37
|
+
md: { padding: "0.65rem 0.85rem", fontSize: "0.9rem" },
|
|
38
|
+
lg: { padding: "0.8rem 1rem", fontSize: "0.96rem" },
|
|
39
|
+
};
|
|
40
|
+
export function ButtonMdx({ href, variant, variation, size = "md", icon, text, style, children, target, __LinkComponent, ...props }) {
|
|
41
|
+
const resolvedVariant = variation ?? variant ?? "secondary";
|
|
42
|
+
const mergedStyle = { ...baseStyle, ...variantStyles[resolvedVariant], ...sizeStyles[size], ...style };
|
|
43
|
+
const resolvedIcon = resolveLucideIcon(icon);
|
|
44
|
+
const LinkComponent = __LinkComponent ?? LinkMdx;
|
|
45
|
+
const content = (<>
|
|
46
|
+
{resolvedIcon ? <span aria-hidden="true" style={{ display: "inline-flex", alignItems: "center", justifyContent: "center" }}>{resolvedIcon}</span> : null}
|
|
47
|
+
{text ?? children}
|
|
48
|
+
</>);
|
|
49
|
+
if (href) {
|
|
50
|
+
return (<LinkComponent href={href} target={target} style={mergedStyle}>
|
|
51
|
+
{content}
|
|
52
|
+
</LinkComponent>);
|
|
53
|
+
}
|
|
54
|
+
return (<button type={props.type ?? "button"} {...props} style={mergedStyle}>
|
|
55
|
+
{content}
|
|
56
|
+
</button>);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=ButtonMdx.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonMdx.jsx","sourceRoot":"","sources":["../../src/components/ButtonMdx.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from "react";
|
|
2
|
+
type CardGroupMdxProps = {
|
|
3
|
+
cols?: number;
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
style?: CSSProperties;
|
|
6
|
+
};
|
|
7
|
+
export declare function CardGroupMdx({ cols, children, style }: CardGroupMdxProps): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=CardGroupMdx.d.ts.map
|