dominds 1.9.1 → 1.9.2

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 (105) hide show
  1. package/dist/llm/kernel-driver/subdialog.d.ts +2 -0
  2. package/dist/llm/kernel-driver/subdialog.js +9 -4
  3. package/dist/llm/kernel-driver/tellask-special.js +1 -0
  4. package/dist/persistence.js +31 -16
  5. package/dist/priming.js +32 -12
  6. package/dist/server/api-routes.js +212 -89
  7. package/dist/server/auth.d.ts +1 -0
  8. package/dist/server/auth.js +21 -0
  9. package/dist/server/server-core.js +15 -0
  10. package/package.json +1 -1
  11. package/webapp/dist/assets/{_basePickBy-BCSeQ8Mb.js → _basePickBy-9Z1lbVTN.js} +3 -3
  12. package/webapp/dist/assets/{_basePickBy-BCSeQ8Mb.js.map → _basePickBy-9Z1lbVTN.js.map} +1 -1
  13. package/webapp/dist/assets/{_baseUniq-B5WIJgde.js → _baseUniq-C3pRnD57.js} +2 -2
  14. package/webapp/dist/assets/{_baseUniq-B5WIJgde.js.map → _baseUniq-C3pRnD57.js.map} +1 -1
  15. package/webapp/dist/assets/{arc-CWDgoT74.js → arc-BvNng3O_.js} +2 -2
  16. package/webapp/dist/assets/{arc-CWDgoT74.js.map → arc-BvNng3O_.js.map} +1 -1
  17. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-DFdZI4Uu.js → architectureDiagram-2XIMDMQ5-BF8vwQ4e.js} +7 -7
  18. package/webapp/dist/assets/{architectureDiagram-2XIMDMQ5-DFdZI4Uu.js.map → architectureDiagram-2XIMDMQ5-BF8vwQ4e.js.map} +1 -1
  19. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-DRcKQf9Q.js → blockDiagram-WCTKOSBZ-C7kfjZhf.js} +7 -7
  20. package/webapp/dist/assets/{blockDiagram-WCTKOSBZ-DRcKQf9Q.js.map → blockDiagram-WCTKOSBZ-C7kfjZhf.js.map} +1 -1
  21. package/webapp/dist/assets/{c4Diagram-IC4MRINW-B0AMlCwV.js → c4Diagram-IC4MRINW-CaJ6bX75.js} +3 -3
  22. package/webapp/dist/assets/{c4Diagram-IC4MRINW-B0AMlCwV.js.map → c4Diagram-IC4MRINW-CaJ6bX75.js.map} +1 -1
  23. package/webapp/dist/assets/{channel-B0ljx2su.js → channel-DDuIUO0R.js} +2 -2
  24. package/webapp/dist/assets/{channel-B0ljx2su.js.map → channel-DDuIUO0R.js.map} +1 -1
  25. package/webapp/dist/assets/{chunk-4BX2VUAB-DbKTqY07.js → chunk-4BX2VUAB-BQPkQh6v.js} +2 -2
  26. package/webapp/dist/assets/{chunk-4BX2VUAB-DbKTqY07.js.map → chunk-4BX2VUAB-BQPkQh6v.js.map} +1 -1
  27. package/webapp/dist/assets/{chunk-55IACEB6-DwJgszOl.js → chunk-55IACEB6-C2eZTkZ1.js} +2 -2
  28. package/webapp/dist/assets/{chunk-55IACEB6-DwJgszOl.js.map → chunk-55IACEB6-C2eZTkZ1.js.map} +1 -1
  29. package/webapp/dist/assets/{chunk-FMBD7UC4-BzUcOjMH.js → chunk-FMBD7UC4-aXp5zApD.js} +2 -2
  30. package/webapp/dist/assets/{chunk-FMBD7UC4-BzUcOjMH.js.map → chunk-FMBD7UC4-aXp5zApD.js.map} +1 -1
  31. package/webapp/dist/assets/{chunk-JSJVCQXG-B-adw7iw.js → chunk-JSJVCQXG-DXyaccrz.js} +2 -2
  32. package/webapp/dist/assets/{chunk-JSJVCQXG-B-adw7iw.js.map → chunk-JSJVCQXG-DXyaccrz.js.map} +1 -1
  33. package/webapp/dist/assets/{chunk-KX2RTZJC-a1S8VCMi.js → chunk-KX2RTZJC-C-u000c0.js} +2 -2
  34. package/webapp/dist/assets/{chunk-KX2RTZJC-a1S8VCMi.js.map → chunk-KX2RTZJC-C-u000c0.js.map} +1 -1
  35. package/webapp/dist/assets/{chunk-NQ4KR5QH-BkpgGRb2.js → chunk-NQ4KR5QH-BoYRoo4A.js} +4 -4
  36. package/webapp/dist/assets/{chunk-NQ4KR5QH-BkpgGRb2.js.map → chunk-NQ4KR5QH-BoYRoo4A.js.map} +1 -1
  37. package/webapp/dist/assets/{chunk-QZHKN3VN-BzG0M8E7.js → chunk-QZHKN3VN-BAc_2ceG.js} +2 -2
  38. package/webapp/dist/assets/{chunk-QZHKN3VN-BzG0M8E7.js.map → chunk-QZHKN3VN-BAc_2ceG.js.map} +1 -1
  39. package/webapp/dist/assets/{chunk-WL4C6EOR-Jdr3sqWq.js → chunk-WL4C6EOR-D6ws69Jx.js} +6 -6
  40. package/webapp/dist/assets/{chunk-WL4C6EOR-Jdr3sqWq.js.map → chunk-WL4C6EOR-D6ws69Jx.js.map} +1 -1
  41. package/webapp/dist/assets/{classDiagram-VBA2DB6C-Bgs-IGF1.js → classDiagram-VBA2DB6C-BIRrKhqs.js} +7 -7
  42. package/webapp/dist/assets/{classDiagram-VBA2DB6C-Bgs-IGF1.js.map → classDiagram-VBA2DB6C-BIRrKhqs.js.map} +1 -1
  43. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-Bgs-IGF1.js → classDiagram-v2-RAHNMMFH-BIRrKhqs.js} +7 -7
  44. package/webapp/dist/assets/{classDiagram-v2-RAHNMMFH-Bgs-IGF1.js.map → classDiagram-v2-RAHNMMFH-BIRrKhqs.js.map} +1 -1
  45. package/webapp/dist/assets/{clone-8W6qtrsz.js → clone-DweFyVW6.js} +2 -2
  46. package/webapp/dist/assets/{clone-8W6qtrsz.js.map → clone-DweFyVW6.js.map} +1 -1
  47. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-gwXVRMa3.js → cose-bilkent-S5V4N54A-vgovmGKM.js} +2 -2
  48. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-gwXVRMa3.js.map → cose-bilkent-S5V4N54A-vgovmGKM.js.map} +1 -1
  49. package/webapp/dist/assets/{dagre-KLK3FWXG-CgLK6cUW.js → dagre-KLK3FWXG-B-Ax3qBf.js} +7 -7
  50. package/webapp/dist/assets/{dagre-KLK3FWXG-CgLK6cUW.js.map → dagre-KLK3FWXG-B-Ax3qBf.js.map} +1 -1
  51. package/webapp/dist/assets/{diagram-E7M64L7V-BUDea9FM.js → diagram-E7M64L7V-B1sUlvtn.js} +8 -8
  52. package/webapp/dist/assets/{diagram-E7M64L7V-BUDea9FM.js.map → diagram-E7M64L7V-B1sUlvtn.js.map} +1 -1
  53. package/webapp/dist/assets/{diagram-IFDJBPK2-CiVS6fbK.js → diagram-IFDJBPK2-3IlyK_xp.js} +7 -7
  54. package/webapp/dist/assets/{diagram-IFDJBPK2-CiVS6fbK.js.map → diagram-IFDJBPK2-3IlyK_xp.js.map} +1 -1
  55. package/webapp/dist/assets/{diagram-P4PSJMXO-DpYGO4Wi.js → diagram-P4PSJMXO-C3x0JkgF.js} +7 -7
  56. package/webapp/dist/assets/{diagram-P4PSJMXO-DpYGO4Wi.js.map → diagram-P4PSJMXO-C3x0JkgF.js.map} +1 -1
  57. package/webapp/dist/assets/{erDiagram-INFDFZHY-Cz1TI05E.js → erDiagram-INFDFZHY-mEp6kC6i.js} +5 -5
  58. package/webapp/dist/assets/{erDiagram-INFDFZHY-Cz1TI05E.js.map → erDiagram-INFDFZHY-mEp6kC6i.js.map} +1 -1
  59. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-CxjVowsG.js → flowDiagram-PKNHOUZH-AsG_wdLN.js} +7 -7
  60. package/webapp/dist/assets/{flowDiagram-PKNHOUZH-CxjVowsG.js.map → flowDiagram-PKNHOUZH-AsG_wdLN.js.map} +1 -1
  61. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-C3t2AHs5.js → ganttDiagram-A5KZAMGK-zv3UhEAO.js} +3 -3
  62. package/webapp/dist/assets/{ganttDiagram-A5KZAMGK-C3t2AHs5.js.map → ganttDiagram-A5KZAMGK-zv3UhEAO.js.map} +1 -1
  63. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-D3Fz3qNA.js → gitGraphDiagram-K3NZZRJ6-C1yyISy7.js} +8 -8
  64. package/webapp/dist/assets/{gitGraphDiagram-K3NZZRJ6-D3Fz3qNA.js.map → gitGraphDiagram-K3NZZRJ6-C1yyISy7.js.map} +1 -1
  65. package/webapp/dist/assets/{graph-DEeBvsT_.js → graph-CkQycYq_.js} +3 -3
  66. package/webapp/dist/assets/{graph-DEeBvsT_.js.map → graph-CkQycYq_.js.map} +1 -1
  67. package/webapp/dist/assets/{index-D-SgXZTb.js → index-CCGi5dDE.js} +969 -260
  68. package/webapp/dist/assets/{index-D-SgXZTb.js.map → index-CCGi5dDE.js.map} +1 -1
  69. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-CcsQeBG4.js → infoDiagram-LFFYTUFH-Dw1wAgpl.js} +6 -6
  70. package/webapp/dist/assets/{infoDiagram-LFFYTUFH-CcsQeBG4.js.map → infoDiagram-LFFYTUFH-Dw1wAgpl.js.map} +1 -1
  71. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-CAV8iv45.js → ishikawaDiagram-PHBUUO56-DY9fHLYz.js} +2 -2
  72. package/webapp/dist/assets/{ishikawaDiagram-PHBUUO56-CAV8iv45.js.map → ishikawaDiagram-PHBUUO56-DY9fHLYz.js.map} +1 -1
  73. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-C_mKL3Wf.js → journeyDiagram-4ABVD52K-CSGjRykr.js} +5 -5
  74. package/webapp/dist/assets/{journeyDiagram-4ABVD52K-C_mKL3Wf.js.map → journeyDiagram-4ABVD52K-CSGjRykr.js.map} +1 -1
  75. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-Ptg6jh3y.js → kanban-definition-K7BYSVSG-DDCQetMc.js} +3 -3
  76. package/webapp/dist/assets/{kanban-definition-K7BYSVSG-Ptg6jh3y.js.map → kanban-definition-K7BYSVSG-DDCQetMc.js.map} +1 -1
  77. package/webapp/dist/assets/{layout-vY-lESK1.js → layout-DpuTr6cl.js} +5 -5
  78. package/webapp/dist/assets/{layout-vY-lESK1.js.map → layout-DpuTr6cl.js.map} +1 -1
  79. package/webapp/dist/assets/{linear-Cw12N-49.js → linear-BQv5LuhW.js} +2 -2
  80. package/webapp/dist/assets/{linear-Cw12N-49.js.map → linear-BQv5LuhW.js.map} +1 -1
  81. package/webapp/dist/assets/{mindmap-definition-YRQLILUH--gGSoZfe.js → mindmap-definition-YRQLILUH-C5ajM9Hr.js} +4 -4
  82. package/webapp/dist/assets/{mindmap-definition-YRQLILUH--gGSoZfe.js.map → mindmap-definition-YRQLILUH-C5ajM9Hr.js.map} +1 -1
  83. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-DBQkeFNk.js → pieDiagram-SKSYHLDU-Daqms3DT.js} +8 -8
  84. package/webapp/dist/assets/{pieDiagram-SKSYHLDU-DBQkeFNk.js.map → pieDiagram-SKSYHLDU-Daqms3DT.js.map} +1 -1
  85. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-BRqQEQ5R.js → quadrantDiagram-337W2JSQ-BMNWp18J.js} +3 -3
  86. package/webapp/dist/assets/{quadrantDiagram-337W2JSQ-BRqQEQ5R.js.map → quadrantDiagram-337W2JSQ-BMNWp18J.js.map} +1 -1
  87. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-Bg-ZQVHw.js → requirementDiagram-Z7DCOOCP-C1Mc4MX-.js} +4 -4
  88. package/webapp/dist/assets/{requirementDiagram-Z7DCOOCP-Bg-ZQVHw.js.map → requirementDiagram-Z7DCOOCP-C1Mc4MX-.js.map} +1 -1
  89. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-ADkSZ215.js → sankeyDiagram-WA2Y5GQK-DTHGhOsp.js} +2 -2
  90. package/webapp/dist/assets/{sankeyDiagram-WA2Y5GQK-ADkSZ215.js.map → sankeyDiagram-WA2Y5GQK-DTHGhOsp.js.map} +1 -1
  91. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-D4N6ze3Y.js → sequenceDiagram-2WXFIKYE-C6cA5ncc.js} +4 -4
  92. package/webapp/dist/assets/{sequenceDiagram-2WXFIKYE-D4N6ze3Y.js.map → sequenceDiagram-2WXFIKYE-C6cA5ncc.js.map} +1 -1
  93. package/webapp/dist/assets/{stateDiagram-RAJIS63D-vNdpo2RN.js → stateDiagram-RAJIS63D-DRDqVPKY.js} +9 -9
  94. package/webapp/dist/assets/{stateDiagram-RAJIS63D-vNdpo2RN.js.map → stateDiagram-RAJIS63D-DRDqVPKY.js.map} +1 -1
  95. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-DklmFziq.js → stateDiagram-v2-FVOUBMTO-B-pby7Ke.js} +5 -5
  96. package/webapp/dist/assets/{stateDiagram-v2-FVOUBMTO-DklmFziq.js.map → stateDiagram-v2-FVOUBMTO-B-pby7Ke.js.map} +1 -1
  97. package/webapp/dist/assets/{timeline-definition-YZTLITO2-BrGjv8Mt.js → timeline-definition-YZTLITO2-C-m1bG_Z.js} +3 -3
  98. package/webapp/dist/assets/{timeline-definition-YZTLITO2-BrGjv8Mt.js.map → timeline-definition-YZTLITO2-C-m1bG_Z.js.map} +1 -1
  99. package/webapp/dist/assets/{treemap-KZPCXAKY-CuF9Fl6a.js → treemap-KZPCXAKY-BWvLuAyU.js} +5 -5
  100. package/webapp/dist/assets/{treemap-KZPCXAKY-CuF9Fl6a.js.map → treemap-KZPCXAKY-BWvLuAyU.js.map} +1 -1
  101. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-BsWMgmkQ.js → vennDiagram-LZ73GAT5-C8gZYuUq.js} +2 -2
  102. package/webapp/dist/assets/{vennDiagram-LZ73GAT5-BsWMgmkQ.js.map → vennDiagram-LZ73GAT5-C8gZYuUq.js.map} +1 -1
  103. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-MwmjJKc5.js → xychartDiagram-JWTSCODW-Bb3azvDM.js} +3 -3
  104. package/webapp/dist/assets/{xychartDiagram-JWTSCODW-MwmjJKc5.js.map → xychartDiagram-JWTSCODW-Bb3azvDM.js.map} +1 -1
  105. package/webapp/dist/index.html +1 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-CgLK6cUW.js","assets/graph-DEeBvsT_.js","assets/_baseUniq-B5WIJgde.js","assets/layout-vY-lESK1.js","assets/_basePickBy-BCSeQ8Mb.js","assets/clone-8W6qtrsz.js","assets/cose-bilkent-S5V4N54A-gwXVRMa3.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-B0AMlCwV.js","assets/chunk-JSJVCQXG-B-adw7iw.js","assets/flowDiagram-PKNHOUZH-CxjVowsG.js","assets/chunk-FMBD7UC4-BzUcOjMH.js","assets/chunk-55IACEB6-DwJgszOl.js","assets/chunk-KX2RTZJC-a1S8VCMi.js","assets/channel-B0ljx2su.js","assets/erDiagram-INFDFZHY-Cz1TI05E.js","assets/gitGraphDiagram-K3NZZRJ6-D3Fz3qNA.js","assets/chunk-4BX2VUAB-DbKTqY07.js","assets/chunk-QZHKN3VN-BzG0M8E7.js","assets/treemap-KZPCXAKY-CuF9Fl6a.js","assets/ganttDiagram-A5KZAMGK-C3t2AHs5.js","assets/linear-Cw12N-49.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-CcsQeBG4.js","assets/pieDiagram-SKSYHLDU-DBQkeFNk.js","assets/arc-CWDgoT74.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-BRqQEQ5R.js","assets/xychartDiagram-JWTSCODW-MwmjJKc5.js","assets/requirementDiagram-Z7DCOOCP-Bg-ZQVHw.js","assets/sequenceDiagram-2WXFIKYE-D4N6ze3Y.js","assets/classDiagram-VBA2DB6C-Bgs-IGF1.js","assets/chunk-WL4C6EOR-Jdr3sqWq.js","assets/classDiagram-v2-RAHNMMFH-Bgs-IGF1.js","assets/stateDiagram-RAJIS63D-vNdpo2RN.js","assets/chunk-NQ4KR5QH-BkpgGRb2.js","assets/stateDiagram-v2-FVOUBMTO-DklmFziq.js","assets/journeyDiagram-4ABVD52K-C_mKL3Wf.js","assets/timeline-definition-YZTLITO2-BrGjv8Mt.js","assets/mindmap-definition-YRQLILUH--gGSoZfe.js","assets/kanban-definition-K7BYSVSG-Ptg6jh3y.js","assets/sankeyDiagram-WA2Y5GQK-ADkSZ215.js","assets/diagram-P4PSJMXO-DpYGO4Wi.js","assets/diagram-IFDJBPK2-CiVS6fbK.js","assets/blockDiagram-WCTKOSBZ-DRcKQf9Q.js","assets/architectureDiagram-2XIMDMQ5-DFdZI4Uu.js","assets/diagram-E7M64L7V-BUDea9FM.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-B-Ax3qBf.js","assets/graph-CkQycYq_.js","assets/_baseUniq-C3pRnD57.js","assets/layout-DpuTr6cl.js","assets/_basePickBy-9Z1lbVTN.js","assets/clone-DweFyVW6.js","assets/cose-bilkent-S5V4N54A-vgovmGKM.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-CaJ6bX75.js","assets/chunk-JSJVCQXG-DXyaccrz.js","assets/flowDiagram-PKNHOUZH-AsG_wdLN.js","assets/chunk-FMBD7UC4-aXp5zApD.js","assets/chunk-55IACEB6-C2eZTkZ1.js","assets/chunk-KX2RTZJC-C-u000c0.js","assets/channel-DDuIUO0R.js","assets/erDiagram-INFDFZHY-mEp6kC6i.js","assets/gitGraphDiagram-K3NZZRJ6-C1yyISy7.js","assets/chunk-4BX2VUAB-BQPkQh6v.js","assets/chunk-QZHKN3VN-BAc_2ceG.js","assets/treemap-KZPCXAKY-BWvLuAyU.js","assets/ganttDiagram-A5KZAMGK-zv3UhEAO.js","assets/linear-BQv5LuhW.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-Dw1wAgpl.js","assets/pieDiagram-SKSYHLDU-Daqms3DT.js","assets/arc-BvNng3O_.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-BMNWp18J.js","assets/xychartDiagram-JWTSCODW-Bb3azvDM.js","assets/requirementDiagram-Z7DCOOCP-C1Mc4MX-.js","assets/sequenceDiagram-2WXFIKYE-C6cA5ncc.js","assets/classDiagram-VBA2DB6C-BIRrKhqs.js","assets/chunk-WL4C6EOR-D6ws69Jx.js","assets/classDiagram-v2-RAHNMMFH-BIRrKhqs.js","assets/stateDiagram-RAJIS63D-DRDqVPKY.js","assets/chunk-NQ4KR5QH-BoYRoo4A.js","assets/stateDiagram-v2-FVOUBMTO-B-pby7Ke.js","assets/journeyDiagram-4ABVD52K-CSGjRykr.js","assets/timeline-definition-YZTLITO2-C-m1bG_Z.js","assets/mindmap-definition-YRQLILUH-C5ajM9Hr.js","assets/kanban-definition-K7BYSVSG-DDCQetMc.js","assets/sankeyDiagram-WA2Y5GQK-DTHGhOsp.js","assets/diagram-P4PSJMXO-C3x0JkgF.js","assets/diagram-IFDJBPK2-3IlyK_xp.js","assets/blockDiagram-WCTKOSBZ-C7kfjZhf.js","assets/architectureDiagram-2XIMDMQ5-BF8vwQ4e.js","assets/diagram-E7M64L7V-B1sUlvtn.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);
@@ -2378,6 +2378,15 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2378
2378
  if (timeEl instanceof HTMLElement) {
2379
2379
  timeEl.textContent = next2.lastModified || "";
2380
2380
  }
2381
+ if (targetSelf === rootId) {
2382
+ this.reorderVisibleRoots(next2.taskDocPath);
2383
+ } else {
2384
+ this.reorderVisibleSubdialogs(rootId);
2385
+ const rootDialog = this.findDialogByIds(rootId, rootId, true);
2386
+ if (rootDialog) {
2387
+ this.reorderVisibleRoots(rootDialog.taskDocPath);
2388
+ }
2389
+ }
2381
2390
  }
2382
2391
  if (patch.subdialogCount !== void 0 && targetSelf === rootId) {
2383
2392
  const countEl = entry.el.querySelector(".dialog-count");
@@ -2601,29 +2610,13 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2601
2610
  this.visibleSubdialogCountByRoot.delete(existing);
2602
2611
  }
2603
2612
  }
2604
- if (this.selectedKey) {
2605
- const [rootId, selfId] = this.splitDialogKey(this.selectedKey);
2606
- if (rootId && selfId) {
2607
- this.selectionState = {
2608
- kind: "selected",
2609
- rootId,
2610
- selfId,
2611
- isRoot: rootId === selfId
2612
- };
2613
- }
2614
- }
2615
- if (this.selectionState.kind === "selected") {
2616
- const hasSelection = validated.some(
2617
- (dialog2) => this.isSelectedDialog(dialog2, this.selectionState)
2618
- );
2613
+ const selection2 = this.selectionState;
2614
+ if (selection2.kind === "selected") {
2615
+ const hasSelection = validated.some((dialog2) => this.isSelectedDialog(dialog2, selection2));
2619
2616
  if (!hasSelection) {
2620
2617
  this.clearSelection();
2621
2618
  } else {
2622
- this.ensureDialogVisible(
2623
- this.selectionState.rootId,
2624
- this.selectionState.selfId,
2625
- this.selectionState.isRoot
2626
- );
2619
+ this.ensureDialogVisible(selection2.rootId, selection2.selfId, selection2.isRoot);
2627
2620
  }
2628
2621
  }
2629
2622
  const t2 = getUiStrings(this.props.uiLanguage);
@@ -2634,81 +2627,7 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2634
2627
  this.refreshFromDom();
2635
2628
  return;
2636
2629
  }
2637
- const html2 = groups.map((group) => {
2638
- const taskCollapsed = this.collapsedTasks.has(group.taskDocPath);
2639
- const taskToggle = this.renderToggleIcon(taskCollapsed);
2640
- const visibleRootCount = this.visibleRootCountByTask.get(group.taskDocPath) ?? _ArchivedDialogList.SHOW_MORE_STEP;
2641
- const visibleRoots = group.roots.slice(0, visibleRootCount);
2642
- const hiddenRootCount = Math.max(group.roots.length - visibleRoots.length, 0);
2643
- const rootNodes = visibleRoots.map((rootGroup) => {
2644
- const rootDialog = rootGroup.root;
2645
- const rootCollapsed = this.collapsedRoots.has(rootGroup.rootId);
2646
- const rootToggle = this.renderToggleIcon(rootCollapsed);
2647
- const rootRow = rootDialog ? this.renderRootRow(rootDialog, rootToggle, rootGroup.subdialogs.length) : `
2648
- <div class="dialog-item root-dialog missing" data-root-id="${rootGroup.rootId}" data-self-id="">
2649
- <div class="dialog-row">
2650
- <button class="toggle root-toggle" data-action="toggle-root" data-root-id="${rootGroup.rootId}" type="button" aria-label="${this.formatToggleAriaLabel(rootCollapsed)}">${rootToggle}</button>
2651
- <span class="dialog-title">${t2.missingRoot}</span>
2652
- <span class="dialog-meta-right">
2653
- <span class="dialog-count">${rootGroup.subdialogs.length}</span>
2654
- <span class="dialog-id">${rootGroup.rootId}</span>
2655
- </span>
2656
- </div>
2657
- </div>
2658
- `;
2659
- const visibleSubdialogCount = this.visibleSubdialogCountByRoot.get(rootGroup.rootId) ?? _ArchivedDialogList.SHOW_MORE_STEP;
2660
- const visibleSubdialogs = rootGroup.subdialogs.slice(0, visibleSubdialogCount);
2661
- const hiddenSubdialogCount = Math.max(
2662
- rootGroup.subdialogs.length - visibleSubdialogs.length,
2663
- 0
2664
- );
2665
- const subNodes = visibleSubdialogs.map((subdialog) => this.renderDialogRow(subdialog)).join("");
2666
- const subShowMore = hiddenSubdialogCount > 0 ? this.renderShowMoreButton({
2667
- action: "show-more-subdialogs",
2668
- rootId: rootGroup.rootId,
2669
- hiddenCount: hiddenSubdialogCount
2670
- }) : "";
2671
- const subCollapsed = taskCollapsed || rootCollapsed;
2672
- return `
2673
- <div class="rdlg-node" data-rdlg-root-id="${rootGroup.rootId}">
2674
- ${rootRow}
2675
- <div class="sdlg-children ${subCollapsed ? "collapsed" : ""}">
2676
- ${subNodes}
2677
- ${subShowMore}
2678
- </div>
2679
- </div>
2680
- `;
2681
- }).join("");
2682
- const rootShowMore = hiddenRootCount > 0 ? this.renderShowMoreButton({
2683
- action: "show-more-roots",
2684
- taskDocPath: group.taskDocPath,
2685
- hiddenCount: hiddenRootCount
2686
- }) : "";
2687
- return `
2688
- <div class="task-group task-node">
2689
- <div class="task-title" data-task-path="${group.taskDocPath}">
2690
- <div class="task-title-left">
2691
- <button class="toggle task-toggle" data-action="toggle-task" data-task-path="${group.taskDocPath}" type="button" aria-label="${this.formatToggleAriaLabel(taskCollapsed)}">${taskToggle}</button>
2692
- <span>${group.taskDocPath}</span>
2693
- </div>
2694
- <div class="task-title-right">
2695
- <button class="action icon-button" data-action="task-create-dialog" data-task-path="${group.taskDocPath}" type="button" title="${t2.createNewDialogTitle}" aria-label="${t2.createNewDialogTitle}">
2696
- ${this.renderCreateIcon()}
2697
- </button>
2698
- <button class="action icon-button" data-action="task-revive" data-task-path="${group.taskDocPath}" type="button" title="${t2.dialogActionReviveAll}" aria-label="${t2.dialogActionReviveAll}">
2699
- ${this.renderReviveIcon()}
2700
- </button>
2701
- <span class="dialog-count">${group.roots.length}</span>
2702
- </div>
2703
- </div>
2704
- <div class="task-rows ${taskCollapsed ? "collapsed" : ""}">
2705
- ${rootNodes}
2706
- ${rootShowMore}
2707
- </div>
2708
- </div>
2709
- `;
2710
- }).join("");
2711
- this.listEl.innerHTML = html2;
2630
+ this.reconcileTaskGroups(groups);
2712
2631
  this.refreshFromDom();
2713
2632
  }
2714
2633
  renderLoading() {
@@ -2722,6 +2641,213 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2722
2641
  encodeDialogDataset(dialog2) {
2723
2642
  return encodeURIComponent(JSON.stringify(dialog2));
2724
2643
  }
2644
+ createElementFromHtml(html2) {
2645
+ const template = document.createElement("template");
2646
+ template.innerHTML = html2.trim();
2647
+ const first = template.content.firstElementChild;
2648
+ if (!(first instanceof HTMLElement)) {
2649
+ throw new Error("Expected HTML template to produce a single HTMLElement.");
2650
+ }
2651
+ return first;
2652
+ }
2653
+ syncElement(target, next2) {
2654
+ if (target.outerHTML === next2.outerHTML) return;
2655
+ for (const name of target.getAttributeNames()) {
2656
+ if (!next2.hasAttribute(name)) {
2657
+ target.removeAttribute(name);
2658
+ }
2659
+ }
2660
+ for (const name of next2.getAttributeNames()) {
2661
+ const value = next2.getAttribute(name);
2662
+ if (value === null) continue;
2663
+ if (target.getAttribute(name) !== value) {
2664
+ target.setAttribute(name, value);
2665
+ }
2666
+ }
2667
+ if (target.innerHTML !== next2.innerHTML) {
2668
+ target.innerHTML = next2.innerHTML;
2669
+ }
2670
+ }
2671
+ renderTaskTitleRow(group, taskCollapsed) {
2672
+ const t2 = getUiStrings(this.props.uiLanguage);
2673
+ const taskToggle = this.renderToggleIcon(taskCollapsed);
2674
+ return `
2675
+ <div class="task-title" data-task-path="${group.taskDocPath}">
2676
+ <div class="task-title-left">
2677
+ <button class="toggle task-toggle" data-action="toggle-task" data-task-path="${group.taskDocPath}" type="button" aria-label="${this.formatToggleAriaLabel(taskCollapsed)}">${taskToggle}</button>
2678
+ <span>${group.taskDocPath}</span>
2679
+ </div>
2680
+ <div class="task-title-right">
2681
+ <button class="action icon-button" data-action="task-create-dialog" data-task-path="${group.taskDocPath}" type="button" title="${t2.createNewDialogTitle}" aria-label="${t2.createNewDialogTitle}">
2682
+ ${this.renderCreateIcon()}
2683
+ </button>
2684
+ <button class="action icon-button" data-action="task-revive" data-task-path="${group.taskDocPath}" type="button" title="${t2.dialogActionReviveAll}" aria-label="${t2.dialogActionReviveAll}">
2685
+ ${this.renderReviveIcon()}
2686
+ </button>
2687
+ <span class="dialog-count">${group.roots.length}</span>
2688
+ </div>
2689
+ </div>
2690
+ `;
2691
+ }
2692
+ renderMissingRootRow(rootGroup, rootCollapsed) {
2693
+ const t2 = getUiStrings(this.props.uiLanguage);
2694
+ const rootToggle = this.renderToggleIcon(rootCollapsed);
2695
+ return `
2696
+ <div class="dialog-item root-dialog missing" data-root-id="${rootGroup.rootId}" data-self-id="">
2697
+ <div class="dialog-row">
2698
+ <button class="toggle root-toggle" data-action="toggle-root" data-root-id="${rootGroup.rootId}" type="button" aria-label="${this.formatToggleAriaLabel(rootCollapsed)}">${rootToggle}</button>
2699
+ <span class="dialog-title">${t2.missingRoot}</span>
2700
+ <span class="dialog-meta-right">
2701
+ <span class="dialog-count">${rootGroup.subdialogs.length}</span>
2702
+ <span class="dialog-id">${rootGroup.rootId}</span>
2703
+ </span>
2704
+ </div>
2705
+ </div>
2706
+ `;
2707
+ }
2708
+ reconcileShowMoreRow(container, html2) {
2709
+ const existing = container.querySelector(":scope > .show-more-row");
2710
+ if (html2 === null) {
2711
+ existing?.remove();
2712
+ return;
2713
+ }
2714
+ const next2 = this.createElementFromHtml(html2);
2715
+ if (existing) {
2716
+ this.syncElement(existing, next2);
2717
+ container.appendChild(existing);
2718
+ return;
2719
+ }
2720
+ container.appendChild(next2);
2721
+ }
2722
+ reconcileSubdialogRows(rootChildren, rootGroup) {
2723
+ const existingRows = /* @__PURE__ */ new Map();
2724
+ rootChildren.querySelectorAll(":scope > .dialog-item.sub-dialog[data-dialog-key]").forEach((row) => {
2725
+ const key = (row.getAttribute("data-dialog-key") ?? "").trim();
2726
+ if (key !== "") {
2727
+ existingRows.set(key, row);
2728
+ }
2729
+ });
2730
+ const visibleSubdialogCount = this.visibleSubdialogCountByRoot.get(rootGroup.rootId) ?? _ArchivedDialogList.SHOW_MORE_STEP;
2731
+ const visibleSubdialogs = rootGroup.subdialogs.slice(0, visibleSubdialogCount);
2732
+ const hiddenSubdialogCount = Math.max(
2733
+ rootGroup.subdialogs.length - visibleSubdialogs.length,
2734
+ 0
2735
+ );
2736
+ for (const subdialog of visibleSubdialogs) {
2737
+ const key = this.getDialogKey(subdialog);
2738
+ const next2 = this.createElementFromHtml(this.renderDialogRow(subdialog));
2739
+ const existing = existingRows.get(key);
2740
+ if (existing) {
2741
+ this.syncElement(existing, next2);
2742
+ rootChildren.appendChild(existing);
2743
+ existingRows.delete(key);
2744
+ } else {
2745
+ rootChildren.appendChild(next2);
2746
+ }
2747
+ }
2748
+ for (const stale of existingRows.values()) {
2749
+ stale.remove();
2750
+ }
2751
+ const showMoreHtml = hiddenSubdialogCount > 0 ? this.renderShowMoreButton({
2752
+ action: "show-more-subdialogs",
2753
+ rootId: rootGroup.rootId,
2754
+ hiddenCount: hiddenSubdialogCount
2755
+ }) : null;
2756
+ this.reconcileShowMoreRow(rootChildren, showMoreHtml);
2757
+ }
2758
+ reconcileRootNode(rootNode, rootGroup, taskCollapsed) {
2759
+ rootNode.setAttribute("data-rdlg-root-id", rootGroup.rootId);
2760
+ const rootCollapsed = this.collapsedRoots.has(rootGroup.rootId);
2761
+ const rootRowHtml = rootGroup.root ? this.renderRootRow(
2762
+ rootGroup.root,
2763
+ this.renderToggleIcon(rootCollapsed),
2764
+ rootGroup.subdialogs.length
2765
+ ) : this.renderMissingRootRow(rootGroup, rootCollapsed);
2766
+ const existingRootRow = rootNode.querySelector(
2767
+ ":scope > .dialog-item.root-dialog"
2768
+ );
2769
+ if (existingRootRow) {
2770
+ this.syncElement(existingRootRow, this.createElementFromHtml(rootRowHtml));
2771
+ if (rootNode.firstElementChild !== existingRootRow) {
2772
+ rootNode.insertBefore(existingRootRow, rootNode.firstElementChild);
2773
+ }
2774
+ } else {
2775
+ rootNode.insertBefore(this.createElementFromHtml(rootRowHtml), rootNode.firstElementChild);
2776
+ }
2777
+ let rootChildren = rootNode.querySelector(":scope > .sdlg-children");
2778
+ if (!rootChildren) {
2779
+ rootChildren = this.createElementFromHtml('<div class="sdlg-children"></div>');
2780
+ rootNode.appendChild(rootChildren);
2781
+ }
2782
+ rootChildren.classList.toggle("collapsed", taskCollapsed || rootCollapsed);
2783
+ this.reconcileSubdialogRows(rootChildren, rootGroup);
2784
+ }
2785
+ reconcileRootNodes(taskRows, group, taskCollapsed) {
2786
+ const existingRoots = /* @__PURE__ */ new Map();
2787
+ taskRows.querySelectorAll(":scope > .rdlg-node[data-rdlg-root-id]").forEach((node2) => {
2788
+ const rootId = (node2.getAttribute("data-rdlg-root-id") ?? "").trim();
2789
+ if (rootId !== "") {
2790
+ existingRoots.set(rootId, node2);
2791
+ }
2792
+ });
2793
+ const visibleRootCount = this.visibleRootCountByTask.get(group.taskDocPath) ?? _ArchivedDialogList.SHOW_MORE_STEP;
2794
+ const visibleRoots = group.roots.slice(0, visibleRootCount);
2795
+ const hiddenRootCount = Math.max(group.roots.length - visibleRoots.length, 0);
2796
+ for (const rootGroup of visibleRoots) {
2797
+ const existing = existingRoots.get(rootGroup.rootId);
2798
+ const rootNode = existing ?? this.createElementFromHtml(
2799
+ `<div class="rdlg-node" data-rdlg-root-id="${rootGroup.rootId}"></div>`
2800
+ );
2801
+ this.reconcileRootNode(rootNode, rootGroup, taskCollapsed);
2802
+ taskRows.appendChild(rootNode);
2803
+ existingRoots.delete(rootGroup.rootId);
2804
+ }
2805
+ for (const stale of existingRoots.values()) {
2806
+ stale.remove();
2807
+ }
2808
+ const showMoreHtml = hiddenRootCount > 0 ? this.renderShowMoreButton({
2809
+ action: "show-more-roots",
2810
+ taskDocPath: group.taskDocPath,
2811
+ hiddenCount: hiddenRootCount
2812
+ }) : null;
2813
+ this.reconcileShowMoreRow(taskRows, showMoreHtml);
2814
+ }
2815
+ reconcileTaskGroups(groups) {
2816
+ if (!this.listEl) return;
2817
+ this.listEl.querySelectorAll(":scope > .empty").forEach((node2) => node2.remove());
2818
+ const existingGroups = /* @__PURE__ */ new Map();
2819
+ this.listEl.querySelectorAll(":scope > .task-group.task-node").forEach((groupEl) => {
2820
+ const taskPath = (groupEl.querySelector(":scope > .task-title")?.getAttribute("data-task-path") ?? "").trim();
2821
+ if (taskPath !== "") {
2822
+ existingGroups.set(taskPath, groupEl);
2823
+ }
2824
+ });
2825
+ for (const group of groups) {
2826
+ const taskCollapsed = this.collapsedTasks.has(group.taskDocPath);
2827
+ const taskGroup = existingGroups.get(group.taskDocPath) ?? this.createElementFromHtml(
2828
+ '<div class="task-group task-node"><div class="task-title"></div><div class="task-rows"></div></div>'
2829
+ );
2830
+ const nextTitle = this.createElementFromHtml(this.renderTaskTitleRow(group, taskCollapsed));
2831
+ const currentTitle = taskGroup.querySelector(":scope > .task-title");
2832
+ if (currentTitle) {
2833
+ this.syncElement(currentTitle, nextTitle);
2834
+ } else {
2835
+ taskGroup.insertBefore(nextTitle, taskGroup.firstElementChild);
2836
+ }
2837
+ let taskRows = taskGroup.querySelector(":scope > .task-rows");
2838
+ if (!taskRows) {
2839
+ taskRows = this.createElementFromHtml('<div class="task-rows"></div>');
2840
+ taskGroup.appendChild(taskRows);
2841
+ }
2842
+ taskRows.classList.toggle("collapsed", taskCollapsed);
2843
+ this.reconcileRootNodes(taskRows, group, taskCollapsed);
2844
+ this.listEl.appendChild(taskGroup);
2845
+ existingGroups.delete(group.taskDocPath);
2846
+ }
2847
+ for (const stale of existingGroups.values()) {
2848
+ stale.remove();
2849
+ }
2850
+ }
2725
2851
  decodeDialogDataset(el) {
2726
2852
  const raw = el.dataset.dialogJson;
2727
2853
  if (!raw) return null;
@@ -2762,6 +2888,90 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2762
2888
  this.clearSelection();
2763
2889
  }
2764
2890
  }
2891
+ getDialogUpdatedAtMsFromElement(el) {
2892
+ const dialog2 = this.decodeDialogDataset(el);
2893
+ if (!dialog2) return 0;
2894
+ return this.parseTimestamp(dialog2.lastModified);
2895
+ }
2896
+ reorderVisibleSubdialogs(rootId) {
2897
+ if (!this.listEl) return;
2898
+ const rootChildren = this.listEl.querySelector(
2899
+ `.rdlg-node[data-rdlg-root-id="${this.escapeSelector(rootId)}"] > .sdlg-children`
2900
+ );
2901
+ if (!(rootChildren instanceof HTMLElement)) return;
2902
+ const subRows = Array.from(
2903
+ rootChildren.querySelectorAll(":scope > .dialog-item.sub-dialog")
2904
+ );
2905
+ if (subRows.length <= 1) return;
2906
+ subRows.sort((a2, b2) => {
2907
+ const delta = this.getDialogUpdatedAtMsFromElement(b2) - this.getDialogUpdatedAtMsFromElement(a2);
2908
+ if (delta !== 0) return delta;
2909
+ const aSelf = a2.getAttribute("data-self-id") ?? "";
2910
+ const bSelf = b2.getAttribute("data-self-id") ?? "";
2911
+ return aSelf.localeCompare(bSelf);
2912
+ });
2913
+ const anchor2 = rootChildren.querySelector(":scope > .show-more-row");
2914
+ for (const row of subRows) {
2915
+ rootChildren.insertBefore(row, anchor2);
2916
+ }
2917
+ }
2918
+ reorderVisibleRoots(taskDocPath) {
2919
+ if (!this.listEl) return;
2920
+ const taskTitle = this.listEl.querySelector(
2921
+ `.task-title[data-task-path="${this.escapeSelector(taskDocPath)}"]`
2922
+ );
2923
+ const taskGroup = taskTitle?.closest(".task-group");
2924
+ if (!(taskGroup instanceof HTMLElement)) return;
2925
+ const taskRows = taskGroup.querySelector(".task-rows");
2926
+ if (!(taskRows instanceof HTMLElement)) return;
2927
+ const rootNodes = Array.from(taskRows.querySelectorAll(":scope > .rdlg-node"));
2928
+ if (rootNodes.length <= 1) return;
2929
+ rootNodes.sort((a2, b2) => {
2930
+ const aRoot = a2.querySelector(":scope > .dialog-item.root-dialog");
2931
+ const bRoot = b2.querySelector(":scope > .dialog-item.root-dialog");
2932
+ const delta = (bRoot ? this.getDialogUpdatedAtMsFromElement(bRoot) : 0) - (aRoot ? this.getDialogUpdatedAtMsFromElement(aRoot) : 0);
2933
+ if (delta !== 0) return delta;
2934
+ const aRootId = (a2.getAttribute("data-rdlg-root-id") ?? "").trim();
2935
+ const bRootId = (b2.getAttribute("data-rdlg-root-id") ?? "").trim();
2936
+ return aRootId.localeCompare(bRootId);
2937
+ });
2938
+ const anchor2 = taskRows.querySelector(":scope > .show-more-row");
2939
+ for (const node2 of rootNodes) {
2940
+ taskRows.insertBefore(node2, anchor2);
2941
+ }
2942
+ this.reorderTaskGroups();
2943
+ }
2944
+ reorderTaskGroups() {
2945
+ if (!this.listEl) return;
2946
+ const groups = Array.from(
2947
+ this.listEl.querySelectorAll(":scope > .task-group.task-node")
2948
+ );
2949
+ if (groups.length <= 1) return;
2950
+ groups.sort((a2, b2) => {
2951
+ const aTs = this.getTaskMaxUpdatedAtMs(a2);
2952
+ const bTs = this.getTaskMaxUpdatedAtMs(b2);
2953
+ const delta = bTs - aTs;
2954
+ if (delta !== 0) return delta;
2955
+ const aPath = (a2.querySelector(".task-title")?.getAttribute("data-task-path") ?? "").trim();
2956
+ const bPath = (b2.querySelector(".task-title")?.getAttribute("data-task-path") ?? "").trim();
2957
+ return aPath.localeCompare(bPath);
2958
+ });
2959
+ for (const group of groups) {
2960
+ this.listEl.appendChild(group);
2961
+ }
2962
+ this.refreshFromDom();
2963
+ }
2964
+ getTaskMaxUpdatedAtMs(taskGroup) {
2965
+ let max2 = 0;
2966
+ const roots = taskGroup.querySelectorAll(
2967
+ ".dialog-item.root-dialog[data-dialog-json]"
2968
+ );
2969
+ roots.forEach((row) => {
2970
+ const ts = this.getDialogUpdatedAtMsFromElement(row);
2971
+ if (ts > max2) max2 = ts;
2972
+ });
2973
+ return max2;
2974
+ }
2765
2975
  clearSelection() {
2766
2976
  if (this.listEl) {
2767
2977
  const selected = this.listEl.querySelector(".dialog-item.selected");
@@ -2956,6 +3166,16 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
2956
3166
  this.updateToggleButtonUi(rootToggle, false);
2957
3167
  }
2958
3168
  }
3169
+ if (!this.requestedSubdialogRoots.has(dialog2.rootId) && !this.hasSubdialogsLoaded(dialog2.rootId)) {
3170
+ this.requestedSubdialogRoots.add(dialog2.rootId);
3171
+ this.dispatchEvent(
3172
+ new CustomEvent("dialog-expand", {
3173
+ detail: { rootId: dialog2.rootId, status: "archived" },
3174
+ bubbles: true,
3175
+ composed: true
3176
+ })
3177
+ );
3178
+ }
2959
3179
  }
2960
3180
  findDialogByIds(rootId, selfId, isRoot) {
2961
3181
  const targetSelf = isRoot ? rootId : selfId;
@@ -3252,7 +3472,12 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
3252
3472
  flex-direction: column;
3253
3473
  gap: 3px;
3254
3474
  padding: 2px 8px;
3475
+ margin: 0;
3255
3476
  cursor: pointer;
3477
+ border-right: 3px solid transparent;
3478
+ border-radius: 0;
3479
+ position: relative;
3480
+ box-sizing: border-box;
3256
3481
  }
3257
3482
 
3258
3483
  .root-dialog {
@@ -3283,7 +3508,17 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
3283
3508
  }
3284
3509
 
3285
3510
  .dialog-item.selected {
3286
- background: color-mix(in srgb, var(--dominds-primary, #007acc) 12%, transparent);
3511
+ background: color-mix(in srgb, var(--dominds-primary, #007acc) 13%, transparent);
3512
+ margin: 2px 0;
3513
+ border-radius: 10px 0 0 10px;
3514
+ box-shadow:
3515
+ inset 1px 0 0 color-mix(in srgb, white 55%, transparent),
3516
+ inset 0 1px 0 color-mix(in srgb, white 55%, transparent),
3517
+ inset 0 -1px 0 color-mix(in srgb, white 55%, transparent),
3518
+ inset 2px 0 0 color-mix(in srgb, var(--dominds-primary, #007acc) 72%, transparent),
3519
+ inset 0 2px 0 color-mix(in srgb, var(--dominds-primary, #007acc) 72%, transparent),
3520
+ inset 0 -2px 0 color-mix(in srgb, var(--dominds-primary, #007acc) 72%, transparent);
3521
+ z-index: var(--dominds-z-local-raised, 1);
3287
3522
  }
3288
3523
 
3289
3524
  .toggle {
@@ -3399,17 +3634,15 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
3399
3634
  display: inline-flex;
3400
3635
  align-items: center;
3401
3636
  gap: 6px;
3637
+ font-weight: 500;
3402
3638
  flex: none;
3403
3639
  white-space: nowrap;
3404
3640
  }
3405
3641
 
3406
3642
  .dialog-count {
3407
3643
  font-size: var(--dominds-font-size-xs, 11px);
3408
- padding: 2px 6px;
3409
- border-radius: 999px;
3410
- background: var(--dominds-border, #e0e0e0);
3411
3644
  color: var(--dominds-muted, #666666);
3412
- flex: none;
3645
+ letter-spacing: 0.02em;
3413
3646
  }
3414
3647
 
3415
3648
  .dialog-submeta {
@@ -3448,7 +3681,8 @@ const _ArchivedDialogList = class _ArchivedDialogList extends HTMLElement {
3448
3681
 
3449
3682
  .dialog-topic {
3450
3683
  font-size: var(--dominds-font-size-xs, 11px);
3451
- color: var(--dominds-muted, #888888);
3684
+ color: var(--dominds-muted, #666666);
3685
+ letter-spacing: 0.02em;
3452
3686
  }
3453
3687
 
3454
3688
  .empty {
@@ -97417,12 +97651,12 @@ var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
97417
97651
  registerLayoutLoaders([
97418
97652
  {
97419
97653
  name: "dagre",
97420
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-CgLK6cUW.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
97654
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-B-Ax3qBf.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
97421
97655
  },
97422
97656
  ...[
97423
97657
  {
97424
97658
  name: "cose-bilkent",
97425
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-gwXVRMa3.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
97659
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-vgovmGKM.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
97426
97660
  }
97427
97661
  ]
97428
97662
  ]);
@@ -97862,7 +98096,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
97862
98096
  }, "detector");
97863
98097
  var loader = /* @__PURE__ */ __name(async () => {
97864
98098
  const { diagram: diagram2 } = await __vitePreload(async () => {
97865
- const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-B0AMlCwV.js");
98099
+ const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-CaJ6bX75.js");
97866
98100
  return { diagram: diagram22 };
97867
98101
  }, true ? __vite__mapDeps([8,9]) : void 0);
97868
98102
  return { id: id$1, diagram: diagram2 };
@@ -97882,7 +98116,7 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
97882
98116
  }, "detector");
97883
98117
  var loader2 = /* @__PURE__ */ __name(async () => {
97884
98118
  const { diagram: diagram2 } = await __vitePreload(async () => {
97885
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-CxjVowsG.js");
98119
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-AsG_wdLN.js");
97886
98120
  return { diagram: diagram22 };
97887
98121
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
97888
98122
  return { id: id2, diagram: diagram2 };
@@ -97908,7 +98142,7 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
97908
98142
  }, "detector");
97909
98143
  var loader3 = /* @__PURE__ */ __name(async () => {
97910
98144
  const { diagram: diagram2 } = await __vitePreload(async () => {
97911
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-CxjVowsG.js");
98145
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-AsG_wdLN.js");
97912
98146
  return { diagram: diagram22 };
97913
98147
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
97914
98148
  return { id: id3, diagram: diagram2 };
@@ -97925,7 +98159,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
97925
98159
  }, "detector");
97926
98160
  var loader4 = /* @__PURE__ */ __name(async () => {
97927
98161
  const { diagram: diagram2 } = await __vitePreload(async () => {
97928
- const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-Cz1TI05E.js");
98162
+ const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-mEp6kC6i.js");
97929
98163
  return { diagram: diagram22 };
97930
98164
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
97931
98165
  return { id: id4, diagram: diagram2 };
@@ -97942,7 +98176,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
97942
98176
  }, "detector");
97943
98177
  var loader5 = /* @__PURE__ */ __name(async () => {
97944
98178
  const { diagram: diagram2 } = await __vitePreload(async () => {
97945
- const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-D3Fz3qNA.js");
98179
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-C1yyISy7.js");
97946
98180
  return { diagram: diagram22 };
97947
98181
  }, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
97948
98182
  return { id: id5, diagram: diagram2 };
@@ -97959,7 +98193,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
97959
98193
  }, "detector");
97960
98194
  var loader6 = /* @__PURE__ */ __name(async () => {
97961
98195
  const { diagram: diagram2 } = await __vitePreload(async () => {
97962
- const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-C3t2AHs5.js");
98196
+ const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-zv3UhEAO.js");
97963
98197
  return { diagram: diagram22 };
97964
98198
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
97965
98199
  return { id: id6, diagram: diagram2 };
@@ -97976,7 +98210,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
97976
98210
  }, "detector");
97977
98211
  var loader7 = /* @__PURE__ */ __name(async () => {
97978
98212
  const { diagram: diagram2 } = await __vitePreload(async () => {
97979
- const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-CcsQeBG4.js");
98213
+ const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-Dw1wAgpl.js");
97980
98214
  return { diagram: diagram22 };
97981
98215
  }, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
97982
98216
  return { id: id7, diagram: diagram2 };
@@ -97992,7 +98226,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
97992
98226
  }, "detector");
97993
98227
  var loader8 = /* @__PURE__ */ __name(async () => {
97994
98228
  const { diagram: diagram2 } = await __vitePreload(async () => {
97995
- const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-DBQkeFNk.js");
98229
+ const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-Daqms3DT.js");
97996
98230
  return { diagram: diagram22 };
97997
98231
  }, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
97998
98232
  return { id: id8, diagram: diagram2 };
@@ -98008,7 +98242,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
98008
98242
  }, "detector");
98009
98243
  var loader9 = /* @__PURE__ */ __name(async () => {
98010
98244
  const { diagram: diagram2 } = await __vitePreload(async () => {
98011
- const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-BRqQEQ5R.js");
98245
+ const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-BMNWp18J.js");
98012
98246
  return { diagram: diagram22 };
98013
98247
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
98014
98248
  return { id: id9, diagram: diagram2 };
@@ -98025,7 +98259,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
98025
98259
  }, "detector");
98026
98260
  var loader10 = /* @__PURE__ */ __name(async () => {
98027
98261
  const { diagram: diagram2 } = await __vitePreload(async () => {
98028
- const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-MwmjJKc5.js");
98262
+ const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-Bb3azvDM.js");
98029
98263
  return { diagram: diagram22 };
98030
98264
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
98031
98265
  return { id: id10, diagram: diagram2 };
@@ -98042,7 +98276,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
98042
98276
  }, "detector");
98043
98277
  var loader11 = /* @__PURE__ */ __name(async () => {
98044
98278
  const { diagram: diagram2 } = await __vitePreload(async () => {
98045
- const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-Bg-ZQVHw.js");
98279
+ const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-C1Mc4MX-.js");
98046
98280
  return { diagram: diagram22 };
98047
98281
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
98048
98282
  return { id: id11, diagram: diagram2 };
@@ -98059,7 +98293,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
98059
98293
  }, "detector");
98060
98294
  var loader12 = /* @__PURE__ */ __name(async () => {
98061
98295
  const { diagram: diagram2 } = await __vitePreload(async () => {
98062
- const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-D4N6ze3Y.js");
98296
+ const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-C6cA5ncc.js");
98063
98297
  return { diagram: diagram22 };
98064
98298
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
98065
98299
  return { id: id12, diagram: diagram2 };
@@ -98079,7 +98313,7 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
98079
98313
  }, "detector");
98080
98314
  var loader13 = /* @__PURE__ */ __name(async () => {
98081
98315
  const { diagram: diagram2 } = await __vitePreload(async () => {
98082
- const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-Bgs-IGF1.js");
98316
+ const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-BIRrKhqs.js");
98083
98317
  return { diagram: diagram22 };
98084
98318
  }, true ? __vite__mapDeps([32,33,11,9,12,13]) : void 0);
98085
98319
  return { id: id13, diagram: diagram2 };
@@ -98099,7 +98333,7 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
98099
98333
  }, "detector");
98100
98334
  var loader14 = /* @__PURE__ */ __name(async () => {
98101
98335
  const { diagram: diagram2 } = await __vitePreload(async () => {
98102
- const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-Bgs-IGF1.js");
98336
+ const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-BIRrKhqs.js");
98103
98337
  return { diagram: diagram22 };
98104
98338
  }, true ? __vite__mapDeps([34,33,11,9,12,13]) : void 0);
98105
98339
  return { id: id14, diagram: diagram2 };
@@ -98119,7 +98353,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
98119
98353
  }, "detector");
98120
98354
  var loader15 = /* @__PURE__ */ __name(async () => {
98121
98355
  const { diagram: diagram2 } = await __vitePreload(async () => {
98122
- const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-vNdpo2RN.js");
98356
+ const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-DRDqVPKY.js");
98123
98357
  return { diagram: diagram22 };
98124
98358
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
98125
98359
  return { id: id15, diagram: diagram2 };
@@ -98142,7 +98376,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
98142
98376
  }, "detector");
98143
98377
  var loader16 = /* @__PURE__ */ __name(async () => {
98144
98378
  const { diagram: diagram2 } = await __vitePreload(async () => {
98145
- const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-DklmFziq.js");
98379
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-B-pby7Ke.js");
98146
98380
  return { diagram: diagram22 };
98147
98381
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
98148
98382
  return { id: id16, diagram: diagram2 };
@@ -98159,7 +98393,7 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
98159
98393
  }, "detector");
98160
98394
  var loader17 = /* @__PURE__ */ __name(async () => {
98161
98395
  const { diagram: diagram2 } = await __vitePreload(async () => {
98162
- const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-C_mKL3Wf.js");
98396
+ const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-CSGjRykr.js");
98163
98397
  return { diagram: diagram22 };
98164
98398
  }, true ? __vite__mapDeps([38,11,9,26]) : void 0);
98165
98399
  return { id: id17, diagram: diagram2 };
@@ -98229,7 +98463,7 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
98229
98463
  }, "detector");
98230
98464
  var loader18 = /* @__PURE__ */ __name(async () => {
98231
98465
  const { diagram: diagram2 } = await __vitePreload(async () => {
98232
- const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-CxjVowsG.js");
98466
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-AsG_wdLN.js");
98233
98467
  return { diagram: diagram22 };
98234
98468
  }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
98235
98469
  return { id: id18, diagram: diagram2 };
@@ -98246,7 +98480,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
98246
98480
  }, "detector");
98247
98481
  var loader19 = /* @__PURE__ */ __name(async () => {
98248
98482
  const { diagram: diagram2 } = await __vitePreload(async () => {
98249
- const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-BrGjv8Mt.js");
98483
+ const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-C-m1bG_Z.js");
98250
98484
  return { diagram: diagram22 };
98251
98485
  }, true ? __vite__mapDeps([39,26]) : void 0);
98252
98486
  return { id: id19, diagram: diagram2 };
@@ -98263,7 +98497,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
98263
98497
  }, "detector");
98264
98498
  var loader20 = /* @__PURE__ */ __name(async () => {
98265
98499
  const { diagram: diagram2 } = await __vitePreload(async () => {
98266
- const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH--gGSoZfe.js");
98500
+ const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH-C5ajM9Hr.js");
98267
98501
  return { diagram: diagram22 };
98268
98502
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
98269
98503
  return { id: id20, diagram: diagram2 };
@@ -98280,7 +98514,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
98280
98514
  }, "detector");
98281
98515
  var loader21 = /* @__PURE__ */ __name(async () => {
98282
98516
  const { diagram: diagram2 } = await __vitePreload(async () => {
98283
- const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-Ptg6jh3y.js");
98517
+ const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-DDCQetMc.js");
98284
98518
  return { diagram: diagram22 };
98285
98519
  }, true ? __vite__mapDeps([41,11]) : void 0);
98286
98520
  return { id: id21, diagram: diagram2 };
@@ -98297,7 +98531,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
98297
98531
  }, "detector");
98298
98532
  var loader22 = /* @__PURE__ */ __name(async () => {
98299
98533
  const { diagram: diagram2 } = await __vitePreload(async () => {
98300
- const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-ADkSZ215.js");
98534
+ const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-DTHGhOsp.js");
98301
98535
  return { diagram: diagram22 };
98302
98536
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
98303
98537
  return { id: id22, diagram: diagram2 };
@@ -98314,7 +98548,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
98314
98548
  }, "detector");
98315
98549
  var loader23 = /* @__PURE__ */ __name(async () => {
98316
98550
  const { diagram: diagram2 } = await __vitePreload(async () => {
98317
- const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-DpYGO4Wi.js");
98551
+ const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-C3x0JkgF.js");
98318
98552
  return { diagram: diagram22 };
98319
98553
  }, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
98320
98554
  return { id: id23, diagram: diagram2 };
@@ -98330,7 +98564,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
98330
98564
  }, "detector");
98331
98565
  var loader24 = /* @__PURE__ */ __name(async () => {
98332
98566
  const { diagram: diagram2 } = await __vitePreload(async () => {
98333
- const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-CiVS6fbK.js");
98567
+ const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-3IlyK_xp.js");
98334
98568
  return { diagram: diagram22 };
98335
98569
  }, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
98336
98570
  return { id: id24, diagram: diagram2 };
@@ -98346,7 +98580,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
98346
98580
  }, "detector");
98347
98581
  var loader25 = /* @__PURE__ */ __name(async () => {
98348
98582
  const { diagram: diagram2 } = await __vitePreload(async () => {
98349
- const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-DRcKQf9Q.js");
98583
+ const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-C7kfjZhf.js");
98350
98584
  return { diagram: diagram22 };
98351
98585
  }, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
98352
98586
  return { id: id25, diagram: diagram2 };
@@ -98363,7 +98597,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
98363
98597
  }, "detector");
98364
98598
  var loader26 = /* @__PURE__ */ __name(async () => {
98365
98599
  const { diagram: diagram2 } = await __vitePreload(async () => {
98366
- const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-DFdZI4Uu.js");
98600
+ const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-BF8vwQ4e.js");
98367
98601
  return { diagram: diagram22 };
98368
98602
  }, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
98369
98603
  return { id: id26, diagram: diagram2 };
@@ -98380,7 +98614,7 @@ var detector27 = /* @__PURE__ */ __name((txt) => {
98380
98614
  }, "detector");
98381
98615
  var loader27 = /* @__PURE__ */ __name(async () => {
98382
98616
  const { diagram: diagram2 } = await __vitePreload(async () => {
98383
- const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-CAV8iv45.js");
98617
+ const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-DY9fHLYz.js");
98384
98618
  return { diagram: diagram22 };
98385
98619
  }, true ? [] : void 0);
98386
98620
  return { id: id27, diagram: diagram2 };
@@ -98396,7 +98630,7 @@ var detector28 = /* @__PURE__ */ __name((txt) => {
98396
98630
  }, "detector");
98397
98631
  var loader28 = /* @__PURE__ */ __name(async () => {
98398
98632
  const { diagram: diagram2 } = await __vitePreload(async () => {
98399
- const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-BsWMgmkQ.js");
98633
+ const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-C8gZYuUq.js");
98400
98634
  return { diagram: diagram22 };
98401
98635
  }, true ? [] : void 0);
98402
98636
  return { id: id28, diagram: diagram2 };
@@ -98413,7 +98647,7 @@ var detector29 = /* @__PURE__ */ __name((txt) => {
98413
98647
  }, "detector");
98414
98648
  var loader29 = /* @__PURE__ */ __name(async () => {
98415
98649
  const { diagram: diagram2 } = await __vitePreload(async () => {
98416
- const { diagram: diagram22 } = await import("./diagram-E7M64L7V-BUDea9FM.js");
98650
+ const { diagram: diagram22 } = await import("./diagram-E7M64L7V-B1sUlvtn.js");
98417
98651
  return { diagram: diagram22 };
98418
98652
  }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
98419
98653
  return { id: id29, diagram: diagram2 };
@@ -99274,7 +99508,14 @@ if (!customElements.get("dominds-mermaid-block")) {
99274
99508
  customElements.define("dominds-mermaid-block", DomindsMermaidBlock);
99275
99509
  }
99276
99510
  const WORKSPACE_FILE_PREVIEW_ROUTE = "/f";
99511
+ const RTWS_PSEUDO_ROUTE_SEGMENTS = ["workspace", "rtws", "<workspace>", "<rtws>"];
99277
99512
  const DOMINDS_RTWS_DATA_ATTR = "data-dominds-rtws";
99513
+ const DOMINDS_PREVIEW_PATH_ATTR = "dominds-preview-path";
99514
+ const DOMINDS_PREVIEW_HREF_ATTR = "dominds-preview-href";
99515
+ const DOMINDS_PREVIEW_STATE_ATTR = "dominds-preview-state";
99516
+ const DOMINDS_PREVIEW_STATE_PENDING = "pending";
99517
+ const DOMINDS_PREVIEW_STATE_READY = "ready";
99518
+ const DOMINDS_PREVIEW_STATE_INVALID = "invalid";
99278
99519
  function slugifyHeadingId(raw) {
99279
99520
  const trimmed = raw.trim();
99280
99521
  if (!trimmed) return "";
@@ -99420,6 +99661,74 @@ function normalizeRtwsRelativePath(rawPath, options) {
99420
99661
  }
99421
99662
  return out;
99422
99663
  }
99664
+ function normalizeWorkspacePseudoRelativePath(rawPath) {
99665
+ const normalized = normalizeSlashPath(rawPath).replace(/\/+/g, "/").trim();
99666
+ for (const prefix of RTWS_PSEUDO_ROUTE_SEGMENTS) {
99667
+ let tail = null;
99668
+ if (normalized === prefix || normalized === `/${prefix}`) {
99669
+ tail = "";
99670
+ } else if (normalized.startsWith(`/${prefix}/`)) {
99671
+ tail = normalized.slice(prefix.length + 2);
99672
+ } else if (normalized.startsWith(`${prefix}/`)) {
99673
+ tail = normalized.slice(prefix.length + 1);
99674
+ }
99675
+ if (tail !== null) {
99676
+ return normalizeRtwsRelativePath(tail, { allowRoot: true });
99677
+ }
99678
+ }
99679
+ return null;
99680
+ }
99681
+ function decodeHrefPath(rawPath) {
99682
+ try {
99683
+ return decodeURIComponent(rawPath);
99684
+ } catch {
99685
+ return rawPath;
99686
+ }
99687
+ }
99688
+ function isLoopbackHost(hostname) {
99689
+ return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "::1" || hostname === "[::1]";
99690
+ }
99691
+ function canRewriteSameRtwsHttpUrl(url) {
99692
+ if (typeof window === "undefined") return false;
99693
+ try {
99694
+ const current = new URL(window.location.href);
99695
+ if (url.origin === current.origin) return true;
99696
+ return url.protocol === current.protocol && url.port === current.port && isLoopbackHost(url.hostname) && isLoopbackHost(current.hostname);
99697
+ } catch {
99698
+ return false;
99699
+ }
99700
+ }
99701
+ function extractWorkspacePseudoHrefCandidate(rawHref) {
99702
+ const trimmed = rawHref.trim();
99703
+ if (trimmed.length < 1) return null;
99704
+ if (!/^[a-zA-Z][a-zA-Z\d+.-]*:/.test(trimmed)) return trimmed;
99705
+ let parsedUrl;
99706
+ try {
99707
+ parsedUrl = new URL(trimmed);
99708
+ } catch {
99709
+ return null;
99710
+ }
99711
+ if (!/^https?:$/i.test(parsedUrl.protocol)) return null;
99712
+ if (!canRewriteSameRtwsHttpUrl(parsedUrl)) return null;
99713
+ return decodeHrefPath(parsedUrl.pathname);
99714
+ }
99715
+ function parseWorkspacePseudoLinkTarget(rawHref) {
99716
+ const hrefCandidate = extractWorkspacePseudoHrefCandidate(rawHref);
99717
+ if (hrefCandidate === null) return null;
99718
+ const parsed = parseWorkspaceHrefPath(hrefCandidate);
99719
+ if (parsed === null) return null;
99720
+ const relativePath = normalizeWorkspacePseudoRelativePath(parsed.rawPath);
99721
+ if (relativePath === null) return null;
99722
+ return {
99723
+ relativePath,
99724
+ line: parsed.line,
99725
+ column: parsed.column
99726
+ };
99727
+ }
99728
+ function deleteTokenAttr(token2, name) {
99729
+ if (!Array.isArray(token2.attrs)) return;
99730
+ token2.attrs = token2.attrs.filter(([attrName]) => attrName !== name);
99731
+ }
99423
99732
  function resolveRelativeWorkspaceFilePreviewTarget(rawHref, env) {
99424
99733
  if (!env.allowRelativeWorkspaceLinks) return null;
99425
99734
  const trimmed = rawHref.trim();
@@ -99526,7 +99835,15 @@ const domPurifyConfig = {
99526
99835
  allowCustomizedBuiltInElements: false
99527
99836
  },
99528
99837
  ADD_TAGS: [...allowedCustomElements],
99529
- ADD_ATTR: [...allowedCustomElementAttrs, "id", "target", "rel"]
99838
+ ADD_ATTR: [
99839
+ ...allowedCustomElementAttrs,
99840
+ "id",
99841
+ "target",
99842
+ "rel",
99843
+ DOMINDS_PREVIEW_PATH_ATTR,
99844
+ DOMINDS_PREVIEW_HREF_ATTR,
99845
+ DOMINDS_PREVIEW_STATE_ATTR
99846
+ ]
99530
99847
  };
99531
99848
  const md = new MarkdownIt({
99532
99849
  html: false,
@@ -99575,16 +99892,18 @@ md.renderer.rules.link_open = (tokens, idx, options, _env, self2) => {
99575
99892
  const href = token2.attrGet("href");
99576
99893
  const env = getMarkdownRenderEnv(_env);
99577
99894
  if (typeof href === "string") {
99895
+ const workspacePseudoLink = parseWorkspacePseudoLinkTarget(href);
99578
99896
  const workspaceFileLink = parseWorkspaceFileLinkTarget(href);
99579
- const previewTarget = workspaceFileLink !== null ? resolveWorkspaceFilePreviewTarget(workspaceFileLink) : resolveRelativeWorkspaceFilePreviewTarget(href, env);
99897
+ const previewTarget = workspacePseudoLink ?? (workspaceFileLink !== null ? resolveWorkspaceFilePreviewTarget(workspaceFileLink) : resolveRelativeWorkspaceFilePreviewTarget(href, env));
99580
99898
  if (previewTarget) {
99581
- token2.attrSet("href", buildWorkspaceFilePreviewHref(previewTarget));
99899
+ token2.attrSet(DOMINDS_PREVIEW_PATH_ATTR, previewTarget.relativePath);
99900
+ token2.attrSet(DOMINDS_PREVIEW_HREF_ATTR, buildWorkspaceFilePreviewHref(previewTarget));
99901
+ token2.attrSet(DOMINDS_PREVIEW_STATE_ATTR, DOMINDS_PREVIEW_STATE_PENDING);
99902
+ deleteTokenAttr(token2, "href");
99582
99903
  applyOpenInNewTabAttrs(token2);
99583
99904
  return self2.renderToken(tokens, idx, options);
99584
99905
  }
99585
- if (/^https?:\/\//i.test(href.trim())) {
99586
- applyOpenInNewTabAttrs(token2);
99587
- }
99906
+ applyOpenInNewTabAttrs(token2);
99588
99907
  }
99589
99908
  return self2.renderToken(tokens, idx, options);
99590
99909
  };
@@ -99610,6 +99929,106 @@ function renderDomindsMarkdown(input, opts = { kind: "chat" }) {
99610
99929
  return escapeHtmlText(input);
99611
99930
  }
99612
99931
  }
99932
+ function getAuthTokenForWorkspaceLinkCheck() {
99933
+ const authFromUrl = getAuthFromCurrentUrl();
99934
+ if (authFromUrl !== null) return authFromUrl;
99935
+ if (typeof window === "undefined") return null;
99936
+ try {
99937
+ const authFromStorage = window.localStorage.getItem("dominds.authKey");
99938
+ if (typeof authFromStorage !== "string") return null;
99939
+ const trimmed = authFromStorage.trim();
99940
+ return trimmed.length > 0 ? trimmed : null;
99941
+ } catch {
99942
+ return null;
99943
+ }
99944
+ }
99945
+ async function resolveWorkspaceEntryBatch(relativePaths) {
99946
+ const uniquePaths = Array.from(
99947
+ new Set(relativePaths.map((path2) => path2.trim()).filter((path2) => path2.length > 0))
99948
+ );
99949
+ const resultMap = /* @__PURE__ */ new Map();
99950
+ if (uniquePaths.length < 1) return resultMap;
99951
+ const headers = { Accept: "application/json" };
99952
+ const authToken = getAuthTokenForWorkspaceLinkCheck();
99953
+ if (authToken !== null) {
99954
+ headers["Authorization"] = `Bearer ${authToken}`;
99955
+ }
99956
+ try {
99957
+ const response = await fetch("/api/markdown-links/resolve", {
99958
+ method: "POST",
99959
+ headers,
99960
+ body: JSON.stringify({ paths: uniquePaths }),
99961
+ cache: "no-store"
99962
+ });
99963
+ if (!response.ok) return resultMap;
99964
+ const payload = await response.json();
99965
+ if (typeof payload !== "object" || payload === null) return resultMap;
99966
+ const rawResults = payload.results;
99967
+ if (!Array.isArray(rawResults)) return resultMap;
99968
+ for (const entry of rawResults) {
99969
+ if (typeof entry !== "object" || entry === null) continue;
99970
+ const path2 = entry.path;
99971
+ const exists = entry.exists;
99972
+ if (typeof path2 !== "string" || typeof exists !== "boolean") continue;
99973
+ resultMap.set(path2, exists);
99974
+ }
99975
+ return resultMap;
99976
+ } catch {
99977
+ return resultMap;
99978
+ }
99979
+ }
99980
+ function unwrapAnchor(anchor2) {
99981
+ const parent = anchor2.parentNode;
99982
+ if (parent === null) return;
99983
+ const fragment = document.createDocumentFragment();
99984
+ while (anchor2.firstChild) {
99985
+ fragment.appendChild(anchor2.firstChild);
99986
+ }
99987
+ parent.replaceChild(fragment, anchor2);
99988
+ }
99989
+ function postprocessRenderedDomindsMarkdown(root2) {
99990
+ if (typeof window === "undefined") return;
99991
+ if (!("querySelectorAll" in root2)) return;
99992
+ const anchors = root2.querySelectorAll("a");
99993
+ const previewAnchorsByPath = /* @__PURE__ */ new Map();
99994
+ for (const anchorNode of anchors) {
99995
+ if (!(anchorNode instanceof HTMLAnchorElement)) continue;
99996
+ anchorNode.setAttribute("target", "_blank");
99997
+ const relTokens = new Set(
99998
+ (anchorNode.getAttribute("rel") ?? "").split(/\s+/).map((part) => part.trim()).filter((part) => part.length > 0)
99999
+ );
100000
+ relTokens.add("noopener");
100001
+ relTokens.add("noreferrer");
100002
+ anchorNode.setAttribute("rel", Array.from(relTokens).join(" "));
100003
+ const previewPath = anchorNode.getAttribute(DOMINDS_PREVIEW_PATH_ATTR);
100004
+ const previewHref = anchorNode.getAttribute(DOMINDS_PREVIEW_HREF_ATTR);
100005
+ const previewState = anchorNode.getAttribute(DOMINDS_PREVIEW_STATE_ATTR);
100006
+ if (typeof previewPath !== "string" || typeof previewHref !== "string") continue;
100007
+ if (previewState === DOMINDS_PREVIEW_STATE_READY || previewState === DOMINDS_PREVIEW_STATE_INVALID) {
100008
+ continue;
100009
+ }
100010
+ anchorNode.setAttribute(DOMINDS_PREVIEW_STATE_ATTR, DOMINDS_PREVIEW_STATE_PENDING);
100011
+ const bucket = previewAnchorsByPath.get(previewPath) ?? [];
100012
+ bucket.push({ anchor: anchorNode, previewHref });
100013
+ previewAnchorsByPath.set(previewPath, bucket);
100014
+ }
100015
+ if (previewAnchorsByPath.size < 1) return;
100016
+ void resolveWorkspaceEntryBatch(Array.from(previewAnchorsByPath.keys())).then((results) => {
100017
+ for (const [previewPath, anchorsForPath] of previewAnchorsByPath.entries()) {
100018
+ const exists = results.get(previewPath) === true;
100019
+ for (const item of anchorsForPath) {
100020
+ if (!item.anchor.isConnected) continue;
100021
+ if (exists) {
100022
+ item.anchor.setAttribute("href", item.previewHref);
100023
+ item.anchor.setAttribute(DOMINDS_PREVIEW_STATE_ATTR, DOMINDS_PREVIEW_STATE_READY);
100024
+ continue;
100025
+ }
100026
+ item.anchor.setAttribute(DOMINDS_PREVIEW_STATE_ATTR, DOMINDS_PREVIEW_STATE_INVALID);
100027
+ unwrapAnchor(item.anchor);
100028
+ }
100029
+ }
100030
+ });
100031
+ }
99613
100032
  class DomindsMarkdownSection extends HTMLElement {
99614
100033
  constructor() {
99615
100034
  super();
@@ -99647,6 +100066,7 @@ class DomindsMarkdownSection extends HTMLElement {
99647
100066
  kind: "chat",
99648
100067
  allowRelativeWorkspaceLinks: true
99649
100068
  });
100069
+ postprocessRenderedDomindsMarkdown(contentEl);
99650
100070
  contentEl.setAttribute("data-raw-md", this.accumulatedRawMarkdown);
99651
100071
  }
99652
100072
  }
@@ -101611,6 +102031,7 @@ class DomindsDialogContainer extends HTMLElement {
101611
102031
  kind: "chat",
101612
102032
  allowRelativeWorkspaceLinks: true
101613
102033
  });
102034
+ postprocessRenderedDomindsMarkdown(bodyEl);
101614
102035
  bodyEl.classList.add("markdown-content");
101615
102036
  bodyEl.setAttribute("data-raw-md", event.tellaskContent);
101616
102037
  bodyEl.classList.add("completed");
@@ -101645,6 +102066,7 @@ class DomindsDialogContainer extends HTMLElement {
101645
102066
  kind: "chat",
101646
102067
  allowRelativeWorkspaceLinks: true
101647
102068
  });
102069
+ postprocessRenderedDomindsMarkdown(block2);
101648
102070
  block2.classList.add("markdown-content");
101649
102071
  block2.setAttribute("data-raw-md", raw);
101650
102072
  resultEl.appendChild(block2);
@@ -101712,6 +102134,7 @@ class DomindsDialogContainer extends HTMLElement {
101712
102134
  kind: "chat",
101713
102135
  allowRelativeWorkspaceLinks: true
101714
102136
  });
102137
+ postprocessRenderedDomindsMarkdown(resultEl);
101715
102138
  resultEl.setAttribute("data-raw-md", raw);
101716
102139
  resultEl.classList.add("markdown-content");
101717
102140
  resultEl.classList.add("completed");
@@ -101854,16 +102277,11 @@ ${event.content}`;
101854
102277
  } else {
101855
102278
  bubble.removeAttribute("data-assignment-genseq");
101856
102279
  }
101857
- const callerDialogId = typeof anchor2.callerDialogId === "string" ? anchor2.callerDialogId.trim() : "";
101858
- if (callerDialogId !== "") {
101859
- bubble.setAttribute("data-caller-dialog-id", callerDialogId);
102280
+ if (anchor2.anchorRole === "response") {
102281
+ bubble.setAttribute("data-caller-dialog-id", anchor2.callerDialogId);
102282
+ bubble.setAttribute("data-caller-course", String(Math.floor(anchor2.callerCourse)));
101860
102283
  } else {
101861
102284
  bubble.removeAttribute("data-caller-dialog-id");
101862
- }
101863
- const callerCourse = typeof anchor2.callerCourse === "number" && Number.isFinite(anchor2.callerCourse) ? Math.floor(anchor2.callerCourse) : void 0;
101864
- if (callerCourse !== void 0) {
101865
- bubble.setAttribute("data-caller-course", String(callerCourse));
101866
- } else {
101867
102285
  bubble.removeAttribute("data-caller-course");
101868
102286
  }
101869
102287
  this.upsertGenerationBubbleAnchorActions(bubble);
@@ -101898,14 +102316,46 @@ ${event.content}`;
101898
102316
  const assignmentGenseq = this.parseOptionalPositiveInt(event.assignmentGenseq);
101899
102317
  const callerCourse = this.parseOptionalPositiveInt(event.callerCourse);
101900
102318
  const callerDialogId = typeof event.callerDialogId === "string" ? event.callerDialogId.trim() : void 0;
101901
- const anchorMeta = {
101902
- callId: rawCallId,
101903
- anchorRole: rawAnchorRole,
101904
- assignmentCourse: assignmentCourse !== void 0 ? storageExports.toAssignmentCourseNumber(assignmentCourse) : void 0,
101905
- assignmentGenseq: assignmentGenseq !== void 0 ? storageExports.toAssignmentGenerationSeqNumber(assignmentGenseq) : void 0,
101906
- callerDialogId,
101907
- callerCourse: callerCourse !== void 0 ? storageExports.toCallerCourseNumber(callerCourse) : void 0
101908
- };
102319
+ let anchorMeta;
102320
+ switch (rawAnchorRole) {
102321
+ case "assignment":
102322
+ anchorMeta = {
102323
+ callId: rawCallId,
102324
+ anchorRole: "assignment",
102325
+ assignmentCourse: assignmentCourse !== void 0 ? storageExports.toAssignmentCourseNumber(assignmentCourse) : void 0,
102326
+ assignmentGenseq: assignmentGenseq !== void 0 ? storageExports.toAssignmentGenerationSeqNumber(assignmentGenseq) : void 0
102327
+ };
102328
+ break;
102329
+ case "response":
102330
+ if (callerDialogId === void 0 || callerDialogId === "") {
102331
+ this.handleProtocolError(
102332
+ `tellask_call_anchor_evt missing callerDialogId for response ${JSON.stringify({
102333
+ callId: rawCallId,
102334
+ genseq: event.genseq
102335
+ })}`
102336
+ );
102337
+ return;
102338
+ }
102339
+ if (callerCourse === void 0) {
102340
+ this.handleProtocolError(
102341
+ `tellask_call_anchor_evt missing callerCourse for response ${JSON.stringify({
102342
+ callId: rawCallId,
102343
+ genseq: event.genseq,
102344
+ callerDialogId
102345
+ })}`
102346
+ );
102347
+ return;
102348
+ }
102349
+ anchorMeta = {
102350
+ callId: rawCallId,
102351
+ anchorRole: "response",
102352
+ assignmentCourse: assignmentCourse !== void 0 ? storageExports.toAssignmentCourseNumber(assignmentCourse) : void 0,
102353
+ assignmentGenseq: assignmentGenseq !== void 0 ? storageExports.toAssignmentGenerationSeqNumber(assignmentGenseq) : void 0,
102354
+ callerDialogId,
102355
+ callerCourse: storageExports.toCallerCourseNumber(callerCourse)
102356
+ };
102357
+ break;
102358
+ }
101909
102359
  const genseq = Math.floor(event.genseq);
101910
102360
  const messages = this.shadowRoot?.querySelector(".messages");
101911
102361
  const bubble = messages ? messages.querySelector(
@@ -104543,6 +104993,19 @@ class DomindsDocsPanel extends HTMLElement {
104543
104993
  openExternalLink(href) {
104544
104994
  window.open(href, "_blank", "noopener,noreferrer");
104545
104995
  }
104996
+ normalizeDocBodyLinkTargets(root2) {
104997
+ if (!("querySelectorAll" in root2)) return;
104998
+ const anchors = root2.querySelectorAll("a");
104999
+ for (const anchorNode of anchors) {
105000
+ if (!(anchorNode instanceof HTMLAnchorElement)) continue;
105001
+ const href = anchorNode.getAttribute("href");
105002
+ if (typeof href !== "string") continue;
105003
+ if (href.startsWith("#") || this.parseDocsLinkTarget(href) !== null) {
105004
+ anchorNode.removeAttribute("target");
105005
+ anchorNode.removeAttribute("rel");
105006
+ }
105007
+ }
105008
+ }
104546
105009
  scrollToPendingAnchorIfAny() {
104547
105010
  if (!this.pendingScrollAnchorId) return;
104548
105011
  const id30 = this.pendingScrollAnchorId;
@@ -104584,6 +105047,8 @@ class DomindsDocsPanel extends HTMLElement {
104584
105047
  <div class="docs-body">${bodyHtml}</div>
104585
105048
  </div>
104586
105049
  `;
105050
+ postprocessRenderedDomindsMarkdown(root2);
105051
+ this.normalizeDocBodyLinkTargets(root2);
104587
105052
  root2.querySelectorAll("button.docs-tab").forEach((btn) => {
104588
105053
  btn.addEventListener("click", () => {
104589
105054
  const k2 = btn.dataset.docKey;
@@ -104612,6 +105077,14 @@ class DomindsDocsPanel extends HTMLElement {
104612
105077
  this.scrollToAnchorId(id30);
104613
105078
  return;
104614
105079
  }
105080
+ if (href.startsWith("/f/") || href === "/f" || href === "/workspace" || href.startsWith("/workspace/") || href === "/rtws" || href.startsWith("/rtws/")) {
105081
+ try {
105082
+ const resolved = new URL(href, window.location.href);
105083
+ this.openExternalLink(resolved.toString());
105084
+ } catch {
105085
+ }
105086
+ return;
105087
+ }
104615
105088
  if (this.isExternalLink(href)) {
104616
105089
  this.openExternalLink(href);
104617
105090
  return;
@@ -106171,6 +106644,7 @@ class DomindsQ4HPanel extends HTMLElement {
106171
106644
  <style>${style2}</style>
106172
106645
  ${html2}
106173
106646
  `;
106647
+ postprocessRenderedDomindsMarkdown(this.shadowRoot);
106174
106648
  this.setupEventListeners();
106175
106649
  this.applySelectionUi();
106176
106650
  }
@@ -107895,6 +108369,7 @@ class DomindsTeamManualPanel extends HTMLElement {
107895
108369
  <div class="body">${bodyHtml}</div>
107896
108370
  </div>
107897
108371
  `;
108372
+ postprocessRenderedDomindsMarkdown(root2);
107898
108373
  root2.querySelectorAll("button.topic").forEach((btn) => {
107899
108374
  btn.addEventListener("click", () => {
107900
108375
  const raw = btn.dataset.topic;
@@ -109013,6 +109488,15 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109013
109488
  if (timeEl instanceof HTMLElement) {
109014
109489
  timeEl.textContent = next2.lastModified || "";
109015
109490
  }
109491
+ if (targetSelf === rootId) {
109492
+ this.reorderVisibleRoots(next2.taskDocPath);
109493
+ } else {
109494
+ this.reorderVisibleSubdialogs(rootId);
109495
+ const rootDialog = this.findDialogByIds(rootId, rootId, true);
109496
+ if (rootDialog) {
109497
+ this.reorderVisibleRoots(rootDialog.taskDocPath);
109498
+ }
109499
+ }
109016
109500
  }
109017
109501
  if (patch.subdialogCount !== void 0 && targetSelf === rootId) {
109018
109502
  const countEl = entry.el.querySelector(".dialog-count");
@@ -109236,29 +109720,13 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109236
109720
  this.visibleSubdialogCountByRoot.delete(existing);
109237
109721
  }
109238
109722
  }
109239
- if (this.selectedKey) {
109240
- const [rootId, selfId] = this.splitDialogKey(this.selectedKey);
109241
- if (rootId && selfId) {
109242
- this.selectionState = {
109243
- kind: "selected",
109244
- rootId,
109245
- selfId,
109246
- isRoot: rootId === selfId
109247
- };
109248
- }
109249
- }
109250
- if (this.selectionState.kind === "selected") {
109251
- const hasSelection = validated.some(
109252
- (dialog2) => this.isSelectedDialog(dialog2, this.selectionState)
109253
- );
109723
+ const selection2 = this.selectionState;
109724
+ if (selection2.kind === "selected") {
109725
+ const hasSelection = validated.some((dialog2) => this.isSelectedDialog(dialog2, selection2));
109254
109726
  if (!hasSelection) {
109255
109727
  this.clearSelection();
109256
109728
  } else {
109257
- this.ensureDialogVisible(
109258
- this.selectionState.rootId,
109259
- this.selectionState.selfId,
109260
- this.selectionState.isRoot
109261
- );
109729
+ this.ensureDialogVisible(selection2.rootId, selection2.selfId, selection2.isRoot);
109262
109730
  }
109263
109731
  }
109264
109732
  const t2 = getUiStrings(this.props.uiLanguage);
@@ -109269,84 +109737,7 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109269
109737
  this.refreshFromDom();
109270
109738
  return;
109271
109739
  }
109272
- const html2 = groups.map((group) => {
109273
- const taskCollapsed = this.collapsedTasks.has(group.taskDocPath);
109274
- const taskToggle = this.renderToggleIcon(taskCollapsed);
109275
- const visibleRootCount = this.visibleRootCountByTask.get(group.taskDocPath) ?? _DoneDialogList.SHOW_MORE_STEP;
109276
- const visibleRoots = group.roots.slice(0, visibleRootCount);
109277
- const hiddenRootCount = Math.max(group.roots.length - visibleRoots.length, 0);
109278
- const rootNodes = visibleRoots.map((rootGroup) => {
109279
- const rootDialog = rootGroup.root;
109280
- const rootCollapsed = this.collapsedRoots.has(rootGroup.rootId);
109281
- const rootToggle = this.renderToggleIcon(rootCollapsed);
109282
- const rootRow = rootDialog ? this.renderRootRow(rootDialog, rootToggle, rootGroup.subdialogs.length) : `
109283
- <div class="dialog-item root-dialog missing" data-root-id="${rootGroup.rootId}" data-self-id="">
109284
- <div class="dialog-row">
109285
- <button class="toggle root-toggle" data-action="toggle-root" data-root-id="${rootGroup.rootId}" type="button" aria-label="${this.formatToggleAriaLabel(rootCollapsed)}">${rootToggle}</button>
109286
- <span class="dialog-title">${t2.missingRoot}</span>
109287
- <span class="dialog-meta-right">
109288
- <span class="dialog-count">${rootGroup.subdialogs.length}</span>
109289
- <span class="dialog-id">${rootGroup.rootId}</span>
109290
- </span>
109291
- </div>
109292
- </div>
109293
- `;
109294
- const visibleSubdialogCount = this.visibleSubdialogCountByRoot.get(rootGroup.rootId) ?? _DoneDialogList.SHOW_MORE_STEP;
109295
- const visibleSubdialogs = rootGroup.subdialogs.slice(0, visibleSubdialogCount);
109296
- const hiddenSubdialogCount = Math.max(
109297
- rootGroup.subdialogs.length - visibleSubdialogs.length,
109298
- 0
109299
- );
109300
- const subNodes = visibleSubdialogs.map((subdialog) => this.renderDialogRow(subdialog)).join("");
109301
- const subShowMore = hiddenSubdialogCount > 0 ? this.renderShowMoreButton({
109302
- action: "show-more-subdialogs",
109303
- rootId: rootGroup.rootId,
109304
- hiddenCount: hiddenSubdialogCount
109305
- }) : "";
109306
- const subCollapsed = taskCollapsed || rootCollapsed;
109307
- return `
109308
- <div class="rdlg-node" data-rdlg-root-id="${rootGroup.rootId}">
109309
- ${rootRow}
109310
- <div class="sdlg-children ${subCollapsed ? "collapsed" : ""}">
109311
- ${subNodes}
109312
- ${subShowMore}
109313
- </div>
109314
- </div>
109315
- `;
109316
- }).join("");
109317
- const rootShowMore = hiddenRootCount > 0 ? this.renderShowMoreButton({
109318
- action: "show-more-roots",
109319
- taskDocPath: group.taskDocPath,
109320
- hiddenCount: hiddenRootCount
109321
- }) : "";
109322
- return `
109323
- <div class="task-group task-node">
109324
- <div class="task-title" data-task-path="${group.taskDocPath}">
109325
- <div class="task-title-left">
109326
- <button class="toggle task-toggle" data-action="toggle-task" data-task-path="${group.taskDocPath}" type="button" aria-label="${this.formatToggleAriaLabel(taskCollapsed)}">${taskToggle}</button>
109327
- <span>${group.taskDocPath}</span>
109328
- </div>
109329
- <div class="task-title-right">
109330
- <button class="action icon-button" data-action="task-create-dialog" data-task-path="${group.taskDocPath}" type="button" title="${t2.createNewDialogTitle}" aria-label="${t2.createNewDialogTitle}">
109331
- ${this.renderCreateIcon()}
109332
- </button>
109333
- <button class="action icon-button" data-action="task-revive" data-task-path="${group.taskDocPath}" type="button" title="${t2.dialogActionReviveAll}" aria-label="${t2.dialogActionReviveAll}">
109334
- ${this.renderReviveIcon()}
109335
- </button>
109336
- <button class="action icon-button" data-action="task-archive" data-task-path="${group.taskDocPath}" type="button" title="${t2.dialogActionArchiveAll}" aria-label="${t2.dialogActionArchiveAll}">
109337
- ${this.renderArchiveIcon()}
109338
- </button>
109339
- <span class="dialog-count">${group.roots.length}</span>
109340
- </div>
109341
- </div>
109342
- <div class="task-rows ${taskCollapsed ? "collapsed" : ""}">
109343
- ${rootNodes}
109344
- ${rootShowMore}
109345
- </div>
109346
- </div>
109347
- `;
109348
- }).join("");
109349
- this.listEl.innerHTML = html2;
109740
+ this.reconcileTaskGroups(groups);
109350
109741
  this.refreshFromDom();
109351
109742
  }
109352
109743
  renderLoading() {
@@ -109360,6 +109751,216 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109360
109751
  encodeDialogDataset(dialog2) {
109361
109752
  return encodeURIComponent(JSON.stringify(dialog2));
109362
109753
  }
109754
+ createElementFromHtml(html2) {
109755
+ const template = document.createElement("template");
109756
+ template.innerHTML = html2.trim();
109757
+ const first = template.content.firstElementChild;
109758
+ if (!(first instanceof HTMLElement)) {
109759
+ throw new Error("Expected HTML template to produce a single HTMLElement.");
109760
+ }
109761
+ return first;
109762
+ }
109763
+ syncElement(target, next2) {
109764
+ if (target.outerHTML === next2.outerHTML) return;
109765
+ for (const name of target.getAttributeNames()) {
109766
+ if (!next2.hasAttribute(name)) {
109767
+ target.removeAttribute(name);
109768
+ }
109769
+ }
109770
+ for (const name of next2.getAttributeNames()) {
109771
+ const value = next2.getAttribute(name);
109772
+ if (value === null) continue;
109773
+ if (target.getAttribute(name) !== value) {
109774
+ target.setAttribute(name, value);
109775
+ }
109776
+ }
109777
+ if (target.innerHTML !== next2.innerHTML) {
109778
+ target.innerHTML = next2.innerHTML;
109779
+ }
109780
+ }
109781
+ renderTaskTitleRow(group, taskCollapsed) {
109782
+ const t2 = getUiStrings(this.props.uiLanguage);
109783
+ const taskToggle = this.renderToggleIcon(taskCollapsed);
109784
+ return `
109785
+ <div class="task-title" data-task-path="${group.taskDocPath}">
109786
+ <div class="task-title-left">
109787
+ <button class="toggle task-toggle" data-action="toggle-task" data-task-path="${group.taskDocPath}" type="button" aria-label="${this.formatToggleAriaLabel(taskCollapsed)}">${taskToggle}</button>
109788
+ <span>${group.taskDocPath}</span>
109789
+ </div>
109790
+ <div class="task-title-right">
109791
+ <button class="action icon-button" data-action="task-create-dialog" data-task-path="${group.taskDocPath}" type="button" title="${t2.createNewDialogTitle}" aria-label="${t2.createNewDialogTitle}">
109792
+ ${this.renderCreateIcon()}
109793
+ </button>
109794
+ <button class="action icon-button" data-action="task-revive" data-task-path="${group.taskDocPath}" type="button" title="${t2.dialogActionReviveAll}" aria-label="${t2.dialogActionReviveAll}">
109795
+ ${this.renderReviveIcon()}
109796
+ </button>
109797
+ <button class="action icon-button" data-action="task-archive" data-task-path="${group.taskDocPath}" type="button" title="${t2.dialogActionArchiveAll}" aria-label="${t2.dialogActionArchiveAll}">
109798
+ ${this.renderArchiveIcon()}
109799
+ </button>
109800
+ <span class="dialog-count">${group.roots.length}</span>
109801
+ </div>
109802
+ </div>
109803
+ `;
109804
+ }
109805
+ renderMissingRootRow(rootGroup, rootCollapsed) {
109806
+ const t2 = getUiStrings(this.props.uiLanguage);
109807
+ const rootToggle = this.renderToggleIcon(rootCollapsed);
109808
+ return `
109809
+ <div class="dialog-item root-dialog missing" data-root-id="${rootGroup.rootId}" data-self-id="">
109810
+ <div class="dialog-row">
109811
+ <button class="toggle root-toggle" data-action="toggle-root" data-root-id="${rootGroup.rootId}" type="button" aria-label="${this.formatToggleAriaLabel(rootCollapsed)}">${rootToggle}</button>
109812
+ <span class="dialog-title">${t2.missingRoot}</span>
109813
+ <span class="dialog-meta-right">
109814
+ <span class="dialog-count">${rootGroup.subdialogs.length}</span>
109815
+ <span class="dialog-id">${rootGroup.rootId}</span>
109816
+ </span>
109817
+ </div>
109818
+ </div>
109819
+ `;
109820
+ }
109821
+ reconcileShowMoreRow(container, html2) {
109822
+ const existing = container.querySelector(":scope > .show-more-row");
109823
+ if (html2 === null) {
109824
+ existing?.remove();
109825
+ return;
109826
+ }
109827
+ const next2 = this.createElementFromHtml(html2);
109828
+ if (existing) {
109829
+ this.syncElement(existing, next2);
109830
+ container.appendChild(existing);
109831
+ return;
109832
+ }
109833
+ container.appendChild(next2);
109834
+ }
109835
+ reconcileSubdialogRows(rootChildren, rootGroup) {
109836
+ const existingRows = /* @__PURE__ */ new Map();
109837
+ rootChildren.querySelectorAll(":scope > .dialog-item.sub-dialog[data-dialog-key]").forEach((row) => {
109838
+ const key = (row.getAttribute("data-dialog-key") ?? "").trim();
109839
+ if (key !== "") {
109840
+ existingRows.set(key, row);
109841
+ }
109842
+ });
109843
+ const visibleSubdialogCount = this.visibleSubdialogCountByRoot.get(rootGroup.rootId) ?? _DoneDialogList.SHOW_MORE_STEP;
109844
+ const visibleSubdialogs = rootGroup.subdialogs.slice(0, visibleSubdialogCount);
109845
+ const hiddenSubdialogCount = Math.max(
109846
+ rootGroup.subdialogs.length - visibleSubdialogs.length,
109847
+ 0
109848
+ );
109849
+ for (const subdialog of visibleSubdialogs) {
109850
+ const key = this.getDialogKey(subdialog);
109851
+ const next2 = this.createElementFromHtml(this.renderDialogRow(subdialog));
109852
+ const existing = existingRows.get(key);
109853
+ if (existing) {
109854
+ this.syncElement(existing, next2);
109855
+ rootChildren.appendChild(existing);
109856
+ existingRows.delete(key);
109857
+ } else {
109858
+ rootChildren.appendChild(next2);
109859
+ }
109860
+ }
109861
+ for (const stale of existingRows.values()) {
109862
+ stale.remove();
109863
+ }
109864
+ const showMoreHtml = hiddenSubdialogCount > 0 ? this.renderShowMoreButton({
109865
+ action: "show-more-subdialogs",
109866
+ rootId: rootGroup.rootId,
109867
+ hiddenCount: hiddenSubdialogCount
109868
+ }) : null;
109869
+ this.reconcileShowMoreRow(rootChildren, showMoreHtml);
109870
+ }
109871
+ reconcileRootNode(rootNode, rootGroup, taskCollapsed) {
109872
+ rootNode.setAttribute("data-rdlg-root-id", rootGroup.rootId);
109873
+ const rootCollapsed = this.collapsedRoots.has(rootGroup.rootId);
109874
+ const rootRowHtml = rootGroup.root ? this.renderRootRow(
109875
+ rootGroup.root,
109876
+ this.renderToggleIcon(rootCollapsed),
109877
+ rootGroup.subdialogs.length
109878
+ ) : this.renderMissingRootRow(rootGroup, rootCollapsed);
109879
+ const existingRootRow = rootNode.querySelector(
109880
+ ":scope > .dialog-item.root-dialog"
109881
+ );
109882
+ if (existingRootRow) {
109883
+ this.syncElement(existingRootRow, this.createElementFromHtml(rootRowHtml));
109884
+ if (rootNode.firstElementChild !== existingRootRow) {
109885
+ rootNode.insertBefore(existingRootRow, rootNode.firstElementChild);
109886
+ }
109887
+ } else {
109888
+ rootNode.insertBefore(this.createElementFromHtml(rootRowHtml), rootNode.firstElementChild);
109889
+ }
109890
+ let rootChildren = rootNode.querySelector(":scope > .sdlg-children");
109891
+ if (!rootChildren) {
109892
+ rootChildren = this.createElementFromHtml('<div class="sdlg-children"></div>');
109893
+ rootNode.appendChild(rootChildren);
109894
+ }
109895
+ rootChildren.classList.toggle("collapsed", taskCollapsed || rootCollapsed);
109896
+ this.reconcileSubdialogRows(rootChildren, rootGroup);
109897
+ }
109898
+ reconcileRootNodes(taskRows, group, taskCollapsed) {
109899
+ const existingRoots = /* @__PURE__ */ new Map();
109900
+ taskRows.querySelectorAll(":scope > .rdlg-node[data-rdlg-root-id]").forEach((node2) => {
109901
+ const rootId = (node2.getAttribute("data-rdlg-root-id") ?? "").trim();
109902
+ if (rootId !== "") {
109903
+ existingRoots.set(rootId, node2);
109904
+ }
109905
+ });
109906
+ const visibleRootCount = this.visibleRootCountByTask.get(group.taskDocPath) ?? _DoneDialogList.SHOW_MORE_STEP;
109907
+ const visibleRoots = group.roots.slice(0, visibleRootCount);
109908
+ const hiddenRootCount = Math.max(group.roots.length - visibleRoots.length, 0);
109909
+ for (const rootGroup of visibleRoots) {
109910
+ const existing = existingRoots.get(rootGroup.rootId);
109911
+ const rootNode = existing ?? this.createElementFromHtml(
109912
+ `<div class="rdlg-node" data-rdlg-root-id="${rootGroup.rootId}"></div>`
109913
+ );
109914
+ this.reconcileRootNode(rootNode, rootGroup, taskCollapsed);
109915
+ taskRows.appendChild(rootNode);
109916
+ existingRoots.delete(rootGroup.rootId);
109917
+ }
109918
+ for (const stale of existingRoots.values()) {
109919
+ stale.remove();
109920
+ }
109921
+ const showMoreHtml = hiddenRootCount > 0 ? this.renderShowMoreButton({
109922
+ action: "show-more-roots",
109923
+ taskDocPath: group.taskDocPath,
109924
+ hiddenCount: hiddenRootCount
109925
+ }) : null;
109926
+ this.reconcileShowMoreRow(taskRows, showMoreHtml);
109927
+ }
109928
+ reconcileTaskGroups(groups) {
109929
+ if (!this.listEl) return;
109930
+ this.listEl.querySelectorAll(":scope > .empty").forEach((node2) => node2.remove());
109931
+ const existingGroups = /* @__PURE__ */ new Map();
109932
+ this.listEl.querySelectorAll(":scope > .task-group.task-node").forEach((groupEl) => {
109933
+ const taskPath = (groupEl.querySelector(":scope > .task-title")?.getAttribute("data-task-path") ?? "").trim();
109934
+ if (taskPath !== "") {
109935
+ existingGroups.set(taskPath, groupEl);
109936
+ }
109937
+ });
109938
+ for (const group of groups) {
109939
+ const taskCollapsed = this.collapsedTasks.has(group.taskDocPath);
109940
+ const taskGroup = existingGroups.get(group.taskDocPath) ?? this.createElementFromHtml(
109941
+ '<div class="task-group task-node"><div class="task-title"></div><div class="task-rows"></div></div>'
109942
+ );
109943
+ const nextTitle = this.createElementFromHtml(this.renderTaskTitleRow(group, taskCollapsed));
109944
+ const currentTitle = taskGroup.querySelector(":scope > .task-title");
109945
+ if (currentTitle) {
109946
+ this.syncElement(currentTitle, nextTitle);
109947
+ } else {
109948
+ taskGroup.insertBefore(nextTitle, taskGroup.firstElementChild);
109949
+ }
109950
+ let taskRows = taskGroup.querySelector(":scope > .task-rows");
109951
+ if (!taskRows) {
109952
+ taskRows = this.createElementFromHtml('<div class="task-rows"></div>');
109953
+ taskGroup.appendChild(taskRows);
109954
+ }
109955
+ taskRows.classList.toggle("collapsed", taskCollapsed);
109956
+ this.reconcileRootNodes(taskRows, group, taskCollapsed);
109957
+ this.listEl.appendChild(taskGroup);
109958
+ existingGroups.delete(group.taskDocPath);
109959
+ }
109960
+ for (const stale of existingGroups.values()) {
109961
+ stale.remove();
109962
+ }
109963
+ }
109363
109964
  decodeDialogDataset(el) {
109364
109965
  const raw = el.dataset.dialogJson;
109365
109966
  if (!raw) return null;
@@ -109400,6 +110001,90 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109400
110001
  this.clearSelection();
109401
110002
  }
109402
110003
  }
110004
+ getDialogUpdatedAtMsFromElement(el) {
110005
+ const dialog2 = this.decodeDialogDataset(el);
110006
+ if (!dialog2) return 0;
110007
+ return this.parseTimestamp(dialog2.lastModified);
110008
+ }
110009
+ reorderVisibleSubdialogs(rootId) {
110010
+ if (!this.listEl) return;
110011
+ const rootChildren = this.listEl.querySelector(
110012
+ `.rdlg-node[data-rdlg-root-id="${this.escapeSelector(rootId)}"] > .sdlg-children`
110013
+ );
110014
+ if (!(rootChildren instanceof HTMLElement)) return;
110015
+ const subRows = Array.from(
110016
+ rootChildren.querySelectorAll(":scope > .dialog-item.sub-dialog")
110017
+ );
110018
+ if (subRows.length <= 1) return;
110019
+ subRows.sort((a2, b2) => {
110020
+ const delta = this.getDialogUpdatedAtMsFromElement(b2) - this.getDialogUpdatedAtMsFromElement(a2);
110021
+ if (delta !== 0) return delta;
110022
+ const aSelf = a2.getAttribute("data-self-id") ?? "";
110023
+ const bSelf = b2.getAttribute("data-self-id") ?? "";
110024
+ return aSelf.localeCompare(bSelf);
110025
+ });
110026
+ const anchor2 = rootChildren.querySelector(":scope > .show-more-row");
110027
+ for (const row of subRows) {
110028
+ rootChildren.insertBefore(row, anchor2);
110029
+ }
110030
+ }
110031
+ reorderVisibleRoots(taskDocPath) {
110032
+ if (!this.listEl) return;
110033
+ const taskTitle = this.listEl.querySelector(
110034
+ `.task-title[data-task-path="${this.escapeSelector(taskDocPath)}"]`
110035
+ );
110036
+ const taskGroup = taskTitle?.closest(".task-group");
110037
+ if (!(taskGroup instanceof HTMLElement)) return;
110038
+ const taskRows = taskGroup.querySelector(".task-rows");
110039
+ if (!(taskRows instanceof HTMLElement)) return;
110040
+ const rootNodes = Array.from(taskRows.querySelectorAll(":scope > .rdlg-node"));
110041
+ if (rootNodes.length <= 1) return;
110042
+ rootNodes.sort((a2, b2) => {
110043
+ const aRoot = a2.querySelector(":scope > .dialog-item.root-dialog");
110044
+ const bRoot = b2.querySelector(":scope > .dialog-item.root-dialog");
110045
+ const delta = (bRoot ? this.getDialogUpdatedAtMsFromElement(bRoot) : 0) - (aRoot ? this.getDialogUpdatedAtMsFromElement(aRoot) : 0);
110046
+ if (delta !== 0) return delta;
110047
+ const aRootId = (a2.getAttribute("data-rdlg-root-id") ?? "").trim();
110048
+ const bRootId = (b2.getAttribute("data-rdlg-root-id") ?? "").trim();
110049
+ return aRootId.localeCompare(bRootId);
110050
+ });
110051
+ const anchor2 = taskRows.querySelector(":scope > .show-more-row");
110052
+ for (const node2 of rootNodes) {
110053
+ taskRows.insertBefore(node2, anchor2);
110054
+ }
110055
+ this.reorderTaskGroups();
110056
+ }
110057
+ reorderTaskGroups() {
110058
+ if (!this.listEl) return;
110059
+ const groups = Array.from(
110060
+ this.listEl.querySelectorAll(":scope > .task-group.task-node")
110061
+ );
110062
+ if (groups.length <= 1) return;
110063
+ groups.sort((a2, b2) => {
110064
+ const aTs = this.getTaskMaxUpdatedAtMs(a2);
110065
+ const bTs = this.getTaskMaxUpdatedAtMs(b2);
110066
+ const delta = bTs - aTs;
110067
+ if (delta !== 0) return delta;
110068
+ const aPath = (a2.querySelector(".task-title")?.getAttribute("data-task-path") ?? "").trim();
110069
+ const bPath = (b2.querySelector(".task-title")?.getAttribute("data-task-path") ?? "").trim();
110070
+ return aPath.localeCompare(bPath);
110071
+ });
110072
+ for (const group of groups) {
110073
+ this.listEl.appendChild(group);
110074
+ }
110075
+ this.refreshFromDom();
110076
+ }
110077
+ getTaskMaxUpdatedAtMs(taskGroup) {
110078
+ let max2 = 0;
110079
+ const roots = taskGroup.querySelectorAll(
110080
+ ".dialog-item.root-dialog[data-dialog-json]"
110081
+ );
110082
+ roots.forEach((row) => {
110083
+ const ts = this.getDialogUpdatedAtMsFromElement(row);
110084
+ if (ts > max2) max2 = ts;
110085
+ });
110086
+ return max2;
110087
+ }
109403
110088
  clearSelection() {
109404
110089
  if (this.listEl) {
109405
110090
  const selected = this.listEl.querySelector(".dialog-item.selected");
@@ -109600,6 +110285,16 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109600
110285
  this.updateToggleButtonUi(rootToggle, false);
109601
110286
  }
109602
110287
  }
110288
+ if (!this.requestedSubdialogRoots.has(dialog2.rootId) && !this.hasSubdialogsLoaded(dialog2.rootId)) {
110289
+ this.requestedSubdialogRoots.add(dialog2.rootId);
110290
+ this.dispatchEvent(
110291
+ new CustomEvent("dialog-expand", {
110292
+ detail: { rootId: dialog2.rootId, status: "completed" },
110293
+ bubbles: true,
110294
+ composed: true
110295
+ })
110296
+ );
110297
+ }
109603
110298
  }
109604
110299
  findDialogByIds(rootId, selfId, isRoot) {
109605
110300
  const targetSelf = isRoot ? rootId : selfId;
@@ -109896,7 +110591,12 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109896
110591
  flex-direction: column;
109897
110592
  gap: 3px;
109898
110593
  padding: 2px 8px;
110594
+ margin: 0;
109899
110595
  cursor: pointer;
110596
+ border-right: 3px solid transparent;
110597
+ border-radius: 0;
110598
+ position: relative;
110599
+ box-sizing: border-box;
109900
110600
  }
109901
110601
 
109902
110602
  .root-dialog {
@@ -109927,7 +110627,17 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
109927
110627
  }
109928
110628
 
109929
110629
  .dialog-item.selected {
109930
- background: color-mix(in srgb, var(--dominds-primary, #007acc) 12%, transparent);
110630
+ background: color-mix(in srgb, var(--dominds-primary, #007acc) 13%, transparent);
110631
+ margin: 2px 0;
110632
+ border-radius: 10px 0 0 10px;
110633
+ box-shadow:
110634
+ inset 1px 0 0 color-mix(in srgb, white 55%, transparent),
110635
+ inset 0 1px 0 color-mix(in srgb, white 55%, transparent),
110636
+ inset 0 -1px 0 color-mix(in srgb, white 55%, transparent),
110637
+ inset 2px 0 0 color-mix(in srgb, var(--dominds-primary, #007acc) 72%, transparent),
110638
+ inset 0 2px 0 color-mix(in srgb, var(--dominds-primary, #007acc) 72%, transparent),
110639
+ inset 0 -2px 0 color-mix(in srgb, var(--dominds-primary, #007acc) 72%, transparent);
110640
+ z-index: var(--dominds-z-local-raised, 1);
109931
110641
  }
109932
110642
 
109933
110643
  .toggle {
@@ -110047,17 +110757,15 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
110047
110757
  display: inline-flex;
110048
110758
  align-items: center;
110049
110759
  gap: 6px;
110760
+ font-weight: 500;
110050
110761
  flex: none;
110051
110762
  white-space: nowrap;
110052
110763
  }
110053
110764
 
110054
110765
  .dialog-count {
110055
110766
  font-size: var(--dominds-font-size-xs, 11px);
110056
- padding: 2px 6px;
110057
- border-radius: 999px;
110058
- background: var(--dominds-border, #e0e0e0);
110059
110767
  color: var(--dominds-muted, #666666);
110060
- flex: none;
110768
+ letter-spacing: 0.02em;
110061
110769
  }
110062
110770
 
110063
110771
  .dialog-submeta {
@@ -110096,7 +110804,8 @@ const _DoneDialogList = class _DoneDialogList extends HTMLElement {
110096
110804
 
110097
110805
  .dialog-topic {
110098
110806
  font-size: var(--dominds-font-size-xs, 11px);
110099
- color: var(--dominds-muted, #888888);
110807
+ color: var(--dominds-muted, #666666);
110808
+ letter-spacing: 0.02em;
110100
110809
  }
110101
110810
 
110102
110811
  .empty {
@@ -123343,4 +124052,4 @@ export {
123343
124052
  purify as y,
123344
124053
  clear$2 as z
123345
124054
  };
123346
- //# sourceMappingURL=index-D-SgXZTb.js.map
124055
+ //# sourceMappingURL=index-CCGi5dDE.js.map