snice 3.4.0 → 3.5.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 (177) hide show
  1. package/bin/templates/base/package.json +2 -2
  2. package/bin/templates/social/package.json +2 -2
  3. package/bin/templates/social/src/styles/global.css +56 -47
  4. package/dist/components/avatar/snice-avatar.d.ts +2 -2
  5. package/dist/components/avatar/snice-avatar.js +20 -21
  6. package/dist/components/avatar/snice-avatar.js.map +1 -1
  7. package/dist/components/calendar/snice-calendar.d.ts +8 -2
  8. package/dist/components/calendar/snice-calendar.js +160 -82
  9. package/dist/components/calendar/snice-calendar.js.map +1 -1
  10. package/dist/components/chart/snice-chart.js +50 -18
  11. package/dist/components/chart/snice-chart.js.map +1 -1
  12. package/dist/components/checkbox/snice-checkbox.d.ts +4 -1
  13. package/dist/components/checkbox/snice-checkbox.js +46 -17
  14. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  15. package/dist/components/code-block/highlighter.d.ts +5 -0
  16. package/dist/components/code-block/highlighter.js +137 -0
  17. package/dist/components/code-block/highlighter.js.map +1 -0
  18. package/dist/components/code-block/highlighters/highlight.d.ts +64 -0
  19. package/dist/components/code-block/highlighters/highlight.js +108 -0
  20. package/dist/components/code-block/highlighters/highlight.js.map +1 -0
  21. package/dist/components/code-block/highlighters/prism.d.ts +41 -0
  22. package/dist/components/code-block/highlighters/prism.js +73 -0
  23. package/dist/components/code-block/highlighters/prism.js.map +1 -0
  24. package/dist/components/code-block/snice-code-block.d.ts +19 -1
  25. package/dist/components/code-block/snice-code-block.js +128 -29
  26. package/dist/components/code-block/snice-code-block.js.map +1 -1
  27. package/dist/components/code-block/snice-code-block.types.d.ts +15 -1
  28. package/dist/components/color-picker/snice-color-picker.d.ts +1 -0
  29. package/dist/components/color-picker/snice-color-picker.js +17 -6
  30. package/dist/components/color-picker/snice-color-picker.js.map +1 -1
  31. package/dist/components/date-picker/snice-date-picker.d.ts +1 -0
  32. package/dist/components/date-picker/snice-date-picker.js +16 -5
  33. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  34. package/dist/components/doc/snice-doc.d.ts +27 -73
  35. package/dist/components/doc/snice-doc.js +385 -534
  36. package/dist/components/doc/snice-doc.js.map +1 -1
  37. package/dist/components/draw/snice-draw.d.ts +4 -0
  38. package/dist/components/draw/snice-draw.js +134 -14
  39. package/dist/components/draw/snice-draw.js.map +1 -1
  40. package/dist/components/draw/snice-draw.types.d.ts +5 -0
  41. package/dist/components/file-upload/snice-file-upload.js +1 -1
  42. package/dist/components/input/snice-input.d.ts +2 -0
  43. package/dist/components/input/snice-input.js +34 -9
  44. package/dist/components/input/snice-input.js.map +1 -1
  45. package/dist/components/kanban/snice-kanban.d.ts +13 -1
  46. package/dist/components/kanban/snice-kanban.js +191 -36
  47. package/dist/components/kanban/snice-kanban.js.map +1 -1
  48. package/dist/components/kanban/snice-kanban.types.d.ts +11 -1
  49. package/dist/components/kpi/snice-kpi.js +5 -1
  50. package/dist/components/kpi/snice-kpi.js.map +1 -1
  51. package/dist/components/layout/snice-layout-sidebar.js +1 -1
  52. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  53. package/dist/components/layout/snice-layout.js +1 -1
  54. package/dist/components/layout/snice-layout.js.map +1 -1
  55. package/dist/components/location/snice-location.js +1 -1
  56. package/dist/components/location/snice-location.js.map +1 -1
  57. package/dist/components/radio/snice-radio.d.ts +1 -0
  58. package/dist/components/radio/snice-radio.js +17 -6
  59. package/dist/components/radio/snice-radio.js.map +1 -1
  60. package/dist/components/select/snice-select.d.ts +2 -0
  61. package/dist/components/select/snice-select.js +48 -19
  62. package/dist/components/select/snice-select.js.map +1 -1
  63. package/dist/components/slider/snice-slider.d.ts +2 -0
  64. package/dist/components/slider/snice-slider.js +34 -14
  65. package/dist/components/slider/snice-slider.js.map +1 -1
  66. package/dist/components/snice-cell-HZ2iIBIC.js +4 -0
  67. package/dist/components/snice-cell-HZ2iIBIC.js.map +1 -0
  68. package/dist/components/split-pane/snice-split-pane.js +1 -1
  69. package/dist/components/split-pane/snice-split-pane.js.map +1 -1
  70. package/dist/components/switch/snice-switch.d.ts +1 -0
  71. package/dist/components/switch/snice-switch.js +16 -6
  72. package/dist/components/switch/snice-switch.js.map +1 -1
  73. package/dist/components/table/snice-cell-actions.js +1 -1
  74. package/dist/components/table/snice-cell-actions.js.map +1 -1
  75. package/dist/components/table/snice-cell-boolean.js +1 -1
  76. package/dist/components/table/snice-cell-color.js +1 -1
  77. package/dist/components/table/snice-cell-color.js.map +1 -1
  78. package/dist/components/table/snice-cell-currency.js +1 -1
  79. package/dist/components/table/snice-cell-date.js +1 -1
  80. package/dist/components/table/snice-cell-duration.js +1 -1
  81. package/dist/components/table/snice-cell-email.js +1 -1
  82. package/dist/components/table/snice-cell-email.js.map +1 -1
  83. package/dist/components/table/snice-cell-filesize.js +1 -1
  84. package/dist/components/table/snice-cell-image.js +1 -1
  85. package/dist/components/table/snice-cell-image.js.map +1 -1
  86. package/dist/components/table/snice-cell-json.js +1 -1
  87. package/dist/components/table/snice-cell-json.js.map +1 -1
  88. package/dist/components/table/snice-cell-link.js +1 -1
  89. package/dist/components/table/snice-cell-link.js.map +1 -1
  90. package/dist/components/table/snice-cell-location.js +1 -1
  91. package/dist/components/table/snice-cell-location.js.map +1 -1
  92. package/dist/components/table/snice-cell-number.js +1 -1
  93. package/dist/components/table/snice-cell-percentage.js +1 -1
  94. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  95. package/dist/components/table/snice-cell-phone.js +1 -1
  96. package/dist/components/table/snice-cell-phone.js.map +1 -1
  97. package/dist/components/table/snice-cell-progress.js +3 -3
  98. package/dist/components/table/snice-cell-progress.js.map +1 -1
  99. package/dist/components/table/snice-cell-rating.js +2 -2
  100. package/dist/components/table/snice-cell-rating.js.map +1 -1
  101. package/dist/components/table/snice-cell-sparkline.js +2 -2
  102. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  103. package/dist/components/table/snice-cell-status.js +1 -1
  104. package/dist/components/table/snice-cell-status.js.map +1 -1
  105. package/dist/components/table/snice-cell-tag.js +1 -1
  106. package/dist/components/table/snice-cell-tag.js.map +1 -1
  107. package/dist/components/table/snice-cell-text.js +1 -1
  108. package/dist/components/table/snice-cell.js +15 -10
  109. package/dist/components/table/snice-cell.js.map +1 -1
  110. package/dist/components/table/snice-header.js +1 -1
  111. package/dist/components/table/snice-header.js.map +1 -1
  112. package/dist/components/table/snice-row.js +2 -2
  113. package/dist/components/table/snice-row.js.map +1 -1
  114. package/dist/components/table/snice-table.d.ts +1 -0
  115. package/dist/components/table/snice-table.js +24 -4
  116. package/dist/components/table/snice-table.js.map +1 -1
  117. package/dist/components/terminal/snice-terminal.d.ts +40 -0
  118. package/dist/components/terminal/snice-terminal.js +371 -0
  119. package/dist/components/terminal/snice-terminal.js.map +1 -0
  120. package/dist/components/terminal/snice-terminal.types.d.ts +20 -24
  121. package/dist/components/textarea/snice-textarea.d.ts +2 -0
  122. package/dist/components/textarea/snice-textarea.js +25 -6
  123. package/dist/components/textarea/snice-textarea.js.map +1 -1
  124. package/dist/components/theme/theme.css +16 -0
  125. package/dist/components/tree/snice-tree-item.d.ts +18 -4
  126. package/dist/components/tree/snice-tree-item.js +271 -88
  127. package/dist/components/tree/snice-tree-item.js.map +1 -1
  128. package/dist/components/tree/snice-tree-item.types.d.ts +3 -0
  129. package/dist/components/tree/snice-tree.d.ts +18 -2
  130. package/dist/components/tree/snice-tree.js +422 -56
  131. package/dist/components/tree/snice-tree.js.map +1 -1
  132. package/dist/components/tree/snice-tree.types.d.ts +1 -0
  133. package/dist/components/virtual-scroller/snice-virtual-scroller.js +4 -2
  134. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -1
  135. package/dist/index.cjs +42 -23
  136. package/dist/index.cjs.map +1 -1
  137. package/dist/index.esm.js +42 -23
  138. package/dist/index.esm.js.map +1 -1
  139. package/dist/index.iife.js +42 -23
  140. package/dist/index.iife.js.map +1 -1
  141. package/dist/render-tracker.d.ts +1 -0
  142. package/dist/symbols.cjs +13 -14
  143. package/dist/symbols.cjs.map +1 -1
  144. package/dist/symbols.esm.js +13 -14
  145. package/dist/symbols.esm.js.map +1 -1
  146. package/dist/template.d.ts +1 -0
  147. package/dist/transitions.cjs +1 -1
  148. package/dist/transitions.esm.js +1 -1
  149. package/docs/ai/api.md +37 -4
  150. package/docs/ai/components/doc.md +41 -106
  151. package/docs/ai/components/kanban.md +31 -9
  152. package/docs/ai/components/kpi.md +15 -0
  153. package/docs/components/doc.md +96 -212
  154. package/docs/components/kanban.md +119 -4
  155. package/docs/components/kpi.md +27 -0
  156. package/package.json +4 -1
  157. package/dist/components/actions/snice-actions.d.ts +0 -28
  158. package/dist/components/actions/snice-actions.js +0 -220
  159. package/dist/components/actions/snice-actions.js.map +0 -1
  160. package/dist/components/actions/snice-actions.types.d.ts +0 -27
  161. package/dist/components/doc/snice-doc.types.d.ts +0 -118
  162. package/dist/components/gantt/snice-gantt.d.ts +0 -29
  163. package/dist/components/gantt/snice-gantt.js +0 -268
  164. package/dist/components/gantt/snice-gantt.js.map +0 -1
  165. package/dist/components/gantt/snice-gantt.types.d.ts +0 -23
  166. package/dist/components/snice-cell-C0slgOpe.js +0 -4
  167. package/dist/components/snice-cell-C0slgOpe.js.map +0 -1
  168. package/dist/components/stat/snice-stat.d.ts +0 -14
  169. package/dist/components/stat/snice-stat.js +0 -140
  170. package/dist/components/stat/snice-stat.js.map +0 -1
  171. package/dist/components/stat/snice-stat.types.d.ts +0 -12
  172. package/docs/ai/components/actions.md +0 -81
  173. package/docs/ai/components/gantt.md +0 -95
  174. package/docs/ai/components/stat.md +0 -29
  175. package/docs/components/actions.md +0 -317
  176. package/docs/components/gantt.md +0 -347
  177. package/docs/components/stat.md +0 -45
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Built-in syntax highlighter for common languages
3
+ * Simple regex-based highlighter - no external dependencies
4
+ */
5
+ // Use placeholder tokens to avoid regex conflicts
6
+ const MARKERS = {
7
+ start: '\x00SPAN_START\x00',
8
+ end: '\x00SPAN_END\x00',
9
+ quote: '\x00QUOTE\x00'
10
+ };
11
+ function wrapToken(text, tokenClass) {
12
+ return `${MARKERS.start}${tokenClass}${MARKERS.quote}${text}${MARKERS.end}`;
13
+ }
14
+ function finalizeSyntax(code) {
15
+ return code
16
+ .replace(new RegExp(MARKERS.start, 'g'), '<span class="token ')
17
+ .replace(new RegExp(MARKERS.quote, 'g'), '">')
18
+ .replace(new RegExp(MARKERS.end, 'g'), '</span>');
19
+ }
20
+ function highlightCode(code, language) {
21
+ let highlighted;
22
+ switch (language.toLowerCase()) {
23
+ case 'javascript':
24
+ case 'js':
25
+ case 'typescript':
26
+ case 'ts':
27
+ highlighted = highlightJavaScript(code);
28
+ break;
29
+ case 'html':
30
+ case 'xml':
31
+ highlighted = highlightHTML(code);
32
+ break;
33
+ case 'css':
34
+ highlighted = highlightCSS(code);
35
+ break;
36
+ case 'json':
37
+ highlighted = highlightJSON(code);
38
+ break;
39
+ case 'python':
40
+ case 'py':
41
+ highlighted = highlightPython(code);
42
+ break;
43
+ case 'bash':
44
+ case 'sh':
45
+ case 'shell':
46
+ highlighted = highlightBash(code);
47
+ break;
48
+ default:
49
+ return code;
50
+ }
51
+ return finalizeSyntax(highlighted);
52
+ }
53
+ function highlightJavaScript(code) {
54
+ return code
55
+ // Strings
56
+ .replace(/(["'`])(?:(?=(\\?))\2.)*?\1/g, (match) => wrapToken(match, 'string'))
57
+ // Comments
58
+ .replace(/(\/\/.*$)/gm, (match) => wrapToken(match, 'comment'))
59
+ .replace(/(\/\*[\s\S]*?\*\/)/g, (match) => wrapToken(match, 'comment'))
60
+ // Keywords
61
+ .replace(/\b(async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|export|extends|finally|for|from|function|if|import|in|instanceof|let|new|of|return|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/g, (match) => wrapToken(match, 'keyword'))
62
+ // Built-in objects
63
+ .replace(/\b(Array|Boolean|Date|Error|Function|JSON|Math|Number|Object|Promise|Proxy|RegExp|String|Symbol|Map|Set|WeakMap|WeakSet|console|document|window)\b/g, (match) => wrapToken(match, 'builtin'))
64
+ // Boolean/null/undefined
65
+ .replace(/\b(true|false|null|undefined|NaN|Infinity)\b/g, (match) => wrapToken(match, 'constant'))
66
+ // Numbers
67
+ .replace(/\b(\d+\.?\d*)\b/g, (match) => wrapToken(match, 'number'));
68
+ }
69
+ function highlightHTML(code) {
70
+ return code
71
+ // Comments first
72
+ .replace(/(&lt;!--[\s\S]*?--&gt;)/g, (match) => wrapToken(match, 'comment'))
73
+ // Tag names
74
+ .replace(/(&lt;\/?)([\w-]+)/g, (match, bracket, tagName) => bracket + wrapToken(tagName, 'tag'))
75
+ // Attribute names
76
+ .replace(/\s([\w-]+)=/g, (match, attrName) => ' ' + wrapToken(attrName, 'attr-name') + '=')
77
+ // Attribute values
78
+ .replace(/=(&quot;|")([^"&]*)(&quot;|")/g, (match, q1, value, q2) => '=' + q1 + wrapToken(value, 'attr-value') + q2);
79
+ }
80
+ function highlightCSS(code) {
81
+ return code
82
+ // Comments
83
+ .replace(/(\/\*[\s\S]*?\*\/)/g, (match) => wrapToken(match, 'comment'))
84
+ // Properties
85
+ .replace(/([\w-]+)(?=\s*:)/g, (match) => wrapToken(match, 'property'))
86
+ // Important
87
+ .replace(/!important/g, (match) => wrapToken(match, 'important'))
88
+ // Numbers
89
+ .replace(/\b(\d+\.?\d*)(px|em|rem|%|vh|vw|s|ms)?\b/g, (match) => wrapToken(match, 'number'));
90
+ }
91
+ function highlightJSON(code) {
92
+ return code
93
+ // Keys
94
+ .replace(/"([\w-]+)"(?=\s*:)/g, (match, key) => '"' + wrapToken(key, 'property') + '"')
95
+ // String values
96
+ .replace(/:\s*"([^"]*)"/g, (match, value) => ': "' + wrapToken(value, 'string') + '"')
97
+ // Numbers
98
+ .replace(/:\s*(\d+\.?\d*)/g, (match, num) => ': ' + wrapToken(num, 'number'))
99
+ // Booleans/null
100
+ .replace(/\b(true|false|null)\b/g, (match) => wrapToken(match, 'constant'));
101
+ }
102
+ function highlightPython(code) {
103
+ return code
104
+ // Strings (protect from other replacements)
105
+ .replace(/("""[\s\S]*?"""|\'\'\'[\s\S]*?\'\'\')/g, (match) => wrapToken(match, 'string'))
106
+ .replace(/(["'])(?:(?=(\\?))\2.)*?\1/g, (match) => wrapToken(match, 'string'))
107
+ // Comments
108
+ .replace(/(#.*$)/gm, (match) => wrapToken(match, 'comment'))
109
+ // Decorators
110
+ .replace(/@[\w.]+/g, (match) => wrapToken(match, 'tag'))
111
+ // Keywords
112
+ .replace(/\b(and|as|assert|async|await|break|class|continue|def|del|elif|else|except|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|raise|return|try|while|with|yield)\b/g, (match) => wrapToken(match, 'keyword'))
113
+ // Built-ins
114
+ .replace(/\b(abs|all|any|ascii|bin|bool|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip)\b/g, (match) => wrapToken(match, 'builtin'))
115
+ // Boolean/None
116
+ .replace(/\b(True|False|None)\b/g, (match) => wrapToken(match, 'constant'))
117
+ // Numbers
118
+ .replace(/\b(\d+\.?\d*)\b/g, (match) => wrapToken(match, 'number'));
119
+ }
120
+ function highlightBash(code) {
121
+ return code
122
+ // Strings
123
+ .replace(/(["'])(?:(?=(\\?))\2.)*?\1/g, (match) => wrapToken(match, 'string'))
124
+ // Comments
125
+ .replace(/(#.*$)/gm, (match) => wrapToken(match, 'comment'))
126
+ // Variables
127
+ .replace(/\$\{?[\w]+\}?/g, (match) => wrapToken(match, 'attr-name'))
128
+ // Keywords
129
+ .replace(/\b(if|then|else|elif|fi|case|esac|for|select|while|until|do|done|in|function|time)\b/g, (match) => wrapToken(match, 'keyword'))
130
+ // Commands
131
+ .replace(/\b(echo|cd|ls|mkdir|rm|cp|mv|cat|grep|sed|awk|find|chmod|chown|sudo|export|source)\b/g, (match) => wrapToken(match, 'builtin'))
132
+ // Numbers
133
+ .replace(/\b(\d+)\b/g, (match) => wrapToken(match, 'number'));
134
+ }
135
+
136
+ export { highlightCode };
137
+ //# sourceMappingURL=highlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlighter.js","sources":["../../../../components/code-block/highlighter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * highlight.js integration for snice-code-block
3
+ *
4
+ * Usage:
5
+ * 1. Install highlight.js: npm install highlight.js
6
+ * 2. Import this file and highlight.js with your desired languages/theme
7
+ * 3. Call setupHighlightJs()
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import hljs from 'highlight.js';
12
+ * import 'highlight.js/styles/github-dark.css';
13
+ * import { setupHighlightJs } from './highlighters/highlight';
14
+ *
15
+ * setupHighlightJs(hljs);
16
+ * ```
17
+ *
18
+ * @example With specific languages
19
+ * ```typescript
20
+ * import hljs from 'highlight.js/lib/core';
21
+ * import javascript from 'highlight.js/lib/languages/javascript';
22
+ * import typescript from 'highlight.js/lib/languages/typescript';
23
+ * import 'highlight.js/styles/atom-one-dark.css';
24
+ * import { setupHighlightJs } from './highlighters/highlight';
25
+ *
26
+ * hljs.registerLanguage('javascript', javascript);
27
+ * hljs.registerLanguage('typescript', typescript);
28
+ *
29
+ * setupHighlightJs(hljs);
30
+ * ```
31
+ */
32
+ import type { HighlighterFunction } from '../snice-code-block.types';
33
+ interface HighlightJsInstance {
34
+ highlight: (code: string, options: {
35
+ language: string;
36
+ }) => {
37
+ value: string;
38
+ };
39
+ highlightAuto: (code: string) => {
40
+ value: string;
41
+ };
42
+ listLanguages: () => string[];
43
+ }
44
+ /**
45
+ * Create a highlight.js highlighter function
46
+ */
47
+ export declare function createHighlightJsHighlighter(hljs: HighlightJsInstance): HighlighterFunction;
48
+ /**
49
+ * Create a highlight.js highlighter with auto-detection fallback
50
+ */
51
+ export declare function createHighlightJsHighlighterWithAuto(hljs: HighlightJsInstance): HighlighterFunction;
52
+ /**
53
+ * Setup highlight.js as the global highlighter for all code blocks
54
+ */
55
+ export declare function setupHighlightJs(hljs: HighlightJsInstance, useAutoDetection?: boolean): void;
56
+ /**
57
+ * Language aliases mapping common names to highlight.js language names
58
+ */
59
+ export declare const languageAliases: Record<string, string>;
60
+ /**
61
+ * Create a highlight.js highlighter with language alias support
62
+ */
63
+ export declare function createHighlightJsHighlighterWithAliases(hljs: HighlightJsInstance): HighlighterFunction;
64
+ export {};
@@ -0,0 +1,108 @@
1
+ import { SniceCodeBlock } from '../snice-code-block.js';
2
+ import 'tslib';
3
+ import 'snice';
4
+
5
+ /**
6
+ * highlight.js integration for snice-code-block
7
+ *
8
+ * Usage:
9
+ * 1. Install highlight.js: npm install highlight.js
10
+ * 2. Import this file and highlight.js with your desired languages/theme
11
+ * 3. Call setupHighlightJs()
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import hljs from 'highlight.js';
16
+ * import 'highlight.js/styles/github-dark.css';
17
+ * import { setupHighlightJs } from './highlighters/highlight';
18
+ *
19
+ * setupHighlightJs(hljs);
20
+ * ```
21
+ *
22
+ * @example With specific languages
23
+ * ```typescript
24
+ * import hljs from 'highlight.js/lib/core';
25
+ * import javascript from 'highlight.js/lib/languages/javascript';
26
+ * import typescript from 'highlight.js/lib/languages/typescript';
27
+ * import 'highlight.js/styles/atom-one-dark.css';
28
+ * import { setupHighlightJs } from './highlighters/highlight';
29
+ *
30
+ * hljs.registerLanguage('javascript', javascript);
31
+ * hljs.registerLanguage('typescript', typescript);
32
+ *
33
+ * setupHighlightJs(hljs);
34
+ * ```
35
+ */
36
+ /**
37
+ * Create a highlight.js highlighter function
38
+ */
39
+ function createHighlightJsHighlighter(hljs) {
40
+ return (code, language) => {
41
+ try {
42
+ const result = hljs.highlight(code, { language });
43
+ return result.value;
44
+ }
45
+ catch (err) {
46
+ console.warn(`highlight.js: Language '${language}' not supported`, err);
47
+ return code;
48
+ }
49
+ };
50
+ }
51
+ /**
52
+ * Create a highlight.js highlighter with auto-detection fallback
53
+ */
54
+ function createHighlightJsHighlighterWithAuto(hljs) {
55
+ return (code, language) => {
56
+ try {
57
+ const result = hljs.highlight(code, { language });
58
+ return result.value;
59
+ }
60
+ catch (err) {
61
+ console.warn(`highlight.js: Language '${language}' not supported, using auto-detection`);
62
+ const result = hljs.highlightAuto(code);
63
+ return result.value;
64
+ }
65
+ };
66
+ }
67
+ /**
68
+ * Setup highlight.js as the global highlighter for all code blocks
69
+ */
70
+ function setupHighlightJs(hljs, useAutoDetection = false) {
71
+ const highlighter = useAutoDetection
72
+ ? createHighlightJsHighlighterWithAuto(hljs)
73
+ : createHighlightJsHighlighter(hljs);
74
+ SniceCodeBlock.setGlobalHighlighter(highlighter);
75
+ }
76
+ /**
77
+ * Language aliases mapping common names to highlight.js language names
78
+ */
79
+ const languageAliases = {
80
+ 'js': 'javascript',
81
+ 'ts': 'typescript',
82
+ 'jsx': 'javascript',
83
+ 'tsx': 'typescript',
84
+ 'py': 'python',
85
+ 'rb': 'ruby',
86
+ 'sh': 'bash',
87
+ 'yml': 'yaml',
88
+ 'md': 'markdown',
89
+ };
90
+ /**
91
+ * Create a highlight.js highlighter with language alias support
92
+ */
93
+ function createHighlightJsHighlighterWithAliases(hljs) {
94
+ return (code, language) => {
95
+ const resolvedLanguage = languageAliases[language] || language;
96
+ try {
97
+ const result = hljs.highlight(code, { language: resolvedLanguage });
98
+ return result.value;
99
+ }
100
+ catch (err) {
101
+ console.warn(`highlight.js: Language '${resolvedLanguage}' not supported`, err);
102
+ return code;
103
+ }
104
+ };
105
+ }
106
+
107
+ export { createHighlightJsHighlighter, createHighlightJsHighlighterWithAliases, createHighlightJsHighlighterWithAuto, languageAliases, setupHighlightJs };
108
+ //# sourceMappingURL=highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.js","sources":["../../../../../components/code-block/highlighters/highlight.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AAWH;;AAEG;AACG,SAAU,4BAA4B,CAAC,IAAyB,EAAA;AACpE,IAAA,OAAO,CAAC,IAAY,EAAE,QAAgB,KAAI;AACxC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC,KAAK;QACrB;QAAE,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,CAAA,wBAAA,EAA2B,QAAQ,CAAA,eAAA,CAAiB,EAAE,GAAG,CAAC;AACvE,YAAA,OAAO,IAAI;QACb;AACF,IAAA,CAAC;AACH;AAEA;;AAEG;AACG,SAAU,oCAAoC,CAAC,IAAyB,EAAA;AAC5E,IAAA,OAAO,CAAC,IAAY,EAAE,QAAgB,KAAI;AACxC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC,KAAK;QACrB;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAA,qCAAA,CAAuC,CAAC;YACxF,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACvC,OAAO,MAAM,CAAC,KAAK;QACrB;AACF,IAAA,CAAC;AACH;AAEA;;AAEG;SACa,gBAAgB,CAAC,IAAyB,EAAE,gBAAgB,GAAG,KAAK,EAAA;IAClF,MAAM,WAAW,GAAG;AAClB,UAAE,oCAAoC,CAAC,IAAI;AAC3C,UAAE,4BAA4B,CAAC,IAAI,CAAC;AAEtC,IAAA,cAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC;AAClD;AAEA;;AAEG;AACI,MAAM,eAAe,GAA2B;AACrD,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,IAAI,EAAE,UAAU;;AAGlB;;AAEG;AACG,SAAU,uCAAuC,CAAC,IAAyB,EAAA;AAC/E,IAAA,OAAO,CAAC,IAAY,EAAE,QAAgB,KAAI;QACxC,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ;AAC9D,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YACnE,OAAO,MAAM,CAAC,KAAK;QACrB;QAAE,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,CAAA,wBAAA,EAA2B,gBAAgB,CAAA,eAAA,CAAiB,EAAE,GAAG,CAAC;AAC/E,YAAA,OAAO,IAAI;QACb;AACF,IAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Prism.js integration for snice-code-block
3
+ *
4
+ * Usage:
5
+ * 1. Install Prism: npm install prismjs
6
+ * 2. Import this file and Prism with your desired languages/themes
7
+ * 3. Call setupPrismHighlighter()
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import Prism from 'prismjs';
12
+ * import 'prismjs/components/prism-javascript';
13
+ * import 'prismjs/components/prism-typescript';
14
+ * import 'prismjs/themes/prism-tomorrow.css';
15
+ * import { setupPrismHighlighter } from './highlighters/prism';
16
+ *
17
+ * setupPrismHighlighter(Prism);
18
+ * ```
19
+ */
20
+ import type { HighlighterFunction } from '../snice-code-block.types';
21
+ interface PrismInstance {
22
+ highlight: (code: string, grammar: any, language: string) => string;
23
+ languages: Record<string, any>;
24
+ }
25
+ /**
26
+ * Create a Prism highlighter function
27
+ */
28
+ export declare function createPrismHighlighter(prism: PrismInstance): HighlighterFunction;
29
+ /**
30
+ * Setup Prism as the global highlighter for all code blocks
31
+ */
32
+ export declare function setupPrismHighlighter(prism: PrismInstance): void;
33
+ /**
34
+ * Language aliases mapping common names to Prism language names
35
+ */
36
+ export declare const languageAliases: Record<string, string>;
37
+ /**
38
+ * Create a Prism highlighter with language alias support
39
+ */
40
+ export declare function createPrismHighlighterWithAliases(prism: PrismInstance): HighlighterFunction;
41
+ export {};
@@ -0,0 +1,73 @@
1
+ import { SniceCodeBlock } from '../snice-code-block.js';
2
+ import 'tslib';
3
+ import 'snice';
4
+
5
+ /**
6
+ * Prism.js integration for snice-code-block
7
+ *
8
+ * Usage:
9
+ * 1. Install Prism: npm install prismjs
10
+ * 2. Import this file and Prism with your desired languages/themes
11
+ * 3. Call setupPrismHighlighter()
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import Prism from 'prismjs';
16
+ * import 'prismjs/components/prism-javascript';
17
+ * import 'prismjs/components/prism-typescript';
18
+ * import 'prismjs/themes/prism-tomorrow.css';
19
+ * import { setupPrismHighlighter } from './highlighters/prism';
20
+ *
21
+ * setupPrismHighlighter(Prism);
22
+ * ```
23
+ */
24
+ /**
25
+ * Create a Prism highlighter function
26
+ */
27
+ function createPrismHighlighter(prism) {
28
+ return (code, language) => {
29
+ const grammar = prism.languages[language];
30
+ if (!grammar) {
31
+ console.warn(`Prism: Language '${language}' not loaded`);
32
+ return code;
33
+ }
34
+ return prism.highlight(code, grammar, language);
35
+ };
36
+ }
37
+ /**
38
+ * Setup Prism as the global highlighter for all code blocks
39
+ */
40
+ function setupPrismHighlighter(prism) {
41
+ SniceCodeBlock.setGlobalHighlighter(createPrismHighlighter(prism));
42
+ }
43
+ /**
44
+ * Language aliases mapping common names to Prism language names
45
+ */
46
+ const languageAliases = {
47
+ 'js': 'javascript',
48
+ 'ts': 'typescript',
49
+ 'jsx': 'jsx',
50
+ 'tsx': 'tsx',
51
+ 'py': 'python',
52
+ 'rb': 'ruby',
53
+ 'sh': 'bash',
54
+ 'yml': 'yaml',
55
+ 'md': 'markdown',
56
+ };
57
+ /**
58
+ * Create a Prism highlighter with language alias support
59
+ */
60
+ function createPrismHighlighterWithAliases(prism) {
61
+ return (code, language) => {
62
+ const resolvedLanguage = languageAliases[language] || language;
63
+ const grammar = prism.languages[resolvedLanguage];
64
+ if (!grammar) {
65
+ console.warn(`Prism: Language '${resolvedLanguage}' not loaded`);
66
+ return code;
67
+ }
68
+ return prism.highlight(code, grammar, resolvedLanguage);
69
+ };
70
+ }
71
+
72
+ export { createPrismHighlighter, createPrismHighlighterWithAliases, languageAliases, setupPrismHighlighter };
73
+ //# sourceMappingURL=prism.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism.js","sources":["../../../../../components/code-block/highlighters/prism.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;;;;;;AAkBG;AAUH;;AAEG;AACG,SAAU,sBAAsB,CAAC,KAAoB,EAAA;AACzD,IAAA,OAAO,CAAC,IAAY,EAAE,QAAgB,KAAI;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAA,YAAA,CAAc,CAAC;AACxD,YAAA,OAAO,IAAI;QACb;QACA,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjD,IAAA,CAAC;AACH;AAEA;;AAEG;AACG,SAAU,qBAAqB,CAAC,KAAoB,EAAA;IACxD,cAAc,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACpE;AAEA;;AAEG;AACI,MAAM,eAAe,GAA2B;AACrD,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,IAAI,EAAE,UAAU;;AAGlB;;AAEG;AACG,SAAU,iCAAiC,CAAC,KAAoB,EAAA;AACpE,IAAA,OAAO,CAAC,IAAY,EAAE,QAAgB,KAAI;QACxC,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,CAAA,YAAA,CAAc,CAAC;AAChE,YAAA,OAAO,IAAI;QACb;QACA,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACzD,IAAA,CAAC;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- import type { CodeLanguage, SniceCodeBlockElement } from './snice-code-block.types';
1
+ import type { CodeLanguage, SniceCodeBlockElement, HighlighterFunction } from './snice-code-block.types';
2
2
  export declare class SniceCodeBlock extends HTMLElement implements SniceCodeBlockElement {
3
3
  code: string;
4
4
  language: CodeLanguage;
@@ -7,9 +7,27 @@ export declare class SniceCodeBlock extends HTMLElement implements SniceCodeBloc
7
7
  highlightLines: number[];
8
8
  copyable: boolean;
9
9
  filename: string;
10
+ highlighter?: HighlighterFunction;
10
11
  private copied;
12
+ private highlightedCode;
13
+ private codeElement?;
14
+ private static globalHighlighter?;
11
15
  private dispatchCopyEvent;
16
+ private dispatchBeforeHighlightEvent;
17
+ private dispatchAfterHighlightEvent;
18
+ static setGlobalHighlighter(highlighter: HighlighterFunction): void;
19
+ onReady(): Promise<void>;
20
+ private escapeHtml;
21
+ private updateCodeDisplay;
12
22
  render(): import("snice").TemplateResult;
13
23
  styles(): import("snice").CSSResult;
14
24
  copy(): Promise<void>;
25
+ /**
26
+ * Set highlighter for this instance
27
+ */
28
+ setHighlighter(highlighter: HighlighterFunction): void;
29
+ /**
30
+ * Manually trigger syntax highlighting
31
+ */
32
+ highlight(): Promise<void>;
15
33
  }