@jjdenhertog/ai-driven-development
Version:
AI-driven development workflow with learning capabilities for Claude
1 lines • 20.2 kB
JavaScript
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8838],{525:e=>{e.exports={imagesSection:"NewFeatureModal_imagesSection__dqMBO",imagesList:"NewFeatureModal_imagesList__QmRzx",imageItem:"NewFeatureModal_imageItem__s_BaU",imageWrapper:"NewFeatureModal_imageWrapper__8oVTt",imageThumbnail:"NewFeatureModal_imageThumbnail__yvQ0q",removeImageButton:"NewFeatureModal_removeImageButton__v9naY",uploadSection:"NewFeatureModal_uploadSection__kG0Fl",uploadInput:"NewFeatureModal_uploadInput__PWyF9",dragging:"NewFeatureModal_dragging__dHjHB",uploadButton:"NewFeatureModal_uploadButton__g0Vpj"}},1881:(e,a,t)=>{Promise.resolve().then(t.bind(t,3396))},2001:(e,a,t)=>{"use strict";t.d(a,{M:()=>o});var s=t(5155),i=t(2115),l=t(3330),r=t(8101),n=t.n(r);let o=e=>{let{message:a,onClose:t,duration:r=5e3}=e;return(0,i.useEffect)(()=>{let e=setTimeout(t,r);return()=>clearTimeout(e)},[r,t]),(0,s.jsxs)("div",{className:n().notification,children:[(0,s.jsx)("p",{className:n().message,children:a}),(0,s.jsx)(l.$,{type:"button",variant:"ghost",size:"small",className:n().closeButton,onClick:t,"aria-label":"Close notification",children:"\xd7"})]})}},3396:(e,a,t)=>{"use strict";t.r(a),t.d(a,{default:()=>I});var s=t(5155),i=t(2115),l=t(6766),r=t(7489),n=t(3578),o=t(64),c=t(7302),d=t(2001),u=t(3330),p=t(5359),m=t.n(p);let h=e=>{let{feature:a,onUpdate:t,onDelete:p}=e,[h,_]=(0,i.useState)(""),[g,x]=(0,i.useState)(""),[v,C]=(0,i.useState)("draft"),[f,j]=(0,i.useState)([]),[b,F]=(0,i.useState)([]),[N,y]=(0,i.useState)(!1),[w,k]=(0,i.useState)(!1),[E,S]=(0,i.useState)(!1),[I,T]=(0,i.useState)(!1),[A,B]=(0,i.useState)(""),[D,L]=(0,i.useState)(!1),[M,P]=(0,i.useState)([]),[R,U]=(0,i.useState)(null);(0,i.useEffect)(()=>{a&&(_(a.title),x(a.description),C(a.state),j(a.images||[]),k(!1),F([]))},[a]);let W=(0,i.useCallback)(async()=>{if(a&&w){y(!0);try{for(let e of b)try{(await fetch("/api/concept-features/upload?filename=".concat(encodeURIComponent(e)),{method:"DELETE"})).ok}catch(e){}let{id:e}=a;await t(e,{title:h,description:g,state:v,images:f}),k(!1),F([])}catch(e){}finally{y(!1)}}},[a,w,t,h,g,v,f,b]),$=(0,i.useCallback)(async()=>{if(!a)return;let{id:e}=a;await p(e),T(!1)},[a,p]),q=(0,i.useCallback)(e=>{_(e.target.value),k(!0)},[]),H=(0,i.useCallback)(e=>{C(e.target.value),k(!0)},[]),z=(0,i.useCallback)(e=>{x(e||""),k(!0)},[]),J=(0,i.useCallback)(()=>{W().catch(()=>{})},[W]),O=(0,i.useCallback)(()=>{T(!0)},[]),Q=(0,i.useCallback)(async e=>{let{files:a}=e.target;if(!a||0===a.length)return;let[t]=a;P([t]),L(!0),e.target.value=""},[]),Y=(0,i.useCallback)(async e=>{S(!0);let a=[];try{for(let t of M){let s=new FormData;s.append("file",t);let i=e.get(t.name);i&&s.append("description",i);let l=await fetch("/api/uploads",{method:"POST",body:s});if(!l.ok){let e=await l.json();throw Error(e.error||"Failed to upload image")}let r=await l.json();a.push({path:r.path,description:r.description||void 0})}j([...f,...a]),k(!0)}catch(e){B("Failed to upload images: ".concat(e.message))}finally{S(!1),P([]),L(!1)}},[M,f]),G=(0,i.useCallback)(e=>()=>{let a=f[e].path.split("/").pop();a&&(F(e=>[...e,a]),j(f.filter((a,t)=>t!==e)),k(!0))},[f]),V=(0,i.useCallback)((e,a)=>{let t=[...f];t[e]={...t[e],description:a},j(t),k(!0),U(null)},[f]),Z=(0,i.useCallback)(e=>a=>{U({index:e,description:a.target.value})},[]),K=(0,i.useCallback)(e=>()=>{R&&R.index===e&&V(e,R.description)},[R,V]),X=(0,i.useCallback)(e=>a=>{"Enter"===a.key&&R&&R.index===e?V(e,R.description):"Escape"===a.key&&U(null)},[R,V]),ee=(0,i.useCallback)((e,a)=>()=>{U({index:e,description:a})},[]),ea=(0,i.useCallback)(e=>{Q(e).catch(e=>{})},[Q]),et=(0,i.useCallback)(()=>{let e=new Map;M.forEach((a,t)=>{let s=document.getElementById("file-desc-".concat(t));(null==s?void 0:s.value)&&e.set(a.name,s.value)}),Y(e)},[M,Y]),es=(0,i.useCallback)(()=>{L(!1),P([])},[]),ei=(0,i.useCallback)(()=>{$().catch(e=>{})},[$]),el=(0,i.useCallback)(()=>{T(!1)},[]),er=(0,i.useCallback)(()=>{B("")},[]);return a?(0,s.jsxs)("div",{className:m().container,children:[(0,s.jsxs)("div",{className:m().header,children:[(0,s.jsx)("h2",{className:m().featureTitle,children:a.title||h||"Untitled Feature"}),(0,s.jsxs)("select",{id:"state",value:v,onChange:H,className:"".concat(m().statusSelect," ").concat(m()["status-".concat(v)]),disabled:"reviewing"===v,children:[(0,s.jsx)("option",{value:"draft",children:"Draft"}),(0,s.jsx)("option",{value:"ready",children:"Ready"}),"reviewing"===v&&(0,s.jsx)("option",{value:"reviewing",disabled:!0,children:"Reviewing (AI processing...)"}),"questions"===v&&(0,s.jsx)("option",{value:"questions",disabled:!0,children:"Questions (AI set)"}),"reviewed"===v&&(0,s.jsx)("option",{value:"reviewed",disabled:!0,children:"Reviewed (AI set)"}),"reviewed"===v&&(0,s.jsx)("option",{value:"approved",children:"Approved"}),"approved"===v&&(0,s.jsx)("option",{value:"approved",children:"Approved"})]}),!!w&&(0,s.jsx)("span",{className:m().unsaved,children:"• Unsaved"}),(0,s.jsxs)("div",{className:m().headerActions,children:[(0,s.jsxs)(u.$,{type:"button",onClick:J,disabled:N||!w,variant:"primary",children:[(0,s.jsx)(r.g,{icon:n.hSh}),(0,s.jsx)("span",{children:N?"Saving...":"Save"})]}),(0,s.jsx)(u.$,{type:"button",onClick:O,variant:"danger",size:"medium",title:"Delete feature",children:(0,s.jsx)(r.g,{icon:n.yLS})})]})]}),(0,s.jsxs)("div",{className:m().form,children:[(0,s.jsxs)("div",{className:m().field,children:[(0,s.jsx)("label",{htmlFor:"title",children:"Title"}),(0,s.jsx)("input",{id:"title",type:"text",value:h,onChange:q,className:m().input,placeholder:"Enter feature title"})]}),(0,s.jsxs)("div",{className:m().field,children:[(0,s.jsx)("label",{children:"Images"}),(0,s.jsxs)("div",{className:m().imagesSection,children:[(0,s.jsx)("div",{className:m().imagesList,children:f.map((e,a)=>(0,s.jsxs)("div",{className:m().imageItem,children:[(0,s.jsx)("div",{className:m().imageWrapper,children:(0,s.jsx)(l.default,{src:"/api/".concat(e.path),alt:e.description||"Feature image ".concat(a+1),width:150,height:150,className:m().imageThumbnail})}),(0,s.jsx)(u.$,{type:"button",onClick:G(a),variant:"ghost",size:"small",className:m().removeImageButton,title:"Remove image",children:(0,s.jsx)(r.g,{icon:n.GRI})}),(0,s.jsx)("div",{className:m().imageDescription,children:(null==R?void 0:R.index)===a?(0,s.jsx)("input",{type:"text",value:R.description,onChange:Z(a),onBlur:K(a),onKeyDown:X(a),className:m().descriptionInput,placeholder:"Add description...",autoFocus:!0}):(0,s.jsx)("div",{className:m().descriptionText,onClick:ee(a,e.description||""),title:"Click to edit description",children:e.description||(0,s.jsx)("span",{className:m().placeholderText,children:"Click to add description"})})})]},a))}),(0,s.jsxs)("div",{className:m().uploadSection,children:[(0,s.jsxs)("label",{htmlFor:"image-upload",className:m().uploadButton,children:[(0,s.jsx)(r.g,{icon:n.Cyq}),E?"Uploading...":"Add Image"]}),(0,s.jsx)("input",{id:"image-upload",type:"file",accept:"image/*",onChange:ea,disabled:E,className:m().uploadInput})]})]})]}),(0,s.jsxs)("div",{className:m().field,children:[(0,s.jsx)("label",{children:"Description"}),(0,s.jsx)("div",{className:m().editorWrapper,children:(0,s.jsx)(o.B,{value:g,onChange:z,language:"markdown",height:"auto",minHeight:300,maxHeight:1e3})})]}),(0,s.jsxs)("div",{className:m().metadata,children:[(0,s.jsxs)("div",{className:m().metadataItem,children:[(0,s.jsx)("span",{className:m().metadataLabel,children:"Created:"}),(0,s.jsx)("span",{children:new Date(a.createdAt).toLocaleString()})]}),(0,s.jsxs)("div",{className:m().metadataItem,children:[(0,s.jsx)("span",{className:m().metadataLabel,children:"Updated:"}),(0,s.jsx)("span",{children:new Date(a.updatedAt).toLocaleString()})]})]})]}),(0,s.jsx)(c.T,{isOpen:I,title:"Delete Feature",message:'Are you sure you want to delete "'.concat(a.title,'"? This action cannot be undone.'),confirmText:"Delete",cancelText:"Cancel",onConfirm:ei,onCancel:el}),A.length>0&&(0,s.jsx)(d.M,{message:A,onClose:er}),D?(0,s.jsx)("div",{className:m().modal,children:(0,s.jsxs)("div",{className:m().modalContent,children:[(0,s.jsx)("h3",{children:"Add Image Descriptions"}),(0,s.jsx)("p",{className:m().modalDescription,children:"Provide descriptions for the images to help AI understand their context and purpose."}),(0,s.jsx)("div",{className:m().fileList,children:M.map((e,a)=>(0,s.jsxs)("div",{className:m().fileItem,children:[(0,s.jsx)("div",{className:m().fileName,children:e.name}),(0,s.jsx)("input",{type:"text",placeholder:"Describe what this image shows and why it's relevant...",className:m().fileDescriptionInput,id:"file-desc-".concat(a)})]},a))}),(0,s.jsxs)("div",{className:m().modalActions,children:[(0,s.jsx)(u.$,{type:"button",onClick:et,variant:"primary",disabled:E,children:E?"Uploading...":"Upload Images"}),(0,s.jsx)(u.$,{type:"button",onClick:es,variant:"secondary",disabled:E,children:"Cancel"})]})]})}):null]}):(0,s.jsx)("div",{className:m().loading,children:"Loading feature..."})};var _=t(9847),g=t.n(_),x=t(6933),v=t(525),C=t.n(v);let f=e=>{let{onClose:a,onCreate:t}=e,[c,p]=(0,i.useState)(""),[m,h]=(0,i.useState)(""),[_,g]=(0,i.useState)("draft"),[v,f]=(0,i.useState)([]),[j,b]=(0,i.useState)(!1),[F,N]=(0,i.useState)(!1),[y,w]=(0,i.useState)(""),k=(0,i.useCallback)(async e=>{if(e.preventDefault(),!c.trim()||!m.trim())return void w("Please provide both title and description");b(!0);try{await t({title:c.trim(),description:m.trim(),state:_,images:v})}catch(e){w("Failed to create feature")}finally{b(!1)}},[c,m,_,v,t]),E=(0,i.useCallback)(e=>{k(e)},[k]),S=(0,i.useCallback)(e=>{p(e.target.value)},[]),I=(0,i.useCallback)(e=>{h(e||"")},[]),T=(0,i.useCallback)(e=>{g(e.target.value)},[]),A=(0,i.useCallback)(async e=>{let{files:a}=e.target;if(!a||0===a.length)return;N(!0);let t=[];try{for(let e of Array.from(a)){let a=new FormData;a.append("file",e);let s=await fetch("/api/concept-features/upload",{method:"POST",body:a});if(!s.ok){let e=await s.json();throw Error(e.error||"Failed to upload image")}let i=await s.json();t.push({path:i.path,description:i.description||void 0})}f([...v,...t])}catch(e){w("Failed to upload images: ".concat(e.message))}finally{N(!1),e.target.value=""}},[v]),B=(0,i.useCallback)(async e=>{try{let a=v[e].path.split("/").pop();if(!a)return;if(!(await fetch("/api/concept-features/upload?filename=".concat(encodeURIComponent(a)),{method:"DELETE"})).ok)throw Error("Failed to delete image");f(v.filter((a,t)=>t!==e))}catch(e){w("Failed to remove image")}},[v]),D=(0,i.useCallback)(e=>()=>{B(e)},[B]),L=(0,i.useCallback)(e=>{A(e).catch(()=>{})},[A]),M=(0,i.useCallback)(()=>{w("")},[]),P=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.$,{type:"button",onClick:a,variant:"secondary",children:"Cancel"}),(0,s.jsx)(u.$,{type:"submit",form:"new-feature-form",disabled:j,variant:"primary",children:j?"Creating...":"Create Feature"})]});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(x.a,{isOpen:!0,onClose:a,title:"New Feature",footer:P,width:"700px",children:(0,s.jsx)("form",{id:"new-feature-form",onSubmit:E,children:(0,s.jsxs)("div",{className:"form-content",children:[(0,s.jsxs)("div",{className:"form-field",children:[(0,s.jsx)("label",{htmlFor:"title",children:"Title"}),(0,s.jsx)("input",{id:"title",type:"text",value:c,onChange:S,placeholder:"Brief feature title (e.g., User Authentication)",autoFocus:!0})]}),(0,s.jsxs)("div",{className:"form-field",children:[(0,s.jsx)("label",{htmlFor:"description",children:"Description"}),(0,s.jsx)("div",{className:"editor-wrapper",children:(0,s.jsx)(o.B,{value:m,onChange:I,language:"markdown",height:"auto",minHeight:300,maxHeight:1e3})})]}),(0,s.jsxs)("div",{className:"form-field",children:[(0,s.jsx)("label",{htmlFor:"state",children:"Initial State"}),(0,s.jsxs)("select",{id:"state",value:_,onChange:T,children:[(0,s.jsx)("option",{value:"draft",children:"Draft"}),(0,s.jsx)("option",{value:"ready",children:"Let AI evaluate the feature"})]})]}),(0,s.jsxs)("div",{className:"form-field",children:[(0,s.jsx)("label",{children:"Images"}),(0,s.jsxs)("div",{className:C().imagesSection,children:[(0,s.jsx)("div",{className:C().imagesList,children:v.map((e,a)=>(0,s.jsxs)("div",{className:C().imageItem,children:[(0,s.jsx)("div",{className:C().imageWrapper,children:(0,s.jsx)(l.default,{src:"/api/".concat(e.path),alt:e.description||"Feature image ".concat(a+1),width:150,height:150,className:C().imageThumbnail})}),(0,s.jsx)(u.$,{type:"button",onClick:D(a),variant:"ghost",size:"small",className:C().removeImageButton,title:"Remove image",children:(0,s.jsx)(r.g,{icon:n.GRI})})]},a))}),(0,s.jsxs)("div",{className:C().uploadSection,children:[(0,s.jsxs)("label",{htmlFor:"new-image-upload",className:"btn-upload",children:[(0,s.jsx)(r.g,{icon:n.Cyq}),F?" Uploading...":" Add Image"]}),(0,s.jsx)("input",{id:"new-image-upload",type:"file",accept:"image/*",onChange:L,disabled:F,className:C().uploadInput})]})]})]})]})})}),!!y&&(0,s.jsx)(d.M,{message:y,onClose:M})]})};var j=t(1241),b=t(7883),F=t(5695),N=t(838),y=t(5729),w=t(4653),k=t(7565),E=t(8720);function S(){let e=(0,F.useRouter)(),a=(0,F.useSearchParams)().get("id"),{enqueueSnackbar:t}=(0,y.dh)(),{data:l,error:o,mutate:c}=(0,N.Ay)("concept-features",j.FH.getConceptFeatures),[d,p]=(0,i.useState)(!1),m=(0,i.useCallback)(a=>{e.push("/plan/features?id=".concat(a))},[e]),_=(0,i.useCallback)(()=>{p(!0)},[]),x=(0,i.useCallback)(()=>{p(!1)},[]),v=(0,i.useCallback)(async a=>{try{let s=await j.FH.createConceptFeature(a);t("Feature created successfully",{variant:"success"}),p(!1),await c(),e.push("/plan/features?id=".concat(s.id))}catch(e){t(e instanceof Error?e.message:"Failed to create feature",{variant:"error"})}},[c,e,t]),C=(0,i.useCallback)(async(e,a)=>{try{await j.FH.updateConceptFeature(e,a),t("Feature updated successfully",{variant:"success"}),await c()}catch(e){t(e instanceof Error?e.message:"Failed to update feature",{variant:"error"})}},[c,t]),S=(0,i.useCallback)(async s=>{try{await j.FH.deleteConceptFeature(s),t("Feature deleted successfully",{variant:"success"}),await c(),a===s&&e.push("/plan/features")}catch(e){t(e instanceof Error?e.message:"Failed to delete feature",{variant:"error"})}},[c,a,e,t]),I=(0,i.useCallback)(e=>()=>{m(e)},[m]);if(o)return(0,s.jsx)("div",{className:"error-state",children:"Failed to load features"});if(!l)return(0,s.jsx)("div",{className:"loading-state",children:"Loading features..."});let T=(0,s.jsxs)(k.a,{children:[(0,s.jsx)(k.o,{href:"/plan/concepts",children:"Concepts"}),(0,s.jsx)(k.o,{href:"/plan/features",active:!0,children:"Features"})]}),A=(0,s.jsx)("div",{className:g().featureList,children:0===l.length?(0,s.jsxs)("div",{className:"empty-state",children:[(0,s.jsx)("p",{children:"No features yet"}),(0,s.jsxs)(u.$,{onClick:_,variant:"secondary",size:"small",style:{width:"100%"},children:[(0,s.jsx)(r.g,{icon:n.QLR}),"Create new feature"]})]}):(0,s.jsxs)(s.Fragment,{children:[l.map(e=>(0,s.jsx)(E.H,{icon:b.A4h,title:e.title,description:e.state,selected:a===e.id,onClick:I(e.id)},e.id)),(0,s.jsxs)(u.$,{onClick:_,variant:"secondary",size:"small",style:{width:"100%"},children:[(0,s.jsx)(r.g,{icon:n.QLR}),"Create new feature"]})]})});return(0,s.jsxs)(w.M,{title:"Plan",subtitle:"Manage your concept features",variant:"sidebar",sidebarHeader:T,sidebarContent:A,children:[a&&l?(0,s.jsx)(h,{feature:l.find(e=>e.id===a),onUpdate:C,onDelete:S}):(0,s.jsx)("div",{className:g().placeholder,children:(0,s.jsx)("p",{children:"Select a feature to view details"})}),d?(0,s.jsx)(f,{onClose:x,onCreate:v}):null]})}function I(){return(0,s.jsx)(i.Suspense,{fallback:(0,s.jsx)("div",{children:"Loading..."}),children:(0,s.jsx)(S,{})})}},4504:e=>{e.exports={overlay:"ConfirmDialog_overlay__4_jrM",dialog:"ConfirmDialog_dialog__5ONIt",title:"ConfirmDialog_title__gfTIJ",message:"ConfirmDialog_message__tIhPr",actions:"ConfirmDialog_actions__r_ePM",button:"ConfirmDialog_button__m_xFA",cancelButton:"ConfirmDialog_cancelButton__wv_al",confirmButton:"ConfirmDialog_confirmButton__hVajg"}},5359:e=>{e.exports={container:"ConceptFeatureEditor_container__ZGaLU",header:"ConceptFeatureEditor_header__N7D_O",featureTitle:"ConceptFeatureEditor_featureTitle__ktAf8",statusSelect:"ConceptFeatureEditor_statusSelect__8XijW","status-draft":"ConceptFeatureEditor_status-draft__btrcX","status-ready":"ConceptFeatureEditor_status-ready__jGOf7","status-reviewing":"ConceptFeatureEditor_status-reviewing__PuXlw","status-questions":"ConceptFeatureEditor_status-questions___ZCWp","status-reviewed":"ConceptFeatureEditor_status-reviewed__RbLDx","status-approved":"ConceptFeatureEditor_status-approved__lt0eV",unsaved:"ConceptFeatureEditor_unsaved__JFYqx",headerActions:"ConceptFeatureEditor_headerActions__ASUnJ",form:"ConceptFeatureEditor_form__TgpS0",metadata:"ConceptFeatureEditor_metadata__sCLRM",metadataItem:"ConceptFeatureEditor_metadataItem__pz9dj",metadataLabel:"ConceptFeatureEditor_metadataLabel__7XbJj",imagesSection:"ConceptFeatureEditor_imagesSection__WKUsJ",imagesList:"ConceptFeatureEditor_imagesList__PlEQe",imageItem:"ConceptFeatureEditor_imageItem__sKjoP",imageWrapper:"ConceptFeatureEditor_imageWrapper__9qPe9",imageThumbnail:"ConceptFeatureEditor_imageThumbnail__EYwjF",removeImageButton:"ConceptFeatureEditor_removeImageButton__3ZBVW",uploadSection:"ConceptFeatureEditor_uploadSection__jgXiw",uploadInput:"ConceptFeatureEditor_uploadInput__1AoKs",imageDescription:"ConceptFeatureEditor_imageDescription__s0Smb",descriptionText:"ConceptFeatureEditor_descriptionText__TlPK_",placeholderText:"ConceptFeatureEditor_placeholderText__Ppxoa",descriptionInput:"ConceptFeatureEditor_descriptionInput__apiB_"}},6933:(e,a,t)=>{"use strict";t.d(a,{a:()=>o});var s=t(5155),i=t(2115),l=t(7489),r=t(3578),n=t(3330);let o=e=>{let{isOpen:a,onClose:t,title:o,children:c,footer:d,width:u="600px"}=e,p=i.useCallback(e=>{e.stopPropagation()},[]);return a?(0,s.jsx)("div",{className:"modal-overlay",onClick:t,children:(0,s.jsxs)("div",{className:"modal-container",style:{maxWidth:u},onClick:p,children:[(0,s.jsxs)("div",{className:"modal-header",children:[(0,s.jsx)("h2",{children:o}),(0,s.jsx)(n.$,{variant:"ghost",size:"small",onClick:t,"aria-label":"Close",children:(0,s.jsx)(l.g,{icon:r.GRI})})]}),(0,s.jsx)("div",{className:"modal-content",children:c}),!!d&&(0,s.jsx)("div",{className:"modal-footer",children:d})]})}):null}},7302:(e,a,t)=>{"use strict";t.d(a,{T:()=>o});var s=t(5155),i=t(2115),l=t(3330),r=t(4504),n=t.n(r);let o=e=>{let{isOpen:a,title:t,message:r,confirmText:o="Confirm",cancelText:c="Cancel",onConfirm:d,onCancel:u}=e,p=(0,i.useCallback)(e=>{e.target===e.currentTarget&&u()},[u]);return a?(0,s.jsx)("div",{className:n().overlay,onClick:p,children:(0,s.jsxs)("div",{className:n().dialog,children:[(0,s.jsx)("h3",{className:n().title,children:t}),(0,s.jsx)("p",{className:n().message,children:r}),(0,s.jsxs)("div",{className:n().actions,children:[(0,s.jsx)(l.$,{type:"button",variant:"secondary",onClick:u,children:c}),(0,s.jsx)(l.$,{type:"button",variant:"danger",onClick:d,children:o})]})]})}):null}},8101:e=>{e.exports={notification:"ErrorNotification_notification__PIYEQ",slideIn:"ErrorNotification_slideIn__jwlJu",message:"ErrorNotification_message__IvsVI",closeButton:"ErrorNotification_closeButton__nbrYx"}},9847:e=>{e.exports={container:"ConceptFeatures_container__JAdWc",sidebar:"ConceptFeatures_sidebar__qZRJt",sidebarActions:"ConceptFeatures_sidebarActions__bMARz",newButton:"ConceptFeatures_newButton__ojJ3B",featureList:"ConceptFeatures_featureList__7Licr",empty:"ConceptFeatures_empty__Hfm_v",emptyActionButton:"ConceptFeatures_emptyActionButton__BGZwo",emptyButton:"ConceptFeatures_emptyButton__SyYQA","status-draft":"ConceptFeatures_status-draft__iyfD_","status-ready":"ConceptFeatures_status-ready__uAZ24","status-reviewing":"ConceptFeatures_status-reviewing__1tPlk","status-questions":"ConceptFeatures_status-questions__TSZ3V","status-reviewed":"ConceptFeatures_status-reviewed__rjrQY","status-approved":"ConceptFeatures_status-approved__QW9Jo",main:"ConceptFeatures_main__2_Ejc",placeholder:"ConceptFeatures_placeholder__Y2Y6l",loading:"ConceptFeatures_loading___RcPi",error:"ConceptFeatures_error__FfTLe"}}},e=>{e.O(0,[2403,6750,2266,1919,838,5729,6874,3044,6766,2112,8441,5964,7358],()=>e(e.s=1881)),_N_E=e.O()}]);