snice 4.17.0 → 4.18.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 (252) hide show
  1. package/adapters/react/code-block.d.ts +1 -0
  2. package/adapters/react/code-block.d.ts.map +1 -1
  3. package/adapters/react/code-block.js +1 -1
  4. package/adapters/react/code-block.js.map +1 -1
  5. package/adapters/react/code-block.tsx +2 -1
  6. package/dist/cdn/accordion/snice-accordion.js +1 -1
  7. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  8. package/dist/cdn/alert/snice-alert.js +1 -1
  9. package/dist/cdn/alert/snice-alert.min.js +1 -1
  10. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  11. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  12. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  13. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  14. package/dist/cdn/avatar/snice-avatar.js +1 -1
  15. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  16. package/dist/cdn/badge/snice-badge.js +1 -1
  17. package/dist/cdn/badge/snice-badge.min.js +1 -1
  18. package/dist/cdn/banner/snice-banner.js +1 -1
  19. package/dist/cdn/banner/snice-banner.min.js +1 -1
  20. package/dist/cdn/book/snice-book.js +1 -1
  21. package/dist/cdn/book/snice-book.min.js +1 -1
  22. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  23. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  24. package/dist/cdn/button/snice-button.js +1 -1
  25. package/dist/cdn/button/snice-button.min.js +1 -1
  26. package/dist/cdn/calendar/snice-calendar.js +1 -1
  27. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  28. package/dist/cdn/camera/snice-camera.js +1 -1
  29. package/dist/cdn/camera/snice-camera.min.js +1 -1
  30. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  31. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  32. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  33. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  34. package/dist/cdn/card/snice-card.js +1 -1
  35. package/dist/cdn/card/snice-card.min.js +1 -1
  36. package/dist/cdn/carousel/snice-carousel.js +1 -1
  37. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  38. package/dist/cdn/chart/snice-chart.js +1 -1
  39. package/dist/cdn/chart/snice-chart.min.js +1 -1
  40. package/dist/cdn/chat/snice-chat.js +1 -1
  41. package/dist/cdn/chat/snice-chat.min.js +1 -1
  42. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  43. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  44. package/dist/cdn/chip/snice-chip.js +1 -1
  45. package/dist/cdn/chip/snice-chip.min.js +1 -1
  46. package/dist/cdn/code-block/README.md +2 -2
  47. package/dist/cdn/code-block/snice-code-block.js +314 -3
  48. package/dist/cdn/code-block/snice-code-block.js.map +1 -1
  49. package/dist/cdn/code-block/snice-code-block.min.js +3 -3
  50. package/dist/cdn/code-block/snice-code-block.min.js.map +1 -1
  51. package/dist/cdn/color-display/snice-color-display.js +1 -1
  52. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  53. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  54. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  55. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  56. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  57. package/dist/cdn/comments/snice-comments.js +1 -1
  58. package/dist/cdn/comments/snice-comments.min.js +1 -1
  59. package/dist/cdn/countdown/snice-countdown.js +1 -1
  60. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  61. package/dist/cdn/cropper/snice-cropper.js +1 -1
  62. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  63. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  64. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  65. package/dist/cdn/diff/snice-diff.js +1 -1
  66. package/dist/cdn/diff/snice-diff.min.js +1 -1
  67. package/dist/cdn/divider/snice-divider.js +1 -1
  68. package/dist/cdn/divider/snice-divider.min.js +1 -1
  69. package/dist/cdn/doc/snice-doc.js +1 -1
  70. package/dist/cdn/doc/snice-doc.min.js +1 -1
  71. package/dist/cdn/draw/snice-draw.js +1 -1
  72. package/dist/cdn/draw/snice-draw.min.js +1 -1
  73. package/dist/cdn/drawer/snice-drawer.js +1 -1
  74. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  75. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  76. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  77. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  78. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  79. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  80. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  81. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  82. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  83. package/dist/cdn/flow/snice-flow.js +1 -1
  84. package/dist/cdn/flow/snice-flow.min.js +1 -1
  85. package/dist/cdn/funnel/snice-funnel.js +1 -1
  86. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  87. package/dist/cdn/gantt/snice-gantt.js +1 -1
  88. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  89. package/dist/cdn/gauge/snice-gauge.js +1 -1
  90. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  91. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  92. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  93. package/dist/cdn/image/snice-image.js +1 -1
  94. package/dist/cdn/image/snice-image.min.js +1 -1
  95. package/dist/cdn/input/snice-input.js +1 -1
  96. package/dist/cdn/input/snice-input.min.js +1 -1
  97. package/dist/cdn/kanban/snice-kanban.js +1 -1
  98. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  99. package/dist/cdn/kpi/snice-kpi.js +1 -1
  100. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  101. package/dist/cdn/layout/snice-layout.js +1 -1
  102. package/dist/cdn/layout/snice-layout.min.js +1 -1
  103. package/dist/cdn/link/snice-link.js +1 -1
  104. package/dist/cdn/link/snice-link.min.js +1 -1
  105. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  106. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  107. package/dist/cdn/list/snice-list.js +1 -1
  108. package/dist/cdn/list/snice-list.min.js +1 -1
  109. package/dist/cdn/location/snice-location.js +1 -1
  110. package/dist/cdn/location/snice-location.min.js +1 -1
  111. package/dist/cdn/login/snice-login.js +1 -1
  112. package/dist/cdn/login/snice-login.min.js +1 -1
  113. package/dist/cdn/map/snice-map.js +1 -1
  114. package/dist/cdn/map/snice-map.min.js +1 -1
  115. package/dist/cdn/markdown/snice-markdown.js +1 -1
  116. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  117. package/dist/cdn/masonry/snice-masonry.js +1 -1
  118. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  119. package/dist/cdn/menu/snice-menu.js +1 -1
  120. package/dist/cdn/menu/snice-menu.min.js +1 -1
  121. package/dist/cdn/modal/snice-modal.js +1 -1
  122. package/dist/cdn/modal/snice-modal.min.js +1 -1
  123. package/dist/cdn/music-player/snice-music-player.js +1 -1
  124. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  125. package/dist/cdn/nav/snice-nav.js +1 -1
  126. package/dist/cdn/nav/snice-nav.min.js +1 -1
  127. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  128. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  129. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  130. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  131. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  132. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  133. package/dist/cdn/pagination/snice-pagination.js +1 -1
  134. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  135. package/dist/cdn/paint/snice-paint.js +1 -1
  136. package/dist/cdn/paint/snice-paint.min.js +1 -1
  137. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  138. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  139. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  140. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  141. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  142. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  143. package/dist/cdn/progress/snice-progress.js +1 -1
  144. package/dist/cdn/progress/snice-progress.min.js +1 -1
  145. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  146. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  147. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  148. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  149. package/dist/cdn/radio/snice-radio.js +1 -1
  150. package/dist/cdn/radio/snice-radio.min.js +1 -1
  151. package/dist/cdn/rating/snice-rating.js +1 -1
  152. package/dist/cdn/rating/snice-rating.min.js +1 -1
  153. package/dist/cdn/recipe/snice-recipe.js +1 -1
  154. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  155. package/dist/cdn/runtime/snice-runtime.esm.js +4 -4
  156. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  157. package/dist/cdn/runtime/snice-runtime.esm.min.js +4 -4
  158. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  159. package/dist/cdn/runtime/snice-runtime.js +4 -4
  160. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  161. package/dist/cdn/runtime/snice-runtime.min.js +4 -4
  162. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  163. package/dist/cdn/sankey/snice-sankey.js +1 -1
  164. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  165. package/dist/cdn/select/snice-select.js +1 -1
  166. package/dist/cdn/select/snice-select.min.js +1 -1
  167. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  168. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  169. package/dist/cdn/slider/snice-slider.js +1 -1
  170. package/dist/cdn/slider/snice-slider.min.js +1 -1
  171. package/dist/cdn/sortable/snice-sortable.js +1 -1
  172. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  173. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  174. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  175. package/dist/cdn/spinner/snice-spinner.js +1 -1
  176. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  177. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  178. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  179. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  180. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  181. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  182. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  183. package/dist/cdn/stepper/snice-stepper.js +1 -1
  184. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  185. package/dist/cdn/switch/snice-switch.js +1 -1
  186. package/dist/cdn/switch/snice-switch.min.js +1 -1
  187. package/dist/cdn/table/snice-table.js +1 -1
  188. package/dist/cdn/table/snice-table.min.js +1 -1
  189. package/dist/cdn/tabs/snice-tabs.js +1 -1
  190. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  191. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  192. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  193. package/dist/cdn/terminal/snice-terminal.js +1 -1
  194. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  195. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  196. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  197. package/dist/cdn/textarea/snice-textarea.js +1 -1
  198. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  199. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  200. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  201. package/dist/cdn/timeline/snice-timeline.js +1 -1
  202. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  203. package/dist/cdn/timer/snice-timer.js +1 -1
  204. package/dist/cdn/timer/snice-timer.min.js +1 -1
  205. package/dist/cdn/toast/snice-toast.js +1 -1
  206. package/dist/cdn/toast/snice-toast.min.js +1 -1
  207. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  208. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  209. package/dist/cdn/tree/snice-tree.js +1 -1
  210. package/dist/cdn/tree/snice-tree.min.js +1 -1
  211. package/dist/cdn/treemap/snice-treemap.js +1 -1
  212. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  213. package/dist/cdn/video-player/snice-video-player.js +1 -1
  214. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  215. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  216. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  217. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  218. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  219. package/dist/cdn/weather/snice-weather.js +1 -1
  220. package/dist/cdn/weather/snice-weather.min.js +1 -1
  221. package/dist/components/code-block/formatter.d.ts +26 -0
  222. package/dist/components/code-block/formatter.js +245 -0
  223. package/dist/components/code-block/formatter.js.map +1 -0
  224. package/dist/components/code-block/formatters/indent.d.ts +25 -0
  225. package/dist/components/code-block/formatters/indent.js +95 -0
  226. package/dist/components/code-block/formatters/indent.js.map +1 -0
  227. package/dist/components/code-block/formatters/json.d.ts +25 -0
  228. package/dist/components/code-block/formatters/json.js +38 -0
  229. package/dist/components/code-block/formatters/json.js.map +1 -0
  230. package/dist/components/code-block/formatters/prettier.d.ts +53 -0
  231. package/dist/components/code-block/formatters/prettier.js +82 -0
  232. package/dist/components/code-block/formatters/prettier.js.map +1 -0
  233. package/dist/components/code-block/grammars/css.json +13 -0
  234. package/dist/components/code-block/grammars/json.json +13 -0
  235. package/dist/components/code-block/grammars/snice.json +14 -0
  236. package/dist/components/code-block/grammars/typescript.json +14 -0
  237. package/dist/components/code-block/highlighter.d.ts +1 -0
  238. package/dist/components/code-block/highlighter.js.map +1 -1
  239. package/dist/components/code-block/snice-code-block.d.ts +7 -1
  240. package/dist/components/code-block/snice-code-block.js +71 -2
  241. package/dist/components/code-block/snice-code-block.js.map +1 -1
  242. package/dist/components/code-block/snice-code-block.types.d.ts +11 -0
  243. package/dist/index.cjs +1 -1
  244. package/dist/index.esm.js +1 -1
  245. package/dist/index.iife.js +1 -1
  246. package/dist/symbols.cjs +1 -1
  247. package/dist/symbols.esm.js +1 -1
  248. package/dist/transitions.cjs +1 -1
  249. package/dist/transitions.esm.js +1 -1
  250. package/docs/ai/components/code-block.md +71 -0
  251. package/docs/components/code-block.md +126 -0
  252. package/package.json +1 -1
