@miethe/ui 0.3.0 → 0.6.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.
Files changed (168) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +776 -9
  3. package/dist/components/content-viewer/ArticleViewer.d.ts +42 -0
  4. package/dist/components/content-viewer/ArticleViewer.d.ts.map +1 -0
  5. package/dist/components/content-viewer/ArticleViewer.js +321 -0
  6. package/dist/components/content-viewer/ArticleViewer.js.map +1 -0
  7. package/dist/components/content-viewer/FrontmatterHeader.d.ts +32 -0
  8. package/dist/components/content-viewer/FrontmatterHeader.d.ts.map +1 -0
  9. package/dist/components/content-viewer/FrontmatterHeader.js +95 -0
  10. package/dist/components/content-viewer/FrontmatterHeader.js.map +1 -0
  11. package/dist/components/content-viewer/callouts/Callout.d.ts +43 -0
  12. package/dist/components/content-viewer/callouts/Callout.d.ts.map +1 -0
  13. package/dist/components/content-viewer/callouts/Callout.js +86 -0
  14. package/dist/components/content-viewer/callouts/Callout.js.map +1 -0
  15. package/dist/components/content-viewer/callouts/index.d.ts +2 -0
  16. package/dist/components/content-viewer/callouts/index.d.ts.map +1 -0
  17. package/dist/components/content-viewer/callouts/index.js +2 -0
  18. package/dist/components/content-viewer/callouts/index.js.map +1 -0
  19. package/dist/components/content-viewer/index.d.ts +21 -0
  20. package/dist/components/content-viewer/index.d.ts.map +1 -0
  21. package/dist/components/content-viewer/index.js +29 -0
  22. package/dist/components/content-viewer/index.js.map +1 -0
  23. package/dist/components/content-viewer/plugins/index.d.ts +5 -0
  24. package/dist/components/content-viewer/plugins/index.d.ts.map +1 -0
  25. package/dist/components/content-viewer/plugins/index.js +5 -0
  26. package/dist/components/content-viewer/plugins/index.js.map +1 -0
  27. package/dist/components/content-viewer/plugins/lowlightLoader.d.ts +63 -0
  28. package/dist/components/content-viewer/plugins/lowlightLoader.d.ts.map +1 -0
  29. package/dist/components/content-viewer/plugins/lowlightLoader.js +120 -0
  30. package/dist/components/content-viewer/plugins/lowlightLoader.js.map +1 -0
  31. package/dist/components/content-viewer/plugins/rehypeCodeHighlight.d.ts +44 -0
  32. package/dist/components/content-viewer/plugins/rehypeCodeHighlight.d.ts.map +1 -0
  33. package/dist/components/content-viewer/plugins/rehypeCodeHighlight.js +122 -0
  34. package/dist/components/content-viewer/plugins/rehypeCodeHighlight.js.map +1 -0
  35. package/dist/components/content-viewer/plugins/rehypeExternalLinks.d.ts +59 -0
  36. package/dist/components/content-viewer/plugins/rehypeExternalLinks.d.ts.map +1 -0
  37. package/dist/components/content-viewer/plugins/rehypeExternalLinks.js +79 -0
  38. package/dist/components/content-viewer/plugins/rehypeExternalLinks.js.map +1 -0
  39. package/dist/components/content-viewer/plugins/rehypeHeadingIds.d.ts +37 -0
  40. package/dist/components/content-viewer/plugins/rehypeHeadingIds.d.ts.map +1 -0
  41. package/dist/components/content-viewer/plugins/rehypeHeadingIds.js +82 -0
  42. package/dist/components/content-viewer/plugins/rehypeHeadingIds.js.map +1 -0
  43. package/dist/components/content-viewer/plugins/remarkCallouts.d.ts +39 -0
  44. package/dist/components/content-viewer/plugins/remarkCallouts.d.ts.map +1 -0
  45. package/dist/components/content-viewer/plugins/remarkCallouts.js +77 -0
  46. package/dist/components/content-viewer/plugins/remarkCallouts.js.map +1 -0
  47. package/dist/components/content-viewer/plugins/slugify.d.ts +24 -0
  48. package/dist/components/content-viewer/plugins/slugify.d.ts.map +1 -0
  49. package/dist/components/content-viewer/plugins/slugify.js +31 -0
  50. package/dist/components/content-viewer/plugins/slugify.js.map +1 -0
  51. package/dist/components/content-viewer/sanitize.d.ts +75 -0
  52. package/dist/components/content-viewer/sanitize.d.ts.map +1 -0
  53. package/dist/components/content-viewer/sanitize.js +252 -0
  54. package/dist/components/content-viewer/sanitize.js.map +1 -0
  55. package/dist/components/content-viewer/types.d.ts +315 -0
  56. package/dist/components/content-viewer/types.d.ts.map +1 -0
  57. package/dist/components/content-viewer/types.js +8 -0
  58. package/dist/components/content-viewer/types.js.map +1 -0
  59. package/dist/components/content-viewer/variants.d.ts +71 -0
  60. package/dist/components/content-viewer/variants.d.ts.map +1 -0
  61. package/dist/components/content-viewer/variants.js +105 -0
  62. package/dist/components/content-viewer/variants.js.map +1 -0
  63. package/dist/content-viewer/ContentPane.d.ts +44 -1
  64. package/dist/content-viewer/ContentPane.d.ts.map +1 -1
  65. package/dist/content-viewer/ContentPane.js +139 -5
  66. package/dist/content-viewer/ContentPane.js.map +1 -1
  67. package/dist/content-viewer/FileTree.d.ts +23 -1
  68. package/dist/content-viewer/FileTree.d.ts.map +1 -1
  69. package/dist/content-viewer/FileTree.js +20 -5
  70. package/dist/content-viewer/FileTree.js.map +1 -1
  71. package/dist/content-viewer/index.d.ts +2 -0
  72. package/dist/content-viewer/index.d.ts.map +1 -1
  73. package/dist/content-viewer/index.js +2 -0
  74. package/dist/content-viewer/index.js.map +1 -1
  75. package/dist/diff/DiffViewer.js +3 -3
  76. package/dist/diff/DiffViewer.js.map +1 -1
  77. package/dist/discovery/discovery-card.d.ts +25 -0
  78. package/dist/discovery/discovery-card.d.ts.map +1 -0
  79. package/dist/discovery/discovery-card.js +265 -0
  80. package/dist/discovery/discovery-card.js.map +1 -0
  81. package/dist/discovery/index.d.ts +3 -0
  82. package/dist/discovery/index.d.ts.map +1 -0
  83. package/dist/discovery/index.js +3 -0
  84. package/dist/discovery/index.js.map +1 -0
  85. package/dist/display/ContextInfoCard.d.ts +61 -0
  86. package/dist/display/ContextInfoCard.d.ts.map +1 -0
  87. package/dist/display/ContextInfoCard.js +45 -0
  88. package/dist/display/ContextInfoCard.js.map +1 -0
  89. package/dist/display/index.d.ts +2 -0
  90. package/dist/display/index.d.ts.map +1 -1
  91. package/dist/display/index.js +1 -0
  92. package/dist/display/index.js.map +1 -1
  93. package/dist/editor/CodeEditor.d.ts +39 -0
  94. package/dist/editor/CodeEditor.d.ts.map +1 -0
  95. package/dist/editor/CodeEditor.js +114 -0
  96. package/dist/editor/CodeEditor.js.map +1 -0
  97. package/dist/editor/MarkdownEditor.d.ts +3 -2
  98. package/dist/editor/MarkdownEditor.d.ts.map +1 -1
  99. package/dist/editor/MarkdownEditor.js +32 -80
  100. package/dist/editor/MarkdownEditor.js.map +1 -1
  101. package/dist/editor/SplitPreview.d.ts +10 -1
  102. package/dist/editor/SplitPreview.d.ts.map +1 -1
  103. package/dist/editor/SplitPreview.js +4 -2
  104. package/dist/editor/SplitPreview.js.map +1 -1
  105. package/dist/editor/codeLanguages.d.ts +28 -0
  106. package/dist/editor/codeLanguages.d.ts.map +1 -0
  107. package/dist/editor/codeLanguages.js +54 -0
  108. package/dist/editor/codeLanguages.js.map +1 -0
  109. package/dist/editor/index.d.ts +2 -0
  110. package/dist/editor/index.d.ts.map +1 -1
  111. package/dist/editor/index.js +6 -0
  112. package/dist/editor/index.js.map +1 -1
  113. package/dist/editor/theme.d.ts +16 -0
  114. package/dist/editor/theme.d.ts.map +1 -0
  115. package/dist/editor/theme.js +82 -0
  116. package/dist/editor/theme.js.map +1 -0
  117. package/dist/filters/filter-bar.d.ts +14 -0
  118. package/dist/filters/filter-bar.d.ts.map +1 -0
  119. package/dist/filters/filter-bar.js +47 -0
  120. package/dist/filters/filter-bar.js.map +1 -0
  121. package/dist/filters/filter-slot-config.d.ts +239 -0
  122. package/dist/filters/filter-slot-config.d.ts.map +1 -0
  123. package/dist/filters/filter-slot-config.js +24 -0
  124. package/dist/filters/filter-slot-config.js.map +1 -0
  125. package/dist/filters/index.d.ts +2 -0
  126. package/dist/filters/index.d.ts.map +1 -1
  127. package/dist/filters/index.js +1 -0
  128. package/dist/filters/index.js.map +1 -1
  129. package/dist/primitives/Card.d.ts +28 -0
  130. package/dist/primitives/Card.d.ts.map +1 -0
  131. package/dist/primitives/Card.js +30 -0
  132. package/dist/primitives/Card.js.map +1 -0
  133. package/dist/primitives/CollectionPicker.d.ts +47 -0
  134. package/dist/primitives/CollectionPicker.d.ts.map +1 -0
  135. package/dist/primitives/CollectionPicker.js +105 -0
  136. package/dist/primitives/CollectionPicker.js.map +1 -0
  137. package/dist/primitives/CreateEntityDialog.d.ts +144 -0
  138. package/dist/primitives/CreateEntityDialog.d.ts.map +1 -0
  139. package/dist/primitives/CreateEntityDialog.js +379 -0
  140. package/dist/primitives/CreateEntityDialog.js.map +1 -0
  141. package/dist/primitives/FormField.d.ts +29 -0
  142. package/dist/primitives/FormField.d.ts.map +1 -0
  143. package/dist/primitives/FormField.js +27 -0
  144. package/dist/primitives/FormField.js.map +1 -0
  145. package/dist/primitives/Label.d.ts +20 -0
  146. package/dist/primitives/Label.d.ts.map +1 -0
  147. package/dist/primitives/Label.js +21 -0
  148. package/dist/primitives/Label.js.map +1 -0
  149. package/dist/primitives/SecretField.d.ts +28 -0
  150. package/dist/primitives/SecretField.d.ts.map +1 -0
  151. package/dist/primitives/SecretField.js +65 -0
  152. package/dist/primitives/SecretField.js.map +1 -0
  153. package/dist/primitives/Spinner.d.ts +16 -0
  154. package/dist/primitives/Spinner.d.ts.map +1 -0
  155. package/dist/primitives/Spinner.js +34 -0
  156. package/dist/primitives/Spinner.js.map +1 -0
  157. package/dist/primitives/Switch.d.ts +32 -0
  158. package/dist/primitives/Switch.d.ts.map +1 -0
  159. package/dist/primitives/Switch.js +43 -0
  160. package/dist/primitives/Switch.js.map +1 -0
  161. package/dist/primitives/index.d.ts +16 -0
  162. package/dist/primitives/index.d.ts.map +1 -1
  163. package/dist/primitives/index.js +9 -0
  164. package/dist/primitives/index.js.map +1 -1
  165. package/dist/utils/type-colors.d.ts.map +1 -1
  166. package/dist/utils/type-colors.js +4 -0
  167. package/dist/utils/type-colors.js.map +1 -1
  168. package/package.json +40 -6
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @miethe/ui — ArticleViewer CSS-variable variant system (PU2-05)
3
+ *
4
+ * Maps `ArticleVariant` values to Tailwind-compatible CSS class names.
5
+ * Each class is expected to read CSS custom properties from document root,
6
+ * which the consumer (e.g., Portal `globals.css`) must define.
7
+ *
8
+ * ## CSS-Variable Contract
9
+ *
10
+ * When variant="editorial", apply the class `cv-variant-editorial` and
11
+ * define these variables at `:root` (or a suitable ancestor):
12
+ *
13
+ * ```css
14
+ * :root {
15
+ * --cv-editorial-h1-font: Fraunces, Georgia, serif;
16
+ * --cv-editorial-h1-size: 2.25rem;
17
+ * --cv-editorial-h2-font: Fraunces, Georgia, serif;
18
+ * --cv-editorial-h2-size: 1.875rem;
19
+ * --cv-editorial-body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
20
+ * --cv-editorial-body-size: 1rem;
21
+ * --cv-editorial-body-line-height: 1.75;
22
+ * --cv-editorial-quote-color: #64748b;
23
+ * --cv-editorial-quote-font-style: italic;
24
+ * --cv-callout-note-accent: #0ea5e9;
25
+ * --cv-callout-note-bg: #f0f9ff;
26
+ * --cv-callout-reference-accent: #64748b;
27
+ * --cv-callout-reference-bg: #f1f5f9;
28
+ * --cv-callout-warning-accent: #f59e0b;
29
+ * --cv-callout-warning-bg: #fffbeb;
30
+ * --cv-callout-info-accent: #0ea5e9;
31
+ * --cv-callout-info-bg: #f0f9ff;
32
+ * }
33
+ * ```
34
+ *
35
+ * Analogous `--cv-compact-*` and `--cv-technical-*` sets follow the same pattern.
36
+ * Missing variables are silently ignored — browser defaults apply.
37
+ *
38
+ * ## Light / Dark Mode
39
+ *
40
+ * Variables should be declared inside appropriate selectors at the consumer side:
41
+ *
42
+ * ```css
43
+ * :root { --cv-editorial-body-font: "Libre Baskerville", serif; }
44
+ * .dark { --cv-editorial-body-font: "Libre Baskerville", serif; }
45
+ * ```
46
+ *
47
+ * The component itself applies no color values — all theming is delegated to the consumer.
48
+ */
49
+ // ============================================================================
50
+ // Variant class names
51
+ // ============================================================================
52
+ /**
53
+ * Mapping from `ArticleVariant` → the CSS class applied to the root element.
54
+ * The class is expected to read CSS custom properties from document root.
55
+ */
56
+ export const VARIANT_CLASSES = {
57
+ editorial: 'cv-variant-editorial',
58
+ compact: 'cv-variant-compact',
59
+ technical: 'cv-variant-technical',
60
+ };
61
+ // ============================================================================
62
+ // Token shape documentation
63
+ // ============================================================================
64
+ /**
65
+ * Returns the CSS custom property names expected for a given variant.
66
+ * Use this as documentation / tooling support — it does not read or set variables.
67
+ *
68
+ * @param variant - The `ArticleVariant` to query
69
+ * @returns An object whose values are the expected `--cv-*` variable names
70
+ */
71
+ export function getVariantTokenNames(variant) {
72
+ const prefix = `--cv-${variant}`;
73
+ return {
74
+ h1Font: `${prefix}-h1-font`,
75
+ h1Size: `${prefix}-h1-size`,
76
+ h2Font: `${prefix}-h2-font`,
77
+ h2Size: `${prefix}-h2-size`,
78
+ bodyFont: `${prefix}-body-font`,
79
+ bodySize: `${prefix}-body-size`,
80
+ bodyLineHeight: `${prefix}-body-line-height`,
81
+ quoteColor: `${prefix}-quote-color`,
82
+ quoteFontStyle: `${prefix}-quote-font-style`,
83
+ calloutNoteAccent: '--cv-callout-note-accent',
84
+ calloutNoteBg: '--cv-callout-note-bg',
85
+ calloutReferenceAccent: '--cv-callout-reference-accent',
86
+ calloutReferenceBg: '--cv-callout-reference-bg',
87
+ calloutWarningAccent: '--cv-callout-warning-accent',
88
+ calloutWarningBg: '--cv-callout-warning-bg',
89
+ calloutInfoAccent: '--cv-callout-info-accent',
90
+ calloutInfoBg: '--cv-callout-info-bg',
91
+ };
92
+ }
93
+ /**
94
+ * Returns the CSS class name to apply for a given variant,
95
+ * or `undefined` when no variant is specified.
96
+ *
97
+ * @param variant - Optional `ArticleVariant`
98
+ * @returns CSS class string, or `undefined`
99
+ */
100
+ export function variantClass(variant) {
101
+ if (variant === undefined)
102
+ return undefined;
103
+ return VARIANT_CLASSES[variant];
104
+ }
105
+ //# sourceMappingURL=variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../src/components/content-viewer/variants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAIH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC7D,SAAS,EAAE,sBAAsB;IACjC,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,sBAAsB;CAClC,CAAC;AAEF,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,MAAM,MAAM,GAAG,QAAQ,OAAO,EAAE,CAAC;IACjC,OAAO;QACL,MAAM,EAAE,GAAG,MAAM,UAAU;QAC3B,MAAM,EAAE,GAAG,MAAM,UAAU;QAC3B,MAAM,EAAE,GAAG,MAAM,UAAU;QAC3B,MAAM,EAAE,GAAG,MAAM,UAAU;QAC3B,QAAQ,EAAE,GAAG,MAAM,YAAY;QAC/B,QAAQ,EAAE,GAAG,MAAM,YAAY;QAC/B,cAAc,EAAE,GAAG,MAAM,mBAAmB;QAC5C,UAAU,EAAE,GAAG,MAAM,cAAc;QACnC,cAAc,EAAE,GAAG,MAAM,mBAAmB;QAC5C,iBAAiB,EAAE,0BAA0B;QAC7C,aAAa,EAAE,sBAAsB;QACrC,sBAAsB,EAAE,+BAA+B;QACvD,kBAAkB,EAAE,2BAA2B;QAC/C,oBAAoB,EAAE,6BAA6B;QACnD,gBAAgB,EAAE,yBAAyB;QAC3C,iBAAiB,EAAE,0BAA0B;QAC7C,aAAa,EAAE,sBAAsB;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAmC;IAC9D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  /**
2
3
  * Truncation information for large files
