@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.
@@ -35,6 +35,35 @@ import langDiff from 'react-syntax-highlighter/dist/esm/languages/prism/diff.js'
35
35
  import langToml from 'react-syntax-highlighter/dist/esm/languages/prism/toml.js';
36
36
  import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go.js';
37
37
  import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql.js';
38
+ import langClojure from 'react-syntax-highlighter/dist/esm/languages/prism/clojure.js';
39
+ import langHaskell from 'react-syntax-highlighter/dist/esm/languages/prism/haskell.js';
40
+ import langLisp from 'react-syntax-highlighter/dist/esm/languages/prism/lisp.js';
41
+ import langScheme from 'react-syntax-highlighter/dist/esm/languages/prism/scheme.js';
42
+ import langScala from 'react-syntax-highlighter/dist/esm/languages/prism/scala.js';
43
+ import langElixir from 'react-syntax-highlighter/dist/esm/languages/prism/elixir.js';
44
+ import langErlang from 'react-syntax-highlighter/dist/esm/languages/prism/erlang.js';
45
+ import langElm from 'react-syntax-highlighter/dist/esm/languages/prism/elm.js';
46
+ import langFsharp from 'react-syntax-highlighter/dist/esm/languages/prism/fsharp.js';
47
+ import langOcaml from 'react-syntax-highlighter/dist/esm/languages/prism/ocaml.js';
48
+ import langJava from 'react-syntax-highlighter/dist/esm/languages/prism/java.js';
49
+ import langC from 'react-syntax-highlighter/dist/esm/languages/prism/c.js';
50
+ import langCpp from 'react-syntax-highlighter/dist/esm/languages/prism/cpp.js';
51
+ import langCsharp from 'react-syntax-highlighter/dist/esm/languages/prism/csharp.js';
52
+ import langObjectivec from 'react-syntax-highlighter/dist/esm/languages/prism/objectivec.js';
53
+ import langPhp from 'react-syntax-highlighter/dist/esm/languages/prism/php.js';
54
+ import langRuby from 'react-syntax-highlighter/dist/esm/languages/prism/ruby.js';
55
+ import langSwift from 'react-syntax-highlighter/dist/esm/languages/prism/swift.js';
56
+ import langKotlin from 'react-syntax-highlighter/dist/esm/languages/prism/kotlin.js';
57
+ import langLua from 'react-syntax-highlighter/dist/esm/languages/prism/lua.js';
58
+ import langR from 'react-syntax-highlighter/dist/esm/languages/prism/r.js';
59
+ import langDart from 'react-syntax-highlighter/dist/esm/languages/prism/dart.js';
60
+ import langJulia from 'react-syntax-highlighter/dist/esm/languages/prism/julia.js';
61
+ import langFortran from 'react-syntax-highlighter/dist/esm/languages/prism/fortran.js';
62
+ import langPerl from 'react-syntax-highlighter/dist/esm/languages/prism/perl.js';
63
+ import langPowershell from 'react-syntax-highlighter/dist/esm/languages/prism/powershell.js';
64
+ import langMakefile from 'react-syntax-highlighter/dist/esm/languages/prism/makefile.js';
65
+ import langNginx from 'react-syntax-highlighter/dist/esm/languages/prism/nginx.js';
66
+ import langIni from 'react-syntax-highlighter/dist/esm/languages/prism/ini.js';
38
67
  import ReactMarkdown from 'react-markdown';
39
68
  import remarkGfm from 'remark-gfm';
40
69
  import remarkMath from 'remark-math';
@@ -14055,6 +14084,19 @@ var init_EmptyState = __esm({
14055
14084
  EmptyState.displayName = "EmptyState";
14056
14085
  }
14057
14086
  });
14087
+ function isLanguageRegistered(lang) {
14088
+ return CODE_LANGUAGE_SET.has(lang) || dynamicallyLoaded.has(lang);
14089
+ }
14090
+ async function loadPrismLanguage(lang) {
14091
+ if (isLanguageRegistered(lang)) return;
14092
+ try {
14093
+ const grammar = codeLanguageLoader ? await codeLanguageLoader(lang) : null;
14094
+ if (grammar) SyntaxHighlighter.registerLanguage(lang, grammar);
14095
+ dynamicallyLoaded.add(lang);
14096
+ } catch {
14097
+ dynamicallyLoaded.add(lang);
14098
+ }
14099
+ }
14058
14100
  function computeFoldRegions(code) {
14059
14101
  const lines = code.split("\n");
14060
14102
  const regions = [];
@@ -14090,7 +14132,8 @@ function computeFoldRegions(code) {
14090
14132
  return regions.sort((a, b) => a.start - b.start);
14091
14133
  }
14092
14134
  function toCodeLanguage(value) {
14093
- return value && CODE_LANGUAGE_SET.has(value) ? value : "text";
14135
+ if (!value) return "text";
14136
+ return value.toLowerCase();
14094
14137
  }
14095
14138
  function generateDiff(oldVal, newVal) {
14096
14139
  const oldLines = oldVal.split("\n");
@@ -14109,7 +14152,24 @@ function generateDiff(oldVal, newVal) {
14109
14152
  }
14110
14153
  return diff;
14111
14154
  }
14112
- var orbStyleOverrides, orbStyle, loloStyleOverrides, loloStyle, log6, CODE_LANGUAGES, CODE_LANGUAGE_SET, DIFF_STYLES, DIFF_STYLE_FALLBACK, LINE_PROPS_FN, HIDDEN_LINE_NUMBERS, CodeBlock;
14155
+ function useLanguageReady(language) {
14156
+ const [ready, setReady] = useState(() => isLanguageRegistered(language));
14157
+ useEffect(() => {
14158
+ if (isLanguageRegistered(language)) {
14159
+ if (!ready) setReady(true);
14160
+ return;
14161
+ }
14162
+ let active = true;
14163
+ loadPrismLanguage(language).then(() => {
14164
+ if (active) setReady(true);
14165
+ });
14166
+ return () => {
14167
+ active = false;
14168
+ };
14169
+ }, [language]);
14170
+ return ready;
14171
+ }
14172
+ 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;
14113
14173
  var init_CodeBlock = __esm({
14114
14174
  "components/core/molecules/markdown/CodeBlock.tsx"() {
14115
14175
  init_cn();
@@ -14148,8 +14208,62 @@ var init_CodeBlock = __esm({
14148
14208
  SyntaxHighlighter.registerLanguage("toml", langToml);
14149
14209
  SyntaxHighlighter.registerLanguage("go", langGo);
14150
14210
  SyntaxHighlighter.registerLanguage("graphql", langGraphql);
14211
+ SyntaxHighlighter.registerLanguage("clojure", langClojure);
14212
+ SyntaxHighlighter.registerLanguage("clj", langClojure);
14213
+ SyntaxHighlighter.registerLanguage("edn", langClojure);
14214
+ SyntaxHighlighter.registerLanguage("haskell", langHaskell);
14215
+ SyntaxHighlighter.registerLanguage("hs", langHaskell);
14216
+ SyntaxHighlighter.registerLanguage("lisp", langLisp);
14217
+ SyntaxHighlighter.registerLanguage("scheme", langScheme);
14218
+ SyntaxHighlighter.registerLanguage("scala", langScala);
14219
+ SyntaxHighlighter.registerLanguage("elixir", langElixir);
14220
+ SyntaxHighlighter.registerLanguage("ex", langElixir);
14221
+ SyntaxHighlighter.registerLanguage("exs", langElixir);
14222
+ SyntaxHighlighter.registerLanguage("erlang", langErlang);
14223
+ SyntaxHighlighter.registerLanguage("erl", langErlang);
14224
+ SyntaxHighlighter.registerLanguage("elm", langElm);
14225
+ SyntaxHighlighter.registerLanguage("fsharp", langFsharp);
14226
+ SyntaxHighlighter.registerLanguage("fs", langFsharp);
14227
+ SyntaxHighlighter.registerLanguage("fsx", langFsharp);
14228
+ SyntaxHighlighter.registerLanguage("ocaml", langOcaml);
14229
+ SyntaxHighlighter.registerLanguage("ml", langOcaml);
14230
+ SyntaxHighlighter.registerLanguage("java", langJava);
14231
+ SyntaxHighlighter.registerLanguage("c", langC);
14232
+ SyntaxHighlighter.registerLanguage("cpp", langCpp);
14233
+ SyntaxHighlighter.registerLanguage("c++", langCpp);
14234
+ SyntaxHighlighter.registerLanguage("cc", langCpp);
14235
+ SyntaxHighlighter.registerLanguage("cxx", langCpp);
14236
+ SyntaxHighlighter.registerLanguage("hpp", langCpp);
14237
+ SyntaxHighlighter.registerLanguage("h", langCpp);
14238
+ SyntaxHighlighter.registerLanguage("csharp", langCsharp);
14239
+ SyntaxHighlighter.registerLanguage("cs", langCsharp);
14240
+ SyntaxHighlighter.registerLanguage("objectivec", langObjectivec);
14241
+ SyntaxHighlighter.registerLanguage("objc", langObjectivec);
14242
+ SyntaxHighlighter.registerLanguage("php", langPhp);
14243
+ SyntaxHighlighter.registerLanguage("ruby", langRuby);
14244
+ SyntaxHighlighter.registerLanguage("rb", langRuby);
14245
+ SyntaxHighlighter.registerLanguage("swift", langSwift);
14246
+ SyntaxHighlighter.registerLanguage("kotlin", langKotlin);
14247
+ SyntaxHighlighter.registerLanguage("kt", langKotlin);
14248
+ SyntaxHighlighter.registerLanguage("lua", langLua);
14249
+ SyntaxHighlighter.registerLanguage("r", langR);
14250
+ SyntaxHighlighter.registerLanguage("dart", langDart);
14251
+ SyntaxHighlighter.registerLanguage("julia", langJulia);
14252
+ SyntaxHighlighter.registerLanguage("fortran", langFortran);
14253
+ SyntaxHighlighter.registerLanguage("f90", langFortran);
14254
+ SyntaxHighlighter.registerLanguage("f95", langFortran);
14255
+ SyntaxHighlighter.registerLanguage("perl", langPerl);
14256
+ SyntaxHighlighter.registerLanguage("pl", langPerl);
14257
+ SyntaxHighlighter.registerLanguage("powershell", langPowershell);
14258
+ SyntaxHighlighter.registerLanguage("ps1", langPowershell);
14259
+ SyntaxHighlighter.registerLanguage("makefile", langMakefile);
14260
+ SyntaxHighlighter.registerLanguage("make", langMakefile);
14261
+ SyntaxHighlighter.registerLanguage("nginx", langNginx);
14262
+ SyntaxHighlighter.registerLanguage("ini", langIni);
14151
14263
  SyntaxHighlighter.registerLanguage("orb", orbLanguage);
14152
14264
  SyntaxHighlighter.registerLanguage("lolo", loloLanguage);
14265
+ dynamicallyLoaded = /* @__PURE__ */ new Set();
14266
+ codeLanguageLoader = null;
14153
14267
  orbStyleOverrides = {
14154
14268
  "orb-binding": { color: ORB_COLORS.dark.binding, fontWeight: "bold" },
14155
14269
  "orb-effect": { color: ORB_COLORS.dark.effect, fontWeight: "bold" },
@@ -14220,6 +14334,58 @@ var init_CodeBlock = __esm({
14220
14334
  "graphql",
14221
14335
  "html",
14222
14336
  "xml",
14337
+ "clojure",
14338
+ "clj",
14339
+ "edn",
14340
+ "haskell",
14341
+ "hs",
14342
+ "lisp",
14343
+ "scheme",
14344
+ "scala",
14345
+ "elixir",
14346
+ "ex",
14347
+ "exs",
14348
+ "erlang",
14349
+ "erl",
14350
+ "elm",
14351
+ "fsharp",
14352
+ "fs",
14353
+ "fsx",
14354
+ "ocaml",
14355
+ "ml",
14356
+ "java",
14357
+ "c",
14358
+ "cpp",
14359
+ "c++",
14360
+ "cc",
14361
+ "cxx",
14362
+ "hpp",
14363
+ "h",
14364
+ "csharp",
14365
+ "cs",
14366
+ "objectivec",
14367
+ "objc",
14368
+ "php",
14369
+ "ruby",
14370
+ "rb",
14371
+ "swift",
14372
+ "kotlin",
14373
+ "kt",
14374
+ "lua",
14375
+ "r",
14376
+ "dart",
14377
+ "julia",
14378
+ "fortran",
14379
+ "f90",
14380
+ "f95",
14381
+ "perl",
14382
+ "pl",
14383
+ "powershell",
14384
+ "ps1",
14385
+ "makefile",
14386
+ "make",
14387
+ "nginx",
14388
+ "ini",
14223
14389
  "orb",
14224
14390
  "lolo"
14225
14391
  ];
@@ -14265,6 +14431,7 @@ var init_CodeBlock = __esm({
14265
14431
  const isOrb = language === "orb";
14266
14432
  const isLolo = language === "lolo";
14267
14433
  const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark;
14434
+ const languageReady = useLanguageReady(language);
14268
14435
  const eventBus = useEventBus();
14269
14436
  const { t } = useTranslate();
14270
14437
  const scrollRef = useRef(null);
@@ -14388,7 +14555,7 @@ var init_CodeBlock = __esm({
14388
14555
  children: code
14389
14556
  }
14390
14557
  ),
14391
- [code, language, activeStyle]
14558
+ [code, language, activeStyle, languageReady]
14392
14559
  );
14393
14560
  useLayoutEffect(() => {
14394
14561
  const container = codeRef.current;
@@ -14988,10 +15155,10 @@ var init_MarkdownContent = __esm({
14988
15155
  }
14989
15156
  });
14990
15157
 
14991
- // components/core/molecules/lessonSegmentUtils.ts
15158
+ // lib/lessonSegmentUtils.ts
14992
15159
  function parseMarkdownWithCodeBlocks(content) {
14993
15160
  const segments = [];
14994
- const codeBlockRegex = /```([\w-]+)?(?:\s+(run))?\n([\s\S]*?)```/g;
15161
+ const codeBlockRegex = /```([^\n\r]*)\r?\n([\s\S]*?)```/g;
14995
15162
  let lastIndex = 0;
14996
15163
  let match;
14997
15164
  while ((match = codeBlockRegex.exec(content)) !== null) {
@@ -14999,12 +15166,12 @@ function parseMarkdownWithCodeBlocks(content) {
14999
15166
  if (before.trim()) {
15000
15167
  segments.push({ type: "markdown", content: before });
15001
15168
  }
15002
- const rawLanguage = match[1] ?? "text";
15003
- const runModifier = !!match[2];
15169
+ const tokens = match[1].trim().split(/\s+/).filter(Boolean);
15170
+ let rawLanguage = tokens[0] ?? "text";
15004
15171
  const suffixRunnable = rawLanguage.endsWith("-runnable");
15005
- const runnable = runModifier || suffixRunnable;
15172
+ const runnable = suffixRunnable || tokens.includes("run");
15006
15173
  const baseLanguage = suffixRunnable ? rawLanguage.slice(0, -"-runnable".length) || "text" : rawLanguage;
15007
- segments.push({ type: "code", language: baseLanguage, content: match[3].trim(), runnable });
15174
+ segments.push({ type: "code", language: baseLanguage, content: match[2].trim(), runnable });
15008
15175
  lastIndex = codeBlockRegex.lastIndex;
15009
15176
  }
15010
15177
  const remaining = content.slice(lastIndex);
@@ -15014,7 +15181,7 @@ function parseMarkdownWithCodeBlocks(content) {
15014
15181
  return segments;
15015
15182
  }
15016
15183
  var init_lessonSegmentUtils = __esm({
15017
- "components/core/molecules/lessonSegmentUtils.ts"() {
15184
+ "lib/lessonSegmentUtils.ts"() {
15018
15185
  }
15019
15186
  });
15020
15187
  var BLOOM_CONFIG, BloomQuizBlock;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "5.122.11",
3
+ "version": "5.122.13",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [