@feathery/react 2.37.2 → 2.37.4

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 (112) hide show
  1. package/cjs/Form/grid/Element/index.d.ts.map +1 -1
  2. package/cjs/Form/grid/Element/utils/utils.d.ts +1 -0
  3. package/cjs/Form/grid/Element/utils/utils.d.ts.map +1 -1
  4. package/cjs/Form/index.d.ts.map +1 -1
  5. package/cjs/elements/fields/CheckboxField/index.d.ts.map +1 -1
  6. package/cjs/elements/fields/CheckboxGroupField/index.d.ts +1 -1
  7. package/cjs/elements/fields/CheckboxGroupField/index.d.ts.map +1 -1
  8. package/cjs/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +1 -0
  9. package/cjs/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +1 -1
  10. package/cjs/{fthry_FormControl.UUmQyyap.js → fthry_FormControl.BCawW2JY.js} +1 -1
  11. package/cjs/{fthry_InlineTooltip.jl_5ymRo.js → fthry_InlineTooltip.DXAGdsG6.js} +2 -2
  12. package/cjs/{fthry_Overlay.cDV8HqW4.js → fthry_Overlay.Dxddifgf.js} +1 -1
  13. package/cjs/{fthry_PaymentMethodField.CdvcDslb.js → fthry_PaymentMethodField.BBn_I5Y-.js} +4 -4
  14. package/cjs/{fthry_Placeholder.DvQPs9RY.js → fthry_Placeholder.DgCge_qQ.js} +1 -1
  15. package/cjs/{fthry_ShowEyeIcon.BkcVv_ic.js → fthry_ShowEyeIcon.6chMT9tB.js} +1 -1
  16. package/cjs/{fthry_highlighted-body-TPN3WLV5.KkiTbwTD.js → fthry_highlighted-body-TPN3WLV5.DkI91-Zy.js} +1 -1
  17. package/cjs/{fthry_index.BlMMvH-z.js → fthry_index.1G5WWnt8.js} +1 -1
  18. package/cjs/{fthry_index.Diey5RdZ.js → fthry_index.4_yQ3xcB.js} +1 -1
  19. package/cjs/{fthry_index.CP3kqu5Z.js → fthry_index.B2WATisk.js} +5 -5
  20. package/cjs/{fthry_index.GWONjiO4.js → fthry_index.BCDEI_8h.js} +6 -6
  21. package/cjs/{fthry_index.uiLsWZ8e.js → fthry_index.BCakShY6.js} +33 -9
  22. package/cjs/{fthry_index.DwrDdqG4.js → fthry_index.Bg8trysI.js} +9 -2
  23. package/cjs/{fthry_index.C9Pq1jz2.js → fthry_index.BrcBLxiN.js} +1 -1
  24. package/cjs/{fthry_index._jyXrz9c.js → fthry_index.BvCKY-AY.js} +1 -1
  25. package/cjs/{fthry_index.DVIkBJv7.js → fthry_index.C2MePzk3.js} +6 -6
  26. package/cjs/{fthry_index.BQ-UI6V0.js → fthry_index.CWvKP0U9.js} +3 -3
  27. package/cjs/{fthry_index.DTjOQohy.js → fthry_index.Co7zM36I.js} +4 -4
  28. package/cjs/{fthry_index.DNRaqGHl.js → fthry_index.D-6wkDz2.js} +5 -5
  29. package/cjs/{fthry_index.6SQ-92hP.js → fthry_index.DAqPVi5Z.js} +3 -3
  30. package/cjs/{fthry_index.b9hjBjrX.js → fthry_index.DFi7wHj1.js} +1 -1
  31. package/cjs/{fthry_index.BEO07tGr.js → fthry_index.DSS9EjkL.js} +2 -2
  32. package/cjs/{fthry_index.Bq5yINko.js → fthry_index.D_1t-ApQ.js} +4 -4
  33. package/cjs/{fthry_index.CYE9Cxd_.js → fthry_index.DclxO6k2.js} +1 -1
  34. package/cjs/{fthry_index.qvtxN2qV.js → fthry_index.Dsv-TeBu.js} +220 -132
  35. package/cjs/{fthry_index.DsQ6ogm6.js → fthry_index.DxstWM8L.js} +8 -8
  36. package/cjs/{fthry_index.CvgbmPWG.js → fthry_index.DzI22-a-.js} +2 -2
  37. package/cjs/{fthry_index.dsMhMjnK.js → fthry_index.WYWtukPG.js} +5 -5
  38. package/cjs/{fthry_index.jfvaxr3T.js → fthry_index.Y_UP_4ct.js} +4 -4
  39. package/cjs/{fthry_index.BpOec9LM.js → fthry_index.b2DipouN.js} +5 -5
  40. package/cjs/{fthry_index.CbIQhrCS.js → fthry_index.dFaOUdRp.js} +1 -1
  41. package/cjs/{fthry_input.BzgGA_H_.js → fthry_input.WfgR8fOH.js} +1 -1
  42. package/cjs/{fthry_mermaid-O7DHMXV3.Ikv4jEiV.js → fthry_mermaid-O7DHMXV3.v4t8IYSq.js} +1 -1
  43. package/cjs/{fthry_script.8bhNGZo0.js → fthry_script.B921m9AF.js} +1 -1
  44. package/cjs/{fthry_styles.CUYceSAL.js → fthry_styles.DyHc8mjo.js} +1 -1
  45. package/cjs/{fthry_useElementSize.DsAW10vx.js → fthry_useElementSize.Bx50W_pE.js} +1 -1
  46. package/cjs/{fthry_useSalesforceSync.Bj7UDsNQ.js → fthry_useSalesforceSync.CCCfBjU1.js} +1 -1
  47. package/cjs/{fthry_webfontloader.BdXcCGYt.js → fthry_webfontloader.DxmcEISV.js} +1 -1
  48. package/cjs/index.js +1 -1
  49. package/cjs/utils/featheryClient/utils.d.ts.map +1 -1
  50. package/cjs/utils/offlineRequestHandler.d.ts +6 -0
  51. package/cjs/utils/offlineRequestHandler.d.ts.map +1 -1
  52. package/dist/Form/grid/Element/index.d.ts.map +1 -1
  53. package/dist/Form/grid/Element/utils/utils.d.ts +1 -0
  54. package/dist/Form/grid/Element/utils/utils.d.ts.map +1 -1
  55. package/dist/Form/index.d.ts.map +1 -1
  56. package/dist/elements/fields/CheckboxField/index.d.ts.map +1 -1
  57. package/dist/elements/fields/CheckboxGroupField/index.d.ts +1 -1
  58. package/dist/elements/fields/CheckboxGroupField/index.d.ts.map +1 -1
  59. package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +1 -0
  60. package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts.map +1 -1
  61. package/dist/{fthry_FormControl.Dv4zPAmE.js → fthry_FormControl.76_0PuFC.js} +1 -1
  62. package/dist/{fthry_InlineTooltip.CAswTjMx.js → fthry_InlineTooltip.d3TjV-eF.js} +2 -2
  63. package/dist/{fthry_Overlay.WEfYpvO6.js → fthry_Overlay.C9ZwYfq9.js} +1 -1
  64. package/dist/{fthry_PaymentMethodField.hhtLpO-z.js → fthry_PaymentMethodField.CA0KyKcm.js} +4 -4
  65. package/dist/{fthry_Placeholder.B6y-o-gd.js → fthry_Placeholder.3BQCtk4i.js} +1 -1
  66. package/dist/{fthry_ShowEyeIcon.CJrRkpBs.js → fthry_ShowEyeIcon.Bqj7gJGW.js} +1 -1
  67. package/dist/{fthry_highlighted-body-TPN3WLV5.BAL3zZoV.js → fthry_highlighted-body-TPN3WLV5.uNKEZjAy.js} +1 -1
  68. package/dist/{fthry_index.CQ7qmcK_.js → fthry_index.-pimdPng.js} +2 -2
  69. package/dist/{fthry_index.DTjJJ_UT.js → fthry_index.20OBT_43.js} +1 -1
  70. package/dist/{fthry_index.CYC5u9yp.js → fthry_index.54Em8Q1w.js} +1 -1
  71. package/dist/{fthry_index.f3JVw1S5.js → fthry_index.B2J5J4jS.js} +4 -4
  72. package/dist/{fthry_index._khdcCuN.js → fthry_index.BCWRiQGq.js} +8 -8
  73. package/dist/{fthry_index.CFtVg8yZ.js → fthry_index.Bbxtbp4a.js} +220 -132
  74. package/dist/{fthry_index.BMxg4u_Q.js → fthry_index.BlrxJyUS.js} +5 -5
  75. package/dist/{fthry_index.BUlnPsKA.js → fthry_index.BmcdgXn3.js} +4 -4
  76. package/dist/{fthry_index.PshklqIQ.js → fthry_index.Brftvfe7.js} +5 -5
  77. package/dist/{fthry_index._OmBWsUc.js → fthry_index.BvSqC2z2.js} +4 -4
  78. package/dist/{fthry_index.ChU8dpca.js → fthry_index.BvdLAZLu.js} +1 -1
  79. package/dist/{fthry_index.BEd1OGGp.js → fthry_index.CET1YvDN.js} +5 -5
  80. package/dist/{fthry_index.DXAep882.js → fthry_index.CGjEfzIL.js} +1 -1
  81. package/dist/{fthry_index.pYt2RKwH.js → fthry_index.C_22SPRt.js} +9 -2
  82. package/dist/{fthry_index.CFBtgF4P.js → fthry_index.Cbk-4lUW.js} +6 -6
  83. package/dist/{fthry_index.CrsE7GlQ.js → fthry_index.ChBrRALN.js} +1 -1
  84. package/dist/{fthry_index.Ck8oZ8Mz.js → fthry_index.CpjiI4uf.js} +3 -3
  85. package/dist/{fthry_index.BYDu1zez.js → fthry_index.DIIgA2I2.js} +34 -10
  86. package/dist/{fthry_index.Ch7rtiUF.js → fthry_index.Dh3vrOA4.js} +5 -5
  87. package/dist/{fthry_index.Cu30bTjn.js → fthry_index.DhichOKe.js} +2 -2
  88. package/dist/{fthry_index.Bmu-mLv2.js → fthry_index.Dn8hTYS2.js} +6 -6
  89. package/dist/{fthry_index.CRGXZfws.js → fthry_index.aJzVeSoS.js} +1 -1
  90. package/dist/{fthry_index.Cvf3OhYK.js → fthry_index.g8KGIqrC.js} +3 -3
  91. package/dist/{fthry_index.DYGAk-7g.js → fthry_index.x1TUK-im.js} +1 -1
  92. package/dist/{fthry_input.CnSdYZ-J.js → fthry_input.Dj1IMwey.js} +1 -1
  93. package/dist/{fthry_mermaid-O7DHMXV3.CRuQdf2K.js → fthry_mermaid-O7DHMXV3.C5f8Q-rK.js} +1 -1
  94. package/dist/{fthry_script.e0jEW6L1.js → fthry_script.BmwMDCAZ.js} +1 -1
  95. package/dist/{fthry_styles.CKXc0948.js → fthry_styles.B6qGnHJ1.js} +1 -1
  96. package/dist/{fthry_useElementSize.D4q-VGcI.js → fthry_useElementSize.BppSuCUN.js} +1 -1
  97. package/dist/{fthry_useSalesforceSync.BdAiUz_f.js → fthry_useSalesforceSync.D0nLeVuk.js} +1 -1
  98. package/dist/{fthry_webfontloader.DXCWsGgJ.js → fthry_webfontloader.D5C7-qaj.js} +1 -1
  99. package/dist/index.js +1 -1
  100. package/dist/utils/featheryClient/utils.d.ts.map +1 -1
  101. package/dist/utils/offlineRequestHandler.d.ts +6 -0
  102. package/dist/utils/offlineRequestHandler.d.ts.map +1 -1
  103. package/package.json +1 -1
  104. package/umd/CheckboxField.782999cad642da04434d.js +1 -0
  105. package/umd/CheckboxGroupField.18ab392a2890a239fd0b.js +1 -0
  106. package/umd/MatrixField.2b65107453ddf2322137.js +1 -0
  107. package/umd/RadioButtonGroupField.20268d1b4649053bf1db.js +1 -0
  108. package/umd/index.js +1 -1
  109. package/umd/CheckboxField.76c36941e86a62ec518d.js +0 -1
  110. package/umd/CheckboxGroupField.18b80da05b582f411aba.js +0 -1
  111. package/umd/MatrixField.f8624f3e59b21e04f368.js +0 -1
  112. package/umd/RadioButtonGroupField.3e94f00868ba5b71ba55.js +0 -1
@@ -6546,7 +6546,7 @@ function handleFormConflict() {
6546
6546
  return;
6547
6547
  conflictAlertShown = true;
6548
6548
  untrackUnload(true);
6549
- featheryWindow().alert('This form has been updated. Please fill it out again.');
6549
+ featheryWindow().alert('This form has been updated. Please reload.');
6550
6550
  location.reload();
6551
6551
  }
