@shapio/cms 0.5.9 → 0.5.10
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/admin/assets/{AssetTile-Da76KsyX.js → AssetTile-DecaDqjj.js} +2 -2
- package/dist/admin/assets/{AssetTile-Da76KsyX.js.map → AssetTile-DecaDqjj.js.map} +1 -1
- package/dist/admin/assets/{AssistError-Wr62cDj3.js → AssistError-rslPtgWB.js} +2 -2
- package/dist/admin/assets/{AssistError-Wr62cDj3.js.map → AssistError-rslPtgWB.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-BMiEVCIT.js → BlockMenuItems-JHFue7Qt.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-BMiEVCIT.js.map → BlockMenuItems-JHFue7Qt.js.map} +1 -1
- package/dist/admin/assets/{Body-BEW1sAAB.js → Body-7NgJl9Pi.js} +2 -2
- package/dist/admin/assets/Body-7NgJl9Pi.js.map +1 -0
- package/dist/admin/assets/Builder-DmlYcgiP.js +2 -0
- package/dist/admin/assets/Builder-DmlYcgiP.js.map +1 -0
- package/dist/admin/assets/{CodeEditor-Ck7ggv6w.js → CodeEditor-Dv1FtkvI.js} +2 -2
- package/dist/admin/assets/{CodeEditor-Ck7ggv6w.js.map → CodeEditor-Dv1FtkvI.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-WMWuSVsk.js → CopyButton-Brnpfqe0.js} +2 -2
- package/dist/admin/assets/{CopyButton-WMWuSVsk.js.map → CopyButton-Brnpfqe0.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-CsnzX1P8.js → CursorPager-C7cAK5Qe.js} +2 -2
- package/dist/admin/assets/{CursorPager-CsnzX1P8.js.map → CursorPager-C7cAK5Qe.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-CstZuVmt.js → FocalPoint-Bhtb1gUa.js} +2 -2
- package/dist/admin/assets/{FocalPoint-CstZuVmt.js.map → FocalPoint-Bhtb1gUa.js.map} +1 -1
- package/dist/admin/assets/{Form-CEOW2OFF.js → Form-Cf1ephPH.js} +2 -2
- package/dist/admin/assets/{Form-CEOW2OFF.js.map → Form-Cf1ephPH.js.map} +1 -1
- package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js +2 -0
- package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js.map +1 -0
- package/dist/admin/assets/{FormRadioGroup-BQurJa8M.js → FormRadioGroup-BzmLzRnI.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-BQurJa8M.js.map → FormRadioGroup-BzmLzRnI.js.map} +1 -1
- package/dist/admin/assets/{FormSelectField-B4sjP-pj.js → FormSelectField-Cl7EjXc3.js} +2 -2
- package/dist/admin/assets/{FormSelectField-B4sjP-pj.js.map → FormSelectField-Cl7EjXc3.js.map} +1 -1
- package/dist/admin/assets/{FormSheet-V99zdfQe.js → FormSheet-CLZpd_7B.js} +2 -2
- package/dist/admin/assets/FormSheet-CLZpd_7B.js.map +1 -0
- package/dist/admin/assets/{FormSwitchField-RZgoP--n.js → FormSwitchField-BbqQ3tx_.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-RZgoP--n.js.map → FormSwitchField-BbqQ3tx_.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-CzXgoQzf.js → FormTextareaField-9RN5Pt3B.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-CzXgoQzf.js.map → FormTextareaField-9RN5Pt3B.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-Cd9nuSqV.js → HintedLabel-D9IVF0EE.js} +2 -2
- package/dist/admin/assets/{HintedLabel-Cd9nuSqV.js.map → HintedLabel-D9IVF0EE.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-ymRmHKMr.js → InfoHint-tlSeZB9U.js} +2 -2
- package/dist/admin/assets/{InfoHint-ymRmHKMr.js.map → InfoHint-tlSeZB9U.js.map} +1 -1
- package/dist/admin/assets/{InlineConfirm-A4IqkrGp.js → InlineConfirm-Kj9AOIFO.js} +2 -2
- package/dist/admin/assets/{InlineConfirm-A4IqkrGp.js.map → InlineConfirm-Kj9AOIFO.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-Bf7S7qbm.js → InsertMenuItem-CHAp2tH7.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-Bf7S7qbm.js.map → InsertMenuItem-CHAp2tH7.js.map} +1 -1
- package/dist/admin/assets/{Match-DJq8wn3e.js → Match-BfNRwPfR.js} +2 -2
- package/dist/admin/assets/{Match-DJq8wn3e.js.map → Match-BfNRwPfR.js.map} +1 -1
- package/dist/admin/assets/{NoAccess-CZufdbPI.js → NoAccess-DnEpYj9l.js} +2 -2
- package/dist/admin/assets/{NoAccess-CZufdbPI.js.map → NoAccess-DnEpYj9l.js.map} +1 -1
- package/dist/admin/assets/Panel-Bcl09TtM.js.map +1 -1
- package/dist/admin/assets/{QueryView-DO9TFWYE.js → QueryView-B86NcRt5.js} +2 -2
- package/dist/admin/assets/{QueryView-DO9TFWYE.js.map → QueryView-B86NcRt5.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-DmKBFkpy.js → RadioTile-Bwd2Pmlk.js} +2 -2
- package/dist/admin/assets/RadioTile-Bwd2Pmlk.js.map +1 -0
- package/dist/admin/assets/{RichTextField-BpxyusP4.js → RichTextField-Dou79MHF.js} +2 -2
- package/dist/admin/assets/RichTextField-Dou79MHF.js.map +1 -0
- package/dist/admin/assets/{RowTitle-DVOfgxOd.js → RowTitle-DH9OZs3g.js} +2 -2
- package/dist/admin/assets/{RowTitle-DVOfgxOd.js.map → RowTitle-DH9OZs3g.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-DRCqVEFF.js → SecretReveal-D95oACLj.js} +2 -2
- package/dist/admin/assets/{SecretReveal-DRCqVEFF.js.map → SecretReveal-D95oACLj.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-nsXJPCew.js → SharedGlyph-Chwb1EIS.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-nsXJPCew.js.map → SharedGlyph-Chwb1EIS.js.map} +1 -1
- package/dist/admin/assets/{StepList-CDZPRd3-.js → StepList-D9iHsUZJ.js} +2 -2
- package/dist/admin/assets/StepList-D9iHsUZJ.js.map +1 -0
- package/dist/admin/assets/Structure-CewJL1b3.js +2 -0
- package/dist/admin/assets/{Structure-CL51Bvbm.js.map → Structure-CewJL1b3.js.map} +1 -1
- package/dist/admin/assets/SubNavLink-7Cs1LqMv.js.map +1 -1
- package/dist/admin/assets/{SuggestAltButton-4SaZQOJu.js → SuggestAltButton-BK1uo4yC.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-4SaZQOJu.js.map → SuggestAltButton-BK1uo4yC.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-DauHAkh8.js → Thumbnail-C2A_Ub77.js} +2 -2
- package/dist/admin/assets/{Thumbnail-DauHAkh8.js.map → Thumbnail-C2A_Ub77.js.map} +1 -1
- package/dist/admin/assets/{Trans-B3UWiZaU.js → Trans-CPoNNUK1.js} +2 -2
- package/dist/admin/assets/{Trans-B3UWiZaU.js.map → Trans-CPoNNUK1.js.map} +1 -1
- package/dist/admin/assets/{UnsavedChangesGuard-DPgih7BX.js → UnsavedChangesGuard-BsEyn9oH.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-DPgih7BX.js.map → UnsavedChangesGuard-BsEyn9oH.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-If-zlQNY.js → UserAvatar-CgGKOFfP.js} +2 -2
- package/dist/admin/assets/{UserAvatar-If-zlQNY.js.map → UserAvatar-CgGKOFfP.js.map} +1 -1
- package/dist/admin/assets/{badge-DEe9tqLS.js → badge-DGqA_yr_.js} +2 -2
- package/dist/admin/assets/{badge-DEe9tqLS.js.map → badge-DGqA_yr_.js.map} +1 -1
- package/dist/admin/assets/baseExtensions-TVKN1UwW.js.map +1 -1
- package/dist/admin/assets/{changeSets-D5i2SgFV.js → changeSets-B6HxCJ4A.js} +2 -2
- package/dist/admin/assets/{changeSets-D5i2SgFV.js.map → changeSets-B6HxCJ4A.js.map} +1 -1
- package/dist/admin/assets/cn-DVhJ55Mo.js.map +1 -1
- package/dist/admin/assets/{constants-FKg_ke3y.js → constants-DY3YJAKH.js} +2 -2
- package/dist/admin/assets/{constants-FKg_ke3y.js.map → constants-DY3YJAKH.js.map} +1 -1
- package/dist/admin/assets/content-BNZF26Ve.js +3 -0
- package/dist/admin/assets/content-BNZF26Ve.js.map +1 -0
- package/dist/admin/assets/{contentTypes-B5taZv3y.js → contentTypes-Bz2xpqGf.js} +2 -2
- package/dist/admin/assets/{contentTypes-B5taZv3y.js.map → contentTypes-Bz2xpqGf.js.map} +1 -1
- package/dist/admin/assets/createLucideIcon-BOsNKleB.js.map +1 -1
- package/dist/admin/assets/{develop-CFlv7IdP.js → develop-D6CtwuYj.js} +2 -2
- package/dist/admin/assets/develop-D6CtwuYj.js.map +1 -0
- package/dist/admin/assets/{dropdown-menu-B7dJyA8h.js → dropdown-menu-Bz7CLcRK.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-B7dJyA8h.js.map → dropdown-menu-Bz7CLcRK.js.map} +1 -1
- package/dist/admin/assets/es2015-Cv57ynE1.js +42 -0
- package/dist/admin/assets/es2015-Cv57ynE1.js.map +1 -0
- package/dist/admin/assets/{field-BDCHXkZE.js → field-D-xWW2E7.js} +2 -2
- package/dist/admin/assets/{field-BDCHXkZE.js.map → field-D-xWW2E7.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-c9UMUr9b.js → fileRoute-DMal-zYL.js} +2 -2
- package/dist/admin/assets/{fileRoute-c9UMUr9b.js.map → fileRoute-DMal-zYL.js.map} +1 -1
- package/dist/admin/assets/{followPlural-CHpz-yo4.js → followPlural-CsgeALTW.js} +2 -2
- package/dist/admin/assets/{followPlural-CHpz-yo4.js.map → followPlural-CsgeALTW.js.map} +1 -1
- package/dist/admin/assets/{inbox-Daw10v5C.js → inbox-C0PVc6UI.js} +2 -2
- package/dist/admin/assets/{inbox-Daw10v5C.js.map → inbox-C0PVc6UI.js.map} +1 -1
- package/dist/admin/assets/{index-BRx5mel0.js → index-BqtCXB0u.js} +4 -4
- package/dist/admin/assets/{index-BRx5mel0.js.map → index-BqtCXB0u.js.map} +1 -1
- package/dist/admin/assets/{labels-B83cEX9w.js → labels-BtktCNGw.js} +2 -2
- package/dist/admin/assets/{labels-B83cEX9w.js.map → labels-BtktCNGw.js.map} +1 -1
- package/dist/admin/assets/{media-CgxriwNL.js → media-CeZGDGh7.js} +2 -2
- package/dist/admin/assets/{media-CgxriwNL.js.map → media-CeZGDGh7.js.map} +1 -1
- package/dist/admin/assets/{network-Cc1TAyal.js → network-BflLSKFO.js} +2 -2
- package/dist/admin/assets/{network-Cc1TAyal.js.map → network-BflLSKFO.js.map} +1 -1
- package/dist/admin/assets/publishing-BkxBplUZ.js +2 -0
- package/dist/admin/assets/publishing-BkxBplUZ.js.map +1 -0
- package/dist/admin/assets/{radio-group-Btmx7dlD.js → radio-group-CRuWQnuV.js} +2 -2
- package/dist/admin/assets/{radio-group-Btmx7dlD.js.map → radio-group-CRuWQnuV.js.map} +1 -1
- package/dist/admin/assets/schema-6eUoC8fJ.js +2 -0
- package/dist/admin/assets/schema-6eUoC8fJ.js.map +1 -0
- package/dist/admin/assets/{searchSchemas-fO_49fDI.js → searchSchemas-DAnwh3I3.js} +2 -2
- package/dist/admin/assets/{searchSchemas-fO_49fDI.js.map → searchSchemas-DAnwh3I3.js.map} +1 -1
- package/dist/admin/assets/{sections-SX-oiQoE.js → sections-CWL-XD6m.js} +2 -2
- package/dist/admin/assets/sections-CWL-XD6m.js.map +1 -0
- package/dist/admin/assets/{select-JB2Vv7ep.js → select-DVrPV1b3.js} +2 -2
- package/dist/admin/assets/{select-JB2Vv7ep.js.map → select-DVrPV1b3.js.map} +1 -1
- package/dist/admin/assets/{settings-CrRFxhSo.js → settings-CqnrPmzR.js} +2 -2
- package/dist/admin/assets/{settings-CrRFxhSo.js.map → settings-CqnrPmzR.js.map} +1 -1
- package/dist/admin/assets/{shapes-EMjfYsXV.js → shapes-ZAkMBB-Z.js} +4 -4
- package/dist/admin/assets/shapes-ZAkMBB-Z.js.map +1 -0
- package/dist/admin/assets/{skeleton-Dk-qdg0z.js → skeleton-CiX26LnL.js} +2 -2
- package/dist/admin/assets/{skeleton-Dk-qdg0z.js.map → skeleton-CiX26LnL.js.map} +1 -1
- package/dist/admin/assets/src-CMor9izq.js.map +1 -1
- package/dist/admin/assets/{switch-DyCRGDs7.js → switch-CiVf05NF.js} +2 -2
- package/dist/admin/assets/{switch-DyCRGDs7.js.map → switch-CiVf05NF.js.map} +1 -1
- package/dist/admin/assets/theme-Cv-MfOv8.js.map +1 -1
- package/dist/admin/assets/{tooltip-CCOeMqiL.js → tooltip-Bqf3oyqC.js} +2 -2
- package/dist/admin/assets/{tooltip-CCOeMqiL.js.map → tooltip-Bqf3oyqC.js.map} +1 -1
- package/dist/admin/assets/{useContentSchema-uXOfT985.js → useContentSchema-B_q1rMrG.js} +2 -2
- package/dist/admin/assets/{useContentSchema-uXOfT985.js.map → useContentSchema-B_q1rMrG.js.map} +1 -1
- package/dist/admin/assets/useCursorPager-BHYqHb3M.js.map +1 -1
- package/dist/admin/assets/{useDiscardGuard-DvBI3VIz.js → useDiscardGuard-C4QTfiU4.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-DvBI3VIz.js.map → useDiscardGuard-C4QTfiU4.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-CehOsykG.js → useMediaPickerDialog-BLrVV1Kn.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-CehOsykG.js.map → useMediaPickerDialog-BLrVV1Kn.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-DvtxYXxD.js → useMediaUploader-CFy6lasO.js} +2 -2
- package/dist/admin/assets/useMediaUploader-CFy6lasO.js.map +1 -0
- package/dist/admin/assets/{useModelIndex-D8Q0oM4M.js → useModelIndex-NU-WlHQY.js} +2 -2
- package/dist/admin/assets/{useModelIndex-D8Q0oM4M.js.map → useModelIndex-NU-WlHQY.js.map} +1 -1
- package/dist/admin/assets/{usePlaces-CySN2Vwz.js → usePlaces-BA4x6503.js} +2 -2
- package/dist/admin/assets/{usePlaces-CySN2Vwz.js.map → usePlaces-BA4x6503.js.map} +1 -1
- package/dist/admin/assets/{useResolvedDefinitions-C279ueCH.js → useResolvedDefinitions-30lnwFQ1.js} +2 -2
- package/dist/admin/assets/{useResolvedDefinitions-C279ueCH.js.map → useResolvedDefinitions-30lnwFQ1.js.map} +1 -1
- package/dist/admin/assets/{useResolvedScheme-DEq7P4R5.js → useResolvedScheme-BVM4qLct.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-DEq7P4R5.js.map → useResolvedScheme-BVM4qLct.js.map} +1 -1
- package/dist/admin/assets/{zod-vPzaNsuW.js → zod-ZaQjjiAq.js} +2 -2
- package/dist/admin/assets/{zod-vPzaNsuW.js.map → zod-ZaQjjiAq.js.map} +1 -1
- package/dist/admin/index.html +29 -29
- package/dist/cli.js +1 -1
- package/dist/{cliMain-DzBXO7Oa.js → cliMain-CTntiVc2.js} +11 -11
- package/dist/cliMain-CTntiVc2.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/{contentDisposition-DOL2Xt0l.js → contentDisposition-DzhPhncr.js} +2 -2
- package/dist/{contentDisposition-DOL2Xt0l.js.map → contentDisposition-DzhPhncr.js.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/{public-jttKsns_.d.ts → public-CMFaGDyf.d.ts} +4 -4
- package/dist/{public-B57h4F7Y.js → public-sJCQaNaP.js} +2 -2
- package/dist/{public-B57h4F7Y.js.map → public-sJCQaNaP.js.map} +1 -1
- package/dist/{s3Adapter-U01iEAcK.js → s3Adapter-CZcCl0sy.js} +2 -2
- package/dist/{s3Adapter-U01iEAcK.js.map → s3Adapter-CZcCl0sy.js.map} +1 -1
- package/dist/{worker-6ru1tYBs.js → worker-DHm2JwMZ.js} +353 -232
- package/dist/worker-DHm2JwMZ.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/Body-BEW1sAAB.js.map +0 -1
- package/dist/admin/assets/Builder-Tk_5Orrl.js +0 -2
- package/dist/admin/assets/Builder-Tk_5Orrl.js.map +0 -1
- package/dist/admin/assets/FormCheckboxGroup-VjWVMiF3.js +0 -2
- package/dist/admin/assets/FormCheckboxGroup-VjWVMiF3.js.map +0 -1
- package/dist/admin/assets/FormSheet-V99zdfQe.js.map +0 -1
- package/dist/admin/assets/RadioTile-DmKBFkpy.js.map +0 -1
- package/dist/admin/assets/RichTextField-BpxyusP4.js.map +0 -1
- package/dist/admin/assets/StepList-CDZPRd3-.js.map +0 -1
- package/dist/admin/assets/Structure-CL51Bvbm.js +0 -2
- package/dist/admin/assets/content-DKT2ziPH.js +0 -3
- package/dist/admin/assets/content-DKT2ziPH.js.map +0 -1
- package/dist/admin/assets/develop-CFlv7IdP.js.map +0 -1
- package/dist/admin/assets/es2015-1nJWBurR.js +0 -42
- package/dist/admin/assets/es2015-1nJWBurR.js.map +0 -1
- package/dist/admin/assets/publishing-RQUj-CyN.js +0 -2
- package/dist/admin/assets/publishing-RQUj-CyN.js.map +0 -1
- package/dist/admin/assets/schema-BMQEabwO.js +0 -2
- package/dist/admin/assets/schema-BMQEabwO.js.map +0 -1
- package/dist/admin/assets/sections-SX-oiQoE.js.map +0 -1
- package/dist/admin/assets/shapes-EMjfYsXV.js.map +0 -1
- package/dist/admin/assets/useMediaUploader-DvtxYXxD.js.map +0 -1
- package/dist/cliMain-DzBXO7Oa.js.map +0 -1
- package/dist/worker-6ru1tYBs.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{E as r,S as i,o as a,w as o}from"./auth-BFSvtV59.js";import{_ as s,a as c,i as l,j as u,o as d,t as f}from"./badge-
|
|
2
|
-
//# sourceMappingURL=contentTypes-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{E as r,S as i,o as a,w as o}from"./auth-BFSvtV59.js";import{_ as s,a as c,i as l,j as u,o as d,t as f}from"./badge-DGqA_yr_.js";import{n as p}from"./createLucideIcon-BOsNKleB.js";import{t as m}from"./fileRoute-DMal-zYL.js";import{r as h,t as g}from"./Form-Cf1ephPH.js";import{a as _,d as v}from"./constants-DY3YJAKH.js";import{i as y}from"./skeleton-CiX26LnL.js";import{t as b}from"./Builder-DmlYcgiP.js";import{t as x}from"./plus-cr9ZfO6j.js";import{u as S}from"./changeSets-B6HxCJ4A.js";import{t as C}from"./HintedLabel-D9IVF0EE.js";import{l as w}from"./schema-6eUoC8fJ.js";import{t as T}from"./QueryView-B86NcRt5.js";import{c as E,g as D,i as O,r as k,t as A}from"./AssistError-rslPtgWB.js";import{t as j}from"./textarea-BBjqMF-Y.js";import{t as M}from"./Panel-Bcl09TtM.js";import{c as N,s as P}from"./followPlural-CsgeALTW.js";var F=e(n(),1),I=()=>{let{t:e}=p(),t=w(`component`),n=a(`schema.create`),{locked:r,reason:o}=N(),s=n&&!r?(0,F.jsx)(y,{asChild:!0,children:(0,F.jsxs)(i,{to:`/develop/components/new`,children:[(0,F.jsx)(x,{"aria-hidden":`true`}),e(`contentTypes.newComponentTitle`)]})}):null;return(0,F.jsxs)(c,{children:[(0,F.jsx)(l,{title:e(`shell.nav.components`),actions:s}),r?(0,F.jsx)(P,{reason:o}):null,(0,F.jsx)(T,{query:t,isEmpty:e=>e.length===0,empty:(0,F.jsx)(d,{icon:v,title:e(`contentTypes.noComponents`),description:e(`models.emptyDescription`),action:s}),children:e=>(0,F.jsx)(h,{items:e})})]})},L=()=>{let{componentId:e}=u({from:`/app/develop/components/$componentId`});return(0,F.jsx)(b,{category:`component`,id:e})},R=[`component`],z=()=>{let{t:e}=p();return(0,F.jsx)(g,{title:e(`contentTypes.newComponentTitle`),kinds:R,back:o({to:`/develop/components`}),backLabel:e(`shell.nav.components`)})},B=e(t(),1),V=()=>{let{t:e}=p(),t=r(),[n,i]=(0,B.useState)(``),[a,o]=(0,B.useState)(null),s=E(),c=S();return{description:n,setDescription:i,proposal:a,run:()=>{n.trim()!==``&&(o(null),c.reset(),s.mutate({description:n.trim()},{onSuccess:o}))},discard:()=>{o(null),s.reset(),c.reset()},addToChangeSet:()=>{a&&c.mutate({definitions:a.definitions,newSetTitle:e(`assist.describe.setTitle`,{model:a.model})},{onSuccess:e=>void t({to:`/changes/$changeSetId`,params:{changeSetId:e}})})},proposing:s.isPending,proposeError:s.error,adding:c.isPending,addError:c.error}},H=({proposal:e})=>{let{t}=p();return(0,F.jsxs)(`div`,{className:`space-y-3`,children:[(0,F.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:t(`assist.describe.proposedBy`,{model:e.model})}),(0,F.jsx)(`ul`,{"aria-label":t(`assist.describe.proposalLabel`),className:`space-y-3`,children:e.definitions.map(e=>(0,F.jsxs)(`li`,{className:`rounded-lg border p-3`,children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`text-sm font-semibold`,children:e.label}),(0,F.jsx)(f,{variant:`secondary`,children:t(_[e.kind])}),(0,F.jsx)(`span`,{className:`font-mono text-meta text-muted-foreground`,children:e.apiKey})]}),(0,F.jsx)(`ul`,{className:`mt-2 space-y-0.5 text-meta text-muted-foreground`,children:e.fields.map(e=>(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`span`,{className:`text-foreground`,children:e.label}),` `,t(`assist.describe.fieldType`,{type:t(`models.dataTypes.${e.type}.name`)})]},e.id))})]},e.id))})]})},U=()=>{let{t:e}=p(),t=(0,B.useId)(),n=O(),{locked:r}=N(),i=V();return n?(0,F.jsx)(M,{title:e(`assist.describe.title`),titleAs:`h2`,children:(0,F.jsx)(`div`,{className:`space-y-3`,children:i.proposal?(0,F.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),i.addToChangeSet()},children:[(0,F.jsx)(H,{proposal:i.proposal}),(0,F.jsx)(A,{error:i.addError}),(0,F.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,F.jsx)(y,{type:`button`,variant:`outline`,onClick:i.discard,children:e(`assist.discard`)}),(0,F.jsx)(s,{pending:i.adding,pendingLabel:e(`common.saving`),disabled:r,children:e(`assist.describe.add`)})]})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(C,{htmlFor:`${t}-description`,label:e(`assist.describe.label`),hint:e(`assist.describe.hint`)}),(0,F.jsx)(j,{id:`${t}-description`,value:i.description,rows:4,maxLength:D,placeholder:e(`assist.describe.placeholder`),disabled:i.proposing,onChange:e=>i.setDescription(e.target.value)})]}),(0,F.jsx)(A,{error:i.proposeError}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsx)(k,{variant:`outline`,size:`default`,pending:i.proposing,pendingLabel:e(`assist.working`),disabled:i.description.trim()===``||r,onClick:i.run,children:e(`assist.describe.run`)})})]})})}):null},W=[`collection`,`singleton`],G={newContentType:m(`/app/content/new`)({component:()=>{let{t:e}=p();return(0,F.jsx)(g,{title:e(`contentTypes.newTitle`),kinds:W,back:o({to:`/content`}),backLabel:e(`content.title`),intro:(0,F.jsx)(U,{})})}}),components:m(`/app/develop/components`)({component:I}),newComponent:m(`/app/develop/components/new`)({component:z}),component:m(`/app/develop/components/$componentId`)({component:L})};export{G as contentTypesLazyRoutes};
|
|
2
|
+
//# sourceMappingURL=contentTypes-Bz2xpqGf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentTypes-B5taZv3y.js","names":["DefinitionBuilder","KINDS","New","useState","useId","_Fragment","NewContentType","NewComponent","ComponentBuilder","__toESM","require_jsx_runtime","useNavigate","Link","useHasGlobalPermission","linkOptions","SubmitButton","Page","PageHeader","useParams","EmptyState","Badge","useTranslation","createLazyRoute","List","Form","KIND_LABEL_KEYS","Blocks","Button","Builder$1","Plus","useSaveNewDefinitionsToChangeSet","HintedLabel","useDefinitions","QueryView","useProposeSchema","SCHEMA_DESCRIPTION_MAX","useAssistEnabled","AssistButton","AssistError","Textarea","Panel","useSchemaLock","LockNotice","import_jsx_runtime","Components","components","canCreate","createAction","locked","t","data","Builder","componentId","KINDS$1","New$1","import_react","require_react","useDescribeSchema","navigate","description","setDescription","proposal","setProposal","propose","save","Proposal","definition","field","Describe","id","enabled","describe","event","KINDS","contentTypesLazyRoutes"],"sources":["../../src/features/Components/index.tsx","../../src/features/Components/Builder/index.tsx","../../src/features/Components/New/index.tsx","../../src/features/Content/New/hooks/useDescribeSchema.ts","../../src/features/Content/New/Describe/Proposal/index.tsx","../../src/features/Content/New/Describe/index.tsx","../../src/features/Content/New/index.tsx","../../src/app/lazyRoutes/contentTypes.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router';\nimport { Blocks, Plus } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { useDefinitions } from '@/api/schema';\nimport { EmptyState } from '@/components/EmptyState';\nimport { Page } from '@/components/Page';\nimport { PageHeader } from '@/components/PageHeader';\nimport { QueryView } from '@/components/QueryView';\nimport { Button } from '@/components/ui/button';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { List } from '@/features/Models/List';\nimport { LockNotice } from '@/features/Models/LockNotice';\n\n/** `/develop/components`: reusable field groups that content types embed (Develop → Components). */\nexport const Components = () => {\n const { t } = useTranslation();\n const components = useDefinitions('component');\n const canCreate = useHasGlobalPermission('schema.create');\n const { locked, reason } = useSchemaLock();\n const createAction =\n canCreate && !locked ? (\n <Button asChild>\n <Link to=\"/develop/components/new\">\n <Plus aria-hidden=\"true\" />\n {t('contentTypes.newComponentTitle')}\n </Link>\n </Button>\n ) : null;\n return (\n <Page>\n <PageHeader title={t('shell.nav.components')} actions={createAction} />\n {locked ? <LockNotice reason={reason} /> : null}\n <QueryView\n query={components}\n isEmpty={(data) => data.length === 0}\n empty={\n <EmptyState\n icon={Blocks}\n title={t('contentTypes.noComponents')}\n description={t('models.emptyDescription')}\n action={createAction}\n />\n }\n >\n {(data) => <List items={data} />}\n </QueryView>\n </Page>\n );\n};\n","import { useParams } from '@tanstack/react-router';\nimport { Builder as DefinitionBuilder } from '@/features/Models/Builder';\n\n/** `/develop/components/:componentId`: a component in the shared definition builder. */\nexport const Builder = () => {\n const { componentId } = useParams({ from: '/app/develop/components/$componentId' });\n return <DefinitionBuilder category=\"component\" id={componentId} />;\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from '@/features/Content/New/Form';\n\nconst KINDS = ['component'] as const;\n\n/** `/develop/components/new`: a reusable component (Develop → Components). */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newComponentTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/develop/components' })}\n backLabel={t('shell.nav.components')}\n />\n );\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useProposeSchema } from '@/api/assist';\nimport { useSaveNewDefinitionsToChangeSet } from '@/api/changeSets';\n\n/**\n * \"Describe it\": a description → proposed definitions (nothing written) → saved as schema drafts into a\n * change set, whose review opens next. Shipping them stays a person's decision there.\n */\nexport const useDescribeSchema = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [description, setDescription] = useState('');\n const [proposal, setProposal] = useState<SchemaDraftResult | null>(null);\n const propose = useProposeSchema();\n const save = useSaveNewDefinitionsToChangeSet();\n const run = () => {\n if (description.trim() === '') {\n return;\n }\n setProposal(null);\n save.reset();\n propose.mutate({ description: description.trim() }, { onSuccess: setProposal });\n };\n const discard = () => {\n setProposal(null);\n propose.reset();\n save.reset();\n };\n const addToChangeSet = () => {\n if (!proposal) {\n return;\n }\n save.mutate(\n {\n definitions: proposal.definitions,\n newSetTitle: t('assist.describe.setTitle', { model: proposal.model }),\n },\n {\n onSuccess: (changeSetId) => void navigate({ to: '/changes/$changeSetId', params: { changeSetId } }),\n },\n );\n };\n return {\n description,\n setDescription,\n proposal,\n run,\n discard,\n addToChangeSet,\n proposing: propose.isPending,\n proposeError: propose.error,\n adding: save.isPending,\n addError: save.error,\n };\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport { KIND_LABEL_KEYS } from '@/features/Models/constants';\n\ntype ProposalProps = { proposal: SchemaDraftResult };\n\n/** The proposed definitions at a glance: name, kind, API ID and fields, before they go into a change set. */\nexport const Proposal = ({ proposal }: ProposalProps) => {\n const { t } = useTranslation();\n return (\n <div className=\"space-y-3\">\n <p className=\"text-meta text-muted-foreground\">\n {t('assist.describe.proposedBy', { model: proposal.model })}\n </p>\n <ul aria-label={t('assist.describe.proposalLabel')} className=\"space-y-3\">\n {proposal.definitions.map((definition) => (\n <li key={definition.id} className=\"rounded-lg border p-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold\">{definition.label}</span>\n <Badge variant=\"secondary\">{t(KIND_LABEL_KEYS[definition.kind])}</Badge>\n <span className=\"font-mono text-meta text-muted-foreground\">{definition.apiKey}</span>\n </div>\n <ul className=\"mt-2 space-y-0.5 text-meta text-muted-foreground\">\n {definition.fields.map((field) => (\n <li key={field.id}>\n <span className=\"text-foreground\">{field.label}</span>{' '}\n {t('assist.describe.fieldType', { type: t(`models.dataTypes.${field.type}.name`) })}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { useId } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAssistEnabled } from '@/api/assist';\nimport { AssistButton } from '@/components/AssistButton';\nimport { AssistError } from '@/components/AssistError';\nimport { HintedLabel } from '@/components/HintedLabel';\nimport { Panel } from '@/components/Panel';\nimport { SubmitButton } from '@/components/SubmitButton';\nimport { Button } from '@/components/ui/button';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SCHEMA_DESCRIPTION_MAX } from '@/constants/assist';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { useDescribeSchema } from '../hooks/useDescribeSchema';\nimport { Proposal } from './Proposal';\n\n/** \"Describe it\" above the new content type form: a model proposes the types, a change set holds them. */\nexport const Describe = () => {\n const { t } = useTranslation();\n const id = useId();\n const enabled = useAssistEnabled();\n const { locked } = useSchemaLock();\n const describe = useDescribeSchema();\n if (!enabled) {\n return null;\n }\n return (\n <Panel title={t('assist.describe.title')} titleAs=\"h2\">\n <div className=\"space-y-3\">\n {describe.proposal ? (\n <form\n className=\"space-y-3\"\n onSubmit={(event) => {\n event.preventDefault();\n describe.addToChangeSet();\n }}\n >\n <Proposal proposal={describe.proposal} />\n <AssistError error={describe.addError} />\n <div className=\"flex flex-wrap justify-end gap-2\">\n <Button type=\"button\" variant=\"outline\" onClick={describe.discard}>\n {t('assist.discard')}\n </Button>\n <SubmitButton pending={describe.adding} pendingLabel={t('common.saving')} disabled={locked}>\n {t('assist.describe.add')}\n </SubmitButton>\n </div>\n </form>\n ) : (\n <>\n <div className=\"space-y-2\">\n <HintedLabel\n htmlFor={`${id}-description`}\n label={t('assist.describe.label')}\n hint={t('assist.describe.hint')}\n />\n <Textarea\n id={`${id}-description`}\n value={describe.description}\n rows={4}\n maxLength={SCHEMA_DESCRIPTION_MAX}\n placeholder={t('assist.describe.placeholder')}\n disabled={describe.proposing}\n onChange={(event) => describe.setDescription(event.target.value)}\n />\n </div>\n <AssistError error={describe.proposeError} />\n <div className=\"flex justify-end\">\n <AssistButton\n variant=\"outline\"\n size=\"default\"\n pending={describe.proposing}\n pendingLabel={t('assist.working')}\n disabled={describe.description.trim() === '' || locked}\n onClick={describe.run}\n >\n {t('assist.describe.run')}\n </AssistButton>\n </div>\n </>\n )}\n </div>\n </Panel>\n );\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Describe } from './Describe';\nimport { Form } from './Form';\n\nconst KINDS = ['collection', 'singleton'] as const;\n\n/** `/content/new`: a new content type (a place for editors), live as soon as it is created. */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/content' })}\n backLabel={t('content.title')}\n intro={<Describe />}\n />\n );\n};\n","import { createLazyRoute } from '@tanstack/react-router';\nimport { Components } from '@/features/Components';\nimport { Builder as ComponentBuilder } from '@/features/Components/Builder';\nimport { New as NewComponent } from '@/features/Components/New';\nimport { New as NewContentType } from '@/features/Content/New';\n\n/** Creating content types and components, and Develop → Components (with @shapio/schema's validators). */\nexport const contentTypesLazyRoutes = {\n newContentType: createLazyRoute('/app/content/new')({ component: NewContentType }),\n components: createLazyRoute('/app/develop/components')({ component: Components }),\n newComponent: createLazyRoute('/app/develop/components/new')({ component: NewComponent }),\n component: createLazyRoute('/app/develop/components/$componentId')({ component: ComponentBuilder }),\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contentTypes-Bz2xpqGf.js","names":["DefinitionBuilder","KINDS","New","useState","useId","_Fragment","NewContentType","NewComponent","ComponentBuilder","__toESM","require_jsx_runtime","useNavigate","Link","useHasGlobalPermission","linkOptions","SubmitButton","Page","PageHeader","useParams","EmptyState","Badge","useTranslation","createLazyRoute","List","Form","KIND_LABEL_KEYS","Blocks","Button","Builder$1","Plus","useSaveNewDefinitionsToChangeSet","HintedLabel","useDefinitions","QueryView","useProposeSchema","SCHEMA_DESCRIPTION_MAX","useAssistEnabled","AssistButton","AssistError","Textarea","Panel","useSchemaLock","LockNotice","import_jsx_runtime","Components","components","canCreate","createAction","locked","t","data","Builder","componentId","KINDS$1","New$1","import_react","require_react","useDescribeSchema","navigate","description","setDescription","proposal","setProposal","propose","save","Proposal","definition","field","Describe","id","enabled","describe","event","KINDS","contentTypesLazyRoutes"],"sources":["../../src/features/Components/index.tsx","../../src/features/Components/Builder/index.tsx","../../src/features/Components/New/index.tsx","../../src/features/Content/New/hooks/useDescribeSchema.ts","../../src/features/Content/New/Describe/Proposal/index.tsx","../../src/features/Content/New/Describe/index.tsx","../../src/features/Content/New/index.tsx","../../src/app/lazyRoutes/contentTypes.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router';\nimport { Blocks, Plus } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { useDefinitions } from '@/api/schema';\nimport { EmptyState } from '@/components/EmptyState';\nimport { Page } from '@/components/Page';\nimport { PageHeader } from '@/components/PageHeader';\nimport { QueryView } from '@/components/QueryView';\nimport { Button } from '@/components/ui/button';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { List } from '@/features/Models/List';\nimport { LockNotice } from '@/features/Models/LockNotice';\n\n/** `/develop/components`: reusable field groups that content types embed (Develop → Components). */\nexport const Components = () => {\n const { t } = useTranslation();\n const components = useDefinitions('component');\n const canCreate = useHasGlobalPermission('schema.create');\n const { locked, reason } = useSchemaLock();\n const createAction =\n canCreate && !locked ? (\n <Button asChild>\n <Link to=\"/develop/components/new\">\n <Plus aria-hidden=\"true\" />\n {t('contentTypes.newComponentTitle')}\n </Link>\n </Button>\n ) : null;\n return (\n <Page>\n <PageHeader title={t('shell.nav.components')} actions={createAction} />\n {locked ? <LockNotice reason={reason} /> : null}\n <QueryView\n query={components}\n isEmpty={(data) => data.length === 0}\n empty={\n <EmptyState\n icon={Blocks}\n title={t('contentTypes.noComponents')}\n description={t('models.emptyDescription')}\n action={createAction}\n />\n }\n >\n {(data) => <List items={data} />}\n </QueryView>\n </Page>\n );\n};\n","import { useParams } from '@tanstack/react-router';\nimport { Builder as DefinitionBuilder } from '@/features/Models/Builder';\n\n/** `/develop/components/:componentId`: a component in the shared definition builder. */\nexport const Builder = () => {\n const { componentId } = useParams({ from: '/app/develop/components/$componentId' });\n return <DefinitionBuilder category=\"component\" id={componentId} />;\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from '@/features/Content/New/Form';\n\nconst KINDS = ['component'] as const;\n\n/** `/develop/components/new`: a reusable component (Develop → Components). */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newComponentTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/develop/components' })}\n backLabel={t('shell.nav.components')}\n />\n );\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useProposeSchema } from '@/api/assist';\nimport { useSaveNewDefinitionsToChangeSet } from '@/api/changeSets';\n\n/**\n * \"Describe it\": a description → proposed definitions (nothing written) → saved as schema drafts into a\n * change set, whose review opens next. Shipping them stays a person's decision there.\n */\nexport const useDescribeSchema = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [description, setDescription] = useState('');\n const [proposal, setProposal] = useState<SchemaDraftResult | null>(null);\n const propose = useProposeSchema();\n const save = useSaveNewDefinitionsToChangeSet();\n const run = () => {\n if (description.trim() === '') {\n return;\n }\n setProposal(null);\n save.reset();\n propose.mutate({ description: description.trim() }, { onSuccess: setProposal });\n };\n const discard = () => {\n setProposal(null);\n propose.reset();\n save.reset();\n };\n const addToChangeSet = () => {\n if (!proposal) {\n return;\n }\n save.mutate(\n {\n definitions: proposal.definitions,\n newSetTitle: t('assist.describe.setTitle', { model: proposal.model }),\n },\n {\n onSuccess: (changeSetId) => void navigate({ to: '/changes/$changeSetId', params: { changeSetId } }),\n },\n );\n };\n return {\n description,\n setDescription,\n proposal,\n run,\n discard,\n addToChangeSet,\n proposing: propose.isPending,\n proposeError: propose.error,\n adding: save.isPending,\n addError: save.error,\n };\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport { KIND_LABEL_KEYS } from '@/features/Models/constants';\n\ntype ProposalProps = { proposal: SchemaDraftResult };\n\n/** The proposed definitions at a glance: name, kind, API ID and fields, before they go into a change set. */\nexport const Proposal = ({ proposal }: ProposalProps) => {\n const { t } = useTranslation();\n return (\n <div className=\"space-y-3\">\n <p className=\"text-meta text-muted-foreground\">\n {t('assist.describe.proposedBy', { model: proposal.model })}\n </p>\n <ul aria-label={t('assist.describe.proposalLabel')} className=\"space-y-3\">\n {proposal.definitions.map((definition) => (\n <li key={definition.id} className=\"rounded-lg border p-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold\">{definition.label}</span>\n <Badge variant=\"secondary\">{t(KIND_LABEL_KEYS[definition.kind])}</Badge>\n <span className=\"font-mono text-meta text-muted-foreground\">{definition.apiKey}</span>\n </div>\n <ul className=\"mt-2 space-y-0.5 text-meta text-muted-foreground\">\n {definition.fields.map((field) => (\n <li key={field.id}>\n <span className=\"text-foreground\">{field.label}</span>{' '}\n {t('assist.describe.fieldType', { type: t(`models.dataTypes.${field.type}.name`) })}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { useId } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAssistEnabled } from '@/api/assist';\nimport { AssistButton } from '@/components/AssistButton';\nimport { AssistError } from '@/components/AssistError';\nimport { HintedLabel } from '@/components/HintedLabel';\nimport { Panel } from '@/components/Panel';\nimport { SubmitButton } from '@/components/SubmitButton';\nimport { Button } from '@/components/ui/button';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SCHEMA_DESCRIPTION_MAX } from '@/constants/assist';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { useDescribeSchema } from '../hooks/useDescribeSchema';\nimport { Proposal } from './Proposal';\n\n/** \"Describe it\" above the new content type form: a model proposes the types, a change set holds them. */\nexport const Describe = () => {\n const { t } = useTranslation();\n const id = useId();\n const enabled = useAssistEnabled();\n const { locked } = useSchemaLock();\n const describe = useDescribeSchema();\n if (!enabled) {\n return null;\n }\n return (\n <Panel title={t('assist.describe.title')} titleAs=\"h2\">\n <div className=\"space-y-3\">\n {describe.proposal ? (\n <form\n className=\"space-y-3\"\n onSubmit={(event) => {\n event.preventDefault();\n describe.addToChangeSet();\n }}\n >\n <Proposal proposal={describe.proposal} />\n <AssistError error={describe.addError} />\n <div className=\"flex flex-wrap justify-end gap-2\">\n <Button type=\"button\" variant=\"outline\" onClick={describe.discard}>\n {t('assist.discard')}\n </Button>\n <SubmitButton pending={describe.adding} pendingLabel={t('common.saving')} disabled={locked}>\n {t('assist.describe.add')}\n </SubmitButton>\n </div>\n </form>\n ) : (\n <>\n <div className=\"space-y-2\">\n <HintedLabel\n htmlFor={`${id}-description`}\n label={t('assist.describe.label')}\n hint={t('assist.describe.hint')}\n />\n <Textarea\n id={`${id}-description`}\n value={describe.description}\n rows={4}\n maxLength={SCHEMA_DESCRIPTION_MAX}\n placeholder={t('assist.describe.placeholder')}\n disabled={describe.proposing}\n onChange={(event) => describe.setDescription(event.target.value)}\n />\n </div>\n <AssistError error={describe.proposeError} />\n <div className=\"flex justify-end\">\n <AssistButton\n variant=\"outline\"\n size=\"default\"\n pending={describe.proposing}\n pendingLabel={t('assist.working')}\n disabled={describe.description.trim() === '' || locked}\n onClick={describe.run}\n >\n {t('assist.describe.run')}\n </AssistButton>\n </div>\n </>\n )}\n </div>\n </Panel>\n );\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Describe } from './Describe';\nimport { Form } from './Form';\n\nconst KINDS = ['collection', 'singleton'] as const;\n\n/** `/content/new`: a new content type (a place for editors), live as soon as it is created. */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/content' })}\n backLabel={t('content.title')}\n intro={<Describe />}\n />\n );\n};\n","import { createLazyRoute } from '@tanstack/react-router';\nimport { Components } from '@/features/Components';\nimport { Builder as ComponentBuilder } from '@/features/Components/Builder';\nimport { New as NewComponent } from '@/features/Components/New';\nimport { New as NewContentType } from '@/features/Content/New';\n\n/** Creating content types and components, and Develop → Components (with @shapio/schema's validators). */\nexport const contentTypesLazyRoutes = {\n newContentType: createLazyRoute('/app/content/new')({ component: NewContentType }),\n components: createLazyRoute('/app/develop/components')({ component: Components }),\n newComponent: createLazyRoute('/app/develop/components/new')({ component: NewComponent }),\n component: createLazyRoute('/app/develop/components/$componentId')({ component: ComponentBuilder }),\n};\n"],"mappings":"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"}
|