3
4
  */
@@ -36,6 +37,16 @@ export interface ContentPaneProps {
36
37
  * @default "File content viewer"
37
38
  */
38
39
  ariaLabel?: string;
40
+ /**
41
+ * When true, the rendered markdown HTML is passed through rehype-sanitize
42
+ * before display. Strips dangerous constructs: <script>, inline event
43
+ * handlers (onerror=, onclick=, etc.), javascript: URLs, and unsafe elements
44
+ * like <iframe>. When false (default), behavior is identical to the
45
+ * pre-sanitize-prop behavior — no sanitization overhead, no DOM changes.
46
+ * Only meaningful for markdown files (.md); ignored for plain-text files.
47
+ * @default false
48
+ */
49
+ sanitize?: boolean;
39
50
  /**
40
51
  * Deprecated. Frontmatter is now automatically stripped from content
41
52
  * when FrontmatterDisplay component is shown (when frontmatter exists).
@@ -44,6 +55,38 @@ export interface ContentPaneProps {
44
55
  * @deprecated
45
56
  */
46
57
  showFrontmatter?: boolean;
58
+ /**
59
+ * When true, syntax-highlights non-markdown editable files (e.g. .ts, .py, .json)
60
+ * using lowlight. Mirrors ArticleViewer.codeHighlight semantics: opt-in, lowlight-based,
61
+ * requires the consumer to install `lowlight` separately (`npm install lowlight`).
62
+ * Falls back to plain text rendering when lowlight is unavailable or the language
63
+ * is unrecognised — never throws.
64
+ * Only applies to the read path; edit mode always uses the CodeMirror editor.
65
+ * Has no effect on markdown files (.md) which always route through SplitPreview.
66
+ *
67
+ * Note: lowlight is loaded lazily, so the first code file shown after mount
68
+ * briefly renders as plain text before highlighting appears. To avoid this
69
+ * cold-cache flash, call `warmHighlightCache()` (exported from
70
+ * `@miethe/ui/content-viewer`) once at app startup to pre-load lowlight.
71
+ * @default false
72
+ */
73
+ codeHighlight?: boolean;
74
+ /**
75
+ * Render-prop called for non-editable, non-markdown file extensions.
76
+ * Receives the file extension (dot-prefixed, lowercase, e.g. ".png") and
77
+ * the raw content string (or null). Return a React node to render it inside
78
+ * the standard region wrapper, or return null to fall through to ContentDisplay.
79
+ *
80
+ * Editable text extensions (.md, .ts, .json, etc.) are never routed here.
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * renderBinaryPreview={(ext, content) =>
85
+ * ext === '.png' ? <img src={`data:image/png;base64,${content}`} alt="" /> : null
86
+ * }
87
+ * ```
88
+ */
89
+ renderBinaryPreview?: (ext: string, content: string | null) => React.ReactNode | null;
47
90
  }
48
91
  /**
49
92
  * ContentPane - File content viewer and editor component
@@ -103,5 +146,5 @@ export interface ContentPaneProps {
103
146
  * />
104
147
  * ```
105
148
  */
106
- export declare function ContentPane({ path, content, isLoading, error, readOnly, truncationInfo, isEditing, editedContent, onEditStart, onEditChange, onSave, onCancel, ariaLabel, showFrontmatter: _showFrontmatter, }: ContentPaneProps): import("react/jsx-runtime").JSX.Element;
149
+ export declare function ContentPane({ path, content, isLoading, error, readOnly, truncationInfo, isEditing, editedContent, onEditStart, onEditChange, onSave, onCancel, ariaLabel, sanitize, showFrontmatter: _showFrontmatter, codeHighlight, renderBinaryPreview, }: ContentPaneProps): import("react/jsx-runtime").JSX.Element;
107
150
  //# sourceMappingURL=ContentPane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPane.d.ts","sourceRoot":"","sources":["../../src/content-viewer/ContentPane.tsx"],"names":[],"mappings":"AAkCA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6PD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,SAAiB,EACjB,KAAY,EACZ,QAAgB,EAChB,cAAc,EACd,SAAiB,EACjB,aAAkB,EAClB,WAAW,EACX,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EAAE,gBAAwB,GAC1C,EAAE,gBAAgB,2CAmPlB"}
1
+ {"version":3,"file":"ContentPane.d.ts","sourceRoot":"","sources":["../../src/content-viewer/ContentPane.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuD,MAAM,OAAO,CAAC;AA2E5E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;CACvF;AA4WD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,SAAiB,EACjB,KAAY,EACZ,QAAgB,EAChB,cAAc,EACd,SAAiB,EACjB,aAAkB,EAClB,WAAW,EACX,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAgB,EAChB,eAAe,EAAE,gBAAwB,EACzC,aAAqB,EACrB,mBAAmB,GACpB,EAAE,gBAAgB,2CA0TlB"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useMemo, lazy, Suspense } from 'react';
3
+ import React, { useState, useMemo, useEffect, lazy, Suspense } from 'react';
4
4
  import { FileText, AlertCircle, AlertTriangle, Edit, ChevronRight, Save, X, ExternalLink, } from 'lucide-react';
5
5
  import { cn } from '../primitives/utils';
6
6
  import { Button } from '../components/ui/button';
@@ -9,12 +9,33 @@ import { Skeleton } from '../components/ui/skeleton';
9
9
  import { Alert, AlertDescription, AlertTitle } from '../components/ui/alert';
10
10
  import { FrontmatterDisplay } from '../display/FrontmatterDisplay';
11
11
  import { parseFrontmatter, detectFrontmatter, stripFrontmatter } from '../utils/frontmatter';
12
+ import { highlightCodeToHast } from '../components/content-viewer/plugins/lowlightLoader';
12
13
  /**
13
14
  * SplitPreview is lazy-loaded so that the CodeMirror editor bundle is only fetched
14
15
  * when a user enters edit mode on a markdown file. Consumers who render ContentPane
15
16
  * in read-only mode (or for non-markdown files) will never download the editor chunk.
16
17
  */
17
18
  const SplitPreview = lazy(() => import('../editor/SplitPreview').then((m) => ({ default: m.SplitPreview })));
19
+ /**
20
+ * LazyCodeEditor wraps CodeEditor + resolveCodeMirrorLanguage in a single lazy
21
+ * chunk so that CodeMirror language packs are only downloaded when the user
22
+ * enters edit mode on a non-markdown editable file.
23
+ *
24
+ * Both modules are fetched in parallel via Promise.all to minimise waterfall.
25
+ * The resolved `language` is derived from `path` inside the chunk so the
26
+ * resolver is never part of the read-only bundle.
27
+ */
28
+ const LazyCodeEditor = lazy(async () => {
29
+ const [{ CodeEditor }, { resolveCodeMirrorLanguage }] = await Promise.all([
30
+ import('../editor/CodeEditor'),
31
+ import('../editor/codeLanguages'),
32
+ ]);
33
+ function Wrapped({ path, initialContent, onChange, readOnly, className, }) {
34
+ return (_jsx(CodeEditor, { initialContent: initialContent, onChange: onChange, readOnly: readOnly, className: className, language: resolveCodeMirrorLanguage(path) }));
35
+ }
36
+ Wrapped.displayName = 'WrappedCodeEditor';
37
+ return { default: Wrapped };
38
+ });
18
39
  // ============================================================================
19
40
  // Helper Functions
20
41
  // ============================================================================
@@ -62,6 +83,26 @@ function isMarkdownFile(path) {
62
83
  function pathToBreadcrumbs(path) {
63
84
  return path.split('/').filter(Boolean);
64
85
  }
86
+ /**
87
+ * Map a file path's extension to a highlight.js language name.
88
+ * Returns null for unrecognised extensions (graceful fallback to plain text).
89
+ */
90
+ function extensionToLanguage(path) {
91
+ const lower = path.toLowerCase();
92
+ if (lower.endsWith('.ts') || lower.endsWith('.tsx'))
93
+ return 'typescript';
94
+ if (lower.endsWith('.js') || lower.endsWith('.jsx'))
95
+ return 'javascript';
96
+ if (lower.endsWith('.py'))
97
+ return 'python';
98
+ if (lower.endsWith('.json'))
99
+ return 'json';
100
+ if (lower.endsWith('.yml') || lower.endsWith('.yaml'))
101
+ return 'yaml';
102
+ if (lower.endsWith('.toml'))
103
+ return 'ini'; // best-effort: hljs has no toml, ini is close
104
+ return null;
105
+ }
65
106
  // ============================================================================
66
107
  // Loading Skeletons
67
108
  // ============================================================================
@@ -101,6 +142,72 @@ function ContentDisplay({ content, showLineNumbers = false }) {
101
142
  return (_jsxs("div", { className: "flex", children: [showLineNumbers && _jsx(LineNumbers, { lineCount: lines.length }), _jsx("pre", { className: "flex-1 whitespace-pre-wrap break-words font-mono text-xs leading-6", children: content })] }));
102
143
  }
103
144
  // ============================================================================
145
+ // Hast → React Renderer (minimal, no dangerouslySetInnerHTML)
146
+ // ============================================================================
147
+ /**
148
+ * Tags this renderer is allowed to emit. lowlight only ever produces `span`
149
+ * elements (plus text), so this set is deliberately tiny. Any other tag name is
150
+ * coerced to `span` — this keeps the renderer's "safe" guarantee true regardless
151
+ * of the hast source: a `<script>`/`<iframe>` node can never be created, while the
152
+ * node's text content is still preserved (rendered inside a span).
153
+ */
154
+ const SAFE_HAST_TAGS = new Set(['span', 'code', 'pre', 'em', 'strong', 'b', 'i', 'mark']);
155
+ /** Render a single hast node to a React node. */
156
+ function renderHastNode(node, index) {
157
+ if (node.type === 'text') {
158
+ return node.value;
159
+ }
160
+ if (node.type === 'element') {
161
+ const el = node;
162
+ // Convert className array to a space-joined string
163
+ const rawClass = el.properties?.className;
164
+ const className = Array.isArray(rawClass)
165
+ ? rawClass.join(' ')
166
+ : typeof rawClass === 'string'
167
+ ? rawClass
168
+ : undefined;
169
+ // Coerce any non-allowlisted tag to a safe `span` (never render arbitrary HTML).
170
+ const tagName = SAFE_HAST_TAGS.has(el.tagName) ? el.tagName : 'span';
171
+ return React.createElement(tagName, { key: index, className }, ...el.children.map((child, i) => renderHastNode(child, i)));
172
+ }
173
+ // Ignore root / doctype / comment / raw nodes
174
+ return null;
175
+ }
176
+ /**
177
+ * Renders syntax-highlighted code using lowlight.
178
+ * Falls back to ContentDisplay (plain text) when:
179
+ * - lowlight is not installed
180
+ * - the extension has no matching language
181
+ * - the highlight result hasn't loaded yet (async, first render)
182
+ *
183
+ * Never throws; all failure paths produce ContentDisplay.
184
+ */
185
+ function HighlightedDisplay({ path, content }) {
186
+ const [hastRoot, setHastRoot] = useState(null);
187
+ const [highlighted, setHighlighted] = useState(false);
188
+ const langName = useMemo(() => extensionToLanguage(path), [path]);
189
+ useEffect(() => {
190
+ let cancelled = false;
191
+ setHastRoot(null);
192
+ setHighlighted(false);
193
+ if (!langName)
194
+ return;
195
+ highlightCodeToHast(content, langName).then((result) => {
196
+ if (cancelled)
197
+ return;
198
+ setHastRoot(result);
199
+ setHighlighted(result !== null);
200
+ });
201
+ return () => {
202
+ cancelled = true;
203
+ };
204
+ }, [path, content, langName]);
205
+ if (!highlighted || !hastRoot) {
206
+ return _jsx(ContentDisplay, { content: content });
207
+ }
208
+ return (_jsx("pre", { className: "flex-1 whitespace-pre-wrap break-words font-mono text-xs leading-6", children: _jsx("code", { className: "hljs", children: hastRoot.children.map((child, i) => renderHastNode(child, i)) }) }));
209
+ }
210
+ // ============================================================================
104
211
  // Main Component
105
212
  // ============================================================================
106
213
  /**
@@ -161,7 +268,7 @@ function ContentDisplay({ content, showLineNumbers = false }) {
161
268
  * />
162
269
  * ```
163
270
  */
164
- export function ContentPane({ path, content, isLoading = false, error = null, readOnly = false, truncationInfo, isEditing = false, editedContent = '', onEditStart, onEditChange, onSave, onCancel, ariaLabel, showFrontmatter: _showFrontmatter = false, }) {
271
+ export function ContentPane({ path, content, isLoading = false, error = null, readOnly = false, truncationInfo, isEditing = false, editedContent = '', onEditStart, onEditChange, onSave, onCancel, ariaLabel, sanitize = false, showFrontmatter: _showFrontmatter = false, codeHighlight = false, renderBinaryPreview, }) {
165
272
  // Generate unique ID for breadcrumb to use in aria-labelledby
166
273
  const breadcrumbId = path
167
274
  ? `content-pane-breadcrumb-${path.replace(/[^a-zA-Z0-9]/g, '-')}`
@@ -233,15 +340,42 @@ export function ContentPane({ path, content, isLoading = false, error = null, re
233
340
  if (!path) {
234
341
  return _jsx(EmptyState, {});
235
342
  }
343
+ // -------------------------------------------------------------------------
344
+ // renderBinaryPreview fast-path — evaluated before the empty-content guard
345
+ // so that binary files (images, PDFs, …) with null content are handled.
346
+ // Non-editable extensions only; editable text exts skip this block entirely.
347
+ // -------------------------------------------------------------------------
348
+ if (!isEditableFile(path) && renderBinaryPreview) {
349
+ const ext = path.slice(path.lastIndexOf('.')).toLowerCase();
350
+ const node = renderBinaryPreview(ext, content);
351
+ if (node !== null) {
352
+ return (_jsxs("div", { className: "flex h-full w-full flex-col overflow-hidden", role: "region", "aria-label": ariaLabel || `File content: ${path}`, "aria-labelledby": breadcrumbId, "data-testid": "content-pane", children: [_jsx("div", { className: "flex flex-shrink-0 items-center justify-between border-b bg-muted/20 p-4", children: _jsx(Breadcrumb, { path: path, id: breadcrumbId }) }), _jsx(ScrollArea, { className: "min-h-0 min-w-0 flex-1", children: _jsx("div", { className: "p-4", children: node }) })] }));
353
+ // node === null → fall through to empty-content / normal branch below
354
+ }
355
+ }
236
356
  // Empty content - file is empty or couldn't be loaded
237
357
  if (content === null || content === '') {
238
358
  return (_jsxs("div", { className: "flex h-full flex-col", role: "region", "aria-label": ariaLabel || `File content: ${path}`, "aria-labelledby": breadcrumbId, "data-testid": "content-pane", children: [_jsxs("div", { className: "flex items-center justify-between border-b bg-muted/20 p-4", children: [_jsx(Breadcrumb, { path: path, id: breadcrumbId }), canEdit && !isEditing && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleEditClick, "aria-label": `Edit ${path}`, children: [_jsx(Edit, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Edit"] })), !readOnly && isEditing && (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleCancelClick, disabled: isSaving, children: [_jsx(X, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Cancel"] }), _jsxs(Button, { variant: "default", size: "sm", onClick: handleSaveClick, disabled: isSaving, children: [_jsx(Save, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), isSaving ? 'Saving...' : 'Save'] })] }))] }), _jsx("div", { className: "flex flex-1 items-center justify-center text-center", children: _jsxs("div", { children: [_jsx(FileText, { className: "mx-auto mb-2 h-8 w-8 text-muted-foreground opacity-50", "aria-hidden": "true" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "This file is empty" })] }) })] }));
239
359
  }
240
360
  // Markdown file - always use split preview (shows rendered markdown)
241
361
  if (isMarkdown) {
242
- return (_jsxs("div", { className: "flex h-full w-full flex-col overflow-hidden", role: "region", "aria-label": ariaLabel || `Markdown file: ${path}`, "aria-labelledby": breadcrumbId, "data-testid": "content-pane", children: [_jsxs("div", { className: "flex flex-shrink-0 items-center justify-between border-b bg-muted/20 p-4", children: [_jsx(Breadcrumb, { path: path, id: breadcrumbId }), !readOnly && isEditing ? (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleCancelClick, disabled: isSaving, children: [_jsx(X, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Cancel"] }), _jsxs(Button, { variant: "default", size: "sm", onClick: handleSaveClick, disabled: isSaving, children: [_jsx(Save, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), isSaving ? 'Saving...' : 'Save'] })] })) : (canEdit && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleEditClick, "aria-label": `Edit ${path}`, children: [_jsx(Edit, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Edit"] })))] }), _jsxs("div", { className: "min-h-0 min-w-0 flex-1 overflow-auto p-4", children: [isTruncated && (_jsx(TruncationBanner, { originalSize: truncationInfo?.originalSize, fullFileUrl: truncationInfo?.fullFileUrl })), parsedContent.frontmatter && (_jsx(FrontmatterDisplay, { frontmatter: parsedContent.frontmatter, defaultCollapsed: true, className: "mb-4" })), _jsx("div", { className: "min-w-0", children: _jsx(Suspense, { fallback: _jsx(EditorLoadingSkeleton, {}), children: _jsx(SplitPreview, { content: isEditing ? editedContent : displayContent, onChange: (newContent) => onEditChange?.(newContent), isEditing: isEditing }) }) })] })] }));
362
+ return (_jsxs("div", { className: "flex h-full w-full flex-col overflow-hidden", role: "region", "aria-label": ariaLabel || `Markdown file: ${path}`, "aria-labelledby": breadcrumbId, "data-testid": "content-pane", children: [_jsxs("div", { className: "flex flex-shrink-0 items-center justify-between border-b bg-muted/20 p-4", children: [_jsx(Breadcrumb, { path: path, id: breadcrumbId }), !readOnly && isEditing ? (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleCancelClick, disabled: isSaving, children: [_jsx(X, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Cancel"] }), _jsxs(Button, { variant: "default", size: "sm", onClick: handleSaveClick, disabled: isSaving, children: [_jsx(Save, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), isSaving ? 'Saving...' : 'Save'] })] })) : (canEdit && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleEditClick, "aria-label": `Edit ${path}`, children: [_jsx(Edit, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Edit"] })))] }), _jsxs("div", { className: "min-h-0 min-w-0 flex-1 overflow-auto p-4", children: [isTruncated && (_jsx(TruncationBanner, { originalSize: truncationInfo?.originalSize, fullFileUrl: truncationInfo?.fullFileUrl })), parsedContent.frontmatter && (_jsx(FrontmatterDisplay, { frontmatter: parsedContent.frontmatter, defaultCollapsed: true, className: "mb-4" })), _jsx("div", { className: "min-w-0", children: _jsx(Suspense, { fallback: _jsx(EditorLoadingSkeleton, {}), children: _jsx(SplitPreview, { content: isEditing ? editedContent : displayContent, onChange: (newContent) => onEditChange?.(newContent), isEditing: isEditing, sanitize: sanitize }) }) })] })] }));
243
363
  }
