@windrun-huaiin/third-ui 14.3.0 → 14.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/fuma/fuma-page-genarator.js +3 -4
  2. package/dist/fuma/fuma-page-genarator.mjs +3 -4
  3. package/dist/fuma/mdx/index.d.ts +1 -0
  4. package/dist/fuma/mdx/index.js +5 -0
  5. package/dist/fuma/mdx/index.mjs +1 -0
  6. package/dist/fuma/mdx/toc-clerk-portable.d.ts +19 -0
  7. package/dist/fuma/mdx/toc-clerk-portable.js +328 -0
  8. package/dist/fuma/mdx/toc-clerk-portable.mjs +304 -0
  9. package/dist/main/delayed-img.js +1 -1
  10. package/dist/main/delayed-img.mjs +1 -1
  11. package/dist/main/gallery/gallery-mobile-swiper.js +2 -2
  12. package/dist/main/gallery/gallery-mobile-swiper.mjs +2 -2
  13. package/dist/main/index.js +1 -0
  14. package/dist/main/index.mjs +1 -1
  15. package/dist/main/loading.d.ts +1 -0
  16. package/dist/main/loading.js +7 -0
  17. package/dist/main/loading.mjs +7 -1
  18. package/dist/main/snake-loading-frame.js +3 -3
  19. package/dist/main/snake-loading-frame.mjs +3 -3
  20. package/dist/node_modules/.pnpm/{katex@0.16.38 → katex@0.16.43}/node_modules/katex/dist/katex.js +50 -16
  21. package/dist/node_modules/.pnpm/{katex@0.16.38 → katex@0.16.43}/node_modules/katex/dist/katex.mjs +50 -16
  22. package/dist/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.js +1 -1
  23. package/dist/node_modules/.pnpm/mermaid@11.12.1/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.mjs +1 -1
  24. package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/swiper-core.js +2 -1
  25. package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/swiper-core.mjs +2 -1
  26. package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/swiper-react.js +2 -2
  27. package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/swiper-react.mjs +2 -2
  28. package/package.json +1 -1
  29. package/src/fuma/fuma-page-genarator.tsx +11 -5
  30. package/src/fuma/mdx/index.ts +1 -0
  31. package/src/fuma/mdx/toc-clerk-portable.tsx +623 -0
  32. package/src/main/delayed-img.tsx +0 -1
  33. package/src/main/loading.tsx +8 -0
  34. package/src/main/snake-loading-frame.tsx +3 -3
  35. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/utils/use-animation-frame.js +0 -24
  36. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs +0 -22
  37. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-combine-values.js +0 -40
  38. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-combine-values.mjs +0 -38
  39. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-computed.js +0 -22
  40. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-computed.mjs +0 -20
  41. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-motion-value.js +0 -41
  42. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-motion-value.mjs +0 -39
  43. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-transform.js +0 -50
  44. package/dist/node_modules/.pnpm/framer-motion@12.38.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/framer-motion/dist/es/value/use-transform.mjs +0 -48
  45. package/dist/node_modules/.pnpm/motion-dom@12.38.0/node_modules/motion-dom/dist/es/utils/transform.js +0 -16
  46. package/dist/node_modules/.pnpm/motion-dom@12.38.0/node_modules/motion-dom/dist/es/utils/transform.mjs +0 -14
  47. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/modules/pagination.js +0 -0
  48. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/modules/pagination.mjs +0 -0
  49. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/classes-to-selector.js +0 -0
  50. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/classes-to-selector.mjs +0 -0
  51. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/create-element-if-not-defined.js +0 -0
  52. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/create-element-if-not-defined.mjs +0 -0
  53. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/ssr-window.esm.js +0 -0
  54. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/ssr-window.esm.mjs +0 -0
  55. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/update-on-virtual-data.js +0 -0
  56. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/update-on-virtual-data.mjs +0 -0
  57. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/update-swiper.js +0 -0
  58. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/update-swiper.mjs +0 -0
  59. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/utils.js +0 -0
  60. /package/dist/node_modules/.pnpm/{swiper@12.1.2 → swiper@12.1.3}/node_modules/swiper/shared/utils.mjs +0 -0
