@haklex/rich-renderer-codeblock 0.0.14 → 0.0.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockEditRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockEditRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,sBAAsB,CAmLvE,CAAA"}
1
+ {"version":3,"file":"CodeBlockEditRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockEditRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,sBAAsB,CAqLvE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlockRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAgEnE,CAAA;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"CodeBlockRenderer.d.ts","sourceRoot":"","sources":["../src/CodeBlockRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAQ1C,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,sBAAsB,CAkEnE,CAAA;AAED,eAAe,iBAAiB,CAAA"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useColorScheme } from "@haklex/rich-editor";
2
+ import { useVariant, useColorScheme } from "@haklex/rich-editor";
3
3
  import { useState, useRef, useEffect, useCallback, useMemo } from "react";
4
4
  import { Check, Copy, ChevronDown } from "lucide-react";
5
5
  import { normalizeLanguage, getLanguageDisplayName, languageToColorMap } from "./constants.mjs";
@@ -112,10 +112,12 @@ function CodeBlockCard({
112
112
  const CodeBlockEditRenderer = ({
113
113
  code,
114
114
  language,
115
- showLineNumbers = true,
115
+ showLineNumbers: showLineNumbersProp,
116
116
  editable = false,
117
117
  onCodeChange
118
118
  }) => {
119
+ const variant = useVariant();
120
+ const showLineNumbers = showLineNumbersProp ?? variant !== "comment";
119
121
  const colorScheme = useColorScheme();
120
122
  const normalizedLanguage = normalizeLanguage(language);
121
123
  const [loaded, setLoaded] = useState(false);
@@ -210,8 +212,8 @@ const CodeBlockEditRenderer = ({
210
212
  }, [code, normalizedLanguage, colorScheme, showLineNumbers, editable]);
211
213
  const fallbackLines = useMemo(() => code.split("\n"), [code]);
212
214
  const fallbackClassName = [
213
- lined,
214
- semanticClassNames.lined,
215
+ showLineNumbers && lined,
216
+ showLineNumbers && semanticClassNames.lined,
215
217
  showLineNumbers && linedWithNumbers,
216
218
  showLineNumbers && semanticClassNames.linedWithNumbers
217
219
  ].filter(Boolean).join(" ");
@@ -236,8 +238,10 @@ const CodeBlockEditRenderer = ({
236
238
  const CodeBlockRenderer = ({
237
239
  code,
238
240
  language,
239
- showLineNumbers = true
241
+ showLineNumbers: showLineNumbersProp
240
242
  }) => {
243
+ const variant = useVariant();
244
+ const showLineNumbers = showLineNumbersProp ?? variant !== "comment";
241
245
  const colorScheme = useColorScheme();
242
246
  const normalizedLanguage = normalizeLanguage(language);
243
247
  const [html, setHtml] = useState(null);
@@ -260,8 +264,8 @@ const CodeBlockRenderer = ({
260
264
  }, [code, normalizedLanguage, colorScheme]);
261
265
  const fallbackLines = useMemo(() => code.split("\n"), [code]);
262
266
  const linedClassName = [
263
- lined,
264
- semanticClassNames.lined,
267
+ showLineNumbers && lined,
268
+ showLineNumbers && semanticClassNames.lined,
265
269
  showLineNumbers && linedWithNumbers,
266
270
  showLineNumbers && semanticClassNames.linedWithNumbers
267
271
  ].filter(Boolean).join(" ");
@@ -1,5 +1,6 @@
1
1
  ._1pn9r4q0 {
2
2
  --rr-code-accent: #737373;
3
+ --font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
3
4
  position: relative;
4
5
  margin: 1.5rem 0;
5
6
  border-radius: 0.5rem;
@@ -101,6 +102,13 @@
101
102
  ._1pn9r4qa:hover {
102
103
  opacity: 1;
103
104
  }
105
+ ._1pn9r4q0 .shikicode.input, ._1pn9r4q0 .shikicode.output, ._1pn9r4q0 .shikicode.output code, ._1pn9r4q0 .shikicode.output .line, ._1pn9r4q0 .shikicode.output .line span {
106
+ font-variant-ligatures: none;
107
+ font-kerning: none;
108
+ }
109
+ ._1pn9r4q7 pre, ._1pn9r4q7 code, ._1pn9r4q7 .line, ._1pn9r4q7 .line span {
110
+ font-family: inherit !important;
111
+ }
104
112
  ._1pn9r4q0 pre {
105
113
  margin: 0 !important;
106
114
  padding: 0 !important;
@@ -114,9 +122,14 @@
114
122
  ._1pn9r4q0 .shiki, ._1pn9r4q0 code, ._1pn9r4q0 pre {
115
123
  background: transparent !important;
116
124
  }
117
- ._1pn9r4q0 .shikicode.output .line::before {
125
+ ._1pn9r4q7:has(.shikicode.input.line-numbers) .shikicode.output .line::before {
118
126
  background-color: transparent !important;
119
127
  color: color-mix(in srgb, var(--rc-text-secondary) 40%, transparent) !important;
128
+ width: 5em;
129
+ padding-right: 2em;
130
+ }
131
+ ._1pn9r4q7:not(:has(.shikicode.input.line-numbers)) .shikicode.output .line::before {
132
+ display: none;
120
133
  }
121
134
  ._1pn9r4q0 .line {
122
135
  display: block;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAcrB,CAAA;AAGV,eAAO,MAAM,IAAI,QAOf,CAAA;AAGF,eAAO,MAAM,IAAI,QAWf,CAAA;AAEF,eAAO,MAAM,QAAQ,QAGnB,CAAA;AAQF,eAAO,MAAM,UAAU,QAuBrB,CAAA;AAGF,eAAO,MAAM,cAAc,QAIzB,CAAA;AAGF,eAAO,MAAM,MAAM,QAIjB,CAAA;AAEF,eAAO,MAAM,eAAe,QAG1B,CAAA;AAGF,eAAO,MAAM,IAAI,QAIf,CAAA;AAEF,eAAO,MAAM,YAAY,QAAY,CAAA;AAYrC,eAAO,MAAM,UAAU,QAUrB,CAAA;AAEF,eAAO,MAAM,YAAY,QAiBvB,CAAA;AA8FF,eAAO,MAAM,KAAK,QAEhB,CAAA;AAiBF,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAmBzC,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAA;AAiFV,eAAO,MAAM,WAAW,QAA2B,CAAA;AACnD,eAAO,MAAM,aAAa,QAA6B,CAAA;AACvD,eAAO,MAAM,WAAW,QAA2B,CAAA;AACnD,eAAO,MAAM,iBAAiB,QAAiC,CAAA"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAcrB,CAAA;AAGV,eAAO,MAAM,IAAI,QAWf,CAAA;AAGF,eAAO,MAAM,IAAI,QAWf,CAAA;AAEF,eAAO,MAAM,QAAQ,QAGnB,CAAA;AAQF,eAAO,MAAM,UAAU,QAuBrB,CAAA;AAGF,eAAO,MAAM,cAAc,QAIzB,CAAA;AAGF,eAAO,MAAM,MAAM,QAIjB,CAAA;AAEF,eAAO,MAAM,eAAe,QAG1B,CAAA;AAGF,eAAO,MAAM,IAAI,QAIf,CAAA;AAEF,eAAO,MAAM,YAAY,QAAY,CAAA;AAYrC,eAAO,MAAM,UAAU,QAUrB,CAAA;AAEF,eAAO,MAAM,YAAY,QAiBvB,CAAA;AA2HF,eAAO,MAAM,KAAK,QAEhB,CAAA;AAiBF,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAmBzC,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAA;AAiFV,eAAO,MAAM,WAAW,QAA2B,CAAA;AACnD,eAAO,MAAM,aAAa,QAA6B,CAAA;AACvD,eAAO,MAAM,WAAW,QAA2B,CAAA;AACnD,eAAO,MAAM,iBAAiB,QAAiC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-renderer-codeblock",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "Code block renderer with Shiki syntax highlighting",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -33,8 +33,8 @@
33
33
  "lucide-react": "^0.574.0",
34
34
  "shiki": "^3.21.0",
35
35
  "shikicode": "*",
36
- "@haklex/rich-style-token": "0.0.14",
37
- "@haklex/rich-editor": "0.0.14"
36
+ "@haklex/rich-editor": "0.0.15",
37
+ "@haklex/rich-style-token": "0.0.15"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/react": "^19.0.0",