6552
6552
  function handleFormAuthenticationError(errorMessage) {
@@ -6570,6 +6570,64 @@ var INDEXEDDB_ACCESS_DENIED_ERRORS = [
6570
6570
  'IDBFactory.open() called in an invalid security context',
6571
6571
  'denied permission'
6572
6572
  ];
6573
+ var _connectivityCache = null;
6574
+ var _connectivityProbe = null;
6575
+ var CONNECTIVITY_CACHE_TTL_MS = 3000;
6576
+ /**
6577
+ * navigator.onLine can return false negatives in some browsers/environments.
6578
+ * When it reports offline, probe the network directly before trusting it.
6579
+ * Results are cached for 3 s and concurrent calls share one in-flight probe.
6580
+ */
6581
+ function verifyConnectivity() {
6582
+ return __awaiter$2(this, void 0, void 0, function () {
6583
+ var now;
6584
+ var _this = this;
6585
+ return __generator(this, function (_a) {
6586
+ if (navigator.onLine)
6587
+ return [2 /*return*/, true];
6588
+ now = Date.now();
6589
+ if (_connectivityCache &&
6590
+ now - _connectivityCache.timestamp < CONNECTIVITY_CACHE_TTL_MS) {
6591
+ return [2 /*return*/, _connectivityCache.online];
6592
+ }
6593
+ if (!_connectivityProbe) {
6594
+ _connectivityProbe = (function (timeoutMs) {
6595
+ if (timeoutMs === void 0) { timeoutMs = 5000; }
6596
+ return __awaiter$2(_this, void 0, void 0, function () {
6597
+ var controller_1, timeoutId;
6598
+ return __generator(this, function (_b) {
6599
+ switch (_b.label) {
6600
+ case 0:
6601
+ _b.trys.push([0, 2, , 3]);
6602
+ controller_1 = new AbortController();
6603
+ timeoutId = setTimeout(function () { return controller_1.abort(); }, timeoutMs);
6604
+ return [4 /*yield*/, fetch('https://www.google.com/generate_204', {
6605
+ method: 'HEAD',
6606
+ mode: 'no-cors',
6607
+ cache: 'no-store',
6608
+ signal: controller_1.signal
6609
+ })];
6610
+ case 1:
6611
+ _b.sent();
6612
+ clearTimeout(timeoutId);
6613
+ _connectivityCache = { online: true, timestamp: Date.now() };
6614
+ return [2 /*return*/, true];
6615
+ case 2:
6616
+ _b.sent();
6617
+ _connectivityCache = { online: false, timestamp: Date.now() };
6618
+ return [2 /*return*/, false];
6619
+ case 3: return [2 /*return*/];
6620
+ }
6621
+ });
6622
+ });
6623
+ })().finally(function () {
6624
+ _connectivityProbe = null;
6625
+ });
6626
+ }
6627
+ return [2 /*return*/, _connectivityProbe];
6628
+ });
6629
+ });
6630
+ }
6573
6631
  var beforeUnloadEventHandler = function (event) {
6574
6632
  // allow navigation if user has not interacted with form
6575
6633
  if (!isInteractionDetected())
@@ -6753,59 +6811,60 @@ var OfflineRequestHandler = /** @class */ (function () {
6753
6811
  var response, e_1, errorToThrow;
6754
6812
  return __generator(this, function (_a) {
6755
6813
  switch (_a.label) {
6756
- case 0:
6757
- if (!navigator.onLine) return [3 /*break*/, 14];
6814
+ case 0: return [4 /*yield*/, verifyConnectivity()];
6815
+ case 1:
6816
+ if (!_a.sent()) return [3 /*break*/, 15];
6758
6817
  // Prevent page unload while processing requests to avoid data loss
6759
6818
  trackUnload();
6760
- if (!this.indexedDBSupported) return [3 /*break*/, 8];
6761
- if (!this.isReplayingRequests.get(this.formKey)) return [3 /*break*/, 2];
6819
+ if (!this.indexedDBSupported) return [3 /*break*/, 9];
6820
+ if (!this.isReplayingRequests.get(this.formKey)) return [3 /*break*/, 3];
6762
6821
  // Replay already in progress, wait for it to complete
6763
6822
  return [4 /*yield*/, this.onlineAndReplayed()];
6764
- case 1:
6823
+ case 2:
6765
6824
  // Replay already in progress, wait for it to complete
6766
6825
  _a.sent();
6767
- return [3 /*break*/, 8];
6768
- case 2: return [4 /*yield*/, this.dbHasRequest()];
6769
- case 3:
6770
- if (!_a.sent()) return [3 /*break*/, 8];
6771
- if (!(stepKey !== undefined && !(metadata === null || metadata === void 0 ? void 0 : metadata.preserveStepRequests))) return [3 /*break*/, 5];
6772
- return [4 /*yield*/, this.clearFailedRequestsByStep(stepKey)];
6826
+ return [3 /*break*/, 9];
6827
+ case 3: return [4 /*yield*/, this.dbHasRequest()];
6773
6828
  case 4:
6829
+ if (!_a.sent()) return [3 /*break*/, 9];
6830
+ if (!(stepKey !== undefined && !(metadata === null || metadata === void 0 ? void 0 : metadata.preserveStepRequests))) return [3 /*break*/, 6];
6831
+ return [4 /*yield*/, this.clearFailedRequestsByStep(stepKey)];
6832
+ case 5:
6774
6833
  _a.sent();
6775
- _a.label = 5;
6776
- case 5: return [4 /*yield*/, this.dbHasRequest()];
6777
- case 6:
6778
- if (!_a.sent()) return [3 /*break*/, 8];
6834
+ _a.label = 6;
6835
+ case 6: return [4 /*yield*/, this.dbHasRequest()];
6836
+ case 7:
6837
+ if (!_a.sent()) return [3 /*break*/, 9];
6779
6838
  // Other pending requests exist → trigger replay for them
6780
6839
  return [4 /*yield*/, this.replayRequests()];
6781
- case 7:
6840
+ case 8:
6782
6841
  // Other pending requests exist → trigger replay for them
6783
6842
  _a.sent();
6784
- _a.label = 8;
6785
- case 8:
6786
- _a.trys.push([8, 10, , 13]);
6787
- return [4 /*yield*/, run()];
6843
+ _a.label = 9;
6788
6844
  case 9:
6845
+ _a.trys.push([9, 11, , 14]);
6846
+ return [4 /*yield*/, run()];
6847
+ case 10:
6789
6848
  response = _a.sent();
6790
6849
  untrackUnload();
6791
6850
  return [2 /*return*/, response];
6792
- case 10:
6851
+ case 11:
6793
6852
  e_1 = _a.sent();
6794
6853
  errorToThrow = e_1;
6795
- if (!(e_1 instanceof TypeError)) return [3 /*break*/, 12];
6854
+ if (!(e_1 instanceof TypeError)) return [3 /*break*/, 13];
6796
6855
  return [4 /*yield*/, this.saveRequest(url, options, type, stepKey, metadata)];
6797
- case 11:
6798
- _a.sent();
6799
- _a.label = 12;
6800
6856
  case 12:
6857
+ _a.sent();
6858
+ _a.label = 13;
6859
+ case 13:
6801
6860
  untrackUnload();
6802
6861
  throw errorToThrow; // Re-throw error so caller knows submission failed
6803
- case 13: return [3 /*break*/, 16];
6804
- case 14: return [4 /*yield*/, this.saveRequest(url, options, type, stepKey, metadata)];
6805
- case 15:
6862
+ case 14: return [3 /*break*/, 17];
6863
+ case 15: return [4 /*yield*/, this.saveRequest(url, options, type, stepKey, metadata)];
6864
+ case 16:
6806
6865
  _a.sent();
6807
- _a.label = 16;
6808
- case 16: return [2 /*return*/];
6866
+ _a.label = 17;
6867
+ case 17: return [2 /*return*/];
6809
6868
  }
6810
6869
  });
6811
6870
  });
@@ -6933,25 +6992,27 @@ var OfflineRequestHandler = /** @class */ (function () {
6933
6992
  if (!this.indexedDBSupported) {
6934
6993
  return [2 /*return*/];
6935
6994
  }
6936
- if (!!navigator.onLine) return [3 /*break*/, 2];
6995
+ return [4 /*yield*/, verifyConnectivity()];
6996
+ case 1:
6997
+ if (!!(_b.sent())) return [3 /*break*/, 3];
6937
6998
  // If offline, block until requests are replayed from online event handler
6938
6999
  return [4 /*yield*/, this.onlineAndReplayed()];
6939
- case 1:
7000
+ case 2:
6940
7001
  // If offline, block until requests are replayed from online event handler
6941
7002
  _b.sent();
6942
7003
  return [2 /*return*/];
6943
- case 2:
7004
+ case 3:
6944
7005
  if (this.isReplayingRequests.get(this.formKey))
6945
7006
  return [2 /*return*/];
6946
7007
  this.isReplayingRequests.set(this.formKey, true);
6947
7008
  trackUnload();
6948
- _b.label = 3;
6949
- case 3:
6950
- _b.trys.push([3, , 15, 19]);
6951
- return [4 /*yield*/, this.getDbTransaction('readwrite')];
7009
+ _b.label = 4;
6952
7010
  case 4:
7011
+ _b.trys.push([4, , 16, 20]);
7012
+ return [4 /*yield*/, this.getDbTransaction('readwrite')];
7013
+ case 5:
6953
7014
  dbTransaction = _b.sent();
6954
- if (!dbTransaction) return [3 /*break*/, 14];
7015
+ if (!dbTransaction) return [3 /*break*/, 15];
6955
7016
  store_2 = dbTransaction.store;
6956
7017
  return [4 /*yield*/, new Promise(function (resolve) {
6957
7018
  var requests = [];
@@ -6971,13 +7032,13 @@ var OfflineRequestHandler = /** @class */ (function () {
6971
7032
  }
6972
7033
  };
6973
7034
  })];
6974
- case 5:
7035
+ case 6:
6975
7036
  allRequests = _b.sent();
6976
7037
  submitRequests = allRequests.filter(function (req) {
6977
7038
  return ['submit', 'customRequest'].includes(req.type);
6978
7039
  });
6979
7040
  return [4 /*yield*/, this.replayRequestsInParallel(submitRequests)];
6980
- case 6:
7041
+ case 7:
6981
7042
  _b.sent();
6982
7043
  registerEventRequests = allRequests.filter(function (req) { return req.type === 'registerEvent'; });
6983
7044
  stepKeys = Array.from(new Set(registerEventRequests.map(function (req) { return req.stepKey; })));
@@ -6995,50 +7056,50 @@ var OfflineRequestHandler = /** @class */ (function () {
6995
7056
  });
6996
7057
  };
6997
7058
  this_1 = this;
6998
- _b.label = 7;
6999
- case 7:
7000
- _b.trys.push([7, 12, 13, 14]);
7001
- stepKeys_1 = __values(stepKeys), stepKeys_1_1 = stepKeys_1.next();
7002
7059
  _b.label = 8;
7003
7060
  case 8:
7004
- if (!!stepKeys_1_1.done) return [3 /*break*/, 11];
7061
+ _b.trys.push([8, 13, 14, 15]);
7062
+ stepKeys_1 = __values(stepKeys), stepKeys_1_1 = stepKeys_1.next();
7063
+ _b.label = 9;
7064
+ case 9:
7065
+ if (!!stepKeys_1_1.done) return [3 /*break*/, 12];
7005
7066
  stepKey = stepKeys_1_1.value;
7006
7067
  return [5 /*yield**/, _loop_1(stepKey)];
7007
- case 9:
7008
- _b.sent();
7009
- _b.label = 10;
7010
7068
  case 10:
7069
+ _b.sent();
7070
+ _b.label = 11;
7071
+ case 11:
7011
7072
  stepKeys_1_1 = stepKeys_1.next();
7012
- return [3 /*break*/, 8];
7013
- case 11: return [3 /*break*/, 14];
7014
- case 12:
7073
+ return [3 /*break*/, 9];
7074
+ case 12: return [3 /*break*/, 15];
7075
+ case 13:
7015
7076
  e_2_1 = _b.sent();
7016
7077
  e_2 = { error: e_2_1 };
7017
- return [3 /*break*/, 14];
7018
- case 13:
7078
+ return [3 /*break*/, 15];
7079
+ case 14:
7019
7080
  try {
7020
7081
  if (stepKeys_1_1 && !stepKeys_1_1.done && (_a = stepKeys_1.return)) _a.call(stepKeys_1);
7021
7082
  }
7022
7083
  finally { if (e_2) throw e_2.error; }
7023
7084
  return [7 /*endfinally*/];
7024
- case 14: return [3 /*break*/, 19];
7025
- case 15:
7085
+ case 15: return [3 /*break*/, 20];
7086
+ case 16:
7026
7087
  this.isReplayingRequests.set(this.formKey, false);
7027
7088
  return [4 /*yield*/, this.hasReplayableRequest()];
7028
- case 16:
7089
+ case 17:
7029
7090
  retryable = _b.sent();
7030
- if (!retryable) return [3 /*break*/, 18];
7091
+ if (!retryable) return [3 /*break*/, 19];
7031
7092
  return [4 /*yield*/, this.replayRequests()];
7032
- case 17:
7033
- _b.sent();
7034
- _b.label = 18;
7035
7093
  case 18:
7094
+ _b.sent();
7095
+ _b.label = 19;
7096
+ case 19:
7036
7097
  untrackUnload();
7037
7098
  signals = this.onlineSignals.get(this.formKey) || [];
7038
7099
  signals.forEach(function (signal) { return signal(); });
7039
7100
  this.onlineSignals.delete(this.formKey);
7040
7101
  return [7 /*endfinally*/];
7041
- case 19: return [2 /*return*/];
7102
+ case 20: return [2 /*return*/];
7042
7103
  }
7043
7104
  });
7044
7105
  });
@@ -7069,10 +7130,10 @@ var OfflineRequestHandler = /** @class */ (function () {
7069
7130
  }
7070
7131
  _g.label = 1;
7071
7132
  case 1:
7072
- if (!(attempts < this.maxRetryAttempts)) return [3 /*break*/, 15];
7133
+ if (!(attempts < this.maxRetryAttempts)) return [3 /*break*/, 16];
7073
7134
  _g.label = 2;
7074
7135
  case 2:
7075
- _g.trys.push([2, 6, , 14]);
7136
+ _g.trys.push([2, 6, , 15]);
7076
7137
  return [4 /*yield*/, fetch(url, fetchOptions)];
7077
7138
  case 3:
7078
7139
  response = _g.sent();
@@ -7098,7 +7159,9 @@ var OfflineRequestHandler = /** @class */ (function () {
7098
7159
  return [4 /*yield*/, this.updateRetryAttempts(key, attempts)];
7099
7160
  case 9:
7100
7161
  _g.sent();
7101
- if (!navigator.onLine) return [3 /*break*/, 11];
7162
+ return [4 /*yield*/, verifyConnectivity()];
7163
+ case 10:
7164
+ if (!_g.sent()) return [3 /*break*/, 12];
7102
7165
  nextDelay = this.getExponentialDelay(attempts);
7103
7166
  if (attempts >= this.maxRetryAttempts) {
7104
7167
  // Skip alerting when a specific field upload already surfaces its own retry error
@@ -7109,16 +7172,16 @@ var OfflineRequestHandler = /** @class */ (function () {
7109
7172
  return [2 /*return*/];
7110
7173
  }
7111
7174
  return [4 /*yield*/, this.delay(nextDelay)];
7112
- case 10:
7175
+ case 11:
7113
7176
  _g.sent();
7114
- return [3 /*break*/, 13];
7115
- case 11: return [4 /*yield*/, this.onlineAndReplayed()];
7116
- case 12:
7177
+ return [3 /*break*/, 14];
7178
+ case 12: return [4 /*yield*/, this.onlineAndReplayed()];
7179
+ case 13:
7117
7180
  _g.sent();
7118
7181
  return [2 /*return*/];
7119
- case 13: return [3 /*break*/, 14];
7120
- case 14: return [3 /*break*/, 1];
7121
- case 15: return [2 /*return*/];
7182
+ case 14: return [3 /*break*/, 15];
7183
+ case 15: return [3 /*break*/, 1];
7184
+ case 16: return [2 /*return*/];
7122
7185
  }
7123
7186
  });
7124
7187
  }); };
@@ -20922,6 +20985,26 @@ function handleCheckboxGroupChange(e, field, updateFieldValues) {
20922
20985
  }
20923
20986
  return target.checked ? newValue.length - 1 : -1;
20924
20987
  }
