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.
- package/adapters/react/code-block.d.ts +1 -0
- package/adapters/react/code-block.d.ts.map +1 -1
- package/adapters/react/code-block.js +1 -1
- package/adapters/react/code-block.js.map +1 -1
- package/adapters/react/code-block.tsx +2 -1
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +1 -1
- package/dist/cdn/badge/snice-badge.min.js +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/book/snice-book.min.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
- package/dist/cdn/button/snice-button.js +1 -1
- package/dist/cdn/button/snice-button.min.js +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/README.md +2 -2
- package/dist/cdn/code-block/snice-code-block.js +314 -3
- package/dist/cdn/code-block/snice-code-block.js.map +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +3 -3
- package/dist/cdn/code-block/snice-code-block.min.js.map +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/comments/snice-comments.js +1 -1
- package/dist/cdn/comments/snice-comments.min.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/countdown/snice-countdown.min.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/cropper/snice-cropper.min.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/diff/snice-diff.min.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/flow/snice-flow.min.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gantt/snice-gantt.min.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/layout/snice-layout.min.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/list/snice-list.min.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/snice-login.js +1 -1
- package/dist/cdn/login/snice-login.min.js +1 -1
- package/dist/cdn/map/snice-map.js +1 -1
- package/dist/cdn/map/snice-map.min.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/markdown/snice-markdown.min.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/nav/snice-nav.min.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/rating/snice-rating.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.js +4 -4
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +4 -4
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +4 -4
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +4 -4
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/sankey/snice-sankey.min.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sortable/snice-sortable.js +1 -1
- package/dist/cdn/sortable/snice-sortable.min.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/snice-table.js +1 -1
- package/dist/cdn/table/snice-table.min.js +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/tree/snice-tree.min.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/treemap/snice-treemap.min.js +1 -1
- package/dist/cdn/video-player/snice-video-player.js +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/weather/snice-weather.min.js +1 -1
- package/dist/components/code-block/formatter.d.ts +26 -0
- package/dist/components/code-block/formatter.js +245 -0
- package/dist/components/code-block/formatter.js.map +1 -0
- package/dist/components/code-block/formatters/indent.d.ts +25 -0
- package/dist/components/code-block/formatters/indent.js +95 -0
- package/dist/components/code-block/formatters/indent.js.map +1 -0
- package/dist/components/code-block/formatters/json.d.ts +25 -0
- package/dist/components/code-block/formatters/json.js +38 -0
- package/dist/components/code-block/formatters/json.js.map +1 -0
- package/dist/components/code-block/formatters/prettier.d.ts +53 -0
- package/dist/components/code-block/formatters/prettier.js +82 -0
- package/dist/components/code-block/formatters/prettier.js.map +1 -0
- package/dist/components/code-block/grammars/css.json +13 -0
- package/dist/components/code-block/grammars/json.json +13 -0
- package/dist/components/code-block/grammars/snice.json +14 -0
- package/dist/components/code-block/grammars/typescript.json +14 -0
- package/dist/components/code-block/highlighter.d.ts +1 -0
- package/dist/components/code-block/highlighter.js.map +1 -1
- package/dist/components/code-block/snice-code-block.d.ts +7 -1
- package/dist/components/code-block/snice-code-block.js +71 -2
- package/dist/components/code-block/snice-code-block.js.map +1 -1
- package/dist/components/code-block/snice-code-block.types.d.ts +11 -0
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/ai/components/code-block.md +71 -0
- package/docs/components/code-block.md +126 -0
- 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",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlighter.js","sources":["../../../../components/code-block/highlighter.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;
|
|
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
|
|
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.
|
|
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
package/dist/index.esm.js
CHANGED
package/dist/index.iife.js
CHANGED
package/dist/symbols.cjs
CHANGED
package/dist/symbols.esm.js
CHANGED
package/dist/transitions.cjs
CHANGED
package/dist/transitions.esm.js
CHANGED
|
@@ -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.
|