@pickaxeproject/react 0.0.29 → 0.0.30

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 (57) hide show
  1. package/dist/cjs/common/lotties/loader-black.js +1 -0
  2. package/dist/cjs/common/lotties/loader-white.js +1 -0
  3. package/dist/cjs/components/Pickaxe/Chat/History/Message.js +1 -1
  4. package/dist/cjs/components/Pickaxe/Chat/History/index.js +1 -1
  5. package/dist/cjs/components/Pickaxe/Chat/Input.js +1 -1
  6. package/dist/cjs/components/Pickaxe/Form/History/Item.js +1 -1
  7. package/dist/cjs/components/Pickaxe/Form/History/Response.js +1 -1
  8. package/dist/cjs/components/Pickaxe/Form/Questions/Submit.js +1 -1
  9. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/A.js +1 -0
  10. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/Renderer.js +1 -0
  11. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.js +1 -0
  12. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown/index.js +1 -0
  13. package/dist/cjs/index.js +1 -1
  14. package/dist/cjs/src/common/lotties/loader-black.d.ts +429 -0
  15. package/dist/cjs/src/common/lotties/loader-white.d.ts +429 -0
  16. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/A.d.ts +4 -0
  17. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/Renderer.d.ts +10 -0
  18. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.d.ts +10 -0
  19. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown/index.d.ts +23 -0
  20. package/dist/cjs/src/index.d.ts +2 -2
  21. package/dist/esm/common/lotties/loader-black.js +1 -0
  22. package/dist/esm/common/lotties/loader-white.js +1 -0
  23. package/dist/esm/components/Pickaxe/Chat/History/Message.js +1 -1
  24. package/dist/esm/components/Pickaxe/Chat/History/index.js +1 -1
  25. package/dist/esm/components/Pickaxe/Chat/Input.js +1 -1
  26. package/dist/esm/components/Pickaxe/Form/History/Item.js +1 -1
  27. package/dist/esm/components/Pickaxe/Form/History/Response.js +1 -1
  28. package/dist/esm/components/Pickaxe/Form/Questions/Submit.js +1 -1
  29. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/A.js +1 -0
  30. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/Renderer.js +1 -0
  31. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.js +1 -0
  32. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown/index.js +1 -0
  33. package/dist/esm/index.js +1 -1
  34. package/dist/esm/src/common/lotties/loader-black.d.ts +429 -0
  35. package/dist/esm/src/common/lotties/loader-white.d.ts +429 -0
  36. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/A.d.ts +4 -0
  37. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/Renderer.d.ts +10 -0
  38. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/hooks/usePickaxeMarkdownContext.d.ts +10 -0
  39. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown/index.d.ts +23 -0
  40. package/dist/esm/src/index.d.ts +2 -2
  41. package/package.json +15 -5
  42. package/dist/cjs/common/renderer.js +0 -1
  43. package/dist/cjs/components/Pickaxe/common/PickaxeMarkdown.js +0 -1
  44. package/dist/cjs/hooks/pickaxe/useActions.js +0 -1
  45. package/dist/cjs/hooks/pickaxe/useLinkPreviews.js +0 -1
  46. package/dist/cjs/src/common/renderer.d.ts +0 -14
  47. package/dist/cjs/src/components/Pickaxe/common/PickaxeMarkdown.d.ts +0 -13
  48. package/dist/cjs/src/hooks/pickaxe/useActions.d.ts +0 -8
  49. package/dist/cjs/src/hooks/pickaxe/useLinkPreviews.d.ts +0 -6
  50. package/dist/esm/common/renderer.js +0 -1
  51. package/dist/esm/components/Pickaxe/common/PickaxeMarkdown.js +0 -1
  52. package/dist/esm/hooks/pickaxe/useActions.js +0 -1
  53. package/dist/esm/hooks/pickaxe/useLinkPreviews.js +0 -1
  54. package/dist/esm/src/common/renderer.d.ts +0 -14
  55. package/dist/esm/src/components/Pickaxe/common/PickaxeMarkdown.d.ts +0 -13
  56. package/dist/esm/src/hooks/pickaxe/useActions.d.ts +0 -8
  57. package/dist/esm/src/hooks/pickaxe/useLinkPreviews.d.ts +0 -6