20988
+ function handleCheckboxGroupSelectAllChange(optionValues, shouldSelectAll, field, updateFieldValues) {
20989
+ var _a, _b;
20990
+ var servar = field.servar;
20991
+ var fieldValue = getFieldValue$1(field);
20992
+ var value = fieldValue.value;
20993
+ var optionValueSet = new Set(optionValues);
20994
+ var otherValues = value.filter(function (v) { return !optionValueSet.has(v); });
20995
+ var newValue = shouldSelectAll
20996
+ ? __spreadArray(__spreadArray([], __read(otherValues), false), __read(optionValues), false) : otherValues;
20997
+ if (fieldValue.repeated) {
20998
+ var valueList = fieldValue.valueList, index = fieldValue.index;
20999
+ updateFieldValues((_a = {},
21000
+ _a[servar.key] = justInsert(valueList, newValue, index),
21001
+ _a));
21002
+ }
21003
+ else {
21004
+ updateFieldValues((_b = {}, _b[servar.key] = newValue, _b));
21005
+ }
21006
+ return shouldSelectAll ? newValue.length - 1 : -1;
21007
+ }
20925
21008
  function fieldAllowedFromList(allowLists, fieldKey) {
20926
21009
  var _a = __read(allowLists, 2), whitelist = _a[0], blacklist = _a[1];
20927
21010
  if (whitelist && !whitelist.includes(fieldKey))
@@ -21323,6 +21406,9 @@ var Element$1 = function (_a) {
21323
21406
  return (jsx$1(Elements.CheckboxGroupField, exports.__assign({}, fieldProps, { fieldVal: fieldVal_1, otherVal: otherVal_1, onChange: function (e) {
21324
21407
  var index = handleCheckboxGroupChange(e, el, updateFieldValues);
21325
21408
  onChange_1({ valueRepeatIndex: index });
21409
+ }, onSelectAllChange: function (optionValues, checked) {
21410
+ var index = handleCheckboxGroupSelectAllChange(optionValues, checked, el, updateFieldValues);
21411
+ onChange_1({ valueRepeatIndex: index });
21326
21412
  }, onOtherChange: function (e) {
21327
21413
  var returnIndex = otherChangeCheckboxGroup(otherVal_1, e, updateFieldValues, index_1);
21328
21414
  onChange_1({ valueRepeatIndex: returnIndex });
@@ -39747,7 +39833,7 @@ function Form(_a) {
39747
39833
  var getPendingFileUploadKeys = function () {
39748
39834
  return Object.entries(fileRetryStatus).reduce(function (pending, _a) {
39749
39835
  var _b = __read(_a, 2), fieldKey = _b[0], status = _b[1];
39750
- if (status !== false)
39836
+ if (status)
39751
39837
  return pending;
39752
39838
  var servar = getServarByFieldKey(fieldKey);
39753
39839
  if (!servar)
@@ -41020,12 +41106,12 @@ function Form(_a) {
41020
41106
  case 1:
41021
41107
  _d.sent();
41022
41108
  explicitNav = submitData || ['button', 'text', 'container'].includes(elementType);
41023
- if (!!redirectKey) return [3 /*break*/, 10];
41024
- if (!explicitNav) return [3 /*break*/, 9];
41109
+ if (!!redirectKey) return [3 /*break*/, 11];
41110
+ if (!explicitNav) return [3 /*break*/, 10];
41025
41111
  showCompletionLoader(completionButton);
41026
41112
  _d.label = 2;
41027
41113
  case 2:
41028
- _d.trys.push([2, , 8, 9]);
41114
+ _d.trys.push([2, , 9, 10]);
41029
41115
  if (!submitPromise) return [3 /*break*/, 6];
41030
41116
  _d.label = 3;
41031
41117
  case 3:
@@ -41039,8 +41125,10 @@ function Form(_a) {
41039
41125
  throw new Error(getSubmissionErrorMessage(error_1));
41040
41126
  case 6:
41041
41127
  requireSuccessfulFileUploads();
41128
+ return [4 /*yield*/, verifyConnectivity()];
41129
+ case 7:
41042
41130
  // Block form completion if user is actively offline
41043
- if (!navigator.onLine) {
41131
+ if (!(_d.sent())) {
41044
41132
  throw new Error('You are offline. Please check your connection and try again.');
41045
41133
  }
41046
41134
  // Note: We don't check dbHasRequest() here because:
@@ -41055,42 +41143,42 @@ function Form(_a) {
41055
41143
  session.form_completed = true;
41056
41144
  rerenderAllForms();
41057
41145
  })];
41058
- case 7:
41059
- _d.sent();
41060
- return [3 /*break*/, 9];
41061
41146
  case 8:
41147
+ _d.sent();
41148
+ return [3 /*break*/, 10];
41149
+ case 9:
41062
41150
  clearCompletionLoader();
41063
41151
  return [7 /*endfinally*/];
41064
- case 9: return [3 /*break*/, 22];
41065
- case 10:
41152
+ case 10: return [3 /*break*/, 23];
41153
+ case 11:
41066
41154
  nextStep = steps[redirectKey];
41067
41155
  authIntegration = getAuthIntegrationMetadata(integrations);
41068
41156
  complete = isStepTerminal(nextStep) &&
41069
41157
  !isTerminalStepAuth(authIntegration, steps[stepKey].id);
41070
41158
  if (complete)
41071
41159
  showCompletionLoader(completionButton);
41072
- _d.label = 11;
41073
- case 11:
41074
- _d.trys.push([11, , 20, 21]);
41075
- if (!(complete && submitPromise)) return [3 /*break*/, 16];
41076
41160
  _d.label = 12;
41077
41161
  case 12:
41078
- _d.trys.push([12, 14, , 15]);
41079
- return [4 /*yield*/, submitPromise];
41162
+ _d.trys.push([12, , 21, 22]);
41163
+ if (!(complete && submitPromise)) return [3 /*break*/, 17];
41164
+ _d.label = 13;
41080
41165
  case 13:
41081
- _d.sent();
41082
- return [3 /*break*/, 15];
41166
+ _d.trys.push([13, 15, , 16]);
41167
+ return [4 /*yield*/, submitPromise];
41083
41168
  case 14:
41169
+ _d.sent();
41170
+ return [3 /*break*/, 16];
41171
+ case 15:
41084
41172
  error_2 = _d.sent();
41085
41173
  throw new Error(getSubmissionErrorMessage(error_2));
41086
- case 15: return [3 /*break*/, 17];
41087
- case 16:
41174
+ case 16: return [3 /*break*/, 18];
41175
+ case 17:
41088
41176
  if (submitPromise) {
41089
41177
  submitPromise.catch(function () { }); // Avoid unhandled rejections when allowing navigation
41090
41178
  }
41091
- _d.label = 17;
41092
- case 17:
41093
- if (!complete) return [3 /*break*/, 19];
41179
+ _d.label = 18;
41180
+ case 18:
41181
+ if (!complete) return [3 /*break*/, 20];
41094
41182
  requireSuccessfulFileUploads();
41095
41183
  eventData.completed = true;
41096
41184
  // Form completion must run after since logic may depend on
@@ -41098,20 +41186,20 @@ function Form(_a) {
41098
41186
  return [4 /*yield*/, client
41099
41187
  .registerEvent(eventData)
41100
41188
  .then(function () { return handleFormComplete(); })];
41101
- case 18:
41189
+ case 19:
41102
41190
  // Form completion must run after since logic may depend on
41103
41191
  // presence of fully submitted data
41104
41192
  _d.sent();
41105
- _d.label = 19;
41106
- case 19:
41193
+ _d.label = 20;
41194
+ case 20:
41107
41195
  if (!eventData.completed)
41108
41196
  client.registerEvent(eventData);
41109
- return [3 /*break*/, 21];
41110
- case 20:
41197
+ return [3 /*break*/, 22];
41198
+ case 21:
41111
41199
  if (complete)
41112
41200
  clearCompletionLoader();
41113
41201
  return [7 /*endfinally*/];
41114
- case 21:
41202
+ case 22:
41115
41203
  updateBackNavMap((_c = {}, _c[redirectKey] = activeStep.key, _c));
41116
41204
  pendingScrollRef.current = explicitNav;
41117
41205
  if (trackHashes.current) {
@@ -41126,8 +41214,8 @@ function Form(_a) {
41126
41214
  pendingScrollRef.current = null;
41127
41215
  setStepKey(redirectKey);
41128
41216
  }
41129
- _d.label = 22;
41130
- case 22: return [2 /*return*/];
41217
+ _d.label = 23;
41218
+ case 23: return [2 /*return*/];
41131
41219
  }
41132
41220
  });
41133
41221
  });
@@ -46151,9 +46239,9 @@ function init(sdkKey, options) {
46151
46239
  if (runningInClient()) {
46152
46240
  // Dynamically load libraries that must be client side
46153
46241
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
46154
- /* webpackChunkName: "scriptjs" */ './fthry_script.8bhNGZo0.js'); }).then(function (n) { return n.script; });
46242
+ /* webpackChunkName: "scriptjs" */ './fthry_script.B921m9AF.js'); }).then(function (n) { return n.script; });
46155
46243
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
46156
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.BdXcCGYt.js'); }).then(function (n) { return n.webfontloader; });
46244
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DxmcEISV.js'); }).then(function (n) { return n.webfontloader; });
46157
46245
  // Client-side tracking logic
46158
46246
  if (initState.userTracking === 'cookie') {
46159
46247
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -46299,7 +46387,7 @@ function getFieldValues() {
46299
46387
  return exports.__assign({}, exports.fieldValues);
46300
46388
  }
46301
46389
  function logFeatheryBadge() {
46302
- console.log('%c Feathery %c v' + "2.37.2" + ' ', // replaced with real version during build
46390
+ console.log('%c Feathery %c v' + "2.37.4" + ' ', // replaced with real version during build
46303
46391
  'background: #e2626e; color: white; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;', 'background: #fce7e9; color: #c5495a; padding: 2px 6px; border-radius: 0 3px 3px 0;');
46304
46392
  }
46305
46393
 
@@ -47812,39 +47900,39 @@ breakpoint) {
47812
47900
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
47813
47901
  };
47814
47902
 
47815
- var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.dsMhMjnK.js'); }); });
47816
- var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.DTjOQohy.js'); }); });
47817
- var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.DwrDdqG4.js'); }); });
47903
+ var AddressLine1 = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.WYWtukPG.js'); }); });
47904
+ var ButtonGroupField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.Co7zM36I.js'); }); });
47905
+ var CheckboxField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.Bg8trysI.js'); }); });
47818
47906
  var CheckboxGroupField = React.lazy(function () {
47819
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.uiLsWZ8e.js'); });
47907
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.BCakShY6.js'); });
47820
47908
  });
47821
- var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.BlMMvH-z.js'); }); });
47822
- var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.b9hjBjrX.js'); }); });
47909
+ var ColorPickerField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.1G5WWnt8.js'); }); });
47910
+ var CustomField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.DFi7wHj1.js'); }); });
47823
47911
  var DateSelectorField = React.lazy(function () {
47824
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DVIkBJv7.js'); });
47912
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.C2MePzk3.js'); });
47825
47913
  });
47826
- var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.Bq5yINko.js'); }); });
47914
+ var DropdownField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.D_1t-ApQ.js'); }); });
47827
47915
  var DropdownMultiField = React.lazy(function () {
47828
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.BpOec9LM.js'); });
47916
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.b2DipouN.js'); });
47829
47917
  });
47830
- var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.CYE9Cxd_.js'); }); });
47831
- var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.6SQ-92hP.js'); }); });
47832
- var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.CP3kqu5Z.js'); }); });
47918
+ var FileUploadField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.DclxO6k2.js'); }); });
47919
+ var MatrixField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.DAqPVi5Z.js'); }); });
47920
+ var PasswordField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.B2WATisk.js'); }); });
47833
47921
  var PaymentMethodField = React.lazy(function () {
47834
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.CdvcDslb.js'); });
47922
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.BBn_I5Y-.js'); });
47835
47923
  });
47836
- var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DNRaqGHl.js'); }); });
47837
- var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.Diey5RdZ.js'); }); });
47838
- var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.BEO07tGr.js'); }); });
47924
+ var PhoneField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.D-6wkDz2.js'); }); });
47925
+ var PinInputField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.4_yQ3xcB.js'); }); });
47926
+ var QRScanner = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.DSS9EjkL.js'); }); });
47839
47927
  var RadioButtonGroupField = React.lazy(function () {
47840
47928
  return Promise.resolve().then(function () { return require(
47841
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.GWONjiO4.js'); });
47929
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.BCDEI_8h.js'); });
47842
47930
  });
47843
- var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.CbIQhrCS.js'); }); });
47844
- var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.BQ-UI6V0.js'); }); });
47845
- var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.CvgbmPWG.js'); }); });
47846
- var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.DsQ6ogm6.js'); }); });
47847
- var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.jfvaxr3T.js'); }); });
47931
+ var RatingField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.dFaOUdRp.js'); }); });
47932
+ var SignatureField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.CWvKP0U9.js'); }); });
47933
+ var SliderField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.DzI22-a-.js'); }); });
47934
+ var TextField = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.DxstWM8L.js'); }); });
47935
+ var TextArea = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.Y_UP_4ct.js'); }); });
47848
47936
  var Fields = {
47849
47937
  AddressLine1: AddressLine1,
47850
47938
  ButtonGroupField: ButtonGroupField,
@@ -48214,7 +48302,7 @@ Object.entries(Fields).map(function (_a) {
48214
48302
  var fieldLabel = (servar === null || servar === void 0 ? void 0 : servar.name) ? (jsx$1("label", exports.__assign({
48215
48303
  // Doesn't work for repeats currently since repeating field IDs aren't unique
48216
48304
  htmlFor: servar.repeated ? undefined : servar.key, style: {
48217
- marginBottom: '10px',
48305
+ marginBottom: servar.type === 'checkbox' ? 0 : '10px',
48218
48306
  display: 'inline-block',
48219
48307
  whiteSpace: 'pre-wrap',
48220
48308
  overflowWrap: 'anywhere'
@@ -48794,7 +48882,7 @@ function ElementSkeleton(_a) {
48794
48882
  }
48795
48883
  var templateObject_1;
48796
48884
 
48797
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index._jyXrz9c.js'); }); });
48885
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.BvCKY-AY.js'); }); });
48798
48886
  var Basic = {
48799
48887
  ImageElement: ImageElement,
48800
48888
  VideoElement: VideoElement,
@@ -99883,14 +99971,14 @@ ${e}</tr>
99883
99971
  Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+T(n.message+"",true)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var L$1=new D;function g(u,e){return L$1.parse(u,e)}g.options=g.setOptions=function(u){return L$1.setOptions(u),g.defaults=L$1.defaults,G(g.defaults),g};g.getDefaults=M;g.defaults=O;g.use=function(...u){return L$1.use(...u),g.defaults=L$1.defaults,G(g.defaults),g};g.walkTokens=function(u,e){return L$1.walkTokens(u,e)};g.parseInline=L$1.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y$1;g.TextRenderer=$;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;g.options;g.setOptions;g.use;g.walkTokens;g.parseInline;b.parse;x.lex;
99884
99972
 
99885
99973
  var En=300,Hn="300px",Dn=500;function Lt(e={}){let{immediate:t=false,debounceDelay:o=En,rootMargin:n=Hn,idleTimeout:r=Dn}=e,[s,a]=React.useState(false),l=React.useRef(null),i=React.useRef(null),c=React.useRef(null),d=React.useMemo(()=>p=>{let g=Date.now();return window.setTimeout(()=>{p({didTimeout:false,timeRemaining:()=>Math.max(0,50-(Date.now()-g))});},1)},[]),u=React.useMemo(()=>typeof window!="undefined"&&window.requestIdleCallback?(p,g)=>window.requestIdleCallback(p,g):d,[d]),m=React.useMemo(()=>typeof window!="undefined"&&window.cancelIdleCallback?p=>window.cancelIdleCallback(p):p=>{clearTimeout(p);},[]);return React.useEffect(()=>{if(t){a(true);return}let p=l.current;if(!p)return;i.current&&(clearTimeout(i.current),i.current=null),c.current&&(m(c.current),c.current=null);let g=()=>{i.current&&(clearTimeout(i.current),i.current=null),c.current&&(m(c.current),c.current=null);},h=x=>{c.current=u(w=>{w.timeRemaining()>0||w.didTimeout?(a(true),x.disconnect()):c.current=u(()=>{a(true),x.disconnect();},{timeout:r/2});},{timeout:r});},b=x=>{g(),i.current=window.setTimeout(()=>{var I,H;let w=x.takeRecords();(w.length===0||(H=(I=w.at(-1))==null?void 0:I.isIntersecting)!=null&&H)&&h(x);},o);},f=(x,w)=>{x.isIntersecting?b(w):g();},T=new IntersectionObserver(x=>{for(let w of x)f(w,T);},{rootMargin:n,threshold:0});return T.observe(p),()=>{i.current&&clearTimeout(i.current),c.current&&m(c.current),T.disconnect();}},[t,o,n,r,m,u]),{shouldRender:s,containerRef:l}}var Rt=/\s/,On=/^\s+$/,Vn=new Set(["code","pre","svg","math","annotation"]),jn=e=>typeof e=="object"&&e!==null&&"type"in e&&e.type==="element",Fn=e=>e.some(t=>jn(t)&&Vn.has(t.tagName)),zn=e=>{let t=[],o="",n=false;for(let r of e){let s=Rt.test(r);s!==n&&o&&(t.push(o),o=""),o+=r,n=s;}return o&&t.push(o),t},_n=e=>{let t=[],o="";for(let n of e)Rt.test(n)?o+=n:(o&&(t.push(o),o=""),t.push(n));return o&&t.push(o),t},qn=(e,t,o,n,r)=>({type:"element",tagName:"span",properties:{"data-sd-animate":true,style:r?`--sd-animation:sd-${t};--sd-duration:0ms;--sd-easing:${n}`:`--sd-animation:sd-${t};--sd-duration:${o}ms;--sd-easing:${n}`},children:[{type:"text",value:e}]}),$n=(e,t,o,n,r)=>{let s=t.at(-1);if(!(s&&"children"in s))return;if(Fn(t))return SKIP;let a=s,l=a.children.indexOf(e);if(l===-1)return;let i=e.value;if(!i.trim()){r.count+=i.length;return}let c=o.sep==="char"?_n(i):zn(i),d=n.prevContentLength,u=c.map(m=>{let p=r.count;if(r.count+=m.length,On.test(m))return {type:"text",value:m};let g=d>0&&p<d;return qn(m,o.animation,o.duration,o.easing,g)});return a.children.splice(l,1,...u),l+u.length},Wn=0;function be(e){var s,a,l,i;let t={animation:(s=e==null?void 0:e.animation)!=null?s:"fadeIn",duration:(a=e==null?void 0:e.duration)!=null?a:150,easing:(l=e==null?void 0:e.easing)!=null?l:"ease",sep:(i=e==null?void 0:e.sep)!=null?i:"word"},o={prevContentLength:0,lastRenderCharCount:0},n=Wn++,r=()=>c=>{let d={count:0};visitParents(c,"text",(u,m)=>$n(u,m,t,o,d)),o.lastRenderCharCount=d.count,o.prevContentLength=0;};return Object.defineProperty(r,"name",{value:`rehypeAnimate$${n}`}),{name:"animate",type:"animate",rehypePlugin:r,setPrevContentLength(c){o.prevContentLength=c;},getLastRenderCharCount(){let c=o.lastRenderCharCount;return o.lastRenderCharCount=0,c}}}be();var Qe=React.createContext(false),et=()=>React.useContext(Qe);var he=(...e)=>twMerge(clsx(e)),Jn=(e,t)=>{if(!e||!t)return t;let o=`${e}:`;return t.split(/\s+/).filter(Boolean).map(n=>n.startsWith(o)?n:`${e}:${n}`).join(" ")},Ht=e=>e?(...t)=>Jn(e,twMerge(clsx(t))):he,J=(e,t,o)=>{let n=typeof t=="string"?new Blob([t],{type:o}):t,r=URL.createObjectURL(n),s=document.createElement("a");s.href=r,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(r);};var Se=React.createContext(he),y=()=>React.useContext(Se);var Yn=he("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),Qn=e=>{let t={};for(let o of e.split(";")){let n=o.indexOf(":");if(n>0){let r=o.slice(0,n).trim(),s=o.slice(n+1).trim();r&&s&&(t[r]=s);}}return t},Bt=React.memo(({children:e,result:t,language:o,className:n,startLine:r,...s})=>{let a=y(),l=React.useMemo(()=>a(Yn),[a]),i=React.useMemo(()=>{let c={};return t.bg&&(c["--sdm-bg"]=t.bg),t.fg&&(c["--sdm-fg"]=t.fg),t.rootStyle&&Object.assign(c,Qn(t.rootStyle)),c},[t.bg,t.fg,t.rootStyle]);return ReactJSXRuntime.jsx("div",{className:a(n,"overflow-hidden rounded-md border border-border bg-background p-4 text-sm"),"data-language":o,"data-streamdown":"code-block-body",...s,children:ReactJSXRuntime.jsx("pre",{className:a(n,"bg-[var(--sdm-bg,inherit]","dark:bg-[var(--shiki-dark-bg,var(--sdm-bg,inherit)]"),style:i,children:ReactJSXRuntime.jsx("code",{className:a("[counter-increment:line_0] [counter-reset:line]"),style:r&&r>1?{counterReset:`line ${r-1}`}:void 0,children:t.tokens.map((c,d)=>ReactJSXRuntime.jsx("span",{className:l,children:c.length===0||c.length===1&&c[0].content===""?`
99886
- `:c.map((u,m)=>{let p={},g=!!u.bgColor;if(u.color&&(p["--sdm-c"]=u.color),u.bgColor&&(p["--sdm-tbg"]=u.bgColor),u.htmlStyle)for(let[h,b]of Object.entries(u.htmlStyle))h==="color"?p["--sdm-c"]=b:h==="background-color"?(p["--sdm-tbg"]=b,g=true):p[h]=b;return ReactJSXRuntime.jsx("span",{className:a("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",g&&"bg-[var(--sdm-tbg)]",g&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:p,...u.htmlAttrs,children:u.content},m)})},d))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine);var tt=({className:e,language:t,style:o,isIncomplete:n,...r})=>{let s=y();return ReactJSXRuntime.jsx("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":n||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...r})};var ot=React.createContext({code:""}),Ee=()=>React.useContext(ot);var nt=({language:e})=>{let t=y();return ReactJSXRuntime.jsx("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:ReactJSXRuntime.jsx("span",{className:t("ml-1 font-mono lowercase"),children:e})})};var sr=/\n+$/,ar=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_highlighted-body-TPN3WLV5.KkiTbwTD.js'); }).then(e=>({default:e.HighlightedCodeBlockBody}))),rt=({code:e,language:t,className:o,children:n,isIncomplete:r=false,startLine:s,...a})=>{let l=y(),i=React.useMemo(()=>e.replace(sr,""),[e]),c=React.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:i.split(`
99974
+ `:c.map((u,m)=>{let p={},g=!!u.bgColor;if(u.color&&(p["--sdm-c"]=u.color),u.bgColor&&(p["--sdm-tbg"]=u.bgColor),u.htmlStyle)for(let[h,b]of Object.entries(u.htmlStyle))h==="color"?p["--sdm-c"]=b:h==="background-color"?(p["--sdm-tbg"]=b,g=true):p[h]=b;return ReactJSXRuntime.jsx("span",{className:a("text-[var(--sdm-c,inherit)]","dark:text-[var(--shiki-dark,var(--sdm-c,inherit))]",g&&"bg-[var(--sdm-tbg)]",g&&"dark:bg-[var(--shiki-dark-bg,var(--sdm-tbg))]"),style:p,...u.htmlAttrs,children:u.content},m)})},d))})})})},(e,t)=>e.result===t.result&&e.language===t.language&&e.className===t.className&&e.startLine===t.startLine);var tt=({className:e,language:t,style:o,isIncomplete:n,...r})=>{let s=y();return ReactJSXRuntime.jsx("div",{className:s("my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",e),"data-incomplete":n||void 0,"data-language":t,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...r})};var ot=React.createContext({code:""}),Ee=()=>React.useContext(ot);var nt=({language:e})=>{let t=y();return ReactJSXRuntime.jsx("div",{className:t("flex h-8 items-center text-muted-foreground text-xs"),"data-language":e,"data-streamdown":"code-block-header",children:ReactJSXRuntime.jsx("span",{className:t("ml-1 font-mono lowercase"),children:e})})};var sr=/\n+$/,ar=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_highlighted-body-TPN3WLV5.DkI91-Zy.js'); }).then(e=>({default:e.HighlightedCodeBlockBody}))),rt=({code:e,language:t,className:o,children:n,isIncomplete:r=false,startLine:s,...a})=>{let l=y(),i=React.useMemo(()=>e.replace(sr,""),[e]),c=React.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:i.split(`
99887
99975
  `).map(d=>[{content:d,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[i]);return ReactJSXRuntime.jsx(ot.Provider,{value:{code:e},children:ReactJSXRuntime.jsxs(tt,{isIncomplete:r,language:t,children:[ReactJSXRuntime.jsx(nt,{language:t}),n?ReactJSXRuntime.jsx("div",{className:l("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:ReactJSXRuntime.jsx("div",{className:l("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"code-block-actions",children:n})}):null,ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Bt,{className:o,language:t,result:c,startLine:s,...a}),children:ReactJSXRuntime.jsx(ar,{className:o,code:i,language:t,raw:c,startLine:s,...a})})]})})};var Vt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z",fill:"currentColor",fillRule:"evenodd"})}),jt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z",fill:"currentColor",fillRule:"evenodd"})}),Ft=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M8.75 1V1.75V8.68934L10.7197 6.71967L11.25 6.18934L12.3107 7.25L11.7803 7.78033L8.70711 10.8536C8.31658 11.2441 7.68342 11.2441 7.29289 10.8536L4.21967 7.78033L3.68934 7.25L4.75 6.18934L5.28033 6.71967L7.25 8.68934V1.75V1H8.75ZM13.5 9.25V13.5H2.5V9.25V8.5H1V9.25V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.25V8.5H13.5V9.25Z",fill:"currentColor",fillRule:"evenodd"})}),zt=e=>ReactJSXRuntime.jsxs("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:[ReactJSXRuntime.jsx("path",{d:"M8 0V4",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M8 16V12",opacity:"0.5",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M3.29773 1.52783L5.64887 4.7639",opacity:"0.9",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M12.7023 1.52783L10.3511 4.7639",opacity:"0.1",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M12.7023 14.472L10.3511 11.236",opacity:"0.4",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M3.29773 14.472L5.64887 11.236",opacity:"0.6",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M15.6085 5.52783L11.8043 6.7639",opacity:"0.2",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M0.391602 10.472L4.19583 9.23598",opacity:"0.7",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M15.6085 10.4722L11.8043 9.2361",opacity:"0.3",stroke:"currentColor",strokeWidth:"1.5"}),ReactJSXRuntime.jsx("path",{d:"M0.391602 5.52783L4.19583 6.7639",opacity:"0.8",stroke:"currentColor",strokeWidth:"1.5"})]}),_t=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M1 5.25V6H2.5V5.25V2.5H5.25H6V1H5.25H2C1.44772 1 1 1.44772 1 2V5.25ZM5.25 14.9994H6V13.4994H5.25H2.5V10.7494V9.99939H1V10.7494V13.9994C1 14.5517 1.44772 14.9994 2 14.9994H5.25ZM15 10V10.75V14C15 14.5523 14.5523 15 14 15H10.75H10V13.5H10.75H13.5V10.75V10H15ZM10.75 1H10V2.5H10.75H13.5V5.25V6H15V5.25V2C15 1.44772 14.5523 1 14 1H10.75Z",fill:"currentColor",fillRule:"evenodd"})}),qt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M13.5 8C13.5 4.96643 11.0257 2.5 7.96452 2.5C5.42843 2.5 3.29365 4.19393 2.63724 6.5H5.25H6V8H5.25H0.75C0.335787 8 0 7.66421 0 7.25V2.75V2H1.5V2.75V5.23347C2.57851 2.74164 5.06835 1 7.96452 1C11.8461 1 15 4.13001 15 8C15 11.87 11.8461 15 7.96452 15C5.62368 15 3.54872 13.8617 2.27046 12.1122L1.828 11.5066L3.03915 10.6217L3.48161 11.2273C4.48831 12.6051 6.12055 13.5 7.96452 13.5C11.0257 13.5 13.5 11.0336 13.5 8Z",fill:"currentColor",fillRule:"evenodd"})}),$t=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z",fill:"currentColor",fillRule:"evenodd"})}),Wt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M13.5 10.25V13.25C13.5 13.3881 13.3881 13.5 13.25 13.5H2.75C2.61193 13.5 2.5 13.3881 2.5 13.25L2.5 2.75C2.5 2.61193 2.61193 2.5 2.75 2.5H5.75H6.5V1H5.75H2.75C1.7835 1 1 1.7835 1 2.75V13.25C1 14.2165 1.7835 15 2.75 15H13.25C14.2165 15 15 14.2165 15 13.25V10.25V9.5H13.5V10.25ZM9 1H9.75H14.2495C14.6637 1 14.9995 1.33579 14.9995 1.75V6.25V7H13.4995V6.25V3.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L12.4388 2.5H9.75H9V1Z",fill:"currentColor",fillRule:"evenodd"})}),Zt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H5.875V4.75V4.125H7.125V4.75V5.875H8.25H8.875V7.125H8.25H7.125V8.25V8.875H5.875V8.25V7.125H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})}),Xt=e=>ReactJSXRuntime.jsx("svg",{color:"currentColor",height:16,strokeLinejoin:"round",viewBox:"0 0 16 16",width:16,...e,children:ReactJSXRuntime.jsx("path",{clipRule:"evenodd",d:"M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0ZM4.125 5.875H4.75H8.25H8.875V7.125H8.25H4.75H4.125V5.875Z",fill:"currentColor",fillRule:"evenodd"})});var we={CheckIcon:Vt,CopyIcon:jt,DownloadIcon:Ft,ExternalLinkIcon:Wt,Loader2Icon:zt,Maximize2Icon:_t,RotateCcwIcon:qt,XIcon:$t,ZoomInIcon:Zt,ZoomOutIcon:Xt},Kt=React.createContext(we),mr=(e,t)=>{if(e===t)return true;if(!(e&&t))return e===t;let o=Object.keys(e),n=Object.keys(t);return o.length!==n.length?false:o.every(r=>e[r]===t[r])},st=({icons:e,children:t})=>{let o=React.useRef(e),n=React.useRef(e?{...we,...e}:we);mr(o.current,e)||(o.current=e,n.current=e?{...we,...e}:we);let r=n.current;return ReactJSXRuntime.jsx(Kt.Provider,{value:r,children:t})},L=()=>React.useContext(Kt);var He={copyCode:"Copy Code",downloadFile:"Download file",downloadDiagram:"Download diagram",downloadDiagramAsSvg:"Download diagram as SVG",downloadDiagramAsPng:"Download diagram as PNG",downloadDiagramAsMmd:"Download diagram as MMD",viewFullscreen:"View fullscreen",exitFullscreen:"Exit fullscreen",mermaidFormatSvg:"SVG",mermaidFormatPng:"PNG",mermaidFormatMmd:"MMD",copyTable:"Copy table",copyTableAsMarkdown:"Copy table as Markdown",copyTableAsCsv:"Copy table as CSV",copyTableAsTsv:"Copy table as TSV",downloadTable:"Download table",downloadTableAsCsv:"Download table as CSV",downloadTableAsMarkdown:"Download table as Markdown",tableFormatMarkdown:"Markdown",tableFormatCsv:"CSV",tableFormatTsv:"TSV",imageNotAvailable:"Image not available",downloadImage:"Download image",openExternalLink:"Open external link?",externalLinkWarning:"You're about to visit an external website.",close:"Close",copyLink:"Copy link",copied:"Copied",openLink:"Open link"},De=React.createContext(He),B=()=>React.useContext(De);var Be=({onCopy:e,onError:t,timeout:o=2e3,children:n,className:r,code:s,...a})=>{let l=y(),[i,c]=React.useState(false),d=React.useRef(0),{code:u}=Ee(),{isAnimating:m}=React.useContext(R),p=B(),g=s!=null?s:u,h=async()=>{var T;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.writeText)){t==null||t(new Error("Clipboard API not available"));return}try{i||(await navigator.clipboard.writeText(g),c(!0),e==null||e(),d.current=window.setTimeout(()=>c(!1),o));}catch(x){t==null||t(x);}};React.useEffect(()=>()=>{window.clearTimeout(d.current);},[]);let b=L(),f=i?b.CheckIcon:b.CopyIcon;return ReactJSXRuntime.jsx("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),"data-streamdown":"code-block-copy-button",disabled:m,onClick:h,title:p.copyCode,type:"button",...a,children:n!=null?n:ReactJSXRuntime.jsx(f,{size:14})})};var Gt={"1c":"1c","1c-query":"1cq",abap:"abap","actionscript-3":"as",ada:"ada",adoc:"adoc","angular-html":"html","angular-ts":"ts",apache:"conf",apex:"cls",apl:"apl",applescript:"applescript",ara:"ara",asciidoc:"adoc",asm:"asm",astro:"astro",awk:"awk",ballerina:"bal",bash:"sh",bat:"bat",batch:"bat",be:"be",beancount:"beancount",berry:"berry",bibtex:"bib",bicep:"bicep",blade:"blade.php",bsl:"bsl",c:"c","c#":"cs","c++":"cpp",cadence:"cdc",cairo:"cairo",cdc:"cdc",clarity:"clar",clj:"clj",clojure:"clj","closure-templates":"soy",cmake:"cmake",cmd:"cmd",cobol:"cob",codeowners:"CODEOWNERS",codeql:"ql",coffee:"coffee",coffeescript:"coffee","common-lisp":"lisp",console:"sh",coq:"v",cpp:"cpp",cql:"cql",crystal:"cr",cs:"cs",csharp:"cs",css:"css",csv:"csv",cue:"cue",cypher:"cql",d:"d",dart:"dart",dax:"dax",desktop:"desktop",diff:"diff",docker:"dockerfile",dockerfile:"dockerfile",dotenv:"env","dream-maker":"dm",edge:"edge",elisp:"el",elixir:"ex",elm:"elm","emacs-lisp":"el",erb:"erb",erl:"erl",erlang:"erl",f:"f","f#":"fs",f03:"f03",f08:"f08",f18:"f18",f77:"f77",f90:"f90",f95:"f95",fennel:"fnl",fish:"fish",fluent:"ftl",for:"for","fortran-fixed-form":"f","fortran-free-form":"f90",fs:"fs",fsharp:"fs",fsl:"fsl",ftl:"ftl",gdresource:"tres",gdscript:"gd",gdshader:"gdshader",genie:"gs",gherkin:"feature","git-commit":"gitcommit","git-rebase":"gitrebase",gjs:"js",gleam:"gleam","glimmer-js":"js","glimmer-ts":"ts",glsl:"glsl",gnuplot:"plt",go:"go",gql:"gql",graphql:"graphql",groovy:"groovy",gts:"gts",hack:"hack",haml:"haml",handlebars:"hbs",haskell:"hs",haxe:"hx",hbs:"hbs",hcl:"hcl",hjson:"hjson",hlsl:"hlsl",hs:"hs",html:"html","html-derivative":"html",http:"http",hxml:"hxml",hy:"hy",imba:"imba",ini:"ini",jade:"jade",java:"java",javascript:"js",jinja:"jinja",jison:"jison",jl:"jl",js:"js",json:"json",json5:"json5",jsonc:"jsonc",jsonl:"jsonl",jsonnet:"jsonnet",jssm:"jssm",jsx:"jsx",julia:"jl",kotlin:"kt",kql:"kql",kt:"kt",kts:"kts",kusto:"kql",latex:"tex",lean:"lean",lean4:"lean",less:"less",liquid:"liquid",lisp:"lisp",lit:"lit",llvm:"ll",log:"log",logo:"logo",lua:"lua",luau:"luau",make:"mak",makefile:"mak",markdown:"md",marko:"marko",matlab:"m",md:"md",mdc:"mdc",mdx:"mdx",mediawiki:"wiki",mermaid:"mmd",mips:"s",mipsasm:"s",mmd:"mmd",mojo:"mojo",move:"move",nar:"nar",narrat:"narrat",nextflow:"nf",nf:"nf",nginx:"conf",nim:"nim",nix:"nix",nu:"nu",nushell:"nu",objc:"m","objective-c":"m","objective-cpp":"mm",ocaml:"ml",pascal:"pas",perl:"pl",perl6:"p6",php:"php",plsql:"pls",po:"po",polar:"polar",postcss:"pcss",pot:"pot",potx:"potx",powerquery:"pq",powershell:"ps1",prisma:"prisma",prolog:"pl",properties:"properties",proto:"proto",protobuf:"proto",ps:"ps",ps1:"ps1",pug:"pug",puppet:"pp",purescript:"purs",py:"py",python:"py",ql:"ql",qml:"qml",qmldir:"qmldir",qss:"qss",r:"r",racket:"rkt",raku:"raku",razor:"cshtml",rb:"rb",reg:"reg",regex:"regex",regexp:"regexp",rel:"rel",riscv:"s",rs:"rs",rst:"rst",ruby:"rb",rust:"rs",sas:"sas",sass:"sass",scala:"scala",scheme:"scm",scss:"scss",sdbl:"sdbl",sh:"sh",shader:"shader",shaderlab:"shader",shell:"sh",shellscript:"sh",shellsession:"sh",smalltalk:"st",solidity:"sol",soy:"soy",sparql:"rq",spl:"spl",splunk:"spl",sql:"sql","ssh-config":"config",stata:"do",styl:"styl",stylus:"styl",svelte:"svelte",swift:"swift","system-verilog":"sv",systemd:"service",talon:"talon",talonscript:"talon",tasl:"tasl",tcl:"tcl",templ:"templ",terraform:"tf",tex:"tex",tf:"tf",tfvars:"tfvars",toml:"toml",ts:"ts","ts-tags":"ts",tsp:"tsp",tsv:"tsv",tsx:"tsx",turtle:"ttl",twig:"twig",typ:"typ",typescript:"ts",typespec:"tsp",typst:"typ",v:"v",vala:"vala",vb:"vb",verilog:"v",vhdl:"vhdl",vim:"vim",viml:"vim",vimscript:"vim",vue:"vue","vue-html":"html","vue-vine":"vine",vy:"vy",vyper:"vy",wasm:"wasm",wenyan:"wy",wgsl:"wgsl",wiki:"wiki",wikitext:"wiki",wit:"wit",wl:"wl",wolfram:"wl",xml:"xml",xsl:"xsl",yaml:"yaml",yml:"yml",zenscript:"zs",zig:"zig",zsh:"zsh",\u6587\u8A00:"wy"},at=({onDownload:e,onError:t,language:o,children:n,className:r,code:s,...a})=>{let l=y(),{code:i}=Ee(),{isAnimating:c}=React.useContext(R),d=B(),u=L(),m=s!=null?s:i,g=`file.${o&&o in Gt?Gt[o]:"txt"}`,h="text/plain",b=()=>{try{J(g,m,h),e==null||e();}catch(f){t==null||t(f);}};return ReactJSXRuntime.jsx("button",{className:l("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),"data-streamdown":"code-block-download-button",disabled:c,onClick:b,title:d.downloadFile,type:"button",...a,children:n!=null?n:ReactJSXRuntime.jsx(u.DownloadIcon,{size:14})})};var Ae=()=>{let{Loader2Icon:e}=L(),t=y();return ReactJSXRuntime.jsxs("div",{className:t("w-full divide-y divide-border overflow-hidden rounded-xl border border-border"),children:[ReactJSXRuntime.jsx("div",{className:t("h-[46px] w-full bg-muted/80")}),ReactJSXRuntime.jsx("div",{className:t("flex w-full items-center justify-center p-4"),children:ReactJSXRuntime.jsx(e,{className:t("size-4 animate-spin")})})]})};var xr=/\.[^/.]+$/,to=({node:e,className:t,src:o,alt:n,onLoad:r,onError:s,...a})=>{let{DownloadIcon:l}=L(),i=y(),c=React.useRef(null),[d,u]=React.useState(false),[m,p]=React.useState(false),g=B(),h=a.width!=null||a.height!=null,b=(d||h)&&!m,f=m&&!h;React.useEffect(()=>{let k=c.current;if(k!=null&&k.complete){let I=k.naturalWidth>0;u(I),p(!I);}},[]);let T=React.useCallback(k=>{u(true),p(false),r==null||r(k);},[r]),x=React.useCallback(k=>{u(false),p(true),s==null||s(k);},[s]),w=async()=>{if(o)try{let I=await(await fetch(o)).blob(),S=new URL(o,window.location.origin).pathname.split("/").pop()||"",F=S.split(".").pop(),z=S.includes(".")&&F!==void 0&&F.length<=4,q="";if(z)q=S;else {let A=I.type,K="png";A.includes("jpeg")||A.includes("jpg")?K="jpg":A.includes("png")?K="png":A.includes("svg")?K="svg":A.includes("gif")?K="gif":A.includes("webp")&&(K="webp"),q=`${(n||S||"image").replace(xr,"")}.${K}`;}J(q,I,I.type);}catch(k){window.open(o,"_blank");}};return o?ReactJSXRuntime.jsxs("div",{className:i("group relative my-4 inline-block"),"data-streamdown":"image-wrapper",children:[ReactJSXRuntime.jsx("img",{alt:n,className:i("max-w-full rounded-lg",f&&"hidden",t),"data-streamdown":"image",onError:x,onLoad:T,ref:c,src:o,...a}),f&&ReactJSXRuntime.jsx("span",{className:i("text-muted-foreground text-xs italic"),"data-streamdown":"image-fallback",children:g.imageNotAvailable}),ReactJSXRuntime.jsx("div",{className:i("pointer-events-none absolute inset-0 hidden rounded-lg bg-black/10 group-hover:block")}),b&&ReactJSXRuntime.jsx("button",{className:i("absolute right-2 bottom-2 flex h-8 w-8 cursor-pointer items-center justify-center rounded-md border border-border bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 hover:bg-background","opacity-0 group-hover:opacity-100"),onClick:w,title:g.downloadImage,type:"button",children:ReactJSXRuntime.jsx(l,{size:14})})]}):null};var ke=0,le=()=>{ke+=1,ke===1&&(document.body.style.overflow="hidden");},ce=()=>{ke=Math.max(0,ke-1),ke===0&&(document.body.style.overflow="");};var ro=({url:e,isOpen:t,onClose:o,onConfirm:n})=>{let{CheckIcon:r,CopyIcon:s,ExternalLinkIcon:a,XIcon:l}=L(),i=y(),[c,d]=React.useState(false),u=B(),m=React.useCallback(async()=>{try{await navigator.clipboard.writeText(e),d(!0),setTimeout(()=>d(!1),2e3);}catch(g){}},[e]),p=React.useCallback(()=>{n(),o();},[n,o]);return React.useEffect(()=>{if(t){le();let g=h=>{h.key==="Escape"&&o();};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g),ce();}}},[t,o]),t?ReactJSXRuntime.jsx("div",{className:i("fixed inset-0 z-50 flex items-center justify-center bg-background/50 backdrop-blur-sm"),"data-streamdown":"link-safety-modal",onClick:o,onKeyDown:g=>{g.key==="Escape"&&o();},role:"button",tabIndex:0,children:ReactJSXRuntime.jsxs("div",{className:i("relative mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border bg-background p-6 shadow-lg"),onClick:g=>g.stopPropagation(),onKeyDown:g=>g.stopPropagation(),role:"presentation",children:[ReactJSXRuntime.jsx("button",{className:i("absolute top-4 right-4 rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:o,title:u.close,type:"button",children:ReactJSXRuntime.jsx(l,{size:16})}),ReactJSXRuntime.jsxs("div",{className:i("flex flex-col gap-2"),children:[ReactJSXRuntime.jsxs("div",{className:i("flex items-center gap-2 font-semibold text-lg"),children:[ReactJSXRuntime.jsx(a,{size:20}),ReactJSXRuntime.jsx("span",{children:u.openExternalLink})]}),ReactJSXRuntime.jsx("p",{className:i("text-muted-foreground text-sm"),children:u.externalLinkWarning})]}),ReactJSXRuntime.jsx("div",{className:i("break-all rounded-md bg-muted p-3 font-mono text-sm",e.length>100&&"max-h-32 overflow-y-auto"),children:e}),ReactJSXRuntime.jsxs("div",{className:i("flex gap-2"),children:[ReactJSXRuntime.jsx("button",{className:i("flex flex-1 items-center justify-center gap-2 rounded-md border bg-background px-4 py-2 font-medium text-sm transition-all hover:bg-muted"),onClick:m,type:"button",children:c?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx(r,{size:14}),ReactJSXRuntime.jsx("span",{children:u.copied})]}):ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx(s,{size:14}),ReactJSXRuntime.jsx("span",{children:u.copyLink})]})}),ReactJSXRuntime.jsxs("button",{className:i("flex flex-1 items-center justify-center gap-2 rounded-md bg-primary px-4 py-2 font-medium text-primary-foreground text-sm transition-all hover:bg-primary/90"),onClick:p,type:"button",children:[ReactJSXRuntime.jsx(a,{size:14}),ReactJSXRuntime.jsx("span",{children:u.openLink})]})]})]})}):null};var Oe=React.createContext(null),lt=()=>React.useContext(Oe),Mi=()=>{var t;let e=lt();return (t=e==null?void 0:e.code)!=null?t:null},de=()=>{var t;let e=lt();return (t=e==null?void 0:e.mermaid)!=null?t:null};var so=e=>{var o;let t=lt();return t!=null&&t.renderers&&e&&(o=t.renderers.find(n=>Array.isArray(n.language)?n.language.includes(e):n.language===e))!=null?o:null};var ao=(e,t)=>{var n;let o=(n=void 0)!=null?n:5;return new Promise((r,s)=>{let a="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(e))),l=new Image;l.crossOrigin="anonymous",l.onload=()=>{let i=document.createElement("canvas"),c=l.width*o,d=l.height*o;i.width=c,i.height=d;let u=i.getContext("2d");if(!u){s(new Error("Failed to create 2D canvas context for PNG export"));return}u.drawImage(l,0,0,c,d),i.toBlob(m=>{if(!m){s(new Error("Failed to create PNG blob"));return}r(m);},"image/png");},l.onerror=()=>s(new Error("Failed to load SVG image")),l.src=a;})};var lo=({chart:e,children:t,className:o,onDownload:n,config:r,onError:s})=>{let a=y(),[l,i]=React.useState(false),c=React.useRef(null),{isAnimating:d}=React.useContext(R),u=L(),m=de(),p=B(),g=async h=>{try{if(h==="mmd"){J("diagram.mmd",e,"text/plain"),i(!1),n==null||n(h);return}if(!m){s==null||s(new Error("Mermaid plugin not available"));return}let b=m.getMermaid(r),f=e.split("").reduce((w,k)=>(w<<5)-w+k.charCodeAt(0)|0,0),T=`mermaid-${Math.abs(f)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:x}=await b.render(T,e);if(!x){s==null||s(new Error("SVG not found. Please wait for the diagram to render."));return}if(h==="svg"){J("diagram.svg",x,"image/svg+xml"),i(!1),n==null||n(h);return}if(h==="png"){let w=await ao(x);J("diagram.png",w,"image/png"),n==null||n(h),i(!1);return}}catch(b){s==null||s(b);}};return React.useEffect(()=>{let h=b=>{let f=b.composedPath();c.current&&!f.includes(c.current)&&i(false);};return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h);}},[]),ReactJSXRuntime.jsxs("div",{className:a("relative"),ref:c,children:[ReactJSXRuntime.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",o),disabled:d,onClick:()=>i(!l),title:p.downloadDiagram,type:"button",children:t!=null?t:ReactJSXRuntime.jsx(u.DownloadIcon,{size:14})}),l?ReactJSXRuntime.jsxs("div",{className:a("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("svg"),title:p.downloadDiagramAsSvg,type:"button",children:p.mermaidFormatSvg}),ReactJSXRuntime.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("png"),title:p.downloadDiagramAsPng,type:"button",children:p.mermaidFormatPng}),ReactJSXRuntime.jsx("button",{className:a("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("mmd"),title:p.downloadDiagramAsMmd,type:"button",children:p.mermaidFormatMmd})]}):null]})};var po=({chart:e,config:t,onFullscreen:o,onExit:n,className:r,...s})=>{let{Maximize2Icon:a,XIcon:l}=L(),i=y(),[c,d]=React.useState(false),{isAnimating:u,controls:m}=React.useContext(R),p=B(),g=(()=>{if(typeof m=="boolean")return m;let b=m.mermaid;return b===false?false:b===true||b===void 0?true:b.panZoom!==false})(),h=()=>{d(!c);};return React.useEffect(()=>{if(c){le();let b=f=>{f.key==="Escape"&&d(false);};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b),ce();}}},[c]),React.useEffect(()=>{c?o==null||o():n&&n();},[c,o,n]),ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:i("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",r),disabled:u,onClick:h,title:p.viewFullscreen,type:"button",...s,children:ReactJSXRuntime.jsx(a,{size:14})}),c?ReactDOM.createPortal(ReactJSXRuntime.jsxs("div",{className:i("fixed inset-0 z-50 flex items-center justify-center bg-background/95 backdrop-blur-sm"),onClick:h,onKeyDown:b=>{b.key==="Escape"&&h();},role:"button",tabIndex:0,children:[ReactJSXRuntime.jsx("button",{className:i("absolute top-4 right-4 z-10 rounded-md p-2 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:h,title:p.exitFullscreen,type:"button",children:ReactJSXRuntime.jsx(l,{size:20})}),ReactJSXRuntime.jsx("div",{className:i("flex size-full items-center justify-center p-4"),onClick:b=>b.stopPropagation(),onKeyDown:b=>b.stopPropagation(),role:"presentation",children:ReactJSXRuntime.jsx(uo,{chart:e,className:i("size-full [&_svg]:h-auto [&_svg]:w-auto"),config:t,fullscreen:true,showControls:g})})]}),document.body):null]})};var ue=e=>{var s,a;let t=[],o=[],n=e.querySelectorAll("thead th");for(let l of n)t.push(((s=l.textContent)==null?void 0:s.trim())||"");let r=e.querySelectorAll("tbody tr");for(let l of r){let i=[],c=l.querySelectorAll("td");for(let d of c)i.push(((a=d.textContent)==null?void 0:a.trim())||"");o.push(i);}return {headers:t,rows:o}},oe=e=>{let{headers:t,rows:o}=e,n=l=>{let i=false,c=false;for(let d of l){if(d==='"'){i=true,c=true;break}(d===","||d===`
99888
99976
  `)&&(i=true);}return i?c?`"${l.replace(/"/g,'""')}"`:`"${l}"`:l},r=t.length>0?o.length+1:o.length,s=new Array(r),a=0;t.length>0&&(s[a]=t.map(n).join(","),a+=1);for(let l of o)s[a]=l.map(n).join(","),a+=1;return s.join(`
99889
99977
  `)},ct=e=>{let{headers:t,rows:o}=e,n=l=>{let i=false;for(let d of l)if(d===" "||d===`
99890
99978
  `||d==="\r"){i=true;break}if(!i)return l;let c=[];for(let d of l)d===" "?c.push("\\t"):d===`
99891
99979
  `?c.push("\\n"):d==="\r"?c.push("\\r"):c.push(d);return c.join("")},r=t.length>0?o.length+1:o.length,s=new Array(r),a=0;t.length>0&&(s[a]=t.map(n).join(" "),a+=1);for(let l of o)s[a]=l.map(n).join(" "),a+=1;return s.join(`
99892
99980
  `)},Ve=e=>{let t=false;for(let n of e)if(n==="\\"||n==="|"){t=true;break}if(!t)return e;let o=[];for(let n of e)n==="\\"?o.push("\\\\"):n==="|"?o.push("\\|"):o.push(n);return o.join("")},ne=e=>{let{headers:t,rows:o}=e;if(t.length===0)return "";let n=new Array(o.length+2),r=0,s=t.map(l=>Ve(l));n[r]=`| ${s.join(" | ")} |`,r+=1;let a=new Array(t.length);for(let l=0;l<t.length;l+=1)a[l]="---";n[r]=`| ${a.join(" | ")} |`,r+=1;for(let l of o)if(l.length<t.length){let i=new Array(t.length);for(let c=0;c<t.length;c+=1)i[c]=c<l.length?Ve(l[c]):"";n[r]=`| ${i.join(" | ")} |`,r+=1;}else {let i=l.map(c=>Ve(c));n[r]=`| ${i.join(" | ")} |`,r+=1;}return n.join(`
99893
- `)};var Te=({children:e,className:t,onCopy:o,onError:n,timeout:r=2e3})=>{let s=y(),[a,l]=React.useState(false),[i,c]=React.useState(false),d=React.useRef(null),u=React.useRef(0),{isAnimating:m}=React.useContext(R),p=B(),g=async f=>{var T,x;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.write)){n==null||n(new Error("Clipboard API not available"));return}try{let w=(x=d.current)==null?void 0:x.closest('[data-streamdown="table-wrapper"]'),k=w==null?void 0:w.querySelector("table");if(!k){n==null||n(new Error("Table not found"));return}let I=ue(k),F=({csv:oe,tsv:ct,md:ne}[f]||ne)(I),z=new ClipboardItem({"text/plain":new Blob([F],{type:"text/plain"}),"text/html":new Blob([k.outerHTML],{type:"text/html"})});await navigator.clipboard.write([z]),c(!0),l(!1),o==null||o(f),u.current=window.setTimeout(()=>c(!1),r);}catch(w){n==null||n(w);}};React.useEffect(()=>{let f=T=>{let x=T.composedPath();d.current&&!x.includes(d.current)&&l(false);};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f),window.clearTimeout(u.current);}},[]);let h=L(),b=i?h.CheckIcon:h.CopyIcon;return ReactJSXRuntime.jsxs("div",{className:s("relative"),ref:d,children:[ReactJSXRuntime.jsx("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>l(!a),title:p.copyTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(b,{height:14,width:14})}),a?ReactJSXRuntime.jsxs("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("md"),title:p.copyTableAsMarkdown,type:"button",children:p.tableFormatMarkdown}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("csv"),title:p.copyTableAsCsv,type:"button",children:p.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("tsv"),title:p.copyTableAsTsv,type:"button",children:p.tableFormatTsv})]}):null]})};var Pe=({children:e,className:t,onDownload:o,onError:n})=>{let r=y(),[s,a]=React.useState(false),l=React.useRef(null),{isAnimating:i}=React.useContext(R),c=B(),d=L(),u=m=>{var p;try{let g=(p=l.current)==null?void 0:p.closest('[data-streamdown="table-wrapper"]'),h=g==null?void 0:g.querySelector("table");if(!h){n==null||n(new Error("Table not found"));return}let b=ue(h),f=m==="csv"?oe(b):ne(b);J(`table.${m==="csv"?"csv":"md"}`,f,m==="csv"?"text/csv":"text/markdown"),a(!1),o==null||o(m);}catch(g){n==null||n(g);}};return React.useEffect(()=>{let m=p=>{let g=p.composedPath();l.current&&!g.includes(l.current)&&a(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),ReactJSXRuntime.jsxs("div",{className:r("relative"),ref:l,children:[ReactJSXRuntime.jsx("button",{className:r("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>a(!s),title:c.downloadTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(d.DownloadIcon,{size:14})}),s?ReactJSXRuntime.jsxs("div",{className:r("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("csv"),title:c.downloadTableAsCsv,type:"button",children:c.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("markdown"),title:c.downloadTableAsMarkdown,type:"button",children:c.tableFormatMarkdown})]}):null]})};var wo=({children:e,className:t,showCopy:o=true,showDownload:n=true})=>{let{Maximize2Icon:r,XIcon:s}=L(),a=y(),[l,i]=React.useState(false),{isAnimating:c}=React.useContext(R),d=B(),u=()=>{i(true);},m=()=>{i(false);};return React.useEffect(()=>{if(l){le();let p=g=>{g.key==="Escape"&&i(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),ce();}}},[l]),ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:c,onClick:u,title:d.viewFullscreen,type:"button",children:ReactJSXRuntime.jsx(r,{size:14})}),l?ReactDOM.createPortal(ReactJSXRuntime.jsx("div",{"aria-label":d.viewFullscreen,"aria-modal":"true",className:a("fixed inset-0 z-50 flex flex-col bg-background"),"data-streamdown":"table-fullscreen",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"dialog",children:ReactJSXRuntime.jsxs("div",{className:a("flex h-full flex-col"),onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:[ReactJSXRuntime.jsxs("div",{className:a("flex items-center justify-end gap-1 p-4"),children:[o?ReactJSXRuntime.jsx(Te,{}):null,n?ReactJSXRuntime.jsx(Pe,{}):null,ReactJSXRuntime.jsx("button",{className:a("rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:m,title:d.exitFullscreen,type:"button",children:ReactJSXRuntime.jsx(s,{size:20})})]}),ReactJSXRuntime.jsx("div",{className:a("flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10"),children:ReactJSXRuntime.jsx("table",{className:a("w-full border-collapse border border-border"),"data-streamdown":"table",children:e})})]})}),document.body):null]})};var ko=({children:e,className:t,showControls:o,showCopy:n=true,showDownload:r=true,showFullscreen:s=true,...a})=>{let l=y(),i=o&&n,c=o&&r,d=o&&s,u=i||c||d;return ReactJSXRuntime.jsxs("div",{className:l("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"),"data-streamdown":"table-wrapper",children:[u?ReactJSXRuntime.jsxs("div",{className:l("flex items-center justify-end gap-1"),children:[i?ReactJSXRuntime.jsx(Te,{}):null,c?ReactJSXRuntime.jsx(Pe,{}):null,d?ReactJSXRuntime.jsx(wo,{showCopy:i,showDownload:c,children:e}):null]}):null,ReactJSXRuntime.jsx("div",{className:l("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx("table",{className:l("w-full divide-y divide-border",t),"data-streamdown":"table",...a,children:e})})]})};var Gr=/startLine=(\d+)/,Yr=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_mermaid-O7DHMXV3.Ikv4jEiV.js'); }).then(e=>({default:e.Mermaid}))),Qr=/language-([^\s]+)/;function _e(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let o=e.position.start,n=t.position.start,r=e.position.end,s=t.position.end;return (o==null?void 0:o.line)===(n==null?void 0:n.line)&&(o==null?void 0:o.column)===(n==null?void 0:n.column)&&(r==null?void 0:r.line)===(s==null?void 0:s.line)&&(r==null?void 0:r.column)===(s==null?void 0:s.column)}function E(e,t){return e.className===t.className&&_e(e.node,t.node)}var pt=(e,t)=>typeof e=="boolean"?e:e[t]!==false,ut=(e,t)=>{if(typeof e=="boolean")return e;let o=e.table;return o===false?false:o===true||o===void 0?true:o[t]!==false},xo=(e,t)=>{if(typeof e=="boolean")return e;let o=e.code;return o===false?false:o===true||o===void 0?true:o[t]!==false},je=(e,t)=>{if(typeof e=="boolean")return e;let o=e.mermaid;return o===false?false:o===true||o===void 0?true:o[t]!==false},gt=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ol",{className:r("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e})},(e,t)=>E(e,t));gt.displayName="MarkdownOl";var To=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("li",{className:r("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e})},(e,t)=>e.className===t.className&&_e(e.node,t.node));To.displayName="MarkdownLi";var Po=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ul",{className:r("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e})},(e,t)=>E(e,t));Po.displayName="MarkdownUl";var Mo=React.memo(({className:e,node:t,...o})=>{let n=y();return ReactJSXRuntime.jsx("hr",{className:n("my-6 border-border",e),"data-streamdown":"horizontal-rule",...o})},(e,t)=>E(e,t));Mo.displayName="MarkdownHr";var Io=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("span",{className:r("font-semibold",t),"data-streamdown":"strong",...n,children:e})},(e,t)=>E(e,t));Io.displayName="MarkdownStrong";var es=({children:e,className:t,href:o,node:n,...r})=>{let s=y(),{linkSafety:a}=React.useContext(R),[l,i]=React.useState(false),c=o==="streamdown:incomplete-link",d=React.useCallback(async g=>{if(!(!(a!=null&&a.enabled&&o)||c)){if(g.preventDefault(),a.onLinkCheck&&await a.onLinkCheck(o)){window.open(o,"_blank","noreferrer");return}i(true);}},[a,o,c]),u=React.useCallback(()=>{o&&window.open(o,"_blank","noreferrer");},[o]),m=React.useCallback(()=>{i(false);},[]),p={url:o!=null?o:"",isOpen:l,onClose:m,onConfirm:u};return a!=null&&a.enabled&&o?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:s("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",onClick:d,type:"button",children:e}),a.renderModal?a.renderModal(p):ReactJSXRuntime.jsx(ro,{...p})]}):ReactJSXRuntime.jsx("a",{className:s("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",href:o,rel:"noreferrer",target:"_blank",...r,children:e})},No=React.memo(es,(e,t)=>E(e,t)&&e.href===t.href);No.displayName="MarkdownA";var Lo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h1",{className:r("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e})},(e,t)=>E(e,t));Lo.displayName="MarkdownH1";var Ro=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h2",{className:r("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e})},(e,t)=>E(e,t));Ro.displayName="MarkdownH2";var So=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h3",{className:r("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e})},(e,t)=>E(e,t));So.displayName="MarkdownH3";var Eo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h4",{className:r("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e})},(e,t)=>E(e,t));Eo.displayName="MarkdownH4";var Ho=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h5",{className:r("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e})},(e,t)=>E(e,t));Ho.displayName="MarkdownH5";var Do=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h6",{className:r("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e})},(e,t)=>E(e,t));Do.displayName="MarkdownH6";var Bo=React.memo(({children:e,className:t,node:o,...n})=>{let{controls:r}=React.useContext(R),s=pt(r,"table"),a=ut(r,"copy"),l=ut(r,"download"),i=ut(r,"fullscreen");return ReactJSXRuntime.jsx(ko,{className:t,showControls:s,showCopy:a,showDownload:l,showFullscreen:i,...n,children:e})},(e,t)=>E(e,t));Bo.displayName="MarkdownTable";var Ao=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("thead",{className:r("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e})},(e,t)=>E(e,t));Ao.displayName="MarkdownThead";var Oo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tbody",{className:r("divide-y divide-border",t),"data-streamdown":"table-body",...n,children:e})},(e,t)=>E(e,t));Oo.displayName="MarkdownTbody";var Vo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tr",{className:r("border-border",t),"data-streamdown":"table-row",...n,children:e})},(e,t)=>E(e,t));Vo.displayName="MarkdownTr";var jo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("th",{className:r("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e})},(e,t)=>E(e,t));jo.displayName="MarkdownTh";var Fo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("td",{className:r("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e})},(e,t)=>E(e,t));Fo.displayName="MarkdownTd";var zo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("blockquote",{className:r("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e})},(e,t)=>E(e,t));zo.displayName="MarkdownBlockquote";var _o=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sup",{className:r("text-sm",t),"data-streamdown":"superscript",...n,children:e})},(e,t)=>E(e,t));_o.displayName="MarkdownSup";var qo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sub",{className:r("text-sm",t),"data-streamdown":"subscript",...n,children:e})},(e,t)=>E(e,t));qo.displayName="MarkdownSub";var $o=React.memo(({children:e,className:t,node:o,...n})=>{if("data-footnotes"in n){let s=i=>{var m,p;if(!React.isValidElement(i))return false;let c=Array.isArray(i.props.children)?i.props.children:[i.props.children],d=false,u=false;for(let g of c)if(g){if(typeof g=="string")g.trim()!==""&&(d=true);else if(React.isValidElement(g))if(((m=g.props)==null?void 0:m["data-footnote-backref"])!==void 0)u=true;else {let h=Array.isArray(g.props.children)?g.props.children:[g.props.children];for(let b of h){if(typeof b=="string"&&b.trim()!==""){d=true;break}if(React.isValidElement(b)&&((p=b.props)==null?void 0:p["data-footnote-backref"])===void 0){d=true;break}}}}return u&&!d},a=Array.isArray(e)?e.map(i=>{if(!React.isValidElement(i))return i;if(i.type===gt){let d=(Array.isArray(i.props.children)?i.props.children:[i.props.children]).filter(u=>!s(u));return d.length===0?null:{...i,props:{...i.props,children:d}}}return i}):e;return (Array.isArray(a)?a.some(i=>i!==null):a!==null)?ReactJSXRuntime.jsx("section",{className:t,...n,children:a}):null}return ReactJSXRuntime.jsx("section",{className:t,...n,children:e})},(e,t)=>E(e,t));$o.displayName="MarkdownSection";var ts=({node:e,className:t,children:o,...n})=>{var k,I;let r=y(),s=!("data-block"in n),{mermaid:a,controls:l}=React.useContext(R),i=de(),c=et(),d=t==null?void 0:t.match(Qr),u=(k=d==null?void 0:d.at(1))!=null?k:"",m=so(u);if(s)return ReactJSXRuntime.jsx("code",{className:r("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:o});let p=(I=e==null?void 0:e.properties)==null?void 0:I.metastring,g=p==null?void 0:p.match(Gr),h=g?Number.parseInt(g[1],10):void 0,b=h!==void 0&&h>=1?h:void 0,f="";if(React.isValidElement(o)&&o.props&&typeof o.props=="object"&&"children"in o.props&&typeof o.props.children=="string"?f=o.props.children:typeof o=="string"&&(f=o),m){let H=m.component;return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsx(H,{code:f,isIncomplete:c,language:u})})}if(u==="mermaid"&&i){let H=pt(l,"mermaid"),S=je(l,"download"),F=je(l,"copy"),z=je(l,"fullscreen"),q=je(l,"panZoom"),A=H&&(S||F||z);return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsxs("div",{className:r("group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-streamdown":"mermaid-block",children:[ReactJSXRuntime.jsx("div",{className:r("flex h-8 items-center text-muted-foreground text-xs"),children:ReactJSXRuntime.jsx("span",{className:r("ml-1 font-mono lowercase"),children:"mermaid"})}),A?ReactJSXRuntime.jsx("div",{className:r("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:ReactJSXRuntime.jsxs("div",{className:r("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"mermaid-block-actions",children:[S?ReactJSXRuntime.jsx(lo,{chart:f,config:a==null?void 0:a.config}):null,F?ReactJSXRuntime.jsx(Be,{code:f}):null,z?ReactJSXRuntime.jsx(po,{chart:f,config:a==null?void 0:a.config}):null]})}):null,ReactJSXRuntime.jsx("div",{className:r("rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx(Yr,{chart:f,config:a==null?void 0:a.config,showControls:q})})]})})}let T=pt(l,"code"),x=xo(l,"download"),w=xo(l,"copy");return ReactJSXRuntime.jsx(rt,{className:t,code:f,isIncomplete:c,language:u,startLine:b,children:T?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[x?ReactJSXRuntime.jsx(at,{code:f,language:u}):null,w?ReactJSXRuntime.jsx(Be,{}):null]}):null})},Wo=React.memo(ts,(e,t)=>e.className===t.className&&_e(e.node,t.node));Wo.displayName="MarkdownCode";var Zo=React.memo(to,(e,t)=>e.className===t.className&&_e(e.node,t.node));Zo.displayName="MarkdownImg";var Xo=React.memo(({children:e,node:t,...o})=>{let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");if(r.length===1&&React.isValidElement(r[0])){let s=r[0].props.node,a=s==null?void 0:s.tagName;if(a==="img")return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e});if(a==="code"&&"data-block"in r[0].props)return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e})}return ReactJSXRuntime.jsx("p",{...o,children:e})},(e,t)=>E(e,t));Xo.displayName="MarkdownParagraph";var Jo={ol:gt,li:To,ul:Po,hr:Mo,strong:Io,a:No,h1:Lo,h2:Ro,h3:So,h4:Eo,h5:Ho,h6:Do,table:Bo,thead:Ao,tbody:Oo,tr:Vo,th:jo,td:Fo,blockquote:zo,code:Wo,img:Zo,pre:({children:e})=>React.isValidElement(e)?React.cloneElement(e,{"data-block":"true"}):e,sup:_o,sub:qo,p:Xo,section:$o};var os=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,ns=/\p{L}/u;function qe(e){let t=e.replace(/^#{1,6}\s+/gm,"").replace(/(\*{1,3}|_{1,3})/g,"").replace(/`[^`]*`/g,"").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^[\s>*\-+\d.]+/gm,"");for(let o of t){if(os.test(o))return "rtl";if(ns.test(o))return "ltr"}return "ltr"}var rs=/^[ \t]{0,3}(`{3,}|~{3,})/,ss=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,bt=e=>{let t=e.split(`
99981
+ `)};var Te=({children:e,className:t,onCopy:o,onError:n,timeout:r=2e3})=>{let s=y(),[a,l]=React.useState(false),[i,c]=React.useState(false),d=React.useRef(null),u=React.useRef(0),{isAnimating:m}=React.useContext(R),p=B(),g=async f=>{var T,x;if(typeof window=="undefined"||!((T=navigator==null?void 0:navigator.clipboard)!=null&&T.write)){n==null||n(new Error("Clipboard API not available"));return}try{let w=(x=d.current)==null?void 0:x.closest('[data-streamdown="table-wrapper"]'),k=w==null?void 0:w.querySelector("table");if(!k){n==null||n(new Error("Table not found"));return}let I=ue(k),F=({csv:oe,tsv:ct,md:ne}[f]||ne)(I),z=new ClipboardItem({"text/plain":new Blob([F],{type:"text/plain"}),"text/html":new Blob([k.outerHTML],{type:"text/html"})});await navigator.clipboard.write([z]),c(!0),l(!1),o==null||o(f),u.current=window.setTimeout(()=>c(!1),r);}catch(w){n==null||n(w);}};React.useEffect(()=>{let f=T=>{let x=T.composedPath();d.current&&!x.includes(d.current)&&l(false);};return document.addEventListener("mousedown",f),()=>{document.removeEventListener("mousedown",f),window.clearTimeout(u.current);}},[]);let h=L(),b=i?h.CheckIcon:h.CopyIcon;return ReactJSXRuntime.jsxs("div",{className:s("relative"),ref:d,children:[ReactJSXRuntime.jsx("button",{className:s("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:m,onClick:()=>l(!a),title:p.copyTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(b,{height:14,width:14})}),a?ReactJSXRuntime.jsxs("div",{className:s("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("md"),title:p.copyTableAsMarkdown,type:"button",children:p.tableFormatMarkdown}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("csv"),title:p.copyTableAsCsv,type:"button",children:p.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:s("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>g("tsv"),title:p.copyTableAsTsv,type:"button",children:p.tableFormatTsv})]}):null]})};var Pe=({children:e,className:t,onDownload:o,onError:n})=>{let r=y(),[s,a]=React.useState(false),l=React.useRef(null),{isAnimating:i}=React.useContext(R),c=B(),d=L(),u=m=>{var p;try{let g=(p=l.current)==null?void 0:p.closest('[data-streamdown="table-wrapper"]'),h=g==null?void 0:g.querySelector("table");if(!h){n==null||n(new Error("Table not found"));return}let b=ue(h),f=m==="csv"?oe(b):ne(b);J(`table.${m==="csv"?"csv":"md"}`,f,m==="csv"?"text/csv":"text/markdown"),a(!1),o==null||o(m);}catch(g){n==null||n(g);}};return React.useEffect(()=>{let m=p=>{let g=p.composedPath();l.current&&!g.includes(l.current)&&a(false);};return document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[]),ReactJSXRuntime.jsxs("div",{className:r("relative"),ref:l,children:[ReactJSXRuntime.jsx("button",{className:r("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>a(!s),title:c.downloadTable,type:"button",children:e!=null?e:ReactJSXRuntime.jsx(d.DownloadIcon,{size:14})}),s?ReactJSXRuntime.jsxs("div",{className:r("absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg"),children:[ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("csv"),title:c.downloadTableAsCsv,type:"button",children:c.tableFormatCsv}),ReactJSXRuntime.jsx("button",{className:r("w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40"),onClick:()=>u("markdown"),title:c.downloadTableAsMarkdown,type:"button",children:c.tableFormatMarkdown})]}):null]})};var wo=({children:e,className:t,showCopy:o=true,showDownload:n=true})=>{let{Maximize2Icon:r,XIcon:s}=L(),a=y(),[l,i]=React.useState(false),{isAnimating:c}=React.useContext(R),d=B(),u=()=>{i(true);},m=()=>{i(false);};return React.useEffect(()=>{if(l){le();let p=g=>{g.key==="Escape"&&i(false);};return document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p),ce();}}},[l]),ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:a("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:c,onClick:u,title:d.viewFullscreen,type:"button",children:ReactJSXRuntime.jsx(r,{size:14})}),l?ReactDOM.createPortal(ReactJSXRuntime.jsx("div",{"aria-label":d.viewFullscreen,"aria-modal":"true",className:a("fixed inset-0 z-50 flex flex-col bg-background"),"data-streamdown":"table-fullscreen",onClick:m,onKeyDown:p=>{p.key==="Escape"&&m();},role:"dialog",children:ReactJSXRuntime.jsxs("div",{className:a("flex h-full flex-col"),onClick:p=>p.stopPropagation(),onKeyDown:p=>p.stopPropagation(),role:"presentation",children:[ReactJSXRuntime.jsxs("div",{className:a("flex items-center justify-end gap-1 p-4"),children:[o?ReactJSXRuntime.jsx(Te,{}):null,n?ReactJSXRuntime.jsx(Pe,{}):null,ReactJSXRuntime.jsx("button",{className:a("rounded-md p-1 text-muted-foreground transition-all hover:bg-muted hover:text-foreground"),onClick:m,title:d.exitFullscreen,type:"button",children:ReactJSXRuntime.jsx(s,{size:20})})]}),ReactJSXRuntime.jsx("div",{className:a("flex-1 overflow-auto p-4 pt-0 [&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10"),children:ReactJSXRuntime.jsx("table",{className:a("w-full border-collapse border border-border"),"data-streamdown":"table",children:e})})]})}),document.body):null]})};var ko=({children:e,className:t,showControls:o,showCopy:n=true,showDownload:r=true,showFullscreen:s=true,...a})=>{let l=y(),i=o&&n,c=o&&r,d=o&&s,u=i||c||d;return ReactJSXRuntime.jsxs("div",{className:l("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"),"data-streamdown":"table-wrapper",children:[u?ReactJSXRuntime.jsxs("div",{className:l("flex items-center justify-end gap-1"),children:[i?ReactJSXRuntime.jsx(Te,{}):null,c?ReactJSXRuntime.jsx(Pe,{}):null,d?ReactJSXRuntime.jsx(wo,{showCopy:i,showDownload:c,children:e}):null]}):null,ReactJSXRuntime.jsx("div",{className:l("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx("table",{className:l("w-full divide-y divide-border",t),"data-streamdown":"table",...a,children:e})})]})};var Gr=/startLine=(\d+)/,Yr=React.lazy(()=>Promise.resolve().then(function () { return require('./fthry_mermaid-O7DHMXV3.v4t8IYSq.js'); }).then(e=>({default:e.Mermaid}))),Qr=/language-([^\s]+)/;function _e(e,t){if(!(e!=null&&e.position||t!=null&&t.position))return true;if(!(e!=null&&e.position&&(t!=null&&t.position)))return false;let o=e.position.start,n=t.position.start,r=e.position.end,s=t.position.end;return (o==null?void 0:o.line)===(n==null?void 0:n.line)&&(o==null?void 0:o.column)===(n==null?void 0:n.column)&&(r==null?void 0:r.line)===(s==null?void 0:s.line)&&(r==null?void 0:r.column)===(s==null?void 0:s.column)}function E(e,t){return e.className===t.className&&_e(e.node,t.node)}var pt=(e,t)=>typeof e=="boolean"?e:e[t]!==false,ut=(e,t)=>{if(typeof e=="boolean")return e;let o=e.table;return o===false?false:o===true||o===void 0?true:o[t]!==false},xo=(e,t)=>{if(typeof e=="boolean")return e;let o=e.code;return o===false?false:o===true||o===void 0?true:o[t]!==false},je=(e,t)=>{if(typeof e=="boolean")return e;let o=e.mermaid;return o===false?false:o===true||o===void 0?true:o[t]!==false},gt=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ol",{className:r("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e})},(e,t)=>E(e,t));gt.displayName="MarkdownOl";var To=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("li",{className:r("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e})},(e,t)=>e.className===t.className&&_e(e.node,t.node));To.displayName="MarkdownLi";var Po=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("ul",{className:r("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e})},(e,t)=>E(e,t));Po.displayName="MarkdownUl";var Mo=React.memo(({className:e,node:t,...o})=>{let n=y();return ReactJSXRuntime.jsx("hr",{className:n("my-6 border-border",e),"data-streamdown":"horizontal-rule",...o})},(e,t)=>E(e,t));Mo.displayName="MarkdownHr";var Io=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("span",{className:r("font-semibold",t),"data-streamdown":"strong",...n,children:e})},(e,t)=>E(e,t));Io.displayName="MarkdownStrong";var es=({children:e,className:t,href:o,node:n,...r})=>{let s=y(),{linkSafety:a}=React.useContext(R),[l,i]=React.useState(false),c=o==="streamdown:incomplete-link",d=React.useCallback(async g=>{if(!(!(a!=null&&a.enabled&&o)||c)){if(g.preventDefault(),a.onLinkCheck&&await a.onLinkCheck(o)){window.open(o,"_blank","noreferrer");return}i(true);}},[a,o,c]),u=React.useCallback(()=>{o&&window.open(o,"_blank","noreferrer");},[o]),m=React.useCallback(()=>{i(false);},[]),p={url:o!=null?o:"",isOpen:l,onClose:m,onConfirm:u};return a!=null&&a.enabled&&o?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[ReactJSXRuntime.jsx("button",{className:s("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",onClick:d,type:"button",children:e}),a.renderModal?a.renderModal(p):ReactJSXRuntime.jsx(ro,{...p})]}):ReactJSXRuntime.jsx("a",{className:s("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":c,"data-streamdown":"link",href:o,rel:"noreferrer",target:"_blank",...r,children:e})},No=React.memo(es,(e,t)=>E(e,t)&&e.href===t.href);No.displayName="MarkdownA";var Lo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h1",{className:r("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e})},(e,t)=>E(e,t));Lo.displayName="MarkdownH1";var Ro=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h2",{className:r("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e})},(e,t)=>E(e,t));Ro.displayName="MarkdownH2";var So=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h3",{className:r("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e})},(e,t)=>E(e,t));So.displayName="MarkdownH3";var Eo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h4",{className:r("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e})},(e,t)=>E(e,t));Eo.displayName="MarkdownH4";var Ho=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h5",{className:r("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e})},(e,t)=>E(e,t));Ho.displayName="MarkdownH5";var Do=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("h6",{className:r("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e})},(e,t)=>E(e,t));Do.displayName="MarkdownH6";var Bo=React.memo(({children:e,className:t,node:o,...n})=>{let{controls:r}=React.useContext(R),s=pt(r,"table"),a=ut(r,"copy"),l=ut(r,"download"),i=ut(r,"fullscreen");return ReactJSXRuntime.jsx(ko,{className:t,showControls:s,showCopy:a,showDownload:l,showFullscreen:i,...n,children:e})},(e,t)=>E(e,t));Bo.displayName="MarkdownTable";var Ao=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("thead",{className:r("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e})},(e,t)=>E(e,t));Ao.displayName="MarkdownThead";var Oo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tbody",{className:r("divide-y divide-border",t),"data-streamdown":"table-body",...n,children:e})},(e,t)=>E(e,t));Oo.displayName="MarkdownTbody";var Vo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("tr",{className:r("border-border",t),"data-streamdown":"table-row",...n,children:e})},(e,t)=>E(e,t));Vo.displayName="MarkdownTr";var jo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("th",{className:r("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e})},(e,t)=>E(e,t));jo.displayName="MarkdownTh";var Fo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("td",{className:r("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e})},(e,t)=>E(e,t));Fo.displayName="MarkdownTd";var zo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("blockquote",{className:r("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e})},(e,t)=>E(e,t));zo.displayName="MarkdownBlockquote";var _o=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sup",{className:r("text-sm",t),"data-streamdown":"superscript",...n,children:e})},(e,t)=>E(e,t));_o.displayName="MarkdownSup";var qo=React.memo(({children:e,className:t,node:o,...n})=>{let r=y();return ReactJSXRuntime.jsx("sub",{className:r("text-sm",t),"data-streamdown":"subscript",...n,children:e})},(e,t)=>E(e,t));qo.displayName="MarkdownSub";var $o=React.memo(({children:e,className:t,node:o,...n})=>{if("data-footnotes"in n){let s=i=>{var m,p;if(!React.isValidElement(i))return false;let c=Array.isArray(i.props.children)?i.props.children:[i.props.children],d=false,u=false;for(let g of c)if(g){if(typeof g=="string")g.trim()!==""&&(d=true);else if(React.isValidElement(g))if(((m=g.props)==null?void 0:m["data-footnote-backref"])!==void 0)u=true;else {let h=Array.isArray(g.props.children)?g.props.children:[g.props.children];for(let b of h){if(typeof b=="string"&&b.trim()!==""){d=true;break}if(React.isValidElement(b)&&((p=b.props)==null?void 0:p["data-footnote-backref"])===void 0){d=true;break}}}}return u&&!d},a=Array.isArray(e)?e.map(i=>{if(!React.isValidElement(i))return i;if(i.type===gt){let d=(Array.isArray(i.props.children)?i.props.children:[i.props.children]).filter(u=>!s(u));return d.length===0?null:{...i,props:{...i.props,children:d}}}return i}):e;return (Array.isArray(a)?a.some(i=>i!==null):a!==null)?ReactJSXRuntime.jsx("section",{className:t,...n,children:a}):null}return ReactJSXRuntime.jsx("section",{className:t,...n,children:e})},(e,t)=>E(e,t));$o.displayName="MarkdownSection";var ts=({node:e,className:t,children:o,...n})=>{var k,I;let r=y(),s=!("data-block"in n),{mermaid:a,controls:l}=React.useContext(R),i=de(),c=et(),d=t==null?void 0:t.match(Qr),u=(k=d==null?void 0:d.at(1))!=null?k:"",m=so(u);if(s)return ReactJSXRuntime.jsx("code",{className:r("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:o});let p=(I=e==null?void 0:e.properties)==null?void 0:I.metastring,g=p==null?void 0:p.match(Gr),h=g?Number.parseInt(g[1],10):void 0,b=h!==void 0&&h>=1?h:void 0,f="";if(React.isValidElement(o)&&o.props&&typeof o.props=="object"&&"children"in o.props&&typeof o.props.children=="string"?f=o.props.children:typeof o=="string"&&(f=o),m){let H=m.component;return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsx(H,{code:f,isIncomplete:c,language:u})})}if(u==="mermaid"&&i){let H=pt(l,"mermaid"),S=je(l,"download"),F=je(l,"copy"),z=je(l,"fullscreen"),q=je(l,"panZoom"),A=H&&(S||F||z);return ReactJSXRuntime.jsx(React.Suspense,{fallback:ReactJSXRuntime.jsx(Ae,{}),children:ReactJSXRuntime.jsxs("div",{className:r("group relative my-4 flex w-full flex-col gap-2 rounded-xl border border-border bg-sidebar p-2",t),"data-streamdown":"mermaid-block",children:[ReactJSXRuntime.jsx("div",{className:r("flex h-8 items-center text-muted-foreground text-xs"),children:ReactJSXRuntime.jsx("span",{className:r("ml-1 font-mono lowercase"),children:"mermaid"})}),A?ReactJSXRuntime.jsx("div",{className:r("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"),children:ReactJSXRuntime.jsxs("div",{className:r("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"),"data-streamdown":"mermaid-block-actions",children:[S?ReactJSXRuntime.jsx(lo,{chart:f,config:a==null?void 0:a.config}):null,F?ReactJSXRuntime.jsx(Be,{code:f}):null,z?ReactJSXRuntime.jsx(po,{chart:f,config:a==null?void 0:a.config}):null]})}):null,ReactJSXRuntime.jsx("div",{className:r("rounded-md border border-border bg-background"),children:ReactJSXRuntime.jsx(Yr,{chart:f,config:a==null?void 0:a.config,showControls:q})})]})})}let T=pt(l,"code"),x=xo(l,"download"),w=xo(l,"copy");return ReactJSXRuntime.jsx(rt,{className:t,code:f,isIncomplete:c,language:u,startLine:b,children:T?ReactJSXRuntime.jsxs(ReactJSXRuntime.Fragment,{children:[x?ReactJSXRuntime.jsx(at,{code:f,language:u}):null,w?ReactJSXRuntime.jsx(Be,{}):null]}):null})},Wo=React.memo(ts,(e,t)=>e.className===t.className&&_e(e.node,t.node));Wo.displayName="MarkdownCode";var Zo=React.memo(to,(e,t)=>e.className===t.className&&_e(e.node,t.node));Zo.displayName="MarkdownImg";var Xo=React.memo(({children:e,node:t,...o})=>{let r=(Array.isArray(e)?e:[e]).filter(s=>s!=null&&s!=="");if(r.length===1&&React.isValidElement(r[0])){let s=r[0].props.node,a=s==null?void 0:s.tagName;if(a==="img")return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e});if(a==="code"&&"data-block"in r[0].props)return ReactJSXRuntime.jsx(ReactJSXRuntime.Fragment,{children:e})}return ReactJSXRuntime.jsx("p",{...o,children:e})},(e,t)=>E(e,t));Xo.displayName="MarkdownParagraph";var Jo={ol:gt,li:To,ul:Po,hr:Mo,strong:Io,a:No,h1:Lo,h2:Ro,h3:So,h4:Eo,h5:Ho,h6:Do,table:Bo,thead:Ao,tbody:Oo,tr:Vo,th:jo,td:Fo,blockquote:zo,code:Wo,img:Zo,pre:({children:e})=>React.isValidElement(e)?React.cloneElement(e,{"data-block":"true"}):e,sup:_o,sub:qo,p:Xo,section:$o};var os=/[\u0590-\u08FF\uFB1D-\uFDFF\uFE70-\uFEFF]/,ns=/\p{L}/u;function qe(e){let t=e.replace(/^#{1,6}\s+/gm,"").replace(/(\*{1,3}|_{1,3})/g,"").replace(/`[^`]*`/g,"").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/^[\s>*\-+\d.]+/gm,"");for(let o of t){if(os.test(o))return "rtl";if(ns.test(o))return "ltr"}return "ltr"}var rs=/^[ \t]{0,3}(`{3,}|~{3,})/,ss=/^\|?[ \t]*:?-{1,}:?[ \t]*(\|[ \t]*:?-{1,}:?[ \t]*)*\|?$/,bt=e=>{let t=e.split(`
99894
99982
  `),o=null,n=0;for(let r of t){let s=rs.exec(r);if(o===null){if(s){let a=s[1];o=a[0],n=a.length;}}else if(s){let a=s[1],l=a[0],i=a.length;l===o&&i>=n&&(o=null,n=0);}}return o!==null},Ko=e=>{let t=e.split(`
99895
99983
  `);for(let o of t){let n=o.trim();if(n.length>0&&n.includes("|")&&ss.test(n))return true}return false};var Uo=()=>e=>{visit(e,"html",(t,o,n)=>{!n||typeof o!="number"||(n.children[o]={type:"text",value:t.value});});};var Yo=[],Qo={allowDangerousHtml:true},$e=new WeakMap,yt=class{constructor(){this.cache=new Map;this.keyCache=new WeakMap;this.maxSize=100;}generateCacheKey(t){let o=this.keyCache.get(t);if(o)return o;let n=t.rehypePlugins,r=t.remarkPlugins,s=t.remarkRehypeOptions;if(!(n||r||s)){let u="default";return this.keyCache.set(t,u),u}let a=u=>{if(!u||u.length===0)return "";let m="";for(let p=0;p<u.length;p+=1){let g=u[p];if(p>0&&(m+=","),Array.isArray(g)){let[h,b]=g;if(typeof h=="function"){let f=$e.get(h);f||(f=h.name,$e.set(h,f)),m+=f;}else m+=String(h);m+=":",m+=JSON.stringify(b);}else if(typeof g=="function"){let h=$e.get(g);h||(h=g.name,$e.set(g,h)),m+=h;}else m+=String(g);}return m},l=a(n),i=a(r),c=s?JSON.stringify(s):"",d=`${i}::${l}::${c}`;return this.keyCache.set(t,d),d}get(t){let o=this.generateCacheKey(t),n=this.cache.get(o);return n&&(this.cache.delete(o),this.cache.set(o,n)),n}set(t,o){let n=this.generateCacheKey(t);if(this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r&&this.cache.delete(r);}this.cache.set(n,o);}clear(){this.cache.clear();}},en=new yt,wt=e=>{let t=gs(e),o=e.children||"",n=t.runSync(t.parse(o),o);return ks(n,e)},gs=e=>{let t=en.get(e);if(t)return t;let o=hs(e);return en.set(e,o),o},bs=e=>e.some(t=>Array.isArray(t)?t[0]===rehypeRaw:t===rehypeRaw),hs=e=>{let t=e.rehypePlugins||Yo,o=e.remarkPlugins||Yo,n=bs(t)?o:[...o,Uo],r=e.remarkRehypeOptions?{...Qo,...e.remarkRehypeOptions}:Qo;return unified().use(remarkParse).use(n).use(remarkRehype,r).use(t)},tn=e=>e,ys=(e,t,o,n)=>{o?e.children.splice(t,1):e.children[t]={type:"text",value:n};},ws=(e,t)=>{var o;for(let n in urlAttributes)if(Object.hasOwn(urlAttributes,n)&&Object.hasOwn(e.properties,n)){let r=e.properties[n],s=urlAttributes[n];(s===null||s.includes(e.tagName))&&(e.properties[n]=(o=t(String(r||""),n,e))!=null?o:void 0);}},Cs=(e,t,o,n,r,s)=>{let a=false;return n?a=!n.includes(e.tagName):r&&(a=r.includes(e.tagName)),!a&&s&&typeof t=="number"&&(a=!s(e,t,o)),a},ks=(e,t)=>{let{allowElement:o,allowedElements:n,disallowedElements:r,skipHtml:s,unwrapDisallowed:a,urlTransform:l}=t;if(o||n||r||s||l){let c=l||tn;visit(e,(d,u,m)=>{if(d.type==="raw"&&m&&typeof u=="number")return ys(m,u,s,d.value),u;if(d.type==="element"&&(ws(d,c),Cs(d,u,m,n,r,o)&&m&&typeof u=="number"))return a&&d.children?m.children.splice(u,1,...d.children):m.children.splice(u,1),u});}return toJsxRuntime(e,{Fragment:ReactJSXRuntime.Fragment,components:t.components,ignoreInvalidStyle:true,jsx:ReactJSXRuntime.jsx,jsxs:ReactJSXRuntime.jsxs,passKeys:true,passNode:true})};var xs=/\[\^[\w-]{1,200}\](?!:)/,Ts=/\[\^[\w-]{1,200}\]:/;var Ps=/<(\w+)[\s>]/,Ms=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),on=new Map,nn=new Map,Is=e=>{let t=e.toLowerCase(),o=on.get(t);if(o)return o;let n=new RegExp(`<${t}(?=[\\s>/])[^>]*>`,"gi");return on.set(t,n),n},Ns=e=>{let t=e.toLowerCase(),o=nn.get(t);if(o)return o;let n=new RegExp(`</${t}(?=[\\s>])[^>]*>`,"gi");return nn.set(t,n),n},rn=(e,t)=>{if(Ms.has(t.toLowerCase()))return 0;let o=e.match(Is(t));if(!o)return 0;let n=0;for(let r of o)r.trimEnd().endsWith("/>")||(n+=1);return n},sn=(e,t)=>{let o=e.match(Ns(t));return o?o.length:0},Ls=e=>{let t=0;for(let o=0;o<e.length-1;o+=1)e[o]==="$"&&e[o+1]==="$"&&(t+=1,o+=1);return t},Ct=e=>{let t=xs.test(e),o=Ts.test(e);if(t||o)return [e];let n=x.lex(e,{gfm:true}),r=[],s=[],a=false;for(let l of n){let i=l.raw,c=r.length;if(s.length>0){r[c-1]+=i;let d=s.at(-1),u=rn(i,d),m=sn(i,d);for(let p=0;p<u;p+=1)s.push(d);for(let p=0;p<m;p+=1)s.length>0&&s.at(-1)===d&&s.pop();continue}if(l.type==="html"&&l.block){let d=i.match(Ps);if(d){let u=d[1],m=rn(i,u),p=sn(i,u);m>p&&s.push(u);}}if(c>0&&!a){let d=r[c-1];if(Ls(d)%2===1){r[c-1]=d+i;continue}}r.push(i),l.type!=="space"&&(a=l.type==="code");}return r};var an=(e,t)=>{if(!t.length)return e;let o=e;for(let n of t){let r=new RegExp(`(<${n}(?=[\\s>/])[^>]*>)([\\s\\S]*?)(</${n}\\s*>)`,"gi");o=o.replace(r,(s,a,l,i)=>{let c=l.replace(/\n\n/g,`
99896
99984
  <!---->