forge-openclaw-plugin 0.3.17 → 0.3.19

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 (163) hide show
  1. package/dist/assets/{action-bar-D3CEYlj4.js → action-bar-B3ttL3XF.js} +1 -1
  2. package/dist/assets/{activity-page-Ce1pHIu5.js → activity-page-CoNcd0PX.js} +1 -1
  3. package/dist/assets/{ai-surface-workspace-DEliwOjF.js → ai-surface-workspace-Db34puL5.js} +1 -1
  4. package/dist/assets/artifacts-page-C09tfJTW.js +2 -0
  5. package/dist/assets/{atlas-panel-VZOnJa1c.js → atlas-panel-DRMA3RbG.js} +1 -1
  6. package/dist/assets/{board-DprRipIG.js → board-Dl7As76Q.js} +1 -1
  7. package/dist/assets/{calendar-page-Zstsn4uG.js → calendar-page-CagtpmrB.js} +1 -1
  8. package/dist/assets/{calendar-rules-BGIBuEDk.js → calendar-rules-jys-Ya5M.js} +1 -1
  9. package/dist/assets/{calendar-week-toolbar-DXFkMkbq.js → calendar-week-toolbar-DWTObcj1.js} +1 -1
  10. package/dist/assets/{charts-C5S0-BL7.js → charts-YpkKrjkZ.js} +1 -1
  11. package/dist/assets/{companion-sync-lab-page-DIPPLFKt.js → companion-sync-lab-page-COYI00E2.js} +1 -1
  12. package/dist/assets/{daily-metrics-dashboard-CG-OOCJz.js → daily-metrics-dashboard-CLoHakVX.js} +1 -1
  13. package/dist/assets/{define-workbench-box-BEEdtBkQ.js → define-workbench-box-DkTWtzNA.js} +1 -1
  14. package/dist/assets/{entity-link-multiselect-BfDAROHB.js → entity-link-multiselect-HmmmJO5A.js} +1 -1
  15. package/dist/assets/{entity-note-count-link-BGOiaash.js → entity-note-count-link-BDLj5ezr.js} +1 -1
  16. package/dist/assets/{entity-notes-surface-DPsJwqQa.js → entity-notes-surface-Csbm1myW.js} +1 -1
  17. package/dist/assets/{execution-board-Dg-2GSKv.js → execution-board-C7wYWJE4.js} +1 -1
  18. package/dist/assets/{faceted-token-search-DV7MSVYb.js → faceted-token-search-B2XWEl8j.js} +1 -1
  19. package/dist/assets/{flagship-signal-deck-D3wVL3bC.js → flagship-signal-deck-DnNN_VE1.js} +1 -1
  20. package/dist/assets/{floating-action-menu-BUs382px.js → floating-action-menu-D2Lk9TOc.js} +1 -1
  21. package/dist/assets/{forms-ByKjodjN.js → forms-DznAv9hZ.js} +1 -1
  22. package/dist/assets/{generic-node-view-BY5dbPXJ.js → generic-node-view-C_WhZXoj.js} +1 -1
  23. package/dist/assets/goal-detail-page-B395rAnv.js +1 -0
  24. package/dist/assets/{goal-dialog-nkdME5Uy.js → goal-dialog-DiEV3MyU.js} +1 -1
  25. package/dist/assets/goals-page-BNwaz0yD.js +1 -0
  26. package/dist/assets/{graph-CHVj0Z7n.js → graph-BUSFLDnl.js} +1 -1
  27. package/dist/assets/{habits-page-wO461EVU.js → habits-page-BkfbiwMJ.js} +1 -1
  28. package/dist/assets/{health-boxes-BphMeSJj.js → health-boxes-BlA33CqS.js} +1 -1
  29. package/dist/assets/index-C0CztQTU.js +2 -0
  30. package/dist/assets/index-CKnJCN1y.css +1 -0
  31. package/dist/assets/{inline-note-fields-BvQwmMAv.js → inline-note-fields-CbA0QOnc.js} +1 -1
  32. package/dist/assets/{insight-flow-dialog-H_eaOmst.js → insight-flow-dialog-DdxIE6oo.js} +1 -1
  33. package/dist/assets/{insights-page-DINYe3cB.js → insights-page-C0q_J9Hz.js} +1 -1
  34. package/dist/assets/{kanban-boxes-oACOTDYG.js → kanban-boxes-BynqbGHC.js} +1 -1
  35. package/dist/assets/{kanban-page-BGLXH91f.js → kanban-page-DyiaHH0e.js} +1 -1
  36. package/dist/assets/{knowledge-graph-page-VfMvw5jL.js → knowledge-graph-page-Cn9VkUur.js} +1 -1
  37. package/dist/assets/{life-force-page-DQPb6UL-.js → life-force-page-DQPEIj23.js} +1 -1
  38. package/dist/assets/{life-force-workspace-BJ1aI3JE.js → life-force-workspace-Db7XThH2.js} +1 -1
  39. package/dist/assets/{maps-CvEHVkBk.js → maps-CpdpZmGM.js} +1 -1
  40. package/dist/assets/{metric-tile-CbEe19Gd.js → metric-tile-sDt_l_O7.js} +1 -1
  41. package/dist/assets/{motion-BibSzp57.js → motion-eRlWWQT8.js} +1 -1
  42. package/dist/assets/{movement-boxes-dtDYhw5c.js → movement-boxes-birc_cd8.js} +1 -1
  43. package/dist/assets/{movement-page-BhmwCHjs.js → movement-page-BQllmJBm.js} +1 -1
  44. package/dist/assets/{note-markdown-CG8u2d6p.js → note-markdown-Dpve4W0R.js} +1 -1
  45. package/dist/assets/{note-tags-input-D_conqDO.js → note-tags-input-Hvi_ifLe.js} +1 -1
  46. package/dist/assets/{notes-boxes-BLKucFqW.js → notes-boxes-J-MuDr8u.js} +1 -1
  47. package/dist/assets/{notes-page-CafVxWjb.js → notes-page-uR_LafDv.js} +1 -1
  48. package/dist/assets/{open-in-graph-button-DFQ4r6SN.js → open-in-graph-button-JgYTH-IQ.js} +1 -1
  49. package/dist/assets/{orbit-map-DsEl3ori.js → orbit-map-BpNCTagm.js} +1 -1
  50. package/dist/assets/overview-page-DQB4q_vg.js +1 -0
  51. package/dist/assets/{page-hero-U603l9rQ.js → page-hero-ED69y6m0.js} +1 -1
  52. package/dist/assets/pill-cluster-DbPrs1Y4.js +1 -0
  53. package/dist/assets/{preference-entity-handoff-button-cPrTpHsV.js → preference-entity-handoff-button-NkwkWqGv.js} +1 -1
  54. package/dist/assets/{preferences-page-DQjFIOmt.js → preferences-page-BFUVjsHA.js} +1 -1
  55. package/dist/assets/{project-collections-B9OGHGqm.js → project-collections-DHXN2w-P.js} +1 -1
  56. package/dist/assets/{project-detail-page-r1Sw2kcO.js → project-detail-page-nE0M0UmN.js} +1 -1
  57. package/dist/assets/{project-dialog-B2_PcXAf.js → project-dialog-CDkUuAgl.js} +1 -1
  58. package/dist/assets/{project-management-hierarchy-page-qLNG8hsh.js → project-management-hierarchy-page-CID81NpW.js} +1 -1
  59. package/dist/assets/{project-management-section-nav-DFUlmMEB.js → project-management-section-nav-BjFavt6d.js} +1 -1
  60. package/dist/assets/{projects-boxes-BA7_XaqX.js → projects-boxes-DzGqWlhE.js} +1 -1
  61. package/dist/assets/projects-page-DpFKm_CM.js +1 -0
  62. package/dist/assets/{psyche-behaviors-page-ByWpXlLq.js → psyche-behaviors-page-CEQ2EByW.js} +1 -1
  63. package/dist/assets/{psyche-flashcards-page-B9nSc0mk.js → psyche-flashcards-page-D-g1DOS7.js} +1 -1
  64. package/dist/assets/{psyche-goal-map-page-BQU7qI88.js → psyche-goal-map-page-DbWVOpVH.js} +1 -1
  65. package/dist/assets/{psyche-graph-DCeP7r2b.js → psyche-graph-1FHrdH3f.js} +1 -1
  66. package/dist/assets/{psyche-metrics-page-DD2lOP-J.js → psyche-metrics-page-B3736p8_.js} +1 -1
  67. package/dist/assets/{psyche-mode-guide-page-DbtZgnjr.js → psyche-mode-guide-page-CjsMqDsi.js} +1 -1
  68. package/dist/assets/{psyche-modes-page-3zFJWFQf.js → psyche-modes-page-B2qzppBs.js} +1 -1
  69. package/dist/assets/{psyche-page-D5vXYkfB.js → psyche-page-BEPP2B13.js} +1 -1
  70. package/dist/assets/{psyche-patterns-page-BneAAeKS.js → psyche-patterns-page-CWeNeX2P.js} +2 -2
  71. package/dist/assets/{psyche-questionnaire-builder-page-BH1la5C9.js → psyche-questionnaire-builder-page-QFg9LkM0.js} +1 -1
  72. package/dist/assets/{psyche-questionnaire-detail-page-DYav634P.js → psyche-questionnaire-detail-page-D67EJ1D5.js} +1 -1
  73. package/dist/assets/psyche-questionnaire-run-detail-page-C1KsEy8T.js +1 -0
  74. package/dist/assets/{psyche-questionnaire-run-page-e1T6k_dS.js → psyche-questionnaire-run-page-CB3rSTAX.js} +1 -1
  75. package/dist/assets/{psyche-questionnaires-page-Dyv367z9.js → psyche-questionnaires-page-wU3bZws7.js} +1 -1
  76. package/dist/assets/{psyche-report-detail-page-hqxHIXw2.js → psyche-report-detail-page-DI3jE820.js} +3 -3
  77. package/dist/assets/{psyche-reports-page-DhIfcGbt.js → psyche-reports-page-aUbgZ_12.js} +1 -1
  78. package/dist/assets/{psyche-schemas-Cg51Ztxz.js → psyche-schemas-B00gm5HO.js} +1 -1
  79. package/dist/assets/{psyche-schemas-beliefs-page-Dgb5o9vx.js → psyche-schemas-beliefs-page-C_PMXwjL.js} +2 -2
  80. package/dist/assets/{psyche-screen-time-page-D6MnJGNa.js → psyche-screen-time-page-CMIgDG-3.js} +1 -1
  81. package/dist/assets/{psyche-self-observation-page-C1Vyezbv.js → psyche-self-observation-page-DC3orZgf.js} +1 -1
  82. package/dist/assets/{psyche-values-page-B_JWVw1Q.js → psyche-values-page-CPdKfTdl.js} +2 -2
  83. package/dist/assets/{question-flow-dialog-yMYVk998.js → question-flow-dialog-B4B3BI8e.js} +2 -2
  84. package/dist/assets/{report-chain-fields-D4NM9a6I.js → report-chain-fields-D-XNut8V.js} +1 -1
  85. package/dist/assets/rewards-page-D8w07BIZ.js +1 -0
  86. package/dist/assets/{scheduling-rules-editor-De72IUax.js → scheduling-rules-editor-Cn6t-RRn.js} +1 -1
  87. package/dist/assets/{schema-badge-jX28kUa6.js → schema-badge-Dsk9AoYd.js} +1 -1
  88. package/dist/assets/{schemas-BlFy-uPR.js → schemas-3GS34K1i.js} +1 -1
  89. package/dist/assets/{select-menu-BXv1rsVc.js → select-menu-BDeaaa4m.js} +1 -1
  90. package/dist/assets/{settings-agents-page-DN_np10S.js → settings-agents-page-CkS4s4kN.js} +2 -2
  91. package/dist/assets/settings-bin-page-BHlW0n-a.js +1 -0
  92. package/dist/assets/{settings-calendar-page-Cg0gSSFs.js → settings-calendar-page-BAmKOPeT.js} +1 -1
  93. package/dist/assets/{settings-data-page-Dwmp2rLy.js → settings-data-page-C-VrzHGq.js} +1 -1
  94. package/dist/assets/{settings-logs-page-DQNM21Re.js → settings-logs-page-CnVuzJ7d.js} +1 -1
  95. package/dist/assets/{settings-mobile-page-DQdiRa-a.js → settings-mobile-page-0SWGg6CE.js} +1 -1
  96. package/dist/assets/settings-models-page-BjVixsws.js +1 -0
  97. package/dist/assets/{settings-page-Cl2KiCFg.js → settings-page-DVZ58c3R.js} +1 -1
  98. package/dist/assets/settings-rewards-page-Df0ONVFq.js +1 -0
  99. package/dist/assets/{settings-section-nav-D_N87IG0.js → settings-section-nav-Btjx5m2u.js} +1 -1
  100. package/dist/assets/settings-users-page-Cl0YuOOI.js +1 -0
  101. package/dist/assets/{settings-wiki-page-BxMQM5Vi.js → settings-wiki-page-K8KBzeYx.js} +1 -1
  102. package/dist/assets/{sleep-page-DUYmQKrg.js → sleep-page-BFj8hcTf.js} +1 -1
  103. package/dist/assets/{sports-page-Bzi5TF9T.js → sports-page-7yta1r8s.js} +1 -1
  104. package/dist/assets/{state-BFyKSULP.js → state-CkEUXgqt.js} +1 -1
  105. package/dist/assets/{strategies-page-C-T2MZx4.js → strategies-page-BQoWnPtN.js} +1 -1
  106. package/dist/assets/strategy-detail-page-D9DTQoyy.js +1 -0
  107. package/dist/assets/strategy-dialog-z9w2UB3s.js +1 -0
  108. package/dist/assets/{surface-BJObZeRw.js → surface-BL_bDiZ5.js} +1 -1
  109. package/dist/assets/{table-CTLroJKN.js → table--SK_dk4S.js} +1 -1
  110. package/dist/assets/{task-detail-page-ZZOXSpSF.js → task-detail-page-RcbvVzXn.js} +1 -1
  111. package/dist/assets/{task-dialog-2wy0xI7f.js → task-dialog-ri1qEzPp.js} +4 -4
  112. package/dist/assets/timebox-planning-dialog-DoeeGwCm.js +1 -0
  113. package/dist/assets/{today-boxes-B_TdgSDz.js → today-boxes-CTw0D5JP.js} +1 -1
  114. package/dist/assets/today-page-5-qRLbBt.js +1 -0
  115. package/dist/assets/{training-load-page-B78e1-o-.js → training-load-page-DrGnOtnH.js} +1 -1
  116. package/dist/assets/{ui-uo_bNP7c.js → ui-CDt36qNz.js} +1 -1
  117. package/dist/assets/{use-anchored-overlay-position-BSxFX6Hi.js → use-anchored-overlay-position-C2kg0Ay0.js} +1 -1
  118. package/dist/assets/{use-psyche-focus-target-1GLkhYiv.js → use-psyche-focus-target-p2l8W-Af.js} +1 -1
  119. package/dist/assets/{user-badge-C4eZu1e_.js → user-badge-BWoSrGA-.js} +1 -1
  120. package/dist/assets/{user-select-field-CmKwcbZt.js → user-select-field-DbB9v7Lf.js} +1 -1
  121. package/dist/assets/{utility-widgets-B06wQFrd.js → utility-widgets-fodvUR7I.js} +2 -2
  122. package/dist/assets/{vendor-B7FKSwHK.js → vendor-Dgw7UY7q.js} +1 -1
  123. package/dist/assets/{vitals-page-BC7QFsm2.js → vitals-page-f8QdPdpp.js} +1 -1
  124. package/dist/assets/{weekly-review-page-BjNsNoWj.js → weekly-review-page-D0wPiQgO.js} +1 -1
  125. package/dist/assets/{weight-loss-page-BOahGY9r.js → weight-loss-page-BT9dPxYi.js} +1 -1
  126. package/dist/assets/{wiki-article-markdown-DO47HnZf.js → wiki-article-markdown-Hyu5JwrY.js} +1 -1
  127. package/dist/assets/{wiki-editor-page-OWRUHl4O.js → wiki-editor-page-ujqNw8ua.js} +3 -3
  128. package/dist/assets/{wiki-ingest-history-page-CuHpg2lZ.js → wiki-ingest-history-page-BwoDT00-.js} +1 -1
  129. package/dist/assets/{wiki-ingest-modal-EZ3kX-vA.js → wiki-ingest-modal-cvnNma0M.js} +1 -1
  130. package/dist/assets/{wiki-page-BPV3HIgu.js → wiki-page-jHyJ7EgO.js} +1 -1
  131. package/dist/assets/{workbench-flow-page-C53KueEz.js → workbench-flow-page-DJD5sXMF.js} +1 -1
  132. package/dist/assets/{workbench-page-DJ7nT2JQ.js → workbench-page-Ci0xh6rG.js} +1 -1
  133. package/dist/assets/{workout-detail-page-Dhyu0q7o.js → workout-detail-page-DA30ubtE.js} +2 -2
  134. package/dist/index.html +8 -8
  135. package/dist/openclaw/tools.js +1 -1
  136. package/dist/server/apps/api/migrations/073_artifact_entity_links_repair.sql +24 -0
  137. package/dist/server/apps/api/src/app.js +26 -8
  138. package/dist/server/apps/api/src/openapi.js +103 -24
  139. package/dist/server/apps/api/src/services/artifacts.js +138 -68
  140. package/dist/server/apps/web/src/lib/api.js +3 -0
  141. package/openclaw.plugin.json +1 -1
  142. package/package.json +1 -1
  143. package/server/migrations/073_artifact_entity_links_repair.sql +24 -0
  144. package/skills/forge-openclaw/SKILL.md +7 -5
  145. package/skills/forge-openclaw/entity_conversation_playbooks.md +14 -9
  146. package/dist/assets/artifacts-page-BgyFVIVM.js +0 -2
  147. package/dist/assets/goal-detail-page-MYr6j2B4.js +0 -1
  148. package/dist/assets/goals-page-BsFeBzU1.js +0 -1
  149. package/dist/assets/index-CSd8ylsy.css +0 -1
  150. package/dist/assets/index-gmPaoLN-.js +0 -2
  151. package/dist/assets/overview-page-BffcX-pM.js +0 -1
  152. package/dist/assets/pill-cluster-BYVFNppV.js +0 -1
  153. package/dist/assets/projects-page-B6ggXWFw.js +0 -1
  154. package/dist/assets/psyche-questionnaire-run-detail-page-9VaijhJm.js +0 -1
  155. package/dist/assets/rewards-page-B5-bcL4R.js +0 -1
  156. package/dist/assets/settings-bin-page-BM5BpK_i.js +0 -1
  157. package/dist/assets/settings-models-page-CAEPpuHF.js +0 -1
  158. package/dist/assets/settings-rewards-page-DoIUumhe.js +0 -1
  159. package/dist/assets/settings-users-page-CPesR62N.js +0 -1
  160. package/dist/assets/strategy-detail-page-3tYuSZu-.js +0 -1
  161. package/dist/assets/strategy-dialog-BWm4slo4.js +0 -1
  162. package/dist/assets/timebox-planning-dialog-C6h0Hp71.js +0 -1
  163. package/dist/assets/today-page-Dipns9tl.js +0 -1
@@ -1 +1 @@
1
- import{b7 as be,r as p,j as o,bV as ge,b8 as ee,bW as ye,bX as xe,aV as te,bx as ve,aS as re,bw as ae,bY as oe,bn as ke,bv as we,aH as Te,bb as Ne,aL as je,aZ as Pe,bp as _e,aP as Ce,bk as Re,aU as Be,aE as Le}from"./vendor-B7FKSwHK.js";import{R as Se,P as Ae,O as Ie,C as $e,T as Ee,D as Me}from"./ui-uo_bNP7c.js";import{i as Fe}from"./state-BFyKSULP.js";import{E as qe}from"./entity-link-multiselect-BfDAROHB.js";import{g as X,u as We,I as De,E as Ue,c as R,a as Ke,b as ze,s as He}from"./index-gmPaoLN-.js";import{f as k}from"./user-ownership-DJGl4rAj.js";import"./use-anchored-overlay-position-BSxFX6Hi.js";import"./motion-BibSzp57.js";import"./board-DprRipIG.js";import"./forms-ByKjodjN.js";const Ge=["goal","project","task","strategy","habit","note","insight","calendar_event","work_block_template","task_timebox","psyche_value","behavior_pattern","behavior","belief_entry","mode_profile","flashcard","trigger_report"];function q(r){return r.map(t=>(t==null?void 0:t.trim())??"").filter(Boolean)}function d(r){return typeof r=="string"&&r.trim().length>0?r.trim():null}function Ve(r){if(!r||typeof r!="object")return null;const t=r,i=d(t.id),n=d(t.kind),c=d(t.displayName);return!i||!c||n!=="human"&&n!=="bot"?null:{id:i,kind:n,displayName:c,handle:d(t.handle)??"",description:d(t.description)??"",accentColor:d(t.accentColor)??"",createdAt:d(t.createdAt)??"",updatedAt:d(t.updatedAt)??""}}function Oe(r){return r==="create"||r==="new"||r.startsWith("create ")||r.startsWith("new ")}function Ye(r){return r==="create"||r==="new"?"":r.startsWith("create ")?r.slice(7).trim():r.startsWith("new ")?r.slice(4).trim():null}function A(r){return r.trim().toLowerCase()}function Qe(r,t){return r==="note"?X(r,{noteKind:d(t==null?void 0:t.kind)==="wiki"?"wiki":"evidence"}):X(r)}function M(r,t){switch(r){case"goal":return"Goal";case"project":return"Project";case"task":return"Task";case"strategy":return"Strategy";case"habit":return"Habit";case"note":return d(t==null?void 0:t.kind)==="wiki"?"Wiki page":"Note";case"insight":return"Insight";case"calendar_event":return"Calendar event";case"work_block_template":return"Work block";case"task_timebox":return"Timebox";case"psyche_value":return"Value";case"behavior_pattern":return"Pattern";case"behavior":return"Behavior";case"belief_entry":return"Belief";case"mode_profile":return"Mode";case"flashcard":return"Flashcard";case"trigger_report":return"Report";default:return r.replaceAll("_"," ")}}const J=[{id:"goal",family:"entity-type",label:"Goal",kind:"goal",searchText:"goal life goal direction",entityTypes:["goal"]},{id:"project",family:"entity-type",label:"Project",kind:"project",searchText:"project initiative",entityTypes:["project"]},{id:"task",family:"entity-type",label:"Task",kind:"task",searchText:"task action work item",entityTypes:["task"]},{id:"strategy",family:"entity-type",label:"Strategy",kind:"strategy",searchText:"strategy plan sequence roadmap",entityTypes:["strategy"]},{id:"habit",family:"entity-type",label:"Habit",kind:"habit",searchText:"habit recurring routine",entityTypes:["habit"]},{id:"note",family:"entity-type",label:"Note",kind:"note",searchText:"note evidence scratch note",entityTypes:["note"]},{id:"wiki_page",family:"entity-type",label:"Wiki page",kind:"wiki_page",searchText:"wiki page karpawiki article knowledge page",entityTypes:["note"]},{id:"calendar_event",family:"entity-type",label:"Calendar event",kind:"calendar_event",searchText:"calendar event meeting block schedule",entityTypes:["calendar_event"]},{id:"psyche_value",family:"entity-type",label:"Value",kind:"value",searchText:"value psyche value",entityTypes:["psyche_value"]},{id:"behavior_pattern",family:"entity-type",label:"Pattern",kind:"pattern",searchText:"pattern loop psyche pattern",entityTypes:["behavior_pattern"]},{id:"behavior",family:"entity-type",label:"Behavior",kind:"behavior",searchText:"behavior psyche behavior",entityTypes:["behavior"]},{id:"belief_entry",family:"entity-type",label:"Belief",kind:"belief",searchText:"belief schema belief entry",entityTypes:["belief_entry"]},{id:"mode_profile",family:"entity-type",label:"Mode",kind:"mode",searchText:"mode profile psyche mode",entityTypes:["mode_profile"]},{id:"flashcard",family:"entity-type",label:"Flashcard",kind:"flashcard",searchText:"flashcard card urge trigger reminder psyche",entityTypes:["flashcard"]},{id:"trigger_report",family:"entity-type",label:"Report",kind:"report",searchText:"report trigger report psyche report",entityTypes:["trigger_report"]}];function se(r,t){return(r==="belief_entry"?[t.statement,t.title,t.name]:r==="flashcard"?[t.title,t.message,t.triggerSentence]:r==="note"?[t.title,t.slug]:[t.title,t.displayName,t.statement,t.name,t.label,t.slug]).map(d).find(Boolean)??`${M(r,t)} ${String(t.id??"")}`}function ne(r,t){const i=[t.summary,t.description,t.overview,t.flexibleAlternative,t.originNote,t.endState,t.whyItMatters,t.valuedDirection,t.triggerSentence,t.triggerSituation,t.contentPlain].map(d).find(Boolean),n=[t.goalTitle,t.projectTitle,t.status,t.kind].map(d).find(Boolean),c=k(Ve(t.user)),u=q([r==="note"?M(r,t):null,c||null]).join(" · ");return q([i,n,c||null]).join(" · ")||u}function Ze(r,t){return q([se(r,t),ne(r,t),M(r,t),d(t.slug),d(t.handle)]).join(" ").toLowerCase()}function Xe(r,t,i){switch(r){case"goal":return`/goals/${encodeURIComponent(t)}`;case"project":return`/projects/${encodeURIComponent(t)}`;case"task":return`/tasks/${encodeURIComponent(t)}`;case"strategy":return`/strategies/${encodeURIComponent(t)}`;case"habit":return`/habits?focus=${encodeURIComponent(t)}`;case"note":{const n=d(i.kind),c=d(i.slug),u=d(i.spaceId);if(n==="wiki"&&c){const e=u?`?spaceId=${encodeURIComponent(u)}`:"";return`/wiki/page/${encodeURIComponent(c)}${e}`}return"/notes"}case"insight":return"/insights";case"calendar_event":case"work_block_template":case"task_timebox":return"/calendar";case"psyche_value":return`/psyche/values?focus=${encodeURIComponent(t)}`;case"behavior_pattern":return`/psyche/patterns?focus=${encodeURIComponent(t)}`;case"behavior":return`/psyche/behaviors?focus=${encodeURIComponent(t)}`;case"belief_entry":return`/psyche/schemas-beliefs?focus=${encodeURIComponent(t)}`;case"mode_profile":return`/psyche/modes?focus=${encodeURIComponent(t)}`;case"flashcard":return`/psyche/flashcards?focus=${encodeURIComponent(t)}`;case"trigger_report":return`/psyche/reports/${encodeURIComponent(t)}`;default:return null}}function W(r,t,i){const n=A(r);if(!n)return 0;const c=A(t),u=A(i),e=n.split(/\s+/).filter(Boolean);let h=0;c===n&&(h+=400),c.startsWith(n)&&(h+=240),c.includes(n)&&(h+=180),u.startsWith(n)&&(h+=32),u.includes(n)&&(h+=20);for(const j of e)c.startsWith(j)?h+=36:c.includes(j)&&(h+=24),u.includes(j)&&(h+=12);return h}function ie(r){if(r.length===0)return Ge;const t=new Set;return r.forEach(i=>{i.entityTypes.forEach(n=>t.add(n))}),Array.from(t)}function Je(r,t,i){if(!r.entityTypes.includes(t))return!1;if(t!=="note")return!0;const n=d(i.kind);return r.id==="wiki_page"?n==="wiki":r.id==="note"?n!=="wiki":!0}function et(r,t,i){if(i.length===0)return!0;const n=new Map;i.forEach(c=>{const u=n.get(c.family)??[];u.push(c),n.set(c.family,u)});for(const c of n.values())if(!c.some(e=>Je(e,r,t)))return!1;return!0}function tt(r,t){if(t.length===0)return!0;const i=new Set(t.filter(n=>n.family==="entity-type").map(n=>n.id));return i.size===0?!0:r.filterIds.some(n=>i.has(n))}function rt(r,t){const i=A(r);if(!Oe(i))return[];const n=Ye(i);return n===null?[]:t.map(c=>{const u=[c.title,c.quickActionTitle,c.description,...c.aliases].join(" ").toLowerCase(),e=n.length===0?1:W(n,c.quickActionTitle,u);return{...c,score:e}}).filter(c=>c.score>0).sort((c,u)=>u.score-c.score||c.quickActionTitle.localeCompare(u.quickActionTitle))}const at=new Set(ie([]));function ot(r){return typeof r=="string"&&at.has(r)}function l(r,t){const i=t??ee;switch(r){case"action":return{icon:oe,tileClassName:"border-emerald-300/18 bg-emerald-300/12 text-emerald-100 shadow-[0_18px_36px_rgba(52,211,153,0.12)]",badgeClassName:"border-emerald-300/18 bg-emerald-300/10 text-emerald-100"};case"wiki":return{icon:ae,tileClassName:"border-blue-300/18 bg-blue-300/12 text-blue-100 shadow-[0_18px_36px_rgba(96,165,250,0.12)]",badgeClassName:"border-blue-300/18 bg-blue-300/10 text-blue-100"};case"note":return{icon:re,tileClassName:"border-amber-300/18 bg-amber-300/12 text-amber-100 shadow-[0_18px_36px_rgba(251,191,36,0.12)]",badgeClassName:"border-amber-300/18 bg-amber-300/10 text-amber-100"};case"insight":return{icon:ve,tileClassName:"border-emerald-300/18 bg-emerald-300/12 text-emerald-100 shadow-[0_18px_36px_rgba(52,211,153,0.12)]",badgeClassName:"border-emerald-300/18 bg-emerald-300/10 text-emerald-100"};case"calendar":return{icon:te,tileClassName:"border-cyan-300/18 bg-cyan-300/12 text-cyan-100 shadow-[0_18px_36px_rgba(34,211,238,0.12)]",badgeClassName:"border-cyan-300/18 bg-cyan-300/10 text-cyan-100"};case"route":return{icon:i,tileClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-medium)] shadow-[var(--ui-shadow-soft)]",badgeClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-soft)]"};default:return{icon:i,tileClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-medium)] shadow-[var(--ui-shadow-soft)]",badgeClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-soft)]"}}}function st({item:r}){if(r.kind){const n=Ke(r.kind),c=n.icon;return o.jsx("span",{className:R("mt-0.5 inline-flex size-11 shrink-0 items-center justify-center rounded-[17px] border",n.subtleBadgeClassName),children:o.jsx(c,{className:R("size-5",n.iconClassName)})})}const t=l("search",r.icon),i=r.icon??t.icon;return o.jsx("span",{className:R("mt-0.5 inline-flex size-11 shrink-0 items-center justify-center rounded-[17px] border",r.tileClassName??t.tileClassName),children:o.jsx(i,{className:"size-5"})})}function nt({item:r}){if(r.kind&&r.section==="results")return o.jsx(ze,{kind:r.kind,label:r.category,compact:!0,gradient:!1});const t=l(r.section==="quick-actions"?"action":"search",r.icon),i=r.icon??t.icon;return o.jsxs("span",{className:R("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[11px] font-medium",r.badgeClassName??t.badgeClassName),children:[o.jsx(i,{className:"size-3.5"}),r.category]})}function f(r,t,i){return`${r} ${t} ${i}`.trim().toLowerCase()}function gt({open:r,onOpenChange:t,snapshot:i,selectedUserIds:n,createActions:c}){var O;const u=be(),{t:e}=We(),h=p.useRef([]),[j,D]=p.useState(""),[B,P]=p.useState(0),[L,U]=p.useState([]),N=p.useDeferredValue(j),y=A(N),b=p.useMemo(()=>J.filter(a=>L.includes(a.id)),[L]);p.useEffect(()=>{r||(D(""),P(0),U([]))},[r]);const ce=p.useMemo(()=>J.map(a=>({value:a.id,label:a.label,description:a.id==="wiki_page"?"Search only KarpaWiki pages.":a.id==="note"?"Search notes and evidence that are not wiki pages.":`Search ${a.label.toLowerCase()} records.`,searchText:a.searchText,kind:a.kind})),[]),le=p.useMemo(()=>({routes:e("common.actionBar.sections.routes"),recent:e("common.actionBar.sections.recent"),"quick-actions":e("common.actionBar.sections.quickActions"),results:e("common.actionBar.sections.results")}),[e]),I=p.useMemo(()=>[{id:"route-overview",title:e("common.routeLabels.overview"),detail:e("common.commandPalette.routeOverview"),href:"/overview",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.overview"),e("common.commandPalette.routeOverview"),e("common.commandPalette.categoryRoute")),score:0,...l("route",ke)},{id:"route-today",title:e("common.routeLabels.today"),detail:e("common.commandPalette.routeToday"),href:"/today",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.today"),e("common.commandPalette.routeToday"),e("common.commandPalette.categoryRoute")),score:0,...l("route",we)},{id:"route-kanban",title:e("common.routeLabels.kanban"),detail:e("common.commandPalette.routeKanban"),href:"/kanban",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.kanban"),e("common.commandPalette.routeKanban"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Te)},{id:"route-psyche",title:e("common.routeLabels.psyche"),detail:e("common.commandPalette.routePsyche"),href:"/psyche",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.psyche"),e("common.commandPalette.routePsyche"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Ne)},{id:"route-notes",title:e("common.routeLabels.notes"),detail:e("common.commandPalette.routeNotes"),href:"/notes",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.notes"),e("common.commandPalette.routeNotes"),e("common.commandPalette.categoryRoute")),score:0,...l("route",re)},{id:"route-wiki",title:e("common.routeLabels.wiki"),detail:e("common.commandPalette.routeWiki"),href:"/wiki",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.wiki"),e("common.commandPalette.routeWiki"),e("common.commandPalette.categoryRoute")),score:0,...l("route",ae)},{id:"route-goals",title:e("common.routeLabels.goals"),detail:e("common.commandPalette.routeGoals"),href:"/goals",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.goals"),e("common.commandPalette.routeGoals"),e("common.commandPalette.categoryRoute")),score:0,...l("route",je)},{id:"route-habits",title:e("common.routeLabels.habits"),detail:e("common.commandPalette.routeHabits"),href:"/habits",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.habits"),e("common.commandPalette.routeHabits"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Pe)},{id:"route-projects",title:e("common.routeLabels.projects"),detail:e("common.commandPalette.routeProjects"),href:"/projects",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.projects"),e("common.commandPalette.routeProjects"),e("common.commandPalette.categoryRoute")),score:0,...l("route",_e)},{id:"route-strategies",title:e("common.routeLabels.strategies"),detail:e("common.commandPalette.routeStrategies"),href:"/strategies",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.strategies"),e("common.commandPalette.routeStrategies"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Ce)},{id:"route-preferences",title:e("common.routeLabels.preferences"),detail:e("common.commandPalette.routePreferences"),href:"/preferences",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.preferences"),e("common.commandPalette.routePreferences"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Re)},{id:"route-calendar",title:e("common.routeLabels.calendar"),detail:e("common.commandPalette.routeCalendar"),href:"/calendar",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.calendar"),e("common.commandPalette.routeCalendar"),e("common.commandPalette.categoryRoute")),score:0,...l("route",te)},{id:"route-knowledge-graph",title:"Knowledge Graph",detail:"Open the world model and graph views for Forge.",href:"/knowledge-graph",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f("Knowledge Graph","Open the world model and graph views for Forge.",e("common.commandPalette.categoryRoute")),score:0,...l("route",Be)},{id:"route-settings",title:e("common.routeLabels.settings"),detail:e("common.commandPalette.routeSettings"),href:"/settings",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.settings"),e("common.commandPalette.routeSettings"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Le)}],[e]),K=p.useMemo(()=>{const a=[...i.overview.topTasks.slice(0,4).map(s=>({id:`task-${s.id}`,title:s.title,detail:k(s.user)||e("common.commandPalette.openFocusTask"),href:`/tasks/${s.id}`,category:e("common.commandPalette.categoryTask"),section:"recent",searchText:`${s.title} ${k(s.user)}`.toLowerCase(),score:0,kind:"task"})),...i.dashboard.projects.slice(0,3).map(s=>({id:`project-${s.id}`,title:s.title,detail:[s.goalTitle,k(s.user)].filter(Boolean).join(" · "),href:`/projects/${s.id}`,category:e("common.commandPalette.categoryProject"),section:"recent",searchText:`${s.title} ${s.goalTitle??""} ${k(s.user)}`.toLowerCase(),score:0,kind:"project"})),...i.overview.activeGoals.slice(0,2).map(s=>({id:`goal-${s.id}`,title:s.title,detail:k(s.user)||e("common.commandPalette.openLifeGoal"),href:`/goals/${s.id}`,category:e("common.commandPalette.categoryGoal"),section:"recent",searchText:`${s.title} ${k(s.user)}`.toLowerCase(),score:0,kind:"goal"})),...i.dashboard.habits.slice(0,2).map(s=>({id:`habit-${s.id}`,title:s.title,detail:[s.frequency==="daily"?"Daily habit":"Weekly habit",k(s.user)].filter(Boolean).join(" · "),href:`/habits?focus=${s.id}`,category:e("common.routeLabels.habits"),section:"recent",searchText:`${s.title} ${s.frequency} ${k(s.user)}`.toLowerCase(),score:0,kind:"habit"}))].slice(0,8);return[...I.slice(0,6),...a]},[I,i,e]),$=Fe({queryKey:["forge-action-bar-search",y,[...L].sort().join("|"),[...n].sort().join("|")],enabled:r&&(y.length>0||b.length>0),queryFn:async()=>{const a=ie(b),s=await He({searches:a.map(g=>({entityTypes:[g],query:N.trim()||void 0,userIds:n.length>0?n:void 0,limit:g==="note"?6:4,clientRef:g}))}),x=new Map;for(const g of s.results){const w=Array.isArray(g.matches)?g.matches??[]:[];for(const S of w){if(!S||typeof S!="object")continue;const m=S;if(!ot(m.entityType)||typeof m.id!="string"||!m.entity||typeof m.entity!="object")continue;const T=m.entity;if(!et(m.entityType,T,b))continue;const Y=Xe(m.entityType,m.id,T);if(!Y)continue;const Q=se(m.entityType,T),de=ne(m.entityType,T),pe=M(m.entityType,T),Z=Ze(m.entityType,T),fe=Qe(m.entityType,T)??void 0,he=y.length>0?W(N,Q,Z):0;let _=l("search");m.entityType==="note"?_=l(T.kind==="wiki"?"wiki":"note"):m.entityType==="insight"?_=l("insight"):(m.entityType==="calendar_event"||m.entityType==="task_timebox"||m.entityType==="work_block_template")&&(_=l("calendar"));const C={id:`${m.entityType}-${m.id}`,title:Q,detail:de,href:Y,category:pe,section:"results",searchText:Z,score:he,kind:fe,icon:_.icon,tileClassName:_.tileClassName,badgeClassName:_.badgeClassName},E=x.get(C.id);(!E||C.score>E.score||C.score===E.score&&C.title<E.title)&&x.set(C.id,C)}}return Array.from(x.values()).sort((g,w)=>w.score!==g.score?w.score-g.score:g.title.localeCompare(w.title)).slice(0,12)}}),z=p.useMemo(()=>y?I.map(a=>({...a,score:W(N,a.title,a.searchText)})).filter(a=>a.score>0).sort((a,s)=>s.score-a.score||a.title.localeCompare(s.title)).slice(0,4):[],[N,y,I]),H=p.useMemo(()=>rt(N,c).filter(a=>tt(a,b)).slice(0,6).map(a=>({id:`quick-${a.id}`,title:a.quickActionTitle,detail:a.description,category:"Quick action",section:"quick-actions",searchText:`${a.quickActionTitle} ${a.description} ${a.aliases.join(" ")}`.toLowerCase(),score:a.score,onSelect:a.onSelect,...l("action",oe)})),[c,N,b]),v=p.useMemo(()=>{if(!y&&b.length===0)return K;const a=[...H,...z],s=new Set(a.map(x=>x.id));for(const x of $.data??[])s.has(x.id)||(s.add(x.id),a.push(x));return a.slice(0,16)},[K,$.data,y,H,z,b.length]);p.useEffect(()=>{P(0)},[y,r,L.join("|")]),p.useEffect(()=>{v.length!==0&&P(a=>Math.min(Math.max(a,0),v.length-1))},[v]),p.useEffect(()=>{const a=h.current[B];a==null||a.scrollIntoView({block:"nearest"})},[B]);const G=v[B]??null,F=i.users.filter(a=>n.includes(a.id)),me=n.length===0?"All humans and bots":F.length===1?((O=F[0])==null?void 0:O.displayName)??"1 selected owner":`${F.length||n.length} selected owners`,ue=(y.length>0||b.length>0)&&$.isFetching,V=a=>{if(t(!1),a.onSelect){a.onSelect();return}a.href&&u(a.href)};return o.jsx(Se,{open:r,onOpenChange:t,children:o.jsxs(Ae,{children:[o.jsx(Ie,{className:"surface-overlay fixed inset-0 z-40 backdrop-blur-xl"}),o.jsxs($e,{className:"surface-modal-panel fixed inset-x-3 bottom-3 top-3 z-50 flex flex-col overflow-hidden rounded-[30px] border sm:inset-x-6 sm:bottom-6 sm:top-6 md:left-1/2 md:right-auto md:top-[9vh] md:h-[min(82vh,48rem)] md:w-[min(64rem,calc(100vw-2rem))] md:-translate-x-1/2 md:bottom-auto",children:[o.jsx(Ee,{className:"sr-only",children:e("common.actionBar.title")}),o.jsx(Me,{className:"sr-only",children:e("common.actionBar.description")}),o.jsxs("div",{className:"border-b border-[var(--ui-border-subtle)] px-4 py-4 sm:px-5",children:[o.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-3 py-1.5 text-[12px] text-[var(--ui-ink-medium)]",children:[o.jsx("span",{className:"rounded-full bg-[var(--ui-surface-2)] px-2 py-0.5 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Scope"}),o.jsx("span",{children:me})]}),b.length>0?o.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-3 py-1.5 text-[12px] text-[var(--ui-ink-medium)]",children:[o.jsx(ge,{className:"size-3.5 text-[var(--ui-ink-faint)]"}),o.jsxs("span",{children:[b.length," filter",b.length===1?"":"s"]})]}):null]}),o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:[o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Shift Shift"}),o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Cmd/Ctrl K"})]})]}),o.jsxs("div",{className:"mt-4 rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)] px-4 py-4 shadow-[inset_0_1px_0_var(--ui-border-subtle)]",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(ee,{className:"size-5 text-[var(--ui-ink-faint)]"}),o.jsx(De,{autoFocus:!0,value:j,onChange:a=>D(a.target.value),onKeyDown:a=>{if(a.key==="ArrowDown"){a.preventDefault(),P(s=>v.length===0?0:Math.min(s+1,v.length-1));return}if(a.key==="ArrowUp"){a.preventDefault(),P(s=>Math.max(s-1,0));return}if(a.key==="Enter"&&G){a.preventDefault(),V(G);return}a.key==="Escape"&&(a.preventDefault(),t(!1))},placeholder:e("common.actionBar.searchPlaceholder"),className:"border-0 bg-transparent px-0 py-0 text-[1rem] focus:border-0"}),ue?o.jsx(ye,{className:"size-4 shrink-0 animate-spin text-[var(--ui-ink-faint)]"}):null]}),o.jsx("div",{className:"mt-2 pl-8 text-[13px] leading-6 text-[var(--ui-ink-soft)]",children:e(y?"common.actionBar.activeHint":"common.actionBar.idleHint")}),o.jsxs("div",{className:"mt-4 border-t border-[var(--ui-border-subtle)] pt-4",children:[o.jsx("div",{className:"mb-2 pl-1 text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:e("common.actionBar.filtersLabel")}),o.jsx(qe,{options:ce,selectedValues:L,onChange:U,placeholder:e("common.actionBar.filtersPlaceholder"),emptyMessage:e("common.actionBar.filtersEmpty"),variant:"action-bar"})]})]})]}),o.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3 sm:px-4",children:v.length===0?o.jsx("div",{className:"rounded-[24px] border border-dashed border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-4 py-8 text-center text-sm text-[var(--ui-ink-soft)]",children:$.isFetching?e("common.actionBar.searching"):b.length>0?e("common.actionBar.noResultsWithFilters"):e("common.actionBar.noResults")}):o.jsx("div",{className:"grid gap-2",children:v.map((a,s)=>{var w;const g=(((w=v[s-1])==null?void 0:w.section)??null)!==a.section;return o.jsxs("div",{children:[g?o.jsx("div",{className:"px-2 pb-1 pt-2 text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)] first:pt-0",children:le[a.section]}):null,o.jsxs("button",{ref:S=>{h.current[s]=S},type:"button",className:R("group flex w-full items-start gap-3 rounded-[24px] border px-4 py-3.5 text-left transition",s===B?"border-[var(--ui-border-strong)] bg-[var(--ui-surface-3)] shadow-[var(--ui-shadow-soft)]":"border-transparent bg-[var(--ui-surface-1)] hover:border-[var(--ui-border-subtle)] hover:bg-[var(--ui-surface-hover)]"),onMouseEnter:()=>P(s),onClick:()=>V(a),children:[o.jsx(st,{item:a}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"flex flex-wrap items-center gap-2",children:o.jsx(nt,{item:a})}),o.jsx("div",{className:"mt-2 text-[15px] font-medium text-[var(--ui-ink-strong)]",children:a.kind&&a.section==="results"?o.jsx(Ue,{kind:a.kind,label:a.title,showIcon:!1,labelClassName:"text-[var(--ui-ink-strong)]"}):a.title}),o.jsx("div",{className:"mt-1 text-sm leading-6 text-[var(--ui-ink-soft)]",children:a.detail})]}),o.jsx(xe,{className:R("mt-1 size-4 shrink-0 transition",s===B?"text-[var(--ui-ink-medium)]":"text-[var(--ui-ink-faint)] group-hover:text-[var(--ui-ink-soft)]")})]})]},a.id)})})}),o.jsx("div",{className:"border-t border-[var(--ui-border-subtle)] px-4 py-3 sm:px-5",children:o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-[12px] text-[var(--ui-ink-faint)]",children:[o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Up/Down navigate"}),o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Enter open"}),o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Esc close"})]})})]})]})})}export{gt as ActionBar};
1
+ import{b7 as be,r as p,j as o,bV as ge,b8 as ee,bW as ye,bX as xe,aV as te,bx as ve,aS as re,bw as ae,bY as oe,bn as ke,bv as we,aH as Te,bb as Ne,aL as je,aZ as Pe,bp as _e,aP as Ce,bk as Re,aU as Be,aE as Le}from"./vendor-Dgw7UY7q.js";import{R as Se,P as Ae,O as Ie,C as $e,T as Ee,D as Me}from"./ui-CDt36qNz.js";import{i as Fe}from"./state-CkEUXgqt.js";import{E as qe}from"./entity-link-multiselect-HmmmJO5A.js";import{g as X,u as We,I as De,E as Ue,c as R,a as Ke,b as ze,s as He}from"./index-C0CztQTU.js";import{f as k}from"./user-ownership-DJGl4rAj.js";import"./use-anchored-overlay-position-C2kg0Ay0.js";import"./motion-eRlWWQT8.js";import"./board-Dl7As76Q.js";import"./forms-DznAv9hZ.js";const Ge=["goal","project","task","strategy","habit","note","insight","calendar_event","work_block_template","task_timebox","psyche_value","behavior_pattern","behavior","belief_entry","mode_profile","flashcard","trigger_report"];function q(r){return r.map(t=>(t==null?void 0:t.trim())??"").filter(Boolean)}function d(r){return typeof r=="string"&&r.trim().length>0?r.trim():null}function Ve(r){if(!r||typeof r!="object")return null;const t=r,i=d(t.id),n=d(t.kind),c=d(t.displayName);return!i||!c||n!=="human"&&n!=="bot"?null:{id:i,kind:n,displayName:c,handle:d(t.handle)??"",description:d(t.description)??"",accentColor:d(t.accentColor)??"",createdAt:d(t.createdAt)??"",updatedAt:d(t.updatedAt)??""}}function Oe(r){return r==="create"||r==="new"||r.startsWith("create ")||r.startsWith("new ")}function Ye(r){return r==="create"||r==="new"?"":r.startsWith("create ")?r.slice(7).trim():r.startsWith("new ")?r.slice(4).trim():null}function A(r){return r.trim().toLowerCase()}function Qe(r,t){return r==="note"?X(r,{noteKind:d(t==null?void 0:t.kind)==="wiki"?"wiki":"evidence"}):X(r)}function M(r,t){switch(r){case"goal":return"Goal";case"project":return"Project";case"task":return"Task";case"strategy":return"Strategy";case"habit":return"Habit";case"note":return d(t==null?void 0:t.kind)==="wiki"?"Wiki page":"Note";case"insight":return"Insight";case"calendar_event":return"Calendar event";case"work_block_template":return"Work block";case"task_timebox":return"Timebox";case"psyche_value":return"Value";case"behavior_pattern":return"Pattern";case"behavior":return"Behavior";case"belief_entry":return"Belief";case"mode_profile":return"Mode";case"flashcard":return"Flashcard";case"trigger_report":return"Report";default:return r.replaceAll("_"," ")}}const J=[{id:"goal",family:"entity-type",label:"Goal",kind:"goal",searchText:"goal life goal direction",entityTypes:["goal"]},{id:"project",family:"entity-type",label:"Project",kind:"project",searchText:"project initiative",entityTypes:["project"]},{id:"task",family:"entity-type",label:"Task",kind:"task",searchText:"task action work item",entityTypes:["task"]},{id:"strategy",family:"entity-type",label:"Strategy",kind:"strategy",searchText:"strategy plan sequence roadmap",entityTypes:["strategy"]},{id:"habit",family:"entity-type",label:"Habit",kind:"habit",searchText:"habit recurring routine",entityTypes:["habit"]},{id:"note",family:"entity-type",label:"Note",kind:"note",searchText:"note evidence scratch note",entityTypes:["note"]},{id:"wiki_page",family:"entity-type",label:"Wiki page",kind:"wiki_page",searchText:"wiki page karpawiki article knowledge page",entityTypes:["note"]},{id:"calendar_event",family:"entity-type",label:"Calendar event",kind:"calendar_event",searchText:"calendar event meeting block schedule",entityTypes:["calendar_event"]},{id:"psyche_value",family:"entity-type",label:"Value",kind:"value",searchText:"value psyche value",entityTypes:["psyche_value"]},{id:"behavior_pattern",family:"entity-type",label:"Pattern",kind:"pattern",searchText:"pattern loop psyche pattern",entityTypes:["behavior_pattern"]},{id:"behavior",family:"entity-type",label:"Behavior",kind:"behavior",searchText:"behavior psyche behavior",entityTypes:["behavior"]},{id:"belief_entry",family:"entity-type",label:"Belief",kind:"belief",searchText:"belief schema belief entry",entityTypes:["belief_entry"]},{id:"mode_profile",family:"entity-type",label:"Mode",kind:"mode",searchText:"mode profile psyche mode",entityTypes:["mode_profile"]},{id:"flashcard",family:"entity-type",label:"Flashcard",kind:"flashcard",searchText:"flashcard card urge trigger reminder psyche",entityTypes:["flashcard"]},{id:"trigger_report",family:"entity-type",label:"Report",kind:"report",searchText:"report trigger report psyche report",entityTypes:["trigger_report"]}];function se(r,t){return(r==="belief_entry"?[t.statement,t.title,t.name]:r==="flashcard"?[t.title,t.message,t.triggerSentence]:r==="note"?[t.title,t.slug]:[t.title,t.displayName,t.statement,t.name,t.label,t.slug]).map(d).find(Boolean)??`${M(r,t)} ${String(t.id??"")}`}function ne(r,t){const i=[t.summary,t.description,t.overview,t.flexibleAlternative,t.originNote,t.endState,t.whyItMatters,t.valuedDirection,t.triggerSentence,t.triggerSituation,t.contentPlain].map(d).find(Boolean),n=[t.goalTitle,t.projectTitle,t.status,t.kind].map(d).find(Boolean),c=k(Ve(t.user)),u=q([r==="note"?M(r,t):null,c||null]).join(" · ");return q([i,n,c||null]).join(" · ")||u}function Ze(r,t){return q([se(r,t),ne(r,t),M(r,t),d(t.slug),d(t.handle)]).join(" ").toLowerCase()}function Xe(r,t,i){switch(r){case"goal":return`/goals/${encodeURIComponent(t)}`;case"project":return`/projects/${encodeURIComponent(t)}`;case"task":return`/tasks/${encodeURIComponent(t)}`;case"strategy":return`/strategies/${encodeURIComponent(t)}`;case"habit":return`/habits?focus=${encodeURIComponent(t)}`;case"note":{const n=d(i.kind),c=d(i.slug),u=d(i.spaceId);if(n==="wiki"&&c){const e=u?`?spaceId=${encodeURIComponent(u)}`:"";return`/wiki/page/${encodeURIComponent(c)}${e}`}return"/notes"}case"insight":return"/insights";case"calendar_event":case"work_block_template":case"task_timebox":return"/calendar";case"psyche_value":return`/psyche/values?focus=${encodeURIComponent(t)}`;case"behavior_pattern":return`/psyche/patterns?focus=${encodeURIComponent(t)}`;case"behavior":return`/psyche/behaviors?focus=${encodeURIComponent(t)}`;case"belief_entry":return`/psyche/schemas-beliefs?focus=${encodeURIComponent(t)}`;case"mode_profile":return`/psyche/modes?focus=${encodeURIComponent(t)}`;case"flashcard":return`/psyche/flashcards?focus=${encodeURIComponent(t)}`;case"trigger_report":return`/psyche/reports/${encodeURIComponent(t)}`;default:return null}}function W(r,t,i){const n=A(r);if(!n)return 0;const c=A(t),u=A(i),e=n.split(/\s+/).filter(Boolean);let h=0;c===n&&(h+=400),c.startsWith(n)&&(h+=240),c.includes(n)&&(h+=180),u.startsWith(n)&&(h+=32),u.includes(n)&&(h+=20);for(const j of e)c.startsWith(j)?h+=36:c.includes(j)&&(h+=24),u.includes(j)&&(h+=12);return h}function ie(r){if(r.length===0)return Ge;const t=new Set;return r.forEach(i=>{i.entityTypes.forEach(n=>t.add(n))}),Array.from(t)}function Je(r,t,i){if(!r.entityTypes.includes(t))return!1;if(t!=="note")return!0;const n=d(i.kind);return r.id==="wiki_page"?n==="wiki":r.id==="note"?n!=="wiki":!0}function et(r,t,i){if(i.length===0)return!0;const n=new Map;i.forEach(c=>{const u=n.get(c.family)??[];u.push(c),n.set(c.family,u)});for(const c of n.values())if(!c.some(e=>Je(e,r,t)))return!1;return!0}function tt(r,t){if(t.length===0)return!0;const i=new Set(t.filter(n=>n.family==="entity-type").map(n=>n.id));return i.size===0?!0:r.filterIds.some(n=>i.has(n))}function rt(r,t){const i=A(r);if(!Oe(i))return[];const n=Ye(i);return n===null?[]:t.map(c=>{const u=[c.title,c.quickActionTitle,c.description,...c.aliases].join(" ").toLowerCase(),e=n.length===0?1:W(n,c.quickActionTitle,u);return{...c,score:e}}).filter(c=>c.score>0).sort((c,u)=>u.score-c.score||c.quickActionTitle.localeCompare(u.quickActionTitle))}const at=new Set(ie([]));function ot(r){return typeof r=="string"&&at.has(r)}function l(r,t){const i=t??ee;switch(r){case"action":return{icon:oe,tileClassName:"border-emerald-300/18 bg-emerald-300/12 text-emerald-100 shadow-[0_18px_36px_rgba(52,211,153,0.12)]",badgeClassName:"border-emerald-300/18 bg-emerald-300/10 text-emerald-100"};case"wiki":return{icon:ae,tileClassName:"border-blue-300/18 bg-blue-300/12 text-blue-100 shadow-[0_18px_36px_rgba(96,165,250,0.12)]",badgeClassName:"border-blue-300/18 bg-blue-300/10 text-blue-100"};case"note":return{icon:re,tileClassName:"border-amber-300/18 bg-amber-300/12 text-amber-100 shadow-[0_18px_36px_rgba(251,191,36,0.12)]",badgeClassName:"border-amber-300/18 bg-amber-300/10 text-amber-100"};case"insight":return{icon:ve,tileClassName:"border-emerald-300/18 bg-emerald-300/12 text-emerald-100 shadow-[0_18px_36px_rgba(52,211,153,0.12)]",badgeClassName:"border-emerald-300/18 bg-emerald-300/10 text-emerald-100"};case"calendar":return{icon:te,tileClassName:"border-cyan-300/18 bg-cyan-300/12 text-cyan-100 shadow-[0_18px_36px_rgba(34,211,238,0.12)]",badgeClassName:"border-cyan-300/18 bg-cyan-300/10 text-cyan-100"};case"route":return{icon:i,tileClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-medium)] shadow-[var(--ui-shadow-soft)]",badgeClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-soft)]"};default:return{icon:i,tileClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-medium)] shadow-[var(--ui-shadow-soft)]",badgeClassName:"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] text-[var(--ui-ink-soft)]"}}}function st({item:r}){if(r.kind){const n=Ke(r.kind),c=n.icon;return o.jsx("span",{className:R("mt-0.5 inline-flex size-11 shrink-0 items-center justify-center rounded-[17px] border",n.subtleBadgeClassName),children:o.jsx(c,{className:R("size-5",n.iconClassName)})})}const t=l("search",r.icon),i=r.icon??t.icon;return o.jsx("span",{className:R("mt-0.5 inline-flex size-11 shrink-0 items-center justify-center rounded-[17px] border",r.tileClassName??t.tileClassName),children:o.jsx(i,{className:"size-5"})})}function nt({item:r}){if(r.kind&&r.section==="results")return o.jsx(ze,{kind:r.kind,label:r.category,compact:!0,gradient:!1});const t=l(r.section==="quick-actions"?"action":"search",r.icon),i=r.icon??t.icon;return o.jsxs("span",{className:R("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[11px] font-medium",r.badgeClassName??t.badgeClassName),children:[o.jsx(i,{className:"size-3.5"}),r.category]})}function f(r,t,i){return`${r} ${t} ${i}`.trim().toLowerCase()}function gt({open:r,onOpenChange:t,snapshot:i,selectedUserIds:n,createActions:c}){var O;const u=be(),{t:e}=We(),h=p.useRef([]),[j,D]=p.useState(""),[B,P]=p.useState(0),[L,U]=p.useState([]),N=p.useDeferredValue(j),y=A(N),b=p.useMemo(()=>J.filter(a=>L.includes(a.id)),[L]);p.useEffect(()=>{r||(D(""),P(0),U([]))},[r]);const ce=p.useMemo(()=>J.map(a=>({value:a.id,label:a.label,description:a.id==="wiki_page"?"Search only KarpaWiki pages.":a.id==="note"?"Search notes and evidence that are not wiki pages.":`Search ${a.label.toLowerCase()} records.`,searchText:a.searchText,kind:a.kind})),[]),le=p.useMemo(()=>({routes:e("common.actionBar.sections.routes"),recent:e("common.actionBar.sections.recent"),"quick-actions":e("common.actionBar.sections.quickActions"),results:e("common.actionBar.sections.results")}),[e]),I=p.useMemo(()=>[{id:"route-overview",title:e("common.routeLabels.overview"),detail:e("common.commandPalette.routeOverview"),href:"/overview",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.overview"),e("common.commandPalette.routeOverview"),e("common.commandPalette.categoryRoute")),score:0,...l("route",ke)},{id:"route-today",title:e("common.routeLabels.today"),detail:e("common.commandPalette.routeToday"),href:"/today",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.today"),e("common.commandPalette.routeToday"),e("common.commandPalette.categoryRoute")),score:0,...l("route",we)},{id:"route-kanban",title:e("common.routeLabels.kanban"),detail:e("common.commandPalette.routeKanban"),href:"/kanban",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.kanban"),e("common.commandPalette.routeKanban"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Te)},{id:"route-psyche",title:e("common.routeLabels.psyche"),detail:e("common.commandPalette.routePsyche"),href:"/psyche",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.psyche"),e("common.commandPalette.routePsyche"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Ne)},{id:"route-notes",title:e("common.routeLabels.notes"),detail:e("common.commandPalette.routeNotes"),href:"/notes",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.notes"),e("common.commandPalette.routeNotes"),e("common.commandPalette.categoryRoute")),score:0,...l("route",re)},{id:"route-wiki",title:e("common.routeLabels.wiki"),detail:e("common.commandPalette.routeWiki"),href:"/wiki",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.wiki"),e("common.commandPalette.routeWiki"),e("common.commandPalette.categoryRoute")),score:0,...l("route",ae)},{id:"route-goals",title:e("common.routeLabels.goals"),detail:e("common.commandPalette.routeGoals"),href:"/goals",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.goals"),e("common.commandPalette.routeGoals"),e("common.commandPalette.categoryRoute")),score:0,...l("route",je)},{id:"route-habits",title:e("common.routeLabels.habits"),detail:e("common.commandPalette.routeHabits"),href:"/habits",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.habits"),e("common.commandPalette.routeHabits"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Pe)},{id:"route-projects",title:e("common.routeLabels.projects"),detail:e("common.commandPalette.routeProjects"),href:"/projects",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.projects"),e("common.commandPalette.routeProjects"),e("common.commandPalette.categoryRoute")),score:0,...l("route",_e)},{id:"route-strategies",title:e("common.routeLabels.strategies"),detail:e("common.commandPalette.routeStrategies"),href:"/strategies",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.strategies"),e("common.commandPalette.routeStrategies"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Ce)},{id:"route-preferences",title:e("common.routeLabels.preferences"),detail:e("common.commandPalette.routePreferences"),href:"/preferences",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.preferences"),e("common.commandPalette.routePreferences"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Re)},{id:"route-calendar",title:e("common.routeLabels.calendar"),detail:e("common.commandPalette.routeCalendar"),href:"/calendar",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.calendar"),e("common.commandPalette.routeCalendar"),e("common.commandPalette.categoryRoute")),score:0,...l("route",te)},{id:"route-knowledge-graph",title:"Knowledge Graph",detail:"Open the world model and graph views for Forge.",href:"/knowledge-graph",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f("Knowledge Graph","Open the world model and graph views for Forge.",e("common.commandPalette.categoryRoute")),score:0,...l("route",Be)},{id:"route-settings",title:e("common.routeLabels.settings"),detail:e("common.commandPalette.routeSettings"),href:"/settings",category:e("common.commandPalette.categoryRoute"),section:"routes",searchText:f(e("common.routeLabels.settings"),e("common.commandPalette.routeSettings"),e("common.commandPalette.categoryRoute")),score:0,...l("route",Le)}],[e]),K=p.useMemo(()=>{const a=[...i.overview.topTasks.slice(0,4).map(s=>({id:`task-${s.id}`,title:s.title,detail:k(s.user)||e("common.commandPalette.openFocusTask"),href:`/tasks/${s.id}`,category:e("common.commandPalette.categoryTask"),section:"recent",searchText:`${s.title} ${k(s.user)}`.toLowerCase(),score:0,kind:"task"})),...i.dashboard.projects.slice(0,3).map(s=>({id:`project-${s.id}`,title:s.title,detail:[s.goalTitle,k(s.user)].filter(Boolean).join(" · "),href:`/projects/${s.id}`,category:e("common.commandPalette.categoryProject"),section:"recent",searchText:`${s.title} ${s.goalTitle??""} ${k(s.user)}`.toLowerCase(),score:0,kind:"project"})),...i.overview.activeGoals.slice(0,2).map(s=>({id:`goal-${s.id}`,title:s.title,detail:k(s.user)||e("common.commandPalette.openLifeGoal"),href:`/goals/${s.id}`,category:e("common.commandPalette.categoryGoal"),section:"recent",searchText:`${s.title} ${k(s.user)}`.toLowerCase(),score:0,kind:"goal"})),...i.dashboard.habits.slice(0,2).map(s=>({id:`habit-${s.id}`,title:s.title,detail:[s.frequency==="daily"?"Daily habit":"Weekly habit",k(s.user)].filter(Boolean).join(" · "),href:`/habits?focus=${s.id}`,category:e("common.routeLabels.habits"),section:"recent",searchText:`${s.title} ${s.frequency} ${k(s.user)}`.toLowerCase(),score:0,kind:"habit"}))].slice(0,8);return[...I.slice(0,6),...a]},[I,i,e]),$=Fe({queryKey:["forge-action-bar-search",y,[...L].sort().join("|"),[...n].sort().join("|")],enabled:r&&(y.length>0||b.length>0),queryFn:async()=>{const a=ie(b),s=await He({searches:a.map(g=>({entityTypes:[g],query:N.trim()||void 0,userIds:n.length>0?n:void 0,limit:g==="note"?6:4,clientRef:g}))}),x=new Map;for(const g of s.results){const w=Array.isArray(g.matches)?g.matches??[]:[];for(const S of w){if(!S||typeof S!="object")continue;const m=S;if(!ot(m.entityType)||typeof m.id!="string"||!m.entity||typeof m.entity!="object")continue;const T=m.entity;if(!et(m.entityType,T,b))continue;const Y=Xe(m.entityType,m.id,T);if(!Y)continue;const Q=se(m.entityType,T),de=ne(m.entityType,T),pe=M(m.entityType,T),Z=Ze(m.entityType,T),fe=Qe(m.entityType,T)??void 0,he=y.length>0?W(N,Q,Z):0;let _=l("search");m.entityType==="note"?_=l(T.kind==="wiki"?"wiki":"note"):m.entityType==="insight"?_=l("insight"):(m.entityType==="calendar_event"||m.entityType==="task_timebox"||m.entityType==="work_block_template")&&(_=l("calendar"));const C={id:`${m.entityType}-${m.id}`,title:Q,detail:de,href:Y,category:pe,section:"results",searchText:Z,score:he,kind:fe,icon:_.icon,tileClassName:_.tileClassName,badgeClassName:_.badgeClassName},E=x.get(C.id);(!E||C.score>E.score||C.score===E.score&&C.title<E.title)&&x.set(C.id,C)}}return Array.from(x.values()).sort((g,w)=>w.score!==g.score?w.score-g.score:g.title.localeCompare(w.title)).slice(0,12)}}),z=p.useMemo(()=>y?I.map(a=>({...a,score:W(N,a.title,a.searchText)})).filter(a=>a.score>0).sort((a,s)=>s.score-a.score||a.title.localeCompare(s.title)).slice(0,4):[],[N,y,I]),H=p.useMemo(()=>rt(N,c).filter(a=>tt(a,b)).slice(0,6).map(a=>({id:`quick-${a.id}`,title:a.quickActionTitle,detail:a.description,category:"Quick action",section:"quick-actions",searchText:`${a.quickActionTitle} ${a.description} ${a.aliases.join(" ")}`.toLowerCase(),score:a.score,onSelect:a.onSelect,...l("action",oe)})),[c,N,b]),v=p.useMemo(()=>{if(!y&&b.length===0)return K;const a=[...H,...z],s=new Set(a.map(x=>x.id));for(const x of $.data??[])s.has(x.id)||(s.add(x.id),a.push(x));return a.slice(0,16)},[K,$.data,y,H,z,b.length]);p.useEffect(()=>{P(0)},[y,r,L.join("|")]),p.useEffect(()=>{v.length!==0&&P(a=>Math.min(Math.max(a,0),v.length-1))},[v]),p.useEffect(()=>{const a=h.current[B];a==null||a.scrollIntoView({block:"nearest"})},[B]);const G=v[B]??null,F=i.users.filter(a=>n.includes(a.id)),me=n.length===0?"All humans and bots":F.length===1?((O=F[0])==null?void 0:O.displayName)??"1 selected owner":`${F.length||n.length} selected owners`,ue=(y.length>0||b.length>0)&&$.isFetching,V=a=>{if(t(!1),a.onSelect){a.onSelect();return}a.href&&u(a.href)};return o.jsx(Se,{open:r,onOpenChange:t,children:o.jsxs(Ae,{children:[o.jsx(Ie,{className:"surface-overlay fixed inset-0 z-40 backdrop-blur-xl"}),o.jsxs($e,{className:"surface-modal-panel fixed inset-x-3 bottom-3 top-3 z-50 flex flex-col overflow-hidden rounded-[30px] border sm:inset-x-6 sm:bottom-6 sm:top-6 md:left-1/2 md:right-auto md:top-[9vh] md:h-[min(82vh,48rem)] md:w-[min(64rem,calc(100vw-2rem))] md:-translate-x-1/2 md:bottom-auto",children:[o.jsx(Ee,{className:"sr-only",children:e("common.actionBar.title")}),o.jsx(Me,{className:"sr-only",children:e("common.actionBar.description")}),o.jsxs("div",{className:"border-b border-[var(--ui-border-subtle)] px-4 py-4 sm:px-5",children:[o.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[o.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-3 py-1.5 text-[12px] text-[var(--ui-ink-medium)]",children:[o.jsx("span",{className:"rounded-full bg-[var(--ui-surface-2)] px-2 py-0.5 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Scope"}),o.jsx("span",{children:me})]}),b.length>0?o.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-3 py-1.5 text-[12px] text-[var(--ui-ink-medium)]",children:[o.jsx(ge,{className:"size-3.5 text-[var(--ui-ink-faint)]"}),o.jsxs("span",{children:[b.length," filter",b.length===1?"":"s"]})]}):null]}),o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:[o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Shift Shift"}),o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Cmd/Ctrl K"})]})]}),o.jsxs("div",{className:"mt-4 rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)] px-4 py-4 shadow-[inset_0_1px_0_var(--ui-border-subtle)]",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx(ee,{className:"size-5 text-[var(--ui-ink-faint)]"}),o.jsx(De,{autoFocus:!0,value:j,onChange:a=>D(a.target.value),onKeyDown:a=>{if(a.key==="ArrowDown"){a.preventDefault(),P(s=>v.length===0?0:Math.min(s+1,v.length-1));return}if(a.key==="ArrowUp"){a.preventDefault(),P(s=>Math.max(s-1,0));return}if(a.key==="Enter"&&G){a.preventDefault(),V(G);return}a.key==="Escape"&&(a.preventDefault(),t(!1))},placeholder:e("common.actionBar.searchPlaceholder"),className:"border-0 bg-transparent px-0 py-0 text-[1rem] focus:border-0"}),ue?o.jsx(ye,{className:"size-4 shrink-0 animate-spin text-[var(--ui-ink-faint)]"}):null]}),o.jsx("div",{className:"mt-2 pl-8 text-[13px] leading-6 text-[var(--ui-ink-soft)]",children:e(y?"common.actionBar.activeHint":"common.actionBar.idleHint")}),o.jsxs("div",{className:"mt-4 border-t border-[var(--ui-border-subtle)] pt-4",children:[o.jsx("div",{className:"mb-2 pl-1 text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:e("common.actionBar.filtersLabel")}),o.jsx(qe,{options:ce,selectedValues:L,onChange:U,placeholder:e("common.actionBar.filtersPlaceholder"),emptyMessage:e("common.actionBar.filtersEmpty"),variant:"action-bar"})]})]})]}),o.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-3 py-3 sm:px-4",children:v.length===0?o.jsx("div",{className:"rounded-[24px] border border-dashed border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-4 py-8 text-center text-sm text-[var(--ui-ink-soft)]",children:$.isFetching?e("common.actionBar.searching"):b.length>0?e("common.actionBar.noResultsWithFilters"):e("common.actionBar.noResults")}):o.jsx("div",{className:"grid gap-2",children:v.map((a,s)=>{var w;const g=(((w=v[s-1])==null?void 0:w.section)??null)!==a.section;return o.jsxs("div",{children:[g?o.jsx("div",{className:"px-2 pb-1 pt-2 text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)] first:pt-0",children:le[a.section]}):null,o.jsxs("button",{ref:S=>{h.current[s]=S},type:"button",className:R("group flex w-full items-start gap-3 rounded-[24px] border px-4 py-3.5 text-left transition",s===B?"border-[var(--ui-border-strong)] bg-[var(--ui-surface-3)] shadow-[var(--ui-shadow-soft)]":"border-transparent bg-[var(--ui-surface-1)] hover:border-[var(--ui-border-subtle)] hover:bg-[var(--ui-surface-hover)]"),onMouseEnter:()=>P(s),onClick:()=>V(a),children:[o.jsx(st,{item:a}),o.jsxs("div",{className:"min-w-0 flex-1",children:[o.jsx("div",{className:"flex flex-wrap items-center gap-2",children:o.jsx(nt,{item:a})}),o.jsx("div",{className:"mt-2 text-[15px] font-medium text-[var(--ui-ink-strong)]",children:a.kind&&a.section==="results"?o.jsx(Ue,{kind:a.kind,label:a.title,showIcon:!1,labelClassName:"text-[var(--ui-ink-strong)]"}):a.title}),o.jsx("div",{className:"mt-1 text-sm leading-6 text-[var(--ui-ink-soft)]",children:a.detail})]}),o.jsx(xe,{className:R("mt-1 size-4 shrink-0 transition",s===B?"text-[var(--ui-ink-medium)]":"text-[var(--ui-ink-faint)] group-hover:text-[var(--ui-ink-soft)]")})]})]},a.id)})})}),o.jsx("div",{className:"border-t border-[var(--ui-border-subtle)] px-4 py-3 sm:px-5",children:o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-[12px] text-[var(--ui-ink-faint)]",children:[o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Up/Down navigate"}),o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Enter open"}),o.jsx("span",{className:"rounded-full border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-2.5 py-1",children:"Esc close"})]})})]})]})})}export{gt as ActionBar};
@@ -1 +1 @@
1
- import{j as e,aC as p,bZ as C}from"./vendor-B7FKSwHK.js";import{j as E,i as _,k as I}from"./state-BFyKSULP.js";import{C as b,f as v,B as g,d as P,L as S,e as L,h as R,i as T,r as U,l as q}from"./index-gmPaoLN-.js";import{P as Q}from"./page-hero-U603l9rQ.js";import{u as F,f as y,g as H,c as M}from"./table-CTLroJKN.js";import{U as k}from"./user-badge-C4eZu1e_.js";import{g as m,a as f}from"./entity-links-DwpxhW2H.js";import"./motion-BibSzp57.js";import"./ui-uo_bNP7c.js";import"./board-DprRipIG.js";import"./forms-ByKjodjN.js";const o=M(),j=[o.accessor("title",{header:"Event",cell:r=>{const a=m(r.row.original);return a?e.jsx(p,{to:a,className:"font-medium text-[var(--ui-ink-strong)] transition hover:text-[var(--primary)]",children:r.getValue()}):e.jsx("div",{className:"font-medium text-[var(--ui-ink-strong)]",children:r.getValue()})}}),o.accessor("source",{header:"Source",cell:r=>e.jsx("div",{className:"font-label text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:r.getValue()})}),o.display({id:"owner",header:"Owner",cell:r=>r.row.original.user?e.jsx(k,{user:r.row.original.user,compact:!0}):e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Unowned"})}),o.accessor("createdAt",{header:"When",cell:r=>e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:v(r.getValue())})}),o.display({id:"actions",header:"Open",cell:r=>{const a=m(r.row.original);return a?e.jsx(p,{to:a,className:"inline-flex text-[11px] uppercase tracking-[0.16em] text-[var(--primary)] transition hover:text-[var(--ui-ink-strong)]",children:"Open"}):e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Archive only"})}})];function O({rows:r,onRemove:a}){const l=a?[...j,o.display({id:"remove",header:"Correct",cell:t=>e.jsx(g,{variant:"ghost",className:"h-auto px-0 py-0 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-soft)]",onClick:()=>{a(t.row.original.id)},children:"Remove log"})})]:j,c=F({columns:l,data:r,getCoreRowModel:H()});return e.jsxs(b,{className:"min-w-0 overflow-hidden p-0",children:[e.jsxs("table",{className:"hidden w-full border-collapse md:table",children:[e.jsx("thead",{children:c.getHeaderGroups().map(t=>e.jsx("tr",{className:"bg-[var(--ui-surface-2)]",children:t.headers.map(i=>e.jsx("th",{className:"px-5 py-4 text-left font-label text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:i.isPlaceholder?null:y(i.column.columnDef.header,i.getContext())},i.id))},t.id))}),e.jsx("tbody",{children:c.getRowModel().rows.map(t=>e.jsx("tr",{className:"border-t border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] transition hover:bg-[var(--ui-surface-hover)]",children:t.getVisibleCells().map(i=>e.jsx("td",{className:"px-5 py-4 align-top",children:y(i.column.columnDef.cell,i.getContext())},i.id))},t.id))})]}),e.jsx("div",{className:"grid gap-3 p-3 md:hidden",children:r.map(t=>{const i=m(t);return e.jsxs("article",{className:"min-w-0 rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[e.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:t.source}),e.jsx("div",{className:"mt-2 break-words text-sm font-semibold text-[var(--ui-ink-strong)]",children:t.title})]}),t.user?e.jsx(k,{user:t.user,compact:!0}):null]}),e.jsx("div",{className:"mt-2 text-sm leading-6 text-[var(--ui-ink-soft)]",children:t.description}),e.jsx("div",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:v(t.createdAt)}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-3",children:[i?e.jsx(p,{to:i,className:"inline-flex text-[11px] uppercase tracking-[0.16em] text-[var(--primary)] transition hover:text-[var(--ui-ink-strong)]",children:"Open"}):null,a?e.jsx(g,{variant:"ghost",className:"h-auto px-0 py-0 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-soft)]",onClick:()=>{a(t.id)},children:"Remove log"}):null]})]},t.id)})})]})}function Y(){var h;const r=P(),a=Array.isArray(r.selectedUserIds)?r.selectedUserIds:[],[l]=C(),c=E(),t=l.get("entityId")??void 0,i=l.get("entityType")??void 0,N=l.get("eventId"),d=_({queryKey:["activity-archive",i,t,...a],queryFn:()=>q({limit:100,entityType:i,entityId:t,userIds:a})}),w=I({mutationFn:n=>U(n),onSuccess:async()=>{await Promise.all([c.invalidateQueries({queryKey:["activity-archive"]}),T(c),c.invalidateQueries({queryKey:["task-context"]}),c.invalidateQueries({queryKey:["project-board"]})])}}),u=((h=d.data)==null?void 0:h.activity)??[];if(d.isLoading)return e.jsx(S,{eyebrow:"Evidence archive",title:"Loading activity",description:"Pulling the visible audit trail, grouped evidence, and correction history."});if(d.isError)return e.jsx(L,{eyebrow:"Evidence archive",error:d.error,onRetry:()=>void d.refetch()});if(u.length===0)return e.jsx(R,{eyebrow:"Evidence archive",title:t?"No evidence matched this filter":"No activity recorded yet",description:t?"Forge could not find visible events for this specific entity yet. Try a broader archive view or create some work first.":"As you complete work, log runs, or make corrections, the audit trail will appear here."});const A=u.reduce((n,x)=>{const s=x.createdAt.slice(0,10);return n[s]=[...n[s]??[],x],n},{});return e.jsxs("div",{className:"grid gap-5",children:[e.jsx(Q,{title:"Activity",description:t?"This filtered archive shows the evidence connected to the item you opened, so you can confirm what changed and when.":"Activity is your visible audit trail. Use it to inspect progress, confirm corrections, and trace work back to the goal, project, or task it came from.",badge:`${u.length} recent events`}),e.jsxs("section",{className:"grid gap-5 xl:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]",children:[e.jsx(O,{rows:u,onRemove:async n=>{await w.mutateAsync(n)}}),e.jsx("div",{className:"grid gap-4",children:Object.entries(A).slice(0,6).map(([n,x])=>e.jsxs(b,{className:"min-w-0",children:[e.jsx("div",{className:"font-label text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:n}),e.jsx("div",{className:"mt-4 grid gap-3",children:x.slice(0,3).map(s=>e.jsxs("div",{className:`min-w-0 rounded-[18px] border p-4 ${N===s.id?"border-[color-mix(in_srgb,var(--primary)_30%,transparent)] bg-[var(--ui-accent-soft)] shadow-[inset_0_0_0_1px_color-mix(in_srgb,var(--primary)_16%,transparent)]":"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)]"}`,children:[e.jsx("div",{className:"break-words font-medium text-[var(--ui-ink-strong)]",children:s.title}),e.jsx("div",{className:"mt-2 text-sm text-[var(--ui-ink-soft)]",children:s.description}),e.jsx("div",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:v(s.createdAt)}),m(s)&&f(s)?e.jsx(p,{to:m(s),className:"mt-3 inline-flex text-[11px] uppercase tracking-[0.16em] text-[var(--primary)] transition hover:text-[var(--ui-ink-strong)]",children:f(s)}):null]},s.id))})]},n))})]})]})}export{Y as ActivityPage};
1
+ import{j as e,aC as p,bZ as C}from"./vendor-Dgw7UY7q.js";import{j as E,i as _,k as I}from"./state-CkEUXgqt.js";import{C as b,f as v,B as g,d as P,L as S,e as L,h as R,i as T,r as U,l as q}from"./index-C0CztQTU.js";import{P as Q}from"./page-hero-ED69y6m0.js";import{u as F,f as y,g as H,c as M}from"./table--SK_dk4S.js";import{U as k}from"./user-badge-BWoSrGA-.js";import{g as m,a as f}from"./entity-links-DwpxhW2H.js";import"./motion-eRlWWQT8.js";import"./ui-CDt36qNz.js";import"./board-Dl7As76Q.js";import"./forms-DznAv9hZ.js";const o=M(),j=[o.accessor("title",{header:"Event",cell:r=>{const a=m(r.row.original);return a?e.jsx(p,{to:a,className:"font-medium text-[var(--ui-ink-strong)] transition hover:text-[var(--primary)]",children:r.getValue()}):e.jsx("div",{className:"font-medium text-[var(--ui-ink-strong)]",children:r.getValue()})}}),o.accessor("source",{header:"Source",cell:r=>e.jsx("div",{className:"font-label text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:r.getValue()})}),o.display({id:"owner",header:"Owner",cell:r=>r.row.original.user?e.jsx(k,{user:r.row.original.user,compact:!0}):e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Unowned"})}),o.accessor("createdAt",{header:"When",cell:r=>e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:v(r.getValue())})}),o.display({id:"actions",header:"Open",cell:r=>{const a=m(r.row.original);return a?e.jsx(p,{to:a,className:"inline-flex text-[11px] uppercase tracking-[0.16em] text-[var(--primary)] transition hover:text-[var(--ui-ink-strong)]",children:"Open"}):e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Archive only"})}})];function O({rows:r,onRemove:a}){const l=a?[...j,o.display({id:"remove",header:"Correct",cell:t=>e.jsx(g,{variant:"ghost",className:"h-auto px-0 py-0 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-soft)]",onClick:()=>{a(t.row.original.id)},children:"Remove log"})})]:j,c=F({columns:l,data:r,getCoreRowModel:H()});return e.jsxs(b,{className:"min-w-0 overflow-hidden p-0",children:[e.jsxs("table",{className:"hidden w-full border-collapse md:table",children:[e.jsx("thead",{children:c.getHeaderGroups().map(t=>e.jsx("tr",{className:"bg-[var(--ui-surface-2)]",children:t.headers.map(i=>e.jsx("th",{className:"px-5 py-4 text-left font-label text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:i.isPlaceholder?null:y(i.column.columnDef.header,i.getContext())},i.id))},t.id))}),e.jsx("tbody",{children:c.getRowModel().rows.map(t=>e.jsx("tr",{className:"border-t border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] transition hover:bg-[var(--ui-surface-hover)]",children:t.getVisibleCells().map(i=>e.jsx("td",{className:"px-5 py-4 align-top",children:y(i.column.columnDef.cell,i.getContext())},i.id))},t.id))})]}),e.jsx("div",{className:"grid gap-3 p-3 md:hidden",children:r.map(t=>{const i=m(t);return e.jsxs("article",{className:"min-w-0 rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[e.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:t.source}),e.jsx("div",{className:"mt-2 break-words text-sm font-semibold text-[var(--ui-ink-strong)]",children:t.title})]}),t.user?e.jsx(k,{user:t.user,compact:!0}):null]}),e.jsx("div",{className:"mt-2 text-sm leading-6 text-[var(--ui-ink-soft)]",children:t.description}),e.jsx("div",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:v(t.createdAt)}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-3",children:[i?e.jsx(p,{to:i,className:"inline-flex text-[11px] uppercase tracking-[0.16em] text-[var(--primary)] transition hover:text-[var(--ui-ink-strong)]",children:"Open"}):null,a?e.jsx(g,{variant:"ghost",className:"h-auto px-0 py-0 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-soft)]",onClick:()=>{a(t.id)},children:"Remove log"}):null]})]},t.id)})})]})}function Y(){var h;const r=P(),a=Array.isArray(r.selectedUserIds)?r.selectedUserIds:[],[l]=C(),c=E(),t=l.get("entityId")??void 0,i=l.get("entityType")??void 0,N=l.get("eventId"),d=_({queryKey:["activity-archive",i,t,...a],queryFn:()=>q({limit:100,entityType:i,entityId:t,userIds:a})}),w=I({mutationFn:n=>U(n),onSuccess:async()=>{await Promise.all([c.invalidateQueries({queryKey:["activity-archive"]}),T(c),c.invalidateQueries({queryKey:["task-context"]}),c.invalidateQueries({queryKey:["project-board"]})])}}),u=((h=d.data)==null?void 0:h.activity)??[];if(d.isLoading)return e.jsx(S,{eyebrow:"Evidence archive",title:"Loading activity",description:"Pulling the visible audit trail, grouped evidence, and correction history."});if(d.isError)return e.jsx(L,{eyebrow:"Evidence archive",error:d.error,onRetry:()=>void d.refetch()});if(u.length===0)return e.jsx(R,{eyebrow:"Evidence archive",title:t?"No evidence matched this filter":"No activity recorded yet",description:t?"Forge could not find visible events for this specific entity yet. Try a broader archive view or create some work first.":"As you complete work, log runs, or make corrections, the audit trail will appear here."});const A=u.reduce((n,x)=>{const s=x.createdAt.slice(0,10);return n[s]=[...n[s]??[],x],n},{});return e.jsxs("div",{className:"grid gap-5",children:[e.jsx(Q,{title:"Activity",description:t?"This filtered archive shows the evidence connected to the item you opened, so you can confirm what changed and when.":"Activity is your visible audit trail. Use it to inspect progress, confirm corrections, and trace work back to the goal, project, or task it came from.",badge:`${u.length} recent events`}),e.jsxs("section",{className:"grid gap-5 xl:grid-cols-[minmax(0,1.1fr)_minmax(0,0.9fr)]",children:[e.jsx(O,{rows:u,onRemove:async n=>{await w.mutateAsync(n)}}),e.jsx("div",{className:"grid gap-4",children:Object.entries(A).slice(0,6).map(([n,x])=>e.jsxs(b,{className:"min-w-0",children:[e.jsx("div",{className:"font-label text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:n}),e.jsx("div",{className:"mt-4 grid gap-3",children:x.slice(0,3).map(s=>e.jsxs("div",{className:`min-w-0 rounded-[18px] border p-4 ${N===s.id?"border-[color-mix(in_srgb,var(--primary)_30%,transparent)] bg-[var(--ui-accent-soft)] shadow-[inset_0_0_0_1px_color-mix(in_srgb,var(--primary)_16%,transparent)]":"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)]"}`,children:[e.jsx("div",{className:"break-words font-medium text-[var(--ui-ink-strong)]",children:s.title}),e.jsx("div",{className:"mt-2 text-sm text-[var(--ui-ink-soft)]",children:s.description}),e.jsx("div",{className:"mt-3 text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:v(s.createdAt)}),m(s)&&f(s)?e.jsx(p,{to:m(s),className:"mt-3 inline-flex text-[11px] uppercase tracking-[0.16em] text-[var(--primary)] transition hover:text-[var(--ui-ink-strong)]",children:f(s)}):null]},s.id))})]},n))})]})]})}export{Y as ActivityPage};
@@ -1 +1 @@
1
- import{j as r,r as x,cJ as Z,cT as ee,bz as te,cU as re,cV as ie,cW as ne,cX as se,cY as ae,aC as le,b2 as oe}from"./vendor-B7FKSwHK.js";import{u as ue,a as ce,P as de,D as fe,c as me,S as xe,v as he,d as ve,b as be,C as pe}from"./board-DprRipIG.js";import{i as ge,k as U}from"./state-BFyKSULP.js";import{cr as je,cs as Ne,B as H,c as W,C as ye,ct as Se}from"./index-gmPaoLN-.js";function ke({children:e}){return r.jsx(r.Fragment,{children:e})}const k={lg:1280,md:996,sm:768,xs:480},A={lg:12,md:10,sm:6,xs:4,xxs:2},We="forge.surface-layout.v3";function I(e){return`${We}.${e}`}function F(e,i,n){return Math.min(Math.max(e,i),n)}function Ce(e){return e>=k.lg?"lg":e>=k.md?"md":e>=k.sm?"sm":e>=k.xs?"xs":"xxs"}function Ee(e,i){const n=A[i];if(i==="lg")return F(e.defaultWidth,e.minWidth??1,Math.min(e.maxWidth??n,n));const s=Math.round(e.defaultWidth/A.lg*n);return F(Math.max(e.minWidth??1,s||(e.minWidth??1)),e.minWidth??1,Math.min(e.maxWidth??n,n))}function Me(e){return{hidden:e.defaultHidden??!1,fullWidth:e.defaultFullWidth??!1,titleVisible:e.defaultTitleVisible??!0,descriptionVisible:e.defaultDescriptionVisible??!0}}function P(e,i){const n=[...i.filter(s=>s.defaultPlacement==="top"),...i.filter(s=>s.defaultPlacement!=="top")];return{surfaceId:e,order:n.map(s=>s.id),widgets:Object.fromEntries(i.map(s=>[s.id,Me(s)])),updatedAt:new Date(0).toISOString()}}function V(e,i,n){const s=P(e,i),l=new Set(i.map(o=>o.id)),c=((n==null?void 0:n.order)??[]).filter(o=>l.has(o)),h=s.order.filter(o=>!c.includes(o)),d=Object.fromEntries(i.map(o=>{var N,g,m,b,p;const f=(N=n==null?void 0:n.widgets)==null?void 0:N[o.id];return[o.id,{...s.widgets[o.id],hidden:(f==null?void 0:f.hidden)??((g=s.widgets[o.id])==null?void 0:g.hidden)??!1,fullWidth:(f==null?void 0:f.fullWidth)??((m=s.widgets[o.id])==null?void 0:m.fullWidth)??!1,titleVisible:(f==null?void 0:f.titleVisible)??((b=s.widgets[o.id])==null?void 0:b.titleVisible)??!0,descriptionVisible:(f==null?void 0:f.descriptionVisible)??((p=s.widgets[o.id])==null?void 0:p.descriptionVisible)??!0}]}));return{surfaceId:e,order:[...c,...h],widgets:d,updatedAt:typeof(n==null?void 0:n.updatedAt)=="string"?n.updatedAt:s.updatedAt}}function Ve(e,i){const n=new Map(i.order.map((s,l)=>[s,l]));return[...e].sort((s,l)=>{const c=n.get(s.id)??Number.MAX_SAFE_INTEGER,h=n.get(l.id)??Number.MAX_SAFE_INTEGER;return c!==h?c-h:s.id.localeCompare(l.id)})}function Oe(e,i,n){const s=e.indexOf(i);if(s===-1)return e;const l=F(n,0,e.length-1);if(s===l)return e;const c=[...e];return c.splice(s,1),c.splice(l,0,i),c}function O(e){if(typeof window>"u")return null;try{const i=window.localStorage.getItem(I(e));return i?JSON.parse(i):null}catch{return null}}function R(e){if(!(typeof window>"u"))try{window.localStorage.setItem(I(e.surfaceId),JSON.stringify(e))}catch{}}const Re=500;function G(e,i){return e.surfaceId===i.surfaceId&&JSON.stringify(e.order)===JSON.stringify(i.order)&&JSON.stringify(e.widgets)===JSON.stringify(i.widgets)}function Ae({definition:e,preferences:i,editing:n,width:s,children:l}){const c=s<=4;return e.surfaceChrome==="none"?r.jsx("div",{"data-surface-card":"true",className:W("min-w-0",n&&"rounded-[28px] ring-1 ring-[var(--ui-border-subtle)] ring-inset"),children:l}):r.jsxs(ye,{"data-surface-card":"true",className:W("surface-grid-card flex min-w-0 flex-col gap-3 overflow-visible p-4 md:p-5",n&&"ring-1 ring-[var(--ui-border-subtle)]"),children:[i.titleVisible||i.descriptionVisible&&e.description?r.jsxs("div",{className:"min-w-0",children:[i.titleVisible?r.jsx("div",{className:"truncate text-[0.72rem] font-semibold uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:e.title}):null,i.descriptionVisible&&e.description&&!c?r.jsx("div",{className:"mt-1 text-[12px] leading-5 text-[var(--ui-ink-soft)]",children:e.description}):null]}):null,r.jsx("div",{className:"min-h-0 flex-1",children:l})]})}function Fe({widget:e,preferences:i,index:n,total:s,onMove:l,onToggleHidden:c,onToggleFullWidth:h}){const d=be({id:e.id});return r.jsxs("div",{ref:d.setNodeRef,style:{transform:pe.Transform.toString(d.transform),transition:d.transition},className:"flex min-w-0 items-center gap-2 rounded-[18px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-3 py-2.5",children:[r.jsx("button",{type:"button",className:"inline-flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--ui-surface-2)] text-[var(--ui-ink-soft)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]","aria-label":`Drag ${e.title}`,...d.attributes,...d.listeners,children:r.jsx(te,{className:"size-4"})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"truncate text-sm font-medium text-[var(--ui-ink-strong)]",children:e.title}),e.description?r.jsx("div",{className:"truncate text-[12px] text-[var(--ui-ink-faint)]",children:e.description}):null]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[r.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center rounded-full bg-[var(--ui-surface-2)] text-[var(--ui-ink-soft)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)] disabled:opacity-40",onClick:()=>l(n-1),disabled:n===0,"aria-label":`Move ${e.title} up`,children:r.jsx(re,{className:"size-3.5"})}),r.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center rounded-full bg-[var(--ui-surface-2)] text-[var(--ui-ink-soft)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)] disabled:opacity-40",onClick:()=>l(n+1),disabled:n===s-1,"aria-label":`Move ${e.title} down`,children:r.jsx(ie,{className:"size-3.5"})}),r.jsxs("button",{type:"button",className:W("inline-flex h-8 items-center gap-2 rounded-full px-3 text-[12px] transition",i.fullWidth?"bg-[var(--primary)] text-[var(--ui-ink-on-accent)]":"bg-[var(--ui-surface-2)] text-[var(--ui-ink-medium)] hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]"),onClick:h,children:[i.fullWidth?r.jsx(ne,{className:"size-3.5"}):r.jsx(se,{className:"size-3.5"}),i.fullWidth?"Normal width":"Full width"]}),e.removable!==!1?r.jsxs("button",{type:"button",className:"inline-flex h-8 items-center gap-2 rounded-full bg-[var(--ui-surface-2)] px-3 text-[12px] text-[var(--ui-ink-medium)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",onClick:c,children:[r.jsx(ae,{className:"size-3.5"}),"Hide"]}):null]})]})}function Pe({surfaceId:e,widgets:i,defaultEditing:n=!1,actions:s,normalizeLayout:l}){var w;const c=x.useMemo(()=>JSON.stringify(i.map(t=>({id:t.id,defaultWidth:t.defaultWidth,defaultHidden:t.defaultHidden,defaultPlacement:t.defaultPlacement,defaultFullWidth:t.defaultFullWidth,defaultTitleVisible:t.defaultTitleVisible,defaultDescriptionVisible:t.defaultDescriptionVisible}))),[i]),h=x.useMemo(()=>{const t=P(e,i);return l?l(t):t},[l,e,c]),d=t=>l?l(t):t,[o,f]=x.useState(n),[N,g]=x.useState(1280),[m,b]=x.useState(()=>d(V(e,i,O(e)??h))),p=x.useRef(null),T=x.useRef(!1),y=x.useRef(d(V(e,i,O(e)??h))),z=x.useRef(null),X=ue(ce(de,{activationConstraint:{distance:6}})),C=ge({queryKey:["forge-surface-layout",e],queryFn:()=>Se(e)}),D=(w=C==null?void 0:C.data)==null?void 0:w.layout,L=U({mutationFn:t=>je(e,{order:t.order,widgets:t.widgets})}),q=U({mutationFn:()=>Ne(e)});x.useEffect(()=>{const t=d(V(e,i,D??O(e)??h));b(a=>G(a,t)?a:t),R(t),y.current=t,T.current=!0},[h,D,l,e,c,i]),x.useEffect(()=>{const t=z.current;if(!t||typeof ResizeObserver>"u")return;const a=new ResizeObserver(u=>{var j;const v=((j=u[0])==null?void 0:j.contentRect.width)??t.clientWidth;g(Math.max(320,Math.round(v)))});return a.observe(t),g(Math.max(320,Math.round(t.clientWidth||1280))),()=>a.disconnect()},[]),x.useEffect(()=>{if(T.current&&!G(m,y.current))return R(m),p.current!==null&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>{const t=m;L.mutateAsync(t).then(()=>{y.current=t})},Re),()=>{p.current!==null&&window.clearTimeout(p.current)}},[m,L,e]);const $=Ce(N),E=A[$],_=x.useMemo(()=>Ve(i,m),[m,i]),S=_.filter(t=>{var a;return!((a=m.widgets[t.id])!=null&&a.hidden)}),J=_.filter(t=>{var a;return(a=m.widgets[t.id])==null?void 0:a.hidden});function M(t,a){b(u=>d({...u,widgets:{...u.widgets,[t]:{...u.widgets[t],...a}}}))}function K(t,a){b(u=>d({...u,order:Oe(u.order,t,a)}))}function Y(t){const{active:a,over:u}=t;!u||a.id===u.id||b(v=>{const j=v.order.indexOf(String(a.id)),B=v.order.indexOf(String(u.id));return j===-1||B===-1?v:d({...v,order:ve(v.order,j,B)})})}function Q(){const t=d(P(e,i));b(t),R(t),y.current=t,q.mutateAsync()}return r.jsxs("div",{className:"grid gap-4",children:[o?r.jsx(fe,{sensors:X,collisionDetection:me,onDragEnd:Y,children:r.jsxs("div",{className:"grid gap-3 rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[r.jsx("div",{className:"text-[12px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Visible boxes"}),r.jsx(xe,{items:S.map(t=>t.id),strategy:he,children:r.jsx("div",{className:"grid gap-2",children:S.map((t,a)=>{const u=m.widgets[t.id]??{hidden:!1,fullWidth:!1,titleVisible:!0,descriptionVisible:!0};return r.jsx(Fe,{widget:t,preferences:u,index:a,total:S.length,onMove:v=>K(t.id,v),onToggleHidden:()=>M(t.id,{hidden:!0}),onToggleFullWidth:()=>M(t.id,{fullWidth:!u.fullWidth})},t.id)})})}),J.length>0?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"pt-2 text-[12px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Hidden boxes"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:J.map(t=>r.jsx("button",{type:"button",className:"rounded-full bg-[var(--ui-surface-2)] px-3 py-2 text-sm text-[var(--ui-ink-medium)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",onClick:()=>M(t.id,{hidden:!1}),children:t.title},t.id))})]}):null]})}):null,r.jsxs("div",{ref:z,className:"relative",children:[r.jsx("div",{className:"pointer-events-none absolute top-3 right-3 z-20 flex max-w-[calc(100%-1.5rem)] flex-wrap items-center justify-end gap-1.5",children:r.jsxs("div",{className:"pointer-events-auto flex flex-wrap items-center justify-end gap-1.5",children:[s,o?r.jsxs(H,{type:"button",size:"sm",variant:"secondary",className:"h-8 rounded-full border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] px-2.5 text-[12px] text-[var(--ui-ink-medium)] backdrop-blur-xl hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",onClick:Q,children:[r.jsx(Z,{className:"size-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Reset"})]}):null,r.jsxs(H,{type:"button",size:"sm",variant:o?"primary":"secondary",className:W("h-8 rounded-full px-2 text-[12px] backdrop-blur-xl [&>span]:gap-1.5",o?"bg-[var(--primary)] text-[var(--ui-ink-on-accent)] hover:opacity-95":"border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] text-[var(--ui-ink-medium)] hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]"),onClick:()=>f(t=>!t),children:[r.jsx(ee,{className:"size-3.5"}),r.jsx("span",{className:"hidden xl:inline",children:o?"Done":"Layout"})]})]})}),r.jsx("div",{className:"surface-flow-grid",style:{display:"grid",gap:"16px",gridTemplateColumns:`repeat(${E}, minmax(0, 1fr))`,alignItems:"start"},children:S.map(t=>{const a=m.widgets[t.id]??{hidden:!1,fullWidth:!1,titleVisible:!0,descriptionVisible:!0},u=a.fullWidth?E:Math.min(Ee(t,$),E);return r.jsx("div",{style:{gridColumn:`span ${u} / span ${u}`},children:r.jsx(Ae,{definition:t,preferences:a,editing:o,width:u,children:r.jsx(ke,{boxId:t.workbenchBoxId??`surface:${e}:${t.id}`,surfaceId:e,children:t.render({compact:u<=4,width:u,editing:o,preferences:a})})})},t.id)})})]})]})}function $e({surfaceId:e,baseWidgets:i,actions:n,normalizeLayout:s}){return r.jsx(Pe,{surfaceId:e,widgets:i,normalizeLayout:s,actions:r.jsxs(r.Fragment,{children:[n,r.jsxs(le,{to:`/workbench?surface=${encodeURIComponent(e)}`,className:"inline-flex h-8 items-center gap-1.5 rounded-full border border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] px-2.5 text-[12px] font-medium text-[var(--ui-ink-medium)] backdrop-blur-xl transition hover:border-[var(--ui-border-strong)] hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",children:[r.jsx(oe,{className:"size-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Workbench"})]})]})})}export{$e as A};
1
+ import{j as r,r as x,cL as Q,cV as ee,bz as te,cW as re,cX as ie,cY as ne,cZ as se,c_ as ae,aC as le,b2 as oe}from"./vendor-Dgw7UY7q.js";import{u as ue,a as ce,P as de,D as fe,c as me,S as xe,v as he,d as ve,b as be,C as pe}from"./board-Dl7As76Q.js";import{i as ge,k as H}from"./state-CkEUXgqt.js";import{ct as je,cu as Ne,B as U,c as W,C as ye,cv as Se}from"./index-C0CztQTU.js";function ke({children:e}){return r.jsx(r.Fragment,{children:e})}const k={lg:1280,md:996,sm:768,xs:480},A={lg:12,md:10,sm:6,xs:4,xxs:2},We="forge.surface-layout.v3";function I(e){return`${We}.${e}`}function F(e,i,n){return Math.min(Math.max(e,i),n)}function Ce(e){return e>=k.lg?"lg":e>=k.md?"md":e>=k.sm?"sm":e>=k.xs?"xs":"xxs"}function Ee(e,i){const n=A[i];if(i==="lg")return F(e.defaultWidth,e.minWidth??1,Math.min(e.maxWidth??n,n));const s=Math.round(e.defaultWidth/A.lg*n);return F(Math.max(e.minWidth??1,s||(e.minWidth??1)),e.minWidth??1,Math.min(e.maxWidth??n,n))}function Me(e){return{hidden:e.defaultHidden??!1,fullWidth:e.defaultFullWidth??!1,titleVisible:e.defaultTitleVisible??!0,descriptionVisible:e.defaultDescriptionVisible??!0}}function P(e,i){const n=[...i.filter(s=>s.defaultPlacement==="top"),...i.filter(s=>s.defaultPlacement!=="top")];return{surfaceId:e,order:n.map(s=>s.id),widgets:Object.fromEntries(i.map(s=>[s.id,Me(s)])),updatedAt:new Date(0).toISOString()}}function V(e,i,n){const s=P(e,i),l=new Set(i.map(o=>o.id)),c=((n==null?void 0:n.order)??[]).filter(o=>l.has(o)),h=s.order.filter(o=>!c.includes(o)),d=Object.fromEntries(i.map(o=>{var N,g,m,b,p;const f=(N=n==null?void 0:n.widgets)==null?void 0:N[o.id];return[o.id,{...s.widgets[o.id],hidden:(f==null?void 0:f.hidden)??((g=s.widgets[o.id])==null?void 0:g.hidden)??!1,fullWidth:(f==null?void 0:f.fullWidth)??((m=s.widgets[o.id])==null?void 0:m.fullWidth)??!1,titleVisible:(f==null?void 0:f.titleVisible)??((b=s.widgets[o.id])==null?void 0:b.titleVisible)??!0,descriptionVisible:(f==null?void 0:f.descriptionVisible)??((p=s.widgets[o.id])==null?void 0:p.descriptionVisible)??!0}]}));return{surfaceId:e,order:[...c,...h],widgets:d,updatedAt:typeof(n==null?void 0:n.updatedAt)=="string"?n.updatedAt:s.updatedAt}}function Ve(e,i){const n=new Map(i.order.map((s,l)=>[s,l]));return[...e].sort((s,l)=>{const c=n.get(s.id)??Number.MAX_SAFE_INTEGER,h=n.get(l.id)??Number.MAX_SAFE_INTEGER;return c!==h?c-h:s.id.localeCompare(l.id)})}function Oe(e,i,n){const s=e.indexOf(i);if(s===-1)return e;const l=F(n,0,e.length-1);if(s===l)return e;const c=[...e];return c.splice(s,1),c.splice(l,0,i),c}function O(e){if(typeof window>"u")return null;try{const i=window.localStorage.getItem(I(e));return i?JSON.parse(i):null}catch{return null}}function R(e){if(!(typeof window>"u"))try{window.localStorage.setItem(I(e.surfaceId),JSON.stringify(e))}catch{}}const Re=500;function G(e,i){return e.surfaceId===i.surfaceId&&JSON.stringify(e.order)===JSON.stringify(i.order)&&JSON.stringify(e.widgets)===JSON.stringify(i.widgets)}function Ae({definition:e,preferences:i,editing:n,width:s,children:l}){const c=s<=4;return e.surfaceChrome==="none"?r.jsx("div",{"data-surface-card":"true",className:W("min-w-0",n&&"rounded-[28px] ring-1 ring-[var(--ui-border-subtle)] ring-inset"),children:l}):r.jsxs(ye,{"data-surface-card":"true",className:W("surface-grid-card flex min-w-0 flex-col gap-3 overflow-visible p-4 md:p-5",n&&"ring-1 ring-[var(--ui-border-subtle)]"),children:[i.titleVisible||i.descriptionVisible&&e.description?r.jsxs("div",{className:"min-w-0",children:[i.titleVisible?r.jsx("div",{className:"truncate text-[0.72rem] font-semibold uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:e.title}):null,i.descriptionVisible&&e.description&&!c?r.jsx("div",{className:"mt-1 text-[12px] leading-5 text-[var(--ui-ink-soft)]",children:e.description}):null]}):null,r.jsx("div",{className:"min-h-0 flex-1",children:l})]})}function Fe({widget:e,preferences:i,index:n,total:s,onMove:l,onToggleHidden:c,onToggleFullWidth:h}){const d=be({id:e.id});return r.jsxs("div",{ref:d.setNodeRef,style:{transform:pe.Transform.toString(d.transform),transition:d.transition},className:"flex min-w-0 items-center gap-2 rounded-[18px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-3 py-2.5",children:[r.jsx("button",{type:"button",className:"inline-flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--ui-surface-2)] text-[var(--ui-ink-soft)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]","aria-label":`Drag ${e.title}`,...d.attributes,...d.listeners,children:r.jsx(te,{className:"size-4"})}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsx("div",{className:"truncate text-sm font-medium text-[var(--ui-ink-strong)]",children:e.title}),e.description?r.jsx("div",{className:"truncate text-[12px] text-[var(--ui-ink-faint)]",children:e.description}):null]}),r.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[r.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center rounded-full bg-[var(--ui-surface-2)] text-[var(--ui-ink-soft)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)] disabled:opacity-40",onClick:()=>l(n-1),disabled:n===0,"aria-label":`Move ${e.title} up`,children:r.jsx(re,{className:"size-3.5"})}),r.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center rounded-full bg-[var(--ui-surface-2)] text-[var(--ui-ink-soft)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)] disabled:opacity-40",onClick:()=>l(n+1),disabled:n===s-1,"aria-label":`Move ${e.title} down`,children:r.jsx(ie,{className:"size-3.5"})}),r.jsxs("button",{type:"button",className:W("inline-flex h-8 items-center gap-2 rounded-full px-3 text-[12px] transition",i.fullWidth?"bg-[var(--primary)] text-[var(--ui-ink-on-accent)]":"bg-[var(--ui-surface-2)] text-[var(--ui-ink-medium)] hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]"),onClick:h,children:[i.fullWidth?r.jsx(ne,{className:"size-3.5"}):r.jsx(se,{className:"size-3.5"}),i.fullWidth?"Normal width":"Full width"]}),e.removable!==!1?r.jsxs("button",{type:"button",className:"inline-flex h-8 items-center gap-2 rounded-full bg-[var(--ui-surface-2)] px-3 text-[12px] text-[var(--ui-ink-medium)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",onClick:c,children:[r.jsx(ae,{className:"size-3.5"}),"Hide"]}):null]})]})}function Pe({surfaceId:e,widgets:i,defaultEditing:n=!1,actions:s,normalizeLayout:l}){var B;const c=x.useMemo(()=>JSON.stringify(i.map(t=>({id:t.id,defaultWidth:t.defaultWidth,defaultHidden:t.defaultHidden,defaultPlacement:t.defaultPlacement,defaultFullWidth:t.defaultFullWidth,defaultTitleVisible:t.defaultTitleVisible,defaultDescriptionVisible:t.defaultDescriptionVisible}))),[i]),h=x.useMemo(()=>{const t=P(e,i);return l?l(t):t},[l,e,c]),d=t=>l?l(t):t,[o,f]=x.useState(n),[N,g]=x.useState(1280),[m,b]=x.useState(()=>d(V(e,i,O(e)??h))),p=x.useRef(null),z=x.useRef(!1),y=x.useRef(d(V(e,i,O(e)??h))),T=x.useRef(null),X=ue(ce(de,{activationConstraint:{distance:6}})),C=ge({queryKey:["forge-surface-layout",e],queryFn:()=>Se(e)}),D=(B=C==null?void 0:C.data)==null?void 0:B.layout,L=H({mutationFn:t=>je(e,{order:t.order,widgets:t.widgets})}),q=H({mutationFn:()=>Ne(e)});x.useEffect(()=>{const t=d(V(e,i,D??O(e)??h));b(a=>G(a,t)?a:t),R(t),y.current=t,z.current=!0},[h,D,l,e,c,i]),x.useEffect(()=>{const t=T.current;if(!t||typeof ResizeObserver>"u")return;const a=new ResizeObserver(u=>{var j;const v=((j=u[0])==null?void 0:j.contentRect.width)??t.clientWidth;g(Math.max(320,Math.round(v)))});return a.observe(t),g(Math.max(320,Math.round(t.clientWidth||1280))),()=>a.disconnect()},[]),x.useEffect(()=>{if(z.current&&!G(m,y.current))return R(m),p.current!==null&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>{const t=m;L.mutateAsync(t).then(()=>{y.current=t})},Re),()=>{p.current!==null&&window.clearTimeout(p.current)}},[m,L,e]);const $=Ce(N),E=A[$],_=x.useMemo(()=>Ve(i,m),[m,i]),S=_.filter(t=>{var a;return!((a=m.widgets[t.id])!=null&&a.hidden)}),w=_.filter(t=>{var a;return(a=m.widgets[t.id])==null?void 0:a.hidden});function M(t,a){b(u=>d({...u,widgets:{...u.widgets,[t]:{...u.widgets[t],...a}}}))}function K(t,a){b(u=>d({...u,order:Oe(u.order,t,a)}))}function Y(t){const{active:a,over:u}=t;!u||a.id===u.id||b(v=>{const j=v.order.indexOf(String(a.id)),J=v.order.indexOf(String(u.id));return j===-1||J===-1?v:d({...v,order:ve(v.order,j,J)})})}function Z(){const t=d(P(e,i));b(t),R(t),y.current=t,q.mutateAsync()}return r.jsxs("div",{className:"grid gap-4",children:[o?r.jsx(fe,{sensors:X,collisionDetection:me,onDragEnd:Y,children:r.jsxs("div",{className:"grid gap-3 rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[r.jsx("div",{className:"text-[12px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Visible boxes"}),r.jsx(xe,{items:S.map(t=>t.id),strategy:he,children:r.jsx("div",{className:"grid gap-2",children:S.map((t,a)=>{const u=m.widgets[t.id]??{hidden:!1,fullWidth:!1,titleVisible:!0,descriptionVisible:!0};return r.jsx(Fe,{widget:t,preferences:u,index:a,total:S.length,onMove:v=>K(t.id,v),onToggleHidden:()=>M(t.id,{hidden:!0}),onToggleFullWidth:()=>M(t.id,{fullWidth:!u.fullWidth})},t.id)})})}),w.length>0?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"pt-2 text-[12px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:"Hidden boxes"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:w.map(t=>r.jsx("button",{type:"button",className:"rounded-full bg-[var(--ui-surface-2)] px-3 py-2 text-sm text-[var(--ui-ink-medium)] transition hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",onClick:()=>M(t.id,{hidden:!1}),children:t.title},t.id))})]}):null]})}):null,r.jsxs("div",{ref:T,className:"relative",children:[r.jsx("div",{className:"pointer-events-none absolute top-3 right-3 z-20 flex max-w-[calc(100%-1.5rem)] flex-wrap items-center justify-end gap-1.5",children:r.jsxs("div",{className:"pointer-events-auto flex flex-wrap items-center justify-end gap-1.5",children:[s,o?r.jsxs(U,{type:"button",size:"sm",variant:"secondary",className:"h-8 rounded-full border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] px-2.5 text-[12px] text-[var(--ui-ink-medium)] backdrop-blur-xl hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",onClick:Z,children:[r.jsx(Q,{className:"size-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Reset"})]}):null,r.jsxs(U,{type:"button",size:"sm",variant:o?"primary":"secondary",className:W("h-8 rounded-full px-2 text-[12px] backdrop-blur-xl [&>span]:gap-1.5",o?"bg-[var(--primary)] text-[var(--ui-ink-on-accent)] hover:opacity-95":"border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] text-[var(--ui-ink-medium)] hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]"),onClick:()=>f(t=>!t),children:[r.jsx(ee,{className:"size-3.5"}),r.jsx("span",{className:"hidden xl:inline",children:o?"Done":"Layout"})]})]})}),r.jsx("div",{className:"surface-flow-grid",style:{display:"grid",gap:"16px",gridTemplateColumns:`repeat(${E}, minmax(0, 1fr))`,alignItems:"start"},children:S.map(t=>{const a=m.widgets[t.id]??{hidden:!1,fullWidth:!1,titleVisible:!0,descriptionVisible:!0},u=a.fullWidth?E:Math.min(Ee(t,$),E);return r.jsx("div",{style:{gridColumn:`span ${u} / span ${u}`},children:r.jsx(Ae,{definition:t,preferences:a,editing:o,width:u,children:r.jsx(ke,{boxId:t.workbenchBoxId??`surface:${e}:${t.id}`,surfaceId:e,children:t.render({compact:u<=4,width:u,editing:o,preferences:a})})})},t.id)})})]})]})}function $e({surfaceId:e,baseWidgets:i,actions:n,normalizeLayout:s}){return r.jsx(Pe,{surfaceId:e,widgets:i,normalizeLayout:s,actions:r.jsxs(r.Fragment,{children:[n,r.jsxs(le,{to:`/workbench?surface=${encodeURIComponent(e)}`,className:"inline-flex h-8 items-center gap-1.5 rounded-full border border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] px-2.5 text-[12px] font-medium text-[var(--ui-ink-medium)] backdrop-blur-xl transition hover:border-[var(--ui-border-strong)] hover:bg-[var(--ui-surface-hover)] hover:text-[var(--ui-ink-strong)]",children:[r.jsx(oe,{className:"size-3.5"}),r.jsx("span",{className:"hidden sm:inline",children:"Workbench"})]})]})})}export{$e as A};
@@ -0,0 +1,2 @@
1
+ import{b_ as Ke,b7 as Re,r as c,j as e,b$ as qe,c0 as Be,c1 as fe,c2 as $e,c3 as Qe,aX as Ge,c4 as Je,c5 as He,aQ as We,aG as Xe,aD as Ye,c6 as Ze,c7 as ge,c8 as ve}from"./vendor-Dgw7UY7q.js";import{j as Ve,i as R,k as N}from"./state-CkEUXgqt.js";import{F as w,Q as be}from"./question-flow-dialog-B4B3BI8e.js";import{P as et}from"./page-hero-ED69y6m0.js";import{I as j,B as p,T as U,C as y,e as je,h as ye,j as u,c as Y,k as tt,m as st,n as at,o as rt,p as it,q as nt,t as ot,v as lt,w as dt,x as ct,y as mt}from"./index-C0CztQTU.js";import"./ui-CDt36qNz.js";import"./motion-eRlWWQT8.js";import"./board-Dl7As76Q.js";import"./forms-DznAv9hZ.js";const ut=["low","moderate","high","blocked"],xt=["spreadsheet","document","presentation","pdf","text","structured_text","image"],H=50;function k(r){if(!Number.isFinite(r)||r<=0)return"0 B";const o=["B","KB","MB","GB"];let l=r,d=0;for(;l>=1024&&d<o.length-1;)l/=1024,d+=1;return`${l.toFixed(l>=10||d===0?0:1)} ${o[d]}`}function f(r){return r.replaceAll("_"," ").replace(/\b\w/g,o=>o.toUpperCase())}function Z(r){return r==="blocked"?"border-red-400/40 bg-red-500/12 text-red-100":r==="high"?"border-orange-400/40 bg-orange-500/12 text-orange-100":r==="moderate"?"border-yellow-300/35 bg-yellow-300/10 text-yellow-100":"border-emerald-300/35 bg-emerald-400/10 text-emerald-100"}function pt(r){return typeof r=="object"&&r!==null&&Array.isArray(r.findings)}function ht(r){return!r||!pt(r.scanResults)?[]:r.scanResults.findings}function ft(r){return new Promise((o,l)=>{const d=new FileReader;d.onload=()=>{const g=typeof d.result=="string"?d.result:"",v=g.includes(",")?g.slice(g.indexOf(",")+1):g;o(v)},d.onerror=()=>l(d.error??new Error("Unable to read file.")),d.readAsDataURL(r)})}function gt(r){const o=r.name.replace(/\.[^.]+$/,"").replace(/[_-]+/g," ").trim();return{id:typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${r.name}-${r.size}-${r.lastModified}-${Math.random().toString(36).slice(2)}`,file:r,title:o,shortDescription:"",description:"",sourceLabel:"",sourceKind:"upload",useLlmEnrichment:!1,genericLinksText:"",metadataText:""}}function Ne(r,o){return o.length===0?r:{...r,items:[...r.items,...o.map(gt)],activeItemId:null}}function h(r,o,l){return{...r,items:r.items.map(d=>d.id===o?{...d,...l}:d)}}function vt(r,o){return{items:r.items.filter(l=>l.id!==o),activeItemId:r.activeItemId===o?null:r.activeItemId}}function we(r){const o=r.trim();if(!o)return{};const l=JSON.parse(o);if(!l||typeof l!="object"||Array.isArray(l))throw new Error("Metadata JSON must be an object.");return l}function ke(r){return r instanceof Error?r.message:String(r)}const W={items:[],activeItemId:null},bt=[".xlsx",".xlsm",".docx",".pptx",".pdf",".csv",".tsv",".txt",".md",".json",".yaml",".yml",".png",".jpg",".jpeg",".webp"].join(","),jt=["upload","agent_upload","wiki_ingest","external_reference","manual"];function Se(r){return r.split(/\n+/).map(o=>o.trim()).filter(Boolean).map(o=>{const[l="",d="",g="related",v=""]=o.split(":").map(q=>q.trim());return{entityType:l,entityId:d,relationship:g,anchorKey:v}}).filter(o=>o.entityType.length>0&&o.entityId.length>0)}function yt(r){return r.map(o=>[o.targetEntityType,o.targetEntityId,o.relationship||"related",o.anchorKey??""].filter((l,d)=>d<3||l.length>0).join(":")).join(`
2
+ `)}function Nt({artifact:r,selected:o,onSelect:l}){return e.jsxs("button",{type:"button",onClick:l,className:Y("w-full rounded-[var(--radius-card)] border p-3 text-left transition",o?"border-[color-mix(in_srgb,var(--primary)_45%,var(--ui-border-subtle)_55%)] bg-[var(--ui-accent-soft)]":"border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] hover:bg-[var(--ui-surface-hover)]"),children:[e.jsxs("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-medium text-[var(--ui-ink-strong)]",children:r.title}),e.jsx("div",{className:"mt-1 truncate text-xs text-[var(--ui-ink-muted)]",children:r.originalFileName})]}),e.jsxs(u,{size:"xs",className:Y("shrink-0",Z(r.dangerLevel)),children:[r.dangerScore,"/100"]})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsx(u,{size:"xs",tone:"meta",children:r.detectedExtension.toUpperCase()}),e.jsx(u,{size:"xs",tone:"meta",children:k(r.byteSize)}),e.jsx(u,{size:"xs",tone:"meta",children:f(r.artifactState)})]})]})}function X({result:r}){return r?r.status==="success"?e.jsx(u,{size:"xs",className:"border-emerald-300/35 bg-emerald-400/10 text-emerald-100",children:"Uploaded"}):e.jsx(u,{size:"xs",className:"border-red-400/40 bg-red-500/12 text-red-100",children:"Failed"}):e.jsx(u,{size:"xs",tone:"meta",children:"Pending"})}function Tt(){var le,de,ce,me,ue,xe,pe,he;const{artifactId:r}=Ke(),o=Re(),l=Ve(),[d,g]=c.useState(""),[v,q]=c.useState(""),[M,Ce]=c.useState(""),[S,O]=c.useState(0),[I,B]=c.useState(!1),[Fe,P]=c.useState(!1),[_,$]=c.useState(W),[C,E]=c.useState([]),[Le,D]=c.useState(null),[Q,G]=c.useState(null),[V,ee]=c.useState(""),x=R({queryKey:["artifacts",d,v,M,S],queryFn:()=>lt({query:d||void 0,dangerLevel:v||void 0,formatFamily:M||void 0,limit:H,offset:S*H})}),b=((le=x.data)==null?void 0:le.artifacts)??[],T=((de=x.data)==null?void 0:de.total)??b.length,te=((ce=x.data)==null?void 0:ce.offset)??S*H,Ie=T===0?0:te+1,Ee=Math.min(te+b.length,T),De=S>0,Te=!!((me=x.data)!=null&&me.hasMore),A=R({queryKey:["artifact",r],enabled:!!r,queryFn:()=>dt(r)}),s=c.useMemo(()=>{var t;return r?((t=A.data)==null?void 0:t.artifact)??null:b[0]??null},[r,b,(ue=A.data)==null?void 0:ue.artifact]),se=R({queryKey:["artifact-versions",s==null?void 0:s.id],enabled:!!(s!=null&&s.id),queryFn:()=>ct(s.id)}),Ae=R({queryKey:["artifact-audit",s==null?void 0:s.id],enabled:!!(s!=null&&s.id),queryFn:()=>mt(s.id)});c.useEffect(()=>{!r&&s&&!I&&o(`/artifacts/${s.id}`,{replace:!0})},[r,o,s,I]),c.useEffect(()=>{O(0)},[d,v,M]),c.useEffect(()=>{S>0&&x.data&&b.length===0&&O(t=>Math.max(0,t-1))},[b.length,x.data,S]),c.useEffect(()=>{s||P(!1)},[s]),c.useEffect(()=>{!I&&Q&&(o(`/artifacts/${Q}`),G(null))},[o,I,Q]);const F=async()=>{await Promise.all([l.invalidateQueries({queryKey:["artifacts"]}),l.invalidateQueries({queryKey:["artifact"]}),l.invalidateQueries({queryKey:["artifact-versions"]}),l.invalidateQueries({queryKey:["artifact-audit"]}),l.invalidateQueries({queryKey:["knowledge-graph"]})])},K=N({mutationFn:async t=>{if(t.length===0)throw new Error("Choose one or more files first.");const n=[];for(const a of t)try{const i={title:a.title.trim()||void 0,shortDescription:a.shortDescription,description:a.description,originalFileName:a.file.name,declaredMimeType:a.file.type,contentBase64:await ft(a.file),sourceKind:a.sourceKind,sourceLabel:a.sourceLabel,metadata:we(a.metadataText),links:Se(a.genericLinksText),useLlmEnrichment:a.useLlmEnrichment},{artifact:m}=await ot(i);n.push({itemId:a.id,fileName:a.file.name,status:"success",artifactId:m.id,title:m.title})}catch(i){n.push({itemId:a.id,fileName:a.file.name,status:"error",error:ke(i)})}return n},onSuccess:async t=>{E(a=>{const i=new Map(a.map(m=>[m.itemId,m]));for(const m of t)i.set(m.itemId,m);return Array.from(i.values())}),await F();const n=t.find(a=>a.status==="success");(n==null?void 0:n.status)==="success"&&G(n.artifactId)}}),J=N({mutationFn:t=>it(s.id,t),onSuccess:F}),ae=N({mutationFn:()=>tt(s.id),onSuccess:F}),re=N({mutationFn:()=>st(s.id,{fillMissingOnly:!0}),onSuccess:F}),ie=N({mutationFn:t=>nt(s.id,t),onSuccess:F}),ne=N({mutationFn:async()=>{const t=s,n=await at(t.id),a=URL.createObjectURL(n.blob),i=document.createElement("a");i.href=a,i.download=n.fileName??t.originalFileName,document.body.append(i),i.click(),i.remove(),URL.revokeObjectURL(a)}}),z=N({mutationFn:async()=>{const n=await rt({atomic:!0,operations:[{entityType:"artifact",id:s.id,mode:"soft",reason:"Archived from the Artifact Store web app."}]}),a=n.results[0];if(!(a!=null&&a.ok)){const i=a==null?void 0:a.error,m=typeof i=="string"?i:(i==null?void 0:i.message)??"Forge could not archive this artifact.";throw new Error(m)}return n},onSuccess:async()=>{P(!1),await F(),o("/artifacts",{replace:!0})}}),oe=ht(s),ze=((xe=se.data)==null?void 0:xe.versions.length)??0,Ue=((pe=Ae.data)==null?void 0:pe.events)??[];c.useEffect(()=>{ee(s?yt(s.links):"")},[s==null?void 0:s.id,s==null?void 0:s.links.length,s==null?void 0:s.updatedAt]);const L=c.useMemo(()=>new Map(C.map(t=>[t.itemId,t])),[C]),Me=()=>{$(W),E([]),D(null),G(null),B(!0)},Oe=c.useMemo(()=>[{id:"files",eyebrow:"Select",title:"Choose the files to preserve",description:"Select one or more trusted files. Forge stores bytes content-addressably, scans them conservatively, and keeps downloads human-only.",render:(t,n)=>e.jsxs("div",{className:"grid gap-4",children:[e.jsx("div",{className:"rounded-[26px] border border-dashed border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-5",onDragOver:a=>a.preventDefault(),onDrop:a=>{a.preventDefault(),E([]),n(Ne(t,Array.from(a.dataTransfer.files)))},children:e.jsxs("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(qe,{className:"size-4 text-[var(--primary)]"}),"Files"]}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-[var(--ui-ink-muted)]",children:"Spreadsheets, documents, PDFs, text, structured text, and images are supported."})]}),e.jsx(j,{"aria-label":"Artifact files",type:"file",multiple:!0,accept:bt,className:"w-full sm:max-w-xs",onChange:a=>{const i=Array.from(a.target.files??[]);E([]),n(Ne(t,i)),a.target.value=""}})]})}),t.items.length===0?e.jsx("div",{className:"rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-4 py-3 text-sm text-[var(--ui-ink-muted)]",children:"No files selected yet."}):e.jsx("div",{className:"grid gap-2",children:t.items.map(a=>e.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-3 rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-4 py-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:a.file.name}),e.jsxs("div",{className:"mt-1 text-xs text-[var(--ui-ink-muted)]",children:[k(a.file.size)," ·"," ",a.file.type||"unknown type"]})]}),e.jsx(X,{result:L.get(a.id)})]},a.id))})]})},{id:"queue",eyebrow:"Describe",title:"Review each file before upload",description:"Add quick descriptions from the queue, or open a file's details for provenance, links, metadata JSON, and LLM enrichment.",render:(t,n)=>{const a=t.items.find(i=>i.id===t.activeItemId);return a?e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-medium",children:a.file.name}),e.jsxs("div",{className:"mt-1 text-xs text-[var(--ui-ink-muted)]",children:[k(a.file.size)," ·"," ",a.file.type||"unknown type"]})]}),e.jsx(p,{type:"button",variant:"secondary",onClick:()=>n({activeItemId:null}),children:"Back to file queue"})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(w,{label:"Title",children:e.jsx(j,{value:a.title,onChange:i=>n(h(t,a.id,{title:i.target.value}))})}),e.jsx(w,{label:"Source kind",children:e.jsx("select",{value:a.sourceKind,onChange:i=>n(h(t,a.id,{sourceKind:i.target.value})),className:"interactive-tap min-h-10 rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)] px-3 text-sm text-[var(--ui-ink-strong)]",children:jt.map(i=>e.jsx("option",{value:i,children:f(i)},i))})})]}),e.jsx(w,{label:"Short description",children:e.jsx(j,{value:a.shortDescription,onChange:i=>n(h(t,a.id,{shortDescription:i.target.value}))})}),e.jsx(w,{label:"Long description",children:e.jsx(U,{value:a.description,onChange:i=>n(h(t,a.id,{description:i.target.value}))})}),e.jsx(w,{label:"Source label or provenance note",children:e.jsx(j,{value:a.sourceLabel,onChange:i=>n(h(t,a.id,{sourceLabel:i.target.value})),placeholder:"Where this file came from or why it is worth preserving"})}),e.jsx(w,{label:"Generic entity links",hint:"One per line: entityType:entityId:relationship:anchorKey",children:e.jsx(U,{value:a.genericLinksText,onChange:i=>n(h(t,a.id,{genericLinksText:i.target.value}))})}),e.jsx(w,{label:"Metadata JSON",hint:'Optional object, for example {"period":"Q2","owner":"Albert"}',children:e.jsx(U,{value:a.metadataText,onChange:i=>n(h(t,a.id,{metadataText:i.target.value}))})}),e.jsxs("label",{className:"flex items-center gap-2 text-sm text-[var(--ui-ink-medium)]",children:[e.jsx("input",{type:"checkbox",checked:a.useLlmEnrichment,onChange:i=>n(h(t,a.id,{useLlmEnrichment:i.target.checked}))}),"Use configured LLM to fill missing metadata for this file"]})]}):e.jsx("div",{className:"grid gap-3",children:t.items.length===0?e.jsx("div",{className:"rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] px-4 py-3 text-sm text-[var(--ui-ink-muted)]",children:"Choose files first."}):t.items.map(i=>e.jsxs("div",{className:"grid gap-3 rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:i.file.name}),e.jsxs("div",{className:"mt-1 text-xs text-[var(--ui-ink-muted)]",children:[k(i.file.size)," ·"," ",i.file.type||"unknown type"]})]}),e.jsxs("div",{className:"flex shrink-0 flex-wrap gap-2",children:[e.jsxs(p,{type:"button",variant:"secondary",onClick:()=>n({activeItemId:i.id}),children:[e.jsx(Be,{className:"size-4"}),"Details"]}),e.jsxs(p,{type:"button",variant:"secondary",onClick:()=>n(vt(t,i.id)),children:[e.jsx(fe,{className:"size-4"}),"Remove"]})]})]}),e.jsx(j,{"aria-label":`Short description for ${i.file.name}`,value:i.shortDescription,onChange:m=>n(h(t,i.id,{shortDescription:m.target.value})),placeholder:"Quick short description"}),e.jsx(X,{result:L.get(i.id)})]},i.id))})}},{id:"review",eyebrow:"Upload",title:"Upload artifacts",description:"Forge will create one artifact per file. Successful files stay saved even if another file fails.",render:t=>{const n=C.filter(i=>i.status==="success").length,a=C.filter(i=>i.status==="error").length;return e.jsxs("div",{className:"grid gap-4",children:[C.length>0?e.jsxs("div",{className:"rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx($e,{className:"size-4 text-[var(--primary)]"}),"Upload results"]}),e.jsxs("p",{className:"mt-2 text-sm text-[var(--ui-ink-muted)]",children:[n," uploaded · ",a," failed"]})]}):null,e.jsx("div",{className:"grid gap-3",children:t.items.map(i=>{const m=L.get(i.id);return e.jsxs("div",{className:"rounded-[24px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:i.title||i.file.name}),e.jsxs("div",{className:"mt-1 text-xs text-[var(--ui-ink-muted)]",children:[i.file.name," · ",k(i.file.size)]}),i.shortDescription?e.jsx("p",{className:"mt-2 text-sm text-[var(--ui-ink-muted)]",children:i.shortDescription}):null]}),e.jsx(X,{result:m})]}),(m==null?void 0:m.status)==="error"?e.jsx("p",{className:"mt-3 rounded-[18px] border border-red-400/30 bg-red-500/10 px-3 py-2 text-sm text-red-100",children:m.error}):null]},i.id)})})]})}}],[L,C]),Pe=c.useMemo(()=>[{id:"confirm",eyebrow:"Delete",title:"Delete this artifact record?",description:"Forge will move the artifact metadata to the shared bin. The stored file bytes are preserved, and the record can be restored through Forge's normal restore flow.",render:()=>e.jsxs("div",{className:"rounded-[24px] border border-red-400/30 bg-red-500/10 p-4 text-sm leading-6 text-[var(--ui-ink-medium)]",children:[e.jsx("div",{className:"font-medium text-[var(--ui-ink-strong)]",children:(s==null?void 0:s.title)??"Selected artifact"}),e.jsx("div",{className:"mt-1 break-all text-xs text-[var(--ui-ink-muted)]",children:(s==null?void 0:s.originalFileName)??""}),e.jsx("p",{className:"mt-3",children:"This is a metadata delete/archive action, not a file execution or byte deletion. Human-only download and safety rules remain in force."})]})}],[s==null?void 0:s.originalFileName,s==null?void 0:s.title]),_e=async()=>{const t=_.items.filter(n=>{var a;return((a=L.get(n.id))==null?void 0:a.status)!=="success"});if(_.items.length===0){D("Choose one or more files first.");return}if(t.length===0){B(!1),$(W),E([]);return}try{for(const n of t)we(n.metadataText)}catch(n){D(ke(n));return}D(null),await K.mutateAsync(t)};return e.jsxs("div",{className:"min-h-full bg-[var(--ui-bg)] text-[var(--ui-ink-strong)]",children:[e.jsx(et,{entityKind:"artifact",title:"Artifacts",description:"Trusted file storage for precise metadata, safety scans, provenance, generic entity links, and human-only downloads.",badge:`${T} stored`,actions:e.jsxs(p,{type:"button",onClick:Me,children:[e.jsx(Qe,{className:"size-4"}),"Add artifacts"]})}),e.jsxs("main",{className:"grid gap-5 px-5 py-5 lg:grid-cols-[minmax(280px,380px)_minmax(0,1fr)] lg:px-7",children:[e.jsxs("section",{className:"space-y-4",children:[e.jsxs(y,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Ge,{className:"size-4 text-[var(--primary)]"}),"Store"]}),e.jsx(j,{value:d,onChange:t=>g(t.target.value),placeholder:"Search title, file, description, provenance"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("select",{value:v,onChange:t=>q(t.target.value),className:"interactive-tap min-h-10 rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)] px-3 text-sm text-[var(--ui-ink-strong)]",children:[e.jsx("option",{value:"",children:"Any danger"}),ut.map(t=>e.jsx("option",{value:t,children:f(t)},t))]}),e.jsxs("select",{value:M,onChange:t=>Ce(t.target.value),className:"interactive-tap min-h-10 rounded-[22px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-2)] px-3 text-sm text-[var(--ui-ink-strong)]",children:[e.jsx("option",{value:"",children:"Any format"}),xt.map(t=>e.jsx("option",{value:t,children:f(t)},t))]})]})]}),e.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs text-[var(--ui-ink-muted)]",children:[e.jsx("span",{children:T===0?"No matching artifacts":`Showing ${Ie}-${Ee} of ${T}`}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(p,{type:"button",size:"sm",variant:"secondary",disabled:!De||x.isFetching,onClick:()=>O(t=>Math.max(0,t-1)),"aria-label":"Previous artifact page",children:e.jsx(Je,{className:"size-4"})}),e.jsx(p,{type:"button",size:"sm",variant:"secondary",disabled:!Te||x.isFetching,onClick:()=>O(t=>t+1),"aria-label":"Next artifact page",children:e.jsx(He,{className:"size-4"})})]})]}),e.jsx("div",{className:"max-h-[calc(100vh-23rem)] min-h-[12rem] space-y-2 overflow-y-auto pr-1",children:x.isLoading?e.jsx(y,{className:"text-sm text-[var(--ui-ink-muted)]",children:"Loading artifacts..."}):x.error?e.jsx(je,{error:x.error}):b.length===0?e.jsx(ye,{title:"No artifacts found",description:"Upload a trusted file to create the first artifact record."}):b.map(t=>e.jsx(Nt,{artifact:t,selected:t.id===(s==null?void 0:s.id),onSelect:()=>o(`/artifacts/${t.id}`)},t.id))})]}),e.jsx("section",{className:"min-w-0 space-y-4",children:r&&A.isLoading?e.jsx(y,{className:"text-sm text-[var(--ui-ink-muted)]",children:"Loading artifact..."}):r&&A.error?e.jsx(je,{error:A.error}):s?e.jsxs(e.Fragment,{children:[e.jsxs(y,{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(u,{className:Y(Z(s.dangerLevel)),children:[f(s.dangerLevel)," danger"]}),e.jsx(u,{tone:"meta",children:f(s.artifactState)}),e.jsx(u,{tone:"meta",children:s.detectedExtension.toUpperCase()})]}),e.jsx("h2",{className:"mt-3 break-words text-2xl font-semibold",children:s.title}),e.jsx("p",{className:"mt-2 max-w-3xl text-sm text-[var(--ui-ink-muted)]",children:s.shortDescription||s.description})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(p,{variant:"secondary",type:"button",onClick:()=>ae.mutate(),pending:ae.isPending,children:[e.jsx(We,{className:"size-4"}),"Scan"]}),e.jsxs(p,{variant:"secondary",type:"button",onClick:()=>re.mutate(),pending:re.isPending,children:[e.jsx(Xe,{className:"size-4"}),"Enrich"]}),e.jsxs(p,{type:"button",onClick:()=>ne.mutate(),pending:ne.isPending,disabled:s.downloadPolicy!=="human_only"||s.artifactState==="blocked",children:[e.jsx(Ye,{className:"size-4"}),"Download"]}),e.jsxs(p,{variant:"secondary",type:"button",className:"border-red-400/30 bg-red-500/10 text-red-100 hover:border-red-300/50 hover:bg-red-500/15",onClick:()=>P(!0),pending:z.isPending,children:[e.jsx(fe,{className:"size-4"}),"Delete"]})]})]}),e.jsx("div",{className:"grid gap-3 md:grid-cols-4",children:[["File",s.originalFileName],["Size",k(s.byteSize)],["Versions",ze],["Links",s.links.length]].map(([t,n])=>e.jsxs("div",{className:"rounded-[var(--radius-card)] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-3",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.16em] text-[var(--ui-ink-faint)]",children:t}),e.jsx("div",{className:"mt-1 truncate text-sm font-medium",children:n})]},t))}),e.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[e.jsx(j,{defaultValue:s.title,onBlur:t=>{const n=t.target.value.trim();n&&n!==s.title&&J.mutate({title:n})},"aria-label":"Artifact title"}),e.jsx(j,{defaultValue:s.shortDescription,onBlur:t=>{const n=t.target.value.trim();n!==s.shortDescription&&J.mutate({shortDescription:n})},"aria-label":"Artifact short description"})]}),e.jsx(U,{defaultValue:s.description,onBlur:t=>{const n=t.target.value.trim();n!==s.description&&J.mutate({description:n})},"aria-label":"Artifact description"})]}),e.jsxs("div",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_minmax(280px,360px)]",children:[e.jsxs(y,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(Ze,{className:"size-4 text-[var(--primary)]"}),"Safety Findings"]}),oe.length===0?e.jsx("p",{className:"text-sm text-[var(--ui-ink-muted)]",children:"No findings recorded."}):e.jsx("div",{className:"space-y-2",children:oe.map(t=>e.jsxs("div",{className:"rounded-[var(--radius-card)] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(u,{size:"xs",className:Z(t.severity),children:f(t.severity)}),e.jsx("span",{className:"text-xs font-medium text-[var(--ui-ink-medium)]",children:t.code})]}),e.jsx("p",{className:"mt-2 text-sm text-[var(--ui-ink-muted)]",children:t.message})]},`${t.code}:${t.message}`))})]}),e.jsxs(y,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(ge,{className:"size-4 text-[var(--primary)]"}),"Entity Links"]}),s.links.length===0?e.jsx("p",{className:"text-sm text-[var(--ui-ink-muted)]",children:"No linked entities."}):e.jsx("div",{className:"space-y-2",children:s.links.map(t=>e.jsxs("div",{className:"rounded-[var(--radius-card)] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-3 text-sm",children:[e.jsx("div",{className:"font-medium",children:f(t.targetEntityType)}),e.jsx("div",{className:"mt-1 break-all text-xs text-[var(--ui-ink-muted)]",children:t.targetEntityId}),e.jsx(u,{className:"mt-2",size:"xs",tone:"meta",children:f(t.relationship)}),t.anchorKey?e.jsxs("div",{className:"mt-2 text-xs text-[var(--ui-ink-muted)]",children:["Anchor: ",t.anchorKey]}):null]},`${t.targetEntityType}:${t.targetEntityId}:${t.relationship}`))}),e.jsx(U,{value:V,onChange:t=>ee(t.target.value),placeholder:"Generic entity links, one per line: entityType:entityId:relationship:anchorKey","aria-label":"Generic entity links"}),e.jsxs(p,{type:"button",variant:"secondary",onClick:()=>ie.mutate(Se(V)),pending:ie.isPending,children:[e.jsx(ge,{className:"size-4"}),"Save Links"]})]})]}),e.jsxs("div",{className:"grid gap-4 xl:grid-cols-2",children:[e.jsxs(y,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(ve,{className:"size-4 text-[var(--primary)]"}),"Versions"]}),(((he=se.data)==null?void 0:he.versions)??[]).map(t=>e.jsxs("div",{className:"rounded-[var(--radius-card)] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-3 text-sm",children:[e.jsxs("div",{className:"font-medium",children:["Version ",t.versionNumber]}),e.jsxs("div",{className:"mt-1 text-xs text-[var(--ui-ink-muted)]",children:[k(t.byteSize)," ·"," ",t.originalFileName]})]},t.id))]}),e.jsxs(y,{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(ve,{className:"size-4 text-[var(--primary)]"}),"Audit"]}),Ue.slice(0,10).map(t=>e.jsxs("div",{className:"rounded-[var(--radius-card)] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)] p-3 text-sm",children:[e.jsx("div",{className:"font-medium",children:t.eventType}),e.jsxs("div",{className:"mt-1 text-xs text-[var(--ui-ink-muted)]",children:[new Date(t.createdAt).toLocaleString()," ·"," ",t.source]})]},t.id))]})]})]}):e.jsx(ye,{title:"Select an artifact",description:"Choose an artifact from the list to inspect metadata, scans, links, versions, and audit history."})})]}),e.jsx(be,{open:I,onOpenChange:t=>{B(t),t||D(null)},eyebrow:"Artifact Store",title:"Add artifacts",description:"A guided flow for preserving trusted files with metadata, safety scans, provenance, and generic Forge entity links.",value:_,onChange:$,steps:Oe,pending:K.isPending,pendingLabel:"Uploading",submitLabel:_.items.some(t=>{var n;return((n=L.get(t.id))==null?void 0:n.status)!=="success"})?"Upload artifacts":"All files uploaded",error:Le??(K.error instanceof Error?K.error.message:null),resolveContinueNudge:(t,n)=>t==="files"&&n.items.length===0?"Choose one or more files first.":t==="queue"?"Quick descriptions are enough; use Details when provenance matters.":null,onSubmit:_e}),e.jsx(be,{open:Fe,onOpenChange:P,eyebrow:"Artifact Store",title:"Delete artifact",description:"Move this artifact record to the shared Forge bin while preserving stored bytes.",value:{},onChange:()=>{},steps:Pe,pending:z.isPending,pendingLabel:"Deleting",submitLabel:"Delete artifact",error:z.error instanceof Error?z.error.message:null,onSubmit:async()=>{await z.mutateAsync()}})]})}export{Tt as ArtifactsPage};
@@ -1 +1 @@
1
- import{j as a}from"./vendor-B7FKSwHK.js";import{ad as c,c as d}from"./index-gmPaoLN-.js";function x({eyebrow:s,title:r,description:e,titleHelp:t,tone:n="default",children:i,className:l}){const o={default:"bg-[var(--ui-surface-section)]",mint:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--success)_12%,transparent),transparent_42%),var(--ui-surface-section)]",sky:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--info)_12%,transparent),transparent_42%),var(--ui-surface-section)]",violet:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--primary)_12%,transparent),transparent_42%),var(--ui-surface-section)]",rose:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--danger)_12%,transparent),transparent_42%),var(--ui-surface-section)]",amber:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--warning)_12%,transparent),transparent_42%),var(--ui-surface-section)]"};return a.jsxs("section",{className:d("min-w-0 overflow-hidden rounded-[30px] border border-[var(--ui-border-subtle)] px-4 py-5 shadow-[var(--card-shadow)] sm:px-5 lg:px-6",o[n],l),children:[a.jsx("div",{className:"font-label text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:s}),a.jsxs("div",{className:"mt-3 flex min-w-0 items-start gap-2",children:[a.jsx("h2",{className:"min-w-0 break-words font-display text-[clamp(1.8rem,3.2vw,3rem)] leading-none text-[var(--ui-ink-strong)]",children:r}),t?a.jsx(c,{content:t,label:`Explain ${r.toLowerCase()}`,className:"mt-1 shrink-0"}):null]}),e?a.jsx("p",{className:"mt-3 max-w-3xl break-words text-sm leading-7 text-[var(--ui-ink-soft)]",children:e}):null,a.jsx("div",{className:"mt-5 min-w-0",children:i})]})}export{x as A};
1
+ import{j as a}from"./vendor-Dgw7UY7q.js";import{af as c,c as m}from"./index-C0CztQTU.js";function x({eyebrow:s,title:r,description:e,titleHelp:t,tone:n="default",children:i,className:l}){const o={default:"bg-[var(--ui-surface-section)]",mint:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--success)_12%,transparent),transparent_42%),var(--ui-surface-section)]",sky:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--info)_12%,transparent),transparent_42%),var(--ui-surface-section)]",violet:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--primary)_12%,transparent),transparent_42%),var(--ui-surface-section)]",rose:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--danger)_12%,transparent),transparent_42%),var(--ui-surface-section)]",amber:"bg-[radial-gradient(circle_at_top_left,color-mix(in_srgb,var(--warning)_12%,transparent),transparent_42%),var(--ui-surface-section)]"};return a.jsxs("section",{className:m("min-w-0 overflow-hidden rounded-[30px] border border-[var(--ui-border-subtle)] px-4 py-5 shadow-[var(--card-shadow)] sm:px-5 lg:px-6",o[n],l),children:[a.jsx("div",{className:"font-label text-[11px] uppercase tracking-[0.18em] text-[var(--ui-ink-faint)]",children:s}),a.jsxs("div",{className:"mt-3 flex min-w-0 items-start gap-2",children:[a.jsx("h2",{className:"min-w-0 break-words font-display text-[clamp(1.8rem,3.2vw,3rem)] leading-none text-[var(--ui-ink-strong)]",children:r}),t?a.jsx(c,{content:t,label:`Explain ${r.toLowerCase()}`,className:"mt-1 shrink-0"}):null]}),e?a.jsx("p",{className:"mt-3 max-w-3xl break-words text-sm leading-7 text-[var(--ui-ink-soft)]",children:e}):null,a.jsx("div",{className:"mt-5 min-w-0",children:i})]})}export{x as A};
@@ -1,4 +1,4 @@
1
- import{r as c,R as I,F as Ne}from"./vendor-B7FKSwHK.js";function Mn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return c.useMemo(()=>r=>{t.forEach(o=>o(r))},t)}const nt=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function we(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function mt(e){return"nodeType"in e}function z(e){var t,n;return e?we(e)?e:mt(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function yt(e){const{Document:t}=z(e);return e instanceof t}function Be(e){return we(e)?!1:e instanceof z(e).HTMLElement}function Vt(e){return e instanceof z(e).SVGElement}function xe(e){return e?we(e)?e.document:mt(e)?yt(e)?e:Be(e)||Vt(e)?e.ownerDocument:document:document:document}const V=nt?c.useLayoutEffect:c.useEffect;function rt(e){const t=c.useRef(e);return V(()=>{t.current=e}),c.useCallback(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.current==null?void 0:t.current(...r)},[])}function On(){const e=c.useRef(null),t=c.useCallback((r,o)=>{e.current=setInterval(r,o)},[]),n=c.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function Pe(e,t){t===void 0&&(t=[e]);const n=c.useRef(e);return V(()=>{n.current!==e&&(n.current=e)},t),n}function Fe(e,t){const n=c.useRef();return c.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Je(e){const t=rt(e),n=c.useRef(null),r=c.useCallback(o=>{o!==n.current&&(t==null||t(o,n.current)),n.current=o},[]);return[n,r]}function _e(e){const t=c.useRef();return c.useEffect(()=>{t.current=e},[e]),t.current}let ut={};function $e(e,t){return c.useMemo(()=>{if(t)return t;const n=ut[e]==null?0:ut[e]+1;return ut[e]=n,e+"-"+n},[e,t])}function qt(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((i,s)=>{const a=Object.entries(s);for(const[l,u]of a){const d=i[l];d!=null&&(i[l]=d+e*u)}return i},{...t})}}const ye=qt(1),Qe=qt(-1);function In(e){return"clientX"in e&&"clientY"in e}function ot(e){if(!e)return!1;const{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function Nn(e){if(!e)return!1;const{TouchEvent:t}=z(e.target);return t&&e instanceof t}function Ze(e){if(Nn(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return In(e)?{x:e.clientX,y:e.clientY}:null}const fe=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[fe.Translate.toString(e),fe.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),kt="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function Tn(e){return e.matches(kt)?e:e.querySelector(kt)}const Ln={display:"none"};function kn(e){let{id:t,value:n}=e;return I.createElement("div",{id:t,style:Ln},n)}function Pn(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const o={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return I.createElement("div",{id:t,style:o,role:"status","aria-live":r,"aria-atomic":!0},n)}function zn(){const[e,t]=c.useState("");return{announce:c.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Gt=c.createContext(null);function Bn(e){const t=c.useContext(Gt);c.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function Fn(){const[e]=c.useState(()=>new Set),t=c.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[c.useCallback(r=>{let{type:o,event:i}=r;e.forEach(s=>{var a;return(a=s[o])==null?void 0:a.call(s,i)})},[e]),t]}const $n={draggable:`
1
+ import{r as c,R as I,F as Ne}from"./vendor-Dgw7UY7q.js";function Mn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return c.useMemo(()=>r=>{t.forEach(o=>o(r))},t)}const nt=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function we(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function mt(e){return"nodeType"in e}function z(e){var t,n;return e?we(e)?e:mt(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function yt(e){const{Document:t}=z(e);return e instanceof t}function Be(e){return we(e)?!1:e instanceof z(e).HTMLElement}function Vt(e){return e instanceof z(e).SVGElement}function xe(e){return e?we(e)?e.document:mt(e)?yt(e)?e:Be(e)||Vt(e)?e.ownerDocument:document:document:document}const V=nt?c.useLayoutEffect:c.useEffect;function rt(e){const t=c.useRef(e);return V(()=>{t.current=e}),c.useCallback(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.current==null?void 0:t.current(...r)},[])}function On(){const e=c.useRef(null),t=c.useCallback((r,o)=>{e.current=setInterval(r,o)},[]),n=c.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function Pe(e,t){t===void 0&&(t=[e]);const n=c.useRef(e);return V(()=>{n.current!==e&&(n.current=e)},t),n}function Fe(e,t){const n=c.useRef();return c.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function Je(e){const t=rt(e),n=c.useRef(null),r=c.useCallback(o=>{o!==n.current&&(t==null||t(o,n.current)),n.current=o},[]);return[n,r]}function _e(e){const t=c.useRef();return c.useEffect(()=>{t.current=e},[e]),t.current}let ut={};function $e(e,t){return c.useMemo(()=>{if(t)return t;const n=ut[e]==null?0:ut[e]+1;return ut[e]=n,e+"-"+n},[e,t])}function qt(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((i,s)=>{const a=Object.entries(s);for(const[l,u]of a){const d=i[l];d!=null&&(i[l]=d+e*u)}return i},{...t})}}const ye=qt(1),Qe=qt(-1);function In(e){return"clientX"in e&&"clientY"in e}function ot(e){if(!e)return!1;const{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function Nn(e){if(!e)return!1;const{TouchEvent:t}=z(e.target);return t&&e instanceof t}function Ze(e){if(Nn(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return In(e)?{x:e.clientX,y:e.clientY}:null}const fe=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[fe.Translate.toString(e),fe.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),kt="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function Tn(e){return e.matches(kt)?e:e.querySelector(kt)}const Ln={display:"none"};function kn(e){let{id:t,value:n}=e;return I.createElement("div",{id:t,style:Ln},n)}function Pn(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const o={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return I.createElement("div",{id:t,style:o,role:"status","aria-live":r,"aria-atomic":!0},n)}function zn(){const[e,t]=c.useState("");return{announce:c.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Gt=c.createContext(null);function Bn(e){const t=c.useContext(Gt);c.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function Fn(){const[e]=c.useState(()=>new Set),t=c.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[c.useCallback(r=>{let{type:o,event:i}=r;e.forEach(s=>{var a;return(a=s[o])==null?void 0:a.call(s,i)})},[e]),t]}const $n={draggable:`
2
2
  To pick up a draggable item, press the space bar.
3
3
  While dragging, use the arrow keys to move the item.
4
4
  Press space again to drop the item in its new position, or press escape to cancel.