@@ -0,0 +1,429 @@
1
+ export declare const loaderWhite: {
2
+ nm: string;
3
+ ddd: number;
4
+ h: number;
5
+ w: number;
6
+ meta: {
7
+ g: string;
8
+ };
9
+ layers: ({
10
+ ty: number;
11
+ nm: string;
12
+ sr: number;
13
+ st: number;
14
+ op: number;
15
+ ip: number;
16
+ hd: boolean;
17
+ ddd: number;
18
+ bm: number;
19
+ hasMask: boolean;
20
+ ao: number;
21
+ ks: {
22
+ a: {
23
+ a: number;
24
+ k: number[];
25
+ };
26
+ s: {
27
+ a: number;
28
+ k: number[];
29
+ };
30
+ sk: {
31
+ a: number;
32
+ k: number;
33
+ };
34
+ p: {
35
+ a: number;
36
+ k: number[];
37
+ };
38
+ r: {
39
+ a: number;
40
+ k: ({
41
+ o: {
42
+ x: number;
43
+ y: number;
44
+ };
45
+ i: {
46
+ x: number;
47
+ y: number;
48
+ };
49
+ s: number[];
50
+ t: number;
51
+ } | {
52
+ s: number[];
53
+ t: number;
54
+ o?: undefined;
55
+ i?: undefined;
56
+ })[];
57
+ };
58
+ sa: {
59
+ a: number;
60
+ k: number;
61
+ };
62
+ o: {
63
+ a: number;
64
+ k: number;
65
+ };
66
+ };
67
+ shapes: {
68
+ ty: string;
69
+ bm: number;
70
+ hd: boolean;
71
+ mn: string;
72
+ nm: string;
73
+ ix: number;
74
+ cix: number;
75
+ np: number;
76
+ it: ({
77
+ ty: string;
78
+ bm: number;
79
+ hd: boolean;
80
+ mn: string;
81
+ nm: string;
82
+ d: number;
83
+ p: {
84
+ a: number;
85
+ k: number[];
86
+ ix?: undefined;
87
+ };
88
+ s: {
89
+ a: number;
90
+ k: number[];
91
+ ix?: undefined;
92
+ };
93
+ lc?: undefined;
94
+ lj?: undefined;
95
+ ml?: undefined;
96
+ o?: undefined;
97
+ w?: undefined;
98
+ c?: undefined;
99
+ r?: undefined;
100
+ a?: undefined;
101
+ sk?: undefined;
102
+ sa?: undefined;
103
+ } | {
104
+ ty: string;
105
+ bm: number;
106
+ hd: boolean;
107
+ mn: string;
108
+ nm: string;
109
+ lc: number;
110
+ lj: number;
111
+ ml: number;
112
+ o: {
113
+ a: number;
114
+ k: number;
115
+ ix?: undefined;
116
+ };
117
+ w: {
118
+ a: number;
119
+ k: number;
120
+ };
121
+ c: {
122
+ a: number;
123
+ k: number[];
124
+ };
125
+ d?: undefined;
126
+ p?: undefined;
127
+ s?: undefined;
128
+ r?: undefined;
129
+ a?: undefined;
130
+ sk?: undefined;
131
+ sa?: undefined;
132
+ } | {
133
+ ty: string;
134
+ bm: number;
135
+ hd: boolean;
136
+ mn: string;
137
+ nm: string;
138
+ c: {
139
+ a: number;
140
+ k: number[];
141
+ };
142
+ r: number;
143
+ o: {
144
+ a: number;
145
+ k: number;
146
+ ix?: undefined;
147
+ };
148
+ d?: undefined;
149
+ p?: undefined;
150
+ s?: undefined;
151
+ lc?: undefined;
152
+ lj?: undefined;
153
+ ml?: undefined;
154
+ w?: undefined;
155
+ a?: undefined;
156
+ sk?: undefined;
157
+ sa?: undefined;
158
+ } | {
159
+ ty: string;
160
+ a: {
161
+ a: number;
162
+ k: number[];
163
+ ix: number;
164
+ };
165
+ s: {
166
+ a: number;
167
+ k: number[];
168
+ ix: number;
169
+ };
170
+ sk: {
171
+ a: number;
172
+ k: number;
173
+ ix: number;
174
+ };
175
+ p: {
176
+ a: number;
177
+ k: number[];
178
+ ix: number;
179
+ };
180
+ r: {
181
+ a: number;
182
+ k: number;
183
+ ix: number;
184
+ };
185
+ sa: {
186
+ a: number;
187
+ k: number;
188
+ ix: number;
189
+ };
190
+ o: {
191
+ a: number;
192
+ k: number;
193
+ ix: number;
194
+ };
195
+ bm?: undefined;
196
+ hd?: undefined;
197
+ mn?: undefined;
198
+ nm?: undefined;
199
+ d?: undefined;
200
+ lc?: undefined;
201
+ lj?: undefined;
202
+ ml?: undefined;
203
+ w?: undefined;
204
+ c?: undefined;
205
+ })[];
206
+ }[];
207
+ ind: number;
208
+ } | {
209
+ ty: number;
210
+ nm: string;
211
+ sr: number;
212
+ st: number;
213
+ op: number;
214
+ ip: number;
215
+ hd: boolean;
216
+ ddd: number;
217
+ bm: number;
218
+ hasMask: boolean;
219
+ ao: number;
220
+ ks: {
221
+ a: {
222
+ a: number;
223
+ k: number[];
224
+ };
225
+ s: {
226
+ a: number;
227
+ k: number[];
228
+ };
229
+ sk: {
230
+ a: number;
231
+ k: number;
232
+ };
233
+ p: {
234
+ a: number;
235
+ k: number[];
236
+ };
237
+ r: {
238
+ a: number;
239
+ k: ({
240
+ o: {
241
+ x: number;
242
+ y: number;
243
+ };
244
+ i: {
245
+ x: number;
246
+ y: number;
247
+ };
248
+ s: number[];
249
+ t: number;
250
+ } | {
251
+ s: number[];
252
+ t: number;
253
+ o?: undefined;
254
+ i?: undefined;
255
+ })[];
256
+ };
257
+ sa: {
258
+ a: number;
259
+ k: number;
260
+ };
261
+ o: {
262
+ a: number;
263
+ k: number;
264
+ };
265
+ };
266
+ shapes: {
267
+ ty: string;
268
+ bm: number;
269
+ hd: boolean;
270
+ mn: string;
271
+ nm: string;
272
+ ix: number;
273
+ cix: number;
274
+ np: number;
275
+ it: ({
276
+ ty: string;
277
+ bm: number;
278
+ hd: boolean;
279
+ mn: string;
280
+ nm: string;
281
+ d: number;
282
+ p: {
283
+ a: number;
284
+ k: number[];
285
+ ix?: undefined;
286
+ };
287
+ s: {
288
+ a: number;
289
+ k: ({
290
+ o: {
291
+ x: number;
292
+ y: number;
293
+ };
294
+ i: {
295
+ x: number;
296
+ y: number;
297
+ };
298
+ s: number[];
299
+ t: number;
300
+ } | {
301
+ s: number[];
302
+ t: number;
303
+ o?: undefined;
304
+ i?: undefined;
305
+ })[];
306
+ ix?: undefined;
307
+ };
308
+ lc?: undefined;
309
+ lj?: undefined;
310
+ ml?: undefined;
311
+ o?: undefined;
312
+ w?: undefined;
313
+ c?: undefined;
314
+ r?: undefined;
315
+ a?: undefined;
316
+ sk?: undefined;
317
+ sa?: undefined;
318
+ } | {
319
+ ty: string;
320
+ bm: number;
321
+ hd: boolean;
322
+ mn: string;
323
+ nm: string;
324
+ lc: number;
325
+ lj: number;
326
+ ml: number;
327
+ o: {
328
+ a: number;
329
+ k: number;
330
+ ix?: undefined;
331
+ };
332
+ w: {
333
+ a: number;
334
+ k: number;
335
+ };
336
+ c: {
337
+ a: number;
338
+ k: number[];
339
+ };
340
+ d?: undefined;
341
+ p?: undefined;
342
+ s?: undefined;
343
+ r?: undefined;
344
+ a?: undefined;
345
+ sk?: undefined;
346
+ sa?: undefined;
347
+ } | {
348
+ ty: string;
349
+ bm: number;
350
+ hd: boolean;
351
+ mn: string;
352
+ nm: string;
353
+ c: {
354
+ a: number;
355
+ k: number[];
356
+ };
357
+ r: number;
358
+ o: {
359
+ a: number;
360
+ k: number;
361
+ ix?: undefined;
362
+ };
363
+ d?: undefined;
364
+ p?: undefined;
365
+ s?: undefined;
366
+ lc?: undefined;
367
+ lj?: undefined;
368
+ ml?: undefined;
369
+ w?: undefined;
370
+ a?: undefined;
371
+ sk?: undefined;
372
+ sa?: undefined;
373
+ } | {
374
+ ty: string;
375
+ a: {
376
+ a: number;
377
+ k: number[];
378
+ ix: number;
379
+ };
380
+ s: {
381
+ a: number;
382
+ k: number[];
383
+ ix: number;
384
+ };
385
+ sk: {
386
+ a: number;
387
+ k: number;
388
+ ix: number;
389
+ };
390
+ p: {
391
+ a: number;
392
+ k: number[];
393
+ ix: number;
394
+ };
395
+ r: {
396
+ a: number;
397
+ k: number;
398
+ ix: number;
399
+ };
400
+ sa: {
401
+ a: number;
402
+ k: number;
403
+ ix: number;
404
+ };
405
+ o: {
406
+ a: number;
407
+ k: number;
408
+ ix: number;
409
+ };
410
+ bm?: undefined;
411
+ hd?: undefined;
412
+ mn?: undefined;
413
+ nm?: undefined;
414
+ d?: undefined;
415
+ lc?: undefined;
416
+ lj?: undefined;
417
+ ml?: undefined;
418
+ w?: undefined;
419
+ c?: undefined;
420
+ })[];
421
+ }[];
422
+ ind: number;
423
+ })[];
424
+ v: string;
425
+ fr: number;
426
+ op: number;
427
+ ip: number;
428
+ assets: never[];
429
+ };
@@ -0,0 +1,4 @@
1
+ import type { FC, ComponentPropsWithoutRef } from "react";
2
+ import type { Node } from "./Renderer";
3
+ declare const A: FC<ComponentPropsWithoutRef<"a"> & Node>;
4
+ export default A;
@@ -0,0 +1,10 @@
1
+ import "katex/dist/katex.min.css";
2
+ export interface PickaxeMarkdownRendererProps {
3
+ className?: string;
4
+ value?: string | null;
5
+ }
6
+ export type Node = {
7
+ node?: any;
8
+ };
9
+ export declare const PickaxeMarkdownRenderer: ({ className, value, }: PickaxeMarkdownRendererProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default PickaxeMarkdownRenderer;
@@ -0,0 +1,10 @@
1
+ export declare const usePickaxeMarkdownContext: () => {
2
+ theme?: ("light" | "dark") | undefined;
3
+ accentColor?: string | undefined;
4
+ linkPreviews?: boolean | undefined;
5
+ actions?: boolean | undefined;
6
+ setTheme?: import("../../../../../types/common").SetState<"light" | "dark"> | undefined;
7
+ setAccentColor?: import("../../../../../types/common").SetState<string> | undefined;
8
+ setLinkPreviews?: import("../../../../../types/common").SetState<boolean> | undefined;
9
+ setActions?: import("../../../../../types/common").SetState<boolean> | undefined;
10
+ };
@@ -0,0 +1,23 @@
1
+ import type { SetState } from "../../../../types/common";
2
+ import { type ReactNode } from "react";
3
+ type PickaxeMarkdownTheme = "light" | "dark";
4
+ type PickaxeMarkdownContextType = {
5
+ theme?: PickaxeMarkdownTheme;
6
+ accentColor?: string;
7
+ linkPreviews?: boolean;
8
+ actions?: boolean;
9
+ setTheme?: SetState<PickaxeMarkdownTheme>;
10
+ setAccentColor?: SetState<string>;
11
+ setLinkPreviews?: SetState<boolean>;
12
+ setActions?: SetState<boolean>;
13
+ };
14
+ interface PickaxeMarkdownProps {
15
+ children: ReactNode;
16
+ theme?: PickaxeMarkdownTheme;
17
+ accentColor?: string;
18
+ linkPreviews?: boolean;
19
+ actions?: boolean;
20
+ }
21
+ export declare const PickaxeMarkdownContext: import("react").Context<PickaxeMarkdownContextType>;
22
+ declare const PickaxeMarkdown: ({ children, theme: _theme, accentColor: _accentColor, linkPreviews: _linkPreviews, actions: _actions, }: PickaxeMarkdownProps) => import("react/jsx-runtime").JSX.Element;
23
+ export default PickaxeMarkdown;
@@ -1,6 +1,8 @@
1
1
  export * from "./components/Pickaxe";
2
2
  export * from "./components/Pickaxe/Provider";
3
3
  export * from "./components/Pickaxe/ResponseProvider";
4
+ export * from "./components/Pickaxe/common/PickaxeMarkdown";
5
+ export * from "./components/Pickaxe/common/PickaxeMarkdown/Renderer";
4
6
  export * from "./hooks/pickaxe/useConversation";
5
7
  export * from "./hooks/pickaxe/useHistory";
6
8
  export * from "./hooks/pickaxe/usePickaxe";
@@ -9,5 +11,3 @@ export * from "./hooks/pickaxe/useResponseContext";
9
11
  export * from "./hooks/pickaxe/useSubmit";
10
12
  export * from "./hooks/pickaxe/useSubmitDocument";
11
13
  export * from "./hooks/pickaxe/useSubmitResult";
12
- export * from "./hooks/pickaxe/useLinkPreviews";
13
- export * from "./hooks/pickaxe/useActions";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pickaxeproject/react",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "description": "Client utility library for Pickaxe",
5
5
  "repository": {
6
6
  "type": "git",
@@ -70,6 +70,8 @@
70
70
  "@types/prismjs": "^1.26.5",
71
71
  "@types/react": "^18.0.26",
72
72
  "@types/react-dom": "^18.0.10",
73
+ "@types/react-lottie": "^1.2.10",
74
+ "@types/react-syntax-highlighter": "^15.5.13",
73
75
  "@typescript-eslint/eslint-plugin": "^5.48.1",
74
76
  "@typescript-eslint/parser": "^5.48.1",
75
77
  "@zerollup/ts-transform-paths": "^1.7.18",
@@ -92,17 +94,21 @@
92
94
  "isomorphic-dompurify": "^2.20.0",
93
95
  "katex": "^0.16.19",
94
96
  "lint-staged": "^13.1.0",
95
- "marked": "^15.0.6",
96
- "marked-katex-extension": "^5.1.4",
97
97
  "postcss": "^8.4.49",
98
98
  "prettier": "^2.8.2",
99
99
  "prismjs": "^1.29.0",
100
100
  "react": "^18.2.0",
101
101
  "react-dom": "^18.2.0",
102
102
  "react-intersection-observer": "^9.14.1",
103
+ "react-lottie": "^1.2.10",
104
+ "react-markdown": "^9.0.3",
105
+ "react-syntax-highlighter": "^15.6.1",
103
106
  "react-textarea-autosize": "^8.5.7",
104
107
  "react-tooltip": "^5.28.0",
105
108
  "react-virtualized-auto-sizer": "^1.0.25",
109
+ "rehype-katex": "^7.0.1",
110
+ "remark-gfm": "^4.0.0",
111
+ "remark-math": "^6.0.0",
106
112
  "rollup": "^2.79.1",
107
113
  "rollup-plugin-delete": "^2.0.0",
108
114
  "rollup-plugin-peer-deps-external": "^2.2.4",
@@ -133,14 +139,18 @@
133
139
  "framer-motion": "^11.17.0",
134
140
  "isomorphic-dompurify": "^2.20.0",
135
141
  "katex": "^0.16.19",
136
- "marked": "^15.0.6",
137
- "marked-katex-extension": "^5.1.4",
138
142
  "prismjs": "^1.29.0",
139
143
  "react": "^16.8.0 || ^17 || ^18",
140
144
  "react-dom": "^16.8.0 || ^17 || ^18",
141
145
  "react-intersection-observer": "^9.14.1",
146
+ "react-lottie": "^1.2.10",
147
+ "react-markdown": "^9.0.3",
148
+ "react-syntax-highlighter": "^15.6.1",
142
149
  "react-tooltip": "^5.28.0",
143
150
  "react-virtualized-auto-sizer": "^1.0.25",
151
+ "rehype-katex": "^7.0.1",
152
+ "remark-gfm": "^4.0.0",
153
+ "remark-math": "^6.0.0",
144
154
  "tailwind-merge": "^2.6.0",
145
155
  "tailwind-scrollbar": "^3.1.0"
146
156
  },
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("marked"),t=require("prismjs");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("prismjs/components/prism-css"),require("prismjs/components/prism-javascript"),require("prismjs/components/prism-markdown"),require("prismjs/components/prism-markup"),require("prismjs/components/prism-python");var n=r(t);exports.renderer=({theme:t="light",accentColor:r="#228DD7",centerMedia:i=!0,forceMobile:l=!1,linkPreviews:a=!1,actions:o=!1}={theme:"light",accentColor:"#228DD7",centerMedia:!1,forceMobile:!1,linkPreviews:!1,actions:!1})=>{const s=new e.marked.Renderer,d=s.link;s.link=e=>{const n=e.href.startsWith("www.")?`https://${e.href}`:e.href,l=n.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(l&&(null==l?void 0:l[1]))return i?`<div style="display: flex; justify-content: center; width: 100%; height: 315px; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; max-width: 560px; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`:`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`;if(null!==n.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/))return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${n}" alt="${e.text}" style="max-width:300px; width: 100%; height:auto; border-radius: 8px;">\n </div>`:`<img src="${n}" alt="${e.text}" style="max-width:300px; height:auto;">`;if(o&&n.includes("pickaxe")&&(n.includes("/api/fn/result")||n.includes("/api/function_call_results")))return`<dotlottie-wc src="${"dark"===t?"https://lottie.host/328aa2a8-b160-4124-a40c-5847f58da813/Vl0EK9lnJc.lottie":"https://lottie.host/6fd1b0ad-8816-4800-b511-3a259947a9b2/kh7G1Fz1HB.lottie"}" data-fn-url="${n}" class="marked-link-function-calling-loader" style="max-width:150px; width: 100%; height:150px; border: none; background: transparent;" autoplay loop></dotlottie-wc>`;let c=d.call(s,e);return c=c.replace(/^<a /,`<a style="color: ${r};" target="_blank" rel="noopener noreferrer"${a?' class="marked-link-possible-preview-render"':""}`),c},s.heading=({depth:e,text:t})=>1===e?`<h1 style="\n font-size: 2em;\n line-height: 1;\n "><b>${t}</b></h1>`:2===e?`<h2 style="\n font-size: 1.25em;\n "><b>${t}</b></h2>`:`<h${e} style="\n "><b>${t}</b></h${e}>`;const c=s.list;s.list=e=>{let t=c.call(s,e);return t=t.replace(/<\/p>\s*<\/li>/g,"</li>"),t=t.replace(/<li>\s*<p>/g,"<li>"),t=t.replace(/^<ol/,'<ol style="\n list-style: decimal inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t=t.replace(/^<ul/,'<ul style="\n list-style: disc inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t};const p=s.listitem;s.listitem=e=>{let t=p.call(s,e);return t=t.replace(/<li/,'<li style="\n margin-bottom: 4px;\n "'),t};const m=s.table;s.table=e=>{let t=m.call(s,e);return t=t.replace(/<table/,'<table style="margin-top: .5em; font-size: 16px;" class="table-auto"'),t};const u=s.tablecell;s.tablecell=e=>{let t=u.call(s,e);return t=t.replace(/<td/,'<td class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n "'),t=t.replace(/<th/,'<th class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n font-weight: 600;\n "'),t};const h=s.code;s.code=e=>{const t=h.call(s,e);return e.lang&&n.default.languages[e.lang]?`<div class="bg-[#EFF1F3] dark:bg-[#161b22]" style="position: relative; overflow: hidden;"><pre style="\n padding: .75em;\n border-radius: 0.25em;\n font-size: 16px;\n overflow: auto;\n max-width: ${window.innerWidth-100}px;\n">\n <code class="language-${e.lang}">\n${n.default.highlight(e.text,n.default.languages[e.lang],e.lang)}\n</code>\n<button class="copy-code-button bg-[#d0d7de] dark:bg-[#30363d] text-[#1f2328] dark:text-[#e6edf3]" \nstyle="\n position: absolute;\n top: -20px;\n right: 0;\n padding: .25em 1.4em .25em .5em;\n border-radius: 0 0 0 0.25em;\n font-size: ${l?"12":"14"}px;\n cursor: pointer;\n user-select: none;\n border: none;\n outline: none;\n z-index: 1;\n">\n Copy\n</button></pre></div>`:t};const b=s.codespan;s.codespan=e=>b.call(s,e).replace(/<code/,`<code class="bg-[#EFF1F3] dark:bg-[#161b22] text-[#1f2328] dark:text-[#e6edf3]" style="\n padding: 0 .25em 0 .25em;\n border-radius: 0.25em;\n font-size: ${l?"14px":"16px"};\n margin-left: 2px;\n "`);const g=s.blockquote;return s.blockquote=e=>g.call(s,e).replace(/<blockquote/,'<blockquote class="border-l-[#D0D7DE] dark:border-l-[#30363D] text-[#656d76] dark:text-[#8b8b8b]" style="\n border-left-width: 4px;\n padding-left: 1em;\n "'),s.image=e=>{const t=e.href.startsWith("www.")?`https://${e.href}`:e.href;return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">\n </div>`:`<img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">`},s};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("marked"),o=require("../../../common/renderer.js"),n=require("../../../hooks/pickaxe/usePickaxeContext.js"),c=require("../../../hooks/studio/useStyleFontSize.js"),s=require("../../../hooks/pickaxe/useLinkPreviews.js"),i=require("../../../hooks/pickaxe/useActions.js"),a=require("marked-katex-extension"),u=require("copy-to-clipboard"),l=require("../../Core/HtmlRenderer.js"),d=require("../../../common/cn.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=m(a),p=m(u);r.marked.use(h.default({throwOnError:!1,output:"mathml"}));exports.default=({html:a,className:u,style:m,marked:h,renderer:f,onClick:k})=>{const{styles:v,colors:y}=n.usePickaxeContext(),b=t.useRef(null),x=c.useStyleFontSize({type:"body"});s.useLinkPreviews(b,{theme:v.theme}),i.useActions(b,{theme:v.theme,accentColor:y.accent,accentTextColor:y.accentText}),t.useEffect((()=>{const e=b.current;if(!e)return;const t=e=>{var t,r,o;const n=e.target.closest(".copy-code-button");if(n){const e=null!==(o=null===(r=null===(t=n.parentElement)||void 0===t?void 0:t.querySelector("code"))||void 0===r?void 0:r.textContent)&&void 0!==o?o:"";if(!e)return;p.default(e)}};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}),[b]);const w=t.useMemo((()=>{let e=a||"";const t=e.match(/<iframe\s+[^>]*src=["']https:\/\/www\.youtube\.com\/embed\/([\w-]+)(\?[^"' >]*)?["'][^>]*><\/iframe>/gi);return t&&t.forEach((t=>{var r;const o=`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${null===(r=t.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([\w-]+)/))||void 0===r?void 0:r[1]}"\n style="width: 100%; height: 100%;"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"\n allowfullscreen>\n </iframe>\n</div>`;e=e.replace(t,o)})),e.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,t)=>t?"\n\n<br/>\n":e))}),[a]);return e.jsx("div",Object.assign({ref:b},{children:e.jsx(l.default,{html:r.marked.parse(w,Object.assign({gfm:!0,breaks:!0,renderer:o.renderer(Object.assign(Object.assign({},f),{theme:v.theme,accentColor:y.accent,centerMedia:!1,linkPreviews:!0,actions:!0}))},h)).toString(),className:d.default(u,x()),style:m,onClick:k})}))};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react"),n=require("marked"),o=require("../../common/renderer.js"),r=require("../../common/api/streamer.js"),i=require("../../common/api/utils.js");const l=(t,r)=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,i;const l=t.replace(/```[\s\S]*?```|(\n(?=\n))/g,((e,t)=>t?"\n\n<br/>\n":e));return yield n.marked.parse(l,{gfm:!0,breaks:!0,renderer:o.renderer({theme:null!==(e=null==r?void 0:r.theme)&&void 0!==e?e:"light",accentColor:null!==(i=null==r?void 0:r.accentColor)&&void 0!==i?i:"#228DD7",centerMedia:!1,linkPreviews:!0,actions:!0})})})),s=(t,n)=>e.__awaiter(void 0,void 0,void 0,(function*(){try{yield i.default.post("/fn/update",{id:t,data:n})}catch(e){console.error("[updateCache] error",e)}}));exports.useActions=(n,o)=>{t.useEffect((()=>{const t=null==n?void 0:n.current;if(!t)return;const i=new MutationObserver((()=>e.__awaiter(void 0,void 0,void 0,(function*(){var e,t,n,i,d,a,c;const u=document.querySelectorAll(".marked-link-function-calling-loader");for(const m of u){if(m.dataset.processed)continue;"development"===process.env.NODE_ENV&&console.log("[useActions] getting action",m.href);const u=null!==(n=null!==(t=null===(e=m.parentElement)||void 0===e?void 0:e.parentElement)&&void 0!==t?t:m.parentElement)&&void 0!==n?n:null;if(!u){console.error("[useActions] missing message container");continue}const p=null!==(i=m.getAttribute("alt"))&&void 0!==i?i:m.getAttribute("data-fn-url");if(!p){console.error("[useActions] missing fn result url");continue}const v=yield fetch(p);if(200!==v.status){console.error("[useActions] failed fetching result:",v);continue}const f=yield v.json();if(f.error)console.error("[useActions] error in req:",f.error);else if(f.fcid)"development"===process.env.NODE_ENV&&console.log("[useActions] waiting for fn call to complete");else{if(f.url){m.remove();const e=document.createElement("img");e.src=f.url,e.alt=null!==(d=f.prompt)&&void 0!==d?d:"Generated Image",e.style.marginTop="1em",e.style.borderRadius="4px",e.style.width="100%",u.appendChild(e);const t=document.createElement("div");t.style.marginTop="1em",t.style.display="flex",t.style.alignItems="center",t.style.justifyContent="flex-end",t.style.gap="0.5em",t.style.width="100%";const n=document.createElement("button");n.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M21 21H3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n<path d="M7 10L12 15L17 10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n<path d="M12 15V3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>\n</svg>\n',n.style.padding=".5em",n.style.backgroundColor="#228DD7",n.style.color=null!==(a=null==o?void 0:o.accentTextColor)&&void 0!==a?a:"#FFFFFF",n.style.textAlign="center",n.style.textDecoration="none",n.style.borderRadius="4px",n.style.fontSize="16px",n.style.fontWeight="bold",n.style.boxShadow="0 2px 5px rgba(0, 0, 0, 0.2)",n.style.transition="background-color 0.3s ease",n.addEventListener("mouseover",(function(){var e;n.style.backgroundColor=(null!==(e=null==o?void 0:o.accentColor)&&void 0!==e?e:"#228DD7")+"CC"})),n.addEventListener("mouseout",(function(){var e;n.style.backgroundColor=null!==(e=null==o?void 0:o.accentColor)&&void 0!==e?e:"#228DD7"})),n.addEventListener("click",(function(e){var t;e.preventDefault();const n=document.createElement("a");n.href=null!==(t=f.url)&&void 0!==t?t:"",n.download="generated_image.png",n.click()})),t.appendChild(n),u.appendChild(t)}if(f.text){m.remove();const e=document.createElement("div");e.style.marginTop="1em",e.innerHTML=yield l(f.text),u.appendChild(e)}if(f.button_link){m.remove();const e=document.createElement("a");e.href=f.button_link,e.target="_blank",e.classList.add("link-preview-button"),e.textContent=f.button_text||"",e.style.display="inline-block",e.style.padding="10px 20px",e.style.backgroundColor="#228DD7",e.style.color="#ffffff",e.style.textAlign="center",e.style.textDecoration="none",e.style.borderRadius="4px",e.style.fontSize="16px",e.style.fontWeight="bold",e.style.boxShadow="0 2px 5px rgba(0, 0, 0, 0.2)",e.style.transition="background-color 0.3s ease",e.addEventListener("mouseover",(function(){e.style.backgroundColor="#489dd9"})),e.addEventListener("mouseout",(function(){e.style.backgroundColor="#228DD7"})),u.appendChild(document.createElement("br")),u.appendChild(e)}if(f.openaidata&&!f.text){const e=null!==(c=new URL(p).searchParams.get("id"))&&void 0!==c?c:f.call_id,t=null==f?void 0:f.actionId;m.remove();const n=f.formId;if(!n){console.error("Missing formId from result data");continue}const o=f.responseId;if(!o){console.error("Missing responseId from result data");continue}const i=(yield r.streamer({formId:n,responseId:o,data:f.openaidata})).body;if(!i){console.error("Streaming error, no response body");continue}let d=!0,a="";const v=document.createElement("div");v.style.marginTop="1em",v.dataset.actionId=t,u.appendChild(v);const g=i.getReader(),y=new TextDecoder;for(;d;){const{value:e,done:t}=yield g.read();d=!t;a+=y.decode(e),"marked"in window?v.innerHTML=yield l(a):v.textContent=a}const b=null!=e?e:f.call_id;b&&(yield s(b,Object.assign(Object.assign({},f),{text:a})))}}}}))));return i.observe(t,{childList:!0,subtree:!0}),()=>{i.disconnect()}}),[n])};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react"),r=require("../../common/api/utils.js"),o=require("../../common/error.js");const i=e=>{setTimeout((()=>{e.style.opacity="1",e.style.transform="scale(1)"}),50)},n=e=>{e.onmouseover=()=>{e.style.transform="scale(.99)"},e.onmouseout=()=>{e.style.transform="scale(1)"}},s=t=>e.__awaiter(void 0,void 0,void 0,(function*(){try{const e=yield r.default.get(`/metadata?url=${encodeURIComponent(t)}`);return e.data}catch(e){const t=o.default(e);return console.error("[fetchMetadata] error",t),null}}));exports.useLinkPreviews=(r,o)=>{t.useEffect((()=>{const t=null==r?void 0:r.current;if(!t)return;const a=new MutationObserver((()=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=t.querySelectorAll(".marked-link-possible-preview-render");for(const t of e){"development"===process.env.NODE_ENV&&console.log("[useLinkPreviews] getting preview for",t.href),t.classList.remove("marked-link-possible-preview-render");const e=t.closest(".chat-message");if(!e)continue;if(e.querySelector(`div[data-href="${t.href}"]`))continue;const r=yield s(t.href);if(!r||!r.image||!r.title)continue;const a=document.createElement("div");a.setAttribute("style","display: flex; margin-top: 2em; text-decoration: none;"),a.dataset.href=t.href,a.dataset.processed="true";const l=o?"dark"===o.theme:document.documentElement.classList.contains("dark"),d=document.createElement("a");if(d.href=t.href,d.setAttribute("target","_blank"),d.setAttribute("style",`display: flex; position: relative; flex-direction: column; border-radius: 20px; border-bottom-left-radius: 10px; width: 100%; max-width: 220px; background-color: #${l?"000000":"E9E9EB"}; overflow: hidden;`),r.image&&(r.image.startsWith("http")||r.image.startsWith("data:image")||r.image.startsWith("blob:"))){const e=document.createElement("div");e.setAttribute("style",`position: relative; flex-grow: 1; width: 100%; overflow: hidden; background-image: url("${r.image}"); background-size: cover; background-position: center; height: 90px;`),d.appendChild(e)}const c=document.createElement("div");c.setAttribute("style","display: flex; flex-direction: column; padding: 0.25em 1em; gap: 0.2em;");const u=document.createElement("p");u.textContent=r.title,u.setAttribute("style","font-size: 14px; font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"),c.appendChild(u);const m=document.createElement("p");m.textContent=r.href,m.setAttribute("style","opacity: 0.6; font-size: 14px; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"),c.appendChild(m),d.appendChild(c),a.appendChild(d);const p=t.closest(".chat-message");p&&(p.querySelector(`div[data-href="${t.href}"]`)||(p.appendChild(a),i(d),n(d)))}}))));return a.observe(t,{childList:!0,subtree:!0}),()=>{a.disconnect()}}),[r])};
@@ -1,14 +0,0 @@
1
- import "prismjs/components/prism-css";
2
- import "prismjs/components/prism-javascript";
3
- import "prismjs/components/prism-markdown";
4
- import "prismjs/components/prism-markup";
5
- import "prismjs/components/prism-python";
6
- export interface RendererOptions {
7
- theme?: "light" | "dark";
8
- accentColor?: string;
9
- centerMedia?: boolean;
10
- forceMobile?: boolean;
11
- linkPreviews?: boolean;
12
- actions?: boolean;
13
- }
14
- export declare const renderer: ({ theme, accentColor, centerMedia, forceMobile, linkPreviews, actions, }?: RendererOptions) => import("marked").Renderer;
@@ -1,13 +0,0 @@
1
- import { type CSSProperties } from "react";
2
- import { type MarkedOptions } from "marked";
3
- import { type RendererOptions } from "../../../common/renderer";
4
- interface PickaxeMarkdownProps {
5
- html?: string | null;
6
- className?: string;
7
- style?: CSSProperties;
8
- renderer?: RendererOptions;
9
- marked?: MarkedOptions;
10
- onClick?: () => void;
11
- }
12
- declare const PickaxeMarkdown: ({ html: _html, className, style, marked: _marked, renderer: _renderer, onClick, }: PickaxeMarkdownProps) => import("react/jsx-runtime").JSX.Element;
13
- export default PickaxeMarkdown;
@@ -1,8 +0,0 @@
1
- import { RefObject } from "react";
2
- interface UseActionsOptions {
3
- theme?: "light" | "dark";
4
- accentColor?: string;
5
- accentTextColor?: string;
6
- }
7
- export declare const useActions: (ref: RefObject<HTMLDivElement> | null, opt?: UseActionsOptions) => void;
8
- export {};
@@ -1,6 +0,0 @@
1
- import { RefObject } from "react";
2
- interface UseLinkPreviewOptions {
3
- theme?: "light" | "dark";
4
- }
5
- export declare const useLinkPreviews: (ref: RefObject<HTMLDivElement> | null, opt?: UseLinkPreviewOptions) => void;
6
- export {};
@@ -1 +0,0 @@
1
- import{marked as e}from"marked";import t from"prismjs";import"prismjs/components/prism-css";import"prismjs/components/prism-javascript";import"prismjs/components/prism-markdown";import"prismjs/components/prism-markup";import"prismjs/components/prism-python";const n=({theme:n="light",accentColor:r="#228DD7",centerMedia:i=!0,forceMobile:l=!1,linkPreviews:o=!1,actions:a=!1}={theme:"light",accentColor:"#228DD7",centerMedia:!1,forceMobile:!1,linkPreviews:!1,actions:!1})=>{const s=new e.Renderer,d=s.link;s.link=e=>{const t=e.href.startsWith("www.")?`https://${e.href}`:e.href,l=t.match(/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([\w-]+)/i);if(l&&(null==l?void 0:l[1]))return i?`<div style="display: flex; justify-content: center; width: 100%; height: 315px; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; max-width: 560px; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`:`<div style="width: 100%; height: 315px; max-width: 560px;">\n <iframe src="https://www.youtube.com/embed/${l[1]}" \n style="width: 100%; height: 100%;" \n frameborder="0" \n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n</div>`;if(null!==t.match(/\.(jpeg|jpg|gif|bmp|webp|svg|tiff|avif)$/))return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${t}" alt="${e.text}" style="max-width:300px; width: 100%; height:auto; border-radius: 8px;">\n </div>`:`<img src="${t}" alt="${e.text}" style="max-width:300px; height:auto;">`;if(a&&t.includes("pickaxe")&&(t.includes("/api/fn/result")||t.includes("/api/function_call_results")))return`<dotlottie-wc src="${"dark"===n?"https://lottie.host/328aa2a8-b160-4124-a40c-5847f58da813/Vl0EK9lnJc.lottie":"https://lottie.host/6fd1b0ad-8816-4800-b511-3a259947a9b2/kh7G1Fz1HB.lottie"}" data-fn-url="${t}" class="marked-link-function-calling-loader" style="max-width:150px; width: 100%; height:150px; border: none; background: transparent;" autoplay loop></dotlottie-wc>`;let c=d.call(s,e);return c=c.replace(/^<a /,`<a style="color: ${r};" target="_blank" rel="noopener noreferrer"${o?' class="marked-link-possible-preview-render"':""}`),c},s.heading=({depth:e,text:t})=>1===e?`<h1 style="\n font-size: 2em;\n line-height: 1;\n "><b>${t}</b></h1>`:2===e?`<h2 style="\n font-size: 1.25em;\n "><b>${t}</b></h2>`:`<h${e} style="\n "><b>${t}</b></h${e}>`;const c=s.list;s.list=e=>{let t=c.call(s,e);return t=t.replace(/<\/p>\s*<\/li>/g,"</li>"),t=t.replace(/<li>\s*<p>/g,"<li>"),t=t.replace(/^<ol/,'<ol style="\n list-style: decimal inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t=t.replace(/^<ul/,'<ul style="\n list-style: disc inside; \n padding-left: 15px; \n margin-top: .5em; \n margin-bottom: 0;\n "'),t};const p=s.listitem;s.listitem=e=>{let t=p.call(s,e);return t=t.replace(/<li/,'<li style="\n margin-bottom: 4px;\n "'),t};const m=s.table;s.table=e=>{let t=m.call(s,e);return t=t.replace(/<table/,'<table style="margin-top: .5em; font-size: 16px;" class="table-auto"'),t};const h=s.tablecell;s.tablecell=e=>{let t=h.call(s,e);return t=t.replace(/<td/,'<td class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n "'),t=t.replace(/<th/,'<th class="border-[#d0d7de] dark:border-[#30363d]" style="\n border-width: 1px;\n padding: 0.25em 0.75em 0.25em 0.75em;\n font-weight: 600;\n "'),t};const b=s.code;s.code=e=>{const n=b.call(s,e);return e.lang&&t.languages[e.lang]?`<div class="bg-[#EFF1F3] dark:bg-[#161b22]" style="position: relative; overflow: hidden;"><pre style="\n padding: .75em;\n border-radius: 0.25em;\n font-size: 16px;\n overflow: auto;\n max-width: ${window.innerWidth-100}px;\n">\n <code class="language-${e.lang}">\n${t.highlight(e.text,t.languages[e.lang],e.lang)}\n</code>\n<button class="copy-code-button bg-[#d0d7de] dark:bg-[#30363d] text-[#1f2328] dark:text-[#e6edf3]" \nstyle="\n position: absolute;\n top: -20px;\n right: 0;\n padding: .25em 1.4em .25em .5em;\n border-radius: 0 0 0 0.25em;\n font-size: ${l?"12":"14"}px;\n cursor: pointer;\n user-select: none;\n border: none;\n outline: none;\n z-index: 1;\n">\n Copy\n</button></pre></div>`:n};const g=s.codespan;s.codespan=e=>g.call(s,e).replace(/<code/,`<code class="bg-[#EFF1F3] dark:bg-[#161b22] text-[#1f2328] dark:text-[#e6edf3]" style="\n padding: 0 .25em 0 .25em;\n border-radius: 0.25em;\n font-size: ${l?"14px":"16px"};\n margin-left: 2px;\n "`);const u=s.blockquote;return s.blockquote=e=>u.call(s,e).replace(/<blockquote/,'<blockquote class="border-l-[#D0D7DE] dark:border-l-[#30363D] text-[#656d76] dark:text-[#8b8b8b]" style="\n border-left-width: 4px;\n padding-left: 1em;\n "'),s.image=e=>{const t=e.href.startsWith("www.")?`https://${e.href}`:e.href;return i?`<div style="display: flex; justify-content: center; width: 100%; margin-top: 2.5rem; margin-bottom: 2.5rem;">\n <img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">\n </div>`:`<img src="${t}" alt="${e.text}" style="max-width:300px; height:auto; border-radius: 8px;">`},s};export{n as renderer};