@almadar/ui 5.21.3 → 5.21.4

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.
@@ -15,10 +15,6 @@ var evaluator = require('@almadar/evaluator');
15
15
  var context = require('@almadar/ui/context');
16
16
  var reactRouterDom = require('react-router-dom');
17
17
  var ELK = require('elkjs/lib/elk.bundled.js');
18
- var ReactMarkdown = require('react-markdown');
19
- var remarkGfm = require('remark-gfm');
20
- var remarkMath = require('remark-math');
21
- var rehypeKatex = require('rehype-katex');
22
18
  var SyntaxHighlighter = require('react-syntax-highlighter/dist/esm/prism-light.js');
23
19
  var dark = require('react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.js');
24
20
  var syntax = require('@almadar/syntax');
@@ -38,6 +34,10 @@ var langDiff = require('react-syntax-highlighter/dist/esm/languages/prism/diff.j
38
34
  var langToml = require('react-syntax-highlighter/dist/esm/languages/prism/toml.js');
39
35
  var langGo = require('react-syntax-highlighter/dist/esm/languages/prism/go.js');
40
36
  var langGraphql = require('react-syntax-highlighter/dist/esm/languages/prism/graphql.js');
37
+ var ReactMarkdown = require('react-markdown');
38
+ var remarkGfm = require('remark-gfm');
39
+ var remarkMath = require('remark-math');
40
+ var rehypeKatex = require('rehype-katex');
41
41
  var core = require('@almadar/core');
42
42
  var core$1 = require('@dnd-kit/core');
43
43
  var sortable = require('@dnd-kit/sortable');
@@ -73,10 +73,6 @@ var PhosphorIcons__namespace = /*#__PURE__*/_interopNamespace(PhosphorIcons);
73
73
  var TablerIcons__namespace = /*#__PURE__*/_interopNamespace(TablerIcons);
74
74
  var FaIcons__namespace = /*#__PURE__*/_interopNamespace(FaIcons);
75
75
  var ELK__default = /*#__PURE__*/_interopDefault(ELK);
76
- var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
77
- var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
78
- var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
79
- var rehypeKatex__default = /*#__PURE__*/_interopDefault(rehypeKatex);
80
76
  var SyntaxHighlighter__default = /*#__PURE__*/_interopDefault(SyntaxHighlighter);
81
77
  var dark__default = /*#__PURE__*/_interopDefault(dark);
82
78
  var langJson__default = /*#__PURE__*/_interopDefault(langJson);
@@ -95,6 +91,10 @@ var langDiff__default = /*#__PURE__*/_interopDefault(langDiff);
95
91
  var langToml__default = /*#__PURE__*/_interopDefault(langToml);
96
92
  var langGo__default = /*#__PURE__*/_interopDefault(langGo);
97
93
  var langGraphql__default = /*#__PURE__*/_interopDefault(langGraphql);
94
+ var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
95
+ var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
96
+ var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
97
+ var rehypeKatex__default = /*#__PURE__*/_interopDefault(rehypeKatex);
98
98
 
99
99
  var __defProp = Object.defineProperty;
100
100
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -13722,137 +13722,6 @@ var init_katex_min = __esm({
13722
13722
  "node_modules/katex/dist/katex.min.css"() {
13723
13723
  }
13724
13724
  });
13725
- var MarkdownContent;
13726
- var init_MarkdownContent = __esm({
13727
- "components/core/molecules/markdown/MarkdownContent.tsx"() {
13728
- init_katex_min();
13729
- init_Box();
13730
- init_useTranslate();
13731
- init_cn();
13732
- MarkdownContent = React84__namespace.default.memo(
13733
- ({ content, direction, className }) => {
13734
- const { t: _t } = useTranslate();
13735
- const safeContent = typeof content === "string" ? content : String(content ?? "");
13736
- return /* @__PURE__ */ jsxRuntime.jsx(
13737
- Box,
13738
- {
13739
- className: cn("prose max-w-none", className),
13740
- style: {
13741
- color: "var(--color-foreground)",
13742
- "--tw-prose-body": "var(--color-foreground)",
13743
- "--tw-prose-headings": "var(--color-foreground)",
13744
- "--tw-prose-lead": "var(--color-muted-foreground)",
13745
- "--tw-prose-links": "var(--color-primary)",
13746
- "--tw-prose-bold": "var(--color-foreground)",
13747
- "--tw-prose-counters": "var(--color-muted-foreground)",
13748
- "--tw-prose-bullets": "var(--color-muted-foreground)",
13749
- "--tw-prose-hr": "var(--color-border)",
13750
- "--tw-prose-quotes": "var(--color-foreground)",
13751
- "--tw-prose-quote-borders": "var(--color-primary)",
13752
- "--tw-prose-captions": "var(--color-muted-foreground)",
13753
- "--tw-prose-code": "var(--color-foreground)",
13754
- "--tw-prose-pre-code": "var(--color-foreground)",
13755
- "--tw-prose-pre-bg": "var(--color-muted)",
13756
- "--tw-prose-th-borders": "var(--color-border)",
13757
- "--tw-prose-td-borders": "var(--color-border)",
13758
- direction
13759
- },
13760
- children: /* @__PURE__ */ jsxRuntime.jsx(
13761
- ReactMarkdown__default.default,
13762
- {
13763
- remarkPlugins: [remarkMath__default.default, remarkGfm__default.default],
13764
- rehypePlugins: [
13765
- [rehypeKatex__default.default, { strict: false, throwOnError: false }]
13766
- ],
13767
- components: {
13768
- // Handle inline code only — fenced code blocks are parsed out separately
13769
- code({ className: codeClassName, children, ...props }) {
13770
- return /* @__PURE__ */ jsxRuntime.jsx(
13771
- "code",
13772
- {
13773
- ...props,
13774
- className: codeClassName,
13775
- style: {
13776
- backgroundColor: "var(--color-muted)",
13777
- color: "var(--color-foreground)",
13778
- border: "1px solid var(--color-border)",
13779
- padding: "0.125rem 0.375rem",
13780
- borderRadius: "0.25rem",
13781
- fontSize: "0.875em",
13782
- fontFamily: "ui-monospace, monospace"
13783
- },
13784
- children
13785
- }
13786
- );
13787
- },
13788
- // Style links
13789
- a({ href, children, ...props }) {
13790
- return /* @__PURE__ */ jsxRuntime.jsx(
13791
- "a",
13792
- {
13793
- href,
13794
- ...props,
13795
- className: "text-[var(--color-primary)] hover:underline",
13796
- target: href?.startsWith("http") ? "_blank" : void 0,
13797
- rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
13798
- children
13799
- }
13800
- );
13801
- },
13802
- // Style tables
13803
- table({ children, ...props }) {
13804
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsxRuntime.jsx(
13805
- "table",
13806
- {
13807
- ...props,
13808
- className: "min-w-full border-collapse border border-[var(--color-border)]",
13809
- children
13810
- }
13811
- ) });
13812
- },
13813
- th({ children, ...props }) {
13814
- return /* @__PURE__ */ jsxRuntime.jsx(
13815
- "th",
13816
- {
13817
- ...props,
13818
- className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
13819
- children
13820
- }
13821
- );
13822
- },
13823
- td({ children, ...props }) {
13824
- return /* @__PURE__ */ jsxRuntime.jsx(
13825
- "td",
13826
- {
13827
- ...props,
13828
- className: "border border-[var(--color-border)] px-4 py-2",
13829
- children
13830
- }
13831
- );
13832
- },
13833
- // Style blockquotes
13834
- blockquote({ children, ...props }) {
13835
- return /* @__PURE__ */ jsxRuntime.jsx(
13836
- "blockquote",
13837
- {
13838
- ...props,
13839
- className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
13840
- children
13841
- }
13842
- );
13843
- }
13844
- },
13845
- children: safeContent
13846
- }
13847
- )
13848
- }
13849
- );
13850
- },
13851
- (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
13852
- );
13853
- MarkdownContent.displayName = "MarkdownContent";
13854
- }
13855
- });
13856
13725
  function computeFoldRegions(code) {
13857
13726
  const lines = code.split("\n");
13858
13727
  const regions = [];
@@ -14398,6 +14267,155 @@ var init_CodeBlock = __esm({
14398
14267
  CodeBlock.displayName = "CodeBlock";
14399
14268
  }
14400
14269
  });