244
- // Content display (read-only mode for non-markdown files)
245
- return (_jsxs("div", { className: "flex h-full w-full flex-col overflow-hidden", role: "region", "aria-label": ariaLabel || `File content: ${path}`, "aria-labelledby": breadcrumbId, "data-testid": "content-pane", children: [_jsxs("div", { className: "flex flex-shrink-0 items-center justify-between border-b bg-muted/20 p-4", children: [_jsx(Breadcrumb, { path: path, id: breadcrumbId }), canEdit && !isEditing && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleEditClick, "aria-label": `Edit ${path}`, children: [_jsx(Edit, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Edit"] }))] }), _jsx(ScrollArea, { className: "min-h-0 min-w-0 flex-1", children: _jsxs("div", { className: "p-4", children: [isTruncated && (_jsx(TruncationBanner, { originalSize: truncationInfo?.originalSize, fullFileUrl: truncationInfo?.fullFileUrl })), parsedContent.frontmatter && (_jsx(FrontmatterDisplay, { frontmatter: parsedContent.frontmatter, defaultCollapsed: true, className: "mb-4" })), _jsx("div", { className: "max-w-full", children: _jsx(ContentDisplay, { content: displayContent, showLineNumbers: false }) })] }) })] }));
364
+ // -------------------------------------------------------------------------
365
+ // Non-markdown editable files (.ts, .json, .py, ) + plain fallthrough
366
+ // -------------------------------------------------------------------------
367
+ // When isEditing, show the LazyCodeEditor. When reading, show either the
368
+ // highlighted view (codeHighlight=true) or the plain ContentDisplay.
369
+ return (_jsxs("div", { className: "flex h-full w-full flex-col overflow-hidden", role: "region", "aria-label": ariaLabel || `File content: ${path}`, "aria-labelledby": breadcrumbId, "data-testid": "content-pane", children: [_jsxs("div", { className: "flex flex-shrink-0 items-center justify-between border-b bg-muted/20 p-4", children: [_jsx(Breadcrumb, { path: path, id: breadcrumbId }), !readOnly && isEditing ? (_jsxs("div", { className: "flex gap-2", children: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleCancelClick, disabled: isSaving, children: [_jsx(X, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Cancel"] }), _jsxs(Button, { variant: "default", size: "sm", onClick: handleSaveClick, disabled: isSaving, children: [_jsx(Save, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), isSaving ? 'Saving...' : 'Save'] })] })) : (
370
+ /* Read mode: Edit button (shown only when editing is permitted) */
371
+ canEdit && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleEditClick, "aria-label": `Edit ${path}`, children: [_jsx(Edit, { className: "mr-2 h-4 w-4", "aria-hidden": "true" }), "Edit"] })))] }), isEditing && isEditableFile(path) ? (
372
+ /* Edit mode — CodeMirror code editor (lazy-loaded) */
373
+ _jsx("div", { className: "min-h-0 min-w-0 flex-1 overflow-auto p-4", children: _jsx(Suspense, { fallback: _jsx(EditorLoadingSkeleton, {}), children: _jsx(LazyCodeEditor, { path: path, initialContent: editedContent, onChange: (c) => onEditChange?.(c) }) }) })) : (
374
+ /* Read mode — plain text or syntax-highlighted display */
375
+ _jsx(ScrollArea, { className: "min-h-0 min-w-0 flex-1", children: _jsxs("div", { className: "p-4", children: [isTruncated && (_jsx(TruncationBanner, { originalSize: truncationInfo?.originalSize, fullFileUrl: truncationInfo?.fullFileUrl })), parsedContent.frontmatter && (_jsx(FrontmatterDisplay, { frontmatter: parsedContent.frontmatter, defaultCollapsed: true, className: "mb-4" })), _jsx("div", { className: "max-w-full", children: codeHighlight && path && !isMarkdown ? (
376
+ /* Syntax-highlighted view (opt-in, requires lowlight installed) */
377
+ _jsx(HighlightedDisplay, { path: path, content: displayContent })) : (
378
+ /* Plain text view */
379
+ _jsx(ContentDisplay, { content: displayContent, showLineNumbers: false })) })] }) }))] }));
246
380
  }
247
381
  //# sourceMappingURL=ContentPane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentPane.js","sourceRoot":"","sources":["../../src/content-viewer/ContentPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContentPane.js","sourceRoot":"","sources":["../../src/content-viewer/ContentPane.tsx"],"names":[],"mappings":"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"}
@@ -18,6 +18,15 @@ export interface FileTreeProps {
18
18
  * @default "File browser"
19
19
  */
20
20
  ariaLabel?: string;
21
+ /**
22
+ * Optional callback to resolve custom icons for files/directories.
23
+ * Return a Lucide icon component or undefined to use default logic.
24
+ * @param node - The file node to resolve an icon for
25
+ * @returns Lucide icon component or undefined for default behavior
26
+ */
27
+ iconResolver?: (node: FileNode) => React.ComponentType<{
28
+ className?: string;
29
+ }> | undefined;
21
30
  }
22
31
  /**
23
32
  * FileTree - Recursive file browser component
@@ -65,7 +74,20 @@ export interface FileTreeProps {
65
74
  * readOnly
66
75
  * ariaLabel="Artifact file browser"
67
76
  * />
77
+ *
78
+ * // With custom icon resolver
79
+ * <FileTree
80
+ * entityId="skill-123"
81
+ * files={fileStructure}
82
+ * selectedPath={selectedPath}
83
+ * onSelect={(path) => setSelectedPath(path)}
84
+ * iconResolver={(node) => {
85
+ * if (node.path.includes('/agents/')) return Users;
86
+ * if (node.path.includes('/skills/')) return Zap;
87
+ * return undefined; // Use default icon
88
+ * }}
89
+ * />
68
90
  * ```
69
91
  */
70
- export declare function FileTree({ entityId: _entityId, files, selectedPath, onSelect, onAddFile, onDeleteFile, isLoading, readOnly, ariaLabel, }: FileTreeProps): import("react/jsx-runtime").JSX.Element;
92
+ export declare function FileTree({ entityId: _entityId, files, selectedPath, onSelect, onAddFile, onDeleteFile, isLoading, readOnly, ariaLabel, iconResolver, }: FileTreeProps): import("react/jsx-runtime").JSX.Element;
71
93
  //# sourceMappingURL=FileTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileTree.d.ts","sourceRoot":"","sources":["../../src/content-viewer/FileTree.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkRD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EAAE,SAAS,EACnB,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,SAA0B,GAC3B,EAAE,aAAa,2CAmLf"}
1
+ {"version":3,"file":"FileTree.d.ts","sourceRoot":"","sources":["../../src/content-viewer/FileTree.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMzC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CAC5F;AAyRD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EAAE,SAAS,EACnB,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,SAA0B,EAC1B,YAAY,GACb,EAAE,aAAa,2CAoLf"}
@@ -54,7 +54,7 @@ function flattenVisibleNodes(nodes, expandedPaths) {
54
54
  traverse(nodes);
55
55
  return result;
56
56
  }
57
- function TreeNode({ node, level, selectedPath, focusedPath, expandedPaths, onSelect, onToggle, onDelete, onFocus, onKeyNavigation, treeSize, positionInSet, }) {
57
+ function TreeNode({ node, level, selectedPath, focusedPath, expandedPaths, onSelect, onToggle, onDelete, onFocus, onKeyNavigation, treeSize, positionInSet, iconResolver, }) {
58
58
  const nodeRef = useRef(null);
59
59
  const isExpanded = expandedPaths.has(node.path);
60
60
  const isSelected = selectedPath === node.path;
@@ -110,11 +110,13 @@ function TreeNode({ node, level, selectedPath, focusedPath, expandedPaths, onSel
110
110
  onDelete(node.path);
111
111
  }
112
112
  }, [node.path, onDelete]);
113
- const IconComponent = isDirectory ? (isExpanded ? FolderOpen : Folder) : getFileIcon(node.name);
113
+ // Try custom resolver first, fall back to default logic
114
+ const customIcon = iconResolver?.(node);
115
+ const IconComponent = customIcon ?? (isDirectory ? (isExpanded ? FolderOpen : Folder) : getFileIcon(node.name));
114
116
  return (_jsxs("div", { role: "none", children: [_jsxs("div", { ref: nodeRef, role: "treeitem", tabIndex: isFocused ? 0 : -1, "aria-selected": isSelected, "aria-expanded": isDirectory ? isExpanded : undefined, "aria-level": level + 1, "aria-setsize": treeSize, "aria-posinset": positionInSet, "data-testid": `tree-item-${node.path}`, className: cn('group flex cursor-pointer items-center gap-1 rounded px-2 py-1 transition-colors hover:bg-accent', isSelected && 'bg-accent text-accent-foreground', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1'), style: { paddingLeft: `${level * 12 + 8}px` }, onClick: handleClick, onKeyDown: handleKeyDown, onFocus: () => onFocus(node.path), children: [isDirectory ? (_jsx("span", { className: "flex-shrink-0", "aria-hidden": "true", children: isExpanded ? (_jsx(ChevronDown, { className: "h-4 w-4 text-muted-foreground" })) : (_jsx(ChevronRight, { className: "h-4 w-4 text-muted-foreground" })) })) : (_jsx("span", { className: "w-4 flex-shrink-0", "aria-hidden": "true" })), _jsx(IconComponent, { className: cn('h-4 w-4 flex-shrink-0', isDirectory ? 'text-blue-500' : 'text-muted-foreground'), "aria-hidden": "true" }), _jsx("span", { className: "min-w-0 flex-1 truncate text-sm", children: node.name }), onDelete && !isDirectory && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6 opacity-0 transition-opacity focus:opacity-100 group-hover:opacity-100", onClick: handleDelete, "aria-label": `Delete ${node.name}`, tabIndex: -1, children: _jsx(Trash2, { className: "h-3 w-3", "aria-hidden": "true" }) }))] }), isDirectory && isExpanded && node.children && (_jsx("div", { role: "group", "aria-label": `Contents of ${node.name}`, children: node.children.map((child, index) => {
115
117
  // Calculate position in the flattened visible list
116
118
  // This is a simplified version - the parent handles the full calculation
117
- return (_jsx(TreeNode, { node: child, level: level + 1, selectedPath: selectedPath, focusedPath: focusedPath, expandedPaths: expandedPaths, onSelect: onSelect, onToggle: onToggle, onDelete: onDelete, onFocus: onFocus, onKeyNavigation: onKeyNavigation, treeSize: treeSize, positionInSet: index + 1 }, child.path));
119
+ return (_jsx(TreeNode, { node: child, level: level + 1, selectedPath: selectedPath, focusedPath: focusedPath, expandedPaths: expandedPaths, onSelect: onSelect, onToggle: onToggle, onDelete: onDelete, onFocus: onFocus, onKeyNavigation: onKeyNavigation, treeSize: treeSize, positionInSet: index + 1, iconResolver: iconResolver }, child.path));
118
120
  }) }))] }));
119
121
  }
120
122
  // ============================================================================
@@ -172,9 +174,22 @@ function FileTreeSkeleton() {
172
174
  * readOnly
173
175
  * ariaLabel="Artifact file browser"
174
176
  * />
177
+ *
178
+ * // With custom icon resolver
179
+ * <FileTree
180
+ * entityId="skill-123"
181
+ * files={fileStructure}
182
+ * selectedPath={selectedPath}
183
+ * onSelect={(path) => setSelectedPath(path)}
184
+ * iconResolver={(node) => {
185
+ * if (node.path.includes('/agents/')) return Users;
186
+ * if (node.path.includes('/skills/')) return Zap;
187
+ * return undefined; // Use default icon
188
+ * }}
189
+ * />
175
190
  * ```
176
191
  */
177
- export function FileTree({ entityId: _entityId, files, selectedPath, onSelect, onAddFile, onDeleteFile, isLoading = false, readOnly = false, ariaLabel = 'File browser', }) {
192
+ export function FileTree({ entityId: _entityId, files, selectedPath, onSelect, onAddFile, onDeleteFile, isLoading = false, readOnly = false, ariaLabel = 'File browser', iconResolver, }) {
178
193
  const [expandedPaths, setExpandedPaths] = useState(new Set());
179
194
  const [focusedPath, setFocusedPath] = useState(null);
180
195
  const treeRef = useRef(null);
@@ -289,6 +304,6 @@ export function FileTree({ entityId: _entityId, files, selectedPath, onSelect, o
289
304
  if (files.length === 0) {
290
305
  return (_jsxs("div", { className: "flex h-full flex-col items-center justify-center py-12 text-center", children: [_jsx(Folder, { className: "mb-4 h-12 w-12 text-muted-foreground opacity-50", "aria-hidden": "true" }), _jsx("h3", { className: "mb-1 text-sm font-medium text-muted-foreground", children: "No files found" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "This entity does not contain any files yet." })] }));
291
306
  }
292
- return (_jsxs("div", { className: "flex h-full flex-col", children: [onAddFile && !readOnly && (_jsxs("div", { className: "flex items-center justify-between border-b p-2", children: [_jsx("span", { className: "whitespace-nowrap text-xs font-medium text-muted-foreground", children: "FILES" }), _jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6 flex-shrink-0", onClick: onAddFile, "aria-label": "Add new file", children: _jsx(Plus, { className: "h-3 w-3", "aria-hidden": "true" }) })] })), _jsx("div", { ref: treeRef, role: "tree", "aria-label": ariaLabel, className: "flex-1 overflow-auto p-2", "data-testid": "file-tree", children: files.map((node, index) => (_jsx(TreeNode, { node: node, level: 0, selectedPath: selectedPath, focusedPath: focusedPath, expandedPaths: expandedPaths, onSelect: onSelect, onToggle: handleToggle, onDelete: readOnly ? undefined : onDeleteFile, onFocus: handleFocus, onKeyNavigation: handleKeyNavigation, treeSize: visibleNodes.length, positionInSet: index + 1 }, node.path))) })] }));
307
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [onAddFile && !readOnly && (_jsxs("div", { className: "flex items-center justify-between border-b p-2", children: [_jsx("span", { className: "whitespace-nowrap text-xs font-medium text-muted-foreground", children: "FILES" }), _jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6 flex-shrink-0", onClick: onAddFile, "aria-label": "Add new file", children: _jsx(Plus, { className: "h-3 w-3", "aria-hidden": "true" }) })] })), _jsx("div", { ref: treeRef, role: "tree", "aria-label": ariaLabel, className: "flex-1 overflow-auto p-2", "data-testid": "file-tree", children: files.map((node, index) => (_jsx(TreeNode, { node: node, level: 0, selectedPath: selectedPath, focusedPath: focusedPath, expandedPaths: expandedPaths, onSelect: onSelect, onToggle: handleToggle, onDelete: readOnly ? undefined : onDeleteFile, onFocus: handleFocus, onKeyNavigation: handleKeyNavigation, treeSize: visibleNodes.length, positionInSet: index + 1, iconResolver: iconResolver }, node.path))) })] }));
293
308
  }
294
309
  //# sourceMappingURL=FileTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileTree.js","sourceRoot":"","sources":["../../src/content-viewer/FileTree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileTree.js","sourceRoot":"","sources":["../../src/content-viewer/FileTree.tsx"],"names":[],"mappings":"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"}