forge-openclaw-plugin 0.3.18 → 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.
- package/dist/assets/{action-bar-BAZevCEA.js → action-bar-B3ttL3XF.js} +1 -1
- package/dist/assets/{activity-page-CnT_hnCU.js → activity-page-CoNcd0PX.js} +1 -1
- package/dist/assets/{ai-surface-workspace-GPZzIIut.js → ai-surface-workspace-Db34puL5.js} +1 -1
- package/dist/assets/artifacts-page-C09tfJTW.js +2 -0
- package/dist/assets/{atlas-panel-B95nrYpZ.js → atlas-panel-DRMA3RbG.js} +1 -1
- package/dist/assets/{board-CGgOvBP9.js → board-Dl7As76Q.js} +1 -1
- package/dist/assets/{calendar-page-mlr94wIS.js → calendar-page-CagtpmrB.js} +1 -1
- package/dist/assets/{calendar-rules-DdxPmBZJ.js → calendar-rules-jys-Ya5M.js} +1 -1
- package/dist/assets/{calendar-week-toolbar-Cu8V6zv1.js → calendar-week-toolbar-DWTObcj1.js} +1 -1
- package/dist/assets/{charts-Cdtn55ol.js → charts-YpkKrjkZ.js} +1 -1
- package/dist/assets/{companion-sync-lab-page-CJI5jf8W.js → companion-sync-lab-page-COYI00E2.js} +1 -1
- package/dist/assets/{daily-metrics-dashboard-CXESx7bU.js → daily-metrics-dashboard-CLoHakVX.js} +1 -1
- package/dist/assets/{define-workbench-box-Dbl9W7oE.js → define-workbench-box-DkTWtzNA.js} +1 -1
- package/dist/assets/{entity-link-multiselect-DZ_jAjs4.js → entity-link-multiselect-HmmmJO5A.js} +1 -1
- package/dist/assets/{entity-note-count-link-FOK_qhcC.js → entity-note-count-link-BDLj5ezr.js} +1 -1
- package/dist/assets/{entity-notes-surface-Dq9dFKjD.js → entity-notes-surface-Csbm1myW.js} +1 -1
- package/dist/assets/{execution-board-D9hkXKC2.js → execution-board-C7wYWJE4.js} +1 -1
- package/dist/assets/{faceted-token-search-BeShxjkc.js → faceted-token-search-B2XWEl8j.js} +1 -1
- package/dist/assets/{flagship-signal-deck-DZx_HEH9.js → flagship-signal-deck-DnNN_VE1.js} +1 -1
- package/dist/assets/{floating-action-menu-CFrgvQJi.js → floating-action-menu-D2Lk9TOc.js} +1 -1
- package/dist/assets/{forms-DhEGHkFR.js → forms-DznAv9hZ.js} +1 -1
- package/dist/assets/{generic-node-view-C1kLClIm.js → generic-node-view-C_WhZXoj.js} +1 -1
- package/dist/assets/goal-detail-page-B395rAnv.js +1 -0
- package/dist/assets/{goal-dialog-BlZHh3dw.js → goal-dialog-DiEV3MyU.js} +1 -1
- package/dist/assets/goals-page-BNwaz0yD.js +1 -0
- package/dist/assets/{graph-U1J6VkbG.js → graph-BUSFLDnl.js} +1 -1
- package/dist/assets/{habits-page-DHxZSThT.js → habits-page-BkfbiwMJ.js} +1 -1
- package/dist/assets/{health-boxes-BZjIqiiG.js → health-boxes-BlA33CqS.js} +1 -1
- package/dist/assets/index-C0CztQTU.js +2 -0
- package/dist/assets/index-CKnJCN1y.css +1 -0
- package/dist/assets/{inline-note-fields-DpmCMAJf.js → inline-note-fields-CbA0QOnc.js} +1 -1
- package/dist/assets/{insight-flow-dialog-DNIe0sts.js → insight-flow-dialog-DdxIE6oo.js} +1 -1
- package/dist/assets/{insights-page-D_N_MWGu.js → insights-page-C0q_J9Hz.js} +1 -1
- package/dist/assets/{kanban-boxes-DTDG5UEJ.js → kanban-boxes-BynqbGHC.js} +1 -1
- package/dist/assets/{kanban-page-DEvIY5IW.js → kanban-page-DyiaHH0e.js} +1 -1
- package/dist/assets/{knowledge-graph-page-CvXSnnG5.js → knowledge-graph-page-Cn9VkUur.js} +1 -1
- package/dist/assets/{life-force-page-CgvUrqQb.js → life-force-page-DQPEIj23.js} +1 -1
- package/dist/assets/{life-force-workspace-BNeMbRHf.js → life-force-workspace-Db7XThH2.js} +1 -1
- package/dist/assets/{maps-Dk9tZqTA.js → maps-CpdpZmGM.js} +1 -1
- package/dist/assets/{metric-tile-DAhX60rg.js → metric-tile-sDt_l_O7.js} +1 -1
- package/dist/assets/{motion-DeJZhOSA.js → motion-eRlWWQT8.js} +1 -1
- package/dist/assets/{movement-boxes-BOqU18NH.js → movement-boxes-birc_cd8.js} +1 -1
- package/dist/assets/{movement-page-DCDeUynh.js → movement-page-BQllmJBm.js} +1 -1
- package/dist/assets/{note-markdown-Cxj84-0j.js → note-markdown-Dpve4W0R.js} +1 -1
- package/dist/assets/{note-tags-input-CP0-EPpE.js → note-tags-input-Hvi_ifLe.js} +1 -1
- package/dist/assets/{notes-boxes-C7WPT7mf.js → notes-boxes-J-MuDr8u.js} +1 -1
- package/dist/assets/{notes-page-Dll8PIks.js → notes-page-uR_LafDv.js} +1 -1
- package/dist/assets/{open-in-graph-button-BHl16hJP.js → open-in-graph-button-JgYTH-IQ.js} +1 -1
- package/dist/assets/{orbit-map-De0qpMpY.js → orbit-map-BpNCTagm.js} +1 -1
- package/dist/assets/overview-page-DQB4q_vg.js +1 -0
- package/dist/assets/{page-hero-DYmFM6-q.js → page-hero-ED69y6m0.js} +1 -1
- package/dist/assets/pill-cluster-DbPrs1Y4.js +1 -0
- package/dist/assets/{preference-entity-handoff-button-1XXtBsUF.js → preference-entity-handoff-button-NkwkWqGv.js} +1 -1
- package/dist/assets/{preferences-page-OwfPIQwe.js → preferences-page-BFUVjsHA.js} +1 -1
- package/dist/assets/{project-collections-DfmkBk9d.js → project-collections-DHXN2w-P.js} +1 -1
- package/dist/assets/{project-detail-page-BC_MNaca.js → project-detail-page-nE0M0UmN.js} +1 -1
- package/dist/assets/{project-dialog-BuZdXECa.js → project-dialog-CDkUuAgl.js} +1 -1
- package/dist/assets/{project-management-hierarchy-page-AhEHe60K.js → project-management-hierarchy-page-CID81NpW.js} +1 -1
- package/dist/assets/{project-management-section-nav-CnaseOqL.js → project-management-section-nav-BjFavt6d.js} +1 -1
- package/dist/assets/{projects-boxes-D0zM8PfY.js → projects-boxes-DzGqWlhE.js} +1 -1
- package/dist/assets/projects-page-DpFKm_CM.js +1 -0
- package/dist/assets/{psyche-behaviors-page-CPurgDg6.js → psyche-behaviors-page-CEQ2EByW.js} +1 -1
- package/dist/assets/{psyche-flashcards-page-DnUSe-bb.js → psyche-flashcards-page-D-g1DOS7.js} +1 -1
- package/dist/assets/{psyche-goal-map-page-uWocO7kZ.js → psyche-goal-map-page-DbWVOpVH.js} +1 -1
- package/dist/assets/{psyche-graph-BDszV3UN.js → psyche-graph-1FHrdH3f.js} +1 -1
- package/dist/assets/{psyche-metrics-page-CIJLJTPy.js → psyche-metrics-page-B3736p8_.js} +1 -1
- package/dist/assets/{psyche-mode-guide-page-uC8L4WvH.js → psyche-mode-guide-page-CjsMqDsi.js} +1 -1
- package/dist/assets/{psyche-modes-page-CtBeRA_3.js → psyche-modes-page-B2qzppBs.js} +1 -1
- package/dist/assets/{psyche-page-Ds3QDsin.js → psyche-page-BEPP2B13.js} +1 -1
- package/dist/assets/{psyche-patterns-page-Cvq5WshW.js → psyche-patterns-page-CWeNeX2P.js} +2 -2
- package/dist/assets/{psyche-questionnaire-builder-page-Cg5Upe6z.js → psyche-questionnaire-builder-page-QFg9LkM0.js} +1 -1
- package/dist/assets/{psyche-questionnaire-detail-page-D4jEnNoh.js → psyche-questionnaire-detail-page-D67EJ1D5.js} +1 -1
- package/dist/assets/psyche-questionnaire-run-detail-page-C1KsEy8T.js +1 -0
- package/dist/assets/{psyche-questionnaire-run-page-Yg_VG2vq.js → psyche-questionnaire-run-page-CB3rSTAX.js} +1 -1
- package/dist/assets/{psyche-questionnaires-page-BqeOJRj7.js → psyche-questionnaires-page-wU3bZws7.js} +1 -1
- package/dist/assets/{psyche-report-detail-page-BtcMQ7mk.js → psyche-report-detail-page-DI3jE820.js} +3 -3
- package/dist/assets/{psyche-reports-page-tagvW0To.js → psyche-reports-page-aUbgZ_12.js} +1 -1
- package/dist/assets/{psyche-schemas-CvRSkI_u.js → psyche-schemas-B00gm5HO.js} +1 -1
- package/dist/assets/{psyche-schemas-beliefs-page-4NL3415v.js → psyche-schemas-beliefs-page-C_PMXwjL.js} +2 -2
- package/dist/assets/{psyche-screen-time-page-Bc5AwZHQ.js → psyche-screen-time-page-CMIgDG-3.js} +1 -1
- package/dist/assets/{psyche-self-observation-page-CUrUYbQ_.js → psyche-self-observation-page-DC3orZgf.js} +1 -1
- package/dist/assets/{psyche-values-page-BshT2sXE.js → psyche-values-page-CPdKfTdl.js} +2 -2
- package/dist/assets/{question-flow-dialog-CPyXCqA-.js → question-flow-dialog-B4B3BI8e.js} +2 -2
- package/dist/assets/{report-chain-fields-C0UMLpze.js → report-chain-fields-D-XNut8V.js} +1 -1
- package/dist/assets/rewards-page-D8w07BIZ.js +1 -0
- package/dist/assets/{scheduling-rules-editor-DiA6KkQ4.js → scheduling-rules-editor-Cn6t-RRn.js} +1 -1
- package/dist/assets/{schema-badge-DURw2eYH.js → schema-badge-Dsk9AoYd.js} +1 -1
- package/dist/assets/{schemas-D_z2C8l1.js → schemas-3GS34K1i.js} +1 -1
- package/dist/assets/{select-menu-BUB8__Nx.js → select-menu-BDeaaa4m.js} +1 -1
- package/dist/assets/{settings-agents-page-Kk98Whcf.js → settings-agents-page-CkS4s4kN.js} +2 -2
- package/dist/assets/settings-bin-page-BHlW0n-a.js +1 -0
- package/dist/assets/{settings-calendar-page-CdhlUnUW.js → settings-calendar-page-BAmKOPeT.js} +3 -3
- package/dist/assets/{settings-data-page-BvvuZNbb.js → settings-data-page-C-VrzHGq.js} +1 -1
- package/dist/assets/{settings-logs-page-CrzkXxtZ.js → settings-logs-page-CnVuzJ7d.js} +1 -1
- package/dist/assets/{settings-mobile-page-Dl582NK6.js → settings-mobile-page-0SWGg6CE.js} +1 -1
- package/dist/assets/settings-models-page-BjVixsws.js +1 -0
- package/dist/assets/{settings-page-DqnlOCgo.js → settings-page-DVZ58c3R.js} +1 -1
- package/dist/assets/settings-rewards-page-Df0ONVFq.js +1 -0
- package/dist/assets/{settings-section-nav-C1NcWveT.js → settings-section-nav-Btjx5m2u.js} +1 -1
- package/dist/assets/settings-users-page-Cl0YuOOI.js +1 -0
- package/dist/assets/{settings-wiki-page-CkpnUkiZ.js → settings-wiki-page-K8KBzeYx.js} +1 -1
- package/dist/assets/{sleep-page-DrS1zs3B.js → sleep-page-BFj8hcTf.js} +1 -1
- package/dist/assets/{sports-page-EVnB_zjB.js → sports-page-7yta1r8s.js} +1 -1
- package/dist/assets/{state-DWw8Jay_.js → state-CkEUXgqt.js} +1 -1
- package/dist/assets/{strategies-page-COhyv_SH.js → strategies-page-BQoWnPtN.js} +1 -1
- package/dist/assets/strategy-detail-page-D9DTQoyy.js +1 -0
- package/dist/assets/strategy-dialog-z9w2UB3s.js +1 -0
- package/dist/assets/{surface-Dg5fauKP.js → surface-BL_bDiZ5.js} +1 -1
- package/dist/assets/{table-CWVROEBP.js → table--SK_dk4S.js} +1 -1
- package/dist/assets/{task-detail-page-3IeMYIXl.js → task-detail-page-RcbvVzXn.js} +1 -1
- package/dist/assets/{task-dialog-B7ZT4KE5.js → task-dialog-ri1qEzPp.js} +4 -4
- package/dist/assets/timebox-planning-dialog-DoeeGwCm.js +1 -0
- package/dist/assets/{today-boxes-BbUNpb16.js → today-boxes-CTw0D5JP.js} +1 -1
- package/dist/assets/today-page-5-qRLbBt.js +1 -0
- package/dist/assets/{training-load-page-DTYbu9f0.js → training-load-page-DrGnOtnH.js} +1 -1
- package/dist/assets/{ui-CdEDMtXF.js → ui-CDt36qNz.js} +1 -1
- package/dist/assets/{use-anchored-overlay-position-Cracjgo6.js → use-anchored-overlay-position-C2kg0Ay0.js} +1 -1
- package/dist/assets/{use-psyche-focus-target-DvRgu-94.js → use-psyche-focus-target-p2l8W-Af.js} +1 -1
- package/dist/assets/{user-badge-B8hYK6NU.js → user-badge-BWoSrGA-.js} +1 -1
- package/dist/assets/{user-select-field-akGHK-2t.js → user-select-field-DbB9v7Lf.js} +1 -1
- package/dist/assets/{utility-widgets-D4KsKxLT.js → utility-widgets-fodvUR7I.js} +2 -2
- package/dist/assets/{vendor-y_uz1Wft.js → vendor-Dgw7UY7q.js} +1 -1
- package/dist/assets/{vitals-page-Cjcxh-kO.js → vitals-page-f8QdPdpp.js} +1 -1
- package/dist/assets/{weekly-review-page-CR57efzH.js → weekly-review-page-D0wPiQgO.js} +1 -1
- package/dist/assets/{weight-loss-page-Bk7YkB7b.js → weight-loss-page-BT9dPxYi.js} +1 -1
- package/dist/assets/{wiki-article-markdown-um6gpmGQ.js → wiki-article-markdown-Hyu5JwrY.js} +1 -1
- package/dist/assets/{wiki-editor-page-DdP5hvjZ.js → wiki-editor-page-ujqNw8ua.js} +1 -1
- package/dist/assets/{wiki-ingest-history-page-DSTndduq.js → wiki-ingest-history-page-BwoDT00-.js} +1 -1
- package/dist/assets/{wiki-ingest-modal-PNW3CJ-o.js → wiki-ingest-modal-cvnNma0M.js} +1 -1
- package/dist/assets/{wiki-page-CsJlPyQ6.js → wiki-page-jHyJ7EgO.js} +1 -1
- package/dist/assets/{workbench-flow-page-DFtIKgNe.js → workbench-flow-page-DJD5sXMF.js} +1 -1
- package/dist/assets/{workbench-page-DEpKjMEv.js → workbench-page-Ci0xh6rG.js} +1 -1
- package/dist/assets/{workout-detail-page-BwfEhxA_.js → workout-detail-page-DA30ubtE.js} +2 -2
- package/dist/index.html +8 -8
- package/dist/openclaw/tools.js +1 -1
- package/dist/server/apps/api/src/app.js +26 -8
- package/dist/server/apps/api/src/openapi.js +103 -24
- package/dist/server/apps/api/src/services/artifacts.js +138 -68
- package/dist/server/apps/web/src/lib/api.js +3 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skills/forge-openclaw/SKILL.md +7 -5
- package/skills/forge-openclaw/entity_conversation_playbooks.md +5 -3
- package/dist/assets/artifacts-page-Bqjp0L-L.js +0 -2
- package/dist/assets/goal-detail-page-BhMrnVQs.js +0 -1
- package/dist/assets/goals-page-CesC8IkZ.js +0 -1
- package/dist/assets/index-CHbe1sy1.css +0 -1
- package/dist/assets/index-Dj8q65se.js +0 -2
- package/dist/assets/overview-page-C1RX7dcq.js +0 -1
- package/dist/assets/pill-cluster-ClkmFVFT.js +0 -1
- package/dist/assets/projects-page-ltrWfLrA.js +0 -1
- package/dist/assets/psyche-questionnaire-run-detail-page-CWoZEY31.js +0 -1
- package/dist/assets/rewards-page-D9BzsNPW.js +0 -1
- package/dist/assets/settings-bin-page-BnJ-mgy2.js +0 -1
- package/dist/assets/settings-models-page-COoBw28S.js +0 -1
- package/dist/assets/settings-rewards-page-Cw5QSTjy.js +0 -1
- package/dist/assets/settings-users-page-0opvepcM.js +0 -1
- package/dist/assets/strategy-detail-page-BaCVkvIu.js +0 -1
- package/dist/assets/strategy-dialog-DvlPo9WV.js +0 -1
- package/dist/assets/timebox-planning-dialog-DoZzpEBp.js +0 -1
- package/dist/assets/today-page-adKXN2g1.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-y_uz1Wft.js";import{R as Se,P as Ae,O as Ie,C as $e,T as Ee,D as Me}from"./ui-CdEDMtXF.js";import{i as Fe}from"./state-DWw8Jay_.js";import{E as qe}from"./entity-link-multiselect-DZ_jAjs4.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-Dj8q65se.js";import{f as k}from"./user-ownership-DJGl4rAj.js";import"./use-anchored-overlay-position-Cracjgo6.js";import"./motion-DeJZhOSA.js";import"./board-CGgOvBP9.js";import"./forms-DhEGHkFR.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-
|
|
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,cK as Q,cU as ee,bz as te,cV as re,cW as ie,cX as ne,cY as se,cZ as ae,aC as le,b2 as oe}from"./vendor-y_uz1Wft.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-CGgOvBP9.js";import{i as ge,k as U}from"./state-DWw8Jay_.js";import{cr as je,cs as Ne,B as H,c as W,C as ye,ct as Se}from"./index-Dj8q65se.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),K=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=U({mutationFn:t=>je(e,{order:t.order,widgets:t.widgets})}),X=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,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 q(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,X.mutateAsync()}return r.jsxs("div",{className:"grid gap-4",children:[o?r.jsx(fe,{sensors:K,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=>q(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(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:Z,children:[r.jsx(Q,{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-
|
|
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-
|
|
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.
|