14270
+ var MarkdownContent;
14271
+ var init_MarkdownContent = __esm({
14272
+ "components/core/molecules/markdown/MarkdownContent.tsx"() {
14273
+ init_katex_min();
14274
+ init_Box();
14275
+ init_CodeBlock();
14276
+ init_useTranslate();
14277
+ init_cn();
14278
+ MarkdownContent = React84__namespace.default.memo(
14279
+ ({ content, direction, className }) => {
14280
+ const { t: _t } = useTranslate();
14281
+ const safeContent = typeof content === "string" ? content : String(content ?? "");
14282
+ return /* @__PURE__ */ jsxRuntime.jsx(
14283
+ Box,
14284
+ {
14285
+ className: cn("prose max-w-none", className),
14286
+ style: {
14287
+ color: "var(--color-foreground)",
14288
+ "--tw-prose-body": "var(--color-foreground)",
14289
+ "--tw-prose-headings": "var(--color-foreground)",
14290
+ "--tw-prose-lead": "var(--color-muted-foreground)",
14291
+ "--tw-prose-links": "var(--color-primary)",
14292
+ "--tw-prose-bold": "var(--color-foreground)",
14293
+ "--tw-prose-counters": "var(--color-muted-foreground)",
14294
+ "--tw-prose-bullets": "var(--color-muted-foreground)",
14295
+ "--tw-prose-hr": "var(--color-border)",
14296
+ "--tw-prose-quotes": "var(--color-foreground)",
14297
+ "--tw-prose-quote-borders": "var(--color-primary)",
14298
+ "--tw-prose-captions": "var(--color-muted-foreground)",
14299
+ "--tw-prose-code": "var(--color-foreground)",
14300
+ "--tw-prose-pre-code": "var(--color-foreground)",
14301
+ "--tw-prose-pre-bg": "var(--color-muted)",
14302
+ "--tw-prose-th-borders": "var(--color-border)",
14303
+ "--tw-prose-td-borders": "var(--color-border)",
14304
+ direction
14305
+ },
14306
+ children: /* @__PURE__ */ jsxRuntime.jsx(
14307
+ ReactMarkdown__default.default,
14308
+ {
14309
+ remarkPlugins: [remarkMath__default.default, remarkGfm__default.default],
14310
+ rehypePlugins: [
14311
+ [rehypeKatex__default.default, { strict: false, throwOnError: false }]
14312
+ ],
14313
+ components: {
14314
+ code({
14315
+ className: codeClassName,
14316
+ children,
14317
+ inline,
14318
+ ...props
14319
+ }) {
14320
+ if (!inline) {
14321
+ const match = /language-(\w+)/.exec(codeClassName ?? "");
14322
+ const language = match ? match[1] : "text";
14323
+ const code = String(children).replace(/\n$/, "");
14324
+ return /* @__PURE__ */ jsxRuntime.jsx(
14325
+ CodeBlock,
14326
+ {
14327
+ code,
14328
+ language,
14329
+ maxHeight: "60vh"
14330
+ }
14331
+ );
14332
+ }
14333
+ return /* @__PURE__ */ jsxRuntime.jsx(
14334
+ "code",
14335
+ {
14336
+ ...props,
14337
+ className: codeClassName,
14338
+ style: {
14339
+ backgroundColor: "var(--color-muted)",
14340
+ color: "var(--color-foreground)",
14341
+ border: "1px solid var(--color-border)",
14342
+ padding: "0.125rem 0.375rem",
14343
+ borderRadius: "0.25rem",
14344
+ fontSize: "0.875em",
14345
+ fontFamily: "ui-monospace, monospace"
14346
+ },
14347
+ children
14348
+ }
14349
+ );
14350
+ },
14351
+ // Style links
14352
+ a({ href, children, ...props }) {
14353
+ return /* @__PURE__ */ jsxRuntime.jsx(
14354
+ "a",
14355
+ {
14356
+ href,
14357
+ ...props,
14358
+ className: "text-[var(--color-primary)] hover:underline",
14359
+ target: href?.startsWith("http") ? "_blank" : void 0,
14360
+ rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
14361
+ children
14362
+ }
14363
+ );
14364
+ },
14365
+ // Style tables
14366
+ table({ children, ...props }) {
14367
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsxRuntime.jsx(
14368
+ "table",
14369
+ {
14370
+ ...props,
14371
+ className: "min-w-full border-collapse border border-[var(--color-border)]",
14372
+ children
14373
+ }
14374
+ ) });
14375
+ },
14376
+ th({ children, ...props }) {
14377
+ return /* @__PURE__ */ jsxRuntime.jsx(
14378
+ "th",
14379
+ {
14380
+ ...props,
14381
+ className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
14382
+ children
14383
+ }
14384
+ );
14385
+ },
14386
+ td({ children, ...props }) {
14387
+ return /* @__PURE__ */ jsxRuntime.jsx(
14388
+ "td",
14389
+ {
14390
+ ...props,
14391
+ className: "border border-[var(--color-border)] px-4 py-2",
14392
+ children
14393
+ }
14394
+ );
14395
+ },
14396
+ // Style blockquotes
14397
+ blockquote({ children, ...props }) {
14398
+ return /* @__PURE__ */ jsxRuntime.jsx(
14399
+ "blockquote",
14400
+ {
14401
+ ...props,
14402
+ className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
14403
+ children
14404
+ }
14405
+ );
14406
+ }
14407
+ },
14408
+ children: safeContent
14409
+ }
14410
+ )
14411
+ }
14412
+ );
14413
+ },
14414
+ (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
14415
+ );
14416
+ MarkdownContent.displayName = "MarkdownContent";
14417
+ }
14418
+ });
14401
14419
  function Card2({
14402
14420
  title,
14403
14421
  subtitle,
@@ -15,10 +15,6 @@ import { evaluate, createMinimalContext } from '@almadar/evaluator';
15
15
  import { useUISlots, UISlotProvider } from '@almadar/ui/context';
16
16
  import { Link, Outlet, useLocation } from 'react-router-dom';
17
17
  import ELK from 'elkjs/lib/elk.bundled.js';
18
- import ReactMarkdown from 'react-markdown';
19
- import remarkGfm from 'remark-gfm';
20
- import remarkMath from 'remark-math';
21
- import rehypeKatex from 'rehype-katex';
22
18
  import SyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-light.js';
23
19
  import dark from 'react-syntax-highlighter/dist/esm/styles/prism/vsc-dark-plus.js';
24
20
  import { orbLanguage, loloLanguage, ORB_COLORS } from '@almadar/syntax';
@@ -38,6 +34,10 @@ import langDiff from 'react-syntax-highlighter/dist/esm/languages/prism/diff.js'
38
34
  import langToml from 'react-syntax-highlighter/dist/esm/languages/prism/toml.js';
39
35
  import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go.js';
40
36
  import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql.js';
37
+ import ReactMarkdown from 'react-markdown';
38
+ import remarkGfm from 'remark-gfm';
39
+ import remarkMath from 'remark-math';
40
+ import rehypeKatex from 'rehype-katex';
41
41
  import { isCircuitEvent, schemaToIR, getPage, clearSchemaCache as clearSchemaCache$1, isEntityCall, isInlineTrait } from '@almadar/core';
42
42
  import { DndContext, pointerWithin, rectIntersection, closestCorners, useSensors, useSensor, PointerSensor, KeyboardSensor, useDroppable } from '@dnd-kit/core';
43
43
  import { useSortable, arrayMove, sortableKeyboardCoordinates, SortableContext, rectSortingStrategy, verticalListSortingStrategy } from '@dnd-kit/sortable';
@@ -13673,137 +13673,6 @@ var init_katex_min = __esm({
13673
13673
  "node_modules/katex/dist/katex.min.css"() {
13674
13674
  }
13675
13675
  });
13676
- var MarkdownContent;
13677
- var init_MarkdownContent = __esm({
13678
- "components/core/molecules/markdown/MarkdownContent.tsx"() {
13679
- init_katex_min();
13680
- init_Box();
13681
- init_useTranslate();
13682
- init_cn();
13683
- MarkdownContent = React84__default.memo(
13684
- ({ content, direction, className }) => {
13685
- const { t: _t } = useTranslate();
13686
- const safeContent = typeof content === "string" ? content : String(content ?? "");
13687
- return /* @__PURE__ */ jsx(
13688
- Box,
13689
- {
13690
- className: cn("prose max-w-none", className),
13691
- style: {
13692
- color: "var(--color-foreground)",
13693
- "--tw-prose-body": "var(--color-foreground)",
13694
- "--tw-prose-headings": "var(--color-foreground)",
13695
- "--tw-prose-lead": "var(--color-muted-foreground)",
13696
- "--tw-prose-links": "var(--color-primary)",
13697
- "--tw-prose-bold": "var(--color-foreground)",
13698
- "--tw-prose-counters": "var(--color-muted-foreground)",
13699
- "--tw-prose-bullets": "var(--color-muted-foreground)",
13700
- "--tw-prose-hr": "var(--color-border)",
13701
- "--tw-prose-quotes": "var(--color-foreground)",
13702
- "--tw-prose-quote-borders": "var(--color-primary)",
13703
- "--tw-prose-captions": "var(--color-muted-foreground)",
13704
- "--tw-prose-code": "var(--color-foreground)",
13705
- "--tw-prose-pre-code": "var(--color-foreground)",
13706
- "--tw-prose-pre-bg": "var(--color-muted)",
13707
- "--tw-prose-th-borders": "var(--color-border)",
13708
- "--tw-prose-td-borders": "var(--color-border)",
13709
- direction
13710
- },
13711
- children: /* @__PURE__ */ jsx(
13712
- ReactMarkdown,
13713
- {
13714
- remarkPlugins: [remarkMath, remarkGfm],
13715
- rehypePlugins: [
13716
- [rehypeKatex, { strict: false, throwOnError: false }]
13717
- ],
13718
- components: {
13719
- // Handle inline code only — fenced code blocks are parsed out separately
13720
- code({ className: codeClassName, children, ...props }) {
13721
- return /* @__PURE__ */ jsx(
13722
- "code",
13723
- {
13724
- ...props,
13725
- className: codeClassName,
13726
- style: {
13727
- backgroundColor: "var(--color-muted)",
13728
- color: "var(--color-foreground)",
13729
- border: "1px solid var(--color-border)",
13730
- padding: "0.125rem 0.375rem",
13731
- borderRadius: "0.25rem",
13732
- fontSize: "0.875em",
13733
- fontFamily: "ui-monospace, monospace"
13734
- },
13735
- children
13736
- }
13737
- );
13738
- },
13739
- // Style links
13740
- a({ href, children, ...props }) {
13741
- return /* @__PURE__ */ jsx(
13742
- "a",
13743
- {
13744
- href,
13745
- ...props,
13746
- className: "text-[var(--color-primary)] hover:underline",
13747
- target: href?.startsWith("http") ? "_blank" : void 0,
13748
- rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
13749
- children
13750
- }
13751
- );
13752
- },
13753
- // Style tables
13754
- table({ children, ...props }) {
13755
- return /* @__PURE__ */ jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsx(
13756
- "table",
13757
- {
13758
- ...props,
13759
- className: "min-w-full border-collapse border border-[var(--color-border)]",
13760
- children
13761
- }
13762
- ) });
13763
- },
13764
- th({ children, ...props }) {
13765
- return /* @__PURE__ */ jsx(
13766
- "th",
13767
- {
13768
- ...props,
13769
- className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
13770
- children
13771
- }
13772
- );
13773
- },
13774
- td({ children, ...props }) {
13775
- return /* @__PURE__ */ jsx(
13776
- "td",
13777
- {
13778
- ...props,
13779
- className: "border border-[var(--color-border)] px-4 py-2",
13780
- children
13781
- }
13782
- );
13783
- },
13784
- // Style blockquotes
13785
- blockquote({ children, ...props }) {
13786
- return /* @__PURE__ */ jsx(
13787
- "blockquote",
13788
- {
13789
- ...props,
13790
- className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
13791
- children
13792
- }
13793
- );
13794
- }
13795
- },
13796
- children: safeContent
13797
- }
13798
- )
13799
- }
13800
- );
13801
- },
13802
- (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
13803
- );
13804
- MarkdownContent.displayName = "MarkdownContent";
13805
- }
13806
- });
13807
13676
  function computeFoldRegions(code) {
13808
13677
  const lines = code.split("\n");
13809
13678
  const regions = [];
@@ -14349,6 +14218,155 @@ var init_CodeBlock = __esm({
14349
14218
  CodeBlock.displayName = "CodeBlock";
14350
14219
  }
14351
14220
  });
14221
+ var MarkdownContent;
14222
+ var init_MarkdownContent = __esm({
14223
+ "components/core/molecules/markdown/MarkdownContent.tsx"() {
14224
+ init_katex_min();
14225
+ init_Box();
14226
+ init_CodeBlock();
14227
+ init_useTranslate();
14228
+ init_cn();
14229
+ MarkdownContent = React84__default.memo(
14230
+ ({ content, direction, className }) => {
14231
+ const { t: _t } = useTranslate();
14232
+ const safeContent = typeof content === "string" ? content : String(content ?? "");
14233
+ return /* @__PURE__ */ jsx(
14234
+ Box,
14235
+ {
14236
+ className: cn("prose max-w-none", className),
14237
+ style: {
14238
+ color: "var(--color-foreground)",
14239
+ "--tw-prose-body": "var(--color-foreground)",
14240
+ "--tw-prose-headings": "var(--color-foreground)",
14241
+ "--tw-prose-lead": "var(--color-muted-foreground)",
14242
+ "--tw-prose-links": "var(--color-primary)",
14243
+ "--tw-prose-bold": "var(--color-foreground)",
14244
+ "--tw-prose-counters": "var(--color-muted-foreground)",
14245
+ "--tw-prose-bullets": "var(--color-muted-foreground)",
14246
+ "--tw-prose-hr": "var(--color-border)",
14247
+ "--tw-prose-quotes": "var(--color-foreground)",
14248
+ "--tw-prose-quote-borders": "var(--color-primary)",
14249
+ "--tw-prose-captions": "var(--color-muted-foreground)",
14250
+ "--tw-prose-code": "var(--color-foreground)",
14251
+ "--tw-prose-pre-code": "var(--color-foreground)",
14252
+ "--tw-prose-pre-bg": "var(--color-muted)",
14253
+ "--tw-prose-th-borders": "var(--color-border)",
14254
+ "--tw-prose-td-borders": "var(--color-border)",
14255
+ direction
14256
+ },
14257
+ children: /* @__PURE__ */ jsx(
14258
+ ReactMarkdown,
14259
+ {
14260
+ remarkPlugins: [remarkMath, remarkGfm],
14261
+ rehypePlugins: [
14262
+ [rehypeKatex, { strict: false, throwOnError: false }]
14263
+ ],
14264
+ components: {
14265
+ code({
14266
+ className: codeClassName,
14267
+ children,
14268
+ inline,
14269
+ ...props
14270
+ }) {
14271
+ if (!inline) {
14272
+ const match = /language-(\w+)/.exec(codeClassName ?? "");
14273
+ const language = match ? match[1] : "text";
14274
+ const code = String(children).replace(/\n$/, "");
14275
+ return /* @__PURE__ */ jsx(
14276
+ CodeBlock,
14277
+ {
14278
+ code,
14279
+ language,
14280
+ maxHeight: "60vh"
14281
+ }
14282
+ );
14283
+ }
14284
+ return /* @__PURE__ */ jsx(
14285
+ "code",
14286
+ {
14287
+ ...props,
14288
+ className: codeClassName,
14289
+ style: {
14290
+ backgroundColor: "var(--color-muted)",
14291
+ color: "var(--color-foreground)",
14292
+ border: "1px solid var(--color-border)",
14293
+ padding: "0.125rem 0.375rem",
14294
+ borderRadius: "0.25rem",
14295
+ fontSize: "0.875em",
14296
+ fontFamily: "ui-monospace, monospace"
14297
+ },
14298
+ children
14299
+ }
14300
+ );
14301
+ },
14302
+ // Style links
14303
+ a({ href, children, ...props }) {
14304
+ return /* @__PURE__ */ jsx(
14305
+ "a",
14306
+ {
14307
+ href,
14308
+ ...props,
14309
+ className: "text-[var(--color-primary)] hover:underline",
14310
+ target: href?.startsWith("http") ? "_blank" : void 0,
14311
+ rel: href?.startsWith("http") ? "noopener noreferrer" : void 0,
14312
+ children
14313
+ }
14314
+ );
14315
+ },
14316
+ // Style tables
14317
+ table({ children, ...props }) {
14318
+ return /* @__PURE__ */ jsx("div", { className: "overflow-x-auto my-4", children: /* @__PURE__ */ jsx(
14319
+ "table",
14320
+ {
14321
+ ...props,
14322
+ className: "min-w-full border-collapse border border-[var(--color-border)]",
14323
+ children
14324
+ }
14325
+ ) });
14326
+ },
14327
+ th({ children, ...props }) {
14328
+ return /* @__PURE__ */ jsx(
14329
+ "th",
14330
+ {
14331
+ ...props,
14332
+ className: "border border-[var(--color-border)] bg-[var(--color-muted)] px-4 py-2 text-left font-semibold",
14333
+ children
14334
+ }
14335
+ );
14336
+ },
14337
+ td({ children, ...props }) {
14338
+ return /* @__PURE__ */ jsx(
14339
+ "td",
14340
+ {
14341
+ ...props,
14342
+ className: "border border-[var(--color-border)] px-4 py-2",
14343
+ children
14344
+ }
14345
+ );
14346
+ },
14347
+ // Style blockquotes
14348
+ blockquote({ children, ...props }) {
14349
+ return /* @__PURE__ */ jsx(
14350
+ "blockquote",
14351
+ {
14352
+ ...props,
14353
+ className: "border-l-4 border-[var(--color-primary)] pl-4 italic text-[var(--color-foreground)] my-4",
14354
+ children
14355
+ }
14356
+ );
14357
+ }
14358
+ },
14359
+ children: safeContent
14360
+ }
14361
+ )
14362
+ }
14363
+ );
14364
+ },
14365
+ (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
14366
+ );
14367
+ MarkdownContent.displayName = "MarkdownContent";
14368
+ }
14369
+ });
14352
14370
  function Card2({
14353
14371
  title,
14354
14372
  subtitle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "5.21.3",
3
+ "version": "5.21.4",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [