@almadar/ui 5.122.11 → 5.122.13
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/dist/avl/index.cjs +206 -10
- package/dist/avl/index.js +177 -10
- package/dist/components/index.cjs +212 -12
- package/dist/components/index.d.cts +17 -8
- package/dist/components/index.d.ts +17 -8
- package/dist/components/index.js +183 -13
- package/dist/providers/index.cjs +206 -10
- package/dist/providers/index.js +177 -10
- package/dist/runtime/index.cjs +206 -10
- package/dist/runtime/index.js +177 -10
- package/package.json +1 -1
package/dist/providers/index.js
CHANGED
|
@@ -34,6 +34,35 @@ import langDiff from 'react-syntax-highlighter/dist/esm/languages/prism/diff.js'
|
|
|
34
34
|
import langToml from 'react-syntax-highlighter/dist/esm/languages/prism/toml.js';
|
|
35
35
|
import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go.js';
|
|
36
36
|
import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql.js';
|
|
37
|
+
import langClojure from 'react-syntax-highlighter/dist/esm/languages/prism/clojure.js';
|
|
38
|
+
import langHaskell from 'react-syntax-highlighter/dist/esm/languages/prism/haskell.js';
|
|
39
|
+
import langLisp from 'react-syntax-highlighter/dist/esm/languages/prism/lisp.js';
|
|
40
|
+
import langScheme from 'react-syntax-highlighter/dist/esm/languages/prism/scheme.js';
|
|
41
|
+
import langScala from 'react-syntax-highlighter/dist/esm/languages/prism/scala.js';
|
|
42
|
+
import langElixir from 'react-syntax-highlighter/dist/esm/languages/prism/elixir.js';
|
|
43
|
+
import langErlang from 'react-syntax-highlighter/dist/esm/languages/prism/erlang.js';
|
|
44
|
+
import langElm from 'react-syntax-highlighter/dist/esm/languages/prism/elm.js';
|
|
45
|
+
import langFsharp from 'react-syntax-highlighter/dist/esm/languages/prism/fsharp.js';
|
|
46
|
+
import langOcaml from 'react-syntax-highlighter/dist/esm/languages/prism/ocaml.js';
|
|
47
|
+
import langJava from 'react-syntax-highlighter/dist/esm/languages/prism/java.js';
|
|
48
|
+
import langC from 'react-syntax-highlighter/dist/esm/languages/prism/c.js';
|
|
49
|
+
import langCpp from 'react-syntax-highlighter/dist/esm/languages/prism/cpp.js';
|
|
50
|
+
import langCsharp from 'react-syntax-highlighter/dist/esm/languages/prism/csharp.js';
|
|
51
|
+
import langObjectivec from 'react-syntax-highlighter/dist/esm/languages/prism/objectivec.js';
|
|
52
|
+
import langPhp from 'react-syntax-highlighter/dist/esm/languages/prism/php.js';
|
|
53
|
+
import langRuby from 'react-syntax-highlighter/dist/esm/languages/prism/ruby.js';
|
|
54
|
+
import langSwift from 'react-syntax-highlighter/dist/esm/languages/prism/swift.js';
|
|
55
|
+
import langKotlin from 'react-syntax-highlighter/dist/esm/languages/prism/kotlin.js';
|
|
56
|
+
import langLua from 'react-syntax-highlighter/dist/esm/languages/prism/lua.js';
|
|
57
|
+
import langR from 'react-syntax-highlighter/dist/esm/languages/prism/r.js';
|
|
58
|
+
import langDart from 'react-syntax-highlighter/dist/esm/languages/prism/dart.js';
|
|
59
|
+
import langJulia from 'react-syntax-highlighter/dist/esm/languages/prism/julia.js';
|
|
60
|
+
import langFortran from 'react-syntax-highlighter/dist/esm/languages/prism/fortran.js';
|
|
61
|
+
import langPerl from 'react-syntax-highlighter/dist/esm/languages/prism/perl.js';
|
|
62
|
+
import langPowershell from 'react-syntax-highlighter/dist/esm/languages/prism/powershell.js';
|
|
63
|
+
import langMakefile from 'react-syntax-highlighter/dist/esm/languages/prism/makefile.js';
|
|
64
|
+
import langNginx from 'react-syntax-highlighter/dist/esm/languages/prism/nginx.js';
|
|
65
|
+
import langIni from 'react-syntax-highlighter/dist/esm/languages/prism/ini.js';
|
|
37
66
|
import ReactMarkdown from 'react-markdown';
|
|
38
67
|
import remarkGfm from 'remark-gfm';
|
|
39
68
|
import remarkMath from 'remark-math';
|
|
@@ -14369,6 +14398,19 @@ var init_EmptyState = __esm({
|
|
|
14369
14398
|
EmptyState.displayName = "EmptyState";
|
|
14370
14399
|
}
|
|
14371
14400
|
});
|
|
14401
|
+
function isLanguageRegistered(lang) {
|
|
14402
|
+
return CODE_LANGUAGE_SET.has(lang) || dynamicallyLoaded.has(lang);
|
|
14403
|
+
}
|
|
14404
|
+
async function loadPrismLanguage(lang) {
|
|
14405
|
+
if (isLanguageRegistered(lang)) return;
|
|
14406
|
+
try {
|
|
14407
|
+
const grammar = codeLanguageLoader ? await codeLanguageLoader(lang) : null;
|
|
14408
|
+
if (grammar) SyntaxHighlighter.registerLanguage(lang, grammar);
|
|
14409
|
+
dynamicallyLoaded.add(lang);
|
|
14410
|
+
} catch {
|
|
14411
|
+
dynamicallyLoaded.add(lang);
|
|
14412
|
+
}
|
|
14413
|
+
}
|
|
14372
14414
|
function computeFoldRegions(code) {
|
|
14373
14415
|
const lines = code.split("\n");
|
|
14374
14416
|
const regions = [];
|
|
@@ -14404,7 +14446,8 @@ function computeFoldRegions(code) {
|
|
|
14404
14446
|
return regions.sort((a, b) => a.start - b.start);
|
|
14405
14447
|
}
|
|
14406
14448
|
function toCodeLanguage(value) {
|
|
14407
|
-
|
|
14449
|
+
if (!value) return "text";
|
|
14450
|
+
return value.toLowerCase();
|
|
14408
14451
|
}
|
|
14409
14452
|
function generateDiff(oldVal, newVal) {
|
|
14410
14453
|
const oldLines = oldVal.split("\n");
|
|
@@ -14423,7 +14466,24 @@ function generateDiff(oldVal, newVal) {
|
|
|
14423
14466
|
}
|
|
14424
14467
|
return diff;
|
|
14425
14468
|
}
|
|
14426
|
-
|
|
14469
|
+
function useLanguageReady(language) {
|
|
14470
|
+
const [ready, setReady] = useState(() => isLanguageRegistered(language));
|
|
14471
|
+
useEffect(() => {
|
|
14472
|
+
if (isLanguageRegistered(language)) {
|
|
14473
|
+
if (!ready) setReady(true);
|
|
14474
|
+
return;
|
|
14475
|
+
}
|
|
14476
|
+
let active = true;
|
|
14477
|
+
loadPrismLanguage(language).then(() => {
|
|
14478
|
+
if (active) setReady(true);
|
|
14479
|
+
});
|
|
14480
|
+
return () => {
|
|
14481
|
+
active = false;
|
|
14482
|
+
};
|
|
14483
|
+
}, [language]);
|
|
14484
|
+
return ready;
|
|
14485
|
+
}
|
|
14486
|
+
var dynamicallyLoaded, codeLanguageLoader, orbStyleOverrides, orbStyle, loloStyleOverrides, loloStyle, log7, CODE_LANGUAGES, CODE_LANGUAGE_SET, DIFF_STYLES, DIFF_STYLE_FALLBACK, LINE_PROPS_FN, HIDDEN_LINE_NUMBERS, CodeBlock;
|
|
14427
14487
|
var init_CodeBlock = __esm({
|
|
14428
14488
|
"components/core/molecules/markdown/CodeBlock.tsx"() {
|
|
14429
14489
|
init_cn();
|
|
@@ -14462,8 +14522,62 @@ var init_CodeBlock = __esm({
|
|
|
14462
14522
|
SyntaxHighlighter.registerLanguage("toml", langToml);
|
|
14463
14523
|
SyntaxHighlighter.registerLanguage("go", langGo);
|
|
14464
14524
|
SyntaxHighlighter.registerLanguage("graphql", langGraphql);
|
|
14525
|
+
SyntaxHighlighter.registerLanguage("clojure", langClojure);
|
|
14526
|
+
SyntaxHighlighter.registerLanguage("clj", langClojure);
|
|
14527
|
+
SyntaxHighlighter.registerLanguage("edn", langClojure);
|
|
14528
|
+
SyntaxHighlighter.registerLanguage("haskell", langHaskell);
|
|
14529
|
+
SyntaxHighlighter.registerLanguage("hs", langHaskell);
|
|
14530
|
+
SyntaxHighlighter.registerLanguage("lisp", langLisp);
|
|
14531
|
+
SyntaxHighlighter.registerLanguage("scheme", langScheme);
|
|
14532
|
+
SyntaxHighlighter.registerLanguage("scala", langScala);
|
|
14533
|
+
SyntaxHighlighter.registerLanguage("elixir", langElixir);
|
|
14534
|
+
SyntaxHighlighter.registerLanguage("ex", langElixir);
|
|
14535
|
+
SyntaxHighlighter.registerLanguage("exs", langElixir);
|
|
14536
|
+
SyntaxHighlighter.registerLanguage("erlang", langErlang);
|
|
14537
|
+
SyntaxHighlighter.registerLanguage("erl", langErlang);
|
|
14538
|
+
SyntaxHighlighter.registerLanguage("elm", langElm);
|
|
14539
|
+
SyntaxHighlighter.registerLanguage("fsharp", langFsharp);
|
|
14540
|
+
SyntaxHighlighter.registerLanguage("fs", langFsharp);
|
|
14541
|
+
SyntaxHighlighter.registerLanguage("fsx", langFsharp);
|
|
14542
|
+
SyntaxHighlighter.registerLanguage("ocaml", langOcaml);
|
|
14543
|
+
SyntaxHighlighter.registerLanguage("ml", langOcaml);
|
|
14544
|
+
SyntaxHighlighter.registerLanguage("java", langJava);
|
|
14545
|
+
SyntaxHighlighter.registerLanguage("c", langC);
|
|
14546
|
+
SyntaxHighlighter.registerLanguage("cpp", langCpp);
|
|
14547
|
+
SyntaxHighlighter.registerLanguage("c++", langCpp);
|
|
14548
|
+
SyntaxHighlighter.registerLanguage("cc", langCpp);
|
|
14549
|
+
SyntaxHighlighter.registerLanguage("cxx", langCpp);
|
|
14550
|
+
SyntaxHighlighter.registerLanguage("hpp", langCpp);
|
|
14551
|
+
SyntaxHighlighter.registerLanguage("h", langCpp);
|
|
14552
|
+
SyntaxHighlighter.registerLanguage("csharp", langCsharp);
|
|
14553
|
+
SyntaxHighlighter.registerLanguage("cs", langCsharp);
|
|
14554
|
+
SyntaxHighlighter.registerLanguage("objectivec", langObjectivec);
|
|
14555
|
+
SyntaxHighlighter.registerLanguage("objc", langObjectivec);
|
|
14556
|
+
SyntaxHighlighter.registerLanguage("php", langPhp);
|
|
14557
|
+
SyntaxHighlighter.registerLanguage("ruby", langRuby);
|
|
14558
|
+
SyntaxHighlighter.registerLanguage("rb", langRuby);
|
|
14559
|
+
SyntaxHighlighter.registerLanguage("swift", langSwift);
|
|
14560
|
+
SyntaxHighlighter.registerLanguage("kotlin", langKotlin);
|
|
14561
|
+
SyntaxHighlighter.registerLanguage("kt", langKotlin);
|
|
14562
|
+
SyntaxHighlighter.registerLanguage("lua", langLua);
|
|
14563
|
+
SyntaxHighlighter.registerLanguage("r", langR);
|
|
14564
|
+
SyntaxHighlighter.registerLanguage("dart", langDart);
|
|
14565
|
+
SyntaxHighlighter.registerLanguage("julia", langJulia);
|
|
14566
|
+
SyntaxHighlighter.registerLanguage("fortran", langFortran);
|
|
14567
|
+
SyntaxHighlighter.registerLanguage("f90", langFortran);
|
|
14568
|
+
SyntaxHighlighter.registerLanguage("f95", langFortran);
|
|
14569
|
+
SyntaxHighlighter.registerLanguage("perl", langPerl);
|
|
14570
|
+
SyntaxHighlighter.registerLanguage("pl", langPerl);
|
|
14571
|
+
SyntaxHighlighter.registerLanguage("powershell", langPowershell);
|
|
14572
|
+
SyntaxHighlighter.registerLanguage("ps1", langPowershell);
|
|
14573
|
+
SyntaxHighlighter.registerLanguage("makefile", langMakefile);
|
|
14574
|
+
SyntaxHighlighter.registerLanguage("make", langMakefile);
|
|
14575
|
+
SyntaxHighlighter.registerLanguage("nginx", langNginx);
|
|
14576
|
+
SyntaxHighlighter.registerLanguage("ini", langIni);
|
|
14465
14577
|
SyntaxHighlighter.registerLanguage("orb", orbLanguage);
|
|
14466
14578
|
SyntaxHighlighter.registerLanguage("lolo", loloLanguage);
|
|
14579
|
+
dynamicallyLoaded = /* @__PURE__ */ new Set();
|
|
14580
|
+
codeLanguageLoader = null;
|
|
14467
14581
|
orbStyleOverrides = {
|
|
14468
14582
|
"orb-binding": { color: ORB_COLORS.dark.binding, fontWeight: "bold" },
|
|
14469
14583
|
"orb-effect": { color: ORB_COLORS.dark.effect, fontWeight: "bold" },
|
|
@@ -14534,6 +14648,58 @@ var init_CodeBlock = __esm({
|
|
|
14534
14648
|
"graphql",
|
|
14535
14649
|
"html",
|
|
14536
14650
|
"xml",
|
|
14651
|
+
"clojure",
|
|
14652
|
+
"clj",
|
|
14653
|
+
"edn",
|
|
14654
|
+
"haskell",
|
|
14655
|
+
"hs",
|
|
14656
|
+
"lisp",
|
|
14657
|
+
"scheme",
|
|
14658
|
+
"scala",
|
|
14659
|
+
"elixir",
|
|
14660
|
+
"ex",
|
|
14661
|
+
"exs",
|
|
14662
|
+
"erlang",
|
|
14663
|
+
"erl",
|
|
14664
|
+
"elm",
|
|
14665
|
+
"fsharp",
|
|
14666
|
+
"fs",
|
|
14667
|
+
"fsx",
|
|
14668
|
+
"ocaml",
|
|
14669
|
+
"ml",
|
|
14670
|
+
"java",
|
|
14671
|
+
"c",
|
|
14672
|
+
"cpp",
|
|
14673
|
+
"c++",
|
|
14674
|
+
"cc",
|
|
14675
|
+
"cxx",
|
|
14676
|
+
"hpp",
|
|
14677
|
+
"h",
|
|
14678
|
+
"csharp",
|
|
14679
|
+
"cs",
|
|
14680
|
+
"objectivec",
|
|
14681
|
+
"objc",
|
|
14682
|
+
"php",
|
|
14683
|
+
"ruby",
|
|
14684
|
+
"rb",
|
|
14685
|
+
"swift",
|
|
14686
|
+
"kotlin",
|
|
14687
|
+
"kt",
|
|
14688
|
+
"lua",
|
|
14689
|
+
"r",
|
|
14690
|
+
"dart",
|
|
14691
|
+
"julia",
|
|
14692
|
+
"fortran",
|
|
14693
|
+
"f90",
|
|
14694
|
+
"f95",
|
|
14695
|
+
"perl",
|
|
14696
|
+
"pl",
|
|
14697
|
+
"powershell",
|
|
14698
|
+
"ps1",
|
|
14699
|
+
"makefile",
|
|
14700
|
+
"make",
|
|
14701
|
+
"nginx",
|
|
14702
|
+
"ini",
|
|
14537
14703
|
"orb",
|
|
14538
14704
|
"lolo"
|
|
14539
14705
|
];
|
|
@@ -14579,6 +14745,7 @@ var init_CodeBlock = __esm({
|
|
|
14579
14745
|
const isOrb = language === "orb";
|
|
14580
14746
|
const isLolo = language === "lolo";
|
|
14581
14747
|
const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark;
|
|
14748
|
+
const languageReady = useLanguageReady(language);
|
|
14582
14749
|
const eventBus = useEventBus();
|
|
14583
14750
|
const { t } = useTranslate();
|
|
14584
14751
|
const scrollRef = useRef(null);
|
|
@@ -14702,7 +14869,7 @@ var init_CodeBlock = __esm({
|
|
|
14702
14869
|
children: code
|
|
14703
14870
|
}
|
|
14704
14871
|
),
|
|
14705
|
-
[code, language, activeStyle]
|
|
14872
|
+
[code, language, activeStyle, languageReady]
|
|
14706
14873
|
);
|
|
14707
14874
|
useLayoutEffect(() => {
|
|
14708
14875
|
const container = codeRef.current;
|
|
@@ -15302,10 +15469,10 @@ var init_MarkdownContent = __esm({
|
|
|
15302
15469
|
}
|
|
15303
15470
|
});
|
|
15304
15471
|
|
|
15305
|
-
//
|
|
15472
|
+
// lib/lessonSegmentUtils.ts
|
|
15306
15473
|
function parseMarkdownWithCodeBlocks(content) {
|
|
15307
15474
|
const segments = [];
|
|
15308
|
-
const codeBlockRegex = /```([\
|
|
15475
|
+
const codeBlockRegex = /```([^\n\r]*)\r?\n([\s\S]*?)```/g;
|
|
15309
15476
|
let lastIndex = 0;
|
|
15310
15477
|
let match;
|
|
15311
15478
|
while ((match = codeBlockRegex.exec(content)) !== null) {
|
|
@@ -15313,12 +15480,12 @@ function parseMarkdownWithCodeBlocks(content) {
|
|
|
15313
15480
|
if (before.trim()) {
|
|
15314
15481
|
segments.push({ type: "markdown", content: before });
|
|
15315
15482
|
}
|
|
15316
|
-
const
|
|
15317
|
-
|
|
15483
|
+
const tokens = match[1].trim().split(/\s+/).filter(Boolean);
|
|
15484
|
+
let rawLanguage = tokens[0] ?? "text";
|
|
15318
15485
|
const suffixRunnable = rawLanguage.endsWith("-runnable");
|
|
15319
|
-
const runnable =
|
|
15486
|
+
const runnable = suffixRunnable || tokens.includes("run");
|
|
15320
15487
|
const baseLanguage = suffixRunnable ? rawLanguage.slice(0, -"-runnable".length) || "text" : rawLanguage;
|
|
15321
|
-
segments.push({ type: "code", language: baseLanguage, content: match[
|
|
15488
|
+
segments.push({ type: "code", language: baseLanguage, content: match[2].trim(), runnable });
|
|
15322
15489
|
lastIndex = codeBlockRegex.lastIndex;
|
|
15323
15490
|
}
|
|
15324
15491
|
const remaining = content.slice(lastIndex);
|
|
@@ -15328,7 +15495,7 @@ function parseMarkdownWithCodeBlocks(content) {
|
|
|
15328
15495
|
return segments;
|
|
15329
15496
|
}
|
|
15330
15497
|
var init_lessonSegmentUtils = __esm({
|
|
15331
|
-
"
|
|
15498
|
+
"lib/lessonSegmentUtils.ts"() {
|
|
15332
15499
|
}
|
|
15333
15500
|
});
|
|
15334
15501
|
var BLOOM_CONFIG, BloomQuizBlock;
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -33,6 +33,35 @@ var langDiff = require('react-syntax-highlighter/dist/esm/languages/prism/diff.j
|
|
|
33
33
|
var langToml = require('react-syntax-highlighter/dist/esm/languages/prism/toml.js');
|
|
34
34
|
var langGo = require('react-syntax-highlighter/dist/esm/languages/prism/go.js');
|
|
35
35
|
var langGraphql = require('react-syntax-highlighter/dist/esm/languages/prism/graphql.js');
|
|
36
|
+
var langClojure = require('react-syntax-highlighter/dist/esm/languages/prism/clojure.js');
|
|
37
|
+
var langHaskell = require('react-syntax-highlighter/dist/esm/languages/prism/haskell.js');
|
|
38
|
+
var langLisp = require('react-syntax-highlighter/dist/esm/languages/prism/lisp.js');
|
|
39
|
+
var langScheme = require('react-syntax-highlighter/dist/esm/languages/prism/scheme.js');
|
|
40
|
+
var langScala = require('react-syntax-highlighter/dist/esm/languages/prism/scala.js');
|
|
41
|
+
var langElixir = require('react-syntax-highlighter/dist/esm/languages/prism/elixir.js');
|
|
42
|
+
var langErlang = require('react-syntax-highlighter/dist/esm/languages/prism/erlang.js');
|
|
43
|
+
var langElm = require('react-syntax-highlighter/dist/esm/languages/prism/elm.js');
|
|
44
|
+
var langFsharp = require('react-syntax-highlighter/dist/esm/languages/prism/fsharp.js');
|
|
45
|
+
var langOcaml = require('react-syntax-highlighter/dist/esm/languages/prism/ocaml.js');
|
|
46
|
+
var langJava = require('react-syntax-highlighter/dist/esm/languages/prism/java.js');
|
|
47
|
+
var langC = require('react-syntax-highlighter/dist/esm/languages/prism/c.js');
|
|
48
|
+
var langCpp = require('react-syntax-highlighter/dist/esm/languages/prism/cpp.js');
|
|
49
|
+
var langCsharp = require('react-syntax-highlighter/dist/esm/languages/prism/csharp.js');
|
|
50
|
+
var langObjectivec = require('react-syntax-highlighter/dist/esm/languages/prism/objectivec.js');
|
|
51
|
+
var langPhp = require('react-syntax-highlighter/dist/esm/languages/prism/php.js');
|
|
52
|
+
var langRuby = require('react-syntax-highlighter/dist/esm/languages/prism/ruby.js');
|
|
53
|
+
var langSwift = require('react-syntax-highlighter/dist/esm/languages/prism/swift.js');
|
|
54
|
+
var langKotlin = require('react-syntax-highlighter/dist/esm/languages/prism/kotlin.js');
|
|
55
|
+
var langLua = require('react-syntax-highlighter/dist/esm/languages/prism/lua.js');
|
|
56
|
+
var langR = require('react-syntax-highlighter/dist/esm/languages/prism/r.js');
|
|
57
|
+
var langDart = require('react-syntax-highlighter/dist/esm/languages/prism/dart.js');
|
|
58
|
+
var langJulia = require('react-syntax-highlighter/dist/esm/languages/prism/julia.js');
|
|
59
|
+
var langFortran = require('react-syntax-highlighter/dist/esm/languages/prism/fortran.js');
|
|
60
|
+
var langPerl = require('react-syntax-highlighter/dist/esm/languages/prism/perl.js');
|
|
61
|
+
var langPowershell = require('react-syntax-highlighter/dist/esm/languages/prism/powershell.js');
|
|
62
|
+
var langMakefile = require('react-syntax-highlighter/dist/esm/languages/prism/makefile.js');
|
|
63
|
+
var langNginx = require('react-syntax-highlighter/dist/esm/languages/prism/nginx.js');
|
|
64
|
+
var langIni = require('react-syntax-highlighter/dist/esm/languages/prism/ini.js');
|
|
36
65
|
var ReactMarkdown = require('react-markdown');
|
|
37
66
|
var remarkGfm = require('remark-gfm');
|
|
38
67
|
var remarkMath = require('remark-math');
|
|
@@ -89,6 +118,35 @@ var langDiff__default = /*#__PURE__*/_interopDefault(langDiff);
|
|
|
89
118
|
var langToml__default = /*#__PURE__*/_interopDefault(langToml);
|
|
90
119
|
var langGo__default = /*#__PURE__*/_interopDefault(langGo);
|
|
91
120
|
var langGraphql__default = /*#__PURE__*/_interopDefault(langGraphql);
|
|
121
|
+
var langClojure__default = /*#__PURE__*/_interopDefault(langClojure);
|
|
122
|
+
var langHaskell__default = /*#__PURE__*/_interopDefault(langHaskell);
|
|
123
|
+
var langLisp__default = /*#__PURE__*/_interopDefault(langLisp);
|
|
124
|
+
var langScheme__default = /*#__PURE__*/_interopDefault(langScheme);
|
|
125
|
+
var langScala__default = /*#__PURE__*/_interopDefault(langScala);
|
|
126
|
+
var langElixir__default = /*#__PURE__*/_interopDefault(langElixir);
|
|
127
|
+
var langErlang__default = /*#__PURE__*/_interopDefault(langErlang);
|
|
128
|
+
var langElm__default = /*#__PURE__*/_interopDefault(langElm);
|
|
129
|
+
var langFsharp__default = /*#__PURE__*/_interopDefault(langFsharp);
|
|
130
|
+
var langOcaml__default = /*#__PURE__*/_interopDefault(langOcaml);
|
|
131
|
+
var langJava__default = /*#__PURE__*/_interopDefault(langJava);
|
|
132
|
+
var langC__default = /*#__PURE__*/_interopDefault(langC);
|
|
133
|
+
var langCpp__default = /*#__PURE__*/_interopDefault(langCpp);
|
|
134
|
+
var langCsharp__default = /*#__PURE__*/_interopDefault(langCsharp);
|
|
135
|
+
var langObjectivec__default = /*#__PURE__*/_interopDefault(langObjectivec);
|
|
136
|
+
var langPhp__default = /*#__PURE__*/_interopDefault(langPhp);
|
|
137
|
+
var langRuby__default = /*#__PURE__*/_interopDefault(langRuby);
|
|
138
|
+
var langSwift__default = /*#__PURE__*/_interopDefault(langSwift);
|
|
139
|
+
var langKotlin__default = /*#__PURE__*/_interopDefault(langKotlin);
|
|
140
|
+
var langLua__default = /*#__PURE__*/_interopDefault(langLua);
|
|
141
|
+
var langR__default = /*#__PURE__*/_interopDefault(langR);
|
|
142
|
+
var langDart__default = /*#__PURE__*/_interopDefault(langDart);
|
|
143
|
+
var langJulia__default = /*#__PURE__*/_interopDefault(langJulia);
|
|
144
|
+
var langFortran__default = /*#__PURE__*/_interopDefault(langFortran);
|
|
145
|
+
var langPerl__default = /*#__PURE__*/_interopDefault(langPerl);
|
|
146
|
+
var langPowershell__default = /*#__PURE__*/_interopDefault(langPowershell);
|
|
147
|
+
var langMakefile__default = /*#__PURE__*/_interopDefault(langMakefile);
|
|
148
|
+
var langNginx__default = /*#__PURE__*/_interopDefault(langNginx);
|
|
149
|
+
var langIni__default = /*#__PURE__*/_interopDefault(langIni);
|
|
92
150
|
var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
|
|
93
151
|
var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
|
|
94
152
|
var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
|
|
@@ -14099,6 +14157,19 @@ var init_EmptyState = __esm({
|
|
|
14099
14157
|
EmptyState.displayName = "EmptyState";
|
|
14100
14158
|
}
|
|
14101
14159
|
});
|
|
14160
|
+
function isLanguageRegistered(lang) {
|
|
14161
|
+
return CODE_LANGUAGE_SET.has(lang) || dynamicallyLoaded.has(lang);
|
|
14162
|
+
}
|
|
14163
|
+
async function loadPrismLanguage(lang) {
|
|
14164
|
+
if (isLanguageRegistered(lang)) return;
|
|
14165
|
+
try {
|
|
14166
|
+
const grammar = codeLanguageLoader ? await codeLanguageLoader(lang) : null;
|
|
14167
|
+
if (grammar) SyntaxHighlighter__default.default.registerLanguage(lang, grammar);
|
|
14168
|
+
dynamicallyLoaded.add(lang);
|
|
14169
|
+
} catch {
|
|
14170
|
+
dynamicallyLoaded.add(lang);
|
|
14171
|
+
}
|
|
14172
|
+
}
|
|
14102
14173
|
function computeFoldRegions(code) {
|
|
14103
14174
|
const lines = code.split("\n");
|
|
14104
14175
|
const regions = [];
|
|
@@ -14134,7 +14205,8 @@ function computeFoldRegions(code) {
|
|
|
14134
14205
|
return regions.sort((a, b) => a.start - b.start);
|
|
14135
14206
|
}
|
|
14136
14207
|
function toCodeLanguage(value) {
|
|
14137
|
-
|
|
14208
|
+
if (!value) return "text";
|
|
14209
|
+
return value.toLowerCase();
|
|
14138
14210
|
}
|
|
14139
14211
|
function generateDiff(oldVal, newVal) {
|
|
14140
14212
|
const oldLines = oldVal.split("\n");
|
|
@@ -14153,7 +14225,24 @@ function generateDiff(oldVal, newVal) {
|
|
|
14153
14225
|
}
|
|
14154
14226
|
return diff;
|
|
14155
14227
|
}
|
|
14156
|
-
|
|
14228
|
+
function useLanguageReady(language) {
|
|
14229
|
+
const [ready, setReady] = React82.useState(() => isLanguageRegistered(language));
|
|
14230
|
+
React82.useEffect(() => {
|
|
14231
|
+
if (isLanguageRegistered(language)) {
|
|
14232
|
+
if (!ready) setReady(true);
|
|
14233
|
+
return;
|
|
14234
|
+
}
|
|
14235
|
+
let active = true;
|
|
14236
|
+
loadPrismLanguage(language).then(() => {
|
|
14237
|
+
if (active) setReady(true);
|
|
14238
|
+
});
|
|
14239
|
+
return () => {
|
|
14240
|
+
active = false;
|
|
14241
|
+
};
|
|
14242
|
+
}, [language]);
|
|
14243
|
+
return ready;
|
|
14244
|
+
}
|
|
14245
|
+
var dynamicallyLoaded, codeLanguageLoader, orbStyleOverrides, orbStyle, loloStyleOverrides, loloStyle, log6, CODE_LANGUAGES, CODE_LANGUAGE_SET, DIFF_STYLES, DIFF_STYLE_FALLBACK, LINE_PROPS_FN, HIDDEN_LINE_NUMBERS, CodeBlock;
|
|
14157
14246
|
var init_CodeBlock = __esm({
|
|
14158
14247
|
"components/core/molecules/markdown/CodeBlock.tsx"() {
|
|
14159
14248
|
init_cn();
|
|
@@ -14192,8 +14281,62 @@ var init_CodeBlock = __esm({
|
|
|
14192
14281
|
SyntaxHighlighter__default.default.registerLanguage("toml", langToml__default.default);
|
|
14193
14282
|
SyntaxHighlighter__default.default.registerLanguage("go", langGo__default.default);
|
|
14194
14283
|
SyntaxHighlighter__default.default.registerLanguage("graphql", langGraphql__default.default);
|
|
14284
|
+
SyntaxHighlighter__default.default.registerLanguage("clojure", langClojure__default.default);
|
|
14285
|
+
SyntaxHighlighter__default.default.registerLanguage("clj", langClojure__default.default);
|
|
14286
|
+
SyntaxHighlighter__default.default.registerLanguage("edn", langClojure__default.default);
|
|
14287
|
+
SyntaxHighlighter__default.default.registerLanguage("haskell", langHaskell__default.default);
|
|
14288
|
+
SyntaxHighlighter__default.default.registerLanguage("hs", langHaskell__default.default);
|
|
14289
|
+
SyntaxHighlighter__default.default.registerLanguage("lisp", langLisp__default.default);
|
|
14290
|
+
SyntaxHighlighter__default.default.registerLanguage("scheme", langScheme__default.default);
|
|
14291
|
+
SyntaxHighlighter__default.default.registerLanguage("scala", langScala__default.default);
|
|
14292
|
+
SyntaxHighlighter__default.default.registerLanguage("elixir", langElixir__default.default);
|
|
14293
|
+
SyntaxHighlighter__default.default.registerLanguage("ex", langElixir__default.default);
|
|
14294
|
+
SyntaxHighlighter__default.default.registerLanguage("exs", langElixir__default.default);
|
|
14295
|
+
SyntaxHighlighter__default.default.registerLanguage("erlang", langErlang__default.default);
|
|
14296
|
+
SyntaxHighlighter__default.default.registerLanguage("erl", langErlang__default.default);
|
|
14297
|
+
SyntaxHighlighter__default.default.registerLanguage("elm", langElm__default.default);
|
|
14298
|
+
SyntaxHighlighter__default.default.registerLanguage("fsharp", langFsharp__default.default);
|
|
14299
|
+
SyntaxHighlighter__default.default.registerLanguage("fs", langFsharp__default.default);
|
|
14300
|
+
SyntaxHighlighter__default.default.registerLanguage("fsx", langFsharp__default.default);
|
|
14301
|
+
SyntaxHighlighter__default.default.registerLanguage("ocaml", langOcaml__default.default);
|
|
14302
|
+
SyntaxHighlighter__default.default.registerLanguage("ml", langOcaml__default.default);
|
|
14303
|
+
SyntaxHighlighter__default.default.registerLanguage("java", langJava__default.default);
|
|
14304
|
+
SyntaxHighlighter__default.default.registerLanguage("c", langC__default.default);
|
|
14305
|
+
SyntaxHighlighter__default.default.registerLanguage("cpp", langCpp__default.default);
|
|
14306
|
+
SyntaxHighlighter__default.default.registerLanguage("c++", langCpp__default.default);
|
|
14307
|
+
SyntaxHighlighter__default.default.registerLanguage("cc", langCpp__default.default);
|
|
14308
|
+
SyntaxHighlighter__default.default.registerLanguage("cxx", langCpp__default.default);
|
|
14309
|
+
SyntaxHighlighter__default.default.registerLanguage("hpp", langCpp__default.default);
|
|
14310
|
+
SyntaxHighlighter__default.default.registerLanguage("h", langCpp__default.default);
|
|
14311
|
+
SyntaxHighlighter__default.default.registerLanguage("csharp", langCsharp__default.default);
|
|
14312
|
+
SyntaxHighlighter__default.default.registerLanguage("cs", langCsharp__default.default);
|
|
14313
|
+
SyntaxHighlighter__default.default.registerLanguage("objectivec", langObjectivec__default.default);
|
|
14314
|
+
SyntaxHighlighter__default.default.registerLanguage("objc", langObjectivec__default.default);
|
|
14315
|
+
SyntaxHighlighter__default.default.registerLanguage("php", langPhp__default.default);
|
|
14316
|
+
SyntaxHighlighter__default.default.registerLanguage("ruby", langRuby__default.default);
|
|
14317
|
+
SyntaxHighlighter__default.default.registerLanguage("rb", langRuby__default.default);
|
|
14318
|
+
SyntaxHighlighter__default.default.registerLanguage("swift", langSwift__default.default);
|
|
14319
|
+
SyntaxHighlighter__default.default.registerLanguage("kotlin", langKotlin__default.default);
|
|
14320
|
+
SyntaxHighlighter__default.default.registerLanguage("kt", langKotlin__default.default);
|
|
14321
|
+
SyntaxHighlighter__default.default.registerLanguage("lua", langLua__default.default);
|
|
14322
|
+
SyntaxHighlighter__default.default.registerLanguage("r", langR__default.default);
|
|
14323
|
+
SyntaxHighlighter__default.default.registerLanguage("dart", langDart__default.default);
|
|
14324
|
+
SyntaxHighlighter__default.default.registerLanguage("julia", langJulia__default.default);
|
|
14325
|
+
SyntaxHighlighter__default.default.registerLanguage("fortran", langFortran__default.default);
|
|
14326
|
+
SyntaxHighlighter__default.default.registerLanguage("f90", langFortran__default.default);
|
|
14327
|
+
SyntaxHighlighter__default.default.registerLanguage("f95", langFortran__default.default);
|
|
14328
|
+
SyntaxHighlighter__default.default.registerLanguage("perl", langPerl__default.default);
|
|
14329
|
+
SyntaxHighlighter__default.default.registerLanguage("pl", langPerl__default.default);
|
|
14330
|
+
SyntaxHighlighter__default.default.registerLanguage("powershell", langPowershell__default.default);
|
|
14331
|
+
SyntaxHighlighter__default.default.registerLanguage("ps1", langPowershell__default.default);
|
|
14332
|
+
SyntaxHighlighter__default.default.registerLanguage("makefile", langMakefile__default.default);
|
|
14333
|
+
SyntaxHighlighter__default.default.registerLanguage("make", langMakefile__default.default);
|
|
14334
|
+
SyntaxHighlighter__default.default.registerLanguage("nginx", langNginx__default.default);
|
|
14335
|
+
SyntaxHighlighter__default.default.registerLanguage("ini", langIni__default.default);
|
|
14195
14336
|
SyntaxHighlighter__default.default.registerLanguage("orb", syntax.orbLanguage);
|
|
14196
14337
|
SyntaxHighlighter__default.default.registerLanguage("lolo", syntax.loloLanguage);
|
|
14338
|
+
dynamicallyLoaded = /* @__PURE__ */ new Set();
|
|
14339
|
+
codeLanguageLoader = null;
|
|
14197
14340
|
orbStyleOverrides = {
|
|
14198
14341
|
"orb-binding": { color: syntax.ORB_COLORS.dark.binding, fontWeight: "bold" },
|
|
14199
14342
|
"orb-effect": { color: syntax.ORB_COLORS.dark.effect, fontWeight: "bold" },
|
|
@@ -14264,6 +14407,58 @@ var init_CodeBlock = __esm({
|
|
|
14264
14407
|
"graphql",
|
|
14265
14408
|
"html",
|
|
14266
14409
|
"xml",
|
|
14410
|
+
"clojure",
|
|
14411
|
+
"clj",
|
|
14412
|
+
"edn",
|
|
14413
|
+
"haskell",
|
|
14414
|
+
"hs",
|
|
14415
|
+
"lisp",
|
|
14416
|
+
"scheme",
|
|
14417
|
+
"scala",
|
|
14418
|
+
"elixir",
|
|
14419
|
+
"ex",
|
|
14420
|
+
"exs",
|
|
14421
|
+
"erlang",
|
|
14422
|
+
"erl",
|
|
14423
|
+
"elm",
|
|
14424
|
+
"fsharp",
|
|
14425
|
+
"fs",
|
|
14426
|
+
"fsx",
|
|
14427
|
+
"ocaml",
|
|
14428
|
+
"ml",
|
|
14429
|
+
"java",
|
|
14430
|
+
"c",
|
|
14431
|
+
"cpp",
|
|
14432
|
+
"c++",
|
|
14433
|
+
"cc",
|
|
14434
|
+
"cxx",
|
|
14435
|
+
"hpp",
|
|
14436
|
+
"h",
|
|
14437
|
+
"csharp",
|
|
14438
|
+
"cs",
|
|
14439
|
+
"objectivec",
|
|
14440
|
+
"objc",
|
|
14441
|
+
"php",
|
|
14442
|
+
"ruby",
|
|
14443
|
+
"rb",
|
|
14444
|
+
"swift",
|
|
14445
|
+
"kotlin",
|
|
14446
|
+
"kt",
|
|
14447
|
+
"lua",
|
|
14448
|
+
"r",
|
|
14449
|
+
"dart",
|
|
14450
|
+
"julia",
|
|
14451
|
+
"fortran",
|
|
14452
|
+
"f90",
|
|
14453
|
+
"f95",
|
|
14454
|
+
"perl",
|
|
14455
|
+
"pl",
|
|
14456
|
+
"powershell",
|
|
14457
|
+
"ps1",
|
|
14458
|
+
"makefile",
|
|
14459
|
+
"make",
|
|
14460
|
+
"nginx",
|
|
14461
|
+
"ini",
|
|
14267
14462
|
"orb",
|
|
14268
14463
|
"lolo"
|
|
14269
14464
|
];
|
|
@@ -14309,6 +14504,7 @@ var init_CodeBlock = __esm({
|
|
|
14309
14504
|
const isOrb = language === "orb";
|
|
14310
14505
|
const isLolo = language === "lolo";
|
|
14311
14506
|
const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark__default.default;
|
|
14507
|
+
const languageReady = useLanguageReady(language);
|
|
14312
14508
|
const eventBus = useEventBus();
|
|
14313
14509
|
const { t } = hooks.useTranslate();
|
|
14314
14510
|
const scrollRef = React82.useRef(null);
|
|
@@ -14432,7 +14628,7 @@ var init_CodeBlock = __esm({
|
|
|
14432
14628
|
children: code
|
|
14433
14629
|
}
|
|
14434
14630
|
),
|
|
14435
|
-
[code, language, activeStyle]
|
|
14631
|
+
[code, language, activeStyle, languageReady]
|
|
14436
14632
|
);
|
|
14437
14633
|
React82.useLayoutEffect(() => {
|
|
14438
14634
|
const container = codeRef.current;
|
|
@@ -15032,10 +15228,10 @@ var init_MarkdownContent = __esm({
|
|
|
15032
15228
|
}
|
|
15033
15229
|
});
|
|
15034
15230
|
|
|
15035
|
-
//
|
|
15231
|
+
// lib/lessonSegmentUtils.ts
|
|
15036
15232
|
function parseMarkdownWithCodeBlocks(content) {
|
|
15037
15233
|
const segments = [];
|
|
15038
|
-
const codeBlockRegex = /```([\
|
|
15234
|
+
const codeBlockRegex = /```([^\n\r]*)\r?\n([\s\S]*?)```/g;
|
|
15039
15235
|
let lastIndex = 0;
|
|
15040
15236
|
let match;
|
|
15041
15237
|
while ((match = codeBlockRegex.exec(content)) !== null) {
|
|
@@ -15043,12 +15239,12 @@ function parseMarkdownWithCodeBlocks(content) {
|
|
|
15043
15239
|
if (before.trim()) {
|
|
15044
15240
|
segments.push({ type: "markdown", content: before });
|
|
15045
15241
|
}
|
|
15046
|
-
const
|
|
15047
|
-
|
|
15242
|
+
const tokens = match[1].trim().split(/\s+/).filter(Boolean);
|
|
15243
|
+
let rawLanguage = tokens[0] ?? "text";
|
|
15048
15244
|
const suffixRunnable = rawLanguage.endsWith("-runnable");
|
|
15049
|
-
const runnable =
|
|
15245
|
+
const runnable = suffixRunnable || tokens.includes("run");
|
|
15050
15246
|
const baseLanguage = suffixRunnable ? rawLanguage.slice(0, -"-runnable".length) || "text" : rawLanguage;
|
|
15051
|
-
segments.push({ type: "code", language: baseLanguage, content: match[
|
|
15247
|
+
segments.push({ type: "code", language: baseLanguage, content: match[2].trim(), runnable });
|
|
15052
15248
|
lastIndex = codeBlockRegex.lastIndex;
|
|
15053
15249
|
}
|
|
15054
15250
|
const remaining = content.slice(lastIndex);
|
|
@@ -15058,7 +15254,7 @@ function parseMarkdownWithCodeBlocks(content) {
|
|
|
15058
15254
|
return segments;
|
|
15059
15255
|
}
|
|
15060
15256
|
var init_lessonSegmentUtils = __esm({
|
|
15061
|
-
"
|
|
15257
|
+
"lib/lessonSegmentUtils.ts"() {
|
|
15062
15258
|
}
|
|
15063
15259
|
});
|
|
15064
15260
|
var BLOOM_CONFIG, BloomQuizBlock;
|