@baseplate-dev/project-builder-web 0.2.5 → 0.2.6

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 (109) hide show
  1. package/dist/assets/{-constants-CyTNHADu.js → -constants-CqYT9Sad.js} +2 -2
  2. package/dist/assets/{-constants-CyTNHADu.js.map → -constants-CqYT9Sad.js.map} +1 -1
  3. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-dPVRSC8L.js → web-CEscUEnR.js} +2 -2
  4. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/{web-dPVRSC8L.js.map → web-CEscUEnR.js.map} +1 -1
  5. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-CzpSl25Z.js +5 -0
  6. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-CzpSl25Z.js.map +1 -0
  7. package/dist/assets/__federation_shared_@baseplate-dev/{ui-components-z-HwX7Wv.js → ui-components-Bpztr-cx.js} +4 -4
  8. package/dist/assets/__federation_shared_@baseplate-dev/{ui-components-z-HwX7Wv.js.map → ui-components-Bpztr-cx.js.map} +1 -1
  9. package/dist/assets/{_virtual___federation_fn_import-DK_YYIlv.js → _virtual___federation_fn_import-BLYgPlMt.js} +2 -2
  10. package/dist/assets/{_virtual___federation_fn_import-DK_YYIlv.js.map → _virtual___federation_fn_import-BLYgPlMt.js.map} +1 -1
  11. package/dist/assets/{backend-B_UhUC1z.js → backend-hJNcdERv.js} +2 -2
  12. package/dist/assets/{backend-B_UhUC1z.js.map → backend-hJNcdERv.js.map} +1 -1
  13. package/dist/assets/{badge-with-type-label-Cvf-Kq7s.js → badge-with-type-label-CezAtjFy.js} +2 -2
  14. package/dist/assets/{badge-with-type-label-Cvf-Kq7s.js.map → badge-with-type-label-CezAtjFy.js.map} +1 -1
  15. package/dist/assets/{edit._id-TYAWf8Zb.js → edit._id-bMpe6S3O.js} +2 -2
  16. package/dist/assets/{edit._id-TYAWf8Zb.js.map → edit._id-bMpe6S3O.js.map} +1 -1
  17. package/dist/assets/{enum-info-form-CfQbLUQ3.js → enum-info-form-xlZ2HO8I.js} +2 -2
  18. package/dist/assets/{enum-info-form-CfQbLUQ3.js.map → enum-info-form-xlZ2HO8I.js.map} +1 -1
  19. package/dist/assets/{graphql-DTRjqtIq.js → graphql-D3J4ZWXL.js} +2 -2
  20. package/dist/assets/{graphql-DTRjqtIq.js.map → graphql-D3J4ZWXL.js.map} +1 -1
  21. package/dist/assets/{hierarchy-BDu76BxG.js → hierarchy-DF9lzUjz.js} +2 -2
  22. package/dist/assets/{hierarchy-BDu76BxG.js.map → hierarchy-DF9lzUjz.js.map} +1 -1
  23. package/dist/assets/{index-DITwAD5X.js → index-1ErFJbDw.js} +2 -2
  24. package/dist/assets/{index-DITwAD5X.js.map → index-1ErFJbDw.js.map} +1 -1
  25. package/dist/assets/index-37eYMUXo.js +2 -0
  26. package/dist/assets/index-37eYMUXo.js.map +1 -0
  27. package/dist/assets/{index-DhWOhNFS.js → index-B5-Qczd9.js} +2 -2
  28. package/dist/assets/{index-DhWOhNFS.js.map → index-B5-Qczd9.js.map} +1 -1
  29. package/dist/assets/{index-PWrncK3R.js → index-BLuLGksP.js} +2 -2
  30. package/dist/assets/{index-PWrncK3R.js.map → index-BLuLGksP.js.map} +1 -1
  31. package/dist/assets/index-BPK2SbiO.js +2 -0
  32. package/dist/assets/index-BPK2SbiO.js.map +1 -0
  33. package/dist/assets/{index-01LAxHjt.js → index-BdmJimiZ.js} +2 -2
  34. package/dist/assets/{index-01LAxHjt.js.map → index-BdmJimiZ.js.map} +1 -1
  35. package/dist/assets/{index-D8LleqeK.js → index-Bv8hyN9u.js} +2 -2
  36. package/dist/assets/{index-D8LleqeK.js.map → index-Bv8hyN9u.js.map} +1 -1
  37. package/dist/assets/{index-BgFEd-vA.js → index-C15I7WFi.js} +2 -2
  38. package/dist/assets/{index-BgFEd-vA.js.map → index-C15I7WFi.js.map} +1 -1
  39. package/dist/assets/{index-B7G2CMwL.js → index-C_wN4CIq.js} +19 -19
  40. package/dist/assets/index-C_wN4CIq.js.map +1 -0
  41. package/dist/assets/index-DBOJRz5n.css +1 -0
  42. package/dist/assets/{index-CKCJuR7p.js → index-DJsZccoO.js} +2 -2
  43. package/dist/assets/{index-CKCJuR7p.js.map → index-DJsZccoO.js.map} +1 -1
  44. package/dist/assets/{index-tLZ1b0Gc.js → index-DwyYddxl.js} +2 -2
  45. package/dist/assets/{index-tLZ1b0Gc.js.map → index-DwyYddxl.js.map} +1 -1
  46. package/dist/assets/{index-BkkIaDrq.js → index-P-wtG1LL.js} +2 -2
  47. package/dist/assets/{index-BkkIaDrq.js.map → index-P-wtG1LL.js.map} +1 -1
  48. package/dist/assets/{index.esm-Bvv3vNQh.js → index.esm-DcyGeCKA.js} +2 -2
  49. package/dist/assets/{index.esm-Bvv3vNQh.js.map → index.esm-DcyGeCKA.js.map} +1 -1
  50. package/dist/assets/{model-info-form-tJoD-VwE.js → model-info-form-VtbYsjrH.js} +2 -2
  51. package/dist/assets/{model-info-form-tJoD-VwE.js.map → model-info-form-VtbYsjrH.js.map} +1 -1
  52. package/dist/assets/model-merger-qJqD9I2_.js +2 -0
  53. package/dist/assets/{model-merger-DuBMgrZ3.js.map → model-merger-qJqD9I2_.js.map} +1 -1
  54. package/dist/assets/{new-app-dialog-CFhp6QLe.js → new-app-dialog-CTtQ52jO.js} +2 -2
  55. package/dist/assets/{new-app-dialog-CFhp6QLe.js.map → new-app-dialog-CTtQ52jO.js.map} +1 -1
  56. package/dist/assets/{new-enum-dialog-BxDxXwX_.js → new-enum-dialog-B0QcIWdY.js} +2 -2
  57. package/dist/assets/{new-enum-dialog-BxDxXwX_.js.map → new-enum-dialog-B0QcIWdY.js.map} +1 -1
  58. package/dist/assets/{new-model-dialog-D4pnLGR_.js → new-model-dialog-CM2dJ8Iv.js} +2 -2
  59. package/dist/assets/{new-model-dialog-D4pnLGR_.js.map → new-model-dialog-CM2dJ8Iv.js.map} +1 -1
  60. package/dist/assets/{route-rzAviP-P.js → route-B34jnFQF.js} +2 -2
  61. package/dist/assets/{route-rzAviP-P.js.map → route-B34jnFQF.js.map} +1 -1
  62. package/dist/assets/{route-BLMjDHl_.js → route-BRBmSLMi.js} +2 -2
  63. package/dist/assets/{route-BLMjDHl_.js.map → route-BRBmSLMi.js.map} +1 -1
  64. package/dist/assets/{route-CO2y2T3j.js → route-BsIUCKz1.js} +2 -2
  65. package/dist/assets/{route-CO2y2T3j.js.map → route-BsIUCKz1.js.map} +1 -1
  66. package/dist/assets/route-CAp89B2q.js +2 -0
  67. package/dist/assets/{route-DSICQIL3.js.map → route-CAp89B2q.js.map} +1 -1
  68. package/dist/assets/{route-BGYla1q4.js → route-DcsVxxui.js} +2 -2
  69. package/dist/assets/{route-BGYla1q4.js.map → route-DcsVxxui.js.map} +1 -1
  70. package/dist/assets/{route-DYHQ0t6P.js → route-DmdFbZkw.js} +2 -2
  71. package/dist/assets/{route-DYHQ0t6P.js.map → route-DmdFbZkw.js.map} +1 -1
  72. package/dist/assets/{route-MA2rDgPd.js → route-Dpmx4lrA.js} +2 -2
  73. package/dist/assets/{route-MA2rDgPd.js.map → route-Dpmx4lrA.js.map} +1 -1
  74. package/dist/assets/route-T4J_Uk-9.js +2 -0
  75. package/dist/assets/route-T4J_Uk-9.js.map +1 -0
  76. package/dist/assets/{route-BILZA_nq.js → route-w8_2x1VY.js} +2 -2
  77. package/dist/assets/{route-BILZA_nq.js.map → route-w8_2x1VY.js.map} +1 -1
  78. package/dist/assets/{service-C0mRE7Wd.js → service-Bgm1ICPI.js} +2 -2
  79. package/dist/assets/{service-C0mRE7Wd.js.map → service-Bgm1ICPI.js.map} +1 -1
  80. package/dist/assets/{template-extractor-1dzSeRMo.js → template-extractor-DEU0CX0Y.js} +2 -2
  81. package/dist/assets/{template-extractor-1dzSeRMo.js.map → template-extractor-DEU0CX0Y.js.map} +1 -1
  82. package/dist/assets/{theme-builder-NSOA1xIw.js → theme-builder-La1nKR0K.js} +2 -2
  83. package/dist/assets/{theme-builder-NSOA1xIw.js.map → theme-builder-La1nKR0K.js.map} +1 -1
  84. package/dist/assets/{use-definition-schema-DOTr2MSB.js → use-definition-schema-CuFFJIzk.js} +2 -2
  85. package/dist/assets/{use-definition-schema-DOTr2MSB.js.map → use-definition-schema-CuFFJIzk.js.map} +1 -1
  86. package/dist/assets/{use-enum-form-Bon-b8Oc.js → use-enum-form-DKD2EDHZ.js} +2 -2
  87. package/dist/assets/{use-enum-form-Bon-b8Oc.js.map → use-enum-form-DKD2EDHZ.js.map} +1 -1
  88. package/dist/assets/{use-model-form-Bjm8n0m8.js → use-model-form-BQa-PiE_.js} +2 -2
  89. package/dist/assets/{use-model-form-Bjm8n0m8.js.map → use-model-form-BQa-PiE_.js.map} +1 -1
  90. package/dist/assets/{utils-BGrwv_U7.js → utils-BYjOwi1b.js} +2 -2
  91. package/dist/assets/{utils-BGrwv_U7.js.map → utils-BYjOwi1b.js.map} +1 -1
  92. package/dist/index.html +5 -5
  93. package/package.json +6 -6
  94. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-DnM8acZf.js +0 -5
  95. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-DnM8acZf.js.map +0 -1
  96. package/dist/assets/index-B7G2CMwL.js.map +0 -1
  97. package/dist/assets/index-B9Di1LKs.css +0 -1
  98. package/dist/assets/index-Cg4QKyV6.js +0 -2
  99. package/dist/assets/index-Cg4QKyV6.js.map +0 -1
  100. package/dist/assets/model-merger-DuBMgrZ3.js +0 -2
  101. package/dist/assets/route-DSICQIL3.js +0 -2
  102. package/dist/assets/route-DvbGaH6v.js +0 -2
  103. package/dist/assets/route-DvbGaH6v.js.map +0 -1
  104. package/dist/assets/sections-BSA71xrl.js +0 -2
  105. package/dist/assets/sections-BSA71xrl.js.map +0 -1
  106. package/dist/assets/sections._sectionKey-DSatzih8.js +0 -2
  107. package/dist/assets/sections._sectionKey-DSatzih8.js.map +0 -1
  108. package/dist/assets/web-B598C4Bq.js +0 -2
  109. package/dist/assets/web-B598C4Bq.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{i as r}from"./_virtual___federation_fn_import-DK_YYIlv.js";import{b as $,j as e}from"./index.esm-Bvv3vNQh.js";import{G as S,I as E,B as z,J as I}from"./index-BgFEd-vA.js";import{s as M,U as A,d as B}from"./index-B7G2CMwL.js";import{s as P}from"./immer-BOh2djD_.js";function T(t){return S({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"polyline",attr:{points:"15 10 20 15 15 20"},child:[]},{tag:"path",attr:{d:"M4 4v7a4 4 0 0 0 4 4h12"},child:[]}]})(t)}const{useProjectDefinition:H}=await r("@baseplate-dev/project-builder-lib/web"),{Button:D,ComboboxFieldController:U,Dialog:V,DialogContent:W,DialogFooter:G,DialogHeader:L,DialogTitle:O,InputFieldController:q}=await r("@baseplate-dev/ui-components"),{useEffect:J,useMemo:K}=await r("react"),{z:j}=await r("zod"),Q=j.object({id:j.string(),childName:j.string().min(1).regex(/^[a-z0-9-]+$/,"Must be lowercase, numbers, and dashes only"),parentRef:j.string().optional()});function X({feature:t,open:i,onClose:a}){const{definitionContainer:{definition:p},saveDefinitionWithFeedback:d}=H(),l=K(()=>({id:t?.id??"",childName:t?.name.split("/").pop()??"",parentRef:t?.parentRef}),[t]),{control:f,handleSubmit:w,reset:m,formState:{isSubmitting:v}}=$({resolver:M(Q),values:l});J(()=>{i&&m(l)},[i,l,m]);const y=w(n=>d(c=>{const x=c.features.find(s=>s.id===n.parentRef)?.name,h=n.parentRef?`${x}/${n.childName}`:n.childName;if(c.features.some(s=>s.id!==n.id&&s.name===h))throw new A("Feature with this name already exists");const b=[...c.features.filter(s=>s.id!==n.id),{id:n.id,name:h,parentRef:n.parentRef}];function F(s){const R=b.filter(u=>s?new RegExp(`^${s.name}/[^/]+$`).exec(u.name):!u.name.includes("/"));for(const u of R){const g=u.name.split("/").pop();if(!g)throw new Error("Invalid feature name");u.name=s?`${s.name}/${g}`:g,F(u)}}F(),c.features=P(b,[s=>s.name])},{onSuccess:()=>{a?.()}})),o=[{label:"None",value:void 0},...p.features.filter(n=>n.id!==t?.id).map(n=>({label:n.name,value:n.id}))];return e.jsx(V,{open:i,onOpenChange:n=>{n||a?.()},children:e.jsx(W,{children:e.jsxs("form",{className:"space-y-4",onSubmit:y,children:[e.jsx(L,{children:e.jsxs(O,{children:[t?.name?"Edit":"Add"," Feature"]})}),e.jsx(q,{control:f,name:"childName",label:"Name",autoComplete:"off","data-1p-ignore":!0}),e.jsx(U,{control:f,name:"parentRef",label:"Parent Feature",options:o}),e.jsxs(G,{children:[e.jsx(D,{onClick:a,variant:"secondary",children:"Cancel"}),e.jsx(D,{type:"submit",disabled:v,children:"Save"})]})]})})})}const{featureEntityType:C}=await r("@baseplate-dev/project-builder-lib"),{useProjectDefinition:Y}=await r("@baseplate-dev/project-builder-lib/web"),{Button:N,buttonVariants:Z,cn:_,useConfirmDialog:ee}=await r("@baseplate-dev/ui-components"),{useState:k}=await r("react");function te({feature:t,setFeatureToEdit:i,setShowFeatureForm:a,handleRemoveFeature:p}){const d=t.name.split("/").pop()??"";return e.jsxs("div",{className:"flex space-x-1",children:[e.jsx("button",{className:"mr-1 flex w-full flex-row items-center space-x-3",onClick:()=>{i(t),a(!0)},children:e.jsxs("div",{className:"flex w-full items-center space-x-1 truncate",title:d,children:[t.name.includes("/")&&e.jsxs(e.Fragment,{children:[t.name.split("/").slice(0,-2).map(l=>e.jsx("div",{className:"w-8 shrink-0"},l)),e.jsx(T,{className:"size-8 shrink-0 p-2"})]}),e.jsxs("div",{className:_(Z({variant:"secondary",size:"sm"}),"group w-full"),style:{justifyContent:"flex-start"},children:[d,e.jsx("div",{className:"flex-1"}),e.jsx(E,{className:"opacity-0 transition-opacity group-hover:opacity-100"})]})]})}),e.jsx(N,{className:"shrink-0",variant:"ghost",onClick:()=>{i({id:C.generateNewId(),name:"",parentRef:t.id}),a(!0)},size:"icon",title:`Add Sub-Feature to ${t.name}`,children:e.jsx(z,{})}),e.jsx(N,{className:"shrink-0",variant:"ghost",onClick:()=>{p(t)},size:"icon",title:`Delete ${t.name}`,children:e.jsx(I,{})})]})}const re=function(){const{definitionContainer:i,saveDefinitionWithFeedbackSync:a}=Y(),{requestConfirm:p}=ee(),{showRefIssues:d}=B(),[l,f]=k(),[w,m]=k(!1),{features:v}=i.definition,y=o=>{function n(x){const h=x.features.findIndex(b=>b.id===o.id);if(h===-1)throw new Error("Feature not found");x.features.splice(h,1)}const c=i.fixRefDeletions(n);if(c.type==="failure"){d({issues:c.issues});return}p({title:"Delete Feature",content:`Are you sure you want to delete ${o.name}?`,onConfirm:()=>{a(n,{successMessage:`Feature ${o.name} removed`})}})};return e.jsx("div",{className:"relative h-full max-h-full pb-(--action-bar-height)",children:e.jsxs("div",{className:"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6",children:[e.jsxs("div",{className:"sticky top-0 space-y-2 border-b bg-background py-6",children:[e.jsx("h1",{children:"Hierarchy"}),e.jsx("p",{className:"max-w-3xl text-muted-foreground",children:"All business logic and features are organized in a hierarchy. The structure of the features in the list below is the way the folder structure will be created in your backend/admin applications."})]}),e.jsxs("div",{className:"py-6",children:[e.jsx("div",{className:"mb-4 flex max-w-md flex-col gap-1",children:v.map(o=>e.jsx(te,{feature:o,setFeatureToEdit:f,setShowFeatureForm:m,handleRemoveFeature:y},o.id))}),e.jsx(N,{onClick:()=>{f({id:C.generateNewId(),name:"",parentRef:void 0}),m(!0)},variant:"secondary",size:"sm",children:"Add Feature"}),e.jsx(X,{feature:l,open:w,onClose:()=>{m(!1)}})]})]})})};export{re as component};