@@ -2,6 +2,20 @@
2
2
  "name": "typescript",
3
3
  "fileTypes": ["ts", "tsx", "js", "jsx"],
4
4
  "defaultToken": "",
5
+ "formatters": {
6
+ "pretty": {
7
+ "tabSize": 2,
8
+ "useTabs": false,
9
+ "newlineAfter": "[{;]",
10
+ "newlineBefore": "[}]",
11
+ "spaceAfter": "[,]",
12
+ "spaceAround": "[=]",
13
+ "indent": "[{]",
14
+ "dedent": "[}]",
15
+ "skipStrings": true,
16
+ "skipComments": true
17
+ }
18
+ },
5
19
  "keywords": [
6
20
  "abstract", "as", "async", "await", "break", "case", "catch", "class",
7
21
  "const", "continue", "debugger", "declare", "default", "delete", "do",
@@ -19,6 +19,7 @@ export interface Grammar {
19
19
  defaultToken?: string;
20
20
  ignoreCase?: boolean;
21
21
  tokenizer: Record<string, GrammarEntry[]>;
22
+ formatters?: Record<string, import('./formatter').FormatRules>;
22
23
  [key: string]: any;
23
24
  }
24
25
  interface Token {
@@ -1 +1 @@
1
- {"version":3,"file":"highlighter.js","sources":["../../../../components/code-block/highlighter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"highlighter.js","sources":["../../../../components/code-block/highlighter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { GrammarDefinition } from './highlighter';
2
- import { type FetchMode, type CodeLanguage, type SniceCodeBlockElement, type HighlighterFunction } from './snice-code-block.types';
2
+ import { type FetchMode, type CodeLanguage, type SniceCodeBlockElement, type HighlighterFunction, type FormatterFunction } from './snice-code-block.types';
3
3
  export declare class SniceCodeBlock extends HTMLElement implements SniceCodeBlockElement {
4
4
  code: string;
5
5
  language: CodeLanguage;
@@ -10,7 +10,9 @@ export declare class SniceCodeBlock extends HTMLElement implements SniceCodeBloc
10
10
  filename: string;
11
11
  grammar: string;
12
12
  fetchMode: FetchMode;
13
+ format: string;
13
14
  highlighter?: HighlighterFunction;
15
+ private _formatter?;
14
16
  private copied;
15
17
  private highlightedCode;
16
18
  private loadedGrammar;
@@ -23,6 +25,8 @@ export declare class SniceCodeBlock extends HTMLElement implements SniceCodeBloc
23
25
  private dispatchCopyEvent;
24
26
  private dispatchBeforeHighlightEvent;
25
27
  private dispatchAfterHighlightEvent;
28
+ private dispatchBeforeFormatEvent;
29
+ private dispatchAfterFormatEvent;
26
30
  private dispatchGrammarRequestEvent;
27
31
  private dispatchGrammarLoadedEvent;
28
32
  requestGrammar(url: string): any;
@@ -33,12 +37,14 @@ export declare class SniceCodeBlock extends HTMLElement implements SniceCodeBloc
33
37
  private readSlottedContent;
34
38
  onGrammarChange(): void;
35
39
  onFetchModeChange(): void;
40
+ onFormatChange(): void;
36
41
  updateHeader(): void;
37
42
  onLanguageChange(): void;
38
43
  private escapeHtml;
39
44
  private updateCodeDisplay;
40
45
  copy(): Promise<void>;
41
46
  setHighlighter(highlighter: HighlighterFunction): void;
47
+ setFormatter(formatter: FormatterFunction): void;
42
48
  setGrammar(grammar: GrammarDefinition): void;
43
49
  private resolveGrammar;
44
50
  highlight(): Promise<void>;
@@ -1,11 +1,24 @@
1
1
  import { __esDecorate, __runInitializers } from 'tslib';
2
2
  import { element, property, query, dispatch, request, render, styles, ready, on, watch, html, css } from 'snice';
3
3
  import { highlightCode } from './highlighter.js';
4
+ import { formatCode } from './formatter.js';
4
5
 
5
6
  var cssContent = ":host{display:block}.code-block{position:relative;background:hsl(var(--snice-color-gray-900));border-radius:var(--snice-border-radius-md,.375rem);overflow:hidden}.code-block__header{display:flex;justify-content:space-between;align-items:center;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);background:hsl(var(--snice-color-gray-800));border-bottom:1px solid hsl(var(--snice-color-gray-700))}.code-block__filename{font-size:var(--snice-font-size-sm, .875rem);color:hsl(var(--snice-color-gray-300));font-family:var(--snice-font-family-mono, monospace)}.code-block__copy{background:0 0;border:1px solid hsl(var(--snice-color-gray-600));color:hsl(var(--snice-color-gray-300));padding:.25rem .5rem;border-radius:var(--snice-border-radius-sm,.25rem);cursor:pointer;font-size:var(--snice-font-size-xs, .75rem);transition:.2s}.code-block__copy:hover{background:hsl(var(--snice-color-gray-700));border-color:hsl(var(--snice-color-gray-500))}.code-block__copy--copied{background:var(--snice-color-success);border-color:hsl(var(--snice-color-green-500));color:hsl(0 0% 100%)}.code-block__content{overflow-x:auto}.code-block__pre{margin:0;padding:var(--snice-spacing-md,1rem);background:0 0;overflow-x:auto}.code-block__code{font-family:var(--snice-font-family-mono, 'Courier New', monospace);font-size:var(--snice-font-size-sm, .875rem);line-height:1.5;color:hsl(var(--snice-color-gray-100));display:block}.code-block__line{display:block}.code-block__line--highlight{background:hsl(0 0% 100% / .1);border-left:3px solid var(--snice-color-primary);padding-left:calc(var(--snice-spacing-sm,.75rem) - 3px);margin-left:calc(-1 * var(--snice-spacing-md,1rem));padding-right:var(--snice-spacing-md,1rem)}.code-block__line-number{display:inline-block;width:3rem;text-align:right;margin-right:var(--snice-spacing-md,1rem);color:hsl(var(--snice-color-gray-500));user-select:none}.token.keyword{color:var(--code-keyword-color,#c678dd)}.token.function{color:var(--code-function-color,#61afef)}.token.string{color:var(--code-string-color,#98c379)}.token.number{color:var(--code-number-color,#d19a66)}.token.comment{color:var(--code-comment-color,#6a9955);font-style:italic}.token.operator{color:var(--code-operator-color,#56b6c2)}.token.punctuation{color:var(--code-punctuation-color,#abb2bf)}.token.tag{color:var(--code-tag-color,#e06c75)}.token.attr-name,.token.property{color:var(--code-attr-name-color,#d19a66)}.token.attr-value{color:var(--code-attr-value-color,#98c379)}.token.boolean,.token.constant{color:var(--code-constant-color,#d19a66)}.token.class-name{color:var(--code-class-color,#e5c07b)}.token.builtin{color:var(--code-builtin-color,#e06c75)}.token.regex{color:var(--code-regex-color,#98c379)}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}";
6
7
 
7
8
  const LOAD_GRAMMAR_REQUEST = 'snice/code-block/load-grammar';
8
9
 
10
+ function dedent(text) {
11
+ const lines = text.replace(/^\n+/, '').replace(/\n\s*$/, '').split('\n');
12
+ if (lines.length === 0)
13
+ return '';
14
+ const indents = lines.filter(l => l.trim()).map(l => l.match(/^(\s*)/)?.[1].length ?? 0);
15
+ if (indents.length === 0)
16
+ return lines.join('\n');
17
+ const minIndent = Math.min(...indents);
18
+ if (minIndent === 0)
19
+ return lines.join('\n');
20
+ return lines.map(l => l.slice(minIndent)).join('\n');
21
+ }
9
22
  let SniceCodeBlock = (() => {
10
23
  let _classDecorators = [element('snice-code-block')];
11
24
  let _classDescriptor;
@@ -37,6 +50,9 @@ let SniceCodeBlock = (() => {
37
50
  let _fetchMode_decorators;
38
51
  let _fetchMode_initializers = [];
39
52
  let _fetchMode_extraInitializers = [];
53
+ let _format_decorators;
54
+ let _format_initializers = [];
55
+ let _format_extraInitializers = [];
40
56
  let _codeEl_decorators;
41
57
  let _codeEl_initializers = [];
42
58
  let _codeEl_extraInitializers = [];
@@ -52,6 +68,8 @@ let SniceCodeBlock = (() => {
52
68
  let _dispatchCopyEvent_decorators;
53
69
  let _dispatchBeforeHighlightEvent_decorators;
54
70
  let _dispatchAfterHighlightEvent_decorators;
71
+ let _dispatchBeforeFormatEvent_decorators;
72
+ let _dispatchAfterFormatEvent_decorators;
55
73
  let _dispatchGrammarRequestEvent_decorators;
56
74
  let _dispatchGrammarLoadedEvent_decorators;
57
75
  let _requestGrammar_decorators;
@@ -61,6 +79,7 @@ let SniceCodeBlock = (() => {
61
79
  let _handleSlotChange_decorators;
62
80
  let _onGrammarChange_decorators;
63
81
  let _onFetchModeChange_decorators;
82
+ let _onFormatChange_decorators;
64
83
  let _updateHeader_decorators;
65
84
  let _onLanguageChange_decorators;
66
85
  (class extends _classSuper {
@@ -75,6 +94,7 @@ let SniceCodeBlock = (() => {
75
94
  _filename_decorators = [property({})];
76
95
  _grammar_decorators = [property({})];
77
96
  _fetchMode_decorators = [property({ attribute: 'fetch-mode' })];
97
+ _format_decorators = [property({})];
78
98
  _codeEl_decorators = [query('.code-block__code')];
79
99
  _headerEl_decorators = [query('.code-block__header')];
80
100
  _filenameEl_decorators = [query('.code-block__filename')];
@@ -82,6 +102,8 @@ let SniceCodeBlock = (() => {
82
102
  _dispatchCopyEvent_decorators = [dispatch('code-copy', { bubbles: true, composed: true })];
83
103
  _dispatchBeforeHighlightEvent_decorators = [dispatch('code-before-highlight', { bubbles: true, composed: true })];
84
104
  _dispatchAfterHighlightEvent_decorators = [dispatch('code-after-highlight', { bubbles: true, composed: true })];
105
+ _dispatchBeforeFormatEvent_decorators = [dispatch('code-before-format', { bubbles: true, composed: true })];
106
+ _dispatchAfterFormatEvent_decorators = [dispatch('code-after-format', { bubbles: true, composed: true })];
85
107
  _dispatchGrammarRequestEvent_decorators = [dispatch('grammar-request', { bubbles: true, composed: true })];
86
108
  _dispatchGrammarLoadedEvent_decorators = [dispatch('grammar-loaded', { bubbles: true, composed: true })];
87
109
  _requestGrammar_decorators = [request(LOAD_GRAMMAR_REQUEST)];
@@ -91,11 +113,14 @@ let SniceCodeBlock = (() => {
91
113
  _handleSlotChange_decorators = [on('slotchange', { target: 'slot' })];
92
114
  _onGrammarChange_decorators = [watch('grammar')];
93
115
  _onFetchModeChange_decorators = [watch('fetchMode')];
116
+ _onFormatChange_decorators = [watch('format')];
94
117
  _updateHeader_decorators = [watch('filename', 'copyable')];
95
118
  _onLanguageChange_decorators = [watch('language')];
96
119
  __esDecorate(this, null, _dispatchCopyEvent_decorators, { kind: "method", name: "dispatchCopyEvent", static: false, private: false, access: { has: obj => "dispatchCopyEvent" in obj, get: obj => obj.dispatchCopyEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
97
120
  __esDecorate(this, null, _dispatchBeforeHighlightEvent_decorators, { kind: "method", name: "dispatchBeforeHighlightEvent", static: false, private: false, access: { has: obj => "dispatchBeforeHighlightEvent" in obj, get: obj => obj.dispatchBeforeHighlightEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
98
121
  __esDecorate(this, null, _dispatchAfterHighlightEvent_decorators, { kind: "method", name: "dispatchAfterHighlightEvent", static: false, private: false, access: { has: obj => "dispatchAfterHighlightEvent" in obj, get: obj => obj.dispatchAfterHighlightEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
122
+ __esDecorate(this, null, _dispatchBeforeFormatEvent_decorators, { kind: "method", name: "dispatchBeforeFormatEvent", static: false, private: false, access: { has: obj => "dispatchBeforeFormatEvent" in obj, get: obj => obj.dispatchBeforeFormatEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
123
+ __esDecorate(this, null, _dispatchAfterFormatEvent_decorators, { kind: "method", name: "dispatchAfterFormatEvent", static: false, private: false, access: { has: obj => "dispatchAfterFormatEvent" in obj, get: obj => obj.dispatchAfterFormatEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
99
124
  __esDecorate(this, null, _dispatchGrammarRequestEvent_decorators, { kind: "method", name: "dispatchGrammarRequestEvent", static: false, private: false, access: { has: obj => "dispatchGrammarRequestEvent" in obj, get: obj => obj.dispatchGrammarRequestEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
100
125
  __esDecorate(this, null, _dispatchGrammarLoadedEvent_decorators, { kind: "method", name: "dispatchGrammarLoadedEvent", static: false, private: false, access: { has: obj => "dispatchGrammarLoadedEvent" in obj, get: obj => obj.dispatchGrammarLoadedEvent }, metadata: _metadata }, null, _instanceExtraInitializers);
101
126
  __esDecorate(this, null, _requestGrammar_decorators, { kind: "method", name: "requestGrammar", static: false, private: false, access: { has: obj => "requestGrammar" in obj, get: obj => obj.requestGrammar }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -105,6 +130,7 @@ let SniceCodeBlock = (() => {
105
130
  __esDecorate(this, null, _handleSlotChange_decorators, { kind: "method", name: "handleSlotChange", static: false, private: false, access: { has: obj => "handleSlotChange" in obj, get: obj => obj.handleSlotChange }, metadata: _metadata }, null, _instanceExtraInitializers);
106
131
  __esDecorate(this, null, _onGrammarChange_decorators, { kind: "method", name: "onGrammarChange", static: false, private: false, access: { has: obj => "onGrammarChange" in obj, get: obj => obj.onGrammarChange }, metadata: _metadata }, null, _instanceExtraInitializers);
107
132
  __esDecorate(this, null, _onFetchModeChange_decorators, { kind: "method", name: "onFetchModeChange", static: false, private: false, access: { has: obj => "onFetchModeChange" in obj, get: obj => obj.onFetchModeChange }, metadata: _metadata }, null, _instanceExtraInitializers);
133
+ __esDecorate(this, null, _onFormatChange_decorators, { kind: "method", name: "onFormatChange", static: false, private: false, access: { has: obj => "onFormatChange" in obj, get: obj => obj.onFormatChange }, metadata: _metadata }, null, _instanceExtraInitializers);
108
134
  __esDecorate(this, null, _updateHeader_decorators, { kind: "method", name: "updateHeader", static: false, private: false, access: { has: obj => "updateHeader" in obj, get: obj => obj.updateHeader }, metadata: _metadata }, null, _instanceExtraInitializers);
109
135
  __esDecorate(this, null, _onLanguageChange_decorators, { kind: "method", name: "onLanguageChange", static: false, private: false, access: { has: obj => "onLanguageChange" in obj, get: obj => obj.onLanguageChange }, metadata: _metadata }, null, _instanceExtraInitializers);
110
136
  __esDecorate(null, null, _language_decorators, { kind: "field", name: "language", static: false, private: false, access: { has: obj => "language" in obj, get: obj => obj.language, set: (obj, value) => { obj.language = value; } }, metadata: _metadata }, _language_initializers, _language_extraInitializers);
@@ -115,6 +141,7 @@ let SniceCodeBlock = (() => {
115
141
  __esDecorate(null, null, _filename_decorators, { kind: "field", name: "filename", static: false, private: false, access: { has: obj => "filename" in obj, get: obj => obj.filename, set: (obj, value) => { obj.filename = value; } }, metadata: _metadata }, _filename_initializers, _filename_extraInitializers);
116
142
  __esDecorate(null, null, _grammar_decorators, { kind: "field", name: "grammar", static: false, private: false, access: { has: obj => "grammar" in obj, get: obj => obj.grammar, set: (obj, value) => { obj.grammar = value; } }, metadata: _metadata }, _grammar_initializers, _grammar_extraInitializers);
117
143
  __esDecorate(null, null, _fetchMode_decorators, { kind: "field", name: "fetchMode", static: false, private: false, access: { has: obj => "fetchMode" in obj, get: obj => obj.fetchMode, set: (obj, value) => { obj.fetchMode = value; } }, metadata: _metadata }, _fetchMode_initializers, _fetchMode_extraInitializers);
144
+ __esDecorate(null, null, _format_decorators, { kind: "field", name: "format", static: false, private: false, access: { has: obj => "format" in obj, get: obj => obj.format, set: (obj, value) => { obj.format = value; } }, metadata: _metadata }, _format_initializers, _format_extraInitializers);
118
145
  __esDecorate(null, null, _codeEl_decorators, { kind: "field", name: "codeEl", static: false, private: false, access: { has: obj => "codeEl" in obj, get: obj => obj.codeEl, set: (obj, value) => { obj.codeEl = value; } }, metadata: _metadata }, _codeEl_initializers, _codeEl_extraInitializers);
119
146
  __esDecorate(null, null, _headerEl_decorators, { kind: "field", name: "headerEl", static: false, private: false, access: { has: obj => "headerEl" in obj, get: obj => obj.headerEl, set: (obj, value) => { obj.headerEl = value; } }, metadata: _metadata }, _headerEl_initializers, _headerEl_extraInitializers);
120
147
  __esDecorate(null, null, _filenameEl_decorators, { kind: "field", name: "filenameEl", static: false, private: false, access: { has: obj => "filenameEl" in obj, get: obj => obj.filenameEl, set: (obj, value) => { obj.filenameEl = value; } }, metadata: _metadata }, _filenameEl_initializers, _filenameEl_extraInitializers);
@@ -133,6 +160,12 @@ let SniceCodeBlock = (() => {
133
160
  dispatchAfterHighlightEvent() {
134
161
  return { code: this.code, language: this.language, codeBlock: this };
135
162
  }
163
+ dispatchBeforeFormatEvent() {
164
+ return { code: this.code, language: this.language, codeBlock: this };
165
+ }
166
+ dispatchAfterFormatEvent() {
167
+ return { code: this.code, language: this.language, codeBlock: this };
168
+ }
136
169
  dispatchGrammarRequestEvent() {
137
170
  return { url: this.grammar, language: this.language, codeBlock: this };
138
171
  }
@@ -178,7 +211,10 @@ let SniceCodeBlock = (() => {
178
211
  this.readSlottedContent();
179
212
  }
180
213
  readSlottedContent() {
181
- const text = this.textContent?.trim();
214
+ const raw = this.textContent;
215
+ if (!raw)
216
+ return;
217
+ const text = dedent(raw);
182
218
  if (text) {
183
219
  this.code = text;
184
220
  this.highlight();
@@ -198,6 +234,11 @@ let SniceCodeBlock = (() => {
198
234
  this.highlight();
199
235
  }
200
236
  }
237
+ onFormatChange() {
238
+ if (this.code) {
239
+ this.highlight();
240
+ }
241
+ }
201
242
  updateHeader() {
202
243
  if (!this.headerEl)
203
244
  return;
@@ -263,6 +304,9 @@ let SniceCodeBlock = (() => {
263
304
  setHighlighter(highlighter) {
264
305
  this.highlighter = highlighter;
265
306
  }
307
+ setFormatter(formatter) {
308
+ this._formatter = formatter;
309
+ }
266
310
  setGrammar(grammar) {
267
311
  this.loadedGrammar = grammar;
268
312
  this.loadedGrammarUrl = null;
@@ -314,6 +358,30 @@ let SniceCodeBlock = (() => {
314
358
  if (!this.code)
315
359
  return;
316
360
  const version = ++this.highlightVersion;
361
+ // Resolve formatter: imperative setFormatter() wins, then grammar-based
362
+ let formatFn = this._formatter;
363
+ if (!formatFn && this.format) {
364
+ const grammar = await this.resolveGrammar();
365
+ if (version !== this.highlightVersion)
366
+ return;
367
+ if (grammar?.formatters?.[this.format]) {
368
+ const rules = grammar.formatters[this.format];
369
+ formatFn = (code) => formatCode(code, rules);
370
+ }
371
+ }
372
+ if (formatFn && this.format) {
373
+ this.dispatchBeforeFormatEvent();
374
+ try {
375
+ const formatted = await formatFn(this.code, this.language);
376
+ if (version !== this.highlightVersion)
377
+ return;
378
+ this.code = formatted;
379
+ this.dispatchAfterFormatEvent();
380
+ }
381
+ catch (error) {
382
+ console.error('Code formatting failed:', error);
383
+ }
384
+ }
317
385
  this.dispatchBeforeHighlightEvent();
318
386
  try {
319
387
  if (this.highlighter) {
@@ -348,7 +416,8 @@ let SniceCodeBlock = (() => {
348
416
  this.filename = (__runInitializers(this, _copyable_extraInitializers), __runInitializers(this, _filename_initializers, ''));
349
417
  this.grammar = (__runInitializers(this, _filename_extraInitializers), __runInitializers(this, _grammar_initializers, ''));
350
418
  this.fetchMode = (__runInitializers(this, _grammar_extraInitializers), __runInitializers(this, _fetchMode_initializers, 'native'));
351
- this.highlighter = __runInitializers(this, _fetchMode_extraInitializers);
419
+ this.format = (__runInitializers(this, _fetchMode_extraInitializers), __runInitializers(this, _format_initializers, ''));
420
+ this.highlighter = __runInitializers(this, _format_extraInitializers);
352
421
  this.copied = false;
353
422
  this.highlightedCode = '';
354
423
  this.loadedGrammar = null;
@@ -1 +1 @@
1
- {"version":3,"file":"snice-code-block.js","sources":["../../../components/code-block/snice-code-block.css?inline","../../../../components/code-block/snice-code-block.types.ts","../../../../components/code-block/snice-code-block.ts"],"sourcesContent":["export default \":host{display:block}.code-block{position:relative;background:hsl(var(--snice-color-gray-900));border-radius:var(--snice-border-radius-md,.375rem);overflow:hidden}.code-block__header{display:flex;justify-content:space-between;align-items:center;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);background:hsl(var(--snice-color-gray-800));border-bottom:1px solid hsl(var(--snice-color-gray-700))}.code-block__filename{font-size:var(--snice-font-size-sm, .875rem);color:hsl(var(--snice-color-gray-300));font-family:var(--snice-font-family-mono, monospace)}.code-block__copy{background:0 0;border:1px solid hsl(var(--snice-color-gray-600));color:hsl(var(--snice-color-gray-300));padding:.25rem .5rem;border-radius:var(--snice-border-radius-sm,.25rem);cursor:pointer;font-size:var(--snice-font-size-xs, .75rem);transition:.2s}.code-block__copy:hover{background:hsl(var(--snice-color-gray-700));border-color:hsl(var(--snice-color-gray-500))}.code-block__copy--copied{background:var(--snice-color-success);border-color:hsl(var(--snice-color-green-500));color:hsl(0 0% 100%)}.code-block__content{overflow-x:auto}.code-block__pre{margin:0;padding:var(--snice-spacing-md,1rem);background:0 0;overflow-x:auto}.code-block__code{font-family:var(--snice-font-family-mono, 'Courier New', monospace);font-size:var(--snice-font-size-sm, .875rem);line-height:1.5;color:hsl(var(--snice-color-gray-100));display:block}.code-block__line{display:block}.code-block__line--highlight{background:hsl(0 0% 100% / .1);border-left:3px solid var(--snice-color-primary);padding-left:calc(var(--snice-spacing-sm,.75rem) - 3px);margin-left:calc(-1 * var(--snice-spacing-md,1rem));padding-right:var(--snice-spacing-md,1rem)}.code-block__line-number{display:inline-block;width:3rem;text-align:right;margin-right:var(--snice-spacing-md,1rem);color:hsl(var(--snice-color-gray-500));user-select:none}.token.keyword{color:var(--code-keyword-color,#c678dd)}.token.function{color:var(--code-function-color,#61afef)}.token.string{color:var(--code-string-color,#98c379)}.token.number{color:var(--code-number-color,#d19a66)}.token.comment{color:var(--code-comment-color,#6a9955);font-style:italic}.token.operator{color:var(--code-operator-color,#56b6c2)}.token.punctuation{color:var(--code-punctuation-color,#abb2bf)}.token.tag{color:var(--code-tag-color,#e06c75)}.token.attr-name,.token.property{color:var(--code-attr-name-color,#d19a66)}.token.attr-value{color:var(--code-attr-value-color,#98c379)}.token.boolean,.token.constant{color:var(--code-constant-color,#d19a66)}.token.class-name{color:var(--code-class-color,#e5c07b)}.token.builtin{color:var(--code-builtin-color,#e06c75)}.token.regex{color:var(--code-regex-color,#98c379)}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}\";",null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snice-code-block.js","sources":["../../../components/code-block/snice-code-block.css?inline","../../../../components/code-block/snice-code-block.types.ts","../../../../components/code-block/snice-code-block.ts"],"sourcesContent":["export default \":host{display:block}.code-block{position:relative;background:hsl(var(--snice-color-gray-900));border-radius:var(--snice-border-radius-md,.375rem);overflow:hidden}.code-block__header{display:flex;justify-content:space-between;align-items:center;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);background:hsl(var(--snice-color-gray-800));border-bottom:1px solid hsl(var(--snice-color-gray-700))}.code-block__filename{font-size:var(--snice-font-size-sm, .875rem);color:hsl(var(--snice-color-gray-300));font-family:var(--snice-font-family-mono, monospace)}.code-block__copy{background:0 0;border:1px solid hsl(var(--snice-color-gray-600));color:hsl(var(--snice-color-gray-300));padding:.25rem .5rem;border-radius:var(--snice-border-radius-sm,.25rem);cursor:pointer;font-size:var(--snice-font-size-xs, .75rem);transition:.2s}.code-block__copy:hover{background:hsl(var(--snice-color-gray-700));border-color:hsl(var(--snice-color-gray-500))}.code-block__copy--copied{background:var(--snice-color-success);border-color:hsl(var(--snice-color-green-500));color:hsl(0 0% 100%)}.code-block__content{overflow-x:auto}.code-block__pre{margin:0;padding:var(--snice-spacing-md,1rem);background:0 0;overflow-x:auto}.code-block__code{font-family:var(--snice-font-family-mono, 'Courier New', monospace);font-size:var(--snice-font-size-sm, .875rem);line-height:1.5;color:hsl(var(--snice-color-gray-100));display:block}.code-block__line{display:block}.code-block__line--highlight{background:hsl(0 0% 100% / .1);border-left:3px solid var(--snice-color-primary);padding-left:calc(var(--snice-spacing-sm,.75rem) - 3px);margin-left:calc(-1 * var(--snice-spacing-md,1rem));padding-right:var(--snice-spacing-md,1rem)}.code-block__line-number{display:inline-block;width:3rem;text-align:right;margin-right:var(--snice-spacing-md,1rem);color:hsl(var(--snice-color-gray-500));user-select:none}.token.keyword{color:var(--code-keyword-color,#c678dd)}.token.function{color:var(--code-function-color,#61afef)}.token.string{color:var(--code-string-color,#98c379)}.token.number{color:var(--code-number-color,#d19a66)}.token.comment{color:var(--code-comment-color,#6a9955);font-style:italic}.token.operator{color:var(--code-operator-color,#56b6c2)}.token.punctuation{color:var(--code-punctuation-color,#abb2bf)}.token.tag{color:var(--code-tag-color,#e06c75)}.token.attr-name,.token.property{color:var(--code-attr-name-color,#d19a66)}.token.attr-value{color:var(--code-attr-value-color,#98c379)}.token.boolean,.token.constant{color:var(--code-constant-color,#d19a66)}.token.class-name{color:var(--code-class-color,#e5c07b)}.token.builtin{color:var(--code-builtin-color,#e06c75)}.token.regex{color:var(--code-regex-color,#98c379)}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}\";",null,null],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ export type { FormatRules } from './formatter';
1
2
  export type CodeLanguage = 'javascript' | 'typescript' | 'html' | 'css' | 'json' | 'python' | 'bash' | 'plaintext' | string;
2
3
  export type FetchMode = 'native' | 'virtual' | 'event';
3
4
  export declare const LOAD_GRAMMAR_REQUEST = "snice/code-block/load-grammar";
4
5
  export type HighlighterFunction = (code: string, language: string) => string | Promise<string>;
6
+ export type FormatterFunction = (code: string, language: string) => string | Promise<string>;
5
7
  export interface GrammarRequestDetail {
6
8
  url: string;
7
9
  language: CodeLanguage;
@@ -23,10 +25,12 @@ export interface SniceCodeBlockElement extends HTMLElement {
23
25
  highlightLines: number[];
24
26
  copyable: boolean;
25
27
  filename: string;
28
+ format: string;
26
29
  highlighter?: HighlighterFunction;
27
30
  copy(): Promise<void>;
28
31
  highlight(): Promise<void>;
29
32
  setHighlighter(highlighter: HighlighterFunction): void;
33
+ setFormatter(formatter: FormatterFunction): void;
30
34
  setGrammar(grammar: any): void;
31
35
  }
32
36
  export interface CodeCopyDetail {
@@ -38,8 +42,15 @@ export interface CodeHighlightDetail {
38
42
  language: string;
39
43
  codeBlock: SniceCodeBlockElement;
40
44
  }
45
+ export interface CodeFormatDetail {
46
+ code: string;
47
+ language: string;
48
+ codeBlock: SniceCodeBlockElement;
49
+ }
41
50
  export interface SniceCodeBlockEventMap {
42
51
  'code-copy': CustomEvent<CodeCopyDetail>;
52
+ 'code-before-format': CustomEvent<CodeFormatDetail>;
53
+ 'code-after-format': CustomEvent<CodeFormatDetail>;
43
54
  'code-before-highlight': CustomEvent<CodeHighlightDetail>;
44
55
  'code-after-highlight': CustomEvent<CodeHighlightDetail>;
45
56
  'grammar-request': CustomEvent<GrammarRequestDetail>;
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
package/dist/symbols.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.16.0
2
+ * snice v4.17.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -30,6 +30,7 @@ startLine: number = 1;
30
30
  highlightLines: number[] = [];
31
31
  copyable: boolean = true;
32
32
  filename: string = '';
33
+ format: string = ''; // Formatter name from grammar (e.g. "pretty"), or any truthy string with setFormatter()
33
34
  ```
34
35
 
35
36
  ## Fetch Mode
@@ -86,16 +87,86 @@ interface GrammarRequestDetail {
86
87
  - `copy()` - Copy code to clipboard
87
88
  - `highlight()` - Manually trigger syntax highlighting
88
89
  - `setHighlighter(fn)` - Set external highlighter for this instance
90
+ - `setFormatter(fn)` - Set formatter function for this instance
89
91
  - `setGrammar(grammar)` - Provide grammar object directly (used with `fetch-mode="event"`)
90
92
 
91
93
  ## Events
92
94
 
93
95
  - `code-copy` (detail: { code, codeBlock })
96
+ - `code-before-format` (detail: { code, language, codeBlock })
97
+ - `code-after-format` (detail: { code, language, codeBlock })
94
98
  - `code-before-highlight` (detail: { code, language, codeBlock })
95
99
  - `code-after-highlight` (detail: { code, language, codeBlock })
96
100
  - `grammar-request` (detail: { url, language, codeBlock }) — only dispatched when `fetch-mode="event"`
97
101
  - `grammar-loaded` (detail: { grammar, url, language, codeBlock }) — fired after grammar is successfully loaded (any fetch mode) or set via `setGrammar()`
98
102
 
103
+ ## Formatters
104
+
105
+ Code formatters run as a pre-step before highlighting. Set `format` to a formatter name.
106
+
107
+ ### Grammar-Based Formatters (Declarative)
108
+
109
+ Grammars can include a `formatters` section with named rule sets. Use `format="name"` to select one:
110
+
111
+ ```html
112
+ <snice-code-block grammar="grammars/json.json" format="pretty" code='{"a":1}'></snice-code-block>
113
+ ```
114
+
115
+ Grammars with `"pretty"` formatters: `json.json`, `typescript.json`, `css.json`, `snice.json`.
116
+
117
+ ```typescript
118
+ interface FormatRules {
119
+ tabSize?: number; // Indent width (default 2)
120
+ useTabs?: boolean; // Tabs instead of spaces
121
+ newlineAfter?: string; // Regex char class — newline after these chars
122
+ newlineBefore?: string; // Regex char class — newline before these chars
123
+ spaceAfter?: string; // Regex char class — space after
124
+ spaceBefore?: string; // Regex char class — space before
125
+ spaceAround?: string; // Regex char class — space both sides
126
+ indent?: string; // Regex char class — increase indent
127
+ dedent?: string; // Regex char class — decrease indent
128
+ trimTrailing?: boolean; // Trim trailing whitespace (default true)
129
+ collapseBlankLines?: number; // Max consecutive blank lines
130
+ skipStrings?: boolean; // Skip rules inside strings (default true)
131
+ skipComments?: boolean; // Skip rules inside comments (default true)
132
+ }
133
+ ```
134
+
135
+ ### Imperative Formatters
136
+
137
+ `setFormatter(fn)` overrides grammar-based formatters when both are present.
138
+
139
+ ```typescript
140
+ type FormatterFunction = (code: string, language: string) => string | Promise<string>;
141
+ ```
142
+
143
+ **`formatters/json.ts`** — JSON pretty-printer (zero-dependency):
144
+ ```typescript
145
+ import { createJsonFormatter } from 'snice/components/code-block/formatters/json';
146
+ codeBlock.setFormatter(createJsonFormatter({ indent: 2 }));
147
+ codeBlock.format = 'pretty';
148
+ ```
149
+
150
+ **`formatters/indent.ts`** — Indent normalizer (zero-dependency):
151
+ ```typescript
152
+ import { createIndentFormatter } from 'snice/components/code-block/formatters/indent';
153
+ codeBlock.setFormatter(createIndentFormatter({ tabSize: 2, useTabs: false }));
154
+ codeBlock.format = 'pretty';
155
+ ```
156
+
157
+ **`formatters/prettier.ts`** — Prettier adapter:
158
+ ```typescript
159
+ import { setupPrettierFormatter } from 'snice/components/code-block/formatters/prettier';
160
+ import * as prettier from 'prettier/standalone';
161
+ import parserBabel from 'prettier/plugins/babel';
162
+ codeBlock.setFormatter(setupPrettierFormatter(prettier, [parserBabel]));
163
+ codeBlock.format = 'pretty';
164
+ ```
165
+
166
+ ### Whitespace Handling
167
+
168
+ Slotted content is automatically dedented — common leading indentation from HTML nesting is stripped while preserving relative indentation.
169
+
99
170
  ## Grammar System
100
171
 
101
172
  JSON-driven tokenizer with Monarch-inspired state machine. Grammars are **external JSON files**, not bundled in the component.