gitifact 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +9 -6
  2. package/dist/browser/assets/{about-NfIJSqpC.js → about-Dbyd48t6.js} +1 -1
  3. package/dist/browser/assets/{contributors._email-B6w1SA-1.js → contributors._email-BMqQlPdF.js} +1 -1
  4. package/dist/browser/assets/{contributors.index-Dkv636DW.js → contributors.index-Dk42HR-l.js} +1 -1
  5. package/dist/browser/assets/{features._featureId-B4Ba6Tbc.js → features._featureId-zHnvA0Go.js} +1 -1
  6. package/dist/browser/assets/{requirements-Db8psmjT.js → features.index-xgyvTm5d.js} +1 -1
  7. package/dist/browser/assets/git-D8SQ9LAI.js +1 -0
  8. package/dist/browser/assets/guides._documentId-jvtVZl4b.js +1 -0
  9. package/dist/browser/assets/guides.index-DKNn9kCJ.js +1 -0
  10. package/dist/browser/assets/{index-DMRG08Xu.js → index-Cul6rpdA.js} +4 -4
  11. package/dist/browser/assets/{page-header-it9YqWBS.js → page-header-pnZFm0-7.js} +1 -1
  12. package/dist/browser/assets/product-B_C25r7E.js +75 -0
  13. package/dist/browser/assets/product-DIl1IXZo.css +1 -0
  14. package/dist/browser/assets/product.index-IBLtgiMT.js +1 -0
  15. package/dist/browser/assets/{request-state-s3JHTg5D.js → request-state-q7VzEh1O.js} +2 -2
  16. package/dist/browser/assets/requirements-BmW8BEdu.js +1 -0
  17. package/dist/browser/assets/{routes-HW2hx-iw.js → routes-BDsb61_V.js} +1 -1
  18. package/dist/browser/index.html +5 -5
  19. package/dist/docs/commit.md +36 -0
  20. package/dist/docs/design.md +42 -0
  21. package/dist/docs/product.md +21 -0
  22. package/dist/docs/spec.md +54 -0
  23. package/dist/docs/workflow.md +42 -0
  24. package/dist/main.js +875 -466
  25. package/package.json +1 -1
  26. package/dist/browser/assets/features.index-Cfxr24mB.js +0 -1
  27. package/dist/browser/assets/git-D5knlkQy.js +0 -1
  28. package/dist/browser/assets/product-Cn69vcBM.css +0 -1
  29. package/dist/browser/assets/product-DAbLI-2U.js +0 -75
  30. package/dist/skills/gitifact-workflow/SKILL.md +0 -157
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitifact",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Git-backed requirements and change history for coding agents.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{c as e}from"./themeProps-BV289t6M.js";import{n as t}from"./product-DAbLI-2U.js";import{n}from"./index-DMRG08Xu.js";var r=e();function i(){let e=n.useSearch(),i=n.useNavigate();return(0,r.jsx)(t,{view:`features`,search:e,change:(e,t)=>{i({search:e,replace:t??!1})}})}export{i as component};
@@ -1 +0,0 @@
1
- import{A as e,D as t,E as n,c as r,n as i}from"./themeProps-BV289t6M.js";import{f as a,h as o,m as s,p as c,r as l,t as u,x as d}from"./request-state-s3JHTg5D.js";import{t as f}from"./mergeProps-ptS-gIMz.js";import{t as p}from"./Text-LX6541eF.js";import{f as m,p as h,t as g}from"./IconButton-DQKowV1I.js";import{C as _,I as v,M as y,N as b,T as x,a as S,c as C,f as w,i as T,k as E,n as D,o as O,s as k,t as A,u as j,x as M,yt as N}from"./page-header-it9YqWBS.js";import{s as P}from"./index-DMRG08Xu.js";var F=class extends _{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),y(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&x(t.mutationKey)!==x(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onSubscribe(){this.listeners.size===1&&this.#n&&(this.#n.addObserver(this),this.#i())}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??P();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){M.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},I=e(t(),1);function L(e,t){let n=v(t),[r]=I.useState(()=>new F(n,e));I.useEffect(()=>{r.setOptions(e)},[r,e]);let i=I.useSyncExternalStore(I.useCallback(e=>r.subscribe(M.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),a=I.useCallback((...e)=>{r.mutate(e[0],e[1]).catch(E)},[r]);if(i.error&&b(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:a,mutateAsync:i.mutate}}var R=(0,I.createContext)(null);R.displayName=`MetadataListContext`;var z=r(),B={root:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,$$css:!0},dl:{kogj98:`x1ghz6dp`,kmVPX3:`x1717udv`,$$css:!0},gridSingle:{k1xSpc:`xrvj5dj`,kumcoG:`x1pmbctz`,kOIVth:`xpec5dj`,kGNEyG:`x1pha0wt`,$$css:!0},gridMulti:{k1xSpc:`xrvj5dj`,kumcoG:`x189bvgu`,kOIVth:`x18g69wz`,$$css:!0},gridStackedSingle:{k1xSpc:`xrvj5dj`,kumcoG:`x1y6fwsi`,kOIVth:`xjcht0a`,$$css:!0},gridStackedMulti:{k1xSpc:`xrvj5dj`,kumcoG:`x189bvgu`,kOIVth:`x18g69wz`,$$css:!0},horizontal:{k1xSpc:`x78zum5`,kXwgrk:`x1q0g3np`,kwnvtZ:`x1a02dak`,kOIVth:`x18g69wz`,$$css:!0}},V={gridTemplate:e=>[{kumcoG:e==null?e:`xqketvx`,$$css:!0},{"--x-gridTemplateColumns":e??void 0}]},H={position:`start`},U={position:`top`};function W({children:e,columns:t=`single`,label:r,maxNumOfItems:a,orientation:o=`vertical`,title:s,xstyle:c,className:l,style:u,"data-testid":d,ref:p}){let m=r??(t===`multi`||typeof t==`number`&&t>1?U:H),[g,_]=(0,I.useState)(!1),v=(0,I.useId)(),y=h(),b=(0,I.useMemo)(()=>({labelConfig:o===`horizontal`?U:m,orientation:o}),[m,o]),x=I.Children.toArray(e),S=o===`horizontal`,C=S?void 0:a,w=C!=null&&x.length>C,T=w&&!g?x.slice(0,C):x,E=s==null?null:(0,z.jsx)(`div`,{className:`xep27e5`,children:s}),D=()=>S?B.horizontal:m.position===`top`?t===`single`||t===1?B.gridStackedSingle:B.gridStackedMulti:t===`single`||t===1?B.gridSingle:B.gridMulti,O=(()=>{if(S)return null;let e=m.position===`top`;return typeof t==`number`&&t>1?e?`repeat(${t}, 1fr)`:`repeat(${t}, auto 1fr)`:!e&&m.width!=null?`${typeof m.width==`number`?`${m.width}px`:m.width} 1fr`:null})();return(0,z.jsx)(R,{value:b,children:(0,z.jsxs)(`div`,{ref:p,"data-testid":d,...f(i(`metadata-list`,{columns:String(t),orientation:o}),n(B.root,c),l,u),children:[E,(0,z.jsx)(`dl`,{id:v,...n(B.dl,D(),O!=null&&V.gridTemplate(O)),children:T}),w&&(0,z.jsx)(`button`,{type:`button`,"aria-controls":v,"aria-expanded":g,onClick:()=>_(e=>!e),className:`xjyslct x15nmkw0 x1ypdohk x16khyan xqwr325 xjm74w1 xw6l6zx x1e4wzip xjb2p0i x1yc453h xqcrz7y`,children:y(g?`@astryx.metadataList.showLess`:`@astryx.metadataList.showMore`)})]})})}W.displayName=`MetadataList`;var G={label:{kMwMTN:`xv1l7n4`,kGuDYH:`xjm74w1`,kLWn49:`xw6l6zx`,k63SB2:`x1e4wzip`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x1txdalj`,kogj98:`x1ghz6dp`,kmVPX3:`x1717udv`,kAzted:`xjwf9q1`,kTgw9:`x13faqbe`,$$css:!0},stackedWrapper:{k1xSpc:`x78zum5`,kXwgrk:`xdt5ytf`,kOIVth:`x1lsbc85`,$$css:!0}};function K({children:e,icon:t,label:r,xstyle:a,className:o,style:s,"data-testid":c,ref:l,...u}){let d=(0,I.use)(R),p=(d?.labelConfig.position??`start`)===`top`||d?.orientation===`horizontal`,m=(0,z.jsxs)(z.Fragment,{children:[t!=null&&(0,z.jsx)(`span`,{className:`x3nfvp2 x6s0dn4 x2lah0s xv1l7n4`,children:t}),r]});return p?(0,z.jsxs)(`div`,{ref:l,"data-testid":c,...f(i(`metadata-list-item`),n(G.stackedWrapper,a),o,s),...u,children:[(0,z.jsx)(`dt`,{className:`xv1l7n4 xjm74w1 xw6l6zx x1e4wzip x78zum5 x6s0dn4 x1txdalj x1ghz6dp x1717udv`,children:m}),(0,z.jsx)(`dd`,{className:`x1tgivj0 xjm74w1 xw6l6zx x1ghz6dp x1717udv x13faqbe`,children:e})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`dt`,{ref:l,"data-testid":c?`${c}-label`:void 0,...f(i(`metadata-list-item`),n(G.label,a),o,s),...u,children:m}),(0,z.jsx)(`dd`,{"data-testid":c?`${c}-value`:void 0,className:`x1tgivj0 xjm74w1 xw6l6zx x1ghz6dp x1717udv xjwf9q1 x13faqbe`,children:e})]})}K.displayName=`MetadataListItem`;var q={page:`_page_1zvug_2`,column:`_column_1zvug_3`,pageTitle:`_pageTitle_1zvug_4`,content:`_content_1zvug_5`,reveal:`_reveal_1zvug_1`,summary:`_summary_1zvug_8`,summaryItem:`_summaryItem_1zvug_9`,code:`_code_1zvug_10`,changes:`_changes_1zvug_11`,path:`_path_1zvug_12`};function J(e){if(e.kind===`unmerged`)return[{label:`충돌`,color:`red`}];if(e.kind===`untracked`||!e.xy)return[{label:`Untracked`,color:`gray`}];let t=[];return e.xy[0]!==`.`&&t.push({label:`Staged`,color:`green`}),e.xy[1]!==`.`&&t.push({label:`Unstaged`,color:`blue`}),t}function Y(e){return e.submodule?[e.submodule.commitChanged&&`submodule 커밋 변경`,e.submodule.trackedChanges&&`내부 tracked 변경`,e.submodule.untrackedChanges&&`내부 untracked 변경`].filter(Boolean).join(`, `):null}function X({session:e,reconnect:t}){let n=v(),r=w(k(e)),i=L({mutationFn:()=>T(e),retry:!1,onMutate:async()=>{await n.cancelQueries({queryKey:O(e)})},onSuccess:async()=>{await n.cancelQueries({queryKey:O(e)}),await n.invalidateQueries({queryKey:O(e)})}}),u=i.error??r.error,f=u instanceof C&&(u.code===`SESSION_CHANGED`||u.code===`INVALID_RESPONSE`),h=f?void 0:r.data,_=i.isPending||r.isFetching,y=!!h?.changes.some(e=>e.submodule),b=[{key:`xy`,header:`상태`,width:a(150),renderCell:e=>(0,z.jsx)(D,{gap:1,wrap:`wrap`,children:J(e).map(e=>(0,z.jsx)(s,{label:e.label,color:e.color,size:`sm`},e.label))})},{key:`code`,header:`코드`,width:a(64),renderCell:e=>(0,z.jsx)(p,{type:`supporting`,color:`secondary`,className:q.code,children:e.xy??`??`})},{key:`path`,header:`경로`,width:c(1,{minWidth:160}),renderCell:e=>(0,z.jsx)(p,{className:q.path,children:e.path})}];y&&b.push({key:`submodule`,header:`추가 정보`,width:c(1),renderCell:e=>(0,z.jsx)(p,{type:`supporting`,color:`secondary`,children:Y(e)??`—`})});let x=h?[[`Staged`,h.summary.staged],[`Unstaged`,h.summary.unstaged],[`Untracked`,h.summary.untracked],[`충돌`,h.summary.conflicted]]:[];return(0,z.jsxs)(j,{gap:0,className:q.page,"aria-busy":_,children:[(0,z.jsx)(A,{trail:[{label:`Git 상태`}],actions:(0,z.jsx)(g,{label:_?`조회 중…`:`상태 새로고침`,icon:(0,z.jsx)(o,{}),variant:`ghost`,size:`sm`,isLoading:_,isDisabled:_||f,onClick:()=>i.mutate()})}),(0,z.jsxs)(j,{gap:0,className:q.column,children:[(0,z.jsx)(j,{gap:1,className:q.pageTitle,children:(0,z.jsx)(N,{level:1,children:`Git 상태`})}),(0,z.jsxs)(j,{gap:5,className:q.content,"aria-label":`저장소 상태`,children:[u&&(0,z.jsxs)(j,{role:`alert`,gap:3,children:[(0,z.jsx)(p,{children:u.message}),f?(0,z.jsx)(D,{children:(0,z.jsx)(m,{label:`다시 연결`,onClick:t})}):h&&(0,z.jsx)(p,{type:`supporting`,color:`secondary`,children:`이전 조회 결과입니다. 마지막 확인 시각을 참고하세요.`})]}),!h&&r.isPending&&(0,z.jsx)(p,{role:`status`,type:`supporting`,color:`secondary`,children:`저장소 상태를 읽고 있습니다.`}),h&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(W,{columns:`multi`,children:[(0,z.jsx)(K,{label:`브랜치`,children:h.head.branch??`detached HEAD`}),(0,z.jsx)(K,{label:`HEAD`,children:h.head.commit?(0,z.jsx)(p,{className:q.code,children:h.head.commit.slice(0,10)}):`아직 커밋이 없습니다`}),(0,z.jsx)(K,{label:`저장소`,children:(0,z.jsx)(p,{className:q.path,children:h.repository.rootPath})}),(0,z.jsx)(K,{label:`마지막 확인`,children:(0,z.jsx)(`time`,{dateTime:h.observation.completedAt,children:new Date(h.observation.completedAt).toLocaleString()})})]}),(0,z.jsx)(D,{gap:6,wrap:`wrap`,"aria-label":`변경 집계`,className:q.summary,children:x.map(([e,t])=>(0,z.jsxs)(D,{gap:2,className:q.summaryItem,children:[(0,z.jsx)(p,{type:`supporting`,color:`secondary`,children:e}),(0,z.jsx)(p,{weight:`semibold`,children:t})]},e))}),h.changes.length===0?(0,z.jsx)(d,{isCompact:!0,title:`변경된 파일이 없습니다`,description:`작업 트리가 마지막 커밋과 같습니다.`}):(0,z.jsxs)(j,{gap:3,className:q.changes,children:[(0,z.jsxs)(p,{type:`supporting`,color:`secondary`,children:[`변경 경로 `,h.changes.length,`개 · 코드의 첫 글자는 staged, 두 번째는 unstaged이며 .은 변경 없음입니다.`]}),(0,z.jsx)(l,{data:h.changes,idKey:`path`,columns:b,density:`compact`,dividers:`rows`,textOverflow:`wrap`})]}),(0,z.jsxs)(D,{gap:3,wrap:`wrap`,children:[(0,z.jsx)(p,{type:`supporting`,color:`secondary`,children:`관측한 Git 상태이며 파일 내용을 고정한 스냅샷은 아닙니다.`}),(0,z.jsx)(p,{type:`supporting`,color:`secondary`,children:`gitifact 요구사항 검사는 아직 실행하지 않습니다.`})]})]})]})]})]})}function Z(){let e=w(S()),t=v(),[n,r]=(0,I.useState)(0),i=async()=>{await t.cancelQueries({queryKey:[`repository-status`]}),t.removeQueries({queryKey:[`repository-status`]}),await e.refetch(),r(e=>e+1)};return e.data&&!e.error?(0,z.jsx)(X,{session:e.data,reconnect:()=>{i()}},e.data.sessionId+`:`+n):(0,z.jsxs)(j,{gap:0,className:q.page,children:[(0,z.jsx)(A,{trail:[{label:`Git 상태`}]}),(0,z.jsxs)(j,{gap:0,className:q.column,children:[(0,z.jsx)(j,{gap:1,className:q.pageTitle,children:(0,z.jsx)(N,{level:1,children:`Git 상태`})}),e.isPending&&(0,z.jsx)(j,{padding:5,children:(0,z.jsx)(p,{role:`status`,type:`supporting`,color:`secondary`,children:`로컬 서버에 연결하고 있습니다.`})}),e.error&&(0,z.jsx)(u,{error:e.error,retry:()=>{i()}})]})]})}var Q=Z;export{Q as component};
@@ -1 +0,0 @@
1
- ._page_6s7z0_1{min-width:0}._content_6s7z0_1{padding:var(--spacing-4);min-width:0;animation:.22s ease-out both _reveal_6s7z0_1}._skeleton_6s7z0_2{min-height:24rem;animation:.2s ease-out both _reveal_6s7z0_1}._skeletonRow_6s7z0_3{padding-block:var(--spacing-3);border-bottom:1px solid var(--color-border);align-items:center}@keyframes _reveal_6s7z0_1{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){._content_6s7z0_1{animation:none}}._highlight_6s7z0_5{border-inline-start:2px solid var(--color-border-accent,var(--color-border));padding-inline-start:var(--spacing-3)}._featureTable_6s7z0_8 table{border-radius:0}._featureTable_6s7z0_8 tbody tr{cursor:pointer}._featureTitle_6s7z0_10{color:var(--color-text-primary);font-weight:600;text-decoration:none}._featureTitle_6s7z0_10:hover{text-decoration:underline}._featureDetail_6s7z0_12{overflow-wrap:anywhere;min-width:0;padding-inline:var(--spacing-5)}._featureBack_6s7z0_13{color:var(--color-text-secondary);align-self:flex-start;font-size:.8125rem;text-decoration:none}._featureBack_6s7z0_13:hover{text-decoration:underline}._documentHeading_6s7z0_15{padding-block:var(--spacing-4) var(--spacing-6)}._documentHeading_6s7z0_15 h1{letter-spacing:-.025em;font-size:1.75rem;line-height:1.4}._featureDetail_6s7z0_12{padding-top:var(--spacing-6)}._designPanel_6s7z0_18{padding-block:var(--spacing-6)}._documentIndex_6s7z0_19{padding-block:var(--spacing-5);border-block:1px solid var(--color-border)}._documentIndex_6s7z0_19 a{padding-block:var(--spacing-1);text-decoration:none}._featureDetail_6s7z0_12 a:hover{text-decoration:underline}._requirementSection_6s7z0_22{padding-block:var(--spacing-7);border-bottom:1px solid var(--color-border);scroll-margin-top:calc(var(--gitifact-topbar-height) + var(--spacing-4))}._requirementSection_6s7z0_22 h3{font-size:1.25rem;line-height:1.5}._requirementSection_6s7z0_22 p,._requirementSection_6s7z0_22 li{line-height:1.9}._requirementSection_6s7z0_22 a,._documentHeading_6s7z0_15 a{font-size:.8125rem}@media (width<64rem){._documentHeading_6s7z0_15 h1{font-size:1.5rem}}._historyPagination_6s7z0_28{border-top:1px solid var(--color-border);align-items:center}._readingPane_6s7z0_29{background:var(--color-background-surface);overflow-wrap:anywhere;min-width:0}._readingPane_6s7z0_29>*{flex-shrink:0}._readingAuthor_6s7z0_31{justify-content:space-between}._readingSection_6s7z0_32{border-top:1px solid var(--color-border);padding-top:var(--spacing-5)}._readingPane_6s7z0_29 p,._readingPane_6s7z0_29 li{line-height:1.9}._column_6s7z0_37{width:100%;min-width:0;max-width:64rem;margin-inline:auto}._pageTitle_6s7z0_38{padding-inline:var(--spacing-5);padding-block:var(--spacing-6) var(--spacing-2)}._filters_6s7z0_39{padding:var(--spacing-3) var(--spacing-5)}._filtersSticky_6s7z0_40{top:var(--gitifact-topbar-height);z-index:2;background:var(--color-background-surface);border-bottom:1px solid var(--color-border);position:sticky}._timeline_6s7z0_41{margin:0;padding:0;list-style:none;position:relative}._timeline_6s7z0_41:before{content:"";top:var(--spacing-3);bottom:var(--spacing-3);background:var(--color-border);width:2px;position:absolute;inset-inline-start:calc(var(--spacing-3) - 1px)}._entry_6s7z0_43{padding-block:var(--spacing-4);align-items:flex-start;min-width:0;position:relative}._entryContinued_6s7z0_44{padding-top:0}._entryAvatar_6s7z0_45{z-index:1;padding-block:var(--spacing-1);background:var(--color-background-surface);flex-shrink:0;position:relative}._entryBody_6s7z0_46{flex:1;min-width:0}._entryHead_6s7z0_47{justify-content:space-between;align-items:baseline}._entryLine_6s7z0_48{align-items:center;min-width:0}._entryTitle_6s7z0_49{color:var(--color-text-primary);font-weight:500;text-decoration:none}._entryTitle_6s7z0_49:hover,._entryFeature_6s7z0_50:hover{text-decoration:underline}._entryFeature_6s7z0_50{color:var(--color-text-accent);text-decoration:none}._entry_6s7z0_43[aria-current=true] ._entryTitle_6s7z0_49{text-decoration:underline}._drawer_6s7z0_53{scrollbar-width:thin;scrollbar-color:var(--color-border-emphasized,var(--color-border)) transparent;border-radius:0;height:100dvh;max-height:100dvh;margin:0;overflow:hidden}._drawer_6s7z0_53>:first-child{scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-border-emphasized,var(--color-border)) transparent;overflow-y:auto}._drawerHeader_6s7z0_55{z-index:1;background:var(--color-background-surface);padding-inline:var(--spacing-5);padding-top:var(--spacing-4);position:sticky;top:0}._drawerHandle_6s7z0_56{z-index:2;position:absolute;inset-block:0;inset-inline-start:0}._person_6s7z0_59{align-items:center}._personName_6s7z0_60{color:var(--color-text-primary);font-size:.8125rem;text-decoration:none}._personName_6s7z0_60:hover{text-decoration:underline}._personCard_6s7z0_62{align-items:flex-start;min-width:0}._personCardBody_6s7z0_63{align-self:stretch;min-width:0}._personStats_6s7z0_64{align-items:center}._personHero_6s7z0_65{padding-block:var(--spacing-4) var(--spacing-6);align-items:center}._personActivityRow_6s7z0_66{padding-block:var(--spacing-3);border-bottom:1px solid var(--color-border);align-items:center;min-width:0}._personActivityRow_6s7z0_66>:nth-child(3){flex:1;min-width:0}._personSection_6s7z0_68{border-top:1px solid var(--color-border);padding-block:var(--spacing-5) var(--spacing-7)}