@@ -669,6 +669,8 @@ var path = {
669
669
  // hook is from glyph U+21A9 in font KaTeX Main
670
670
  lefthook: "M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",
671
671
  leftlinesegment: "M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",
672
+ leftbracketunder: "M0 0 h120 V290 H399995 v120 H0z\nM0 0 h120 V290 H399995 v120 H0z",
673
+ leftbracketover: "M0 440 h120 V150 H399995 v-120 H0z\nM0 440 h120 V150 H399995 v-120 H0z",
672
674
  leftmapsto: "M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",
673
675
  // tofrom is from glyph U+21C4 in font KaTeX AMS Regular
674
676
  leftToFrom: "M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",
@@ -690,6 +692,8 @@ var path = {
690
692
  rightharpoondownplus: "M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",
691
693
  righthook: "M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",
692
694
  rightlinesegment: "M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",
695
+ rightbracketunder: "M399995 0 h-120 V290 H0 v120 H400000z\nM399995 0 h-120 V290 H0 v120 H400000z",
696
+ rightbracketover: "M399995 440 h-120 V150 H0 v-120 H399995z\nM399995 440 h-120 V150 H0 v-120 H399995z",
693
697
  rightToFrom: "M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",
694
698
  // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular
695
699
  twoheadleftarrow: "M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",
@@ -1185,7 +1189,7 @@ class SymbolNode {
1185
1189
  }
1186
1190
  var styles = "";
1187
1191
  if (this.italic > 0) {
1188
- styles += "margin-right:" + this.italic + "em;";
1192
+ styles += "margin-right:" + makeEm(this.italic) + ";";
1189
1193
  }
1190
1194
  for (var key of Object.keys(this.style)) {
1191
1195
  styles += hyphenate(key) + ":" + this.style[key] + ";";
@@ -3748,6 +3752,10 @@ defineSymbol(math, main, rel, "\u220b", "\\owns");
3748
3752
  // Punctuation
3749
3753
  defineSymbol(math, main, punct, "\u002e", "\\ldotp");
3750
3754
  defineSymbol(math, main, punct, "\u22c5", "\\cdotp");
3755
+ // The KaTeX fonts do not contain U+00B7. Use the centered dot glyph at U+22C5
3756
+ // in both modes, but keep math-mode punctuation spacing only in math mode.
3757
+ defineSymbol(math, main, punct, "\u22c5", "\u00b7");
3758
+ defineSymbol(text, main, textord, "\u22c5", "\u00b7");
3751
3759
  // Misc Symbols
3752
3760
  defineSymbol(math, main, textord, "\u0023", "\\#");
3753
3761
  defineSymbol(text, main, textord, "\u0023", "\\#");
@@ -6391,6 +6399,8 @@ var stretchyCodePoint = {
6391
6399
  xrightarrow: "\u2192",
6392
6400
  underbrace: "\u23df",
6393
6401
  overbrace: "\u23de",
6402
+ underbracket: "\u23b5",
6403
+ overbracket: "\u23b4",
6394
6404
  overgroup: "\u23e0",
6395
6405
  undergroup: "\u23e1",
6396
6406
  overleftrightarrow: "\u2194",
@@ -6501,6 +6511,8 @@ var katexImagesData = {
6501
6511
  xhookrightarrow: [["lefthook", "rightarrow"], 1.08, 522],
6502
6512
  overlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
6503
6513
  underlinesegment: [["leftlinesegment", "rightlinesegment"], 0.888, 522],
6514
+ overbracket: [["leftbracketover", "rightbracketover"], 1.6, 440],
6515
+ underbracket: [["leftbracketunder", "rightbracketunder"], 1.6, 410],
6504
6516
  overgroup: [["leftgroup", "rightgroup"], 0.888, 342],
6505
6517
  undergroup: [["leftgroupunder", "rightgroupunder"], 0.888, 342],
6506
6518
  xmapsto: [["leftmapsto", "rightarrow"], 1.5, 522],
@@ -8247,8 +8259,8 @@ var makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, opt
8247
8259
  var viewBoxHeight = Math.round(realHeightTotal * 1000);
8248
8260
  var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1000));
8249
8261
  var path = new PathNode(svgLabel, pathStr);
8250
- var width = (viewBoxWidth / 1000).toFixed(3) + "em";
8251
- var height = (viewBoxHeight / 1000).toFixed(3) + "em";
8262
+ var width = makeEm(viewBoxWidth / 1000);
8263
+ var height = makeEm(viewBoxHeight / 1000);
8252
8264
  var svg = new SvgNode([path], {
8253
8265
  "width": width,
8254
8266
  "height": height,
@@ -9069,7 +9081,7 @@ var mathmlBuilder$6 = (group, options) => {
9069
9081
  var thk = Math.max(options.fontMetrics().fboxrule,
9070
9082
  // default
9071
9083
  options.minRuleThickness);
9072
- node.setAttribute("style", "border: " + thk + "em solid " + String(group.borderColor));
9084
+ node.setAttribute("style", "border: " + makeEm(thk) + " solid " + group.borderColor);
9073
9085
  }
9074
9086
  break;
9075
9087
  case "\\xcancel":
@@ -9157,7 +9169,7 @@ defineFunction({
9157
9169
  });
9158
9170
  defineFunction({
9159
9171
  type: "enclose",
9160
- names: ["\\cancel", "\\bcancel", "\\xcancel", "\\sout", "\\phase"],
9172
+ names: ["\\cancel", "\\bcancel", "\\xcancel", "\\phase"],
9161
9173
  props: {
9162
9174
  numArgs: 1
9163
9175
  },
@@ -9177,6 +9189,32 @@ defineFunction({
9177
9189
  htmlBuilder: htmlBuilder$7,
9178
9190
  mathmlBuilder: mathmlBuilder$6
9179
9191
  });
9192
+ defineFunction({
9193
+ type: "enclose",
9194
+ names: ["\\sout"],
9195
+ props: {
9196
+ numArgs: 1,
9197
+ allowedInText: true
9198
+ },
9199
+ handler(_ref5, args) {
9200
+ var {
9201
+ parser,
9202
+ funcName
9203
+ } = _ref5;
9204
+ if (parser.mode === "math") {
9205
+ parser.settings.reportNonstrict("mathVsSout", "LaTeX's \\sout works only in text mode");
9206
+ }
9207
+ var body = args[0];
9208
+ return {
9209
+ type: "enclose",
9210
+ mode: parser.mode,
9211
+ label: funcName,
9212
+ body
9213
+ };
9214
+ },
9215
+ htmlBuilder: htmlBuilder$7,
9216
+ mathmlBuilder: mathmlBuilder$6
9217
+ });
9180
9218
  defineFunction({
9181
9219
  type: "enclose",
9182
9220
  names: ["\\angl"],
@@ -9185,10 +9223,10 @@ defineFunction({
9185
9223
  argTypes: ["hbox"],
9186
9224
  allowedInText: false
9187
9225
  },
9188
- handler(_ref5, args) {
9226
+ handler(_ref6, args) {
9189
9227
  var {
9190
9228
  parser
9191
- } = _ref5;
9229
+ } = _ref6;
9192
9230
  return {
9193
9231
  type: "enclose",
9194
9232
  mode: parser.mode,
@@ -10938,7 +10976,7 @@ var htmlBuilder$3 = (grp, options) => {
10938
10976
  // note long note long note
10939
10977
  // ┏━━━━━━━━┓ or ┏━━━┓ not ┏━━━━━━━━━┓
10940
10978
  // equation eqn eqn
10941
- var vSpan = makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options);
10979
+ var vSpan = makeSpan(["minner", group.isOver ? "mover" : "munder"], [vlist], options);
10942
10980
  if (group.isOver) {
10943
10981
  vlist = makeVList({
10944
10982
  positionType: "firstBaseline",
@@ -10970,7 +11008,7 @@ var htmlBuilder$3 = (grp, options) => {
10970
11008
  });
10971
11009
  }
10972
11010
  }
10973
- return makeSpan(["mord", group.isOver ? "mover" : "munder"], [vlist], options);
11011
+ return makeSpan(["minner", group.isOver ? "mover" : "munder"], [vlist], options);
10974
11012
  };
10975
11013
  var mathmlBuilder$2 = (group, options) => {
10976
11014
  var accentNode = stretchyMathML(group.label);
@@ -10979,7 +11017,7 @@ var mathmlBuilder$2 = (group, options) => {
10979
11017
  // Horizontal stretchy braces
10980
11018
  defineFunction({
10981
11019
  type: "horizBrace",
10982
- names: ["\\overbrace", "\\underbrace"],
11020
+ names: ["\\overbrace", "\\underbrace", "\\overbracket", "\\underbracket"],
10983
11021
  props: {
10984
11022
  numArgs: 1
10985
11023
  },
@@ -10992,7 +11030,7 @@ defineFunction({
10992
11030
  type: "horizBrace",
10993
11031
  mode: parser.mode,
10994
11032
  label: funcName,
10995
- isOver: /^\\over/.test(funcName),
11033
+ isOver: funcName.includes("\\over"),
10996
11034
  base: args[0]
10997
11035
  };
10998
11036
  },
@@ -13764,10 +13802,6 @@ defineMacro("\u210C", "\\mathfrak{H}");
13764
13802
  defineMacro("\u2128", "\\mathfrak{Z}");
13765
13803
  // Define \Bbbk with a macro that works in both HTML and MathML.
13766
13804
  defineMacro("\\Bbbk", "\\Bbb{k}");
13767
- // Unicode middle dot
13768
- // The KaTeX fonts do not contain U+00B7. Instead, \cdotp displays
13769
- // the dot at U+22C5 and gives it punct spacing.
13770
- defineMacro("\u00b7", "\\cdotp");
13771
13805
  // \llap and \rlap render their contents in text mode
13772
13806
  defineMacro("\\llap", "\\mathllap{\\textrm{#1}}");
13773
13807
  defineMacro("\\rlap", "\\mathrlap{\\textrm{#1}}");
@@ -16368,7 +16402,7 @@ var renderToHTMLTree = function renderToHTMLTree(expression, options) {
16368
16402
  return renderError(error, expression, settings);
16369
16403
  }
16370
16404
  };
16371
- var version = "0.16.38";
16405
+ var version = "0.16.43";
16372
16406
  var __domTree = {
16373
16407
  Span,
16374
16408
  Anchor,
@@ -2770,7 +2770,7 @@ var renderKatexUnsanitized = /* @__PURE__ */ chunkAGHRB4JF.__name(async (text, c
2770
2770
  return text.replace(katexRegex, "MathML is unsupported in this environment.");
2771
2771
  }
2772
2772
  {
2773
- const { default: katex } = await Promise.resolve().then(function () { return require('../../../../../../katex@0.16.38/node_modules/katex/dist/katex.js'); });
2773
+ const { default: katex } = await Promise.resolve().then(function () { return require('../../../../../../katex@0.16.43/node_modules/katex/dist/katex.js'); });
2774
2774
  const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? "htmlAndMathml" : "mathml";
2775
2775
  return text.split(lineBreakRegex).map(
2776
2776
  (line) => hasKatex(line) ? `<div style="display: flex; align-items: center; justify-content: center; white-space: nowrap;">${line}</div>` : `<div>${line}</div>`
@@ -2768,7 +2768,7 @@ var renderKatexUnsanitized = /* @__PURE__ */ __name(async (text, config2) => {
2768
2768
  return text.replace(katexRegex, "MathML is unsupported in this environment.");
2769
2769
  }
2770
2770
  {
2771
- const { default: katex } = await import('../../../../../../katex@0.16.38/node_modules/katex/dist/katex.mjs');
2771
+ const { default: katex } = await import('../../../../../../katex@0.16.43/node_modules/katex/dist/katex.mjs');
2772
2772
  const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? "htmlAndMathml" : "mathml";
2773
2773
  return text.split(lineBreakRegex).map(
2774
2774
  (line) => hasKatex(line) ? `<div style="display: flex; align-items: center; justify-content: center; white-space: nowrap;">${line}</div>` : `<div>${line}</div>`
@@ -2727,7 +2727,8 @@ function onResize() {
2727
2727
  swiper.updateSlidesClasses();
2728
2728
  const isVirtualLoop = isVirtual && params.loop;
2729
2729
  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
2730
- swiper.slideTo(swiper.slides.length - 1, 0, false, true);
2730
+ const slides = isVirtual ? swiper.virtual.slides : swiper.slides;
2731
+ swiper.slideTo(slides.length - 1, 0, false, true);
2731
2732
  } else {
2732
2733
  if (swiper.params.loop && !isVirtual) {
2733
2734
  swiper.slideToLoop(swiper.realIndex, 0, false, true);
@@ -2725,7 +2725,8 @@ function onResize() {
2725
2725
  swiper.updateSlidesClasses();
2726
2726
  const isVirtualLoop = isVirtual && params.loop;
2727
2727
  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
2728
- swiper.slideTo(swiper.slides.length - 1, 0, false, true);
2728
+ const slides = isVirtual ? swiper.virtual.slides : swiper.slides;
2729
+ swiper.slideTo(slides.length - 1, 0, false, true);
2729
2730
  } else {
2730
2731
  if (swiper.params.loop && !isVirtual) {
2731
2732
  swiper.slideToLoop(swiper.realIndex, 0, false, true);
@@ -6,7 +6,7 @@ var updateOnVirtualData = require('./shared/update-on-virtual-data.js');
6
6
  var updateSwiper = require('./shared/update-swiper.js');
7
7
 
8
8
  /**
9
- * Swiper React 12.1.2
9
+ * Swiper React 12.1.3
10
10
  * Most modern mobile touch slider and framework with hardware accelerated transitions
11
11
  * https://swiperjs.com
12
12
  *
@@ -14,7 +14,7 @@ var updateSwiper = require('./shared/update-swiper.js');
14
14
  *
15
15
  * Released under the MIT License
16
16
  *
17
- * Released on: February 18, 2026
17
+ * Released on: March 24, 2026
18
18
  */
19
19
 
20
20
 
@@ -4,7 +4,7 @@ import { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnV
4
4
  import { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';
5
5
 
6
6
  /**
7
- * Swiper React 12.1.2
7
+ * Swiper React 12.1.3
8
8
  * Most modern mobile touch slider and framework with hardware accelerated transitions
9
9
  * https://swiperjs.com
10
10
  *
@@ -12,7 +12,7 @@ import { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needs
12
12
  *
13
13
  * Released under the MIT License
14
14
  *
15
- * Released on: February 18, 2026
15
+ * Released on: March 24, 2026
16
16
  */
17
17
 
18
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windrun-huaiin/third-ui",
3
- "version": "14.3.0",
3
+ "version": "14.4.0",
4
4
  "description": "Third-party integrated UI components for windrun-huaiin projects",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -3,6 +3,7 @@ import { ReactNode, ReactElement, cloneElement } from 'react';
3
3
  import { TocFooterWrapper } from '@third-ui/fuma/mdx/toc-footer-wrapper';
4
4
  import type { LLMCopyButtonProps, LLMCopyButton } from '@third-ui/fuma/mdx/toc-base';
5
5
  import { getAsNeededLocalizedUrl } from '@windrun-huaiin/lib';
6
+ import { PortableClerkTOC } from '@third-ui/fuma/mdx/toc-clerk-portable';
6
7
 
7
8
  interface FumaPageParams {
8
9
  /*
@@ -48,7 +49,9 @@ interface FumaPageParams {
48
49
  // default true
49
50
  showTableOfContent?: boolean;
50
51
 
51
- // default false, for mobile style can cause issue
52
+ /*
53
+ * @deprecated Mobile TOC popover is no longer used.
54
+ */
52
55
  showTableOfContentPopover?: boolean;
53
56
 
54
57
  /*
@@ -106,13 +109,16 @@ export function createFumaPage({
106
109
  breadcrumb={{enabled: showBreadcrumb}}
107
110
  tableOfContent={{
108
111
  enabled: showTableOfContent,
109
- style: 'clerk',
110
112
  single: false,
111
- footer: tocFooterElement,
113
+ component: (
114
+ <PortableClerkTOC
115
+ toc={page.data.toc}
116
+ footer={tocFooterElement}
117
+ />
118
+ ),
112
119
  }}
113
120
  tableOfContentPopover={{
114
- enabled: showTableOfContentPopover,
115
- footer: tocFooterElement,
121
+ enabled: false,
116
122
  }}
117
123
  toc={page.data.toc}
118
124
  article={{ className: 'max-sm:pb-16' }}
@@ -10,5 +10,6 @@ export * from './toc-base';
10
10
  export * from './fuma-github-info';
11
11
  export * from './zia-file';
12
12
  export * from './toc-footer-wrapper';
13
+ export * from './toc-clerk-portable';
13
14
  export * from './banner';
14
15
  export * from './suno-embed';