@shapio/cms 0.5.8 → 0.5.9
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-BrMzsUZD.js → AssetTile-Da76KsyX.js} +2 -2
- package/dist/admin/assets/{AssetTile-BrMzsUZD.js.map → AssetTile-Da76KsyX.js.map} +1 -1
- package/dist/admin/assets/AssistError-Wr62cDj3.js +2 -0
- package/dist/admin/assets/{AssistError-Cs-r9Ssc.js.map → AssistError-Wr62cDj3.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js → BlockMenuItems-BMiEVCIT.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js.map → BlockMenuItems-BMiEVCIT.js.map} +1 -1
- package/dist/admin/assets/Body-BEW1sAAB.js +2 -0
- package/dist/admin/assets/Body-BEW1sAAB.js.map +1 -0
- package/dist/admin/assets/Builder-Tk_5Orrl.js +2 -0
- package/dist/admin/assets/Builder-Tk_5Orrl.js.map +1 -0
- package/dist/admin/assets/{CodeEditor-CBCR73Wd.js → CodeEditor-Ck7ggv6w.js} +2 -2
- package/dist/admin/assets/{CodeEditor-CBCR73Wd.js.map → CodeEditor-Ck7ggv6w.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-CxFsBHfF.js → CopyButton-WMWuSVsk.js} +2 -2
- package/dist/admin/assets/{CopyButton-CxFsBHfF.js.map → CopyButton-WMWuSVsk.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-BW2U3v6l.js → CursorPager-CsnzX1P8.js} +2 -2
- package/dist/admin/assets/{CursorPager-BW2U3v6l.js.map → CursorPager-CsnzX1P8.js.map} +1 -1
- package/dist/admin/assets/{ExternalLink-BITMgS1K.js → ExternalLink-D80sb5Jj.js} +2 -2
- package/dist/admin/assets/{ExternalLink-BITMgS1K.js.map → ExternalLink-D80sb5Jj.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-CpZTve1E.js → FocalPoint-CstZuVmt.js} +2 -2
- package/dist/admin/assets/{FocalPoint-CpZTve1E.js.map → FocalPoint-CstZuVmt.js.map} +1 -1
- package/dist/admin/assets/Form-CEOW2OFF.js +2 -0
- package/dist/admin/assets/Form-CEOW2OFF.js.map +1 -0
- package/dist/admin/assets/{FormCheckboxGroup-DeeaYnzB.js → FormCheckboxGroup-VjWVMiF3.js} +2 -2
- package/dist/admin/assets/{FormCheckboxGroup-DeeaYnzB.js.map → FormCheckboxGroup-VjWVMiF3.js.map} +1 -1
- package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js → FormRadioGroup-BQurJa8M.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js.map → FormRadioGroup-BQurJa8M.js.map} +1 -1
- package/dist/admin/assets/FormSelectField-B4sjP-pj.js +2 -0
- package/dist/admin/assets/FormSelectField-B4sjP-pj.js.map +1 -0
- package/dist/admin/assets/FormSheet-V99zdfQe.js +2 -0
- package/dist/admin/assets/FormSheet-V99zdfQe.js.map +1 -0
- package/dist/admin/assets/{FormSwitchField-BLOh7qei.js → FormSwitchField-RZgoP--n.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-BLOh7qei.js.map → FormSwitchField-RZgoP--n.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-CO115n_u.js → FormTextareaField-CzXgoQzf.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-CO115n_u.js.map → FormTextareaField-CzXgoQzf.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-DzHnEdIK.js → HintedLabel-Cd9nuSqV.js} +2 -2
- package/dist/admin/assets/{HintedLabel-DzHnEdIK.js.map → HintedLabel-Cd9nuSqV.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-CSEtcHjL.js → InfoHint-ymRmHKMr.js} +2 -2
- package/dist/admin/assets/{InfoHint-CSEtcHjL.js.map → InfoHint-ymRmHKMr.js.map} +1 -1
- package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js → InlineConfirm-A4IqkrGp.js} +2 -2
- package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js.map → InlineConfirm-A4IqkrGp.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js → InsertMenuItem-Bf7S7qbm.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js.map → InsertMenuItem-Bf7S7qbm.js.map} +1 -1
- package/dist/admin/assets/{LinkTabs-8SmS1vCd.js → LinkTabs-oQXsy1I3.js} +2 -2
- package/dist/admin/assets/{LinkTabs-8SmS1vCd.js.map → LinkTabs-oQXsy1I3.js.map} +1 -1
- package/dist/admin/assets/{Match-CcD9KxHH.js → Match-DJq8wn3e.js} +2 -2
- package/dist/admin/assets/{Match-CcD9KxHH.js.map → Match-DJq8wn3e.js.map} +1 -1
- package/dist/admin/assets/{NoAccess-C8RLPN0I.js → NoAccess-CZufdbPI.js} +2 -2
- package/dist/admin/assets/{NoAccess-C8RLPN0I.js.map → NoAccess-CZufdbPI.js.map} +1 -1
- package/dist/admin/assets/{QueryView-xMP_uJ_t.js → QueryView-DO9TFWYE.js} +2 -2
- package/dist/admin/assets/{QueryView-xMP_uJ_t.js.map → QueryView-DO9TFWYE.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-DQFmni5A.js → RadioTile-DmKBFkpy.js} +2 -2
- package/dist/admin/assets/{RadioTile-DQFmni5A.js.map → RadioTile-DmKBFkpy.js.map} +1 -1
- package/dist/admin/assets/{RichTextField-CVHRIbnu.js → RichTextField-BpxyusP4.js} +4 -4
- package/dist/admin/assets/{RichTextField-CVHRIbnu.js.map → RichTextField-BpxyusP4.js.map} +1 -1
- package/dist/admin/assets/{RowTitle-Bqt6evG9.js → RowTitle-DVOfgxOd.js} +2 -2
- package/dist/admin/assets/{RowTitle-Bqt6evG9.js.map → RowTitle-DVOfgxOd.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js → SecretReveal-DRCqVEFF.js} +2 -2
- package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js.map → SecretReveal-DRCqVEFF.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js → SharedGlyph-nsXJPCew.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js.map → SharedGlyph-nsXJPCew.js.map} +1 -1
- package/dist/admin/assets/StepList-CDZPRd3-.js +2 -0
- package/dist/admin/assets/StepList-CDZPRd3-.js.map +1 -0
- package/dist/admin/assets/Structure-CL51Bvbm.js +2 -0
- package/dist/admin/assets/{Structure-D8csgrIt.js.map → Structure-CL51Bvbm.js.map} +1 -1
- package/dist/admin/assets/{SubNavLink-CiCaVV8U.js → SubNavLink-7Cs1LqMv.js} +2 -2
- package/dist/admin/assets/{SubNavLink-CiCaVV8U.js.map → SubNavLink-7Cs1LqMv.js.map} +1 -1
- package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js → SuggestAltButton-4SaZQOJu.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js.map → SuggestAltButton-4SaZQOJu.js.map} +1 -1
- package/dist/admin/assets/{TextLink-HRn66VL1.js → TextLink-Dfs5wsc5.js} +2 -2
- package/dist/admin/assets/{TextLink-HRn66VL1.js.map → TextLink-Dfs5wsc5.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-DNj5TRBI.js → Thumbnail-DauHAkh8.js} +2 -2
- package/dist/admin/assets/{Thumbnail-DNj5TRBI.js.map → Thumbnail-DauHAkh8.js.map} +1 -1
- package/dist/admin/assets/Trans-B3UWiZaU.js +2 -0
- package/dist/admin/assets/Trans-B3UWiZaU.js.map +1 -0
- package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js → UnsavedChangesGuard-DPgih7BX.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js.map → UnsavedChangesGuard-DPgih7BX.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-p-jV-LoD.js → UserAvatar-If-zlQNY.js} +2 -2
- package/dist/admin/assets/{UserAvatar-p-jV-LoD.js.map → UserAvatar-If-zlQNY.js.map} +1 -1
- package/dist/admin/assets/auth-BFSvtV59.js +2 -0
- package/dist/admin/assets/{auth-CQO4MBUj.js.map → auth-BFSvtV59.js.map} +1 -1
- package/dist/admin/assets/{badge-CqKF1pwz.js → badge-DEe9tqLS.js} +2 -2
- package/dist/admin/assets/{badge-CqKF1pwz.js.map → badge-DEe9tqLS.js.map} +1 -1
- package/dist/admin/assets/{boxes-CAygw8zF.js → boxes-_5klpWNM.js} +2 -2
- package/dist/admin/assets/{boxes-CAygw8zF.js.map → boxes-_5klpWNM.js.map} +1 -1
- package/dist/admin/assets/{calendar-clock-BZGtAvWR.js → calendar-clock-VXok22Xj.js} +2 -2
- package/dist/admin/assets/{calendar-clock-BZGtAvWR.js.map → calendar-clock-VXok22Xj.js.map} +1 -1
- package/dist/admin/assets/changeSets-D5i2SgFV.js +2 -0
- package/dist/admin/assets/{changeSets-8EburmT0.js.map → changeSets-D5i2SgFV.js.map} +1 -1
- package/dist/admin/assets/chevron-left-CkRxDtvO.js +2 -0
- package/dist/admin/assets/{chevron-left-DGU3HGYG.js.map → chevron-left-CkRxDtvO.js.map} +1 -1
- package/dist/admin/assets/{circle-check-C37MSJqX.js → circle-check-DtDq7QMo.js} +2 -2
- package/dist/admin/assets/{circle-check-C37MSJqX.js.map → circle-check-DtDq7QMo.js.map} +1 -1
- package/dist/admin/assets/{clock-2arjsgZ4.js → clock-BtvZR9KD.js} +2 -2
- package/dist/admin/assets/{clock-2arjsgZ4.js.map → clock-BtvZR9KD.js.map} +1 -1
- package/dist/admin/assets/{constants-a_15vqOh.js → constants-FKg_ke3y.js} +2 -2
- package/dist/admin/assets/{constants-a_15vqOh.js.map → constants-FKg_ke3y.js.map} +1 -1
- package/dist/admin/assets/content-DKT2ziPH.js +3 -0
- package/dist/admin/assets/content-DKT2ziPH.js.map +1 -0
- package/dist/admin/assets/{contentCounts-DP7YYeZZ.js → contentCounts-BzC7IQqP.js} +2 -2
- package/dist/admin/assets/{contentCounts-DP7YYeZZ.js.map → contentCounts-BzC7IQqP.js.map} +1 -1
- package/dist/admin/assets/{contentTypes-84uc0bjR.js → contentTypes-B5taZv3y.js} +2 -2
- package/dist/admin/assets/{contentTypes-84uc0bjR.js.map → contentTypes-B5taZv3y.js.map} +1 -1
- package/dist/admin/assets/{context-IKYdzQJ-.js → context-CEVKblBl.js} +2 -2
- package/dist/admin/assets/{context-IKYdzQJ-.js.map → context-CEVKblBl.js.map} +1 -1
- package/dist/admin/assets/{copy-CsSRHgKZ.js → copy-B7vIq8DS.js} +2 -2
- package/dist/admin/assets/{copy-CsSRHgKZ.js.map → copy-B7vIq8DS.js.map} +1 -1
- package/dist/admin/assets/createLucideIcon-BOsNKleB.js +2 -0
- package/dist/admin/assets/createLucideIcon-BOsNKleB.js.map +1 -0
- package/dist/admin/assets/develop-CFlv7IdP.js +11 -0
- package/dist/admin/assets/develop-CFlv7IdP.js.map +1 -0
- package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js → dropdown-menu-B7dJyA8h.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js.map → dropdown-menu-B7dJyA8h.js.map} +1 -1
- package/dist/admin/assets/{ellipsis-F91991on.js → ellipsis-Ci0rsbCJ.js} +2 -2
- package/dist/admin/assets/{ellipsis-F91991on.js.map → ellipsis-Ci0rsbCJ.js.map} +1 -1
- package/dist/admin/assets/{entryLink-CVB-TdIn.js → entryLink-B0hSb_dN.js} +2 -2
- package/dist/admin/assets/{entryLink-CVB-TdIn.js.map → entryLink-B0hSb_dN.js.map} +1 -1
- package/dist/admin/assets/es2015-1nJWBurR.js +42 -0
- package/dist/admin/assets/es2015-1nJWBurR.js.map +1 -0
- package/dist/admin/assets/{external-link-CdG6kHfA.js → external-link-Bs9YRzvY.js} +2 -2
- package/dist/admin/assets/{external-link-CdG6kHfA.js.map → external-link-Bs9YRzvY.js.map} +1 -1
- package/dist/admin/assets/{field-COOzRptX.js → field-BDCHXkZE.js} +2 -2
- package/dist/admin/assets/{field-COOzRptX.js.map → field-BDCHXkZE.js.map} +1 -1
- package/dist/admin/assets/{file-stack-28ZtO1xW.js → file-stack-X4OGmkLA.js} +2 -2
- package/dist/admin/assets/{file-stack-28ZtO1xW.js.map → file-stack-X4OGmkLA.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-s7mCMYUJ.js → fileRoute-c9UMUr9b.js} +2 -2
- package/dist/admin/assets/{fileRoute-s7mCMYUJ.js.map → fileRoute-c9UMUr9b.js.map} +1 -1
- package/dist/admin/assets/{folder-plus-DIk0pWkP.js → folder-plus-De2GNvry.js} +2 -2
- package/dist/admin/assets/{folder-plus-DIk0pWkP.js.map → folder-plus-De2GNvry.js.map} +1 -1
- package/dist/admin/assets/followPlural-CHpz-yo4.js +2 -0
- package/dist/admin/assets/followPlural-CHpz-yo4.js.map +1 -0
- package/dist/admin/assets/{globe-DFr3Gd2w.js → globe-DBw84s8Z.js} +2 -2
- package/dist/admin/assets/{globe-DFr3Gd2w.js.map → globe-DBw84s8Z.js.map} +1 -1
- package/dist/admin/assets/{image-DT79QFa_.js → image-CX4mT-_R.js} +2 -2
- package/dist/admin/assets/{image-DT79QFa_.js.map → image-CX4mT-_R.js.map} +1 -1
- package/dist/admin/assets/{image-off-DFs5upyX.js → image-off-CVaH_qKf.js} +2 -2
- package/dist/admin/assets/{image-off-DFs5upyX.js.map → image-off-CVaH_qKf.js.map} +1 -1
- package/dist/admin/assets/{inbox-CySnQydm.js → inbox-D9SmWt5L.js} +2 -2
- package/dist/admin/assets/{inbox-CySnQydm.js.map → inbox-D9SmWt5L.js.map} +1 -1
- package/dist/admin/assets/inbox-Daw10v5C.js +2 -0
- package/dist/admin/assets/inbox-Daw10v5C.js.map +1 -0
- package/dist/admin/assets/index-BRx5mel0.js +4 -0
- package/dist/admin/assets/index-BRx5mel0.js.map +1 -0
- package/dist/admin/assets/index-DZsQq6fY.css +2 -0
- package/dist/admin/assets/{key-round-D36CePnN.js → key-round-C8sd9CLN.js} +2 -2
- package/dist/admin/assets/{key-round-D36CePnN.js.map → key-round-C8sd9CLN.js.map} +1 -1
- package/dist/admin/assets/{labels-DQckbLGW.js → labels-B83cEX9w.js} +2 -2
- package/dist/admin/assets/{labels-DQckbLGW.js.map → labels-B83cEX9w.js.map} +1 -1
- package/dist/admin/assets/{languages-CzbTaQv9.js → languages-DLjdz6gb.js} +2 -2
- package/dist/admin/assets/{languages-CzbTaQv9.js.map → languages-DLjdz6gb.js.map} +1 -1
- package/dist/admin/assets/{layers-BmcodiaH.js → layers-swLuw-3a.js} +2 -2
- package/dist/admin/assets/{layers-BmcodiaH.js.map → layers-swLuw-3a.js.map} +1 -1
- package/dist/admin/assets/{link-2-off-CoJNwrxm.js → link-2-off-CEsI5T8h.js} +2 -2
- package/dist/admin/assets/{link-2-off-CoJNwrxm.js.map → link-2-off-CEsI5T8h.js.map} +1 -1
- package/dist/admin/assets/{link-Pyr2Y35S.js → link-C98FG_p5.js} +2 -2
- package/dist/admin/assets/{link-Pyr2Y35S.js.map → link-C98FG_p5.js.map} +1 -1
- package/dist/admin/assets/locales-CkuC7TJ1.js +2 -0
- package/dist/admin/assets/{locales-Bg3htKo8.js.map → locales-CkuC7TJ1.js.map} +1 -1
- package/dist/admin/assets/media-CbGSd_Mw.js +2 -0
- package/dist/admin/assets/{media-BCnVhaDH.js.map → media-CbGSd_Mw.js.map} +1 -1
- package/dist/admin/assets/{media-CURizGns.js → media-CgxriwNL.js} +2 -2
- package/dist/admin/assets/{media-CURizGns.js.map → media-CgxriwNL.js.map} +1 -1
- package/dist/admin/assets/network-Cc1TAyal.js +2 -0
- package/dist/admin/assets/network-Cc1TAyal.js.map +1 -0
- package/dist/admin/assets/{plus-BoDtdLCo.js → plus-cr9ZfO6j.js} +2 -2
- package/dist/admin/assets/{plus-BoDtdLCo.js.map → plus-cr9ZfO6j.js.map} +1 -1
- package/dist/admin/assets/publishing-RQUj-CyN.js +2 -0
- package/dist/admin/assets/{publishing-Dke9bSKp.js.map → publishing-RQUj-CyN.js.map} +1 -1
- package/dist/admin/assets/{radio-group-4ok5evXq.js → radio-group-Btmx7dlD.js} +2 -2
- package/dist/admin/assets/{radio-group-4ok5evXq.js.map → radio-group-Btmx7dlD.js.map} +1 -1
- package/dist/admin/assets/{rotate-ccw-DL6TzcZh.js → rotate-ccw-BP8Ba-mY.js} +2 -2
- package/dist/admin/assets/{rotate-ccw-DL6TzcZh.js.map → rotate-ccw-BP8Ba-mY.js.map} +1 -1
- package/dist/admin/assets/schedules-BIyBlsYZ.js +2 -0
- package/dist/admin/assets/{schedules-BmB9Y73z.js.map → schedules-BIyBlsYZ.js.map} +1 -1
- package/dist/admin/assets/schema-BMQEabwO.js +2 -0
- package/dist/admin/assets/{schema-D-qo7XSF.js.map → schema-BMQEabwO.js.map} +1 -1
- package/dist/admin/assets/{scroll-text-PqeZm472.js → scroll-text-B5vfi9fD.js} +2 -2
- package/dist/admin/assets/{scroll-text-PqeZm472.js.map → scroll-text-B5vfi9fD.js.map} +1 -1
- package/dist/admin/assets/{search-BdwIwOzC.js → search-wj7zbkx1.js} +2 -2
- package/dist/admin/assets/{search-BdwIwOzC.js.map → search-wj7zbkx1.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-CSScloG8.js → searchSchemas-fO_49fDI.js} +2 -2
- package/dist/admin/assets/{searchSchemas-CSScloG8.js.map → searchSchemas-fO_49fDI.js.map} +1 -1
- package/dist/admin/assets/{sections-BTS683ur.js → sections-DBQpB0uv.js} +2 -2
- package/dist/admin/assets/{sections-BTS683ur.js.map → sections-DBQpB0uv.js.map} +1 -1
- package/dist/admin/assets/{sections-DqBzSKMP.js → sections-SX-oiQoE.js} +2 -2
- package/dist/admin/assets/{sections-DqBzSKMP.js.map → sections-SX-oiQoE.js.map} +1 -1
- package/dist/admin/assets/{select-C0USI-Ox.js → select-JB2Vv7ep.js} +2 -2
- package/dist/admin/assets/{select-C0USI-Ox.js.map → select-JB2Vv7ep.js.map} +1 -1
- package/dist/admin/assets/{send-XPWo3m4u.js → send-CzFdgUc_.js} +2 -2
- package/dist/admin/assets/{send-XPWo3m4u.js.map → send-CzFdgUc_.js.map} +1 -1
- package/dist/admin/assets/seo-Bd0sWQMo.js +2 -0
- package/dist/admin/assets/{seo-CceGYTIX.js.map → seo-Bd0sWQMo.js.map} +1 -1
- package/dist/admin/assets/settings-CrRFxhSo.js +2 -0
- package/dist/admin/assets/{settings-B60vHpZd.js.map → settings-CrRFxhSo.js.map} +1 -1
- package/dist/admin/assets/shapes-EMjfYsXV.js +6 -0
- package/dist/admin/assets/shapes-EMjfYsXV.js.map +1 -0
- package/dist/admin/assets/{skeleton-B5MP72Kw.js → skeleton-Dk-qdg0z.js} +2 -2
- package/dist/admin/assets/{skeleton-B5MP72Kw.js.map → skeleton-Dk-qdg0z.js.map} +1 -1
- package/dist/admin/assets/{snapshots-DUI2t-qF.js → snapshots-DbFQNJgN.js} +2 -2
- package/dist/admin/assets/{snapshots-DUI2t-qF.js.map → snapshots-DbFQNJgN.js.map} +1 -1
- package/dist/admin/assets/{sparkles-CvT-jxrW.js → sparkles-D_kmZJVd.js} +2 -2
- package/dist/admin/assets/{sparkles-CvT-jxrW.js.map → sparkles-D_kmZJVd.js.map} +1 -1
- package/dist/admin/assets/src-CMor9izq.js +7 -0
- package/dist/admin/assets/src-CMor9izq.js.map +1 -0
- package/dist/admin/assets/{stableId-BrtQedPy.js → stableId-g1uxJGSz.js} +2 -2
- package/dist/admin/assets/{stableId-BrtQedPy.js.map → stableId-g1uxJGSz.js.map} +1 -1
- package/dist/admin/assets/{store-CdIFG90N.js → store-CznhNKEi.js} +2 -2
- package/dist/admin/assets/{store-CdIFG90N.js.map → store-CznhNKEi.js.map} +1 -1
- package/dist/admin/assets/{switch-Dp6WYNam.js → switch-DyCRGDs7.js} +2 -2
- package/dist/admin/assets/{switch-Dp6WYNam.js.map → switch-DyCRGDs7.js.map} +1 -1
- package/dist/admin/assets/{theme-65PB8uAu.js → theme-Cv-MfOv8.js} +2 -2
- package/dist/admin/assets/{theme-65PB8uAu.js.map → theme-Cv-MfOv8.js.map} +1 -1
- package/dist/admin/assets/titles-DrQhW8z3.js +2 -0
- package/dist/admin/assets/titles-DrQhW8z3.js.map +1 -0
- package/dist/admin/assets/tokens-B1S81Epe.js +2 -0
- package/dist/admin/assets/{tokens-ixHjAkDK.js.map → tokens-B1S81Epe.js.map} +1 -1
- package/dist/admin/assets/{tooltip-BGP1DVBt.js → tooltip-CCOeMqiL.js} +2 -2
- package/dist/admin/assets/{tooltip-BGP1DVBt.js.map → tooltip-CCOeMqiL.js.map} +1 -1
- package/dist/admin/assets/{undo-2-BiTANHFz.js → undo-2-DpwwRQTf.js} +2 -2
- package/dist/admin/assets/{undo-2-BiTANHFz.js.map → undo-2-DpwwRQTf.js.map} +1 -1
- package/dist/admin/assets/useContentSchema-uXOfT985.js +2 -0
- package/dist/admin/assets/useContentSchema-uXOfT985.js.map +1 -0
- package/dist/admin/assets/useCursorPager-BHYqHb3M.js +2 -0
- package/dist/admin/assets/{useCursorPager-0zHjlm-7.js.map → useCursorPager-BHYqHb3M.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js → useDiscardGuard-DvBI3VIz.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js.map → useDiscardGuard-DvBI3VIz.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js → useMediaPickerDialog-CehOsykG.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js.map → useMediaPickerDialog-CehOsykG.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-CBcq1ICg.js → useMediaUploader-DvtxYXxD.js} +2 -2
- package/dist/admin/assets/{useMediaUploader-CBcq1ICg.js.map → useMediaUploader-DvtxYXxD.js.map} +1 -1
- package/dist/admin/assets/useModelIndex-D8Q0oM4M.js +2 -0
- package/dist/admin/assets/useModelIndex-D8Q0oM4M.js.map +1 -0
- package/dist/admin/assets/useNetworkPermission-DehDln-U.js +2 -0
- package/dist/admin/assets/{useNetworkPermission-Cts98h9d.js.map → useNetworkPermission-DehDln-U.js.map} +1 -1
- package/dist/admin/assets/{usePaletteItems-DtReWmkd.js → usePaletteItems-CFpNlSOs.js} +2 -2
- package/dist/admin/assets/{usePaletteItems-DtReWmkd.js.map → usePaletteItems-CFpNlSOs.js.map} +1 -1
- package/dist/admin/assets/usePlaces-CySN2Vwz.js +2 -0
- package/dist/admin/assets/usePlaces-CySN2Vwz.js.map +1 -0
- package/dist/admin/assets/useResolvedDefinitions-C279ueCH.js +2 -0
- package/dist/admin/assets/useResolvedDefinitions-C279ueCH.js.map +1 -0
- package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js → useResolvedScheme-DEq7P4R5.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js.map → useResolvedScheme-DEq7P4R5.js.map} +1 -1
- package/dist/admin/assets/useSaveShortcut-DQuNL1uJ.js +2 -0
- package/dist/admin/assets/useSaveShortcut-DQuNL1uJ.js.map +1 -0
- package/dist/admin/assets/{useSchemaScopeAccess-ByrxIdKM.js → useSchemaScopeAccess-JXOMx51q.js} +2 -2
- package/dist/admin/assets/{useSchemaScopeAccess-ByrxIdKM.js.map → useSchemaScopeAccess-JXOMx51q.js.map} +1 -1
- package/dist/admin/assets/users-38jLQ7zr.js +2 -0
- package/dist/admin/assets/users-38jLQ7zr.js.map +1 -0
- package/dist/admin/assets/{users-DM7CXUBJ.js → users-DYwcVDqp.js} +2 -2
- package/dist/admin/assets/{users-DM7CXUBJ.js.map → users-DYwcVDqp.js.map} +1 -1
- package/dist/admin/assets/{zod-Cry7YvLY.js → zod-vPzaNsuW.js} +2 -2
- package/dist/admin/assets/{zod-Cry7YvLY.js.map → zod-vPzaNsuW.js.map} +1 -1
- package/dist/admin/index.html +60 -58
- package/dist/cli.js +1 -1
- package/dist/{cliMain-papyXJDd.js → cliMain-DzBXO7Oa.js} +98 -21
- package/dist/cliMain-DzBXO7Oa.js.map +1 -0
- package/dist/config.d.ts +2 -2
- package/dist/index.d.ts +42 -5
- package/dist/index.js +1 -1
- package/dist/public-B57h4F7Y.js.map +1 -1
- package/dist/{public-COKbHR-N.d.ts → public-jttKsns_.d.ts} +47 -5
- package/dist/{worker-B-sC-eY2.js → worker-6ru1tYBs.js} +2790 -1063
- package/dist/worker-6ru1tYBs.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/AssistError-Cs-r9Ssc.js +0 -2
- package/dist/admin/assets/Body-BzZD-TZT.js +0 -2
- package/dist/admin/assets/Body-BzZD-TZT.js.map +0 -1
- package/dist/admin/assets/Builder-DW-GJA_q.js +0 -2
- package/dist/admin/assets/Builder-DW-GJA_q.js.map +0 -1
- package/dist/admin/assets/Form-lNrRHc0I.js +0 -2
- package/dist/admin/assets/Form-lNrRHc0I.js.map +0 -1
- package/dist/admin/assets/FormSelectField-BzE9Lq9i.js +0 -2
- package/dist/admin/assets/FormSelectField-BzE9Lq9i.js.map +0 -1
- package/dist/admin/assets/StepList-BXGYD9eJ.js +0 -2
- package/dist/admin/assets/StepList-BXGYD9eJ.js.map +0 -1
- package/dist/admin/assets/Structure-D8csgrIt.js +0 -2
- package/dist/admin/assets/auth-CQO4MBUj.js +0 -2
- package/dist/admin/assets/changeSets-8EburmT0.js +0 -2
- package/dist/admin/assets/chevron-left-DGU3HGYG.js +0 -2
- package/dist/admin/assets/content-CAjkbZEY.js +0 -3
- package/dist/admin/assets/content-CAjkbZEY.js.map +0 -1
- package/dist/admin/assets/createLucideIcon-CLmh7Go-.js +0 -2
- package/dist/admin/assets/createLucideIcon-CLmh7Go-.js.map +0 -1
- package/dist/admin/assets/develop-BOqvnlgt.js +0 -11
- package/dist/admin/assets/develop-BOqvnlgt.js.map +0 -1
- package/dist/admin/assets/es2015-BHmI7wjK.js +0 -42
- package/dist/admin/assets/es2015-BHmI7wjK.js.map +0 -1
- package/dist/admin/assets/followPlural-Cm7v_Udv.js +0 -2
- package/dist/admin/assets/followPlural-Cm7v_Udv.js.map +0 -1
- package/dist/admin/assets/inbox-DGO2D8fa.js +0 -2
- package/dist/admin/assets/inbox-DGO2D8fa.js.map +0 -1
- package/dist/admin/assets/index-BIIU9ZI6.js +0 -4
- package/dist/admin/assets/index-BIIU9ZI6.js.map +0 -1
- package/dist/admin/assets/index-lxe7WimO.css +0 -2
- package/dist/admin/assets/locales-Bg3htKo8.js +0 -2
- package/dist/admin/assets/media-BCnVhaDH.js +0 -2
- package/dist/admin/assets/network-BixABr0o.js +0 -2
- package/dist/admin/assets/network-BixABr0o.js.map +0 -1
- package/dist/admin/assets/publishing-Dke9bSKp.js +0 -2
- package/dist/admin/assets/schedules-BmB9Y73z.js +0 -2
- package/dist/admin/assets/schema-D-qo7XSF.js +0 -2
- package/dist/admin/assets/seo-CceGYTIX.js +0 -2
- package/dist/admin/assets/settings-B60vHpZd.js +0 -2
- package/dist/admin/assets/shapes-B5twqZcp.js +0 -6
- package/dist/admin/assets/shapes-B5twqZcp.js.map +0 -1
- package/dist/admin/assets/src-ndgTSYLX.js +0 -7
- package/dist/admin/assets/src-ndgTSYLX.js.map +0 -1
- package/dist/admin/assets/titles-CQiqqDw-.js +0 -2
- package/dist/admin/assets/titles-CQiqqDw-.js.map +0 -1
- package/dist/admin/assets/tokens-ixHjAkDK.js +0 -2
- package/dist/admin/assets/useContentSchema-DtYfhsd2.js +0 -2
- package/dist/admin/assets/useContentSchema-DtYfhsd2.js.map +0 -1
- package/dist/admin/assets/useCursorPager-0zHjlm-7.js +0 -2
- package/dist/admin/assets/useNetworkPermission-Cts98h9d.js +0 -2
- package/dist/admin/assets/usePlaces-DC47wVeU.js +0 -2
- package/dist/admin/assets/usePlaces-DC47wVeU.js.map +0 -1
- package/dist/admin/assets/useQueries-CirW3Mvp.js +0 -2
- package/dist/admin/assets/useQueries-CirW3Mvp.js.map +0 -1
- package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js +0 -2
- package/dist/admin/assets/useSaveShortcut-rKtp1qK7.js.map +0 -1
- package/dist/admin/assets/users-2iJYwlJb.js +0 -2
- package/dist/admin/assets/users-2iJYwlJb.js.map +0 -1
- package/dist/cliMain-papyXJDd.js.map +0 -1
- package/dist/worker-B-sC-eY2.js.map +0 -1
|
@@ -0,0 +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{Bt as r,Jt as i,dt as a,gt as o}from"./src-CMor9izq.js";import{S as s,a as c,n as l,o as u,r as d}from"./titles-DrQhW8z3.js";import{E as f,o as p,u as m,w as h}from"./auth-BFSvtV59.js";import{n as g,t as _}from"./createLucideIcon-BOsNKleB.js";import{t as v}from"./clock-BtvZR9KD.js";import{n as y,t as b}from"./search-wj7zbkx1.js";import{t as x}from"./image-CX4mT-_R.js";import{t as S}from"./cn-DVhJ55Mo.js";import{t as C}from"./store-CznhNKEi.js";import{t as w}from"./modelPermissions-DZ1lWfQZ.js";import{n as T}from"./useResolvedDefinitions-C279ueCH.js";import{t as E}from"./useDebouncedValue-Dqs3wwhn.js";var D={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};D.node;var O=_(D),k=e(t(),1),A=(e,t)=>{let[n,r]=(0,k.useState)({key:t,index:0}),i=n.key===t?n.index:0,a=e===0?-1:Math.min(i,e-1),o=(0,k.useCallback)(e=>r({key:t,index:e}),[t]);return{activeIndex:a,setActiveIndex:o,onKeyDown:(0,k.useCallback)(t=>{if(e===0||t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let n=t.key===`ArrowDown`?1:-1;o((Math.max(a,0)+n+e)%e)},[e,a,o])}},j=e=>e.normalize(`NFD`).replace(/\p{M}/gu,``).toLowerCase(),M=(e,t)=>t===0||!/[\p{L}\p{N}]/u.test(e[t-1]??``),N=(e,t)=>{let n=t.indexOf(e);if(n!==-1)return 10+e.length*2+(M(t,n)?5:0)+(n===0?3:0);let r=0,i=0,a=-2;for(let n of e){let e=t.indexOf(n,i);if(e===-1)return null;r+=1+(e===a+1?2:0)+(M(t,e)?3:0)-Math.min(e-i,3)*.5,a=e,i=e+1}return r},P=(e,t,n=[])=>{let r=j(e).split(/\s+/).filter(Boolean);if(r.length===0)return 0;let i=[j(t),...n.map(j)],a=0;for(let e of r){let t=i.flatMap((t,n)=>{let r=N(e,t);return r===null?[]:[n===0?r*1.2:r]});if(t.length===0)return null;a+=Math.max(...t)}return a},F=(e,t)=>t.map((t,n)=>({item:t,index:n,score:P(e,t.label,t.keywords)})).filter(e=>e.score!==null).sort((e,t)=>t.score-e.score||e.index-t.index).map(({item:e})=>e),I=(e,t)=>e.kind===`singleton`?h({to:`/content/$modelKey`,params:{modelKey:e.apiKey}}):h({to:`/content/$modelKey/$entryId`,params:{modelKey:e.apiKey,entryId:t}}),L=e=>{let{t}=g(),{data:n}=m(),{resolved:r}=T(),i=e.trim(),a=i.length>=2,{models:o,byKey:f}=(0,k.useMemo)(()=>{let e=[...r?.byId.values()??[]],t=e=>l(e)&&w(n,e.id,`read`);return{models:e.filter(e=>t(e)&&!e.ancestorIds.some(e=>{let n=r?.byId.get(e);return n!==void 0&&t(n)})).sort((e,t)=>e.label.localeCompare(t.label)),byKey:new Map(e.map(e=>[e.apiKey,e]))}},[r,n]);return s({queries:o.map(e=>{let t=c(e);return{...u(e.apiKey,{q:i,pageSize:3,...t?{fields:[t.apiKey]}:{}}),placeholderData:void 0,enabled:a}}),combine:e=>({isFetching:a&&e.some(e=>e.isFetching),items:a?e.flatMap((e,n)=>{let r=o[n],i=e.data;return r&&i?i.items.map(e=>{let n=f.get(e.model)??r;return{id:`entry:${n.id}:${e.id}`,label:d(r,e,t(`palette.untitled`)),hint:n.label,icon:y,link:I(n,e.id)}}):[]}):[]})})},R=e=>{let t=p(`media.read`),n=e.trim(),a=t&&n.length>=2,s=i({queryKey:[...r.media.assets({search:n}),`palette`],queryFn:()=>o.media.assets.list({search:n,limit:5}),enabled:a,meta:{silent:!0}});return{items:(0,k.useMemo)(()=>a?(s.data?.items??[]).map(e=>({id:`media:${e.id}`,label:e.filename,...e.alt?{keywords:[e.alt]}:{},icon:x,link:h({to:`/media`,search:{asset:e.id}})})):[],[a,s.data]),isFetching:a&&s.isFetching}},z=[`page`,`create`,`goto`],B=e=>({id:`recent:${e.id}`,label:e.label,...e.hint?{hint:e.hint}:{},icon:v,link:e.link}),V=(e,t)=>{let n=C(e=>e.registrations),r=E(e,200),{items:i,isFetching:a}=L(r),{items:o,isFetching:s}=R(r);return{groups:(0,k.useMemo)(()=>{let a=new Map;for(let{group:e,items:t}of n.values())a.set(e,[...a.get(e)??[],...t]);let s=e.trim()!==``,[c,...l]=z.map(t=>{let n=a.get(t)??[];return{key:t,items:s?F(e,n).slice(0,8):n}}),u={key:`recent`,items:s?[]:t.map(B)},d=r.trim()===e.trim();return[...c?[c]:[],u,...l,{key:`entries`,items:s&&d?i:[]},{key:`media`,items:s&&d?o:[]}].filter(e=>e.items.length>0)},[n,e,r,t,i,o]),isSearching:a||s||r.trim()!==e.trim()}},H=`shapio.palette.recent`,U=e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.label==`string`&&typeof t.group==`string`&&typeof t.link==`object`&&t.link!==null},W=()=>{try{let e=JSON.parse(window.localStorage.getItem(`shapio.palette.recent`)??`[]`);return Array.isArray(e)?e.filter(U).slice(0,6):[]}catch{return[]}},G=e=>{let t=[e,...W().filter(t=>t.id!==e.id)].slice(0,6);try{window.localStorage.setItem(H,JSON.stringify(t))}catch{}return t},K=()=>{let[e,t]=(0,k.useState)(W);return{recent:e,remember:(0,k.useCallback)(e=>t(G(e)),[])}},q=e(n(),1),J=({id:e,item:t,active:n,onHover:r,onSelect:i})=>{let a=t.icon;return(0,q.jsxs)(`li`,{id:e,role:`option`,"aria-selected":n,"data-active":n,onPointerMove:r,onPointerDown:e=>e.preventDefault(),onClick:i,className:S(`flex h-10 cursor-pointer items-center gap-3 rounded-lg px-2 text-sm select-none`,n&&`bg-accent text-accent-foreground`),children:[a?(0,q.jsx)(a,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}):null,(0,q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t.label}),t.hint?(0,q.jsx)(`span`,{className:`shrink-0 truncate text-meta text-muted-foreground`,children:t.hint}):null,(0,q.jsx)(O,{"aria-hidden":`true`,className:S(`size-3.5 shrink-0 text-muted-foreground`,n?`opacity-100`:`opacity-0`)})]})},Y={page:`palette.groups.page`,recent:`palette.groups.recent`,create:`palette.groups.create`,goto:`palette.groups.goto`,entries:`palette.groups.entries`,media:`palette.groups.media`},X=({onClose:e})=>{let{t}=g(),n=f(),r=(0,k.useId)(),[i,o]=(0,k.useState)(``),{recent:s,remember:c}=K(),{groups:l,isSearching:u}=V(i,s),d=(0,k.useMemo)(()=>l.flatMap(e=>e.items.map(t=>({group:e.key,item:t}))),[l]),p=(0,k.useMemo)(()=>l.map((e,t)=>l.slice(0,t).reduce((e,t)=>e+t.items.length,0)),[l]),m=`${i}\u0000${d.map(({item:e})=>e.id).join(`|`)}`,{activeIndex:h,setActiveIndex:_,onKeyDown:v}=A(d.length,m),y=(0,k.useCallback)(e=>`${r}-option-${e}`,[r]);(0,k.useEffect)(()=>{h>=0&&document.getElementById(y(h))?.scrollIntoView({block:`nearest`})},[h,y]);let x=(t,r)=>{if(e(),r.link){if(t!==`page`&&t!==`create`){let e=r.id.replace(/^recent:/,``);c({id:e,label:r.label,...r.hint?{hint:r.hint}:{},group:t,link:r.link})}n(r.link)}r.run?.()},S=i.trim().length>=2&&u,C=i.trim()===``?``:S?t(`palette.searching`):d.length===0?t(`palette.noResults`,{query:i.trim()}):t(`palette.resultCount`,{count:d.length});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3 border-b px-4`,children:[(0,q.jsx)(b,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(`input`,{role:`combobox`,"aria-expanded":`true`,"aria-controls":r,"aria-autocomplete":`list`,"aria-activedescendant":h>=0?y(h):void 0,"aria-label":t(`palette.inputLabel`),placeholder:t(`palette.placeholder`),autoComplete:`off`,autoFocus:!0,spellCheck:!1,value:i,onChange:e=>o(e.target.value),onKeyDown:e=>{v(e);let t=d[h];e.key===`Enter`&&t&&!e.nativeEvent.isComposing&&(e.preventDefault(),x(t.group,t.item))},className:`h-12 min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground`}),S?(0,q.jsx)(a,{"aria-hidden":`true`,className:`size-4 shrink-0 animate-spin text-muted-foreground`}):null]}),(0,q.jsxs)(`ul`,{id:r,role:`listbox`,"aria-label":t(`palette.results`),className:`max-h-[min(60dvh,26rem)] overflow-y-auto overscroll-contain p-2`,children:[l.map((e,n)=>{let i=`${r}-${e.key}`;return(0,q.jsx)(`li`,{role:`presentation`,children:(0,q.jsxs)(`ul`,{role:`group`,"aria-labelledby":i,children:[(0,q.jsx)(`li`,{id:i,role:`presentation`,className:`px-2 pt-2 pb-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:t(Y[e.key])}),e.items.map((t,r)=>{let i=(p[n]??0)+r;return(0,q.jsx)(J,{id:y(i),item:t,active:i===h,onHover:()=>_(i),onSelect:()=>x(e.key,t)},t.id)})]})},e.key)}),d.length===0&&i.trim()!==``&&!S?(0,q.jsx)(`li`,{role:`presentation`,className:`px-2 py-8 text-center text-sm text-muted-foreground`,children:t(`palette.noResults`,{query:i.trim()})}):null]}),(0,q.jsx)(`div`,{role:`status`,className:`sr-only`,children:C}),(0,q.jsxs)(`div`,{className:`hidden items-center gap-4 border-t bg-muted/50 px-4 py-2 text-xs text-muted-foreground sm:flex`,children:[(0,q.jsx)(`span`,{children:t(`palette.hintMove`)}),(0,q.jsx)(`span`,{children:t(`palette.hintOpen`)}),(0,q.jsx)(`span`,{children:t(`palette.hintClose`)})]})]})};export{X as Body};
|
|
2
|
+
//# sourceMappingURL=Body-BEW1sAAB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Body-BEW1sAAB.js","names":["useState","useCallback","useMemo","useMemo","useMemo","useState","useCallback","useId","useState","useMemo","useCallback","_Fragment","Loader2","__toESM","require_jsx_runtime","queryKeys","useQuery","LoaderCircle","adminApi","useQueries","titleFieldOf","isSearchable","entryListQueryOptions","labelOf","useNavigate","useHasGlobalPermission","useMe","linkOptions","useTranslation","createLucideIcon","Clock","FileText","Search","Image","cn","usePaletteStore","canOnModel","useResolvedDefinitions","useDebouncedValue","__iconData","CornerDownLeft","import_react","require_react","useActiveIndex","state","setState","resetKey","current","activeIndex","count","setActiveIndex","event","step","normalize","text","isWordStart","index","scoreToken","substring","token","score","from","previous","char","fuzzyScore","tokens","query","texts","label","keywords","total","scores","fuzzyFilter","items","item","entry","b","a","entryLink","model","useEntrySearch","me","q","enabled","all","resolved","searched","ancestor","id","models","title","results","result","page","own","byKey","useMediaSearch","canRead","search","asset","REGISTERED_ORDER","toPaletteItem","usePaletteGroups","registrations","debounced","entryItems","entriesFetching","mediaItems","mediaFetching","registered","group","searching","rest","key","recentGroup","recent","RECENT_STORAGE_KEY","isRecentItem","value","readRecentItems","parsed","rememberRecentItem","next","existing","useRecentItems","setRecent","import_jsx_runtime","Option","Icon","active","onHover","onSelect","GROUP_LABEL_KEYS","Body","navigate","listboxId","setQuery","flat","groups","offsets","sum","optionId","position","select","onClose","remember","isSearching","status","onKeyDown","labelId","groupIndex","itemIndex"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.49.0_@types+react@19.3.0_react@19.3.0/node_modules/lucide-react/dist/esm/icons/corner-down-left.mjs","../../src/components/CommandPalette/hooks/useActiveIndex.ts","../../src/components/CommandPalette/helpers/fuzzy.ts","../../src/components/CommandPalette/hooks/useEntrySearch.ts","../../src/components/CommandPalette/hooks/useMediaSearch.ts","../../src/components/CommandPalette/hooks/usePaletteGroups.ts","../../src/components/CommandPalette/helpers/recentItems.ts","../../src/components/CommandPalette/hooks/useRecentItems.ts","../../src/components/CommandPalette/Option/index.tsx","../../src/components/CommandPalette/Body/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"corner-down-left\",\n size: 24,\n node: [\n [\"path\", { d: \"M20 4v7a4 4 0 0 1-4 4H4\", key: \"6o5b7l\" }],\n [\"path\", { d: \"m9 10-5 5 5 5\", key: \"1kshq7\" }]\n ]\n};\n__iconData.node;\nconst CornerDownLeft = createLucideIcon(__iconData);\n\nexport { __iconData, CornerDownLeft as default };\n//# sourceMappingURL=corner-down-left.mjs.map\n","import { useCallback, useState, type KeyboardEvent } from 'react';\n\n/**\n * The highlighted row of a list driven from a text input: ↑/↓ move (wrapping), and the highlight returns\n * to the first row whenever `resetKey` changes (new text, new results).\n */\nexport const useActiveIndex = (count: number, resetKey: string) => {\n const [state, setState] = useState({ key: resetKey, index: 0 });\n const current = state.key === resetKey ? state.index : 0;\n const activeIndex = count === 0 ? -1 : Math.min(current, count - 1);\n const setActiveIndex = useCallback((index: number) => setState({ key: resetKey, index }), [resetKey]);\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (count === 0 || (event.key !== 'ArrowDown' && event.key !== 'ArrowUp')) {\n return;\n }\n event.preventDefault();\n const step = event.key === 'ArrowDown' ? 1 : -1;\n setActiveIndex((Math.max(activeIndex, 0) + step + count) % count);\n },\n [count, activeIndex, setActiveIndex],\n );\n return { activeIndex, setActiveIndex, onKeyDown };\n};\n","/** Lower case without accents, so \"cafe\" finds \"Café\". */\nconst normalize = (text: string) => text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n\nconst isWordStart = (text: string, index: number) =>\n index === 0 || !/[\\p{L}\\p{N}]/u.test(text[index - 1] ?? '');\n\n/** Score of one query token against one text: a subsequence match, rewarding word starts and runs. */\nconst scoreToken = (token: string, text: string): number | null => {\n const substring = text.indexOf(token);\n if (substring !== -1) {\n return 10 + token.length * 2 + (isWordStart(text, substring) ? 5 : 0) + (substring === 0 ? 3 : 0);\n }\n let score = 0;\n let from = 0;\n let previous = -2;\n for (const char of token) {\n const index = text.indexOf(char, from);\n if (index === -1) {\n return null;\n }\n score +=\n 1 +\n (index === previous + 1 ? 2 : 0) +\n (isWordStart(text, index) ? 3 : 0) -\n Math.min(index - from, 3) * 0.5;\n previous = index;\n from = index + 1;\n }\n return score;\n};\n\n/**\n * How well `query` finds an item with this label (and keywords): null when it doesn't, higher is better.\n * Every word of the query must match the label or a keyword; the label counts a little more.\n */\nexport const fuzzyScore = (query: string, label: string, keywords: readonly string[] = []): number | null => {\n const tokens = normalize(query).split(/\\s+/).filter(Boolean);\n if (tokens.length === 0) {\n return 0;\n }\n const texts = [normalize(label), ...keywords.map(normalize)];\n let total = 0;\n for (const token of tokens) {\n const scores = texts.flatMap((text, index) => {\n const score = scoreToken(token, text);\n return score === null ? [] : [index === 0 ? score * 1.2 : score];\n });\n if (scores.length === 0) {\n return null;\n }\n total += Math.max(...scores);\n }\n return total;\n};\n\n/** The items `query` finds, best first (stable for equal scores); all of them for an empty query. */\nexport const fuzzyFilter = <T extends { label: string; keywords?: readonly string[] }>(\n query: string,\n items: readonly T[],\n): T[] =>\n items\n .map((item, index) => ({ item, index, score: fuzzyScore(query, item.label, item.keywords) }))\n .filter((entry): entry is { item: T; index: number; score: number } => entry.score !== null)\n .sort((a, b) => b.score - a.score || a.index - b.index)\n .map(({ item }) => item);\n","import type { AdminEntryPage } from '@shapio/client';\nimport type { ModelDefinition, ResolvedModelDefinition } from '@shapio/schema';\nimport { useQueries } from '@tanstack/react-query';\nimport { linkOptions } from '@tanstack/react-router';\nimport { FileText } from 'lucide-react';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useMe } from '@/api/auth';\nimport { entryListQueryOptions } from '@/api/content';\nimport { isSearchable, labelOf, titleFieldOf } from '@/fields/helpers/titles';\nimport { canOnModel } from '@/helpers/modelPermissions';\nimport { useResolvedDefinitions } from '@/hooks/useResolvedDefinitions';\nimport { ENTRY_RESULTS_PER_MODEL, MIN_SEARCH_LENGTH } from '../constants';\nimport type { PaletteItem } from '../types';\n\nconst entryLink = (model: ModelDefinition, entryId: string) =>\n model.kind === 'singleton'\n ? linkOptions({ to: '/content/$modelKey', params: { modelKey: model.apiKey } })\n : linkOptions({ to: '/content/$modelKey/$entryId', params: { modelKey: model.apiKey, entryId } });\n\n/**\n * Entries whose title matches `query`: the list API's `q` per readable place with a text title, the top few\n * of each, in place order. `query` should already be debounced. Only roots are searched: a type's list\n * already holds its kinds' entries, and each result opens under its own kind.\n */\nexport const useEntrySearch = (query: string): { items: PaletteItem[]; isFetching: boolean } => {\n const { t } = useTranslation();\n const { data: me } = useMe();\n const { resolved } = useResolvedDefinitions();\n const q = query.trim();\n const enabled = q.length >= MIN_SEARCH_LENGTH;\n const { models, byKey } = useMemo(() => {\n const all = [...(resolved?.byId.values() ?? [])];\n const searched = (model: ResolvedModelDefinition) =>\n isSearchable(model) && canOnModel(me, model.id, 'read');\n return {\n models: all\n .filter(\n (model) =>\n searched(model) &&\n !model.ancestorIds.some((id) => {\n const ancestor = resolved?.byId.get(id);\n return ancestor !== undefined && searched(ancestor);\n }),\n )\n .sort((a, b) => a.label.localeCompare(b.label)),\n byKey: new Map(all.map((model) => [model.apiKey, model])),\n };\n }, [resolved, me]);\n return useQueries({\n queries: models.map((model) => {\n const title = titleFieldOf(model);\n return {\n ...entryListQueryOptions(model.apiKey, {\n q,\n pageSize: ENTRY_RESULTS_PER_MODEL,\n ...(title ? { fields: [title.apiKey] } : {}),\n }),\n placeholderData: undefined,\n enabled,\n };\n }),\n combine: (results) => ({\n isFetching: enabled && results.some((result) => result.isFetching),\n items: enabled\n ? results.flatMap((result, index) => {\n const model = models[index];\n const page: AdminEntryPage | undefined = result.data;\n return model && page\n ? page.items.map((item): PaletteItem => {\n // A kind's entry, found through its family's root, opens under its own kind.\n const own = byKey.get(item.model) ?? model;\n return {\n id: `entry:${own.id}:${item.id}`,\n label: labelOf(model, item, t('palette.untitled')),\n hint: own.label,\n icon: FileText,\n link: entryLink(own, item.id),\n };\n })\n : [];\n })\n : [],\n }),\n });\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { linkOptions } from '@tanstack/react-router';\nimport { Image } from 'lucide-react';\nimport { useMemo } from 'react';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { adminApi } from '@/api/client';\nimport { queryKeys } from '@/api/queryKeys';\nimport { MEDIA_RESULTS, MIN_SEARCH_LENGTH } from '../constants';\nimport type { PaletteItem } from '../types';\n\n/** Library files whose name or text matches `query` (already debounced), when the admin may read media. */\nexport const useMediaSearch = (query: string): { items: PaletteItem[]; isFetching: boolean } => {\n const canRead = useHasGlobalPermission('media.read');\n const search = query.trim();\n const enabled = canRead && search.length >= MIN_SEARCH_LENGTH;\n const result = useQuery({\n queryKey: [...queryKeys.media.assets({ search }), 'palette'],\n queryFn: () => adminApi.media.assets.list({ search, limit: MEDIA_RESULTS }),\n enabled,\n meta: { silent: true },\n });\n const items = useMemo(\n () =>\n enabled\n ? (result.data?.items ?? []).map((asset): PaletteItem => ({\n id: `media:${asset.id}`,\n label: asset.filename,\n ...(asset.alt ? { keywords: [asset.alt] } : {}),\n icon: Image,\n link: linkOptions({ to: '/media', search: { asset: asset.id } }),\n }))\n : [],\n [enabled, result.data],\n );\n return { items, isFetching: enabled && result.isFetching };\n};\n","import { Clock } from 'lucide-react';\nimport { useMemo } from 'react';\nimport { useDebouncedValue } from '@/hooks/useDebouncedValue';\nimport { SEARCH_DEBOUNCE_MS, STATIC_RESULTS } from '../constants';\nimport { fuzzyFilter } from '../helpers/fuzzy';\nimport type { RecentItem } from '../helpers/recentItems';\nimport { usePaletteStore } from '../store';\nimport type { PaletteGroup, PaletteItem, RegisteredGroup } from '../types';\nimport { useEntrySearch } from './useEntrySearch';\nimport { useMediaSearch } from './useMediaSearch';\n\nconst REGISTERED_ORDER: readonly RegisteredGroup[] = ['page', 'create', 'goto'];\n\nconst toPaletteItem = (item: RecentItem): PaletteItem => ({\n id: `recent:${item.id}`,\n label: item.label,\n ...(item.hint ? { hint: item.hint } : {}),\n icon: Clock,\n link: item.link,\n});\n\n/**\n * What the palette lists for `query`. Empty: actions on this page, recent items, create and go-to. Typing:\n * the registered items it finds (fuzzy, best first), then entries and media from the server.\n */\nexport const usePaletteGroups = (query: string, recent: readonly RecentItem[]) => {\n const registrations = usePaletteStore((state) => state.registrations);\n const debounced = useDebouncedValue(query, SEARCH_DEBOUNCE_MS);\n const { items: entryItems, isFetching: entriesFetching } = useEntrySearch(debounced);\n const { items: mediaItems, isFetching: mediaFetching } = useMediaSearch(debounced);\n const groups = useMemo((): PaletteGroup[] => {\n const registered = new Map<RegisteredGroup, PaletteItem[]>();\n for (const { group, items } of registrations.values()) {\n registered.set(group, [...(registered.get(group) ?? []), ...items]);\n }\n const searching = query.trim() !== '';\n const fromRegistered = REGISTERED_ORDER.map((key) => {\n const items = registered.get(key) ?? [];\n return { key, items: searching ? fuzzyFilter(query, items).slice(0, STATIC_RESULTS) : items };\n });\n const [page, ...rest] = fromRegistered;\n const recentGroup: PaletteGroup = { key: 'recent', items: searching ? [] : recent.map(toPaletteItem) };\n // Server results only for the query they were fetched for, so stale rows never flash under new text.\n const current = debounced.trim() === query.trim();\n return [\n ...(page ? [page] : []),\n recentGroup,\n ...rest,\n { key: 'entries' as const, items: searching && current ? entryItems : [] },\n { key: 'media' as const, items: searching && current ? mediaItems : [] },\n ].filter((group) => group.items.length > 0);\n }, [registrations, query, debounced, recent, entryItems, mediaItems]);\n return { groups, isSearching: entriesFetching || mediaFetching || debounced.trim() !== query.trim() };\n};\n","import type { LinkOptions } from '@tanstack/react-router';\nimport type { PaletteGroupKey } from '../types';\n\n/** A place the admin went through the palette; stored without icons or callbacks. */\nexport type RecentItem = {\n id: string;\n label: string;\n hint?: string;\n group: PaletteGroupKey;\n link: LinkOptions;\n};\n\nexport const RECENT_STORAGE_KEY = 'shapio.palette.recent';\nexport const RECENT_LIMIT = 6;\n\nconst isRecentItem = (value: unknown): value is RecentItem => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n const item = value as Record<string, unknown>;\n return (\n typeof item.id === 'string' &&\n typeof item.label === 'string' &&\n typeof item.group === 'string' &&\n typeof item.link === 'object' &&\n item.link !== null\n );\n};\n\n/**\n * Recent items are a convenience: storage can be missing (private windows, blocked site data) or hold\n * anything, so every read and write is guarded and falls back to nothing.\n */\nexport const readRecentItems = (): RecentItem[] => {\n try {\n const parsed: unknown = JSON.parse(window.localStorage.getItem(RECENT_STORAGE_KEY) ?? '[]');\n return Array.isArray(parsed) ? parsed.filter(isRecentItem).slice(0, RECENT_LIMIT) : [];\n } catch {\n return [];\n }\n};\n\n/** Puts `item` first, without duplicates, and keeps the newest few. Returns the new list. */\nexport const rememberRecentItem = (item: RecentItem): RecentItem[] => {\n const next = [item, ...readRecentItems().filter((existing) => existing.id !== item.id)].slice(\n 0,\n RECENT_LIMIT,\n );\n try {\n window.localStorage.setItem(RECENT_STORAGE_KEY, JSON.stringify(next));\n } catch {\n // Not remembered this time; the palette works without it.\n }\n return next;\n};\n","import { useCallback, useState } from 'react';\nimport { readRecentItems, rememberRecentItem, type RecentItem } from '../helpers/recentItems';\n\n/** Recent palette destinations from this browser (localStorage, guarded), and a way to add one. */\nexport const useRecentItems = () => {\n const [recent, setRecent] = useState<RecentItem[]>(readRecentItems);\n const remember = useCallback((item: RecentItem) => setRecent(rememberRecentItem(item)), []);\n return { recent, remember };\n};\n","import { CornerDownLeft } from 'lucide-react';\nimport { cn } from '@/helpers/cn';\nimport type { PaletteItem } from '../types';\n\ntype OptionProps = {\n id: string;\n item: PaletteItem;\n active: boolean;\n onHover: () => void;\n onSelect: () => void;\n};\n\n/**\n * One result row (`role=\"option\"`). Focus stays in the search input; the active row is announced through\n * `aria-activedescendant`, highlighted with the selection colour and shows the Enter hint.\n */\nexport const Option = ({ id, item, active, onHover, onSelect }: OptionProps) => {\n const Icon = item.icon;\n return (\n <li\n id={id}\n role=\"option\"\n aria-selected={active}\n data-active={active}\n onPointerMove={onHover}\n // Keep focus in the input when a row is clicked.\n onPointerDown={(event) => event.preventDefault()}\n onClick={onSelect}\n className={cn(\n 'flex h-10 cursor-pointer items-center gap-3 rounded-lg px-2 text-sm select-none',\n active && 'bg-accent text-accent-foreground',\n )}\n >\n {Icon ? <Icon aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" /> : null}\n <span className=\"min-w-0 flex-1 truncate\">{item.label}</span>\n {item.hint ? (\n <span className=\"shrink-0 truncate text-meta text-muted-foreground\">{item.hint}</span>\n ) : null}\n <CornerDownLeft\n aria-hidden=\"true\"\n className={cn('size-3.5 shrink-0 text-muted-foreground', active ? 'opacity-100' : 'opacity-0')}\n />\n </li>\n );\n};\n","import { useNavigate } from '@tanstack/react-router';\nimport { Loader2, Search } from 'lucide-react';\nimport { useCallback, useEffect, useId, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { MIN_SEARCH_LENGTH } from '../constants';\nimport { useActiveIndex } from '../hooks/useActiveIndex';\nimport { usePaletteGroups } from '../hooks/usePaletteGroups';\nimport { useRecentItems } from '../hooks/useRecentItems';\nimport { Option } from '../Option';\nimport type { PaletteGroupKey, PaletteItem } from '../types';\n\nconst GROUP_LABEL_KEYS = {\n page: 'palette.groups.page',\n recent: 'palette.groups.recent',\n create: 'palette.groups.create',\n goto: 'palette.groups.goto',\n entries: 'palette.groups.entries',\n media: 'palette.groups.media',\n} as const satisfies Record<PaletteGroupKey, string>;\n\ntype BodyProps = { onClose: () => void };\n\n/**\n * The palette's search field and results: a combobox whose listbox is grouped. Loaded on first open, so the\n * schema helpers it searches with stay out of the first page load.\n */\nexport const Body = ({ onClose }: BodyProps) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const listboxId = useId();\n const [query, setQuery] = useState('');\n const { recent, remember } = useRecentItems();\n const { groups, isSearching } = usePaletteGroups(query, recent);\n const flat = useMemo(\n () => groups.flatMap((group) => group.items.map((item) => ({ group: group.key, item }))),\n [groups],\n );\n /** Where each group starts in `flat`, so every option knows its position. */\n const offsets = useMemo(\n () =>\n groups.map((_, index) => groups.slice(0, index).reduce((sum, group) => sum + group.items.length, 0)),\n [groups],\n );\n const resetKey = `${query}\\u0000${flat.map(({ item }) => item.id).join('|')}`;\n const { activeIndex, setActiveIndex, onKeyDown } = useActiveIndex(flat.length, resetKey);\n const optionId = useCallback((position: number) => `${listboxId}-option-${position}`, [listboxId]);\n\n useEffect(() => {\n if (activeIndex >= 0) {\n document.getElementById(optionId(activeIndex))?.scrollIntoView({ block: 'nearest' });\n }\n }, [activeIndex, optionId]);\n\n const select = (group: PaletteGroupKey, item: PaletteItem) => {\n onClose();\n if (item.link) {\n if (group !== 'page' && group !== 'create') {\n const id = item.id.replace(/^recent:/, '');\n remember({\n id,\n label: item.label,\n ...(item.hint ? { hint: item.hint } : {}),\n group,\n link: item.link,\n });\n }\n void navigate(item.link);\n }\n item.run?.();\n };\n\n const searching = query.trim().length >= MIN_SEARCH_LENGTH && isSearching;\n const status =\n query.trim() === ''\n ? ''\n : searching\n ? t('palette.searching')\n : flat.length === 0\n ? t('palette.noResults', { query: query.trim() })\n : t('palette.resultCount', { count: flat.length });\n\n return (\n <>\n <div className=\"flex items-center gap-3 border-b px-4\">\n <Search aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />\n <input\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-controls={listboxId}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeIndex >= 0 ? optionId(activeIndex) : undefined}\n aria-label={t('palette.inputLabel')}\n placeholder={t('palette.placeholder')}\n autoComplete=\"off\"\n // The dialog focuses its content before this lazily loaded field exists.\n autoFocus\n spellCheck={false}\n value={query}\n onChange={(event) => setQuery(event.target.value)}\n onKeyDown={(event) => {\n onKeyDown(event);\n const active = flat[activeIndex];\n if (event.key === 'Enter' && active && !event.nativeEvent.isComposing) {\n event.preventDefault();\n select(active.group, active.item);\n }\n }}\n className=\"h-12 min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\n />\n {searching ? (\n <Loader2 aria-hidden=\"true\" className=\"size-4 shrink-0 animate-spin text-muted-foreground\" />\n ) : null}\n </div>\n <ul\n id={listboxId}\n role=\"listbox\"\n aria-label={t('palette.results')}\n className=\"max-h-[min(60dvh,26rem)] overflow-y-auto overscroll-contain p-2\"\n >\n {groups.map((group, groupIndex) => {\n const labelId = `${listboxId}-${group.key}`;\n return (\n <li key={group.key} role=\"presentation\">\n <ul role=\"group\" aria-labelledby={labelId}>\n <li\n id={labelId}\n role=\"presentation\"\n className=\"px-2 pt-2 pb-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase\"\n >\n {t(GROUP_LABEL_KEYS[group.key])}\n </li>\n {group.items.map((item, itemIndex) => {\n const position = (offsets[groupIndex] ?? 0) + itemIndex;\n return (\n <Option\n key={item.id}\n id={optionId(position)}\n item={item}\n active={position === activeIndex}\n onHover={() => setActiveIndex(position)}\n onSelect={() => select(group.key, item)}\n />\n );\n })}\n </ul>\n </li>\n );\n })}\n {flat.length === 0 && query.trim() !== '' && !searching ? (\n <li role=\"presentation\" className=\"px-2 py-8 text-center text-sm text-muted-foreground\">\n {t('palette.noResults', { query: query.trim() })}\n </li>\n ) : null}\n </ul>\n <div role=\"status\" className=\"sr-only\">\n {status}\n </div>\n <div className=\"hidden items-center gap-4 border-t bg-muted/50 px-4 py-2 text-xs text-muted-foreground sm:flex\">\n <span>{t('palette.hintMove')}</span>\n <span>{t('palette.hintOpen')}</span>\n <span>{t('palette.hintClose')}</span>\n </div>\n </>\n );\n};\n"],"ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +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{A as r,B as i,D as a,En as o,Ht as s,L as c,Lt as l,M as u,N as d,O as f,R as p,U as m,V as h,Vt as g,_,c as v,ct as y,d as b,dt as x,et as S,f as C,j as w,k as T,ot as E,p as D,rt as O,st as k,tt as A,u as ee,y as te,z as ne}from"./src-CMor9izq.js";import{E as re,g as ie,u as ae,w as oe}from"./auth-BFSvtV59.js";import{A as se,_ as ce,a as le,c as ue,d as j,f as de,i as fe,j as pe,l as me,m as he,n as M,o as ge,p as _e,s as ve,t as N,u as ye,v as be}from"./badge-DEe9tqLS.js";import{n as P,t as xe}from"./createLucideIcon-BOsNKleB.js";import{t as Se}from"./UnsavedChangesGuard-DPgih7BX.js";import{r as Ce,t as F}from"./seo-Bd0sWQMo.js";import{C as we,E as I,t as L}from"./InfoHint-ymRmHKMr.js";import{x as Te}from"./es2015-1nJWBurR.js";import{t as Ee}from"./Trans-B3UWiZaU.js";import{a as De,c as Oe,i as ke,n as Ae,t as je,u as Me}from"./constants-FKg_ke3y.js";import{t as Ne}from"./useSchemaScopeAccess-JXOMx51q.js";import{i as R,n as z}from"./skeleton-Dk-qdg0z.js";import{a as Pe,i as Fe,n as Ie,o as Le,r as Re,s as ze,t as Be}from"./select-JB2Vv7ep.js";import{a as Ve,c as He,i as Ue,l as We,o as Ge,r as Ke,s as qe,t as Je}from"./InlineConfirm-A4IqkrGp.js";import{a as Ye,i as Xe,n as Ze,o as Qe,r as $e,s as et,t as tt,u as nt}from"./StepList-CDZPRd3-.js";import{_ as rt,a as it,c as at,i as ot,n as st,o as ct,r as B,s as lt,t as V}from"./field-BDCHXkZE.js";import{t as ut}from"./ellipsis-Ci0rsbCJ.js";import{t as dt}from"./search-wj7zbkx1.js";import{n as ft,t as pt}from"./stableId-g1uxJGSz.js";import{a as mt,p as ht,r as gt,t as _t}from"./dropdown-menu-B7dJyA8h.js";import{t as vt}from"./plus-cr9ZfO6j.js";import{l as yt,m as bt,v as xt}from"./changeSets-D5i2SgFV.js";import{n as St,t as Ct}from"./useSaveShortcut-DQuNL1uJ.js";import{t as wt}from"./undo-2-DpwwRQTf.js";import{t as H}from"./cn-DVhJ55Mo.js";import{t as Tt}from"./radio-group-Btmx7dlD.js";import{t as Et}from"./switch-DyCRGDs7.js";import{n as Dt,t as Ot}from"./settle-CFU6YpQ0.js";import{t as kt}from"./HintedLabel-Cd9nuSqV.js";import{t as At}from"./TextLink-Dfs5wsc5.js";import{t as jt}from"./SharedGlyph-nsXJPCew.js";import{a as Mt,c as Nt,f as Pt,h as Ft,i as It,l as Lt,o as Rt,p as zt,t as Bt,u as Vt,v as Ht}from"./schema-BMQEabwO.js";import{t as Ut}from"./QueryView-DO9TFWYE.js";import{n as Wt,r as Gt,t as Kt}from"./labels-B83cEX9w.js";import{t as qt}from"./textarea-BBjqMF-Y.js";import{t as Jt}from"./Panel-Bcl09TtM.js";import{a as Yt,c as Xt,i as Zt,n as Qt,o as U,r as $t,s as en,t as tn}from"./followPlural-CHpz-yo4.js";import{t as nn}from"./useModelIndex-D8Q0oM4M.js";import{t as rn}from"./RadioTile-DmKBFkpy.js";var an={name:`eye-off`,size:24,node:[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]};an.node;var on=xe(an),sn={name:`mouse-pointer-click`,size:24,node:[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]};sn.node;var cn=xe(sn),W=e(t(),1),ln=(e,t)=>`${e}:${t}`,G=l()(e=>({key:null,category:`model`,base:null,baseVersion:0,draft:null,selection:{type:`definition`},load:(t,n,r)=>e(e=>{let i=ln(t,n.id),{selection:a}=e;return{key:i,category:t,base:n,baseVersion:r,draft:n,selection:e.key===i&&(a.type===`definition`||n.fields.some(e=>e.id===a.fieldId))?a:{type:`definition`}}}),reset:()=>e({key:null,base:null,baseVersion:0,draft:null,selection:{type:`definition`}}),rebase:(t,n,r)=>e({base:t,baseVersion:n,draft:r}),update:t=>e(e=>e.draft?{draft:t(e.draft)}:{}),updateField:(t,n)=>e(e=>e.draft?{draft:{...e.draft,fields:e.draft.fields.map(e=>e.id===t?n(e):e)}}:{}),select:t=>e({selection:t})})),un=ln,dn=e=>{let{canShare:t}=Ne();return e===`network`&&!t},K=e(n(),1),fn=()=>{let{t:e}=P();return(0,K.jsxs)(Ge,{children:[(0,K.jsx)(Me,{"aria-hidden":`true`}),(0,K.jsx)(qe,{children:e(`models.scope.readOnly`)})]})},pn=({canDiscard:e,canReview:t,reviewing:n,onReview:r,onDiscard:i})=>{let{t:a}=P();return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Je,{tone:`danger`,title:a(`models.builder.discardTitle`),description:a(`models.builder.discardDescription`),confirmLabel:a(`models.builder.discard`),onConfirm:i,trigger:(0,K.jsxs)(R,{type:`button`,variant:`ghost`,disabled:!e,children:[(0,K.jsx)(wt,{"aria-hidden":`true`}),a(`models.builder.discard`)]})}),(0,K.jsx)(ce,{pending:n,pendingLabel:a(`models.builder.planning`),disabled:!t,onClick:r,children:a(`models.builder.review`)})]})},mn=e=>(0,K.jsx)(`div`,{className:`sticky bottom-0 z-20 -mx-4 flex justify-end gap-2 border-t bg-background/95 px-4 py-3 backdrop-blur supports-[backdrop-filter]:bg-background/80 sm:-mx-8 sm:px-8 md:bottom-(--statusbar-h) xl:hidden`,children:(0,K.jsx)(pn,{...e})}),hn=e=>typeof e==`object`&&e?e:{},gn=({changeId:e,onFinished:t,onDismiss:n})=>{let{t:r}=P(),i=zt(e),a=i.data?.status,o=(0,W.useRef)(!1);if((0,W.useEffect)(()=>{a&&Ht.has(a)&&!o.current&&(o.current=!0,t(a))},[a,t]),a===`activated`)return null;if(a===`failed`||a===`cancelled`){let e=hn(i.data?.error);return(0,K.jsxs)(Ge,{variant:`destructive`,children:[(0,K.jsx)(We,{"aria-hidden":`true`}),(0,K.jsx)(He,{children:r(`models.progress.failedTitle`)}),(0,K.jsxs)(qe,{children:[(0,K.jsx)(`p`,{children:r(`models.progress.failedDescription`)}),typeof e.invalidCount==`number`?(0,K.jsx)(`p`,{children:r(`models.progress.invalidCount`,{count:e.invalidCount})}):null,typeof e.reason==`string`?(0,K.jsx)(`p`,{children:e.reason}):null,(0,K.jsx)(R,{type:`button`,size:`sm`,variant:`outline`,className:`mt-2`,onClick:n,children:r(`common.close`)})]})]})}return(0,K.jsxs)(Ge,{variant:`info`,role:`status`,children:[(0,K.jsx)(x,{className:`animate-spin`,"aria-hidden":`true`}),(0,K.jsx)(He,{children:r(`models.progress.runningTitle`)}),(0,K.jsx)(qe,{children:r(`models.progress.runningDescription`)})]})},_n=(e,t)=>v(e??null)===v(t??null),vn=e=>typeof e==`object`&&!!e&&!Array.isArray(e),yn=(e,t,n)=>{if(_n(t,e))return n;if(_n(n,e))return t;if(vn(e)&&vn(t)&&vn(n)){let r=new Set([...Object.keys(e),...Object.keys(t),...Object.keys(n)]),i={};for(let a of r){let r=yn(e[a],t[a],n[a]);r!==void 0&&(i[a]=r)}return i}return t},bn=(e,t)=>e.filter(e=>t.has(e.id)).map(e=>e.id),xn=(e,t,n)=>{let r=new Map(e.map(e=>[e.id,e])),i=new Map(t.map(e=>[e.id,e])),a=new Map(n.map(e=>[e.id,e])),[o,s]=_n(bn(t,r),bn(e,i))?[n,t]:[t,n];return[...new Set([...o,...s].map(e=>e.id))].flatMap(e=>{let t=r.get(e),n=i.get(e),o=a.get(e);return t&&!n?[]:t&&!o?n&&!_n(n,t)?[n]:[]:t?[yn(t,n,o)]:[n??o]})},Sn=(e,t,n)=>{let{fields:r,...i}=e,{fields:a,...o}=t,{fields:s,...c}=n;return{...yn(i,o,c),fields:xn(r,a,s)}},Cn=(e,t)=>{let n=o(),r=G(e=>e.load),i=G(e=>e.rebase);return(0,W.useCallback)(async a=>{let o=await n.fetchQuery({...Bt(e,t),staleTime:0}),{base:s,draft:c}=G.getState();return a===`rebase`&&s&&c?i(o.definition,o.version,Sn(s,c,o.definition)):r(e,o.definition,o.version),o},[n,e,t,r,i])},wn=(e,t,n)=>{let{t:r}=P(),i=Rt(),a=Cn(e,t);return async o=>{let s=G.getState().baseVersion;try{await i.mutateAsync({category:e,id:t,input:{scope:o,version:s}})}catch(e){if(ie(e,`SCHEMA_VERSION_CONFLICT`)){n();return}throw e}await a(`replace`),I.success(r(o===`network`?`models.scope.shared`:`models.scope.kept`))}},q=({title:e,titleId:t,className:n,children:r})=>(0,K.jsxs)(`section`,{className:H(`space-y-4 border-t pt-5 first:border-t-0 first:pt-0`,n),children:[(0,K.jsx)(`h3`,{id:t,className:`text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:e}),(0,K.jsx)(it,{className:`gap-5`,children:r})]}),Tn=({category:e,id:t,label:n,scope:r,blocked:i,locked:a,onConflict:o,parentLabel:s,kindCount:c})=>{let{t:l}=P(),u=ae().data?.site,{canShare:d}=Ne(),f=wn(e,t,o),p=(0,W.useId)(),m=(0,W.useId)(),h=r===`network`,g=h?`site`:`network`,_=u?.name??``,v=s!==void 0,y=l(h?`models.scope.keepDescription`:`models.scope.shareDescription`),b=c>0?` ${l(`models.inheritance.scopeCascades`,{count:c})}`:``;return(0,K.jsxs)(q,{title:l(`contentTypes.availableOn`),children:[(0,K.jsxs)(`p`,{className:`flex items-center gap-1.5 text-sm`,"data-scope":r,children:[h?(0,K.jsx)(jt,{}):null,h?l(`contentTypes.sharedWithAllSites`):l(`models.scope.onlyOn`,{site:_})]}),d&&v?(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,K.jsx)(R,{type:`button`,variant:`outline`,size:`sm`,disabled:!0,"aria-describedby":m,children:l(h?`models.scope.keep`:`models.scope.share`)}),(0,K.jsx)(`p`,{id:m,className:`text-meta text-muted-foreground`,children:l(`models.inheritance.scopeFollowsParent`,{model:s})})]}):null,d&&!v?(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(Je,{tone:`default`,title:h?l(`models.scope.keepTitle`,{label:n,site:_}):l(`models.scope.shareTitle`,{label:n}),description:`${y}${b}`,confirmLabel:l(h?`models.scope.keep`:`models.scope.share`),pendingLabel:l(`common.saving`),onConfirm:()=>f(g),trigger:(0,K.jsx)(R,{type:`button`,variant:`outline`,size:`sm`,disabled:i||a,"aria-describedby":i?p:void 0,children:l(h?`models.scope.keep`:`models.scope.share`)})}),i?(0,K.jsx)(L,{about:l(h?`models.scope.keep`:`models.scope.share`),id:p,children:l(`models.scope.blocked`)}):null]}):null]})},En=(e,t)=>e.flatMap(e=>{if(!e.fieldIds.includes(t))return[e];let n=e.fieldIds.filter(e=>e!==t);return n.length>0?[{...e,fieldIds:n}]:[]}),Dn={enum:{values:[]},relation:{target:``,cardinality:`one`},component:{component:``},dynamiczone:{components:[]}},On=(e,t)=>{let n={id:pt(),apiKey:t.apiKey,label:t.label,type:t.type,settings:t.settings??Dn[t.type]??{},...t.editorId===void 0?{}:{editor:{id:t.editorId}},...t.localized===void 0?{}:{localized:t.localized}};return D({...e,fields:[n]}).fields[0]},J=(e,t,n)=>{let r={...e};return n===void 0?delete r[t]:r[t]=n,r},kn=(e,t,n)=>({...e,settings:J(e.settings,t,n)}),An=(e,t)=>v(D(e))!==v(D(t)),jn=(e,t,n)=>{if(t===n||t<0||n<0||t>=e.length||n>=e.length)return[...e];let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r},Mn=(e,t,n)=>{let r=e.fields.filter(e=>e.id!==t).map(e=>e.type===`slug`&&e.settings.sourceFieldId===t?kn(e,`sourceFieldId`,void 0):e),i={...e.display};if(i.titleFieldId===t&&delete i.titleFieldId,`listFieldIds`in e.display&&e.display.listFieldIds&&(i.listFieldIds=e.display.listFieldIds.filter(e=>e!==t)),`defaultSort`in e.display&&e.display.defaultSort?.fieldId===t&&delete i.defaultSort,e.display.groups){let n=En(e.display.groups,t);n.length>0?i.groups=n:delete i.groups}return Y({...e,fields:r,display:i},n)},Y=(e,t)=>{if(e.kind===`component`)return e;let{canvasFieldIds:n,coverFieldId:r,stripFieldIds:i}=e.display;if(n===void 0&&r===void 0&&i===void 0)return e;let a=U(e,t),o=new Map(a.fields.map(e=>[e.id,e])),s=(e,t)=>{let n=o.get(e);return n!==void 0&&t(n)},l=c(a),f=n?.filter(e=>s(e,e=>d(e,l))),p=r!==void 0&&s(r,u)&&!f?.includes(r)?r:void 0,m=i?.filter(e=>o.has(e)&&e!==p&&!(f??[]).includes(e)),h=J(e.display,`canvasFieldIds`,f);return h=J(h,`coverFieldId`,p),h=J(h,`stripFieldIds`,m),{...e,display:h}},Nn=e=>{if(i(e.editor.id))return e;let t=h(e);return t.some(t=>t.id===e.editor.id)?e:{...e,editor:{id:t[0]?.id??p[e.type],options:{}}}},Pn=(e,t,n)=>{let r=b(e,{previous:t});if(!r.ok)return r.issues;let i=[...n.filter(t=>t.id!==e.id),r.definition];return ee(i).filter(t=>t.definitionId===void 0||t.definitionId===e.id)},X=(e,t)=>e.filter(e=>e.path===t||e.path.startsWith(`${t}/`)),Fn=e=>`/fields/${e}`,Z=({id:e,issues:t})=>{if(t.length===0)return null;let n=[...new Set(t.map($t))];return(0,K.jsx)(ot,{id:e,errors:n.map(e=>({message:e}))})},In=e=>e.fields.filter(t=>{let{extends:n,...r}=e,i={...r,fields:[t],display:{titleFieldId:t.id}};return!C(i).some(e=>e.path===`/display/titleFieldId`)}),Ln=(e,t,n)=>{let r={...e,fields:[...e.fields,t]},i=U(e,n),a=i.display.titleFieldId===void 0&&In(i).length===0&&In(r).some(e=>e.id===t.id)?{...r,display:{...r.display,titleFieldId:t.id}}:r;return a.kind===`component`||a.display.canvasFieldIds===void 0||!w(t)?a:{...a,display:{...a.display,canvasFieldIds:[...a.display.canvasFieldIds,t.id]}}},Rn=(e,t)=>{let n=T(e),r=n.canvas.some(e=>e.id===t.id);return{inDocument:r,lock:n.title?.id===t.id?`title`:e.display.coverFieldId===t.id&&n.cover?.id===t.id?`cover`:r&&n.canvas.length===1?`last`:void 0}},zn=(e,t,n,r)=>{let i=U(e,r),a=T(i).canvas.map(e=>e.id).filter(e=>e!==t),o=a;if(n){let e=new Map(i.fields.map((e,t)=>[e.id,t])),n=e.get(t)??i.fields.length,r=a.findIndex(t=>(e.get(t)??0)>n);o=r===-1?[...a,t]:[...a.slice(0,r),t,...a.slice(r)]}let s=J(e.display,`canvasFieldIds`,o.length>0?o:void 0);return Y({...e,display:s},r)},Bn=e=>{let t=e.fields.filter(e=>!e.deprecated),n=T(e),r=n.canvas.map(e=>e.id),i=t.filter(e=>w(e)&&!r.includes(e.id));return{coverOptions:t.filter(u),canvasOptions:[...n.canvas,...i],canvas:r,stripOptions:n.properties}},Vn=new Set(_.map(a)),Hn=(e,t)=>{let n=new Set(e.fields.map(e=>e.label)),r=new Set(e.fields.map(e=>a(e.apiKey)));for(let e=1;;e+=1){let i=e===1?t:`${t} ${e}`,o=Qt(i),s=a(o);if(!n.has(i)&&!r.has(s)&&!Vn.has(s))return{label:i,apiKey:o}}},Un=(e,t,n,r)=>{let i=e.fields.find(e=>e.id===t);if(!i||i.type===n)return e;let a=On(e,{type:n,label:i.label,apiKey:i.apiKey}),{defaultValue:o,...s}=i,c={...s,type:n,settings:a.settings,editor:a.editor},l=e.fields.map(e=>e.id===t?c:e),u={...e,fields:e.fields.filter(e=>e.id!==t)},d={...e.display},f={...e,fields:l,display:d},p=In(f).some(e=>e.id===t),m=U(u,r);return d.titleFieldId===t&&!p?delete d.titleFieldId:m.display.titleFieldId===void 0&&p&&In(m).length===0&&(d.titleFieldId=t),f},Wn=(e,t,n,r,i)=>{let a=Un(e,t,n,i);if(r?.type!==n)return a;let{settings:o,editor:s}=r,c=r.defaultValue;return{...a,fields:a.fields.map(e=>e.id===t?{...e,settings:o,editor:s,...c===void 0?{}:{defaultValue:c}}:e)}},Gn=()=>{let e=G(e=>e.draft?.kind===`collection`?e.draft.extends:void 0),{index:t}=nn();return{parent:e===void 0?void 0:t.resolve(e)}},Kn=`add-field-button`,qn=e=>`field-${e}-label`,Jn=e=>requestAnimationFrame(e),Yn=()=>{let{t:e}=P(),t=G(e=>e.update),n=G(e=>e.select),[r,i]=(0,W.useState)(null),{parent:a}=Gn();return{add:()=>{let{draft:r}=G.getState();if(!r)return;let o=On(r,{type:`string`,...Hn(U(r,a),e(`models.builder.newField`))});t(e=>Ln(e,o,a)),n({type:`field`,fieldId:o.id}),i(o),Jn(()=>{let e=document.getElementById(qn(o.id));e instanceof HTMLInputElement&&(e.scrollIntoView({block:`center`}),e.focus({preventScroll:!0}),e.select())})},isUntouched:e=>r!==null&&e.id===r.id&&v(e)===v(r),discard:e=>{t(t=>Mn(t,e,a)),n({type:`definition`}),i(null),Jn(()=>document.getElementById(Kn)?.focus())}}},Xn={askAdmin:`seo.builder.askAdmin`,present:`seo.builder.present`},Zn=({disabled:e,onAdd:t,seo:n})=>{let{t:r}=P(),i=(0,W.useId)(),[a,o]=(0,W.useState)(!1),s=(0,K.jsxs)(R,{id:Kn,type:`button`,size:`sm`,onClick:t,disabled:e,className:n?`rounded-r-none`:void 0,children:[(0,K.jsx)(vt,{"aria-hidden":`true`}),r(`models.builder.addField`)]});if(!n)return s;let{availability:c}=n,l=c===`askAdmin`||c===`present`?Xn[c]:null;return(0,K.jsxs)(`div`,{className:`flex`,children:[s,(0,K.jsxs)(_t,{children:[(0,K.jsx)(Je,{tone:`default`,open:a,onOpenChange:o,title:r(`seo.builder.enableTitle`),description:r(`seo.builder.enableDescription`),confirmLabel:r(`seo.builder.enable`),pendingLabel:r(`seo.builder.enabling`),onConfirm:n.enableAndAdd,children:(0,K.jsx)(ht,{asChild:!0,children:(0,K.jsx)(R,{type:`button`,size:`icon-sm`,disabled:e,"aria-label":r(`seo.builder.menu`),className:`rounded-l-none border-l border-primary-foreground/25`,children:(0,K.jsx)(ze,{"aria-hidden":`true`})})})}),(0,K.jsxs)(gt,{align:`end`,className:`w-64`,onCloseAutoFocus:e=>a&&e.preventDefault(),children:[(0,K.jsxs)(mt,{onSelect:t,children:[(0,K.jsx)(vt,{"aria-hidden":`true`}),r(`seo.builder.field`)]}),(0,K.jsxs)(mt,{disabled:c!==`ready`&&c!==`enable`,"aria-describedby":l?i:void 0,onSelect:()=>c===`enable`?o(!0):n.add(),children:[(0,K.jsx)(dt,{"aria-hidden":`true`}),r(`seo.builder.seoFields`)]}),l?(0,K.jsx)(`p`,{id:i,className:`px-2 pb-1.5 pl-8 text-meta text-muted-foreground`,children:r(l)}):null]})]})]})},Qn=e=>`field-handle-${e}`,$n=({field:e,selected:t,showLocalized:n,onSelect:r})=>{let{t:i}=P(),a=Ae[e.type];return(0,K.jsx)(`li`,{"data-selected":t||void 0,className:`flex h-11 items-center rounded-lg pr-1 pl-6 transition-colors hover:bg-muted/50 data-[selected]:bg-accent`,children:(0,K.jsxs)(`button`,{type:`button`,onClick:r,"aria-current":t||void 0,className:`flex h-9 min-w-0 flex-1 items-center gap-2.5 rounded-md px-1.5 text-left outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:[(0,K.jsx)(a,{className:H(`size-4 shrink-0 text-muted-foreground`,t&&`text-accent-foreground`),"aria-hidden":`true`}),(0,K.jsxs)(`span`,{className:`min-w-0 flex-1 leading-tight`,children:[(0,K.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.label}),(0,K.jsx)(`span`,{className:`block truncate font-mono text-2xs text-muted-foreground`,children:e.apiKey})]}),(0,K.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[e.required?(0,K.jsx)(N,{variant:`outline`,children:i(`models.builder.requiredBadge`)}):null,n&&e.localized?(0,K.jsx)(N,{variant:`outline`,children:i(`models.builder.localizedBadge`)}):null,e.public?null:(0,K.jsxs)(`span`,{title:i(`models.builder.hiddenBadge`),children:[(0,K.jsx)(on,{className:`size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`sr-only`,children:i(`models.builder.hiddenBadge`)})]}),(0,K.jsxs)(`span`,{title:i(`models.inheritance.locked`),children:[(0,K.jsx)(se,{className:`size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`sr-only`,children:i(`models.inheritance.locked`)})]})]})]})})},er=e=>e.reduce((e,t)=>{let n=t.inheritedFrom??``,r=e.at(-1);return r?.ownerId===n?r.fields.push(t):e.push({ownerId:n,fields:[t]}),e},[]),tr=({fields:e,showLocalized:t})=>{let{t:n}=P(),{index:r}=nn(),i=G(e=>e.selection),a=G(e=>e.select);return e.length===0?null:(0,K.jsx)(`div`,{className:`space-y-2 border-b pb-2`,children:er(e).map(({ownerId:e,fields:o})=>{let s=r.get(e)?.label??e,c=`inherited-from-${e}`;return(0,K.jsxs)(`section`,{"aria-labelledby":c,children:[(0,K.jsx)(`h3`,{id:c,className:`px-3 pt-1 pb-1 text-meta text-muted-foreground`,children:(0,K.jsx)(Ee,{i18nKey:`models.inheritance.inheritedFromLink`,values:{model:s},components:{modelLink:(0,K.jsx)(At,{to:`/models/$modelId`,params:{modelId:e}})}})}),(0,K.jsx)(`ol`,{className:`space-y-0.5`,"aria-label":n(`models.inheritance.inheritedFrom`,{model:s}),children:o.map(e=>(0,K.jsx)($n,{field:e,selected:i.type===`field`&&i.fieldId===e.id,showLocalized:t,onSelect:()=>a({type:`field`,fieldId:e.id})},e.id))})]},e)})})},nr=({field:e,index:t,total:n,selected:r,hasIssues:i,showLocalized:a,dropTarget:o,disabled:s,onSelect:c,onMove:l,onDragStart:u,onDragOver:d,onDrop:f,onDragEnd:p})=>{let{t:m}=P(),h=Ae[e.type];return(0,K.jsxs)(`li`,{draggable:!s,onDragStart:u,onDragOver:d,onDrop:f,onDragEnd:p,"data-selected":r||void 0,className:H(`group/row flex h-11 items-center gap-0.5 rounded-lg border border-transparent pr-1 transition-colors hover:bg-muted/50 data-[selected]:bg-accent`,o&&`border-dashed border-primary`),children:[(0,K.jsx)(`button`,{type:`button`,id:Qn(e.id),"aria-label":m(`models.builder.reorder`,{label:e.label}),"aria-describedby":`field-reorder-help`,onKeyDown:e=>{e.key===`ArrowUp`&&t>0?(e.preventDefault(),l(t-1)):e.key===`ArrowDown`&&t<n-1&&(e.preventDefault(),l(t+1))},disabled:s,className:`flex h-9 w-6 shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed`,children:(0,K.jsx)(ft,{className:`size-4`,"aria-hidden":`true`})}),(0,K.jsxs)(`button`,{type:`button`,onClick:c,"aria-current":r||void 0,className:`flex h-9 min-w-0 flex-1 items-center gap-2.5 rounded-md px-1.5 text-left outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:[(0,K.jsx)(h,{className:H(`size-4 shrink-0 text-muted-foreground`,r&&`text-accent-foreground`),"aria-hidden":`true`}),(0,K.jsxs)(`span`,{className:`min-w-0 flex-1 leading-tight`,children:[(0,K.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.label}),(0,K.jsx)(`span`,{className:`block truncate font-mono text-2xs text-muted-foreground`,children:e.apiKey})]}),(0,K.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[e.required?(0,K.jsx)(N,{variant:`outline`,children:m(`models.builder.requiredBadge`)}):null,a&&e.localized?(0,K.jsx)(N,{variant:`outline`,children:m(`models.builder.localizedBadge`)}):null,e.public?null:(0,K.jsxs)(`span`,{title:m(`models.builder.hiddenBadge`),children:[(0,K.jsx)(on,{className:`size-4 text-muted-foreground`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`sr-only`,children:m(`models.builder.hiddenBadge`)})]}),i?(0,K.jsxs)(`span`,{title:m(`models.builder.hasProblems`),children:[(0,K.jsx)(We,{className:`size-4 text-destructive`,"aria-hidden":`true`}),(0,K.jsx)(`span`,{className:`sr-only`,children:m(`models.builder.hasProblems`)})]}):null]})]}),(0,K.jsxs)(`span`,{className:`hidden shrink-0 items-center group-focus-within/row:flex group-hover/row:flex`,children:[(0,K.jsx)(R,{type:`button`,variant:`ghost`,size:`icon-xs`,tabIndex:-1,disabled:s||t===0,"aria-label":m(`models.builder.moveUp`,{label:e.label}),onClick:()=>l(t-1),children:(0,K.jsx)(Le,{"aria-hidden":`true`})}),(0,K.jsx)(R,{type:`button`,variant:`ghost`,size:`icon-xs`,tabIndex:-1,disabled:s||t===n-1,"aria-label":m(`models.builder.moveDown`,{label:e.label}),onClick:()=>l(t+1),children:(0,K.jsx)(ze,{"aria-hidden":`true`})})]})]})},rr=[],ir=[],ar=({issues:e,disabled:t,onAdd:n,seo:r,parent:i,inherited:a=ir})=>{let{t:o}=P(),s=G(e=>e.draft?.fields??rr),c=G(e=>e.draft?.kind!==`component`&&e.draft?.localized===!0),l=G(e=>e.selection),u=G(e=>e.select),d=G(e=>e.update),f=(0,W.useRef)(null),[p,m]=(0,W.useState)(null),[h,g]=(0,W.useState)(``),_=(e,t,n)=>{let r=s[e];r&&e!==t&&(d(n=>Y({...n,fields:jn(n.fields,e,t)},i)),g(o(`models.builder.moved`,{label:r.label,position:t+1,total:s.length})),n&&requestAnimationFrame(()=>document.getElementById(Qn(r.id))?.focus()))},v=X(e,`/fields`).filter(e=>!/^\/fields\/\d+/.test(e.path)),y=o(`models.builder.fields`,{count:s.length});return(0,K.jsxs)(Jt,{title:o(`models.builder.fieldsTitle`),flush:!0,actions:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(N,{variant:`secondary`,"aria-hidden":`true`,children:s.length}),(0,K.jsx)(Zn,{disabled:t,onAdd:n,seo:r})]}),bodyClassName:`p-2`,children:[v.length>0?(0,K.jsx)(`div`,{className:`px-3 py-2`,children:(0,K.jsx)(Z,{issues:v})}):null,(0,K.jsx)(tr,{fields:a,showLocalized:c}),a.length>0?(0,K.jsx)(`h3`,{className:`px-3 pt-2 pb-1 text-meta text-muted-foreground`,children:o(`models.inheritance.ownFields`)}):null,s.length===0?(0,K.jsx)(`p`,{className:`px-3 py-6 text-center text-meta text-muted-foreground`,children:a.length>0?o(`models.inheritance.noOwnFields`):o(`models.builder.noFields`)}):(0,K.jsx)(`ol`,{className:`space-y-0.5`,"aria-label":y,children:s.map((n,r)=>(0,K.jsx)(nr,{field:n,index:r,total:s.length,selected:l.type===`field`&&l.fieldId===n.id,hasIssues:X(e,Fn(r)).length>0,showLocalized:c,dropTarget:p===r,disabled:t,onSelect:()=>u({type:`field`,fieldId:n.id}),onMove:e=>_(r,e,!0),onDragStart:e=>{f.current=r,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,n.id)},onDragOver:e=>{f.current!==null&&(e.preventDefault(),m(r))},onDrop:e=>{e.preventDefault(),f.current!==null&&_(f.current,r,!1),f.current=null,m(null)},onDragEnd:()=>{f.current=null,m(null)}},n.id))}),(0,K.jsx)(`p`,{id:`field-reorder-help`,className:`sr-only`,children:o(`models.builder.reorderHelp`)}),(0,K.jsx)(`p`,{"aria-live":`polite`,className:`sr-only`,children:h})]})},or=new Set([`string`,`text`,`slug`,`email`,`url`,`uid`,`date`,`datetime`,`time`,`decimal`,`biginteger`]),sr=e=>or.has(e.type)||e.type===`number`||e.type===`integer`||e.type===`boolean`||e.type===`enum`&&!e.settings.multiple,cr=(e,{hint:t,description:n,issues:r=[]})=>{let i=t?`${e}-hint`:void 0,a=n?`${e}-description`:void 0,o=r.length>0?`${e}-error`:void 0;return{hintId:i,descriptionId:a,errorId:o,describedBy:Dt(i,a,o)}},Q=({id:e,label:t,hint:n,description:r,issues:i=[],disabled:a,value:o,onChange:s,emptyAsUndefined:c=!1,multiline:l=!1,monospace:u=!1,maxLength:d})=>{let f=cr(e,{hint:n,description:r,issues:i}),p={id:e,value:o??``,disabled:a,maxLength:d,"aria-invalid":i.length>0||void 0,"aria-describedby":f.describedBy,onChange:e=>s(c&&e.target.value===``?void 0:e.target.value)};return(0,K.jsxs)(V,{"data-invalid":i.length>0||void 0,children:[(0,K.jsx)(kt,{htmlFor:e,label:t,hint:n,hintId:f.hintId}),l?(0,K.jsx)(qt,{...p,rows:2}):(0,K.jsx)(z,{...p,autoComplete:`off`,spellCheck:!u,className:H(u&&`font-mono`)}),r?(0,K.jsx)(B,{id:f.descriptionId,children:r}):null,(0,K.jsx)(Z,{id:f.errorId,issues:i})]})},lr=()=>{let e=G(e=>e.draft),{parent:t}=Gn();return{resolved:(0,W.useMemo)(()=>e?U(e,t):null,[e,t]),parent:t}},ur=je.flatMap(e=>e.types),dr=e=>E.includes(e),fr=({labelledBy:e,value:t,notes:n,dropsValues:r,disabled:i,onChange:a})=>{let{t:o}=P(),s=(0,W.useId)();return(0,K.jsxs)(`div`,{className:`@container space-y-3`,children:[(0,K.jsx)(Tt,{value:t,disabled:i,onValueChange:e=>dr(e)&&a(e),"aria-labelledby":e,"aria-describedby":s,className:`grid-cols-4 gap-2 @xl:grid-cols-6`,children:ur.map(e=>(0,K.jsx)(rn,{value:e,variant:`tile`,icon:Ae[e],label:o(`models.dataTypes.${e}.name`),description:o(`models.dataTypes.${e}.description`)},e))}),(0,K.jsxs)(`p`,{id:s,className:`text-meta text-muted-foreground`,children:[(0,K.jsx)(`span`,{className:`font-semibold text-foreground`,children:o(`models.dataTypes.${t}.name`)}),` · `,o(`models.dataTypes.${t}.description`)]}),n.length>0?(0,K.jsx)(`p`,{role:`status`,className:H(`text-meta font-medium`,r?`text-destructive`:`text-warning`),children:n.join(` `)}):null]})},pr=(e,t)=>{if(e.trim()===``)return;let n=Number(e);if(Number.isFinite(n))return t?Math.trunc(n):n},mr=({id:e,label:t,hint:n,description:r,issues:i=[],disabled:a,value:o,onChange:s,integer:c=!1,min:l,max:u})=>{let[d,f]=(0,W.useState)(o===void 0?``:String(o)),[p,m]=(0,W.useState)(o);o!==p&&(m(o),pr(d,c)!==o&&f(o===void 0?``:String(o)));let h=cr(e,{hint:n,description:r,issues:i});return(0,K.jsxs)(V,{"data-invalid":i.length>0||void 0,children:[(0,K.jsx)(kt,{htmlFor:e,label:t,hint:n,hintId:h.hintId}),(0,K.jsx)(z,{id:e,type:`number`,inputMode:c?`numeric`:`decimal`,step:c?1:`any`,min:l,max:u,value:d,disabled:a,"aria-invalid":i.length>0||void 0,"aria-describedby":h.describedBy,onChange:e=>{let t=pr(e.target.value,c);f(e.target.value),m(t),s(t)}}),r?(0,K.jsx)(B,{id:h.descriptionId,children:r}):null,(0,K.jsx)(Z,{id:h.errorId,issues:i})]})},hr=`__unset__`,$=({id:e,label:t,hint:n,description:r,issues:i=[],disabled:a,value:o,options:s,onChange:c,unsetLabel:l,placeholder:u})=>{let{t:d}=P(),f=cr(e,{hint:n,description:r,issues:i}),p=o!==void 0&&s.some(e=>e.value===o);return(0,K.jsxs)(V,{"data-invalid":i.length>0||void 0,children:[(0,K.jsx)(kt,{htmlFor:e,label:t,hint:n,hintId:f.hintId}),(0,K.jsxs)(Be,{value:p?o:l?hr:``,onValueChange:e=>c(e===hr?void 0:e),disabled:a,children:[(0,K.jsx)(Fe,{id:e,className:`w-full`,"aria-invalid":i.length>0||void 0,"aria-describedby":f.describedBy,children:(0,K.jsx)(Pe,{placeholder:u??d(`models.choose`)})}),(0,K.jsxs)(Ie,{children:[l?(0,K.jsx)(Re,{value:hr,children:l}):null,s.map(e=>(0,K.jsx)(Re,{value:e.value,children:e.label},e.value))]})]}),r?(0,K.jsx)(B,{id:f.descriptionId,children:r}):null,(0,K.jsx)(Z,{id:f.errorId,issues:i})]})},gr=({field:e,issues:t,disabled:n,onChange:r})=>{let{t:i}=P(),a={id:`field-${e.id}-default`,label:i(`models.builder.defaultValue`),hint:i(`models.builder.defaultValueHint`),issues:t,disabled:n},o=e.defaultValue;return e.type===`number`||e.type===`integer`?(0,K.jsx)(mr,{...a,integer:e.type===`integer`,value:typeof o==`number`?o:void 0,onChange:r}):e.type===`boolean`?(0,K.jsx)($,{...a,value:typeof o==`boolean`?String(o):void 0,options:[{value:`true`,label:i(`models.builder.booleanTrue`)},{value:`false`,label:i(`models.builder.booleanFalse`)}],unsetLabel:i(`models.notSet`),onChange:e=>r(e===void 0?void 0:e===`true`)}):e.type===`enum`?(0,K.jsx)($,{...a,value:typeof o==`string`?o:void 0,options:e.settings.values.filter(e=>e.value!==``).map(e=>({value:e.value,label:e.label||e.value})),unsetLabel:i(`models.notSet`),onChange:r}):(0,K.jsx)(Q,{...a,value:typeof o==`string`?o:void 0,onChange:r,emptyAsUndefined:!0})},_r=e=>e?.enum?.every(e=>typeof e==`string`)?e.enum:void 0,vr=e=>{let t=_r(e);if(t)return{kind:`choice`,options:t};switch(e.type){case`boolean`:return{kind:`boolean`};case`integer`:return{kind:`integer`,...e.minimum===void 0?{}:{minimum:e.minimum},...e.maximum===void 0?{}:{maximum:e.maximum}};case`number`:return{kind:`number`,...e.minimum===void 0?{}:{minimum:e.minimum}};case`string`:return{kind:`text`,...e.maxLength===void 0?{}:{maxLength:e.maxLength}};case`array`:{let t=_r(e.items);return t?{kind:`choices`,options:t}:e.items?.type===`string`?{kind:`textList`}:{kind:`other`}}default:return{kind:`other`}}},yr=e=>{let t=e,n=new Set(t.required??[]);return Object.entries(t.properties??{}).map(([e,t])=>({key:e,control:vr(t),required:n.has(e)}))},br=({id:e,label:t,hint:n,description:r,issues:i=[],disabled:a,value:o,options:s,onChange:c,locked:l=[]})=>{let u=(e,t)=>{let n=new Set(o);t?n.add(e):n.delete(e),c(s.map(e=>e.value).filter(e=>n.has(e)))};return(0,K.jsxs)(at,{"data-invalid":i.length>0||void 0,className:`gap-3`,children:[(0,K.jsxs)(lt,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[t,n?(0,K.jsx)(L,{about:t,children:n}):null]}),r?(0,K.jsx)(B,{children:r}):null,(0,K.jsx)(`div`,{"data-slot":`checkbox-group`,className:`grid gap-3 @sm/field-group:grid-cols-2`,children:s.map(t=>{let n=`${e}-${t.value}`;return(0,K.jsxs)(V,{orientation:`horizontal`,children:[(0,K.jsx)(Ue,{id:n,checked:o.includes(t.value),onCheckedChange:e=>u(t.value,e===!0),disabled:a||l.includes(t.value)}),(0,K.jsx)(ct,{htmlFor:n,className:`font-normal`,children:t.label})]},t.value)})}),(0,K.jsx)(Z,{issues:i})]})},xr=({id:e,label:t,hint:n,description:r,issues:i=[],disabled:a,checked:o,onChange:s,layout:c=`row`})=>{let l=cr(e,{hint:n,description:r,issues:i}),u=(0,K.jsx)(Et,{id:e,checked:o,onCheckedChange:s,disabled:a,"aria-invalid":i.length>0||void 0,"aria-describedby":l.describedBy,className:H(c===`compact`&&`mt-0.5 self-start`)});return(0,K.jsxs)(V,{orientation:`horizontal`,"data-invalid":i.length>0||void 0,children:[c===`compact`?u:null,(0,K.jsxs)(st,{children:[(0,K.jsx)(kt,{htmlFor:e,label:t,hint:n,hintId:l.hintId}),r?(0,K.jsx)(B,{id:l.descriptionId,children:r}):null,(0,K.jsx)(Z,{id:l.errorId,issues:i})]}),c===`row`?u:null]})},Sr=/\s*,\s*/,Cr=({idPrefix:e,property:{key:t,control:n,required:r},value:i,onChange:a,issues:o,description:s,hint:c,disabled:l})=>{let{t:u}=P(),d={id:`${e}-${t}`,label:Wt(t),issues:o,disabled:l,description:s,hint:c};switch(n.kind){case`boolean`:return(0,K.jsx)(xr,{...d,checked:i===!0,onChange:e=>a(e||void 0)});case`integer`:case`number`:return(0,K.jsx)(mr,{...d,integer:n.kind===`integer`,min:n.minimum,max:n.kind===`integer`?n.maximum:void 0,value:typeof i==`number`?i:void 0,onChange:a});case`choice`:return(0,K.jsx)($,{...d,value:typeof i==`string`?i:void 0,options:n.options.map(e=>({value:e,label:Gt(e)})),onChange:a,...r?{}:{unsetLabel:u(`models.notSet`)}});case`choices`:return(0,K.jsx)(br,{...d,value:Array.isArray(i)?i:[],options:n.options.map(e=>({value:e,label:Gt(e)})),onChange:e=>a(e.length>0?e:void 0)});case`textList`:return(0,K.jsx)(Q,{...d,description:s??u(`models.commaSeparated`),value:Array.isArray(i)?i.join(`, `):``,onChange:e=>{let t=(e??``).split(Sr).filter(Boolean);a(t.length>0?t:void 0)}});case`text`:return(0,K.jsx)(Q,{...d,maxLength:n.maxLength,value:typeof i==`string`?i:void 0,onChange:a,emptyAsUndefined:!r});default:return null}},wr=({field:e,path:t,issues:n,disabled:r,onChange:a})=>{let{t:o}=P(),{id:s,options:c}=e.editor,l=h(e).map(e=>e.id),u=i(s)||!l.includes(s)?[...l,s]:l,d=ne.get(s),f=d?yr(d.optionsSchema):[];return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)($,{id:`field-${e.id}-editor`,label:o(`models.builder.editor`),hint:o(`models.builder.editorHint`),value:s,options:u.map(e=>({value:e,label:Kt(e)})),onChange:e=>e&&a({id:e,options:{}}),issues:X(n,`${t}/editor/id`),disabled:r}),f.map(i=>(0,K.jsx)(Cr,{idPrefix:`field-${e.id}-editor-options`,property:i,value:c[i.key],onChange:e=>a({id:s,options:J(c,i.key,e)}),issues:X(n,`${t}/editor/options/${i.key}`),disabled:r},`${s}-${i.key}`))]})},Tr={required:{label:`models.builder.required`,hint:`models.builder.requiredHint`},unique:{label:`models.builder.unique`,hint:`models.builder.uniqueHint`},localized:{label:`models.builder.fieldLocalized`,hint:`models.builder.fieldLocalizedHint`},public:{label:`models.builder.public`,hint:`models.builder.publicHint`},filterable:{label:`models.builder.filterable`,hint:`models.builder.indexHint`},sortable:{label:`models.builder.sortable`,hint:`models.builder.indexHint`},deprecated:{label:`models.builder.deprecated`,hint:`models.builder.deprecatedHint`}},Er=`models.builder.publicComponentHint`,Dr=(e,t)=>{let n=t.kind===`component`,r=t.kind!==`component`&&t.localized,i=!n&&k.has(e.type)&&!(e.type===`enum`&&e.settings.multiple);return[`required`,...y.has(e.type)&&!n?[`unique`]:[],...r?[`localized`]:[],`public`,...i?[`filterable`,`sortable`]:[],`deprecated`]},Or=({field:e,draft:t,at:n,disabled:r,onChange:i})=>{let{t:a}=P();return(0,K.jsx)(`div`,{className:`grid gap-x-6 gap-y-4 @md/field-group:grid-cols-2`,children:Dr(e,t).map(o=>(0,K.jsx)(xr,{id:`field-${e.id}-${o}`,layout:`compact`,label:a(Tr[o].label),hint:a(o===`public`&&t.kind===`component`?Er:Tr[o].hint),checked:e[o],onChange:e=>i({[o]:e}),issues:n(o),disabled:r},o))})},kr=(e,t)=>({...e,display:J(e.display,`groups`,t.length>0?t:void 0)}),Ar=(e,t)=>e.display.groups?.find(e=>e.fieldIds.includes(t))?.id,jr=(e,t,n)=>{let r=e.display.groups??[];return Ar(e,t)===n||n&&!r.some(e=>e.id===n)?e:kr(e,En(r,t).map(e=>e.id===n?{...e,fieldIds:[...e.fieldIds,t]}:e))},Mr=(e,t,n)=>kr(e,[...En(e.display.groups??[],t),{...n,fieldIds:[t]}]),Nr=(e,t,n)=>kr(e,(e.display.groups??[]).map(e=>e.id===t?{...e,label:n}:e)),Pr=(e,t)=>kr(e,(e.display.groups??[]).filter(e=>e.id!==t)),Fr=({id:e,disabled:t,onCreate:n,onCancel:r})=>{let{t:i}=P(),[a,o]=(0,W.useState)(``),s=a.trim(),c=()=>{s&&n(s)};return(0,K.jsxs)(V,{children:[(0,K.jsx)(ct,{htmlFor:e,children:i(`models.builder.groupName`)}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(z,{id:e,value:a,autoComplete:`off`,maxLength:200,autoFocus:!0,disabled:t,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),c()):e.key===`Escape`&&(e.preventDefault(),r())}}),(0,K.jsx)(R,{type:`button`,size:`sm`,disabled:t||!s,onClick:c,children:i(`common.create`)}),(0,K.jsx)(R,{type:`button`,variant:`ghost`,size:`sm`,onClick:r,children:i(`common.cancel`)})]})]})},Ir=`__new_group__`,Lr=({model:e,field:t,disabled:n})=>{let{t:r}=P(),i=G(e=>e.update),[a,o]=(0,W.useState)(!1),s=`field-${t.id}-group`,c=e=>i(t=>t.kind===`component`?t:e(t)),l=[...(e.display.groups??[]).map(e=>({value:e.id,label:e.label})),{value:Ir,label:r(`models.builder.groupNew`)}];return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)($,{id:s,label:r(`models.builder.group`),hint:r(`models.builder.groupHint`),value:a?Ir:Ar(e,t.id),options:l,unsetLabel:r(`models.builder.groupNone`),disabled:n,onChange:e=>{o(e===Ir),e!==Ir&&c(n=>jr(n,t.id,e))}}),a?(0,K.jsx)(Fr,{id:`${s}-new`,disabled:n,onCancel:()=>o(!1),onCreate:e=>{c(n=>Mr(n,t.id,{id:pt(),label:e})),o(!1)}}):null]})},Rr=(e,t,n)=>t.type===n?null:et({kind:`field.type`,definitionId:e.id,fieldId:t.id,from:t.type,to:n},{before:e,after:Un(e,t.id,n)}),zr={conversion:`models.builder.typeConverted`,validation:`models.builder.typeChecked`},Br=e=>e===`conversion`||e===`validation`?zr[e]:`models.builder.typeKept`,Vr=(e,t,n)=>{let{t:r}=P(),i=(0,W.useMemo)(()=>e&&t?Rr(e,t,n):null,[e,t,n]);if(!i||!t)return{notes:[],dropsValues:!1};if(i.dropsValues)return{notes:[r(`models.builder.typeDropsValues`,{from:r(`models.dataTypes.${t.type}.name`),to:r(`models.dataTypes.${n}.name`)})],dropsValues:!0};let a=[r(`models.builder.typeAllowed`),r(Br(i.category))];return i.breaking&&a.push(r(`models.builder.typeBreaking`)),i.destructive&&a.push(r(`models.builder.typeDestructive`)),{notes:a,dropsValues:!1}},Hr={title:`models.builder.placement.lockedTitle`,cover:`models.builder.placement.lockedCover`,last:`models.builder.placement.lockedLast`},Ur=({model:e,field:t,issues:n,disabled:r})=>{let{t:i}=P(),a=G(e=>e.update),o=G(e=>e.draft?.kind===`component`?void 0:e.draft?.display.canvasFieldIds),{parent:s}=Gn(),{inDocument:c,lock:l}=Rn(e,t),u=o?.indexOf(t.id)??-1;return(0,K.jsx)(xr,{id:`field-${t.id}-in-document`,label:i(`models.builder.placement.label`),hint:i(`models.builder.placement.hint`),description:l?i(Hr[l]):void 0,issues:u===-1?[]:X(n,`/display/canvasFieldIds/${u}`),checked:c,disabled:r||l!==void 0,onChange:e=>a(n=>n.kind===`component`?n:zn(n,t.id,e,s))})},Wr=({idPrefix:e,field:t,path:n,issues:r,disabled:i,onChange:a})=>{let{t:o}=P(),s=t.settings.values,c=(e,t)=>a(s.map((n,r)=>r===e?{...n,...t}:n)),l=r.filter(e=>e.path===n);return(0,K.jsxs)(at,{className:`gap-3`,"data-invalid":l.length>0||void 0,children:[(0,K.jsxs)(lt,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[o(`models.properties.values`),(0,K.jsx)(L,{about:o(`models.properties.values`),children:o(`models.builder.enumValuesHint`)})]}),s.length>0?(0,K.jsx)(`ol`,{className:`space-y-2`,children:s.map((t,l)=>{let u=X(r,`${n}/${l}`),d=`${e}-value-${l}`,f=`${e}-label-${l}`;return(0,K.jsxs)(`li`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`label`,{htmlFor:f,className:`sr-only`,children:o(`models.builder.enumLabel`,{position:l+1})}),(0,K.jsx)(z,{id:f,value:t.label,placeholder:o(`models.builder.enumLabelPlaceholder`),disabled:i,onChange:e=>c(l,{label:e.target.value})}),(0,K.jsx)(`label`,{htmlFor:d,className:`sr-only`,children:o(`models.builder.enumValue`,{position:l+1})}),(0,K.jsx)(z,{id:d,value:t.value,placeholder:o(`models.builder.enumValuePlaceholder`),className:`font-mono`,spellCheck:!1,disabled:i,"aria-invalid":u.length>0||void 0,onChange:e=>c(l,{value:e.target.value})}),(0,K.jsx)(R,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:i,"aria-label":o(`models.builder.enumRemove`,{position:l+1}),onClick:()=>a(s.filter((e,t)=>t!==l)),children:(0,K.jsx)(rt,{"aria-hidden":`true`})})]}),(0,K.jsx)(Z,{issues:u})]},l)})}):null,(0,K.jsx)(Z,{issues:l}),(0,K.jsxs)(R,{type:`button`,variant:`outline`,size:`sm`,className:`w-fit`,disabled:i,onClick:()=>a([...s,{value:``,label:``}]),children:[(0,K.jsx)(vt,{"aria-hidden":`true`}),o(`models.builder.enumAdd`)]})]})},Gr=new Set([`formatVersion`]),Kr={date:`models.formats.date`,datetime:`models.formats.datetime`,time:`models.formats.time`,decimal:`models.formats.decimal`,biginteger:`models.formats.biginteger`},qr=new Set([`string`,`text`]),Jr=`json`,Yr=({field:e,draft:t,path:n,issues:r,disabled:i,onChange:a})=>{let{t:o}=P(),{definitions:s}=Mt(),c=e.settings,l=`${n}/settings`,u=`field-${e.id}-settings`,d=[...(s??[]).map(({definition:e})=>e).filter(e=>e.id!==t.id),t],f=d.filter(e=>e.kind!==`component`),p=d.filter(e=>e.kind===`component`&&e.id!==t.id),h=e=>({value:e.id,label:e.label}),g=e=>X(r,`${l}/${e}`),_=n=>{let{key:s}=n,d={id:`${u}-${s}`,issues:g(s),disabled:i};if(e.type===`enum`&&s===`values`)return(0,K.jsx)(Wr,{idPrefix:d.id,field:e,path:`${l}/values`,issues:r,disabled:i,onChange:e=>a(`values`,e)},s);if(s===`target`)return(0,K.jsx)($,{...d,label:o(`models.properties.target`),value:c.target,options:f.map(h),onChange:e=>a(`target`,e??``),placeholder:o(`models.builder.chooseModel`)},s);if(s===`component`)return(0,K.jsx)($,{...d,label:o(`models.properties.component`),value:c.component,options:p.map(h),onChange:e=>a(`component`,e??``),placeholder:o(`models.builder.chooseComponent`),...p.length===0?{description:o(`models.builder.noComponents`)}:{}},s);if(s===`components`)return(0,K.jsx)(br,{...d,label:o(`models.properties.components`),value:c.components??[],options:p.map(h),onChange:e=>a(`components`,e),...p.length===0?{description:o(`models.builder.noComponents`)}:{}},s);if(s===`sourceFieldId`)return(0,K.jsx)($,{...d,label:o(`models.properties.sourceFieldId`),hint:o(`models.builder.sourceFieldHint`),value:c.sourceFieldId,options:t.fields.filter(t=>t.id!==e.id&&qr.has(t.type)).map(e=>({value:e.id,label:e.label})),onChange:e=>a(`sourceFieldId`,e),unsetLabel:o(`models.notSet`)},s);if(e.type===`code`&&s===`validate`&&c.language!==Jr&&c.validate!==!0)return null;let m=n.control.kind===`text`&&e.type in Kr?Kr[e.type]:void 0;return(0,K.jsx)(Cr,{idPrefix:u,property:e.type===`code`&&s===`language`?{...n,required:!0}:n,value:c[s],onChange:t=>{a(s,t),e.type===`code`&&s===`language`&&t!==Jr&&a(`validate`,void 0)},issues:d.issues,disabled:i,description:m===void 0?void 0:o(m),hint:s===`pattern`?o(`models.builder.patternHint`):void 0},s)},v=yr(m[e.type]).filter(e=>!Gr.has(e.key)),y=new Set(v.map(e=>e.key)),b=X(r,l).filter(e=>!y.has(e.path.slice(l.length+1).split(`/`)[0]??``));return v.length===0?(0,K.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:o(`models.builder.noSettings`)}):(0,K.jsxs)(K.Fragment,{children:[v.map(_),(0,K.jsx)(Z,{issues:b})]})},Xr={full:`models.builder.widthFull`,"two-thirds":`models.builder.widthTwoThirds`,half:`models.builder.widthHalf`,third:`models.builder.widthThird`},Zr=e=>A.some(t=>t===e),Qr=({field:e,issues:t,disabled:n})=>{let{t:r}=P(),i=G(e=>e.updateField);return(0,K.jsx)($,{id:`field-${e.id}-width`,label:r(`models.builder.width`),hint:r(`models.builder.widthHint`),value:e.width??`full`,options:A.map(e=>({value:e,label:r(Xr[e])})),onChange:t=>i(e.id,e=>J(e,`width`,Zr(t)&&t!==`full`?t:void 0)),issues:t,disabled:n})},$r=new Set([`label`,`apiKey`,`description`,`required`,`unique`,`filterable`,`sortable`,`public`,`localized`,`deprecated`,`defaultValue`,`editor`,`settings`,`width`]),ei=({field:e,index:t,issues:n,disabled:i,untouched:a,onDiscard:o,inheritedFrom:s})=>{let{t:c}=P(),l=G(e=>e.draft),{resolved:u,parent:d}=lr(),f=i||s!==void 0,p=G(e=>e.base),m=G(e=>e.updateField),h=G(e=>e.update),g=G(e=>e.select),_=p?.fields.find(t=>t.id===e.id),v=Vr(p,_,e.type);if(!l||!u)return null;let y=Fn(t),b=e=>s?[]:X(n,`${y}/${e}`),x=u.kind===`component`?void 0:u,S=x!==void 0&&r(x)===`form`,C=x!==void 0&&!e.deprecated&&(S||b(`width`).length>0),w=(s?[]:X(n,y)).filter(e=>{let t=e.path.slice(y.length+1).split(`/`)[0]??``;return!$r.has(t)||t===`width`&&!C}),T=t=>m(e.id,e=>({...e,...t})),E=t=>`field-${e.id}-${t}`,D=_!==void 0&&_.apiKey!==e.apiKey,O=p!==null&&_===void 0,k=e.label||c(`models.builder.untitled`),A=t=>{let n=O&&e.apiKey===Qt(e.label);T({label:t,...n?{apiKey:Qt(t)}:{}})};return(0,K.jsx)(`div`,{onKeyDown:e=>{e.key===`Escape`&&!e.nativeEvent.defaultPrevented&&a&&e.target instanceof Node&&e.currentTarget.contains(e.target)&&(e.preventDefault(),o())},children:(0,K.jsxs)(Jt,{"aria-label":c(`models.builder.fieldProperties`,{label:k}),flush:!0,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 border-b px-5 py-4`,children:[(0,K.jsx)(ve,{icon:Ae[e.type]}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center gap-x-2.5 gap-y-1`,children:[(0,K.jsx)(`h2`,{className:`min-w-0 truncate text-base font-semibold`,children:k}),(0,K.jsx)(N,{variant:`secondary`,children:c(`models.dataTypes.${e.type}.name`)})]}),s?null:(0,K.jsxs)(R,{type:`button`,variant:`destructive-ghost`,size:`sm`,disabled:f,onClick:()=>{h(t=>Mn(t,e.id,d)),g({type:`definition`})},children:[(0,K.jsx)(rt,{"aria-hidden":`true`}),c(`models.builder.removeField`)]})]}),(0,K.jsxs)(`div`,{className:`space-y-5 p-5`,children:[s?(0,K.jsxs)(`p`,{className:`flex items-start gap-2 rounded-lg bg-muted px-3 py-2.5 text-meta text-muted-foreground`,children:[(0,K.jsx)(se,{"aria-hidden":`true`,className:`mt-0.5 size-3.5 shrink-0`}),(0,K.jsx)(`span`,{children:(0,K.jsx)(Ee,{i18nKey:`models.inheritance.fieldLocked`,values:{model:s.label},components:{modelLink:(0,K.jsx)(At,{to:`/models/$modelId`,params:{modelId:s.id}})}})})]}):null,(0,K.jsx)(Z,{issues:w}),(0,K.jsx)(q,{title:c(`models.builder.dataType`),titleId:E(`type-heading`),children:(0,K.jsx)(fr,{labelledBy:E(`type-heading`),value:e.type,...v,disabled:f,onChange:t=>h(n=>Y(Wn(n,e.id,t,_,d),d))})}),(0,K.jsxs)(q,{title:c(`models.builder.general`),children:[(0,K.jsxs)(`div`,{className:`grid items-start gap-5 @lg/field-group:grid-cols-2`,children:[(0,K.jsx)(Q,{id:qn(e.id),label:c(`models.label`),value:e.label,onChange:e=>A(e??``),issues:b(`label`),disabled:f}),(0,K.jsx)(Q,{id:E(`apiKey`),label:c(`models.apiKey`),hint:c(`models.fieldApiKeyHint`),description:D?c(`models.builder.apiKeyRenameWarning`):void 0,value:e.apiKey,onChange:e=>T({apiKey:e??``}),issues:b(`apiKey`),disabled:f,monospace:!0})]}),(0,K.jsx)(Q,{id:E(`description`),label:c(`models.builder.helpText`),value:e.description,onChange:e=>T({description:e}),issues:b(`description`),disabled:f,emptyAsUndefined:!0,multiline:!0}),x&&!e.deprecated&&!S?(0,K.jsx)(Ur,{model:x,field:e,issues:n,disabled:f}):null,x&&l.kind!==`component`&&!e.deprecated?(0,K.jsxs)(`div`,{className:`grid items-start gap-5 @lg/field-group:grid-cols-2`,children:[(0,K.jsx)(Lr,{model:l,field:e,disabled:f}),C?(0,K.jsx)(Qr,{field:e,issues:b(`width`),disabled:f}):null]}):null]}),(0,K.jsx)(q,{title:c(`models.builder.options`),children:(0,K.jsx)(Or,{field:e,draft:u,at:b,disabled:f,onChange:T})}),(0,K.jsxs)(q,{title:c(`models.builder.settings`),children:[(0,K.jsx)(Yr,{field:e,draft:u,path:y,issues:n,disabled:f,onChange:(t,n)=>h(r=>Y({...r,fields:r.fields.map(r=>r.id===e.id?Nn(kn(r,t,n)):r)},d))}),sr(e)?(0,K.jsx)(gr,{field:e,issues:b(`defaultValue`),disabled:f,onChange:t=>m(e.id,e=>{let n={...e,defaultValue:t};return t===void 0&&delete n.defaultValue,n})}):null]}),(0,K.jsx)(q,{title:c(`models.builder.editorSection`),children:(0,K.jsx)(wr,{field:e,path:y,issues:n,disabled:f,onChange:e=>T({editor:e})})})]})]})})},ti=({draft:e,version:t,dirty:n,issueCount:r,deleteBlocked:i,kindCount:a,onDelete:o,...s})=>{let{t:c}=P(),{modelKey:l=e.apiKey}=pe({strict:!1}),u=e.kind===`component`?[{label:c(`shell.nav.components`),link:oe({to:`/develop/components`})}]:[{label:e.label,link:oe({to:`/content/$modelKey`,params:{modelKey:l}})},{label:c(`place.tabs.structure`)}];return(0,K.jsx)(fe,{sticky:!0,breadcrumb:u,title:e.label||c(`models.builder.untitled`),badge:n||r>0?(0,K.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[n?(0,K.jsx)(M,{tone:`warning`,label:c(`models.builder.unsaved`)}):null,r>0?(0,K.jsx)(M,{tone:`danger`,label:c(`models.builder.problems`,{count:r})}):null]}):null,meta:e.kind===`collection`?c(`models.builder.subtitleCollection`,{apiKey:e.apiKey,pluralApiKey:te(e),version:t}):c(`models.builder.subtitle`,{apiKey:e.apiKey,version:t}),actions:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:`hidden items-center gap-2 xl:flex`,children:(0,K.jsx)(pn,{...s})}),(0,K.jsxs)(_t,{children:[(0,K.jsx)(ht,{asChild:!0,children:(0,K.jsx)(R,{variant:`ghost`,size:`icon`,"aria-label":c(`models.builder.more`),children:(0,K.jsx)(ut,{"aria-hidden":`true`})})}),(0,K.jsx)(gt,{align:`end`,children:(0,K.jsxs)(mt,{variant:`destructive`,disabled:i||a>0,onSelect:o,children:[(0,K.jsx)(rt,{"aria-hidden":`true`}),c(`models.builder.delete`),a>0?(0,K.jsx)(`span`,{className:`ml-auto pl-3 text-xs text-muted-foreground`,children:c(`models.inheritance.hasKinds`,{count:a})}):null]})})]})]})})},ni=`SEO`,ri=e=>e.fields.some(e=>e.type===`component`&&e.settings.component===`f3905a00-d2a3-4c62-899a-c894bfd6cb9b`),ii=(e,t=e)=>On(e,{type:`component`,...Hn(t,ni),settings:{component:g,repeatable:!1},editorId:s,localized:e.kind!==`component`&&e.localized}),ai=()=>{let{t:e}=P(),t=Lt(`component`),{canShare:n}=Ne(),{parent:r}=Gn(),i=G(e=>e.draft?ri(U(e.draft,r)):!1),a=G(e=>e.update),o=G(e=>e.select),s=Ce(),c=t.data?.some(e=>e.definition.id===g),l=i?`present`:c===void 0?`loading`:c?`ready`:n?`enable`:`askAdmin`,u=()=>{let{draft:t}=G.getState(),n=t?U(t,r):void 0;if(!t||!n||ri(n))return;let i=ii(t,n);a(e=>Ln(e,i,r)),o({type:`field`,fieldId:i.id}),requestAnimationFrame(()=>{document.getElementById(qn(i.id))?.scrollIntoView({block:`center`})}),I.success(e(`seo.builder.added`))};return{availability:l,add:u,enableAndAdd:async()=>{try{await s.mutateAsync()}catch(t){we(t,`enabling the SEO component`);let n=F(t);I.error(n?e(`seo.builder.conflict`,{label:n.label,apiKey:n.apiKey}):Te(t));return}u()},enabling:s.isPending}},oi=[],si=()=>{let e=G(e=>e.draft),t=G(e=>e.base),{definitions:n}=Mt(),r=(0,W.useDeferredValue)(e);return{issues:(0,W.useMemo)(()=>r&&t?Pn(r,t,(n??[]).map(({definition:e})=>e)):oi,[r,t,n])}},ci=()=>{let e=G(e=>e.draft),t=G(e=>e.base);return(0,W.useMemo)(()=>!!(e&&t&&An(e,t)),[e,t])},li=(e,t,n)=>{let r=Ft().data?.definitions.find(t=>t.id===e);return{changedElsewhere:!n&&r!==void 0&&r.version>t,remoteVersion:r?.version}},ui=e=>ie(e,`SCHEMA_VERSION_CONFLICT`),di=(e,t,n)=>{let{t:r}=P(),i=Pt(),a=bt(),[o,s]=(0,W.useState)({step:`idle`}),[c,l]=(0,W.useState)(void 0),u=e=>{if(ui(e)){s({step:`conflict`});return}I.error(Te(e))},d=async()=>{I.success(r(`models.updated`));try{await n(`rebase`)}catch(e){we(e,`reloading the definition after a schema change`),I.error(Te(e))}},f=async()=>{try{let n=await It(e,t);l(n?.id),n&&!Ht.has(n.status)&&I.info(r(`models.builder.changeStarted`))}catch(e){we(e,`looking up the schema change the builder shipped`),I.error(Te(e))}};return{state:o,review:async()=>{let{draft:n,baseVersion:r}=G.getState();if(n){a.reset();try{let a=await i.mutateAsync({category:e,id:t,definition:n,expectedVersion:r});s({step:`review`,preview:a})}catch(e){u(e)}}},reviewing:i.isPending,confirm:async n=>{let{draft:i,baseVersion:o}=G.getState();if(i)try{let c=await a.mutateAsync({definitionId:t,input:{category:e,definition:i,baseVersion:o},acknowledgement:n,title:r(`changes.builderSetTitle`,{label:i.label})});s({step:`idle`}),c.status===`shipping`?await f():await d()}catch(e){ui(e)&&s({step:`conflict`})}},applying:a.isPending,applyError:a.error,resetStep:()=>s({step:`idle`}),runningChangeId:c,dismissChange:()=>l(void 0),onChangeFinished:async e=>{e===`activated`&&(l(void 0),await d())}}},fi=()=>{let e=G(e=>e.selection),t=G(e=>e.draft?.fields);if(e.type!==`field`||!t)return{field:void 0,index:-1};let n=t.findIndex(t=>t.id===e.fieldId);return{field:t[n],index:n}},pi=e=>({value:e.id,label:e.label}),mi=({model:e,parent:t,issues:n,disabled:r})=>{let{t:i}=P(),a=G(e=>e.update),o=(e,n)=>a(r=>Y({...r,display:J(r.display,e,n)},t)),s=e=>X(n,`/display/${e}`),c=Bn(e);return(0,K.jsxs)(K.Fragment,{children:[c.coverOptions.length>0?(0,K.jsx)($,{id:`definition-cover-field`,label:i(`models.builder.coverField`),hint:i(`models.builder.coverFieldHint`),value:e.display.coverFieldId,options:c.coverOptions.map(pi),onChange:e=>o(`coverFieldId`,e),unsetLabel:i(`models.builder.automatic`),issues:s(`coverFieldId`),disabled:r}):null,c.canvasOptions.length>0?(0,K.jsx)(br,{id:`definition-canvas-fields`,label:i(`models.builder.canvasFields`),hint:i(`models.builder.canvasFieldsHint`),value:c.canvas,options:c.canvasOptions.map(pi),locked:c.canvas.length===1?c.canvas:[],onChange:e=>o(`canvasFieldIds`,e.length>0?e:void 0),issues:s(`canvasFieldIds`),disabled:r}):null,c.stripOptions.length>0?(0,K.jsx)(br,{id:`definition-strip-fields`,label:i(`models.builder.stripFields`),hint:i(`models.builder.stripFieldsHint`),value:e.display.stripFieldIds??[],options:c.stripOptions.map(pi),onChange:e=>o(`stripFieldIds`,e.length>0?e:void 0),issues:s(`stripFieldIds`),disabled:r}):null]})},hi=`/display/groups`,gi=({model:e,issues:t,disabled:n})=>{let{t:r}=P(),i=G(e=>e.update),a=e.display.groups??[],o=t.filter(e=>e.path===hi),s=e=>i(t=>t.kind===`component`?t:e(t));return(0,K.jsxs)(at,{className:`gap-3`,"data-invalid":t.length>0||void 0,children:[(0,K.jsxs)(lt,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[r(`models.builder.groups`),(0,K.jsx)(L,{about:r(`models.builder.groups`),children:r(`models.builder.groupsHint`)})]}),a.length===0?(0,K.jsx)(B,{children:r(`models.builder.groupsEmpty`)}):null,a.length>0?(0,K.jsx)(`ol`,{className:`space-y-2`,children:a.map((e,i)=>{let a=X(t,`${hi}/${i}`),o=`definition-group-${i}`,c=a.length>0?`${o}-error`:void 0;return(0,K.jsxs)(`li`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`label`,{htmlFor:o,className:`sr-only`,children:r(`models.builder.groupLabel`,{position:i+1})}),(0,K.jsx)(z,{id:o,value:e.label,autoComplete:`off`,maxLength:200,disabled:n,"aria-invalid":a.length>0||void 0,"aria-describedby":c,onChange:t=>s(n=>Nr(n,e.id,t.target.value))}),(0,K.jsx)(R,{type:`button`,variant:`ghost`,size:`icon-sm`,disabled:n,"aria-label":r(`models.builder.groupRemove`,{label:e.label||i+1}),onClick:()=>s(t=>Pr(t,e.id)),children:(0,K.jsx)(rt,{"aria-hidden":`true`})})]}),(0,K.jsx)(Z,{id:c,issues:a})]},e.id)})}):null,(0,K.jsx)(Z,{issues:o})]})},_i={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`},vi=({model:e})=>{let{t}=P(),{sections:n}=f(e),r=n.reduce((e,t)=>e+t.fields.length,0);return r===0?null:(0,K.jsxs)(`div`,{className:`rounded-md border bg-muted/40 p-3`,children:[(0,K.jsx)(`p`,{className:`sr-only`,children:t(`models.builder.formWireframe`,{count:r})}),(0,K.jsx)(`div`,{"aria-hidden":`true`,className:`space-y-3`,children:n.map(e=>(0,K.jsxs)(`div`,{className:`space-y-1.5`,children:[e.label?(0,K.jsx)(`p`,{className:`truncate border-b pb-1 text-xs font-semibold tracking-wide text-muted-foreground uppercase`,children:e.label}):null,(0,K.jsx)(`div`,{className:`grid grid-cols-6 gap-1.5`,children:e.fields.map(e=>(0,K.jsx)(`div`,{className:H(`truncate rounded-sm border bg-background px-1.5 py-1 text-xs text-muted-foreground`,_i[e.width??`full`]),children:e.label||t(`models.builder.untitled`)},e.id))})]},e.id))})]})},yi={document:`models.builder.layoutDocument`,form:`models.builder.layoutForm`},bi=({model:e,issues:t,disabled:n,onChange:i})=>{let{t:a}=P(),o=r(e);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)($,{id:`definition-layout`,label:a(`models.builder.layout`),hint:a(`models.builder.layoutHint`),value:o,options:S.map(e=>({value:e,label:a(yi[e])})),onChange:e=>i(e===`form`?e:void 0),issues:t,disabled:n}),o===`form`?(0,K.jsx)(vi,{model:e}):null]})},xi={asc:`models.builder.sortAscending`,desc:`models.builder.sortDescending`},Si=[`coverFieldId`,`canvasFieldIds`,`stripFieldIds`],Ci=({definition:e,own:t,parent:n,issues:i,disabled:a})=>{let{t:o}=P(),s=G(e=>e.update),c=(e,t)=>s(r=>Y({...r,display:J(r.display,e,t)},n)),l=e=>X(i,`/display/${e}`),u=e=>({value:e.id,label:e.label}),{display:d}=e,f=(0,K.jsx)($,{id:`definition-title-field`,label:o(`models.builder.titleField`),hint:o(`models.builder.titleFieldHint`),value:d.titleFieldId,options:In(e).map(u),onChange:e=>c(`titleFieldId`,e),unsetLabel:o(`models.notSet`),issues:l(`titleFieldId`),disabled:a});if(e.kind===`component`)return f;let p=e.display.defaultSort,m=e.fields.filter(e=>e.sortable),h=r(e);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(bi,{model:e,issues:l(`layout`),disabled:a,onChange:e=>c(`layout`,e)}),f,(0,K.jsx)($,{id:`definition-sort-field`,label:o(`models.builder.sortField`),hint:o(`models.builder.sortFieldHint`),value:p?.fieldId,options:m.map(u),onChange:e=>c(`defaultSort`,e?{fieldId:e,direction:p?.direction??`asc`}:void 0),unsetLabel:o(`models.builder.sortNewest`),issues:l(`defaultSort`),disabled:a}),p?(0,K.jsx)($,{id:`definition-sort-direction`,label:o(`models.builder.sortDirection`),value:p.direction,options:O.map(e=>({value:e,label:o(xi[e])})),onChange:e=>e&&c(`defaultSort`,{...p,direction:e}),disabled:a}):null,(0,K.jsx)(br,{id:`definition-list-fields`,label:o(`models.builder.listColumns`),value:e.display.listFieldIds??[],options:e.fields.map(u),onChange:e=>c(`listFieldIds`,e.length>0?e:void 0),issues:l(`listFieldIds`),disabled:a}),h===`document`?(0,K.jsx)(mi,{model:e,parent:n,issues:i,disabled:a}):(0,K.jsx)(Z,{issues:Si.flatMap(e=>l(e))}),t.kind===`component`?null:(0,K.jsx)(gi,{model:t,issues:l(`groups`),disabled:a})]})},wi=({issues:e,disabled:t,scopeSection:n,parentChoices:r,kindCount:i})=>{let{t:a}=P(),o=G(e=>e.draft),s=G(e=>e.base),c=G(e=>e.update),{resolved:l,parent:u}=lr(),{index:d}=nn();if(!o||!l)return null;let f=e=>c(t=>({...t,...e})),p=t=>X(e,`/${t}`),m=s!==null&&s.apiKey!==o.apiKey,h=s?.kind===`collection`&&o.kind===`collection`&&te(s)!==te(o),g=e=>c(t=>t.kind===`collection`?{...t,apiKey:e,pluralApiKey:tn(t.apiKey,e,t.pluralApiKey)}:{...t,apiKey:e}),_=e=>c(t=>{if(t.kind!==`collection`)return t;let{extends:n,...r}=t,i=d.get(e??``);return e===void 0||!i||i.kind!==`collection`?e===void 0?r:{...r,extends:e}:{...r,extends:e,localized:i.localized,draftAndPublish:i.draftAndPublish}}),v=o.kind===`collection`?o.extends:void 0,y=v===void 0?void 0:d.get(v)?.label??v,b=[...v!==void 0&&!r.some(e=>e.id===v)?[{value:v,label:y??v}]:[],...r.map(e=>({value:e.id,label:e.label}))],x=s?.kind===`collection`?s.extends:void 0,S=s!==null&&x!==v,C=y===void 0?i>0?a(`models.inheritance.flagsSharedWithKinds`,{count:i}):void 0:a(`models.inheritance.flagsFollowParent`,{model:y}),w=C!==void 0;return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[n,(0,K.jsxs)(q,{title:a(`models.builder.general`),children:[(0,K.jsx)(Q,{id:`definition-label`,label:a(`models.label`),value:o.label,onChange:e=>f({label:e??``}),issues:p(`label`),disabled:t}),(0,K.jsx)(Q,{id:`definition-apiKey`,label:a(`models.apiKey`),hint:a(`models.apiKeyHint`),description:m?a(`models.builder.apiKeyRenameWarning`):void 0,value:o.apiKey,onChange:e=>g(e??``),issues:p(`apiKey`),disabled:t,monospace:!0}),o.kind===`collection`?(0,K.jsx)(Q,{id:`definition-pluralApiKey`,label:a(`models.pluralApiKey`),hint:a(`models.pluralApiKeyHint`),description:h?a(`models.builder.pluralApiKeyRenameWarning`):void 0,value:o.pluralApiKey,onChange:e=>f({pluralApiKey:e}),issues:p(`pluralApiKey`),disabled:t,emptyAsUndefined:!0,monospace:!0}):null,o.kind===`collection`?(0,K.jsx)($,{id:`definition-extends`,label:a(`models.inheritance.extends`),hint:a(`models.inheritance.extendsHint`),description:S?a(`models.inheritance.reparentWarning`):void 0,value:v,options:b,unsetLabel:a(`models.inheritance.noParent`),onChange:_,issues:p(`extends`),disabled:t}):null,(0,K.jsx)(Q,{id:`definition-description`,label:a(`models.descriptionLabel`),value:o.description,onChange:e=>f({description:e}),issues:p(`description`),disabled:t,emptyAsUndefined:!0,multiline:!0}),o.kind===`component`?(0,K.jsx)(Q,{id:`definition-category`,label:a(`models.builder.category`),hint:a(`models.builder.categoryHint`),value:o.category,onChange:e=>f({category:e}),issues:p(`category`),disabled:t,emptyAsUndefined:!0}):null]}),o.kind===`component`?null:(0,K.jsxs)(q,{title:a(`models.builder.content`),children:[(0,K.jsx)(xr,{id:`definition-localized`,label:a(`models.localized`),hint:a(`models.builder.modelLocalizedHint`),description:C,checked:o.localized,onChange:e=>f({localized:e}),issues:p(`localized`),disabled:t||w&&p(`localized`).length===0}),(0,K.jsx)(xr,{id:`definition-draftAndPublish`,label:a(`models.builder.draftAndPublish`),hint:a(`models.builder.draftAndPublishHint`),description:C,checked:o.draftAndPublish,onChange:e=>f({draftAndPublish:e}),issues:p(`draftAndPublish`),disabled:t||w&&p(`draftAndPublish`).length===0})]}),(0,K.jsx)(q,{title:a(`models.builder.display`),children:(0,K.jsx)(Ci,{definition:l,own:o,parent:u,issues:e,disabled:t})})]})},Ti=({hasIssues:e})=>{let{t}=P(),n=G(e=>e.draft),{index:i}=nn();if(!n)return null;let a=ke[n.kind],o=n.kind===`collection`?n.extends:void 0;return(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,K.jsxs)(N,{variant:`outline`,children:[(0,K.jsx)(a,{"aria-hidden":`true`}),t(De[n.kind])]}),o===void 0?null:(0,K.jsx)(N,{variant:`outline`,children:t(`models.inheritance.extendsSummary`,{model:i.get(o)?.label??o})}),n.kind===`component`?null:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(N,{variant:`outline`,children:t(n.localized?`models.builder.summaryLocalized`:`models.builder.summaryNotLocalized`)}),(0,K.jsx)(N,{variant:`outline`,children:t(n.draftAndPublish?`models.builder.summaryDrafts`:`models.builder.summaryNoDrafts`)}),r(n)===`form`?(0,K.jsx)(N,{variant:`outline`,children:t(`models.builder.summaryForm`)}):null]}),n.kind===`collection`?(0,K.jsxs)(N,{variant:`outline`,className:`font-mono font-medium`,children:[(0,K.jsxs)(`span`,{className:`sr-only`,children:[t(`models.pluralApiKey`),` `]}),te(n)]}):null,e?(0,K.jsx)(M,{tone:`danger`,size:`sm`,label:t(`models.builder.hasProblems`)}):null]})},Ei=e=>!/^\/fields(\/|$)/.test(e.path),Di=({issues:e,disabled:t,scopeSection:n,parentChoices:r,kindCount:i})=>{let{t:a}=P(),[o,s]=(0,W.useState)(!1),c=(0,W.useId)();return(0,K.jsx)(Jt,{title:a(`models.builder.definitionSettings`),actions:(0,K.jsx)(R,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-expanded":o,"aria-controls":c,"aria-label":a(`models.builder.definitionSettings`),onClick:()=>s(e=>!e),children:(0,K.jsx)(ze,{"aria-hidden":`true`,className:H(`transition-transform`,o&&`rotate-180`)})}),children:(0,K.jsx)(`div`,{id:c,children:o?(0,K.jsx)(wi,{issues:e,disabled:t,scopeSection:n,parentChoices:r,kindCount:i}):(0,K.jsx)(Ti,{hasIssues:e.some(Ei)})})})},Oi=({hasFields:e})=>{let{t}=P();return(0,K.jsx)(Jt,{"aria-label":t(`models.builder.propertiesLabel`),className:`hidden xl:block`,children:e?(0,K.jsx)(ge,{size:`panel`,icon:cn,title:t(`models.builder.selectField`)}):(0,K.jsx)(ge,{size:`panel`,icon:St,title:t(`models.builder.startTitle`)})})},ki=({reason:e,dirty:t,onReload:n,onKeepEdits:r})=>{let{t:i}=P(),a=t||e===`conflict`;return(0,K.jsxs)(Ge,{variant:`warning`,role:e===`conflict`?`alert`:`status`,className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,K.jsx)(xt,{className:`mt-0.5 size-4 shrink-0`,"aria-hidden":`true`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(He,{children:i(`models.remote.title`)}),(0,K.jsx)(qe,{children:i(a?`models.remote.chooseDescription`:`models.remote.description`)})]})]}),a?(0,K.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,K.jsx)(R,{type:`button`,size:`sm`,variant:`outline`,onClick:r,children:i(`models.remote.keepEdits`)}),(0,K.jsx)(R,{type:`button`,size:`sm`,variant:`outline`,onClick:n,children:i(`models.remote.reloadLatest`)})]}):(0,K.jsx)(R,{type:`button`,size:`sm`,variant:`outline`,onClick:n,children:i(`models.remote.reload`)})]})},Ai=({changes:e,before:t,after:n,definitionName:r})=>{let{t:i}=P();return(0,K.jsx)(`div`,{className:`space-y-4`,children:Xe(e).map(({bucket:e,changes:a})=>(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(Ze,{bucket:e}),(0,K.jsx)(`span`,{className:`text-meta text-muted-foreground tabular-nums`,children:a.length})]}),(0,K.jsx)(`ul`,{"aria-label":i(Oe[e]),className:`divide-y rounded-lg border`,children:a.map((e,i)=>(0,K.jsx)(`li`,{className:`px-3 py-2.5 text-sm`,children:Qe(e,t,n,{definitionName:r})},`${e.kind}-${e.fieldId??``}-${e.property??``}-${i}`))})]},e))})},ji=()=>{let{t:e}=P(),t=re(),n=yt();return{reviewInChangeSet:async(r,i)=>{let{plan:a}=r,o=await Ot(n.mutateAsync({definitionId:a.definitionId,newSetTitle:e(`changes.builderSetTitle`,{label:i.label}),input:{category:a.kind===`component`?`component`:`model`,definition:i,baseVersion:a.fromVersion}}));o.ok&&await t({to:`/changes/$changeSetId`,params:{changeSetId:o.value},ignoreBlocker:!0})},saving:n.isPending,saveError:n.error,resetSave:n.reset}},Mi={breaking:`models.plan.summary.breaking`,prerequisites:`models.plan.summary.prerequisites`,live:`models.plan.summary.live`,metadata:`models.plan.summary.metadata`},Ni=({preview:e,before:t,after:n,resolvedBefore:r=t,resolvedAfter:i=n,definitionName:a,applying:o,error:s,onApply:c,onClose:l})=>{let{t:u}=P(),[d,f]=(0,W.useState)(!1),[p,m]=(0,W.useState)(!1),[h,g]=(0,W.useState)(e),{reviewInChangeSet:_,saving:v,saveError:y,resetSave:b}=ji(),S=o||v;e!==void 0&&e!==h&&(g(e),f(!1),m(!1),b());let C=h?.plan,w=C?.summary,T=w?$e(w):`metadata`,E=w?.breaking??!1,D=w?.destructive??!1,O=h?Ye(h.impact.steps):!1,k=C&&C.kind!==`component`?C.affectedModelIds.filter(e=>e!==C.definitionId):[],A=k.flatMap(e=>a?.(e)??[]),ee=!O&&(!E||d)&&(!D||p);return(0,K.jsx)(ue,{open:e!==void 0,onOpenChange:e=>!e&&!S&&l(),children:(0,K.jsxs)(ye,{size:`lg`,children:[(0,K.jsxs)(_e,{className:`pr-14`,children:[(0,K.jsx)(he,{children:u(`models.plan.title`,{label:n?.label??``})}),(0,K.jsx)(j,{children:u(Mi[T])})]}),C&&h?(0,K.jsxs)(`form`,{noValidate:!0,className:`flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),c({...E?{acknowledgeBreaking:!0}:{},...D?{acknowledgeDestructive:!0}:{}})},children:[(0,K.jsxs)(me,{className:`space-y-6 pt-1`,children:[(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 rounded-lg bg-muted px-3 py-2.5`,children:[(0,K.jsx)(Ze,{bucket:T}),(0,K.jsx)(`span`,{className:`text-meta text-muted-foreground`,children:u(`models.plan.affected`,{count:h.impact.affectedHeads})}),k.length>0?(0,K.jsx)(`span`,{className:`text-meta text-muted-foreground`,children:A.length===k.length?u(`models.inheritance.appliesToKindsNamed`,{count:k.length,names:A.join(`, `)}):u(`models.inheritance.appliesToKinds`,{count:k.length})}):null]}),(0,K.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`plan-changes`,children:[(0,K.jsx)(`h3`,{id:`plan-changes`,className:`text-sm font-semibold`,children:u(`models.plan.changes`,{count:C.changes.length})}),(0,K.jsx)(Ai,{changes:C.changes,before:r,after:i,definitionName:a})]}),C.prerequisites.length>0?(0,K.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`plan-prerequisites`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`h3`,{id:`plan-prerequisites`,className:`text-sm font-semibold`,children:u(`models.plan.prerequisites`)}),(0,K.jsx)(L,{about:u(`models.plan.prerequisites`),children:u(`models.plan.prerequisitesHint`)})]}),(0,K.jsx)(tt,{phase:`before`,steps:C.prerequisites,impacts:h.impact.steps,before:r,after:i,definitionName:a})]}):null,C.followUps.length>0?(0,K.jsxs)(`section`,{className:`space-y-3`,"aria-labelledby":`plan-follow-ups`,children:[(0,K.jsx)(`h3`,{id:`plan-follow-ups`,className:`text-sm font-semibold`,children:u(`models.plan.followUps`)}),(0,K.jsx)(tt,{phase:`after`,steps:C.followUps,before:r,after:i,definitionName:a})]}):null,E||D?(0,K.jsxs)(`fieldset`,{className:`space-y-3 rounded-lg border border-warning/40 bg-warning-muted/40 p-4`,children:[(0,K.jsx)(`legend`,{className:`px-1 text-sm font-semibold text-warning`,children:u(`models.plan.acknowledge`)}),E?(0,K.jsxs)(V,{orientation:`horizontal`,children:[(0,K.jsx)(Ue,{id:`plan-ack-breaking`,checked:d,onCheckedChange:e=>f(e===!0)}),(0,K.jsx)(ct,{htmlFor:`plan-ack-breaking`,className:`font-normal`,children:u(`models.plan.acknowledgeBreaking`)})]}):null,D?(0,K.jsxs)(V,{orientation:`horizontal`,children:[(0,K.jsx)(Ue,{id:`plan-ack-destructive`,checked:p,onCheckedChange:e=>m(e===!0)}),(0,K.jsx)(ct,{htmlFor:`plan-ack-destructive`,className:`font-normal`,children:u(`models.plan.acknowledgeDestructive`)})]}):null]}):null,O?(0,K.jsx)(`p`,{id:`plan-blocked`,className:`text-meta text-warning`,children:u(`models.plan.blockedByCheck`)}):null,(0,K.jsx)(Ve,{error:s??y})]}),(0,K.jsxs)(de,{children:[(0,K.jsx)(R,{type:`button`,variant:`outline`,onClick:l,disabled:S,children:u(`common.cancel`)}),(0,K.jsxs)(R,{type:`button`,variant:`outline`,disabled:S||!n,"aria-busy":v||void 0,onClick:()=>n&&void _(h,n),children:[v?(0,K.jsx)(x,{className:`animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):(0,K.jsx)(nt,{"aria-hidden":`true`}),u(v?`common.saving`:`changes.reviewInChangeSet`)]}),(0,K.jsx)(ce,{pending:o,pendingLabel:u(`models.plan.applying`),disabled:!ee||v,"aria-describedby":O?`plan-blocked`:void 0,children:u(`models.plan.apply`)})]})]}):null]})})},Pi=({category:e,id:t,detail:n})=>{let{t:r}=P(),i=re(),a=un(e,t),o=G(e=>e.key),s=G(e=>e.draft),c=G(e=>e.base),l=G(e=>e.baseVersion),u=G(e=>e.load),d=G(e=>e.reset),f=Cn(e,t),p=di(e,t,f),m=ci(),{issues:h}=si(),{field:g,index:_}=fi(),v=G(e=>e.selection),{index:y}=nn(),{resolved:b,parent:x}=lr(),{parentChoices:S}=Zt(n,e===`model`?t:void 0),{locked:C,reason:w}=Xt(),T=dn(n.scope),{multiSite:E}=Ne(),D=Vt(),O=Yn(),k=ai(),[A,ee]=(0,W.useState)(!1),[te,ne]=(0,W.useState)(void 0),[ie,ae]=(0,W.useState)(void 0),[oe,se]=(0,W.useState)(!1),ce=(0,W.useRef)(n);(0,W.useEffect)(()=>(u(e,ce.current.definition,ce.current.version),d),[a,e,u,d]);let ue=p.runningChangeId??n.pendingChange?.id,j=ue===te?void 0:ue,de=j!==void 0&&j!==ie,{changedElsewhere:fe}=li(t,l,de||p.applying),pe=C||T||de,me=m&&h.length===0&&!pe&&!p.reviewing,he=p.state.step===`review`,M=p.state.step===`conflict`||oe;if(Ct(()=>void p.review(),me&&!he),o!==a||!s)return(0,K.jsx)(be,{});let ge=e=>void f(e).catch(e=>{we(e,`reloading the definition`),I.error(Te(e))}),_e=C||T,ve=e===`model`,N=ve?y.childrenOf(t).length:0,ye=ve?y.descendants(t).length:0,xe=x?.label,Ce=Yt(x),F=g===void 0&&v.type===`field`?Ce.find(e=>e.id===v.fieldId):void 0,L=e=>y.get(e)?.label,Ee=c&&ve?y.resolve(c.id)??c:c,De=E?(0,K.jsx)(Tn,{category:e,id:t,label:s.label,scope:n.scope,blocked:m||de||p.applying,locked:C,onConflict:()=>se(!0),parentLabel:xe,kindCount:ye}):null,Oe={canDiscard:m,canReview:me,reviewing:p.reviewing,onReview:()=>void p.review(),onDiscard:()=>{c&&u(e,c,l)}};return(0,K.jsxs)(le,{width:`full`,children:[(0,K.jsx)(Se,{when:m}),(0,K.jsx)(ti,{...Oe,draft:s,version:l,dirty:m,issueCount:h.length,deleteBlocked:pe,kindCount:N,onDelete:()=>ee(!0)}),C?(0,K.jsx)(en,{reason:w}):null,T?(0,K.jsx)(fn,{}):null,fe||M?(0,K.jsx)(ki,{reason:M?`conflict`:`remote`,dirty:m,onReload:()=>{p.resetStep(),se(!1),ge(`replace`)},onKeepEdits:()=>{p.resetStep(),se(!1),ge(`rebase`)}},M?`conflict`:`remote`):null,j?(0,K.jsx)(gn,{changeId:j,onFinished:e=>{e!==`activated`&&ae(j),p.onChangeFinished(e)},onDismiss:()=>{ne(j),p.dismissChange()}},j):null,(0,K.jsxs)(`div`,{className:`grid min-w-0 gap-6 xl:grid-cols-[22.5rem_minmax(0,1fr)] xl:items-start`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 space-y-6`,children:[(0,K.jsx)(Di,{issues:h,disabled:_e,scopeSection:De,parentChoices:S,kindCount:N}),(0,K.jsx)(ar,{issues:h,disabled:_e,onAdd:O.add,seo:s.kind===`component`?void 0:k,parent:x,inherited:Ce})]}),F?(0,K.jsx)(ei,{field:F,index:-1,issues:h,disabled:!0,untouched:!1,onDiscard:()=>void 0,inheritedFrom:{id:F.inheritedFrom??``,label:L(F.inheritedFrom??``)??xe??``}},F.id):g?(0,K.jsx)(ei,{field:g,index:_,issues:h,disabled:_e,untouched:O.isUntouched(g),onDiscard:()=>O.discard(g.id)},g.id):(0,K.jsx)(Oi,{hasFields:s.fields.length+Ce.length>0})]}),(0,K.jsx)(mn,{...Oe}),(0,K.jsx)(Ni,{preview:p.state.step===`review`?p.state.preview:void 0,before:c,after:s,resolvedBefore:Ee,resolvedAfter:b,definitionName:L,applying:p.applying,error:p.applyError,onApply:e=>void p.confirm(e),onClose:p.resetStep}),(0,K.jsx)(Ke,{open:A,onOpenChange:ee,title:r(`models.builder.deleteTitle`,{label:s.label}),description:r(`models.builder.deleteDescription`),confirmLabel:r(`common.delete`),destructive:!0,onConfirm:()=>D.mutate({category:e,id:t,expectedVersion:l},{onSuccess:()=>{d(),I.success(r(`models.deleted`)),i({to:`/models`})}})})]})},Fi=({category:e,id:t})=>{let n=Nt(e,t);return(0,K.jsx)(Ut,{query:n,children:n=>(0,K.jsx)(Pi,{category:e,id:t,detail:n},t)})};export{Fi as t};
|
|
2
|
+
//# sourceMappingURL=Builder-Tk_5Orrl.js.map
|