dominds 1.2.1 → 1.2.3

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 (93) hide show
  1. package/dist/static/assets/{_basePickBy-C12rN_vg.js → _basePickBy-C8_nnsqi.js} +3 -3
  2. package/dist/static/assets/{_basePickBy-C12rN_vg.js.map → _basePickBy-C8_nnsqi.js.map} +1 -1
  3. package/dist/static/assets/{_baseUniq-DiywNHVu.js → _baseUniq-DthoO01a.js} +2 -2
  4. package/dist/static/assets/{_baseUniq-DiywNHVu.js.map → _baseUniq-DthoO01a.js.map} +1 -1
  5. package/dist/static/assets/{arc-DrxUbN3H.js → arc-BDvn6pS2.js} +2 -2
  6. package/dist/static/assets/{arc-DrxUbN3H.js.map → arc-BDvn6pS2.js.map} +1 -1
  7. package/dist/static/assets/{architectureDiagram-VXUJARFQ-ltWSc46G.js → architectureDiagram-VXUJARFQ-DbrcqAVO.js} +7 -7
  8. package/dist/static/assets/{architectureDiagram-VXUJARFQ-ltWSc46G.js.map → architectureDiagram-VXUJARFQ-DbrcqAVO.js.map} +1 -1
  9. package/dist/static/assets/{blockDiagram-VD42YOAC-C7uhMHkq.js → blockDiagram-VD42YOAC-Dfna8BOv.js} +7 -7
  10. package/dist/static/assets/{blockDiagram-VD42YOAC-C7uhMHkq.js.map → blockDiagram-VD42YOAC-Dfna8BOv.js.map} +1 -1
  11. package/dist/static/assets/{c4Diagram-YG6GDRKO-vPx0_Kf2.js → c4Diagram-YG6GDRKO-DzTsAXsE.js} +3 -3
  12. package/dist/static/assets/{c4Diagram-YG6GDRKO-vPx0_Kf2.js.map → c4Diagram-YG6GDRKO-DzTsAXsE.js.map} +1 -1
  13. package/dist/static/assets/{channel-BcCx0X1y.js → channel-Cezd8FHy.js} +2 -2
  14. package/dist/static/assets/{channel-BcCx0X1y.js.map → channel-Cezd8FHy.js.map} +1 -1
  15. package/dist/static/assets/{chunk-4BX2VUAB-w6hvr5cl.js → chunk-4BX2VUAB-CuA3QmqU.js} +2 -2
  16. package/dist/static/assets/{chunk-4BX2VUAB-w6hvr5cl.js.map → chunk-4BX2VUAB-CuA3QmqU.js.map} +1 -1
  17. package/dist/static/assets/{chunk-55IACEB6-CQH0mRSP.js → chunk-55IACEB6-BnDlChYQ.js} +2 -2
  18. package/dist/static/assets/{chunk-55IACEB6-CQH0mRSP.js.map → chunk-55IACEB6-BnDlChYQ.js.map} +1 -1
  19. package/dist/static/assets/{chunk-B4BG7PRW-BFHlGl-B.js → chunk-B4BG7PRW-Dur_RERC.js} +5 -5
  20. package/dist/static/assets/{chunk-B4BG7PRW-BFHlGl-B.js.map → chunk-B4BG7PRW-Dur_RERC.js.map} +1 -1
  21. package/dist/static/assets/{chunk-DI55MBZ5-lr0iWako.js → chunk-DI55MBZ5-0kNIWuo8.js} +4 -4
  22. package/dist/static/assets/{chunk-DI55MBZ5-lr0iWako.js.map → chunk-DI55MBZ5-0kNIWuo8.js.map} +1 -1
  23. package/dist/static/assets/{chunk-FMBD7UC4-DC-zfL1c.js → chunk-FMBD7UC4-bq8JSud8.js} +2 -2
  24. package/dist/static/assets/{chunk-FMBD7UC4-DC-zfL1c.js.map → chunk-FMBD7UC4-bq8JSud8.js.map} +1 -1
  25. package/dist/static/assets/{chunk-QN33PNHL-C66IkZZn.js → chunk-QN33PNHL-CYD7il1Z.js} +2 -2
  26. package/dist/static/assets/{chunk-QN33PNHL-C66IkZZn.js.map → chunk-QN33PNHL-CYD7il1Z.js.map} +1 -1
  27. package/dist/static/assets/{chunk-QZHKN3VN-d4WcG1xf.js → chunk-QZHKN3VN-CG5BYWM5.js} +2 -2
  28. package/dist/static/assets/{chunk-QZHKN3VN-d4WcG1xf.js.map → chunk-QZHKN3VN-CG5BYWM5.js.map} +1 -1
  29. package/dist/static/assets/{chunk-TZMSLE5B-BHcJWc3E.js → chunk-TZMSLE5B-HVG85V47.js} +2 -2
  30. package/dist/static/assets/{chunk-TZMSLE5B-BHcJWc3E.js.map → chunk-TZMSLE5B-HVG85V47.js.map} +1 -1
  31. package/dist/static/assets/{classDiagram-2ON5EDUG-DoVmhFsh.js → classDiagram-2ON5EDUG-LradlCA-.js} +6 -6
  32. package/dist/static/assets/{classDiagram-2ON5EDUG-DoVmhFsh.js.map → classDiagram-2ON5EDUG-LradlCA-.js.map} +1 -1
  33. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-DoVmhFsh.js → classDiagram-v2-WZHVMYZB-LradlCA-.js} +6 -6
  34. package/dist/static/assets/{classDiagram-v2-WZHVMYZB-DoVmhFsh.js.map → classDiagram-v2-WZHVMYZB-LradlCA-.js.map} +1 -1
  35. package/dist/static/assets/{clone-Bkbn_uYE.js → clone-BId_ID9_.js} +2 -2
  36. package/dist/static/assets/{clone-Bkbn_uYE.js.map → clone-BId_ID9_.js.map} +1 -1
  37. package/dist/static/assets/{cose-bilkent-S5V4N54A-B230TDgx.js → cose-bilkent-S5V4N54A-DTn26_9M.js} +2 -2
  38. package/dist/static/assets/{cose-bilkent-S5V4N54A-B230TDgx.js.map → cose-bilkent-S5V4N54A-DTn26_9M.js.map} +1 -1
  39. package/dist/static/assets/{dagre-6UL2VRFP-BbAmaR8b.js → dagre-6UL2VRFP-DT-v7sQa.js} +7 -7
  40. package/dist/static/assets/{dagre-6UL2VRFP-BbAmaR8b.js.map → dagre-6UL2VRFP-DT-v7sQa.js.map} +1 -1
  41. package/dist/static/assets/{diagram-PSM6KHXK-BusGs3Z5.js → diagram-PSM6KHXK-msf6GUZs.js} +8 -8
  42. package/dist/static/assets/{diagram-PSM6KHXK-BusGs3Z5.js.map → diagram-PSM6KHXK-msf6GUZs.js.map} +1 -1
  43. package/dist/static/assets/{diagram-QEK2KX5R-G5_VO4V6.js → diagram-QEK2KX5R-LT71KGg3.js} +7 -7
  44. package/dist/static/assets/{diagram-QEK2KX5R-G5_VO4V6.js.map → diagram-QEK2KX5R-LT71KGg3.js.map} +1 -1
  45. package/dist/static/assets/{diagram-S2PKOQOG-CktmRCf3.js → diagram-S2PKOQOG-CGjFk8eq.js} +7 -7
  46. package/dist/static/assets/{diagram-S2PKOQOG-CktmRCf3.js.map → diagram-S2PKOQOG-CGjFk8eq.js.map} +1 -1
  47. package/dist/static/assets/{erDiagram-Q2GNP2WA-DQv8-O--.js → erDiagram-Q2GNP2WA-DKt84Q0a.js} +5 -5
  48. package/dist/static/assets/{erDiagram-Q2GNP2WA-DQv8-O--.js.map → erDiagram-Q2GNP2WA-DKt84Q0a.js.map} +1 -1
  49. package/dist/static/assets/{flowDiagram-NV44I4VS-DpaFCQTQ.js → flowDiagram-NV44I4VS-Dd0OzJaz.js} +6 -6
  50. package/dist/static/assets/{flowDiagram-NV44I4VS-DpaFCQTQ.js.map → flowDiagram-NV44I4VS-Dd0OzJaz.js.map} +1 -1
  51. package/dist/static/assets/{ganttDiagram-JELNMOA3-D6pED_Va.js → ganttDiagram-JELNMOA3-CE5vRk5V.js} +3 -3
  52. package/dist/static/assets/{ganttDiagram-JELNMOA3-D6pED_Va.js.map → ganttDiagram-JELNMOA3-CE5vRk5V.js.map} +1 -1
  53. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-LxLKU9eL.js → gitGraphDiagram-V2S2FVAM-CF7YsjKj.js} +8 -8
  54. package/dist/static/assets/{gitGraphDiagram-V2S2FVAM-LxLKU9eL.js.map → gitGraphDiagram-V2S2FVAM-CF7YsjKj.js.map} +1 -1
  55. package/dist/static/assets/{graph-D6Ri_Lai.js → graph-CxY68Sol.js} +3 -3
  56. package/dist/static/assets/{graph-D6Ri_Lai.js.map → graph-CxY68Sol.js.map} +1 -1
  57. package/dist/static/assets/{index-D31hl_lU.js → index-CQ_I7hKY.js} +328 -195
  58. package/dist/static/assets/index-CQ_I7hKY.js.map +1 -0
  59. package/dist/static/assets/{infoDiagram-HS3SLOUP-BYzHBAyb.js → infoDiagram-HS3SLOUP-BE1mGJrA.js} +6 -6
  60. package/dist/static/assets/{infoDiagram-HS3SLOUP-BYzHBAyb.js.map → infoDiagram-HS3SLOUP-BE1mGJrA.js.map} +1 -1
  61. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-D5y0L-2P.js → journeyDiagram-XKPGCS4Q-BNFRYlil.js} +5 -5
  62. package/dist/static/assets/{journeyDiagram-XKPGCS4Q-D5y0L-2P.js.map → journeyDiagram-XKPGCS4Q-BNFRYlil.js.map} +1 -1
  63. package/dist/static/assets/{kanban-definition-3W4ZIXB7-CYADGskW.js → kanban-definition-3W4ZIXB7-BsUJOCXn.js} +3 -3
  64. package/dist/static/assets/{kanban-definition-3W4ZIXB7-CYADGskW.js.map → kanban-definition-3W4ZIXB7-BsUJOCXn.js.map} +1 -1
  65. package/dist/static/assets/{layout-B3qtQTBT.js → layout-tnd5GmZZ.js} +5 -5
  66. package/dist/static/assets/{layout-B3qtQTBT.js.map → layout-tnd5GmZZ.js.map} +1 -1
  67. package/dist/static/assets/{linear-BTZ8JBi_.js → linear-Bc0HxlI-.js} +2 -2
  68. package/dist/static/assets/{linear-BTZ8JBi_.js.map → linear-Bc0HxlI-.js.map} +1 -1
  69. package/dist/static/assets/{mindmap-definition-VGOIOE7T-DswAPdTp.js → mindmap-definition-VGOIOE7T-Bj0WEyYN.js} +4 -4
  70. package/dist/static/assets/{mindmap-definition-VGOIOE7T-DswAPdTp.js.map → mindmap-definition-VGOIOE7T-Bj0WEyYN.js.map} +1 -1
  71. package/dist/static/assets/{pieDiagram-ADFJNKIX-C5Mf9e0l.js → pieDiagram-ADFJNKIX-D4hhjVcv.js} +8 -8
  72. package/dist/static/assets/{pieDiagram-ADFJNKIX-C5Mf9e0l.js.map → pieDiagram-ADFJNKIX-D4hhjVcv.js.map} +1 -1
  73. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-CkNUJ3Ub.js → quadrantDiagram-AYHSOK5B-Dhl1Zlbb.js} +3 -3
  74. package/dist/static/assets/{quadrantDiagram-AYHSOK5B-CkNUJ3Ub.js.map → quadrantDiagram-AYHSOK5B-Dhl1Zlbb.js.map} +1 -1
  75. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-BfVnmLjx.js → requirementDiagram-UZGBJVZJ-BpFrD-ZM.js} +4 -4
  76. package/dist/static/assets/{requirementDiagram-UZGBJVZJ-BfVnmLjx.js.map → requirementDiagram-UZGBJVZJ-BpFrD-ZM.js.map} +1 -1
  77. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-CI4ACQEi.js → sankeyDiagram-TZEHDZUN-DpMkuZHq.js} +2 -2
  78. package/dist/static/assets/{sankeyDiagram-TZEHDZUN-CI4ACQEi.js.map → sankeyDiagram-TZEHDZUN-DpMkuZHq.js.map} +1 -1
  79. package/dist/static/assets/{sequenceDiagram-WL72ISMW-DOcVymPT.js → sequenceDiagram-WL72ISMW-Ct1SZHus.js} +4 -4
  80. package/dist/static/assets/{sequenceDiagram-WL72ISMW-DOcVymPT.js.map → sequenceDiagram-WL72ISMW-Ct1SZHus.js.map} +1 -1
  81. package/dist/static/assets/{stateDiagram-FKZM4ZOC-BGnJdjGR.js → stateDiagram-FKZM4ZOC-DSkjMyzt.js} +9 -9
  82. package/dist/static/assets/{stateDiagram-FKZM4ZOC-BGnJdjGR.js.map → stateDiagram-FKZM4ZOC-DSkjMyzt.js.map} +1 -1
  83. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-u9ImkC3R.js → stateDiagram-v2-4FDKWEC3-CuGyb0XP.js} +5 -5
  84. package/dist/static/assets/{stateDiagram-v2-4FDKWEC3-u9ImkC3R.js.map → stateDiagram-v2-4FDKWEC3-CuGyb0XP.js.map} +1 -1
  85. package/dist/static/assets/{timeline-definition-IT6M3QCI-RskBql3B.js → timeline-definition-IT6M3QCI-COcrpq5j.js} +3 -3
  86. package/dist/static/assets/{timeline-definition-IT6M3QCI-RskBql3B.js.map → timeline-definition-IT6M3QCI-COcrpq5j.js.map} +1 -1
  87. package/dist/static/assets/{treemap-GDKQZRPO-X-s07uSN.js → treemap-GDKQZRPO-Dfhg5Cue.js} +5 -5
  88. package/dist/static/assets/{treemap-GDKQZRPO-X-s07uSN.js.map → treemap-GDKQZRPO-Dfhg5Cue.js.map} +1 -1
  89. package/dist/static/assets/{xychartDiagram-PRI3JC2R-T1bVB0qG.js → xychartDiagram-PRI3JC2R-DukhTyEq.js} +3 -3
  90. package/dist/static/assets/{xychartDiagram-PRI3JC2R-T1bVB0qG.js.map → xychartDiagram-PRI3JC2R-DukhTyEq.js.map} +1 -1
  91. package/dist/static/index.html +1 -1
  92. package/package.json +1 -1
  93. package/dist/static/assets/index-D31hl_lU.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-BbAmaR8b.js","assets/graph-D6Ri_Lai.js","assets/_baseUniq-DiywNHVu.js","assets/layout-B3qtQTBT.js","assets/_basePickBy-C12rN_vg.js","assets/clone-Bkbn_uYE.js","assets/cose-bilkent-S5V4N54A-B230TDgx.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-vPx0_Kf2.js","assets/chunk-TZMSLE5B-BHcJWc3E.js","assets/flowDiagram-NV44I4VS-DpaFCQTQ.js","assets/chunk-FMBD7UC4-DC-zfL1c.js","assets/chunk-55IACEB6-CQH0mRSP.js","assets/chunk-QN33PNHL-C66IkZZn.js","assets/channel-BcCx0X1y.js","assets/erDiagram-Q2GNP2WA-DQv8-O--.js","assets/gitGraphDiagram-V2S2FVAM-LxLKU9eL.js","assets/chunk-4BX2VUAB-w6hvr5cl.js","assets/chunk-QZHKN3VN-d4WcG1xf.js","assets/treemap-GDKQZRPO-X-s07uSN.js","assets/ganttDiagram-JELNMOA3-D6pED_Va.js","assets/linear-BTZ8JBi_.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-HS3SLOUP-BYzHBAyb.js","assets/pieDiagram-ADFJNKIX-C5Mf9e0l.js","assets/arc-DrxUbN3H.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-CkNUJ3Ub.js","assets/xychartDiagram-PRI3JC2R-T1bVB0qG.js","assets/requirementDiagram-UZGBJVZJ-BfVnmLjx.js","assets/sequenceDiagram-WL72ISMW-DOcVymPT.js","assets/classDiagram-2ON5EDUG-DoVmhFsh.js","assets/chunk-B4BG7PRW-BFHlGl-B.js","assets/classDiagram-v2-WZHVMYZB-DoVmhFsh.js","assets/stateDiagram-FKZM4ZOC-BGnJdjGR.js","assets/chunk-DI55MBZ5-lr0iWako.js","assets/stateDiagram-v2-4FDKWEC3-u9ImkC3R.js","assets/journeyDiagram-XKPGCS4Q-D5y0L-2P.js","assets/timeline-definition-IT6M3QCI-RskBql3B.js","assets/mindmap-definition-VGOIOE7T-DswAPdTp.js","assets/kanban-definition-3W4ZIXB7-CYADGskW.js","assets/sankeyDiagram-TZEHDZUN-CI4ACQEi.js","assets/diagram-S2PKOQOG-CktmRCf3.js","assets/diagram-QEK2KX5R-G5_VO4V6.js","assets/blockDiagram-VD42YOAC-C7uhMHkq.js","assets/architectureDiagram-VXUJARFQ-ltWSc46G.js","assets/diagram-PSM6KHXK-BusGs3Z5.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-DT-v7sQa.js","assets/graph-CxY68Sol.js","assets/_baseUniq-DthoO01a.js","assets/layout-tnd5GmZZ.js","assets/_basePickBy-C8_nnsqi.js","assets/clone-BId_ID9_.js","assets/cose-bilkent-S5V4N54A-DTn26_9M.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-DzTsAXsE.js","assets/chunk-TZMSLE5B-HVG85V47.js","assets/flowDiagram-NV44I4VS-Dd0OzJaz.js","assets/chunk-FMBD7UC4-bq8JSud8.js","assets/chunk-55IACEB6-BnDlChYQ.js","assets/chunk-QN33PNHL-CYD7il1Z.js","assets/channel-Cezd8FHy.js","assets/erDiagram-Q2GNP2WA-DKt84Q0a.js","assets/gitGraphDiagram-V2S2FVAM-CF7YsjKj.js","assets/chunk-4BX2VUAB-CuA3QmqU.js","assets/chunk-QZHKN3VN-CG5BYWM5.js","assets/treemap-GDKQZRPO-Dfhg5Cue.js","assets/ganttDiagram-JELNMOA3-CE5vRk5V.js","assets/linear-Bc0HxlI-.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-HS3SLOUP-BE1mGJrA.js","assets/pieDiagram-ADFJNKIX-D4hhjVcv.js","assets/arc-BDvn6pS2.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-Dhl1Zlbb.js","assets/xychartDiagram-PRI3JC2R-DukhTyEq.js","assets/requirementDiagram-UZGBJVZJ-BpFrD-ZM.js","assets/sequenceDiagram-WL72ISMW-Ct1SZHus.js","assets/classDiagram-2ON5EDUG-LradlCA-.js","assets/chunk-B4BG7PRW-Dur_RERC.js","assets/classDiagram-v2-WZHVMYZB-LradlCA-.js","assets/stateDiagram-FKZM4ZOC-DSkjMyzt.js","assets/chunk-DI55MBZ5-0kNIWuo8.js","assets/stateDiagram-v2-4FDKWEC3-CuGyb0XP.js","assets/journeyDiagram-XKPGCS4Q-BNFRYlil.js","assets/timeline-definition-IT6M3QCI-COcrpq5j.js","assets/mindmap-definition-VGOIOE7T-Bj0WEyYN.js","assets/kanban-definition-3W4ZIXB7-BsUJOCXn.js","assets/sankeyDiagram-TZEHDZUN-DpMkuZHq.js","assets/diagram-S2PKOQOG-CGjFk8eq.js","assets/diagram-QEK2KX5R-LT71KGg3.js","assets/blockDiagram-VD42YOAC-Dfna8BOv.js","assets/architectureDiagram-VXUJARFQ-DbrcqAVO.js","assets/diagram-PSM6KHXK-msf6GUZs.js"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -1836,7 +1836,7 @@ function escapeHtmlAttr(text2) {
1836
1836
  const asMaskUrl = (svg2) => `url("data:image/svg+xml,${encodeURIComponent(svg2)}")`;
1837
1837
  const ICON_MASK_URLS = {
1838
1838
  toggleTriangle: asMaskUrl(
1839
- '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 8.64 15.27 12 10 15.36V8.64M8 5v14l11-7L8 5z"/></svg>'
1839
+ "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'><path d='M1 1L7 5L1 9Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round' stroke-linecap='round'/></svg>"
1840
1840
  ),
1841
1841
  chevronLeft: asMaskUrl(
1842
1842
  '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12l4.58-4.59z"/></svg>'
@@ -1926,7 +1926,7 @@ const ICON_MASK_URLS = {
1926
1926
  '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95A5.469 5.469 0 0 1 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11A2.98 2.98 0 0 1 22 15c0 1.65-1.35 3-3 3zM8 13h2.55v3h2.9v-3H16l-4-4z"/></svg>'
1927
1927
  ),
1928
1928
  collapseStrip: asMaskUrl(
1929
- '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>'
1929
+ "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 8'><path d='M2 2.2L8 5.8L14 2.2M21 2.2L27 5.8L33 2.2M40 2.2L46 5.8L52 2.2' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/></svg>"
1930
1930
  ),
1931
1931
  scrollDown: asMaskUrl(
1932
1932
  '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg>'
@@ -2589,8 +2589,15 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2589
2589
  return collapsed ? "Expand" : "Collapse";
2590
2590
  }
2591
2591
  renderToggleIcon(collapsed) {
2592
- const rotation = collapsed ? "0deg" : "90deg";
2593
- return `<span class="q4h-toggle-arrow icon-mask" style="transform: rotate(${rotation})" aria-hidden="true"></span>`;
2592
+ const stateClass = collapsed ? "is-collapsed" : "is-expanded";
2593
+ return `<span class="q4h-toggle-arrow icon-mask ${stateClass}" aria-hidden="true"></span>`;
2594
+ }
2595
+ updateToggleButtonUi(button, collapsed) {
2596
+ button.setAttribute("aria-label", this.formatToggleAriaLabel(collapsed));
2597
+ const arrow = button.querySelector(".q4h-toggle-arrow");
2598
+ if (!(arrow instanceof HTMLElement)) return;
2599
+ arrow.classList.toggle("is-collapsed", collapsed);
2600
+ arrow.classList.toggle("is-expanded", !collapsed);
2594
2601
  }
2595
2602
  renderReviveIcon() {
2596
2603
  return '<span class="icon-mask dlg-icon-revive" aria-hidden="true"></span>';
@@ -2803,6 +2810,7 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2803
2810
  } else {
2804
2811
  this.collapsedTasks.add(taskPath);
2805
2812
  }
2813
+ const collapsed = this.collapsedTasks.has(taskPath);
2806
2814
  if (!this.listEl) return;
2807
2815
  const title = this.listEl.querySelector(
2808
2816
  `.task-title[data-task-path="${this.escapeSelector(taskPath)}"]`
@@ -2810,13 +2818,18 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2810
2818
  const taskGroup = title?.closest(".task-group");
2811
2819
  const taskRows = taskGroup?.querySelector(".task-rows");
2812
2820
  if (taskRows instanceof HTMLElement) {
2813
- taskRows.classList.toggle("collapsed", this.collapsedTasks.has(taskPath));
2821
+ taskRows.classList.toggle("collapsed", collapsed);
2822
+ }
2823
+ const taskToggle = taskGroup?.querySelector(".toggle.task-toggle");
2824
+ if (taskToggle instanceof HTMLButtonElement) {
2825
+ this.updateToggleButtonUi(taskToggle, collapsed);
2814
2826
  }
2815
2827
  }
2816
2828
  toggleRoot(rootId) {
2829
+ const hasLoadedSubdialogs = this.hasSubdialogsLoaded(rootId);
2817
2830
  if (this.collapsedRoots.has(rootId)) {
2818
2831
  this.collapsedRoots.delete(rootId);
2819
- if (!this.requestedSubdialogRoots.has(rootId) && !this.hasSubdialogsLoaded(rootId)) {
2832
+ if (!this.requestedSubdialogRoots.has(rootId) && !hasLoadedSubdialogs) {
2820
2833
  this.requestedSubdialogRoots.add(rootId);
2821
2834
  this.dispatchEvent(
2822
2835
  new CustomEvent("dialog-expand", {
@@ -2828,21 +2841,30 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2828
2841
  }
2829
2842
  } else {
2830
2843
  this.collapsedRoots.add(rootId);
2831
- this.requestedSubdialogRoots.delete(rootId);
2832
- this.dispatchEvent(
2833
- new CustomEvent("dialog-collapse", {
2834
- detail: { rootId, status: "archived" },
2835
- bubbles: true,
2836
- composed: true
2837
- })
2838
- );
2844
+ if (hasLoadedSubdialogs) {
2845
+ this.requestedSubdialogRoots.delete(rootId);
2846
+ this.dispatchEvent(
2847
+ new CustomEvent("dialog-collapse", {
2848
+ detail: { rootId, status: "archived" },
2849
+ bubbles: true,
2850
+ composed: true
2851
+ })
2852
+ );
2853
+ }
2839
2854
  }
2855
+ const collapsed = this.collapsedRoots.has(rootId);
2840
2856
  if (this.listEl) {
2841
2857
  const rootChildren = this.listEl.querySelector(
2842
2858
  `.rdlg-node[data-rdlg-root-id="${this.escapeSelector(rootId)}"] > .sdlg-children`
2843
2859
  );
2844
2860
  if (rootChildren instanceof HTMLElement) {
2845
- rootChildren.classList.toggle("collapsed", this.collapsedRoots.has(rootId));
2861
+ rootChildren.classList.toggle("collapsed", collapsed);
2862
+ }
2863
+ const rootToggle = this.listEl.querySelector(
2864
+ `.toggle.root-toggle[data-root-id="${this.escapeSelector(rootId)}"]`
2865
+ );
2866
+ if (rootToggle instanceof HTMLButtonElement) {
2867
+ this.updateToggleButtonUi(rootToggle, collapsed);
2846
2868
  }
2847
2869
  }
2848
2870
  }
@@ -3092,6 +3114,14 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
3092
3114
  --icon-mask: ${ICON_MASK_URLS.toggleTriangle};
3093
3115
  }
3094
3116
 
3117
+ .toggle .q4h-toggle-arrow.is-collapsed {
3118
+ transform: rotate(0deg);
3119
+ }
3120
+
3121
+ .toggle .q4h-toggle-arrow.is-expanded {
3122
+ transform: rotate(90deg);
3123
+ }
3124
+
3095
3125
  .icon-button {
3096
3126
  border: none;
3097
3127
  background: transparent;
@@ -3378,7 +3408,7 @@ class CreateDialogFlowController {
3378
3408
  </select>
3379
3409
  </div>
3380
3410
  </div>
3381
- <div class="form-group form-group-vertical shadow-members-group" id="shadow-members-group" style="${initialPickShadow ? "" : "display:none;"}">
3411
+ <div class="form-group form-group-vertical shadow-members-group${initialPickShadow ? "" : " hidden"}" id="shadow-members-group">
3382
3412
  <label for="shadow-teammate-select">${escapeHtml$2(t2.shadowMembersLabel)}</label>
3383
3413
  <select id="shadow-teammate-select" class="teammate-dropdown">
3384
3414
  ${shadowMembers.map((member) => {
@@ -3404,7 +3434,7 @@ class CreateDialogFlowController {
3404
3434
  <span id="priming-show-in-ui-label">${escapeHtml$2(t2.primingShowInUiLabel)}</span>
3405
3435
  </label>
3406
3436
  </div>
3407
- <div id="priming-more-section" class="priming-more-section" style="display:none;">
3437
+ <div id="priming-more-section" class="priming-more-section hidden">
3408
3438
  <input type="text" id="priming-search-input" class="task-doc-input" placeholder="${escapeHtml$2(
3409
3439
  t2.primingSearchPlaceholder
3410
3440
  )}" autocomplete="off">
@@ -3574,7 +3604,7 @@ class CreateDialogFlowController {
3574
3604
  return script.slug;
3575
3605
  };
3576
3606
  const setPrimingMoreVisible = (visible) => {
3577
- primingMoreSection.style.display = visible ? "block" : "none";
3607
+ primingMoreSection.classList.toggle("hidden", !visible);
3578
3608
  if (!visible) {
3579
3609
  primingSearchSeq += 1;
3580
3610
  primingSearchTerm = "";
@@ -3619,7 +3649,7 @@ class CreateDialogFlowController {
3619
3649
  };
3620
3650
  const renderPrimingSearchResults = () => {
3621
3651
  const t2 = strings();
3622
- if (primingMoreSection.style.display === "none") {
3652
+ if (primingMoreSection.classList.contains("hidden")) {
3623
3653
  primingSearchResults.innerHTML = "";
3624
3654
  return;
3625
3655
  }
@@ -3814,7 +3844,7 @@ class CreateDialogFlowController {
3814
3844
  hideSuggestions();
3815
3845
  return;
3816
3846
  }
3817
- if (primingMoreSection.style.display !== "none") {
3847
+ if (!primingMoreSection.classList.contains("hidden")) {
3818
3848
  e2.preventDefault();
3819
3849
  setPrimingMoreVisible(false);
3820
3850
  renderPrimingSearchResults();
@@ -3870,7 +3900,7 @@ class CreateDialogFlowController {
3870
3900
  select2.addEventListener("change", () => {
3871
3901
  const isShadow = select2.value === "__shadow__";
3872
3902
  if (shadowGroup instanceof HTMLElement) {
3873
- shadowGroup.style.display = isShadow ? "block" : "none";
3903
+ shadowGroup.classList.toggle("hidden", !isShadow);
3874
3904
  }
3875
3905
  showTeammateInfo(select2.value);
3876
3906
  void loadPrimingScriptsForSelectedAgent();
@@ -97319,12 +97349,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
97319
97349
  registerLayoutLoaders([
97320
97350
  {
97321
97351
  name: "dagre",
97322
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-BbAmaR8b.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
97352
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-DT-v7sQa.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
97323
97353
  },
97324
97354
  ...[
97325
97355
  {
97326
97356
  name: "cose-bilkent",
97327
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-B230TDgx.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
97357
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-DTn26_9M.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
97328
97358
  }
97329
97359
  ]
97330
97360
  ]);
@@ -97764,7 +97794,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
97764
97794
  }, "detector");
97765
97795
  var loader = /* @__PURE__ */ __name(async () => {
97766
97796
  const { diagram: diagram2 } = await __vitePreload(async () => {
97767
- const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-vPx0_Kf2.js");
97797
+ const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-DzTsAXsE.js");
97768
97798
  return { diagram: diagram22 };
97769
97799
  }, true ? __vite__mapDeps([8,9]) : void 0);
97770
97800
  return { id, diagram: diagram2 };
@@ -97784,7 +97814,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
97784
97814
  }, "detector");
97785
97815
  var loader2 = /* @__PURE__ */ __name(async () => {
97786
97816
  const { diagram: diagram2 } = await __vitePreload(async () => {
97787
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-DpaFCQTQ.js");
97817
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-Dd0OzJaz.js");
97788
97818
  return { diagram: diagram22 };
97789
97819
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
97790
97820
  return { id: id2, diagram: diagram2 };
@@ -97810,7 +97840,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
97810
97840
  }, "detector");
97811
97841
  var loader3 = /* @__PURE__ */ __name(async () => {
97812
97842
  const { diagram: diagram2 } = await __vitePreload(async () => {
97813
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-DpaFCQTQ.js");
97843
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-Dd0OzJaz.js");
97814
97844
  return { diagram: diagram22 };
97815
97845
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
97816
97846
  return { id: id3, diagram: diagram2 };
@@ -97827,7 +97857,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
97827
97857
  }, "detector");
97828
97858
  var loader4 = /* @__PURE__ */ __name(async () => {
97829
97859
  const { diagram: diagram2 } = await __vitePreload(async () => {
97830
- const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-DQv8-O--.js");
97860
+ const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-DKt84Q0a.js");
97831
97861
  return { diagram: diagram22 };
97832
97862
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
97833
97863
  return { id: id4, diagram: diagram2 };
@@ -97844,7 +97874,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
97844
97874
  }, "detector");
97845
97875
  var loader5 = /* @__PURE__ */ __name(async () => {
97846
97876
  const { diagram: diagram2 } = await __vitePreload(async () => {
97847
- const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-LxLKU9eL.js");
97877
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-CF7YsjKj.js");
97848
97878
  return { diagram: diagram22 };
97849
97879
  }, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
97850
97880
  return { id: id5, diagram: diagram2 };
@@ -97861,7 +97891,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
97861
97891
  }, "detector");
97862
97892
  var loader6 = /* @__PURE__ */ __name(async () => {
97863
97893
  const { diagram: diagram2 } = await __vitePreload(async () => {
97864
- const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-D6pED_Va.js");
97894
+ const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-CE5vRk5V.js");
97865
97895
  return { diagram: diagram22 };
97866
97896
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
97867
97897
  return { id: id6, diagram: diagram2 };
@@ -97878,7 +97908,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
97878
97908
  }, "detector");
97879
97909
  var loader7 = /* @__PURE__ */ __name(async () => {
97880
97910
  const { diagram: diagram2 } = await __vitePreload(async () => {
97881
- const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-BYzHBAyb.js");
97911
+ const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-BE1mGJrA.js");
97882
97912
  return { diagram: diagram22 };
97883
97913
  }, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
97884
97914
  return { id: id7, diagram: diagram2 };
@@ -97894,7 +97924,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
97894
97924
  }, "detector");
97895
97925
  var loader8 = /* @__PURE__ */ __name(async () => {
97896
97926
  const { diagram: diagram2 } = await __vitePreload(async () => {
97897
- const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-C5Mf9e0l.js");
97927
+ const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-D4hhjVcv.js");
97898
97928
  return { diagram: diagram22 };
97899
97929
  }, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
97900
97930
  return { id: id8, diagram: diagram2 };
@@ -97910,7 +97940,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
97910
97940
  }, "detector");
97911
97941
  var loader9 = /* @__PURE__ */ __name(async () => {
97912
97942
  const { diagram: diagram2 } = await __vitePreload(async () => {
97913
- const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-CkNUJ3Ub.js");
97943
+ const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-Dhl1Zlbb.js");
97914
97944
  return { diagram: diagram22 };
97915
97945
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
97916
97946
  return { id: id9, diagram: diagram2 };
@@ -97927,7 +97957,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
97927
97957
  }, "detector");
97928
97958
  var loader10 = /* @__PURE__ */ __name(async () => {
97929
97959
  const { diagram: diagram2 } = await __vitePreload(async () => {
97930
- const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-T1bVB0qG.js");
97960
+ const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-DukhTyEq.js");
97931
97961
  return { diagram: diagram22 };
97932
97962
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
97933
97963
  return { id: id10, diagram: diagram2 };
@@ -97944,7 +97974,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
97944
97974
  }, "detector");
97945
97975
  var loader11 = /* @__PURE__ */ __name(async () => {
97946
97976
  const { diagram: diagram2 } = await __vitePreload(async () => {
97947
- const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-BfVnmLjx.js");
97977
+ const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-BpFrD-ZM.js");
97948
97978
  return { diagram: diagram22 };
97949
97979
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
97950
97980
  return { id: id11, diagram: diagram2 };
@@ -97961,7 +97991,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
97961
97991
  }, "detector");
97962
97992
  var loader12 = /* @__PURE__ */ __name(async () => {
97963
97993
  const { diagram: diagram2 } = await __vitePreload(async () => {
97964
- const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-DOcVymPT.js");
97994
+ const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-Ct1SZHus.js");
97965
97995
  return { diagram: diagram22 };
97966
97996
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
97967
97997
  return { id: id12, diagram: diagram2 };
@@ -97981,7 +98011,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
97981
98011
  }, "detector");
97982
98012
  var loader13 = /* @__PURE__ */ __name(async () => {
97983
98013
  const { diagram: diagram2 } = await __vitePreload(async () => {
97984
- const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-DoVmhFsh.js");
98014
+ const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-LradlCA-.js");
97985
98015
  return { diagram: diagram22 };
97986
98016
  }, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
97987
98017
  return { id: id13, diagram: diagram2 };
@@ -98001,7 +98031,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
98001
98031
  }, "detector");
98002
98032
  var loader14 = /* @__PURE__ */ __name(async () => {
98003
98033
  const { diagram: diagram2 } = await __vitePreload(async () => {
98004
- const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-DoVmhFsh.js");
98034
+ const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-LradlCA-.js");
98005
98035
  return { diagram: diagram22 };
98006
98036
  }, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
98007
98037
  return { id: id14, diagram: diagram2 };
@@ -98021,7 +98051,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
98021
98051
  }, "detector");
98022
98052
  var loader15 = /* @__PURE__ */ __name(async () => {
98023
98053
  const { diagram: diagram2 } = await __vitePreload(async () => {
98024
- const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-BGnJdjGR.js");
98054
+ const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-DSkjMyzt.js");
98025
98055
  return { diagram: diagram22 };
98026
98056
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
98027
98057
  return { id: id15, diagram: diagram2 };
@@ -98044,7 +98074,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
98044
98074
  }, "detector");
98045
98075
  var loader16 = /* @__PURE__ */ __name(async () => {
98046
98076
  const { diagram: diagram2 } = await __vitePreload(async () => {
98047
- const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-u9ImkC3R.js");
98077
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-CuGyb0XP.js");
98048
98078
  return { diagram: diagram22 };
98049
98079
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
98050
98080
  return { id: id16, diagram: diagram2 };
@@ -98061,7 +98091,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
98061
98091
  }, "detector");
98062
98092
  var loader17 = /* @__PURE__ */ __name(async () => {
98063
98093
  const { diagram: diagram2 } = await __vitePreload(async () => {
98064
- const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-D5y0L-2P.js");
98094
+ const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-BNFRYlil.js");
98065
98095
  return { diagram: diagram22 };
98066
98096
  }, true ? __vite__mapDeps([38,9,11,26]) : void 0);
98067
98097
  return { id: id17, diagram: diagram2 };
@@ -98131,7 +98161,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
98131
98161
  }, "detector");
98132
98162
  var loader18 = /* @__PURE__ */ __name(async () => {
98133
98163
  const { diagram: diagram2 } = await __vitePreload(async () => {
98134
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-DpaFCQTQ.js");
98164
+ const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-Dd0OzJaz.js");
98135
98165
  return { diagram: diagram22 };
98136
98166
  }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
98137
98167
  return { id: id18, diagram: diagram2 };
@@ -98148,7 +98178,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
98148
98178
  }, "detector");
98149
98179
  var loader19 = /* @__PURE__ */ __name(async () => {
98150
98180
  const { diagram: diagram2 } = await __vitePreload(async () => {
98151
- const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-RskBql3B.js");
98181
+ const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-COcrpq5j.js");
98152
98182
  return { diagram: diagram22 };
98153
98183
  }, true ? __vite__mapDeps([39,26]) : void 0);
98154
98184
  return { id: id19, diagram: diagram2 };
@@ -98165,7 +98195,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
98165
98195
  }, "detector");
98166
98196
  var loader20 = /* @__PURE__ */ __name(async () => {
98167
98197
  const { diagram: diagram2 } = await __vitePreload(async () => {
98168
- const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-DswAPdTp.js");
98198
+ const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-Bj0WEyYN.js");
98169
98199
  return { diagram: diagram22 };
98170
98200
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
98171
98201
  return { id: id20, diagram: diagram2 };
@@ -98182,7 +98212,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
98182
98212
  }, "detector");
98183
98213
  var loader21 = /* @__PURE__ */ __name(async () => {
98184
98214
  const { diagram: diagram2 } = await __vitePreload(async () => {
98185
- const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-CYADGskW.js");
98215
+ const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-BsUJOCXn.js");
98186
98216
  return { diagram: diagram22 };
98187
98217
  }, true ? __vite__mapDeps([41,11]) : void 0);
98188
98218
  return { id: id21, diagram: diagram2 };
@@ -98199,7 +98229,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
98199
98229
  }, "detector");
98200
98230
  var loader22 = /* @__PURE__ */ __name(async () => {
98201
98231
  const { diagram: diagram2 } = await __vitePreload(async () => {
98202
- const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-CI4ACQEi.js");
98232
+ const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-DpMkuZHq.js");
98203
98233
  return { diagram: diagram22 };
98204
98234
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
98205
98235
  return { id: id22, diagram: diagram2 };
@@ -98216,7 +98246,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
98216
98246
  }, "detector");
98217
98247
  var loader23 = /* @__PURE__ */ __name(async () => {
98218
98248
  const { diagram: diagram2 } = await __vitePreload(async () => {
98219
- const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-CktmRCf3.js");
98249
+ const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-CGjFk8eq.js");
98220
98250
  return { diagram: diagram22 };
98221
98251
  }, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
98222
98252
  return { id: id23, diagram: diagram2 };
@@ -98232,7 +98262,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
98232
98262
  }, "detector");
98233
98263
  var loader24 = /* @__PURE__ */ __name(async () => {
98234
98264
  const { diagram: diagram2 } = await __vitePreload(async () => {
98235
- const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-G5_VO4V6.js");
98265
+ const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-LT71KGg3.js");
98236
98266
  return { diagram: diagram22 };
98237
98267
  }, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
98238
98268
  return { id: id24, diagram: diagram2 };
@@ -98248,7 +98278,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
98248
98278
  }, "detector");
98249
98279
  var loader25 = /* @__PURE__ */ __name(async () => {
98250
98280
  const { diagram: diagram2 } = await __vitePreload(async () => {
98251
- const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-C7uhMHkq.js");
98281
+ const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-Dfna8BOv.js");
98252
98282
  return { diagram: diagram22 };
98253
98283
  }, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
98254
98284
  return { id: id25, diagram: diagram2 };
@@ -98265,7 +98295,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
98265
98295
  }, "detector");
98266
98296
  var loader26 = /* @__PURE__ */ __name(async () => {
98267
98297
  const { diagram: diagram2 } = await __vitePreload(async () => {
98268
- const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-ltWSc46G.js");
98298
+ const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-DbrcqAVO.js");
98269
98299
  return { diagram: diagram22 };
98270
98300
  }, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
98271
98301
  return { id: id26, diagram: diagram2 };
@@ -98282,7 +98312,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
98282
98312
  }, "detector");
98283
98313
  var loader27 = /* @__PURE__ */ __name(async () => {
98284
98314
  const { diagram: diagram2 } = await __vitePreload(async () => {
98285
- const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-BusGs3Z5.js");
98315
+ const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-msf6GUZs.js");
98286
98316
  return { diagram: diagram22 };
98287
98317
  }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
98288
98318
  return { id: id27, diagram: diagram2 };
@@ -108138,8 +108168,15 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
108138
108168
  return collapsed ? "Expand" : "Collapse";
108139
108169
  }
108140
108170
  renderToggleIcon(collapsed) {
108141
- const rotation = collapsed ? "0deg" : "90deg";
108142
- return `<span class="q4h-toggle-arrow icon-mask" style="transform: rotate(${rotation})" aria-hidden="true"></span>`;
108171
+ const stateClass = collapsed ? "is-collapsed" : "is-expanded";
108172
+ return `<span class="q4h-toggle-arrow icon-mask ${stateClass}" aria-hidden="true"></span>`;
108173
+ }
108174
+ updateToggleButtonUi(button, collapsed) {
108175
+ button.setAttribute("aria-label", this.formatToggleAriaLabel(collapsed));
108176
+ const arrow = button.querySelector(".q4h-toggle-arrow");
108177
+ if (!(arrow instanceof HTMLElement)) return;
108178
+ arrow.classList.toggle("is-collapsed", collapsed);
108179
+ arrow.classList.toggle("is-expanded", !collapsed);
108143
108180
  }
108144
108181
  renderArchiveIcon() {
108145
108182
  return '<span class="icon-mask dlg-icon-archive" aria-hidden="true"></span>';
@@ -108358,6 +108395,7 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
108358
108395
  } else {
108359
108396
  this.collapsedTasks.add(taskPath);
108360
108397
  }
108398
+ const collapsed = this.collapsedTasks.has(taskPath);
108361
108399
  if (!this.listEl) return;
108362
108400
  const title = this.listEl.querySelector(
108363
108401
  `.task-title[data-task-path="${this.escapeSelector(taskPath)}"]`
@@ -108365,13 +108403,18 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
108365
108403
  const taskGroup = title?.closest(".task-group");
108366
108404
  const taskRows = taskGroup?.querySelector(".task-rows");
108367
108405
  if (taskRows instanceof HTMLElement) {
108368
- taskRows.classList.toggle("collapsed", this.collapsedTasks.has(taskPath));
108406
+ taskRows.classList.toggle("collapsed", collapsed);
108407
+ }
108408
+ const taskToggle = taskGroup?.querySelector(".toggle.task-toggle");
108409
+ if (taskToggle instanceof HTMLButtonElement) {
108410
+ this.updateToggleButtonUi(taskToggle, collapsed);
108369
108411
  }
108370
108412
  }
108371
108413
  toggleRoot(rootId) {
108414
+ const hasLoadedSubdialogs = this.hasSubdialogsLoaded(rootId);
108372
108415
  if (this.collapsedRoots.has(rootId)) {
108373
108416
  this.collapsedRoots.delete(rootId);
108374
- if (!this.requestedSubdialogRoots.has(rootId) && !this.hasSubdialogsLoaded(rootId)) {
108417
+ if (!this.requestedSubdialogRoots.has(rootId) && !hasLoadedSubdialogs) {
108375
108418
  this.requestedSubdialogRoots.add(rootId);
108376
108419
  this.dispatchEvent(
108377
108420
  new CustomEvent("dialog-expand", {
@@ -108383,21 +108426,30 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
108383
108426
  }
108384
108427
  } else {
108385
108428
  this.collapsedRoots.add(rootId);
108386
- this.requestedSubdialogRoots.delete(rootId);
108387
- this.dispatchEvent(
108388
- new CustomEvent("dialog-collapse", {
108389
- detail: { rootId, status: "completed" },
108390
- bubbles: true,
108391
- composed: true
108392
- })
108393
- );
108429
+ if (hasLoadedSubdialogs) {
108430
+ this.requestedSubdialogRoots.delete(rootId);
108431
+ this.dispatchEvent(
108432
+ new CustomEvent("dialog-collapse", {
108433
+ detail: { rootId, status: "completed" },
108434
+ bubbles: true,
108435
+ composed: true
108436
+ })
108437
+ );
108438
+ }
108394
108439
  }
108440
+ const collapsed = this.collapsedRoots.has(rootId);
108395
108441
  if (this.listEl) {
108396
108442
  const rootChildren = this.listEl.querySelector(
108397
108443
  `.rdlg-node[data-rdlg-root-id="${this.escapeSelector(rootId)}"] > .sdlg-children`
108398
108444
  );
108399
108445
  if (rootChildren instanceof HTMLElement) {
108400
- rootChildren.classList.toggle("collapsed", this.collapsedRoots.has(rootId));
108446
+ rootChildren.classList.toggle("collapsed", collapsed);
108447
+ }
108448
+ const rootToggle = this.listEl.querySelector(
108449
+ `.toggle.root-toggle[data-root-id="${this.escapeSelector(rootId)}"]`
108450
+ );
108451
+ if (rootToggle instanceof HTMLButtonElement) {
108452
+ this.updateToggleButtonUi(rootToggle, collapsed);
108401
108453
  }
108402
108454
  }
108403
108455
  }
@@ -108647,6 +108699,14 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
108647
108699
  --icon-mask: ${ICON_MASK_URLS.toggleTriangle};
108648
108700
  }
108649
108701
 
108702
+ .toggle .q4h-toggle-arrow.is-collapsed {
108703
+ transform: rotate(0deg);
108704
+ }
108705
+
108706
+ .toggle .q4h-toggle-arrow.is-expanded {
108707
+ transform: rotate(90deg);
108708
+ }
108709
+
108650
108710
  .icon-button {
108651
108711
  border: none;
108652
108712
  background: transparent;
@@ -109681,8 +109741,15 @@ const _RunningDialogList = class _RunningDialogList extends HTMLElement {
109681
109741
  return collapsed ? "Expand" : "Collapse";
109682
109742
  }
109683
109743
  renderToggleIcon(collapsed) {
109684
- const rotation = collapsed ? "0deg" : "90deg";
109685
- return `<span class="q4h-toggle-arrow icon-mask" style="transform: rotate(${rotation})" aria-hidden="true"></span>`;
109744
+ const stateClass = collapsed ? "is-collapsed" : "is-expanded";
109745
+ return `<span class="q4h-toggle-arrow icon-mask ${stateClass}" aria-hidden="true"></span>`;
109746
+ }
109747
+ updateToggleButtonUi(button, collapsed) {
109748
+ button.setAttribute("aria-label", this.formatToggleAriaLabel(collapsed));
109749
+ const arrow = button.querySelector(".q4h-toggle-arrow");
109750
+ if (!(arrow instanceof HTMLElement)) return;
109751
+ arrow.classList.toggle("is-collapsed", collapsed);
109752
+ arrow.classList.toggle("is-expanded", !collapsed);
109686
109753
  }
109687
109754
  renderDoneIcon() {
109688
109755
  return '<span class="icon-mask dlg-icon-done" aria-hidden="true"></span>';
@@ -109936,6 +110003,7 @@ const _RunningDialogList = class _RunningDialogList extends HTMLElement {
109936
110003
  } else {
109937
110004
  this.collapsedTasks.add(taskPath);
109938
110005
  }
110006
+ const collapsed = this.collapsedTasks.has(taskPath);
109939
110007
  if (!this.listEl) return;
109940
110008
  const title = this.listEl.querySelector(
109941
110009
  `.task-title[data-task-path="${this.escapeSelector(taskPath)}"]`
@@ -109943,13 +110011,18 @@ const _RunningDialogList = class _RunningDialogList extends HTMLElement {
109943
110011
  const taskGroup = title?.closest(".task-group");
109944
110012
  const taskRows = taskGroup?.querySelector(".task-rows");
109945
110013
  if (taskRows instanceof HTMLElement) {
109946
- taskRows.classList.toggle("collapsed", this.collapsedTasks.has(taskPath));
110014
+ taskRows.classList.toggle("collapsed", collapsed);
110015
+ }
110016
+ const taskToggle = taskGroup?.querySelector(".toggle.task-toggle");
110017
+ if (taskToggle instanceof HTMLButtonElement) {
110018
+ this.updateToggleButtonUi(taskToggle, collapsed);
109947
110019
  }
109948
110020
  }
109949
110021
  toggleRoot(rootId) {
110022
+ const hasLoadedSubdialogs = this.hasSubdialogsLoaded(rootId);
109950
110023
  if (this.collapsedRoots.has(rootId)) {
109951
110024
  this.collapsedRoots.delete(rootId);
109952
- if (!this.requestedSubdialogRoots.has(rootId) && !this.hasSubdialogsLoaded(rootId)) {
110025
+ if (!this.requestedSubdialogRoots.has(rootId) && !hasLoadedSubdialogs) {
109953
110026
  this.requestedSubdialogRoots.add(rootId);
109954
110027
  this.dispatchEvent(
109955
110028
  new CustomEvent("dialog-expand", {
@@ -109961,21 +110034,30 @@ const _RunningDialogList = class _RunningDialogList extends HTMLElement {
109961
110034
  }
109962
110035
  } else {
109963
110036
  this.collapsedRoots.add(rootId);
109964
- this.requestedSubdialogRoots.delete(rootId);
109965
- this.dispatchEvent(
109966
- new CustomEvent("dialog-collapse", {
109967
- detail: { rootId, status: "running" },
109968
- bubbles: true,
109969
- composed: true
109970
- })
109971
- );
110037
+ if (hasLoadedSubdialogs) {
110038
+ this.requestedSubdialogRoots.delete(rootId);
110039
+ this.dispatchEvent(
110040
+ new CustomEvent("dialog-collapse", {
110041
+ detail: { rootId, status: "running" },
110042
+ bubbles: true,
110043
+ composed: true
110044
+ })
110045
+ );
110046
+ }
109972
110047
  }
110048
+ const collapsed = this.collapsedRoots.has(rootId);
109973
110049
  if (this.listEl) {
109974
110050
  const rootChildren = this.listEl.querySelector(
109975
110051
  `.rdlg-node[data-rdlg-root-id="${this.escapeSelector(rootId)}"] > .sdlg-children`
109976
110052
  );
109977
110053
  if (rootChildren instanceof HTMLElement) {
109978
- rootChildren.classList.toggle("collapsed", this.collapsedRoots.has(rootId));
110054
+ rootChildren.classList.toggle("collapsed", collapsed);
110055
+ }
110056
+ const rootToggle = this.listEl.querySelector(
110057
+ `.toggle.root-toggle[data-root-id="${this.escapeSelector(rootId)}"]`
110058
+ );
110059
+ if (rootToggle instanceof HTMLButtonElement) {
110060
+ this.updateToggleButtonUi(rootToggle, collapsed);
109979
110061
  }
109980
110062
  }
109981
110063
  }
@@ -110441,6 +110523,14 @@ const _RunningDialogList = class _RunningDialogList extends HTMLElement {
110441
110523
  --icon-mask: ${ICON_MASK_URLS.toggleTriangle};
110442
110524
  }
110443
110525
 
110526
+ .toggle .q4h-toggle-arrow.is-collapsed {
110527
+ transform: rotate(0deg);
110528
+ }
110529
+
110530
+ .toggle .q4h-toggle-arrow.is-expanded {
110531
+ transform: rotate(90deg);
110532
+ }
110533
+
110444
110534
  .icon-button {
110445
110535
  border: none;
110446
110536
  background: transparent;
@@ -111506,6 +111596,12 @@ ${formatUiLanguageOptionLabel({
111506
111596
  }
111507
111597
  return this.shadowRoot?.querySelector("#dialog-container");
111508
111598
  }
111599
+ applyRemindersWidgetGeometryStyle(widget) {
111600
+ widget.style.setProperty("--reminders-widget-left", `${this.remindersWidgetX}px`);
111601
+ widget.style.setProperty("--reminders-widget-top", `${this.remindersWidgetY}px`);
111602
+ widget.style.setProperty("--reminders-widget-width", `${this.remindersWidgetWidthPx}px`);
111603
+ widget.style.setProperty("--reminders-widget-height", `${this.remindersWidgetHeightPx}px`);
111604
+ }
111509
111605
  setupRemindersWidgetDrag() {
111510
111606
  const widget = this.shadowRoot?.querySelector("#reminders-widget");
111511
111607
  const header = this.shadowRoot?.querySelector("#reminders-widget-header");
@@ -111531,10 +111627,7 @@ ${formatUiLanguageOptionLabel({
111531
111627
  const maxY = Math.max(margin, window.innerHeight - this.remindersWidgetHeightPx - margin);
111532
111628
  this.remindersWidgetX = clamp(this.remindersWidgetX, margin, maxX);
111533
111629
  this.remindersWidgetY = clamp(this.remindersWidgetY, margin, maxY);
111534
- widget.style.left = `${this.remindersWidgetX}px`;
111535
- widget.style.top = `${this.remindersWidgetY}px`;
111536
- widget.style.width = `${this.remindersWidgetWidthPx}px`;
111537
- widget.style.height = `${this.remindersWidgetHeightPx}px`;
111630
+ this.applyRemindersWidgetGeometryStyle(widget);
111538
111631
  };
111539
111632
  const initialRect = widget.getBoundingClientRect();
111540
111633
  if (Number.isFinite(initialRect.width) && initialRect.width > 0) {
@@ -111786,7 +111879,7 @@ ${formatUiLanguageOptionLabel({
111786
111879
  const remBtnCount = this.shadowRoot?.querySelector(
111787
111880
  "#navibar-reminders-toggle .reminders-count"
111788
111881
  );
111789
- const courseLabel = this.shadowRoot?.querySelector("#course-navi span");
111882
+ const courseLabel = this.shadowRoot?.querySelector("#course-navi-label");
111790
111883
  const stopCount = this.shadowRoot?.querySelector(
111791
111884
  "#header-emergency-stop-count"
111792
111885
  );
@@ -112493,6 +112586,7 @@ ${formatUiLanguageOptionLabel({
112493
112586
  #navibar-context-health-wrap {
112494
112587
  display: inline-flex;
112495
112588
  align-items: center;
112589
+ position: relative;
112496
112590
  }
112497
112591
 
112498
112592
  #navibar-context-health-wrap .navibar-tooltip {
@@ -113254,6 +113348,14 @@ ${formatUiLanguageOptionLabel({
113254
113348
  min-width: 0;
113255
113349
  }
113256
113350
 
113351
+ .navibar-spacer {
113352
+ flex: 1;
113353
+ }
113354
+
113355
+ .navibar-gap-left {
113356
+ margin-left: 12px;
113357
+ }
113358
+
113257
113359
  #course-navi {
113258
113360
  display: flex;
113259
113361
  align-items: center;
@@ -113261,10 +113363,22 @@ ${formatUiLanguageOptionLabel({
113261
113363
  gap: 3px;
113262
113364
  }
113263
113365
 
113366
+ .course-navi-label {
113367
+ margin: 0 8px;
113368
+ min-width: 28px;
113369
+ display: inline-block;
113370
+ text-align: center;
113371
+ }
113372
+
113264
113373
  #reminders-callout {
113265
113374
  display: flex;
113266
113375
  align-items: center;
113267
113376
  flex-shrink: 0;
113377
+ position: relative;
113378
+ }
113379
+
113380
+ .reminders-refresh-button {
113381
+ margin-left: 6px;
113268
113382
  }
113269
113383
 
113270
113384
  .icon-button {
@@ -113991,6 +114105,12 @@ ${formatUiLanguageOptionLabel({
113991
114105
  line-height: 1.4;
113992
114106
  }
113993
114107
 
114108
+ #auth-modal-error {
114109
+ display: none;
114110
+ color: var(--dominds-danger, #dc3545);
114111
+ font-size: var(--dominds-font-size-md, 13px);
114112
+ }
114113
+
113994
114114
  .modal-backdrop {
113995
114115
  position: absolute;
113996
114116
  top: 0;
@@ -114568,9 +114688,70 @@ ${formatUiLanguageOptionLabel({
114568
114688
  }
114569
114689
 
114570
114690
  #reminders-widget {
114691
+ position: fixed;
114692
+ left: var(--reminders-widget-left, 12px);
114693
+ top: var(--reminders-widget-top, 56px);
114694
+ width: var(--reminders-widget-width, 360px);
114695
+ height: var(--reminders-widget-height, 240px);
114696
+ min-width: 260px;
114697
+ min-height: 160px;
114698
+ max-width: calc(100vw - 24px);
114699
+ max-height: calc(100vh - 24px);
114700
+ overflow: hidden;
114701
+ display: flex;
114702
+ flex-direction: column;
114703
+ border: 1px solid var(--dominds-border, #e0e0e0);
114704
+ background: var(--dominds-bg, #ffffff);
114705
+ border-radius: 10px;
114706
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
114707
+ z-index: var(--dominds-z-overlay-reminders);
114571
114708
  opacity: 0.92;
114572
114709
  }
114573
114710
 
114711
+ .reminders-widget-header {
114712
+ display: flex;
114713
+ align-items: center;
114714
+ justify-content: space-between;
114715
+ gap: 8px;
114716
+ padding: 8px 10px;
114717
+ border-bottom: 1px solid var(--dominds-border, #e0e0e0);
114718
+ cursor: grab;
114719
+ }
114720
+
114721
+ .reminders-widget-header-main {
114722
+ display: flex;
114723
+ align-items: center;
114724
+ gap: 8px;
114725
+ }
114726
+
114727
+ #reminders-widget-content {
114728
+ padding: 8px 10px;
114729
+ overflow: auto;
114730
+ flex: 1 1 auto;
114731
+ min-height: 0;
114732
+ }
114733
+
114734
+ .reminders-widget-empty {
114735
+ color: var(--dominds-muted, #666666);
114736
+ font-style: italic;
114737
+ text-align: center;
114738
+ padding: 12px;
114739
+ }
114740
+
114741
+ #reminders-widget-resize-handle {
114742
+ position: absolute;
114743
+ left: 8px;
114744
+ bottom: 8px;
114745
+ width: 14px;
114746
+ height: 14px;
114747
+ display: flex;
114748
+ align-items: center;
114749
+ justify-content: center;
114750
+ cursor: nesw-resize;
114751
+ color: var(--dominds-muted, #64748b);
114752
+ opacity: 0.72;
114753
+ }
114754
+
114574
114755
  /* Reminder widget items */
114575
114756
  .rem-item {
114576
114757
  display: flex;
@@ -114606,6 +114787,11 @@ ${formatUiLanguageOptionLabel({
114606
114787
  word-break: break-word;
114607
114788
  }
114608
114789
 
114790
+ .rem-item-content-loading {
114791
+ color: var(--dominds-muted, #666666);
114792
+ font-style: italic;
114793
+ }
114794
+
114609
114795
  .rem-section {
114610
114796
  display: flex;
114611
114797
  flex-direction: column;
@@ -114914,7 +115100,7 @@ ${uiLanguageButtonTooltip}">
114914
115100
  </button>
114915
115101
  <div id="current-dialog-title">${t2.currentDialogPlaceholder}</div>
114916
115102
  </div>
114917
- <div style="flex: 1;"></div>
115103
+ <div class="navibar-spacer"></div>
114918
115104
  <button class="icon-button" id="navibar-save-priming" title="${t2.primingSaveButtonTitle}" aria-label="${t2.primingSaveButtonTitle}" ${this.currentDialog ? "" : "disabled"}>
114919
115105
  <span class="icon-mask app-icon-save" aria-hidden="true"></span>
114920
115106
  </button>
@@ -114922,42 +115108,42 @@ ${uiLanguageButtonTooltip}">
114922
115108
  <button class="icon-button" id="course-navi-prev" ${this.toolbarCurrentCourse > 1 ? "" : "disabled"} aria-label="${t2.previousCourse}">
114923
115109
  <span class="icon-mask app-icon-prev" aria-hidden="true"></span>
114924
115110
  </button>
114925
- <span style="margin: 0 8px; min-width: 28px; display:inline-block; text-align:center;">C ${this.toolbarCurrentCourse}</span>
115111
+ <span id="course-navi-label" class="course-navi-label">C ${this.toolbarCurrentCourse}</span>
114926
115112
  <button class="icon-button" id="course-navi-next" ${this.toolbarCurrentCourse < this.toolbarTotalCourses ? "" : "disabled"} aria-label="${t2.nextCourse}">
114927
115113
  <span class="icon-mask app-icon-next" aria-hidden="true"></span>
114928
115114
  </button>
114929
115115
  </div>
114930
- <div id="navibar-context-health-wrap" style="position: relative; margin-left: 12px;">
114931
- <div class="badge-button" id="navibar-context-health" data-level="unknown" aria-label="${contextUsageTitle}" style="">${this.renderContextUsageIcon(this.toolbarContextHealth)}</div>
115116
+ <div id="navibar-context-health-wrap" class="navibar-gap-left">
115117
+ <div class="badge-button" id="navibar-context-health" data-level="unknown" aria-label="${contextUsageTitle}">${this.renderContextUsageIcon(this.toolbarContextHealth)}</div>
114932
115118
  <div class="navibar-tooltip" id="navibar-context-health-tooltip">${contextUsageTooltipText}</div>
114933
115119
  </div>
114934
- <div id="reminders-callout" style="position: relative; margin-left: 12px;">
115120
+ <div id="reminders-callout" class="navibar-gap-left">
114935
115121
  <button class="badge-button" id="navibar-reminders-toggle" aria-label="${t2.reminders}">
114936
115122
  <span class="icon-mask app-icon-bookmark" aria-hidden="true"></span>
114937
115123
  <span class="reminders-count">${String(this.toolbarReminders.length)}</span>
114938
115124
  </button>
114939
- <button class="icon-button" id="navibar-reminders-refresh" title="${t2.refreshReminders}" aria-label="${t2.refreshReminders}" style="margin-left:6px;">
115125
+ <button class="icon-button reminders-refresh-button" id="navibar-reminders-refresh" title="${t2.refreshReminders}" aria-label="${t2.refreshReminders}">
114940
115126
  <span class="icon-mask app-icon-refresh" aria-hidden="true"></span>
114941
115127
  </button>
114942
115128
  </div>
114943
115129
  </div>
114944
115130
  ${this.remindersWidgetVisible ? `
114945
- <div id="reminders-widget" style="position: fixed; left: ${this.remindersWidgetX}px; top: ${this.remindersWidgetY}px; width: ${this.remindersWidgetWidthPx}px; height: ${this.remindersWidgetHeightPx}px; min-width: 260px; min-height: 160px; max-width: calc(100vw - 24px); max-height: calc(100vh - 24px); overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--dominds-border); background: var(--dominds-bg); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.2); z-index: var(--dominds-z-overlay-reminders);">
114946
- <div id="reminders-widget-header" style="display:flex; align-items:center; justify-content: space-between; gap:8px; padding:8px 10px; border-bottom: 1px solid var(--dominds-border); cursor: grab;">
114947
- <div style="display:flex; align-items:center; gap:8px;">
115131
+ <div id="reminders-widget" style="--reminders-widget-left: ${this.remindersWidgetX}px; --reminders-widget-top: ${this.remindersWidgetY}px; --reminders-widget-width: ${this.remindersWidgetWidthPx}px; --reminders-widget-height: ${this.remindersWidgetHeightPx}px;">
115132
+ <div id="reminders-widget-header" class="reminders-widget-header">
115133
+ <div class="reminders-widget-header-main">
114948
115134
  <span class="icon-mask app-icon-bookmark app-icon-16" aria-hidden="true"></span>
114949
- <span>${formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length)}</span>
115135
+ <span id="reminders-widget-title">${formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length)}</span>
114950
115136
  </div>
114951
115137
  <button id="reminders-widget-close" class="icon-button" aria-label="${t2.close}">
114952
115138
  <span class="icon-mask app-icon-close" aria-hidden="true"></span>
114953
115139
  </button>
114954
115140
  </div>
114955
- <div id="reminders-widget-content" style="padding:8px 10px; overflow:auto; flex: 1 1 auto; min-height: 0;">
114956
- ${this.toolbarReminders.length === 0 ? `<div style="color: var(--dominds-muted); font-style: italic; text-align: center; padding: 12px;">${t2.noReminders}</div>` : '<div class="reminders-widget-content"></div>'}
115141
+ <div id="reminders-widget-content">
115142
+ ${this.toolbarReminders.length === 0 ? `<div class="reminders-widget-empty">${t2.noReminders}</div>` : ""}
114957
115143
  </div>
114958
- <div id="reminders-widget-resize-handle" aria-hidden="true" style="position:absolute; left:8px; bottom:8px; width:14px; height:14px; display:flex; align-items:center; justify-content:center; cursor:nesw-resize; color: var(--dominds-muted, #64748b); opacity:0.72;">
114959
- <span class="icon-mask app-icon-resize-corner-bottom-left" aria-hidden="true"></span>
114960
- </div>
115144
+ <div id="reminders-widget-resize-handle" aria-hidden="true">
115145
+ <span class="icon-mask app-icon-resize-corner-bottom-left" aria-hidden="true"></span>
115146
+ </div>
114961
115147
  </div>
114962
115148
  ` : ""}
114963
115149
 
@@ -115541,7 +115727,7 @@ ${content}`;
115541
115727
  const next2 = this.shadowRoot.querySelector("#course-navi-next");
115542
115728
  if (prev2) prev2.disabled = !(this.toolbarCurrentCourse > 1);
115543
115729
  if (next2) next2.disabled = !(this.toolbarCurrentCourse < this.toolbarTotalCourses);
115544
- const label = this.shadowRoot.querySelector("#course-navi span");
115730
+ const label = this.shadowRoot.querySelector("#course-navi-label");
115545
115731
  if (label) label.textContent = `C ${this.toolbarCurrentCourse}`;
115546
115732
  }
115547
115733
  /**
@@ -116503,7 +116689,7 @@ ${content}`;
116503
116689
  <label for="auth-key-input">${t2.authKeyLabel}</label>
116504
116690
  <input type="password" id="auth-key-input" class="task-doc-input" placeholder="${t2.authKeyPlaceholder}" autocomplete="off">
116505
116691
  </div>
116506
- <div class="form-group" id="auth-modal-error" style="display:none;color:var(--dominds-danger,#dc3545);font-size: var(--dominds-font-size-md, 13px);"></div>
116692
+ <div class="form-group" id="auth-modal-error"></div>
116507
116693
  </div>
116508
116694
  <div class="modal-footer">
116509
116695
  <button class="btn btn-primary" id="auth-submit-btn">${t2.connect}</button>
@@ -117382,40 +117568,7 @@ ${content}`;
117382
117568
  }
117383
117569
  showError(message, type2 = "error") {
117384
117570
  console.error(`[${type2.toUpperCase()}] ${message}`);
117385
- if (this.shadowRoot) {
117386
- const contentEl = this.shadowRoot.querySelector("#dialog-content");
117387
- if (contentEl) {
117388
- const iconClass = this.getToastIconClass(type2);
117389
- const color2 = type2 === "error" ? "var(--dominds-danger, #dc3545)" : type2 === "warning" ? "var(--dominds-warning, #ffc107)" : "var(--dominds-info, #007bff)";
117390
- contentEl.innerHTML = `
117391
- <div style="
117392
- padding: 20px;
117393
- margin: 20px;
117394
- border-radius: 8px;
117395
- background: ${type2 === "error" ? "var(--dominds-danger-bg, #f8d7da)" : type2 === "warning" ? "var(--dominds-warning-bg, #fff3cd)" : "var(--dominds-info-bg, #cce7ff)"};
117396
- border: 1px solid ${type2 === "error" ? "var(--dominds-danger-border, #f5c6cb)" : type2 === "warning" ? "var(--dominds-warning-border, #ffeaa7)" : "var(--dominds-info-border, #99d1ff)"};
117397
- color: ${color2};
117398
- ">
117399
- <div style="display: flex; align-items: center; gap: 8px; margin-bottom: 8px;">
117400
- <span class="icon-mask ${iconClass}" aria-hidden="true" style="width: 14px; height: 14px;"></span>
117401
- <strong>${type2 === "error" ? "Error" : type2 === "warning" ? "Warning" : "Info"}</strong>
117402
- </div>
117403
- <div>${message}</div>
117404
- ${type2 !== "info" ? `<div style="margin-top: 12px;">
117405
- <button onclick="this.parentElement.parentElement.remove()" style="
117406
- padding: 6px 12px;
117407
- border: none;
117408
- border-radius: 4px;
117409
- background: ${color2};
117410
- color: white;
117411
- cursor: pointer;
117412
- font-size: var(--dominds-font-size-sm, 12px);
117413
- ">Dismiss</button>
117414
- </div>` : ""}
117415
- </div>
117416
- `;
117417
- }
117418
- }
117571
+ this.showToast(message, type2);
117419
117572
  }
117420
117573
  showSuccess(message) {
117421
117574
  this.showToast(message, "info", { history: "skip" });
@@ -117973,7 +118126,7 @@ ${content}`;
117973
118126
  const nextBtn = this.shadowRoot?.querySelector("#course-navi-next");
117974
118127
  if (prevBtn) prevBtn.disabled = !(this.toolbarCurrentCourse > 1);
117975
118128
  if (nextBtn) nextBtn.disabled = !(this.toolbarCurrentCourse < this.toolbarTotalCourses);
117976
- const courseLabel = this.shadowRoot?.querySelector("#course-navi span");
118129
+ const courseLabel = this.shadowRoot?.querySelector("#course-navi-label");
117977
118130
  if (courseLabel) courseLabel.textContent = `C ${this.toolbarCurrentCourse}`;
117978
118131
  const latest = message.totalCourses;
117979
118132
  const input = this.q4hInput;
@@ -118327,14 +118480,6 @@ ${content}`;
118327
118480
  remBtnCount.textContent = String(this.toolbarReminders.length);
118328
118481
  }
118329
118482
  if (this.remindersWidgetVisible) {
118330
- const widgetHeaders = this.shadowRoot?.querySelectorAll(
118331
- "#reminders-widget-header span, .reminders-widget-header span"
118332
- );
118333
- if (widgetHeaders && widgetHeaders.length > 0) {
118334
- widgetHeaders.forEach((header) => {
118335
- header.textContent = formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length);
118336
- });
118337
- }
118338
118483
  this.renderRemindersWidget();
118339
118484
  }
118340
118485
  }
@@ -118376,42 +118521,30 @@ ${content}`;
118376
118521
  Math.min(maxX, Math.floor(rect2.right - this.remindersWidgetWidthPx - 8))
118377
118522
  );
118378
118523
  this.remindersWidgetY = Math.max(margin, Math.min(maxY, Math.floor(rect2.bottom + 8)));
118379
- if (!existing) {
118380
- const widget = document.createElement("div");
118381
- widget.id = "reminders-widget";
118382
- widget.style.position = "fixed";
118383
- widget.style.left = `${this.remindersWidgetX}px`;
118384
- widget.style.top = `${this.remindersWidgetY}px`;
118385
- widget.style.width = `${this.remindersWidgetWidthPx}px`;
118386
- widget.style.height = `${this.remindersWidgetHeightPx}px`;
118387
- widget.style.minWidth = "260px";
118388
- widget.style.minHeight = "160px";
118389
- widget.style.maxWidth = "calc(100vw - 24px)";
118390
- widget.style.maxHeight = "calc(100vh - 24px)";
118391
- widget.style.overflow = "hidden";
118392
- widget.style.display = "flex";
118393
- widget.style.flexDirection = "column";
118394
- widget.style.border = "1px solid var(--dominds-border)";
118395
- widget.style.background = "var(--dominds-bg)";
118396
- widget.style.borderRadius = "10px";
118397
- widget.style.boxShadow = "0 8px 16px rgba(0,0,0,0.2)";
118398
- widget.style.zIndex = "2000";
118399
- widget.innerHTML = `
118400
- <div id="reminders-widget-header" style="display:flex; align-items:center; justify-content: space-between; gap:8px; padding:8px 10px; border-bottom: 1px solid var(--dominds-border); cursor: grab;">
118401
- <div style="display:flex; align-items:center; gap:8px;">
118524
+ let widget = existing;
118525
+ if (!widget) {
118526
+ const created = document.createElement("div");
118527
+ created.id = "reminders-widget";
118528
+ created.innerHTML = `
118529
+ <div id="reminders-widget-header" class="reminders-widget-header">
118530
+ <div class="reminders-widget-header-main">
118402
118531
  <span class="icon-mask app-icon-bookmark app-icon-16" aria-hidden="true"></span>
118403
- <span>${formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length)}</span>
118532
+ <span id="reminders-widget-title">${formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length)}</span>
118404
118533
  </div>
118405
118534
  <button id="reminders-widget-close" class="icon-button" aria-label="${t2.close}">
118406
118535
  <span class="icon-mask app-icon-close" aria-hidden="true"></span>
118407
118536
  </button>
118408
118537
  </div>
118409
- <div id="reminders-widget-content" style="padding:8px 10px; overflow:auto; flex: 1 1 auto; min-height: 0;"></div>
118410
- <div id="reminders-widget-resize-handle" aria-hidden="true" style="position:absolute; left:8px; bottom:8px; width:14px; height:14px; display:flex; align-items:center; justify-content:center; cursor:nesw-resize; color: var(--dominds-muted, #64748b); opacity:0.72;">
118411
- <span class="icon-mask app-icon-resize-corner-bottom-left" aria-hidden="true"></span>
118412
- </div>
118538
+ <div id="reminders-widget-content"></div>
118539
+ <div id="reminders-widget-resize-handle" aria-hidden="true">
118540
+ <span class="icon-mask app-icon-resize-corner-bottom-left" aria-hidden="true"></span>
118541
+ </div>
118413
118542
  `;
118414
- this.shadowRoot?.appendChild(widget);
118543
+ this.shadowRoot?.appendChild(created);
118544
+ widget = created;
118545
+ }
118546
+ if (widget) {
118547
+ this.applyRemindersWidgetGeometryStyle(widget);
118415
118548
  }
118416
118549
  this.renderRemindersWidget();
118417
118550
  this.setupRemindersWidgetDrag();
@@ -118425,32 +118558,30 @@ ${content}`;
118425
118558
  */
118426
118559
  renderRemindersWidget() {
118427
118560
  if (!this.remindersWidgetVisible) return;
118428
- const widgetContents = this.shadowRoot?.querySelectorAll(
118429
- "#reminders-widget-content, .reminders-widget-content"
118561
+ const widgetContent = this.shadowRoot?.querySelector(
118562
+ "#reminders-widget-content"
118430
118563
  );
118431
- const widgetHeaders = this.shadowRoot?.querySelectorAll(
118432
- "#reminders-widget-header span, .reminders-widget-header span"
118564
+ const widgetTitle = this.shadowRoot?.querySelector(
118565
+ "#reminders-widget-title"
118433
118566
  );
118434
- if (!widgetContents || widgetContents.length === 0) {
118435
- console.warn("No reminders widget content containers found");
118567
+ if (!widgetContent) {
118568
+ console.warn("No reminders widget content container found");
118436
118569
  return;
118437
118570
  }
118438
- if (widgetHeaders && widgetHeaders.length > 0) {
118439
- widgetHeaders.forEach((header) => {
118440
- header.textContent = formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length);
118441
- });
118571
+ if (widgetTitle) {
118572
+ widgetTitle.textContent = formatRemindersTitle(this.uiLanguage, this.toolbarReminders.length);
118442
118573
  }
118443
118574
  const numberedReminders = this.toolbarReminders.filter((r2) => r2 && r2.echoback !== false);
118444
118575
  const virtualReminders = this.toolbarReminders.filter((r2) => r2 && r2.echoback === false);
118445
118576
  let contentHTML = "";
118446
118577
  if (numberedReminders.length === 0 && virtualReminders.length === 0) {
118447
118578
  const t2 = getUiStrings(this.uiLanguage);
118448
- contentHTML = `<div style="color: var(--dominds-muted); font-style: italic; text-align: center; padding: 12px;">${t2.noReminders}</div>`;
118579
+ contentHTML = `<div class="reminders-widget-empty">${t2.noReminders}</div>`;
118449
118580
  } else {
118450
118581
  const t2 = getUiStrings(this.uiLanguage);
118451
118582
  const numberedItems = numberedReminders.map((r2, i2) => {
118452
118583
  if (!r2 || !r2.content) {
118453
- return `<div class="rem-item"><div class="rem-item-number">${i2 + 1}.</div><div class="rem-item-content" style="color: var(--dominds-muted); font-style: italic;">${t2.loading}</div></div>`;
118584
+ return `<div class="rem-item"><div class="rem-item-number">${i2 + 1}.</div><div class="rem-item-content rem-item-content-loading">${t2.loading}</div></div>`;
118454
118585
  }
118455
118586
  const reminderNo = typeof r2.reminder_no === "number" && Number.isInteger(r2.reminder_no) && r2.reminder_no > 0 ? r2.reminder_no : i2 + 1;
118456
118587
  const displayContent = this.formatReminderDisplayContent(r2.content, r2.meta);
@@ -118458,7 +118589,7 @@ ${content}`;
118458
118589
  }).join("");
118459
118590
  const virtualItemsArray = virtualReminders.map((r2) => {
118460
118591
  if (!r2 || !r2.content) {
118461
- return `<div class="rem-item rem-item-virtual"><div class="rem-item-content" style="color: var(--dominds-muted); font-style: italic;">${t2.loading}</div></div>`;
118592
+ return `<div class="rem-item rem-item-virtual"><div class="rem-item-content rem-item-content-loading">${t2.loading}</div></div>`;
118462
118593
  }
118463
118594
  const meta = r2.meta && typeof r2.meta === "object" ? r2.meta : void 0;
118464
118595
  const kind = typeof meta?.kind === "string" ? meta.kind : "";
@@ -118481,9 +118612,7 @@ ${content}`;
118481
118612
  }
118482
118613
  contentHTML = sections.join("");
118483
118614
  }
118484
- widgetContents.forEach((widgetContent, index) => {
118485
- widgetContent.innerHTML = contentHTML;
118486
- });
118615
+ widgetContent.innerHTML = contentHTML;
118487
118616
  }
118488
118617
  formatReminderDisplayContent(content, meta) {
118489
118618
  if (!meta) {
@@ -120039,9 +120168,9 @@ class DomindsSetup extends HTMLElement {
120039
120168
  <div class="section-title">${escapeHtml(t2.setupTeamTitle)}</div>
120040
120169
  ${parseError ? `<div class="error">${escapeHtml(parseError)}</div>` : ""}
120041
120170
 
120042
- <div class="subcard" style="margin-top:12px;">
120171
+ <div class="subcard mt-12">
120043
120172
  <div class="subcard-title">${escapeHtml(t2.setupMemberDefaultsTitle)}</div>
120044
- <div class="fields" style="margin-top:8px;">
120173
+ <div class="fields mt-8">
120045
120174
  <div class="field">
120046
120175
  <div class="field-title">${escapeHtml(t2.teamMembersProviderLabel)}</div>
120047
120176
  <select id="provider-select" class="select">${providerSelectOptions}</select>
@@ -120054,9 +120183,9 @@ class DomindsSetup extends HTMLElement {
120054
120183
  ${prominentForm}
120055
120184
  </div>
120056
120185
 
120057
- <pre class="code" style="margin-top:12px;">${snippet2}</pre>
120186
+ <pre class="code mt-12">${snippet2}</pre>
120058
120187
 
120059
- <div class="row" style="margin-top:10px;">
120188
+ <div class="row mt-10">
120060
120189
  <div class="muted">${this.renderTeamAfterWriteHint(teamPath, t2)}</div>
120061
120190
  <div class="spacer"></div>
120062
120191
  <button id="copy-team-snippet" class="${writeButtonClass}" ${writeDisabled}>${escapeHtml(
@@ -120146,16 +120275,16 @@ class DomindsSetup extends HTMLElement {
120146
120275
  `;
120147
120276
  }).join("");
120148
120277
  return `
120149
- <div class="subcard nested" style="margin-top:10px;">
120278
+ <div class="subcard nested mt-10">
120150
120279
  <div class="subcard-title">${escapeHtml(this.formatModelParamNamespaceTitle(ns))}</div>
120151
120280
  ${rows}
120152
120281
  </div>
120153
120282
  `;
120154
120283
  }).join("");
120155
120284
  const hint = t2.setupTeamModelParamsHint.trim();
120156
- const hintHtml = hint === "" ? "" : `<div class="muted" style="margin-top:4px;">${escapeHtml(hint)}</div>`;
120285
+ const hintHtml = hint === "" ? "" : `<div class="muted mt-4">${escapeHtml(hint)}</div>`;
120157
120286
  return `
120158
- <div class="subcard" style="margin-top:10px;">
120287
+ <div class="subcard mt-10">
120159
120288
  <div class="subcard-title">${escapeHtml(t2.setupModelParamsTitle)}</div>
120160
120289
  ${hintHtml}
120161
120290
  ${sections}
@@ -120493,6 +120622,10 @@ class DomindsSetup extends HTMLElement {
120493
120622
  code{background:var(--color-bg-tertiary,#f1f5f9);border:1px solid var(--dominds-border-light,#e5e7eb);padding:1px 6px;border-radius:8px;}
120494
120623
 
120495
120624
  .code{background:var(--color-bg-tertiary,#f1f5f9);border:1px solid var(--dominds-border-light,#e5e7eb);border-radius:12px;padding:12px;overflow:auto;margin-top:10px;color:var(--dominds-fg,#333333);}
120625
+ .mt-4{margin-top:4px;}
120626
+ .mt-8{margin-top:8px;}
120627
+ .mt-10{margin-top:10px;}
120628
+ .mt-12{margin-top:12px;}
120496
120629
 
120497
120630
  .providers{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
120498
120631
  .provider-card{background:var(--dominds-bg-secondary,#ffffff);border:1px solid var(--dominds-border,#e0e0e0);border-radius:12px;padding:10px;}
@@ -120746,4 +120879,4 @@ export {
120746
120879
  clear$2 as y,
120747
120880
  defaultConfig2 as z
120748
120881
  };
120749
- //# sourceMappingURL=index-D31hl_lU.js.map
120882
+ //# sourceMappingURL=index-CQ_I7hKY.js.map