@baseplate-dev/project-builder-web 0.2.1 → 0.2.3

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 (120) hide show
  1. package/dist/assets/-constants-gwObfy2j.js +4 -0
  2. package/dist/assets/-constants-gwObfy2j.js.map +1 -0
  3. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-BXxolMLm.js +2 -0
  4. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-BXxolMLm.js.map +1 -0
  5. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-CDWHycLw.js +5 -0
  6. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-CDWHycLw.js.map +1 -0
  7. package/dist/assets/__federation_shared_@baseplate-dev/ui-components-DGE1buQ-.js +46 -0
  8. package/dist/assets/__federation_shared_@baseplate-dev/ui-components-DGE1buQ-.js.map +1 -0
  9. package/dist/assets/{_virtual___federation_fn_import-BawTfoQI.js → _virtual___federation_fn_import-CE3p-l_2.js} +2 -2
  10. package/dist/assets/{_virtual___federation_fn_import-BawTfoQI.js.map → _virtual___federation_fn_import-CE3p-l_2.js.map} +1 -1
  11. package/dist/assets/backend-BAEsy0fr.js +2 -0
  12. package/dist/assets/backend-BAEsy0fr.js.map +1 -0
  13. package/dist/assets/badge-with-type-label-BuG6yCtf.js +2 -0
  14. package/dist/assets/badge-with-type-label-BuG6yCtf.js.map +1 -0
  15. package/dist/assets/edit._id-DPcGRUbG.js +2 -0
  16. package/dist/assets/edit._id-DPcGRUbG.js.map +1 -0
  17. package/dist/assets/enum-info-form-BjI1ArPU.js +2 -0
  18. package/dist/assets/enum-info-form-BjI1ArPU.js.map +1 -0
  19. package/dist/assets/graphql-DksHNLLL.js +2 -0
  20. package/dist/assets/graphql-DksHNLLL.js.map +1 -0
  21. package/dist/assets/hierarchy-BwshirJR.js +2 -0
  22. package/dist/assets/hierarchy-BwshirJR.js.map +1 -0
  23. package/dist/assets/immer-xieDw-3D.js +2 -0
  24. package/dist/assets/immer-xieDw-3D.js.map +1 -0
  25. package/dist/assets/index-B6qfP-Zp.js +2 -0
  26. package/dist/assets/index-B6qfP-Zp.js.map +1 -0
  27. package/dist/assets/index-B9Di1LKs.css +1 -0
  28. package/dist/assets/index-BNK4j9mt.js +2 -0
  29. package/dist/assets/index-BNK4j9mt.js.map +1 -0
  30. package/dist/assets/index-BS45dlQs.js +2 -0
  31. package/dist/assets/index-BS45dlQs.js.map +1 -0
  32. package/dist/assets/index-C6ezfkGk.js +2 -0
  33. package/dist/assets/index-C6ezfkGk.js.map +1 -0
  34. package/dist/assets/index-CVRvV2mv.js +2 -0
  35. package/dist/assets/index-CVRvV2mv.js.map +1 -0
  36. package/dist/assets/index-CwavzuOe.js +2 -0
  37. package/dist/assets/index-CwavzuOe.js.map +1 -0
  38. package/dist/assets/index-D5UX5AHP.js +5 -0
  39. package/dist/assets/index-D5UX5AHP.js.map +1 -0
  40. package/dist/assets/index-Dp90A2TJ.js +2 -0
  41. package/dist/assets/index-Dp90A2TJ.js.map +1 -0
  42. package/dist/assets/index-E5Zy1ClF.js +2 -0
  43. package/dist/assets/index-E5Zy1ClF.js.map +1 -0
  44. package/dist/assets/index-La9rk06J.js +2 -0
  45. package/dist/assets/index-La9rk06J.js.map +1 -0
  46. package/dist/assets/index-gE__lQ6b.js +58 -0
  47. package/dist/assets/index-gE__lQ6b.js.map +1 -0
  48. package/dist/assets/index-s17MV-9f.js +2 -0
  49. package/dist/assets/index-s17MV-9f.js.map +1 -0
  50. package/dist/assets/index.esm-CyH9wtdI.js +10 -0
  51. package/dist/assets/index.esm-CyH9wtdI.js.map +1 -0
  52. package/dist/assets/inflection-C1nKqrJS.js +9 -0
  53. package/dist/assets/inflection-C1nKqrJS.js.map +1 -0
  54. package/dist/assets/model-info-form-B9t3m8Pj.js +2 -0
  55. package/dist/assets/model-info-form-B9t3m8Pj.js.map +1 -0
  56. package/dist/assets/model-merger-DL4MVNID.js +2 -0
  57. package/dist/assets/model-merger-DL4MVNID.js.map +1 -0
  58. package/dist/assets/new-app-dialog-Cd7rJ7i5.js +2 -0
  59. package/dist/assets/new-app-dialog-Cd7rJ7i5.js.map +1 -0
  60. package/dist/assets/new-enum-dialog-Z3aWnnBr.js +2 -0
  61. package/dist/assets/new-enum-dialog-Z3aWnnBr.js.map +1 -0
  62. package/dist/assets/new-model-dialog-uEX7hTid.js +2 -0
  63. package/dist/assets/new-model-dialog-uEX7hTid.js.map +1 -0
  64. package/dist/assets/route-B2oYTZT4.js +2 -0
  65. package/dist/assets/route-B2oYTZT4.js.map +1 -0
  66. package/dist/assets/route-B6DRGm3t.js +2 -0
  67. package/dist/assets/route-B6DRGm3t.js.map +1 -0
  68. package/dist/assets/route-BOOZxY6E.js +2 -0
  69. package/dist/assets/route-BOOZxY6E.js.map +1 -0
  70. package/dist/assets/route-BwqWBMDI.js +2 -0
  71. package/dist/assets/route-BwqWBMDI.js.map +1 -0
  72. package/dist/assets/route-BxjC9xAo.js +2 -0
  73. package/dist/assets/route-BxjC9xAo.js.map +1 -0
  74. package/dist/assets/route-BzTxfPrV.js +2 -0
  75. package/dist/assets/route-BzTxfPrV.js.map +1 -0
  76. package/dist/assets/route-C8YLDv4I.js +2 -0
  77. package/dist/assets/route-C8YLDv4I.js.map +1 -0
  78. package/dist/assets/route-DrufP1-c.js +2 -0
  79. package/dist/assets/route-DrufP1-c.js.map +1 -0
  80. package/dist/assets/route-_AecKyFO.js +2 -0
  81. package/dist/assets/route-_AecKyFO.js.map +1 -0
  82. package/dist/assets/sections-D-GS6uoS.js +2 -0
  83. package/dist/assets/sections-D-GS6uoS.js.map +1 -0
  84. package/dist/assets/sections._sectionKey-Bj4VmUuM.js +2 -0
  85. package/dist/assets/sections._sectionKey-Bj4VmUuM.js.map +1 -0
  86. package/dist/assets/service-C6FdRXxU.js +2 -0
  87. package/dist/assets/service-C6FdRXxU.js.map +1 -0
  88. package/dist/assets/template-extractor-D2LqkpO5.js +2 -0
  89. package/dist/assets/template-extractor-D2LqkpO5.js.map +1 -0
  90. package/dist/assets/theme-builder-_PghOvuC.js +11 -0
  91. package/dist/assets/theme-builder-_PghOvuC.js.map +1 -0
  92. package/dist/assets/use-definition-schema-B2FBXmC_.js +2 -0
  93. package/dist/assets/use-definition-schema-B2FBXmC_.js.map +1 -0
  94. package/dist/assets/use-enum-form-DQza9C6Q.js +2 -0
  95. package/dist/assets/use-enum-form-DQza9C6Q.js.map +1 -0
  96. package/dist/assets/use-model-form-D4qoaVd7.js +2 -0
  97. package/dist/assets/use-model-form-D4qoaVd7.js.map +1 -0
  98. package/dist/assets/utils-CH9UxfXa.js +2 -0
  99. package/dist/assets/utils-CH9UxfXa.js.map +1 -0
  100. package/dist/assets/web-C6Idxok-.js +2 -0
  101. package/dist/assets/web-C6Idxok-.js.map +1 -0
  102. package/dist/index.html +6 -8
  103. package/package.json +9 -8
  104. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-DNtY4wq3.js +0 -2
  105. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-DNtY4wq3.js.map +0 -1
  106. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-zvGcQ6PN.js +0 -5
  107. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-zvGcQ6PN.js.map +0 -1
  108. package/dist/assets/__federation_shared_@baseplate-dev/ui-components-DQh2UKHB.js +0 -46
  109. package/dist/assets/__federation_shared_@baseplate-dev/ui-components-DQh2UKHB.js.map +0 -1
  110. package/dist/assets/index-BDJ79UQH.css +0 -1
  111. package/dist/assets/index-C6NlRicZ.js +0 -78
  112. package/dist/assets/index-C6NlRicZ.js.map +0 -1
  113. package/dist/assets/index-DC_DCd-Q.js +0 -12
  114. package/dist/assets/index-DC_DCd-Q.js.map +0 -1
  115. package/dist/assets/index.esm-H0JGW0RR.js +0 -10
  116. package/dist/assets/index.esm-H0JGW0RR.js.map +0 -1
  117. package/dist/assets/model-merger-D2RoujrB.js +0 -2
  118. package/dist/assets/model-merger-D2RoujrB.js.map +0 -1
  119. package/dist/assets/not-empty-CznDVwM8.js +0 -2
  120. package/dist/assets/not-empty-CznDVwM8.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{i}from"./_virtual___federation_fn_import-CE3p-l_2.js";import{j as e}from"./index.esm-CyH9wtdI.js";import{L as p}from"./index-gE__lQ6b.js";import{h as c}from"./index-BS45dlQs.js";import{N as n}from"./new-app-dialog-Cd7rJ7i5.js";import{s as d}from"./immer-xieDw-3D.js";const{appEntityType:l}=await i("@baseplate-dev/project-builder-lib"),{useProjectDefinition:m}=await i("@baseplate-dev/project-builder-lib/web"),{Button:t,Card:h,EmptyDisplay:x}=await i("@baseplate-dev/ui-components"),v=function(){const{definition:r}=m(),{apps:o}=r,a=d(o,[s=>s.name]);return a.length===0?e.jsx(x,{icon:c,header:"No Apps",subtitle:"You haven't created any apps yet",actions:e.jsx(n,{children:e.jsx(t,{children:"New App"})})}):e.jsxs("div",{className:"space-y-4 p-4",children:[e.jsx("h1",{children:"Apps"}),e.jsx("p",{children:"These are the apps that are defined in your project. You can edit them here."}),e.jsx(n,{children:e.jsx(t,{children:"New App"})}),e.jsx("div",{className:"max-w-xl space-y-4",children:a.map(s=>e.jsxs(h,{className:"flex justify-between space-x-4 p-4",children:[e.jsxs("div",{children:[e.jsxs("h3",{children:[s.name," (",s.type,")"]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s.packageLocation})]}),e.jsx(p,{to:"/apps/edit/$key",from:"/",params:{key:l.keyFromId(s.id)},className:"inline-block",children:e.jsx(t,{variant:"secondary",children:"Edit"})})]},s.id))})]})};export{v as component};
2
+ //# sourceMappingURL=index-Dp90A2TJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dp90A2TJ.js","sources":["../../src/routes/apps/index.tsx?tsr-split=component"],"sourcesContent":["import type React from 'react';\n\nimport { appEntityType } from '@baseplate-dev/project-builder-lib';\nimport { useProjectDefinition } from '@baseplate-dev/project-builder-lib/web';\nimport { Button, Card, EmptyDisplay } from '@baseplate-dev/ui-components';\nimport { createFileRoute, Link } from '@tanstack/react-router';\nimport { sortBy } from 'es-toolkit';\nimport { MdApps } from 'react-icons/md';\n\nimport NewAppDialog from './-components/new-app-dialog.js';\n\nexport const Route = createFileRoute('/apps/')({\n component: AppsListPage,\n});\n\nfunction AppsListPage(): React.JSX.Element {\n const { definition } = useProjectDefinition();\n\n const { apps } = definition;\n const sortedApps = sortBy(apps, [(app) => app.name]);\n\n if (sortedApps.length === 0) {\n return (\n <EmptyDisplay\n icon={MdApps}\n header=\"No Apps\"\n subtitle=\"You haven't created any apps yet\"\n actions={\n <NewAppDialog>\n <Button>New App</Button>\n </NewAppDialog>\n }\n />\n );\n }\n\n return (\n <div className=\"space-y-4 p-4\">\n <h1>Apps</h1>\n <p>\n These are the apps that are defined in your project. You can edit them\n here.\n </p>\n <NewAppDialog>\n <Button>New App</Button>\n </NewAppDialog>\n <div className=\"max-w-xl space-y-4\">\n {sortedApps.map((app) => (\n <Card key={app.id} className=\"flex justify-between space-x-4 p-4\">\n <div>\n <h3>\n {app.name} ({app.type})\n </h3>\n <p className=\"text-xs text-muted-foreground\">\n {app.packageLocation}\n </p>\n </div>\n <Link\n to=\"/apps/edit/$key\"\n from=\"/\"\n params={{ key: appEntityType.keyFromId(app.id) }}\n className=\"inline-block\"\n >\n <Button variant=\"secondary\">Edit</Button>\n </Link>\n </Card>\n ))}\n </div>\n </div>\n );\n}\n"],"names":["appEntityType","importShared","useProjectDefinition","Button","Card","EmptyDisplay","SplitComponent","definition","apps","sortedApps","sortBy","app","name","length","jsx","MdApps","NewAppDialog","jsxs","map","type","packageLocation","Link","key","keyFromId","id"],"mappings":"kRAEA,KAAA,CAAA,cAAAA,CAAA,EAAA,MAAAC,EAAA,oCAAA,EACA,CAAA,qBAAAC,CAAA,EAAA,MAAAD,EAAA,wCAAA,EACA,CAAA,OAAAE,EAAA,KAAAC,EAAA,aAAAC,CAAA,EAAA,MAAAJ,EAAA,8BAAA,EAK2DK,EAAA,UAMhB,CACnC,KAAA,CAAEC,WAAAA,GAAeL,EAAqB,EAEtC,CAAEM,KAAAA,CAAAA,EAASD,EACXE,EAAaC,EAAOF,EAAM,CAAUG,GAAAA,EAAIC,IAAI,CAAC,EAE/CH,OAAAA,EAAWI,SAAW,EAErBC,EAAA,IAAAT,EAAA,CACC,KAAMU,EACN,OAAO,UACP,SAAS,mCACT,cACGC,EACC,CAAA,SAAAF,EAAAA,IAACX,EAAO,CAAA,SAAA,SAAA,CAAO,CACjB,CAAA,EAEF,EAKJc,EAAA,KAAC,MAAI,CAAA,UAAU,gBACb,SAAA,CAAAH,EAAAA,IAAC,MAAG,SAAI,MAAA,CAAA,EACRA,EAAAA,IAAC,KAAC,SAGF,8EAAA,CAAA,EACCA,MAAAE,EAAA,CACC,SAACF,EAAA,IAAAX,EAAA,CAAO,kBAAO,CAAA,EACjB,EACAW,EAAA,IAAC,MAAI,CAAA,UAAU,qBACZL,SAAAA,EAAWS,IACVP,GAAAM,EAAA,KAACb,EAAkB,CAAA,UAAU,qCAC3B,SAAA,CAAAa,OAAC,MACC,CAAA,SAAA,CAAAA,OAAC,KACEN,CAAAA,SAAAA,CAAIC,EAAAA,KAAK,KAAGD,EAAIQ,KAAK,GAAA,EACxB,EACCL,EAAA,IAAA,IAAA,CAAE,UAAU,gCACVH,WAAIS,eACP,CAAA,CAAA,EACF,QACCC,EACC,CAAA,GAAG,kBACH,KAAK,IACL,OAAQ,CAAEC,IAAKtB,EAAcuB,UAAUZ,EAAIa,EAAE,CAAE,EAC/C,UAAU,eAEV,SAAAV,MAACX,GAAO,QAAQ,YAAY,eAAI,CAAA,CAClC,CAAA,CAAA,GAhBSQ,EAAIa,EAiBf,CACD,CACH,CAAA,CAAA,EACF,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{i as n}from"./_virtual___federation_fn_import-CE3p-l_2.js";import{j as e}from"./index.esm-CyH9wtdI.js";import{q as v,s as w}from"./index-gE__lQ6b.js";import{u as A}from"./use-definition-schema-B2FBXmC_.js";const{authConfigSpec:L,createAdminAppSchema:R}=await n("@baseplate-dev/project-builder-lib"),{useBlockUnsavedChangesNavigate:k,useProjectDefinition:D,useResettableForm:F}=await n("@baseplate-dev/project-builder-lib/web"),{FormActionBar:P,InputFieldController:p,MultiComboboxFieldController:N,SectionList:y,SectionListSection:m,SectionListSectionContent:d,SectionListSectionDescription:u,SectionListSectionHeader:h,SectionListSectionTitle:x}=await n("@baseplate-dev/ui-components"),H=function(){const{adminDefinition:t}=v.useRouteContext(),{definition:j,saveDefinitionWithFeedback:S,pluginContainer:b}=D(),f=A(R),s=F({resolver:w(f),values:t}),{control:i,handleSubmit:g,reset:C}=s,a=g(o=>S(l=>{l.apps=l.apps.map(r=>r.id===t.id?o:r)}));k({control:i,reset:C,onSubmit:a});const c=b.getPluginSpecOptional(L)?.getAuthRoles(j).map(o=>({label:o.name,value:o.id}));return e.jsxs("form",{className:"w-full max-w-7xl space-y-4 p-4",onSubmit:a,children:[e.jsxs(y,{children:[e.jsxs(m,{children:[e.jsxs(h,{children:[e.jsx(x,{children:"General"}),e.jsx(u,{children:"Basic configuration for your admin application."})]}),e.jsxs(d,{className:"space-y-6",children:[e.jsx(p,{label:"Name",control:i,name:"name"}),e.jsx(p,{label:"Package Location (optional)",placeholder:"e.g. packages/admin",control:i,name:"packageLocation"})]})]}),c&&e.jsxs(m,{children:[e.jsxs(h,{children:[e.jsx(x,{children:"Access Control"}),e.jsx(u,{children:"Configure which user roles can access the admin application."})]}),e.jsx(d,{children:e.jsx(N,{label:"Allowed Roles",control:i,options:c,name:"allowedRoles"})})]})]}),e.jsx(P,{form:s})]})};export{H as component};
2
+ //# sourceMappingURL=index-E5Zy1ClF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-E5Zy1ClF.js","sources":["../../src/routes/apps/edit.$key/admin/index.tsx?tsr-split=component"],"sourcesContent":["import type React from 'react';\n\nimport {\n authConfigSpec,\n createAdminAppSchema,\n} from '@baseplate-dev/project-builder-lib';\nimport {\n useBlockUnsavedChangesNavigate,\n useProjectDefinition,\n useResettableForm,\n} from '@baseplate-dev/project-builder-lib/web';\nimport {\n FormActionBar,\n InputFieldController,\n MultiComboboxFieldController,\n SectionList,\n SectionListSection,\n SectionListSectionContent,\n SectionListSectionDescription,\n SectionListSectionHeader,\n SectionListSectionTitle,\n} from '@baseplate-dev/ui-components';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { createFileRoute } from '@tanstack/react-router';\n\nimport { useDefinitionSchema } from '#src/hooks/use-definition-schema.js';\n\nexport const Route = createFileRoute('/apps/edit/$key/admin/')({\n component: AdminAppEditPage,\n});\n\nfunction AdminAppEditPage(): React.JSX.Element {\n const { adminDefinition } = Route.useRouteContext();\n const { definition, saveDefinitionWithFeedback, pluginContainer } =\n useProjectDefinition();\n const adminAppSchema = useDefinitionSchema(createAdminAppSchema);\n\n const formProps = useResettableForm({\n resolver: zodResolver(adminAppSchema),\n values: adminDefinition,\n });\n const { control, handleSubmit, reset } = formProps;\n\n const onSubmit = handleSubmit((data) =>\n saveDefinitionWithFeedback((draftConfig) => {\n draftConfig.apps = draftConfig.apps.map((app) =>\n app.id === adminDefinition.id ? data : app,\n );\n }),\n );\n\n useBlockUnsavedChangesNavigate({ control, reset, onSubmit });\n\n const roleOptions = pluginContainer\n .getPluginSpecOptional(authConfigSpec)\n ?.getAuthRoles(definition)\n .map((role) => ({\n label: role.name,\n value: role.id,\n }));\n\n return (\n <form className=\"w-full max-w-7xl space-y-4 p-4\" onSubmit={onSubmit}>\n <SectionList>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>General</SectionListSectionTitle>\n <SectionListSectionDescription>\n Basic configuration for your admin application.\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"space-y-6\">\n <InputFieldController label=\"Name\" control={control} name=\"name\" />\n <InputFieldController\n label=\"Package Location (optional)\"\n placeholder=\"e.g. packages/admin\"\n control={control}\n name=\"packageLocation\"\n />\n </SectionListSectionContent>\n </SectionListSection>\n\n {roleOptions && (\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>Access Control</SectionListSectionTitle>\n <SectionListSectionDescription>\n Configure which user roles can access the admin application.\n </SectionListSectionDescription>\n </SectionListSectionHeader>\n <SectionListSectionContent>\n <MultiComboboxFieldController\n label=\"Allowed Roles\"\n control={control}\n options={roleOptions}\n name=\"allowedRoles\"\n />\n </SectionListSectionContent>\n </SectionListSection>\n )}\n </SectionList>\n <FormActionBar form={formProps} />\n </form>\n );\n}\n"],"names":["authConfigSpec","createAdminAppSchema","importShared","useBlockUnsavedChangesNavigate","useProjectDefinition","useResettableForm","FormActionBar","InputFieldController","MultiComboboxFieldController","SectionList","SectionListSection","SectionListSectionContent","SectionListSectionDescription","SectionListSectionHeader","SectionListSectionTitle","SplitComponent","adminDefinition","Route","useRouteContext","definition","saveDefinitionWithFeedback","pluginContainer","adminAppSchema","useDefinitionSchema","formProps","resolver","zodResolver","values","control","handleSubmit","reset","onSubmit","draftConfig","apps","map","app","id","data","roleOptions","getPluginSpecOptional","getAuthRoles","role","label","name","value","jsxs","jsx"],"mappings":"qNAEA,KAAA,CAAA,eAAAA,EAAA,qBAAAC,CAAA,EAAA,MAAAC,EAAA,oCAAA,EAIA,CAAA,+BAAAC,EAAA,qBAAAC,EAAA,kBAAAC,CAAA,EAAA,MAAAH,EAAA,wCAAA,EAKA,CAAA,cAAAI,EAAA,qBAAAC,EAAA,6BAAAC,EAAA,YAAAC,EAAA,mBAAAC,EAAA,0BAAAC,EAAA,8BAAAC,EAAA,yBAAAC,EAAA,wBAAAC,CAAA,EAAA,MAAAZ,EAAA,8BAAA,EAc0Ea,EAAA,UAM3B,CACvC,KAAA,CAAEC,gBAAAA,CAAAA,EAAoBC,EAAMC,gBAAgB,EAC5C,CAAEC,WAAAA,EAAYC,2BAAAA,EAA4BC,gBAAAA,GAC9CjB,EAAqB,EACjBkB,EAAiBC,EAAoBtB,CAAoB,EAEzDuB,EAAYnB,EAAkB,CAClCoB,SAAUC,EAAYJ,CAAc,EACpCK,OAAQX,CAAAA,CACT,EACK,CAAEY,QAAAA,EAASC,aAAAA,EAAcC,MAAAA,CAAAA,EAAUN,EAEnCO,EAAWF,EACfT,GAAAA,EAA4CY,GAAA,CAC9BC,EAAAA,KAAOD,EAAYC,KAAKC,IAAKC,GACvCA,EAAIC,KAAOpB,EAAgBoB,GAAKC,EAAOF,CACzC,CAAA,CACD,CACH,EAE+BhC,EAAA,CAAEyB,QAAAA,EAASE,MAAAA,EAAOC,SAAAA,CAAAA,CAAU,EAErDO,MAAAA,EAAcjB,EACjBkB,sBAAsBvC,CAAc,GACnCwC,aAAarB,CAAU,EACxBe,IAAeO,IAAA,CACdC,MAAOD,EAAKE,KACZC,MAAOH,EAAKL,EAAAA,EACZ,EAEJ,OACGS,EAAAA,KAAA,OAAA,CAAK,UAAU,iCAAiC,SAAAd,EAC/C,SAAA,CAAAc,OAACpC,EACC,CAAA,SAAA,CAAAoC,OAACnC,EACC,CAAA,SAAA,CAAAmC,OAAChC,EACC,CAAA,SAAA,CAAAiC,EAAAA,IAAChC,GAAwB,SAAO,SAAA,CAAA,EAChCgC,EAAAA,IAAClC,GAA6B,SAE9B,iDAAA,CAAA,CAAA,EACF,EACAiC,EAAAA,KAAClC,EAA0B,CAAA,UAAU,YACnC,SAAA,CAAAmC,EAAA,IAACvC,EAAqB,CAAA,MAAM,OAAO,QAAAqB,EAAkB,KAAK,OAAM,EAChEkB,MAACvC,GACC,MAAM,8BACN,YAAY,sBACZ,QAAAqB,EACA,KAAK,iBAAiB,CAAA,CAAA,CAE1B,CAAA,CAAA,EACF,EAECU,UACE5B,EACC,CAAA,SAAA,CAAAmC,OAAChC,EACC,CAAA,SAAA,CAAAiC,EAAAA,IAAChC,GAAwB,SAAc,gBAAA,CAAA,EACvCgC,EAAAA,IAAClC,GAA6B,SAE9B,8DAAA,CAAA,CAAA,EACF,EACAkC,EAAAA,IAACnC,EACC,CAAA,SAAAmC,EAAA,IAACtC,EACC,CAAA,MAAM,gBACN,QAAAoB,EACA,QAASU,EACT,KAAK,cAAc,CAAA,CAEvB,CAAA,CAAA,CACF,CAAA,CAAA,EAEJ,EACAQ,EAAAA,IAACxC,EAAc,CAAA,KAAMkB,CAAU,CAAA,CAAA,EACjC,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{i as o}from"./_virtual___federation_fn_import-CE3p-l_2.js";import{j as e}from"./index.esm-CyH9wtdI.js";import{s as d}from"./index-gE__lQ6b.js";const{generalSettingsSchema:h}=await o("@baseplate-dev/project-builder-lib"),{useBlockUnsavedChangesNavigate:f,useProjectDefinition:j,useResettableForm:u}=await o("@baseplate-dev/project-builder-lib/web"),{FormActionBar:g,InputFieldController:s,SectionList:x,SectionListSection:b,SectionListSectionContent:S,SectionListSectionHeader:v,SectionListSectionTitle:w}=await o("@baseplate-dev/ui-components"),L=function(){const{definition:n,saveDefinitionWithFeedback:r}=j(),i=u({resolver:d(h),defaultValues:n.settings.general}),{handleSubmit:l,control:t,reset:c}=i,a=l(p=>r(m=>{m.settings.general=p}));return f({control:t,reset:c,onSubmit:a}),e.jsxs("form",{className:"relative h-full max-h-full pb-(--action-bar-height)",onSubmit:a,children:[e.jsxs("div",{className:"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6",children:[e.jsx("div",{className:"sticky top-0 border-b bg-background py-6",children:e.jsx("h1",{children:"Project settings"})}),e.jsx(x,{children:e.jsxs(b,{children:[e.jsx(v,{children:e.jsx(w,{children:"Settings"})}),e.jsxs(S,{className:"flex max-w-80 flex-col gap-4",children:[e.jsx(s,{name:"name",label:"Project Name",description:"Lowercase letters and dashes, e.g. my-project",control:t,placeholder:"e.g. my-project"}),e.jsx(s,{name:"portOffset",label:"Port Offset",description:"Multiple of 1000, e.g. 4000. This will offset the ports used by the project, e.g. API at 4001, database at 4432, to avoid conflicts with other projects.",control:t,registerOptions:{valueAsNumber:!0}}),e.jsx(s,{label:"Package Scope",name:"packageScope",description:"The scope for packages in this project, e.g. my-project will result in @my-project/app-name",control:t})]})]})})]}),e.jsx(g,{form:i})]})};export{L as component};
2
+ //# sourceMappingURL=index-La9rk06J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-La9rk06J.js","sources":["../../src/routes/settings/index.tsx?tsr-split=component"],"sourcesContent":["import type React from 'react';\n\nimport { generalSettingsSchema } from '@baseplate-dev/project-builder-lib';\nimport {\n useBlockUnsavedChangesNavigate,\n useProjectDefinition,\n useResettableForm,\n} from '@baseplate-dev/project-builder-lib/web';\nimport {\n FormActionBar,\n InputFieldController,\n SectionList,\n SectionListSection,\n SectionListSectionContent,\n SectionListSectionHeader,\n SectionListSectionTitle,\n} from '@baseplate-dev/ui-components';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { createFileRoute } from '@tanstack/react-router';\n\nexport const Route = createFileRoute('/settings/')({\n component: ProjectSettingsPage,\n beforeLoad: () => ({\n getTitle: () => 'Project Settings',\n }),\n});\n\nfunction ProjectSettingsPage(): React.JSX.Element {\n const { definition, saveDefinitionWithFeedback } = useProjectDefinition();\n\n const form = useResettableForm({\n resolver: zodResolver(generalSettingsSchema),\n defaultValues: definition.settings.general,\n });\n\n const { handleSubmit, control, reset } = form;\n\n const onSubmit = handleSubmit((data) =>\n saveDefinitionWithFeedback((draftConfig) => {\n draftConfig.settings.general = data;\n }),\n );\n\n useBlockUnsavedChangesNavigate({ control, reset, onSubmit });\n\n return (\n <form\n className=\"relative h-full max-h-full pb-(--action-bar-height)\"\n onSubmit={onSubmit}\n >\n <div className=\"flex h-full max-h-full flex-1 flex-col overflow-y-auto px-6\">\n <div className=\"sticky top-0 border-b bg-background py-6\">\n <h1>Project settings</h1>\n </div>\n <SectionList>\n <SectionListSection>\n <SectionListSectionHeader>\n <SectionListSectionTitle>Settings</SectionListSectionTitle>\n </SectionListSectionHeader>\n <SectionListSectionContent className=\"flex max-w-80 flex-col gap-4\">\n <InputFieldController\n name=\"name\"\n label=\"Project Name\"\n description=\"Lowercase letters and dashes, e.g. my-project\"\n control={control}\n placeholder=\"e.g. my-project\"\n />\n <InputFieldController\n name=\"portOffset\"\n label=\"Port Offset\"\n description=\"Multiple of 1000, e.g. 4000. This will offset the ports used by the project, e.g. API at 4001, database at 4432, to avoid conflicts with other projects.\"\n control={control}\n registerOptions={{ valueAsNumber: true }}\n />\n <InputFieldController\n label=\"Package Scope\"\n name=\"packageScope\"\n description=\"The scope for packages in this project, e.g. my-project will result in @my-project/app-name\"\n control={control}\n />\n </SectionListSectionContent>\n </SectionListSection>\n </SectionList>\n </div>\n <FormActionBar form={form} />\n </form>\n );\n}\n"],"names":["generalSettingsSchema","importShared","useBlockUnsavedChangesNavigate","useProjectDefinition","useResettableForm","FormActionBar","InputFieldController","SectionList","SectionListSection","SectionListSectionContent","SectionListSectionHeader","SectionListSectionTitle","SplitComponent","definition","saveDefinitionWithFeedback","form","resolver","zodResolver","defaultValues","settings","general","handleSubmit","control","reset","onSubmit","draftConfig","data","jsxs","jsx","valueAsNumber"],"mappings":"sJAEA,KAAA,CAAA,sBAAAA,CAAA,EAAA,MAAAC,EAAA,oCAAA,EACA,CAAA,+BAAAC,EAAA,qBAAAC,EAAA,kBAAAC,CAAA,EAAA,MAAAH,EAAA,wCAAA,EAKA,CAAA,cAAAI,EAAA,qBAAAC,EAAA,YAAAC,EAAA,mBAAAC,EAAA,0BAAAC,EAAA,yBAAAC,EAAA,wBAAAC,CAAA,EAAA,MAAAV,EAAA,8BAAA,EASsDW,EAAA,UAUJ,CAC1C,KAAA,CAAEC,WAAAA,EAAYC,2BAAAA,GAA+BX,EAAqB,EAElEY,EAAOX,EAAkB,CAC7BY,SAAUC,EAAYjB,CAAqB,EAC3CkB,cAAeL,EAAWM,SAASC,OAAAA,CACpC,EAEK,CAAEC,aAAAA,EAAcC,QAAAA,EAASC,MAAAA,CAAAA,EAAUR,EAEnCS,EAAWH,EACfP,GAAAA,EAA4CW,GAAA,CAC1CA,EAAYN,SAASC,QAAUM,CAAAA,CAChC,CACH,EAE+B,OAAAxB,EAAA,CAAEoB,QAAAA,EAASC,MAAAA,EAAOC,SAAAA,CAAAA,CAAU,EAGxDG,EAAAA,KAAA,OAAA,CACC,UAAU,sDACV,SAAAH,EAEA,SAAA,CAACG,EAAAA,KAAA,MAAA,CAAI,UAAU,8DACb,SAAA,CAAAC,EAAAA,IAAC,OAAI,UAAU,2CACb,SAACA,MAAA,KAAA,CAAG,4BAAgB,CACtB,CAAA,EACAA,EAAA,IAACrB,EACC,CAAA,SAAAoB,EAAAA,KAACnB,EACC,CAAA,SAAA,CAAAoB,MAAClB,EACC,CAAA,SAAAkB,EAAA,IAACjB,EAAwB,CAAA,SAAA,UAAQ,CAAA,EACnC,EACAgB,EAAAA,KAAClB,EAA0B,CAAA,UAAU,+BACnC,SAAA,CAACmB,EAAAA,IAAAtB,EAAA,CACC,KAAK,OACL,MAAM,eACN,YAAY,gDACZ,QAAAgB,EACA,YAAY,iBAAiB,CAAA,EAE/BM,EAAAA,IAACtB,GACC,KAAK,aACL,MAAM,cACN,YAAY,2JACZ,QAAAgB,EACA,gBAAiB,CAAEO,cAAe,EAAA,EAAO,EAE3CD,MAACtB,GACC,MAAM,gBACN,KAAK,eACL,YAAY,8FACZ,QAAAgB,CAAiB,CAAA,CAAA,CAErB,CAAA,CAAA,CAAA,CACF,CACF,CAAA,CAAA,EACF,EACAM,MAACvB,GAAc,KAAAU,CAAW,CAAA,CAAA,EAC5B,CAEJ"}