@nuucognition/ncm-ui 0.1.0-dev.1

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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -0
  3. package/dist/blocks/admonition/index.d.ts +13 -0
  4. package/dist/blocks/admonition/index.js +1713 -0
  5. package/dist/blocks/aside/index.d.ts +13 -0
  6. package/dist/blocks/aside/index.js +1713 -0
  7. package/dist/blocks/attribution/index.d.ts +13 -0
  8. package/dist/blocks/attribution/index.js +32 -0
  9. package/dist/blocks/blockquote/index.d.ts +15 -0
  10. package/dist/blocks/blockquote/index.js +609 -0
  11. package/dist/blocks/chart/index.d.ts +14 -0
  12. package/dist/blocks/chart/index.js +29 -0
  13. package/dist/blocks/code/index.d.ts +15 -0
  14. package/dist/blocks/code/index.js +163 -0
  15. package/dist/blocks/container/index.d.ts +17 -0
  16. package/dist/blocks/container/index.js +633 -0
  17. package/dist/blocks/custom-code/index.d.ts +15 -0
  18. package/dist/blocks/custom-code/index.js +31 -0
  19. package/dist/blocks/dataview/index.d.ts +14 -0
  20. package/dist/blocks/dataview/index.js +29 -0
  21. package/dist/blocks/definition/index.d.ts +13 -0
  22. package/dist/blocks/definition/index.js +1713 -0
  23. package/dist/blocks/embed/index.d.ts +12 -0
  24. package/dist/blocks/embed/index.js +46 -0
  25. package/dist/blocks/embedding/index.d.ts +13 -0
  26. package/dist/blocks/embedding/index.js +763 -0
  27. package/dist/blocks/figure/index.d.ts +13 -0
  28. package/dist/blocks/figure/index.js +656 -0
  29. package/dist/blocks/footnote/index.d.ts +13 -0
  30. package/dist/blocks/footnote/index.js +1713 -0
  31. package/dist/blocks/frontmatter/index.d.ts +16 -0
  32. package/dist/blocks/frontmatter/index.js +38 -0
  33. package/dist/blocks/header/index.d.ts +9 -0
  34. package/dist/blocks/header/index.js +610 -0
  35. package/dist/blocks/horizontal-rule/index.d.ts +9 -0
  36. package/dist/blocks/horizontal-rule/index.js +19 -0
  37. package/dist/blocks/html/index.d.ts +31 -0
  38. package/dist/blocks/html/index.js +52 -0
  39. package/dist/blocks/index.d.ts +32 -0
  40. package/dist/blocks/index.js +1736 -0
  41. package/dist/blocks/latex/index.d.ts +9 -0
  42. package/dist/blocks/latex/index.js +107 -0
  43. package/dist/blocks/link/index.d.ts +14 -0
  44. package/dist/blocks/link/index.js +27 -0
  45. package/dist/blocks/list/index.d.ts +9 -0
  46. package/dist/blocks/list/index.js +675 -0
  47. package/dist/blocks/math/index.d.ts +13 -0
  48. package/dist/blocks/math/index.js +88 -0
  49. package/dist/blocks/mermaid/index.d.ts +14 -0
  50. package/dist/blocks/mermaid/index.js +29 -0
  51. package/dist/blocks/page-breaker/index.d.ts +16 -0
  52. package/dist/blocks/page-breaker/index.js +21 -0
  53. package/dist/blocks/paragraph/index.d.ts +9 -0
  54. package/dist/blocks/paragraph/index.js +608 -0
  55. package/dist/blocks/spoiler/index.d.ts +13 -0
  56. package/dist/blocks/spoiler/index.js +1713 -0
  57. package/dist/blocks/table/index.d.ts +9 -0
  58. package/dist/blocks/table/index.js +619 -0
  59. package/dist/blocks/task-list/index.d.ts +13 -0
  60. package/dist/blocks/task-list/index.js +670 -0
  61. package/dist/components/index.d.ts +599 -0
  62. package/dist/components/index.js +1840 -0
  63. package/dist/components/ncm-block.d.ts +28 -0
  64. package/dist/components/ncm-block.js +1712 -0
  65. package/dist/components/ncm-document.d.ts +48 -0
  66. package/dist/components/ncm-document.js +1839 -0
  67. package/dist/context/index.d.ts +7 -0
  68. package/dist/context/index.js +284 -0
  69. package/dist/hooks/index.d.ts +7 -0
  70. package/dist/hooks/index.js +1731 -0
  71. package/dist/hooks/use-block-renderer.d.ts +28 -0
  72. package/dist/hooks/use-block-renderer.js +1731 -0
  73. package/dist/hooks/use-ncm-config.d.ts +6 -0
  74. package/dist/hooks/use-ncm-config.js +11 -0
  75. package/dist/index.d.ts +43 -0
  76. package/dist/index.js +1887 -0
  77. package/dist/inline/index.d.ts +108 -0
  78. package/dist/inline/index.js +598 -0
  79. package/dist/inline-DwUYUmk4.d.ts +75 -0
  80. package/dist/lib/defaults.d.ts +24 -0
  81. package/dist/lib/defaults.js +1713 -0
  82. package/dist/lib/index.d.ts +2 -0
  83. package/dist/lib/index.js +10 -0
  84. package/dist/lib/katex.d.ts +3 -0
  85. package/dist/lib/katex.js +45 -0
  86. package/dist/lib/utils.d.ts +8 -0
  87. package/dist/lib/utils.js +10 -0
  88. package/dist/references-Bs5wJybr.d.ts +63 -0
  89. package/dist/renderers-C5f41FCy.d.ts +99 -0
  90. package/dist/styles/fonts/OpenDyslexic3-Bold.woff +0 -0
  91. package/dist/styles/fonts/OpenDyslexic3-Bold.woff2 +0 -0
  92. package/dist/styles/fonts/OpenDyslexic3-Regular.woff +0 -0
  93. package/dist/styles/fonts/OpenDyslexic3-Regular.woff2 +0 -0
  94. package/dist/styles/nuu.css +364 -0
  95. package/dist/styles/paper.css +332 -0
  96. package/dist/types/index.d.ts +4 -0
  97. package/dist/types/index.js +2 -0
  98. package/dist/use-ncm-config-D0doMYTH.d.ts +114 -0
  99. package/package.json +99 -0
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ import { useState, useEffect, useMemo } from 'react';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ // src/lib/katex.ts
8
+ var katexPromise = null;
9
+ function loadKatex() {
10
+ if (!katexPromise) {
11
+ katexPromise = Promise.all([
12
+ import('katex'),
13
+ import('katex/dist/katex.min.css')
14
+ ]).then(([module]) => module.default).catch(() => null);
15
+ }
16
+ return katexPromise;
17
+ }
18
+ function useKatexHtml(content, displayMode, enabled = true) {
19
+ const [katexModule, setKatexModule] = useState(null);
20
+ useEffect(() => {
21
+ if (!enabled) {
22
+ return;
23
+ }
24
+ let active = true;
25
+ loadKatex().then((loaded) => {
26
+ if (active) {
27
+ setKatexModule(loaded);
28
+ }
29
+ });
30
+ return () => {
31
+ active = false;
32
+ };
33
+ }, [enabled]);
34
+ return useMemo(() => {
35
+ if (!enabled || !katexModule) {
36
+ return null;
37
+ }
38
+ try {
39
+ return katexModule.renderToString(content, {
40
+ throwOnError: false,
41
+ displayMode
42
+ });
43
+ } catch {
44
+ return null;
45
+ }
46
+ }, [content, displayMode, enabled, katexModule]);
47
+ }
48
+ function cn(...inputs) {
49
+ return twMerge(clsx(inputs));
50
+ }
51
+ function MathBlock({ block, className }) {
52
+ const html = useKatexHtml(block.content, true);
53
+ if (html) {
54
+ return /* @__PURE__ */ jsx(
55
+ "div",
56
+ {
57
+ role: "region",
58
+ "aria-label": "Mathematical expression",
59
+ "data-ncm-block": block.id,
60
+ "data-ncm-stable": block.stableId,
61
+ "data-ncm-type": block.type,
62
+ "data-block-id": block.id,
63
+ "data-ncm-math": "",
64
+ className: cn("overflow-x-auto", className),
65
+ dangerouslySetInnerHTML: { __html: html }
66
+ }
67
+ );
68
+ }
69
+ return /* @__PURE__ */ jsx(
70
+ "pre",
71
+ {
72
+ role: "region",
73
+ "aria-label": "Mathematical expression (source)",
74
+ "data-ncm-block": block.id,
75
+ "data-ncm-stable": block.stableId,
76
+ "data-ncm-type": block.type,
77
+ "data-block-id": block.id,
78
+ "data-ncm-math": "",
79
+ className: cn(
80
+ "overflow-x-auto rounded-lg border border-border bg-muted p-4 font-mono text-sm",
81
+ className
82
+ ),
83
+ children: /* @__PURE__ */ jsx("code", { children: block.content })
84
+ }
85
+ );
86
+ }
87
+
88
+ export { MathBlock };
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { MermaidBlock as MermaidBlock$1 } from '@nuucognition/ncm';
3
+ import { a as BlockRendererProps } from '../../renderers-C5f41FCy.js';
4
+ import 'react';
5
+
6
+ type MermaidBlockProps = BlockRendererProps<MermaidBlock$1>;
7
+ /**
8
+ * Mermaid renderer — the default emits the diagram *source* (no Mermaid runtime
9
+ * is bundled in this package). Consumers wire a live renderer by overriding the
10
+ * `mermaid` renderer key. `data-ncm-diagram-type` exposes the detected kind.
11
+ */
12
+ declare function MermaidBlock({ block, className }: MermaidBlockProps): react_jsx_runtime.JSX.Element;
13
+
14
+ export { MermaidBlock, type MermaidBlockProps };
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { clsx } from 'clsx';
3
+ import { twMerge } from 'tailwind-merge';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ // src/lib/utils.ts
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ function MermaidBlock({ block, className }) {
11
+ return /* @__PURE__ */ jsx(
12
+ "pre",
13
+ {
14
+ "data-ncm-block": block.id,
15
+ "data-ncm-stable": block.stableId,
16
+ "data-ncm-type": block.type,
17
+ "data-block-id": block.id,
18
+ "data-ncm-mermaid": "",
19
+ "data-ncm-diagram-type": block.diagramType,
20
+ className: cn(
21
+ "overflow-x-auto rounded-lg border border-border bg-muted p-4 font-mono text-sm",
22
+ className
23
+ ),
24
+ children: /* @__PURE__ */ jsx("code", { children: block.content })
25
+ }
26
+ );
27
+ }
28
+
29
+ export { MermaidBlock };
@@ -0,0 +1,16 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PageBreakerBlock as PageBreakerBlock$1 } from '@nuucognition/ncm';
3
+ import { a as BlockRendererProps } from '../../renderers-C5f41FCy.js';
4
+ import 'react';
5
+
6
+ type PageBreakerBlockProps = BlockRendererProps<PageBreakerBlock$1>;
7
+ /**
8
+ * Page breaker — a non-rendered provenance marker.
9
+ *
10
+ * Emits a zero-height, aria-hidden anchor carrying `data-ncm-page` so consumers
11
+ * can locate where each source PDF page begins (e.g. to scroll-sync rendered
12
+ * markdown against the original PDF). It produces no visible output.
13
+ */
14
+ declare function PageBreakerBlock({ block, className }: PageBreakerBlockProps): react_jsx_runtime.JSX.Element;
15
+
16
+ export { PageBreakerBlock, type PageBreakerBlockProps };
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // src/blocks/page-breaker/page-breaker.tsx
5
+ function PageBreakerBlock({ block, className }) {
6
+ return /* @__PURE__ */ jsx(
7
+ "div",
8
+ {
9
+ "data-ncm-block": block.id,
10
+ "data-ncm-stable": block.stableId,
11
+ "data-ncm-type": block.type,
12
+ "data-block-id": block.id,
13
+ "data-ncm-page": block.page,
14
+ "aria-hidden": "true",
15
+ className,
16
+ style: { height: 0, margin: 0, padding: 0, border: 0 }
17
+ }
18
+ );
19
+ }
20
+
21
+ export { PageBreakerBlock };
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ParagraphBlock as ParagraphBlock$1 } from '@nuucognition/ncm';
3
+ import { a as BlockRendererProps } from '../../renderers-C5f41FCy.js';
4
+ import 'react';
5
+
6
+ type ParagraphBlockProps = BlockRendererProps<ParagraphBlock$1>;
7
+ declare function ParagraphBlock({ block, className }: ParagraphBlockProps): react_jsx_runtime.JSX.Element;
8
+
9
+ export { ParagraphBlock, type ParagraphBlockProps };