2
- //# sourceMappingURL=hierarchy-BDu76BxG.js.map
1
+ import{i as r}from"./_virtual___federation_fn_import-BLYgPlMt.js";import{b as $,j as e}from"./index.esm-DcyGeCKA.js";import{G as S,I as E,B as z,J as I}from"./index-C15I7WFi.js";import{s as M,U as A,d as B}from"./index-C_wN4CIq.js";import{s as P}from"./immer-BOh2djD_.js";function T(t){return S({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"polyline",attr:{points:"15 10 20 15 15 20"},child:[]},{tag:"path",attr:{d:"M4 4v7a4 4 0 0 0 4 4h12"},child:[]}]})(t)}const{useProjectDefinition:H}=await r("@baseplate-dev/project-builder-lib/web"),{Button:D,ComboboxFieldController:U,Dialog:V,DialogContent:W,DialogFooter:G,DialogHeader:L,DialogTitle:O,InputFieldController:q}=await r("@baseplate-dev/ui-components"),{useEffect:J,useMemo:K}=await r("react"),{z:j}=await r("zod"),Q=j.object({id:j.string(),childName:j.string().min(1).regex(/^[a-z0-9-]+$/,"Must be lowercase, numbers, and dashes only"),parentRef:j.string().optional()});function X({feature:t,open:i,onClose:a}){const{definitionContainer:{definition:p},saveDefinitionWithFeedback:d}=H(),l=K(()=>({id:t?.id??"",childName:t?.name.split("/").pop()??"",parentRef:t?.parentRef}),[t]),{control:f,handleSubmit:w,reset:m,formState:{isSubmitting:v}}=$({resolver:M(Q),values:l});J(()=>{i&&m(l)},[i,l,m]);const y=w(n=>d(c=>{const x=c.features.find(s=>s.id===n.parentRef)?.name,h=n.parentRef?`${x}/${n.childName}`:n.childName;if(c.features.some(s=>s.id!==n.id&&s.name===h))throw new A("Feature with this name already exists");const b=[...c.features.filter(s=>s.id!==n.id),{id:n.id,name:h,parentRef:n.parentRef}];function F(s){const R=b.filter(u=>s?new RegExp(`^${s.name}/[^/]+$`).exec(u.name):!u.name.includes("/"));for(const u of R){const g=u.name.split("/").pop();if(!g)throw new Error("Invalid feature name");u.name=s?`${s.name}/${g}`:g,F(u)}}F(),c.features=P(b,[s=>s.name])},{onSuccess:()=>{a?.()}})),o=[{label:"None",value:void 0},...p.features.filter(n=>n.id!==t?.id).map(n=>({label:n.name,value:n.id}))];return e.jsx(V,{open:i,onOpenChange:n=>{n||a?.()},children:e.jsx(W,{children:e.jsxs("form",{className:"space-y-4",onSubmit:y,children:[e.jsx(L,{children:e.jsxs(O,{children:[t?.name?"Edit":"Add"," Feature"]})}),e.jsx(q,{control:f,name:"childName",label:"Name",autoComplete:"off","data-1p-ignore":!0}),e.jsx(U,{control:f,name:"parentRef",label:"Parent Feature",options:o}),e.jsxs(G,{children:[e.jsx(D,{onClick:a,variant:"secondary",children:"Cancel"}),e.jsx(D,{type:"submit",disabled:v,children:"Save"})]})]})})})}const{featureEntityType:C}=await r("@baseplate-dev/project-builder-lib"),{useProjectDefinition:Y}=await r("@baseplate-dev/project-builder-lib/web"),{Button:N,buttonVariants:Z,cn:_,useConfirmDialog:ee}=await r("@baseplate-dev/ui-components"),{useState:k}=await r("react");function te({feature:t,setFeatureToEdit:i,setShowFeatureForm:a,handleRemoveFeature:p}){const d=t.name.split("/").pop()??"";return e.jsxs("div",{className:"flex space-x-1",children:[e.jsx("button",{className:"mr-1 flex w-full flex-row items-center space-x-3",onClick:()=>{i(t),a(!0)},children:e.jsxs("div",{className:"flex w-full items-center space-x-1 truncate",title:d,children:[t.name.includes("/")&&e.jsxs(e.Fragment,{children:[t.name.split("/").slice(0,-2).map(l=>e.jsx("div",{className:"w-8 shrink-0"},l)),e.jsx(T,{className:"size-8 shrink-0 p-2"})]}),e.jsxs("div",{className:_(Z({variant:"secondary",size:"sm"}),"group w-full"),style:{justifyContent:"flex-start"},children:[d,e.jsx("div",{className:"flex-1"}),e.jsx(E,{className:"opacity-0 transition-opacity group-hover:opacity-100"})]})]})}),e.jsx(N,{className:"shrink-0",variant:"ghost",onClick:()=>{i({id:C.generateNewId(),name:"",parentRef:t.id}),a(!0)},size:"icon",title:`Add Sub-Feature to ${t.name}`,children:e.jsx(z,{})}),e.jsx(N,{className:"shrink-0",variant:"ghost",onClick:()=>{p(t)},size:"icon",title:`Delete ${t.name}`,children:e.jsx(I,{})})]})}const re=function(){const{definitionContainer:i,saveDefinitionWithFeedbackSync:a}=Y(),{requestConfirm:p}=ee(),{showRefIssues:d}=B(),[l,f]=k(),[w,m]=k(!1),{features:v}=i.definition,y=o=>{function n(x){const h=x.features.findIndex(b=>b.id===o.id);if(h===-1)throw new Error("Feature not found");x.features.splice(h,1)}const c=i.fixRefDeletions(n);if(c.type==="failure"){d({issues:c.issues});return}p({title:"Delete Feature",content:`Are you sure you want to delete ${o.name}?`,onConfirm:()=>{a(n,{successMessage:`Feature ${o.name} removed`})}})};return e.jsx("div",{className:"relative h-full max-h-full pb-(--action-bar-height)",children:e.jsxs("div",{className:"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6",children:[e.jsxs("div",{className:"sticky top-0 space-y-2 border-b bg-background py-6",children:[e.jsx("h1",{children:"Hierarchy"}),e.jsx("p",{className:"max-w-3xl text-muted-foreground",children:"All business logic and features are organized in a hierarchy. The structure of the features in the list below is the way the folder structure will be created in your backend/admin applications."})]}),e.jsxs("div",{className:"py-6",children:[e.jsx("div",{className:"mb-4 flex max-w-md flex-col gap-1",children:v.map(o=>e.jsx(te,{feature:o,setFeatureToEdit:f,setShowFeatureForm:m,handleRemoveFeature:y},o.id))}),e.jsx(N,{onClick:()=>{f({id:C.generateNewId(),name:"",parentRef:void 0}),m(!0)},variant:"secondary",size:"sm",children:"Add Feature"}),e.jsx(X,{feature:l,open:w,onClose:()=>{m(!1)}})]})]})})};export{re as component};
2
+ //# sourceMappingURL=hierarchy-DF9lzUjz.js.map