@shapio/cms 0.3.0 → 0.3.1
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/apple-touch-icon.png +0 -0
- package/dist/admin/assets/{AssistError-BITJ_tpg.js → AssistError-BYR085vj.js} +2 -2
- package/dist/admin/assets/{AssistError-BITJ_tpg.js.map → AssistError-BYR085vj.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-CcluK965.js → BlockMenuItems-BnLF3Efc.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-CcluK965.js.map → BlockMenuItems-BnLF3Efc.js.map} +1 -1
- package/dist/admin/assets/{Body-BXa9DhtH.js → Body-CCOZq2q9.js} +2 -2
- package/dist/admin/assets/{Body-BXa9DhtH.js.map → Body-CCOZq2q9.js.map} +1 -1
- package/dist/admin/assets/{Builder-DcpRfXuc.js → Builder-BZy9mphs.js} +2 -2
- package/dist/admin/assets/{Builder-DcpRfXuc.js.map → Builder-BZy9mphs.js.map} +1 -1
- package/dist/admin/assets/{ConfirmDialog-B9nWhIIz.js → ConfirmDialog-Tu-gjEwm.js} +2 -2
- package/dist/admin/assets/{ConfirmDialog-B9nWhIIz.js.map → ConfirmDialog-Tu-gjEwm.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-BoWb-xi1.js → CopyButton-BuBaIlCk.js} +2 -2
- package/dist/admin/assets/{CopyButton-BoWb-xi1.js.map → CopyButton-BuBaIlCk.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-BnxmTk47.js → CursorPager-Bvu3CXpD.js} +2 -2
- package/dist/admin/assets/{CursorPager-BnxmTk47.js.map → CursorPager-Bvu3CXpD.js.map} +1 -1
- package/dist/admin/assets/{ExternalLink-Eeb9mONJ.js → ExternalLink-CCr5oRXI.js} +2 -2
- package/dist/admin/assets/{ExternalLink-Eeb9mONJ.js.map → ExternalLink-CCr5oRXI.js.map} +1 -1
- package/dist/admin/assets/Form-Doc0JEzF.js +2 -0
- package/dist/admin/assets/{Form-DZRLD3vH.js.map → Form-Doc0JEzF.js.map} +1 -1
- package/dist/admin/assets/{FormCheckboxGroup-uIC2XQIL.js → FormCheckboxGroup-eg39IJvf.js} +2 -2
- package/dist/admin/assets/{FormCheckboxGroup-uIC2XQIL.js.map → FormCheckboxGroup-eg39IJvf.js.map} +1 -1
- package/dist/admin/assets/{FormRadioGroup-hd95vPOu.js → FormRadioGroup-ZppSTZK6.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-hd95vPOu.js.map → FormRadioGroup-ZppSTZK6.js.map} +1 -1
- package/dist/admin/assets/{FormSelectField-D7VHmnx5.js → FormSelectField-Cosnxiz-.js} +2 -2
- package/dist/admin/assets/{FormSelectField-D7VHmnx5.js.map → FormSelectField-Cosnxiz-.js.map} +1 -1
- package/dist/admin/assets/{FormSwitchField-ft8Jbe6E.js → FormSwitchField-DsKQEZw6.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-ft8Jbe6E.js.map → FormSwitchField-DsKQEZw6.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-DzyOzfZb.js → FormTextareaField-BXidSgIE.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-DzyOzfZb.js.map → FormTextareaField-BXidSgIE.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-CvC46uy_.js → HintedLabel-USQku9Yt.js} +2 -2
- package/dist/admin/assets/{HintedLabel-CvC46uy_.js.map → HintedLabel-USQku9Yt.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-GJLRVumb.js → InfoHint-Bz_yvehr.js} +2 -2
- package/dist/admin/assets/{InfoHint-GJLRVumb.js.map → InfoHint-Bz_yvehr.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-D976G0Rj.js → InsertMenuItem-DJXglsEd.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-D976G0Rj.js.map → InsertMenuItem-DJXglsEd.js.map} +1 -1
- package/dist/admin/assets/{LinkTabs-BZSlA57U.js → LinkTabs-D4U-rJyK.js} +2 -2
- package/dist/admin/assets/{LinkTabs-BZSlA57U.js.map → LinkTabs-D4U-rJyK.js.map} +1 -1
- package/dist/admin/assets/{Match-DdxTHHM4.js → Match-UAw1Ss8a.js} +2 -2
- package/dist/admin/assets/{Match-DdxTHHM4.js.map → Match-UAw1Ss8a.js.map} +1 -1
- package/dist/admin/assets/{Panel-iIKjEURi.js → Panel-BdjqCkKs.js} +2 -2
- package/dist/admin/assets/{Panel-iIKjEURi.js.map → Panel-BdjqCkKs.js.map} +1 -1
- package/dist/admin/assets/{QueryView-D6aZQJRN.js → QueryView-Bkyizh1P.js} +2 -2
- package/dist/admin/assets/{QueryView-D6aZQJRN.js.map → QueryView-Bkyizh1P.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-BpB79rIK.js → RadioTile-VHTPl88w.js} +2 -2
- package/dist/admin/assets/RadioTile-VHTPl88w.js.map +1 -0
- package/dist/admin/assets/{RichTextField-BuHCONPu.js → RichTextField-B21FqrT5.js} +4 -4
- package/dist/admin/assets/{RichTextField-BuHCONPu.js.map → RichTextField-B21FqrT5.js.map} +1 -1
- package/dist/admin/assets/{RowTitle--uFCpx8n.js → RowTitle-BD8QPs_v.js} +2 -2
- package/dist/admin/assets/{RowTitle--uFCpx8n.js.map → RowTitle-BD8QPs_v.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-DFpzeNE0.js → SecretReveal-BfJKUxXW.js} +2 -2
- package/dist/admin/assets/{SecretReveal-DFpzeNE0.js.map → SecretReveal-BfJKUxXW.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-Cqkx30tn.js → SharedGlyph-DDPdvsm_.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-Cqkx30tn.js.map → SharedGlyph-DDPdvsm_.js.map} +1 -1
- package/dist/admin/assets/{StepList-BY5MuJPJ.js → StepList-DKhkw1hN.js} +2 -2
- package/dist/admin/assets/{StepList-BY5MuJPJ.js.map → StepList-DKhkw1hN.js.map} +1 -1
- package/dist/admin/assets/Structure-C7dr00Bp.js +2 -0
- package/dist/admin/assets/{Structure-CqRa2t7z.js.map → Structure-C7dr00Bp.js.map} +1 -1
- package/dist/admin/assets/{SubNavLink-B2o4kSZ9.js → SubNavLink-BAF2-wuF.js} +2 -2
- package/dist/admin/assets/{SubNavLink-B2o4kSZ9.js.map → SubNavLink-BAF2-wuF.js.map} +1 -1
- package/dist/admin/assets/{SuggestAltButton-4rf2xhEJ.js → SuggestAltButton-DEsbHvs4.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-4rf2xhEJ.js.map → SuggestAltButton-DEsbHvs4.js.map} +1 -1
- package/dist/admin/assets/{TextLink-D15oyXlc.js → TextLink-CegO3jom.js} +2 -2
- package/dist/admin/assets/{TextLink-D15oyXlc.js.map → TextLink-CegO3jom.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-CP5mfgNY.js → Thumbnail-CTpKlrxR.js} +2 -2
- package/dist/admin/assets/{Thumbnail-CP5mfgNY.js.map → Thumbnail-CTpKlrxR.js.map} +1 -1
- package/dist/admin/assets/{UnsavedChangesGuard-DgOASh0p.js → UnsavedChangesGuard-Cbfg-Bgj.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-DgOASh0p.js.map → UnsavedChangesGuard-Cbfg-Bgj.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-BocvNVL-.js → UserAvatar-CiZ00-cr.js} +2 -2
- package/dist/admin/assets/{UserAvatar-BocvNVL-.js.map → UserAvatar-CiZ00-cr.js.map} +1 -1
- package/dist/admin/assets/{arrow-up-gf_j6SVQ.js → arrow-up-DwMJqZVV.js} +2 -2
- package/dist/admin/assets/{arrow-up-gf_j6SVQ.js.map → arrow-up-DwMJqZVV.js.map} +1 -1
- package/dist/admin/assets/{auth-pcS9CCXu.js → auth-BaVAo0u_.js} +2 -2
- package/dist/admin/assets/{auth-pcS9CCXu.js.map → auth-BaVAo0u_.js.map} +1 -1
- package/dist/admin/assets/{badge-DD0mE96i.js → badge-IBeVOhKd.js} +2 -2
- package/dist/admin/assets/{badge-DD0mE96i.js.map → badge-IBeVOhKd.js.map} +1 -1
- package/dist/admin/assets/{boxes-DcK-kaSa.js → boxes-BH0MDegO.js} +2 -2
- package/dist/admin/assets/{boxes-DcK-kaSa.js.map → boxes-BH0MDegO.js.map} +1 -1
- package/dist/admin/assets/{calendar-clock-DEwACe0M.js → calendar-clock-DKUk-w81.js} +2 -2
- package/dist/admin/assets/{calendar-clock-DEwACe0M.js.map → calendar-clock-DKUk-w81.js.map} +1 -1
- package/dist/admin/assets/{changeSets-BjUEfYbj.js → changeSets-o_G67qPk.js} +2 -2
- package/dist/admin/assets/{changeSets-BjUEfYbj.js.map → changeSets-o_G67qPk.js.map} +1 -1
- package/dist/admin/assets/chevron-left-D259hWJn.js +2 -0
- package/dist/admin/assets/{chevron-left-BsQYDUEC.js.map → chevron-left-D259hWJn.js.map} +1 -1
- package/dist/admin/assets/{circle-check-Dq1owihe.js → circle-check-Cidzt1Ww.js} +2 -2
- package/dist/admin/assets/{circle-check-Dq1owihe.js.map → circle-check-Cidzt1Ww.js.map} +1 -1
- package/dist/admin/assets/{circle-x-Dx6zIZko.js → circle-x-c1RwmC6j.js} +2 -2
- package/dist/admin/assets/{circle-x-Dx6zIZko.js.map → circle-x-c1RwmC6j.js.map} +1 -1
- package/dist/admin/assets/{clock-DQvkffqQ.js → clock-BOtPNp9-.js} +2 -2
- package/dist/admin/assets/{clock-DQvkffqQ.js.map → clock-BOtPNp9-.js.map} +1 -1
- package/dist/admin/assets/cn-M4_WHiur.js +2 -0
- package/dist/admin/assets/cn-M4_WHiur.js.map +1 -0
- package/dist/admin/assets/coerce-DWI5sgLW.js +2 -0
- package/dist/admin/assets/{coerce-OsqQRj19.js.map → coerce-DWI5sgLW.js.map} +1 -1
- package/dist/admin/assets/{constants-SrImR6C3.js → constants-CgUdkWmf.js} +2 -2
- package/dist/admin/assets/{constants-SrImR6C3.js.map → constants-CgUdkWmf.js.map} +1 -1
- package/dist/admin/assets/content-D25ainqV.js +3 -0
- package/dist/admin/assets/{content-_SLbbnfX.js.map → content-D25ainqV.js.map} +1 -1
- package/dist/admin/assets/{contentCounts-Ch3uMXVU.js → contentCounts-T-LmvUf5.js} +2 -2
- package/dist/admin/assets/{contentCounts-Ch3uMXVU.js.map → contentCounts-T-LmvUf5.js.map} +1 -1
- package/dist/admin/assets/{contentTypes-BCOdUK_Z.js → contentTypes-BSlp81l1.js} +2 -2
- package/dist/admin/assets/{contentTypes-BCOdUK_Z.js.map → contentTypes-BSlp81l1.js.map} +1 -1
- package/dist/admin/assets/{copy-BDc3r0fO.js → copy-DT7dAzVm.js} +2 -2
- package/dist/admin/assets/{copy-BDc3r0fO.js.map → copy-DT7dAzVm.js.map} +1 -1
- package/dist/admin/assets/{dateTimeLocal-C92tyKwz.js → dateTimeLocal-DRq7DuYO.js} +2 -2
- package/dist/admin/assets/{dateTimeLocal-C92tyKwz.js.map → dateTimeLocal-DRq7DuYO.js.map} +1 -1
- package/dist/admin/assets/{develop-DS9TlDmv.js → develop-qF10t9tM.js} +6 -6
- package/dist/admin/assets/{develop-DS9TlDmv.js.map → develop-qF10t9tM.js.map} +1 -1
- package/dist/admin/assets/{dropdown-menu-gmP2Rp3n.js → dropdown-menu-Cl20LCvY.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-gmP2Rp3n.js.map → dropdown-menu-Cl20LCvY.js.map} +1 -1
- package/dist/admin/assets/{ellipsis-NK0pWgqU.js → ellipsis-xDmHl1SK.js} +2 -2
- package/dist/admin/assets/{ellipsis-NK0pWgqU.js.map → ellipsis-xDmHl1SK.js.map} +1 -1
- package/dist/admin/assets/{external-link-D3Aoi2yX.js → external-link-DtJAaOWk.js} +2 -2
- package/dist/admin/assets/{external-link-D3Aoi2yX.js.map → external-link-DtJAaOWk.js.map} +1 -1
- package/dist/admin/assets/{file-text-DxXAmmxL.js → file-text-BJkQMeQO.js} +2 -2
- package/dist/admin/assets/{file-text-DxXAmmxL.js.map → file-text-BJkQMeQO.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-C2tOrKhO.js → fileRoute-Buucm0CU.js} +2 -2
- package/dist/admin/assets/{fileRoute-C2tOrKhO.js.map → fileRoute-Buucm0CU.js.map} +1 -1
- package/dist/admin/assets/{followPlural-CN6cQfNk.js → followPlural-Cuocm4Sv.js} +2 -2
- package/dist/admin/assets/{followPlural-CN6cQfNk.js.map → followPlural-Cuocm4Sv.js.map} +1 -1
- package/dist/admin/assets/{globe-CuElSilX.js → globe-CAhrwBgv.js} +2 -2
- package/dist/admin/assets/{globe-CuElSilX.js.map → globe-CAhrwBgv.js.map} +1 -1
- package/dist/admin/assets/{image-CsH8dZve.js → image-CGN6ffEu.js} +2 -2
- package/dist/admin/assets/{image-CsH8dZve.js.map → image-CGN6ffEu.js.map} +1 -1
- package/dist/admin/assets/{image-off-B_uBCsYu.js → image-off-0zX_kODH.js} +2 -2
- package/dist/admin/assets/{image-off-B_uBCsYu.js.map → image-off-0zX_kODH.js.map} +1 -1
- package/dist/admin/assets/{inbox-DsuXNaKE.js → inbox-CWq1hHqK.js} +2 -2
- package/dist/admin/assets/{inbox-DsuXNaKE.js.map → inbox-CWq1hHqK.js.map} +1 -1
- package/dist/admin/assets/{inbox-3iAHL3pC.js → inbox-CukkApHK.js} +2 -2
- package/dist/admin/assets/{inbox-3iAHL3pC.js.map → inbox-CukkApHK.js.map} +1 -1
- package/dist/admin/assets/index-C9uJxg4J.js +4 -0
- package/dist/admin/assets/index-C9uJxg4J.js.map +1 -0
- package/dist/admin/assets/index-Cz3C-LxB.css +2 -0
- package/dist/admin/assets/{key-round-B17HiT3K.js → key-round-DnE-2gr0.js} +2 -2
- package/dist/admin/assets/{key-round-B17HiT3K.js.map → key-round-DnE-2gr0.js.map} +1 -1
- package/dist/admin/assets/{link-2-off-hWGS8LW6.js → link-2-off-Cbpvb3w4.js} +2 -2
- package/dist/admin/assets/{link-2-off-hWGS8LW6.js.map → link-2-off-Cbpvb3w4.js.map} +1 -1
- package/dist/admin/assets/{link-bhHmG4Tc.js → link-DPniuk00.js} +2 -2
- package/dist/admin/assets/{link-bhHmG4Tc.js.map → link-DPniuk00.js.map} +1 -1
- package/dist/admin/assets/{list-DRtRdjBC.js → list-CkHF_4xh.js} +2 -2
- package/dist/admin/assets/{list-DRtRdjBC.js.map → list-CkHF_4xh.js.map} +1 -1
- package/dist/admin/assets/{locales-BzPbz8FF.js → locales-DFLQ17ow.js} +2 -2
- package/dist/admin/assets/{locales-BzPbz8FF.js.map → locales-DFLQ17ow.js.map} +1 -1
- package/dist/admin/assets/{media-Xzot1ueY.js → media-CKTs3j83.js} +2 -2
- package/dist/admin/assets/{media-Xzot1ueY.js.map → media-CKTs3j83.js.map} +1 -1
- package/dist/admin/assets/{media-WLnWaL7U.js → media-CUfV74JZ.js} +2 -2
- package/dist/admin/assets/{media-WLnWaL7U.js.map → media-CUfV74JZ.js.map} +1 -1
- package/dist/admin/assets/{network-DHGqLwji.js → network-Fri1cjMt.js} +2 -2
- package/dist/admin/assets/{network-DHGqLwji.js.map → network-Fri1cjMt.js.map} +1 -1
- package/dist/admin/assets/{pencil-Bdp2z9D_.js → pencil-BqAgKC9v.js} +2 -2
- package/dist/admin/assets/{pencil-Bdp2z9D_.js.map → pencil-BqAgKC9v.js.map} +1 -1
- package/dist/admin/assets/{plus-BN_iSsnp.js → plus-DLRcpVhJ.js} +2 -2
- package/dist/admin/assets/{plus-BN_iSsnp.js.map → plus-DLRcpVhJ.js.map} +1 -1
- package/dist/admin/assets/{preload-helper-DAbCfXID.js → preload-helper-BHNBIF88.js} +2 -2
- package/dist/admin/assets/{preload-helper-DAbCfXID.js.map → preload-helper-BHNBIF88.js.map} +1 -1
- package/dist/admin/assets/{publishing-d9yhMwgA.js → publishing-DaaE8PaU.js} +2 -2
- package/dist/admin/assets/{publishing-d9yhMwgA.js.map → publishing-DaaE8PaU.js.map} +1 -1
- package/dist/admin/assets/{radio-group-DHIxK-IU.js → radio-group-CA3XlQcc.js} +2 -2
- package/dist/admin/assets/{radio-group-DHIxK-IU.js.map → radio-group-CA3XlQcc.js.map} +1 -1
- package/dist/admin/assets/{rotate-ccw-CBoZle-b.js → rotate-ccw-CfrkcgYa.js} +2 -2
- package/dist/admin/assets/{rotate-ccw-CBoZle-b.js.map → rotate-ccw-CfrkcgYa.js.map} +1 -1
- package/dist/admin/assets/{schedules-Dy89Nm6P.js → schedules-hJQkjEhN.js} +2 -2
- package/dist/admin/assets/{schedules-Dy89Nm6P.js.map → schedules-hJQkjEhN.js.map} +1 -1
- package/dist/admin/assets/{schema-B4smPFcR.js → schema--xSR7cf9.js} +2 -2
- package/dist/admin/assets/{schema-B4smPFcR.js.map → schema--xSR7cf9.js.map} +1 -1
- package/dist/admin/assets/{scroll-text-UbyzpWh-.js → scroll-text-BA9yh7Za.js} +2 -2
- package/dist/admin/assets/{scroll-text-UbyzpWh-.js.map → scroll-text-BA9yh7Za.js.map} +1 -1
- package/dist/admin/assets/{search-_YlNpPvU.js → search--71HzPvh.js} +2 -2
- package/dist/admin/assets/{search-_YlNpPvU.js.map → search--71HzPvh.js.map} +1 -1
- package/dist/admin/assets/{searchSchema-CvOhn4FV.js → searchSchema-Ypl6gq9g.js} +2 -2
- package/dist/admin/assets/{searchSchema-CvOhn4FV.js.map → searchSchema-Ypl6gq9g.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-BxRnxenn.js → searchSchemas-C-nQbyhd.js} +2 -2
- package/dist/admin/assets/{searchSchemas-BxRnxenn.js.map → searchSchemas-C-nQbyhd.js.map} +1 -1
- package/dist/admin/assets/sections-BBN2JErq.js +2 -0
- package/dist/admin/assets/sections-BBN2JErq.js.map +1 -0
- package/dist/admin/assets/{sections-Bb3Q4bcY.js → sections-D0OZozD2.js} +2 -2
- package/dist/admin/assets/{sections-Bb3Q4bcY.js.map → sections-D0OZozD2.js.map} +1 -1
- package/dist/admin/assets/{select-tHVWX85X.js → select-De48SQdZ.js} +2 -2
- package/dist/admin/assets/{select-tHVWX85X.js.map → select-De48SQdZ.js.map} +1 -1
- package/dist/admin/assets/{send-BqECHYi6.js → send-NuSmLVSD.js} +2 -2
- package/dist/admin/assets/{send-BqECHYi6.js.map → send-NuSmLVSD.js.map} +1 -1
- package/dist/admin/assets/settings-CYXU73dP.js +2 -0
- package/dist/admin/assets/settings-CYXU73dP.js.map +1 -0
- package/dist/admin/assets/skeleton-CCwdO9oq.js +42 -0
- package/dist/admin/assets/skeleton-CCwdO9oq.js.map +1 -0
- package/dist/admin/assets/{snapshots-BQrhsCmC.js → snapshots-BQeFK5cj.js} +2 -2
- package/dist/admin/assets/{snapshots-BQrhsCmC.js.map → snapshots-BQeFK5cj.js.map} +1 -1
- package/dist/admin/assets/{sparkles-BW4CbD6W.js → sparkles-B-0I44es.js} +2 -2
- package/dist/admin/assets/{sparkles-BW4CbD6W.js.map → sparkles-B-0I44es.js.map} +1 -1
- package/dist/admin/assets/{src-XaU0N8C-.js → src-CQu-YxUM.js} +2 -2
- package/dist/admin/assets/src-CQu-YxUM.js.map +1 -0
- package/dist/admin/assets/{stableId-C9Yq5iUw.js → stableId-rPnYVF-A.js} +2 -2
- package/dist/admin/assets/{stableId-C9Yq5iUw.js.map → stableId-rPnYVF-A.js.map} +1 -1
- package/dist/admin/assets/{store-BphwUzV5.js → store-Bqd9L9DK.js} +2 -2
- package/dist/admin/assets/{store-BphwUzV5.js.map → store-Bqd9L9DK.js.map} +1 -1
- package/dist/admin/assets/{switch-BVy02Vc8.js → switch-JmfyFAQG.js} +2 -2
- package/dist/admin/assets/{switch-BVy02Vc8.js.map → switch-JmfyFAQG.js.map} +1 -1
- package/dist/admin/assets/{table-CZYtdoHn.js → table-BEDv9IRM.js} +2 -2
- package/dist/admin/assets/{table-CZYtdoHn.js.map → table-BEDv9IRM.js.map} +1 -1
- package/dist/admin/assets/{tabs-quHbeVxA.js → tabs-DSS1c-Kf.js} +4 -4
- package/dist/admin/assets/{tabs-quHbeVxA.js.map → tabs-DSS1c-Kf.js.map} +1 -1
- package/dist/admin/assets/{textarea-B8Vl5gJ1.js → textarea-eatLAWE_.js} +2 -2
- package/dist/admin/assets/{textarea-B8Vl5gJ1.js.map → textarea-eatLAWE_.js.map} +1 -1
- package/dist/admin/assets/{titles-B2z5ckxG.js → titles-Bi2fWNN4.js} +2 -2
- package/dist/admin/assets/{titles-B2z5ckxG.js.map → titles-Bi2fWNN4.js.map} +1 -1
- package/dist/admin/assets/{tokens-Fh_OeIlf.js → tokens-C2E7swse.js} +2 -2
- package/dist/admin/assets/{tokens-Fh_OeIlf.js.map → tokens-C2E7swse.js.map} +1 -1
- package/dist/admin/assets/{tooltip-DwqM3opE.js → tooltip-Bji9fmSr.js} +2 -2
- package/dist/admin/assets/{tooltip-DwqM3opE.js.map → tooltip-Bji9fmSr.js.map} +1 -1
- package/dist/admin/assets/{undo-2-D4Fz4JMZ.js → undo-2-BU-uqm7e.js} +2 -2
- package/dist/admin/assets/{undo-2-D4Fz4JMZ.js.map → undo-2-BU-uqm7e.js.map} +1 -1
- package/dist/admin/assets/{useAuditLabels-DKrsrciQ.js → useAuditLabels-D5nmbXqN.js} +2 -2
- package/dist/admin/assets/{useAuditLabels-DKrsrciQ.js.map → useAuditLabels-D5nmbXqN.js.map} +1 -1
- package/dist/admin/assets/{useConfirmTarget-Dp8mCulm.js → useConfirmTarget-Y7_8kVX5.js} +2 -2
- package/dist/admin/assets/{useConfirmTarget-Dp8mCulm.js.map → useConfirmTarget-Y7_8kVX5.js.map} +1 -1
- package/dist/admin/assets/useContentSchema-DJTqjlUk.js +2 -0
- package/dist/admin/assets/{useContentSchema-Bv4_6VJR.js.map → useContentSchema-DJTqjlUk.js.map} +1 -1
- package/dist/admin/assets/{useCursorPager-B1upg5EU.js → useCursorPager-CiJroOo7.js} +2 -2
- package/dist/admin/assets/{useCursorPager-B1upg5EU.js.map → useCursorPager-CiJroOo7.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-34ynGJIk.js → useDiscardGuard-t_N3l9TQ.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-34ynGJIk.js.map → useDiscardGuard-t_N3l9TQ.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-QXSjZStv.js → useMediaUploader-CLHmKCwq.js} +2 -2
- package/dist/admin/assets/{useMediaUploader-QXSjZStv.js.map → useMediaUploader-CLHmKCwq.js.map} +1 -1
- package/dist/admin/assets/{usePaletteItems-62-TZhy7.js → usePaletteItems-BVjWCdow.js} +2 -2
- package/dist/admin/assets/{usePaletteItems-62-TZhy7.js.map → usePaletteItems-BVjWCdow.js.map} +1 -1
- package/dist/admin/assets/{usePlaces-CY6f2DmI.js → usePlaces-CnSOZwtO.js} +2 -2
- package/dist/admin/assets/{usePlaces-CY6f2DmI.js.map → usePlaces-CnSOZwtO.js.map} +1 -1
- package/dist/admin/assets/{useQueries-BuKJBA0M.js → useQueries-BRolGUiw.js} +2 -2
- package/dist/admin/assets/{useQueries-BuKJBA0M.js.map → useQueries-BRolGUiw.js.map} +1 -1
- package/dist/admin/assets/{useSchemaScopeAccess-DUBeS9kU.js → useSchemaScopeAccess-bd8RQxuu.js} +2 -2
- package/dist/admin/assets/{useSchemaScopeAccess-DUBeS9kU.js.map → useSchemaScopeAccess-bd8RQxuu.js.map} +1 -1
- package/dist/admin/assets/{users-BOn2ohJQ.js → users-CbErtM7w.js} +2 -2
- package/dist/admin/assets/{users-BOn2ohJQ.js.map → users-CbErtM7w.js.map} +1 -1
- package/dist/admin/assets/{users-BkKc4MNB.js → users-bDGYpSXg.js} +2 -2
- package/dist/admin/assets/{users-BkKc4MNB.js.map → users-bDGYpSXg.js.map} +1 -1
- package/dist/admin/assets/{zod-BHAd1wTC.js → zod-Gtw4e0qi.js} +2 -2
- package/dist/admin/assets/{zod-BHAd1wTC.js.map → zod-Gtw4e0qi.js.map} +1 -1
- package/dist/admin/favicon-32.png +0 -0
- package/dist/admin/favicon.svg +2 -2
- package/dist/admin/index.html +60 -56
- package/dist/admin/theme-init.js +41 -9
- package/dist/cli.js +30 -6
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +11 -224
- package/dist/index.js +1 -1
- package/dist/{public-CGO8RBn3.d.ts → public-B7fFHMNr.d.ts} +251 -5
- package/dist/{worker-BLXy8aRW.js → worker-BAmQPoTJ.js} +574 -108
- package/dist/worker-BAmQPoTJ.js.map +1 -0
- package/package.json +5 -5
- package/dist/admin/assets/Form-DZRLD3vH.js +0 -2
- package/dist/admin/assets/RadioTile-BpB79rIK.js.map +0 -1
- package/dist/admin/assets/Structure-CqRa2t7z.js +0 -2
- package/dist/admin/assets/chevron-left-BsQYDUEC.js +0 -2
- package/dist/admin/assets/cn-BQ3voEft.js +0 -2
- package/dist/admin/assets/cn-BQ3voEft.js.map +0 -1
- package/dist/admin/assets/coerce-OsqQRj19.js +0 -2
- package/dist/admin/assets/content-_SLbbnfX.js +0 -3
- package/dist/admin/assets/index-BLYOgCKc.css +0 -2
- package/dist/admin/assets/index-BSzXA60W.js +0 -4
- package/dist/admin/assets/index-BSzXA60W.js.map +0 -1
- package/dist/admin/assets/sections-DiySZZHb.js +0 -2
- package/dist/admin/assets/sections-DiySZZHb.js.map +0 -1
- package/dist/admin/assets/settings-D-v8gL8F.js +0 -2
- package/dist/admin/assets/settings-D-v8gL8F.js.map +0 -1
- package/dist/admin/assets/skeleton-C3QLIh7W.js +0 -42
- package/dist/admin/assets/skeleton-C3QLIh7W.js.map +0 -1
- package/dist/admin/assets/src-XaU0N8C-.js.map +0 -1
- package/dist/admin/assets/useContentSchema-Bv4_6VJR.js +0 -2
- package/dist/worker-BLXy8aRW.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{H as n,P as r,l as i}from"./cn-
|
|
2
|
-
//# sourceMappingURL=contentCounts-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{H as n,P as r,l as i}from"./cn-M4_WHiur.js";var a=e(t(),1),o=6e4,s=()=>{let e=n({queryKey:r.contentCounts,queryFn:()=>i.contentCounts.list(),staleTime:o,meta:{silent:!0}});return(0,a.useMemo)(()=>e.data?new Map(e.data.counts.map(e=>[e.modelId,e.total])):void 0,[e.data])};export{s as t};
|
|
2
|
+
//# sourceMappingURL=contentCounts-T-LmvUf5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentCounts-
|
|
1
|
+
{"version":3,"file":"contentCounts-T-LmvUf5.js","names":["useMemo","__toESM","useQuery","queryKeys","adminApi","import_react","require_react","COUNTS_STALE_MS","useContentCounts","query","count"],"sources":["../../src/api/contentCounts.ts"],"sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { adminApi } from './client';\nimport { queryKeys } from './queryKeys';\n\n/** The server caches counts for 60s; asking more often would only return the same numbers. */\nconst COUNTS_STALE_MS = 60_000;\n\n/** Entries per model (readable models only), keyed by model ID; undefined while loading or on failure. */\nexport const useContentCounts = () => {\n const query = useQuery({\n queryKey: queryKeys.contentCounts,\n queryFn: () => adminApi.contentCounts.list(),\n staleTime: COUNTS_STALE_MS,\n meta: { silent: true },\n });\n return useMemo(\n () =>\n query.data\n ? new Map(query.data.counts.map((count) => [count.modelId, count.total] as const))\n : undefined,\n [query.data],\n );\n};\n"],"mappings":"wJAMMO,EAAkB,IAGXC,MAAyB,CACpC,IAAMC,EAAQP,EAAS,CACrB,SAAUC,EAAU,cACpB,YAAeC,EAAS,cAAc,KAAK,EAC3C,UAAWG,EACX,KAAM,CAAE,OAAQ,EAAK,CACvB,CAAC,EACD,OAAA,EAAOP,EAAAA,QAAAA,KAEHS,EAAM,KACF,IAAI,IAAIA,EAAM,KAAK,OAAO,IAAK,GAAU,CAACC,EAAM,QAASA,EAAM,KAAK,CAAU,CAAC,EAC/E,IAAA,GACN,CAACD,EAAM,IAAI,CACb,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{j as r}from"./cn-
|
|
2
|
-
//# sourceMappingURL=contentTypes-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{j as r}from"./cn-M4_WHiur.js";import{C as i,T as a,o,x as s}from"./auth-BaVAo0u_.js";import{_ as c,a as l,i as u,j as d,o as f,t as p}from"./badge-IBeVOhKd.js";import{t as m}from"./fileRoute-Buucm0CU.js";import{i as h}from"./skeleton-CCwdO9oq.js";import{n as g,t as _}from"./Form-Doc0JEzF.js";import{a as v,d as y}from"./constants-CgUdkWmf.js";import{t as b}from"./Builder-BZy9mphs.js";import{t as x}from"./plus-DLRcpVhJ.js";import{u as S}from"./changeSets-o_G67qPk.js";import{t as C}from"./HintedLabel-USQku9Yt.js";import{s as w}from"./schema--xSR7cf9.js";import{t as T}from"./QueryView-Bkyizh1P.js";import{t as E}from"./textarea-eatLAWE_.js";import{c as D,g as O,i as k,r as A,t as j}from"./AssistError-BYR085vj.js";import{t as M}from"./Panel-BdjqCkKs.js";import{a as N,i as P}from"./followPlural-Cuocm4Sv.js";var F=e(n(),1),I=()=>{let{t:e}=r(),t=w(`component`),n=o(`schema.create`),{locked:i,reason:a}=N(),c=n&&!i?(0,F.jsx)(h,{asChild:!0,children:(0,F.jsxs)(s,{to:`/develop/components/new`,children:[(0,F.jsx)(x,{"aria-hidden":`true`}),e(`contentTypes.newComponentTitle`)]})}):null;return(0,F.jsxs)(l,{children:[(0,F.jsx)(u,{title:e(`shell.nav.components`),actions:c}),i?(0,F.jsx)(P,{reason:a}):null,(0,F.jsx)(T,{query:t,isEmpty:e=>e.length===0,empty:(0,F.jsx)(f,{icon:y,title:e(`contentTypes.noComponents`),description:e(`models.emptyDescription`),action:c}),children:e=>(0,F.jsx)(g,{items:e})})]})},L=()=>{let{componentId:e}=d({from:`/app/develop/components/$componentId`});return(0,F.jsx)(b,{category:`component`,id:e})},R=[`component`],z=()=>{let{t:e}=r();return(0,F.jsx)(_,{title:e(`contentTypes.newComponentTitle`),kinds:R,back:i({to:`/develop/components`}),backLabel:e(`shell.nav.components`)})},B=e(t(),1),V=()=>{let{t:e}=r(),t=a(),[n,i]=(0,B.useState)(``),[o,s]=(0,B.useState)(null),c=D(),l=S();return{description:n,setDescription:i,proposal:o,run:()=>{n.trim()!==``&&(s(null),l.reset(),c.mutate({description:n.trim()},{onSuccess:s}))},discard:()=>{s(null),c.reset(),l.reset()},addToChangeSet:()=>{o&&l.mutate({definitions:o.definitions,newSetTitle:e(`assist.describe.setTitle`,{model:o.model})},{onSuccess:e=>void t({to:`/changes/$changeSetId`,params:{changeSetId:e}})})},proposing:c.isPending,proposeError:c.error,adding:l.isPending,addError:l.error}},H=({proposal:e})=>{let{t}=r();return(0,F.jsxs)(`div`,{className:`space-y-3`,children:[(0,F.jsx)(`p`,{className:`text-meta text-muted-foreground`,children:t(`assist.describe.proposedBy`,{model:e.model})}),(0,F.jsx)(`ul`,{"aria-label":t(`assist.describe.proposalLabel`),className:`space-y-3`,children:e.definitions.map(e=>(0,F.jsxs)(`li`,{className:`rounded-lg border p-3`,children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,F.jsx)(`span`,{className:`text-sm font-semibold`,children:e.label}),(0,F.jsx)(p,{variant:`secondary`,children:t(v[e.kind])}),(0,F.jsx)(`span`,{className:`font-mono text-meta text-muted-foreground`,children:e.apiKey})]}),(0,F.jsx)(`ul`,{className:`mt-2 space-y-0.5 text-meta text-muted-foreground`,children:e.fields.map(e=>(0,F.jsxs)(`li`,{children:[(0,F.jsx)(`span`,{className:`text-foreground`,children:e.label}),` `,t(`assist.describe.fieldType`,{type:t(`models.dataTypes.${e.type}.name`)})]},e.id))})]},e.id))})]})},U=()=>{let{t:e}=r(),t=(0,B.useId)(),n=k(),{locked:i}=N(),a=V();return n?(0,F.jsx)(M,{title:e(`assist.describe.title`),titleAs:`h2`,children:(0,F.jsx)(`div`,{className:`space-y-3`,children:a.proposal?(0,F.jsxs)(`form`,{className:`space-y-3`,onSubmit:e=>{e.preventDefault(),a.addToChangeSet()},children:[(0,F.jsx)(H,{proposal:a.proposal}),(0,F.jsx)(j,{error:a.addError}),(0,F.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,F.jsx)(h,{type:`button`,variant:`outline`,onClick:a.discard,children:e(`assist.discard`)}),(0,F.jsx)(c,{pending:a.adding,pendingLabel:e(`common.saving`),disabled:i,children:e(`assist.describe.add`)})]})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(C,{htmlFor:`${t}-description`,label:e(`assist.describe.label`),hint:e(`assist.describe.hint`)}),(0,F.jsx)(E,{id:`${t}-description`,value:a.description,rows:4,maxLength:O,placeholder:e(`assist.describe.placeholder`),disabled:a.proposing,onChange:e=>a.setDescription(e.target.value)})]}),(0,F.jsx)(j,{error:a.proposeError}),(0,F.jsx)(`div`,{className:`flex justify-end`,children:(0,F.jsx)(A,{variant:`outline`,size:`default`,pending:a.proposing,pendingLabel:e(`assist.working`),disabled:a.description.trim()===``||i,onClick:a.run,children:e(`assist.describe.run`)})})]})})}):null},W=[`collection`,`singleton`],G={newContentType:m(`/app/content/new`)({component:()=>{let{t:e}=r();return(0,F.jsx)(_,{title:e(`contentTypes.newTitle`),kinds:W,back:i({to:`/content`}),backLabel:e(`content.title`),intro:(0,F.jsx)(U,{})})}}),components:m(`/app/develop/components`)({component:I}),newComponent:m(`/app/develop/components/new`)({component:z}),component:m(`/app/develop/components/$componentId`)({component:L})};export{G as contentTypesLazyRoutes};
|
|
2
|
+
//# sourceMappingURL=contentTypes-BSlp81l1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentTypes-BCOdUK_Z.js","names":["DefinitionBuilder","KINDS","New","useState","useId","_Fragment","NewContentType","NewComponent","ComponentBuilder","__toESM","require_jsx_runtime","useTranslation","linkOptions","useNavigate","Link","SubmitButton","Page","PageHeader","useParams","EmptyState","Badge","createLazyRoute","Button","List","Form","KIND_LABEL_KEYS","Blocks","Builder$1","Plus","useSaveNewDefinitionsToChangeSet","HintedLabel","useDefinitions","QueryView","Textarea","useProposeSchema","SCHEMA_DESCRIPTION_MAX","useAssistEnabled","AssistButton","AssistError","Panel","useSchemaLock","LockNotice","import_jsx_runtime","Components","components","canCreate","useHasGlobalPermission","createAction","locked","t","data","Builder","componentId","KINDS$1","New$1","import_react","require_react","useDescribeSchema","navigate","description","setDescription","proposal","setProposal","propose","save","Proposal","definition","field","Describe","id","enabled","describe","event","KINDS","contentTypesLazyRoutes"],"sources":["../../src/features/Components/index.tsx","../../src/features/Components/Builder/index.tsx","../../src/features/Components/New/index.tsx","../../src/features/Content/New/hooks/useDescribeSchema.ts","../../src/features/Content/New/Describe/Proposal/index.tsx","../../src/features/Content/New/Describe/index.tsx","../../src/features/Content/New/index.tsx","../../src/app/lazyRoutes/contentTypes.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router';\nimport { Blocks, Plus } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { useDefinitions } from '@/api/schema';\nimport { EmptyState } from '@/components/EmptyState';\nimport { Page } from '@/components/Page';\nimport { PageHeader } from '@/components/PageHeader';\nimport { QueryView } from '@/components/QueryView';\nimport { Button } from '@/components/ui/button';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { List } from '@/features/Models/List';\nimport { LockNotice } from '@/features/Models/LockNotice';\n\n/** `/develop/components`: reusable field groups that content types embed (Develop → Components). */\nexport const Components = () => {\n const { t } = useTranslation();\n const components = useDefinitions('component');\n const canCreate = useHasGlobalPermission('schema.create');\n const { locked, reason } = useSchemaLock();\n const createAction =\n canCreate && !locked ? (\n <Button asChild>\n <Link to=\"/develop/components/new\">\n <Plus aria-hidden=\"true\" />\n {t('contentTypes.newComponentTitle')}\n </Link>\n </Button>\n ) : null;\n return (\n <Page>\n <PageHeader title={t('shell.nav.components')} actions={createAction} />\n {locked ? <LockNotice reason={reason} /> : null}\n <QueryView\n query={components}\n isEmpty={(data) => data.length === 0}\n empty={\n <EmptyState\n icon={Blocks}\n title={t('contentTypes.noComponents')}\n description={t('models.emptyDescription')}\n action={createAction}\n />\n }\n >\n {(data) => <List items={data} />}\n </QueryView>\n </Page>\n );\n};\n","import { useParams } from '@tanstack/react-router';\nimport { Builder as DefinitionBuilder } from '@/features/Models/Builder';\n\n/** `/develop/components/:componentId`: a component in the shared definition builder. */\nexport const Builder = () => {\n const { componentId } = useParams({ from: '/app/develop/components/$componentId' });\n return <DefinitionBuilder category=\"component\" id={componentId} />;\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from '@/features/Content/New/Form';\n\nconst KINDS = ['component'] as const;\n\n/** `/develop/components/new`: a reusable component (Develop → Components). */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newComponentTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/develop/components' })}\n backLabel={t('shell.nav.components')}\n />\n );\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useProposeSchema } from '@/api/assist';\nimport { useSaveNewDefinitionsToChangeSet } from '@/api/changeSets';\n\n/**\n * \"Describe it\": a description → proposed definitions (nothing written) → saved as schema drafts into a\n * change set, whose review opens next. Shipping them stays a person's decision there.\n */\nexport const useDescribeSchema = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [description, setDescription] = useState('');\n const [proposal, setProposal] = useState<SchemaDraftResult | null>(null);\n const propose = useProposeSchema();\n const save = useSaveNewDefinitionsToChangeSet();\n const run = () => {\n if (description.trim() === '') {\n return;\n }\n setProposal(null);\n save.reset();\n propose.mutate({ description: description.trim() }, { onSuccess: setProposal });\n };\n const discard = () => {\n setProposal(null);\n propose.reset();\n save.reset();\n };\n const addToChangeSet = () => {\n if (!proposal) {\n return;\n }\n save.mutate(\n {\n definitions: proposal.definitions,\n newSetTitle: t('assist.describe.setTitle', { model: proposal.model }),\n },\n {\n onSuccess: (changeSetId) => void navigate({ to: '/changes/$changeSetId', params: { changeSetId } }),\n },\n );\n };\n return {\n description,\n setDescription,\n proposal,\n run,\n discard,\n addToChangeSet,\n proposing: propose.isPending,\n proposeError: propose.error,\n adding: save.isPending,\n addError: save.error,\n };\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport { KIND_LABEL_KEYS } from '@/features/Models/constants';\n\ntype ProposalProps = { proposal: SchemaDraftResult };\n\n/** The proposed definitions at a glance: name, kind, API ID and fields, before they go into a change set. */\nexport const Proposal = ({ proposal }: ProposalProps) => {\n const { t } = useTranslation();\n return (\n <div className=\"space-y-3\">\n <p className=\"text-meta text-muted-foreground\">\n {t('assist.describe.proposedBy', { model: proposal.model })}\n </p>\n <ul aria-label={t('assist.describe.proposalLabel')} className=\"space-y-3\">\n {proposal.definitions.map((definition) => (\n <li key={definition.id} className=\"rounded-lg border p-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold\">{definition.label}</span>\n <Badge variant=\"secondary\">{t(KIND_LABEL_KEYS[definition.kind])}</Badge>\n <span className=\"font-mono text-meta text-muted-foreground\">{definition.apiKey}</span>\n </div>\n <ul className=\"mt-2 space-y-0.5 text-meta text-muted-foreground\">\n {definition.fields.map((field) => (\n <li key={field.id}>\n <span className=\"text-foreground\">{field.label}</span>{' '}\n {t('assist.describe.fieldType', { type: t(`models.dataTypes.${field.type}.name`) })}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { useId } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAssistEnabled } from '@/api/assist';\nimport { AssistButton } from '@/components/AssistButton';\nimport { AssistError } from '@/components/AssistError';\nimport { HintedLabel } from '@/components/HintedLabel';\nimport { Panel } from '@/components/Panel';\nimport { SubmitButton } from '@/components/SubmitButton';\nimport { Button } from '@/components/ui/button';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SCHEMA_DESCRIPTION_MAX } from '@/constants/assist';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { useDescribeSchema } from '../hooks/useDescribeSchema';\nimport { Proposal } from './Proposal';\n\n/** \"Describe it\" above the new content type form: a model proposes the types, a change set holds them. */\nexport const Describe = () => {\n const { t } = useTranslation();\n const id = useId();\n const enabled = useAssistEnabled();\n const { locked } = useSchemaLock();\n const describe = useDescribeSchema();\n if (!enabled) {\n return null;\n }\n return (\n <Panel title={t('assist.describe.title')} titleAs=\"h2\">\n <div className=\"space-y-3\">\n {describe.proposal ? (\n <form\n className=\"space-y-3\"\n onSubmit={(event) => {\n event.preventDefault();\n describe.addToChangeSet();\n }}\n >\n <Proposal proposal={describe.proposal} />\n <AssistError error={describe.addError} />\n <div className=\"flex flex-wrap justify-end gap-2\">\n <Button type=\"button\" variant=\"outline\" onClick={describe.discard}>\n {t('assist.discard')}\n </Button>\n <SubmitButton pending={describe.adding} pendingLabel={t('common.saving')} disabled={locked}>\n {t('assist.describe.add')}\n </SubmitButton>\n </div>\n </form>\n ) : (\n <>\n <div className=\"space-y-2\">\n <HintedLabel\n htmlFor={`${id}-description`}\n label={t('assist.describe.label')}\n hint={t('assist.describe.hint')}\n />\n <Textarea\n id={`${id}-description`}\n value={describe.description}\n rows={4}\n maxLength={SCHEMA_DESCRIPTION_MAX}\n placeholder={t('assist.describe.placeholder')}\n disabled={describe.proposing}\n onChange={(event) => describe.setDescription(event.target.value)}\n />\n </div>\n <AssistError error={describe.proposeError} />\n <div className=\"flex justify-end\">\n <AssistButton\n variant=\"outline\"\n size=\"default\"\n pending={describe.proposing}\n pendingLabel={t('assist.working')}\n disabled={describe.description.trim() === '' || locked}\n onClick={describe.run}\n >\n {t('assist.describe.run')}\n </AssistButton>\n </div>\n </>\n )}\n </div>\n </Panel>\n );\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Describe } from './Describe';\nimport { Form } from './Form';\n\nconst KINDS = ['collection', 'singleton'] as const;\n\n/** `/content/new`: a new content type (a place for editors), live as soon as it is created. */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/content' })}\n backLabel={t('content.title')}\n intro={<Describe />}\n />\n );\n};\n","import { createLazyRoute } from '@tanstack/react-router';\nimport { Components } from '@/features/Components';\nimport { Builder as ComponentBuilder } from '@/features/Components/Builder';\nimport { New as NewComponent } from '@/features/Components/New';\nimport { New as NewContentType } from '@/features/Content/New';\n\n/** Creating content types and components, and Develop → Components (with @shapio/schema's validators). */\nexport const contentTypesLazyRoutes = {\n newContentType: createLazyRoute('/app/content/new')({ component: NewContentType }),\n components: createLazyRoute('/app/develop/components')({ component: Components }),\n newComponent: createLazyRoute('/app/develop/components/new')({ component: NewComponent }),\n component: createLazyRoute('/app/develop/components/$componentId')({ component: ComponentBuilder }),\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contentTypes-BSlp81l1.js","names":["DefinitionBuilder","KINDS","New","useState","useId","_Fragment","NewContentType","NewComponent","ComponentBuilder","__toESM","require_jsx_runtime","useTranslation","linkOptions","useNavigate","Link","SubmitButton","Page","PageHeader","useParams","EmptyState","Badge","createLazyRoute","Button","List","Form","KIND_LABEL_KEYS","Blocks","Builder$1","Plus","useSaveNewDefinitionsToChangeSet","HintedLabel","useDefinitions","QueryView","Textarea","useProposeSchema","SCHEMA_DESCRIPTION_MAX","useAssistEnabled","AssistButton","AssistError","Panel","useSchemaLock","LockNotice","import_jsx_runtime","Components","components","canCreate","useHasGlobalPermission","createAction","locked","t","data","Builder","componentId","KINDS$1","New$1","import_react","require_react","useDescribeSchema","navigate","description","setDescription","proposal","setProposal","propose","save","Proposal","definition","field","Describe","id","enabled","describe","event","KINDS","contentTypesLazyRoutes"],"sources":["../../src/features/Components/index.tsx","../../src/features/Components/Builder/index.tsx","../../src/features/Components/New/index.tsx","../../src/features/Content/New/hooks/useDescribeSchema.ts","../../src/features/Content/New/Describe/Proposal/index.tsx","../../src/features/Content/New/Describe/index.tsx","../../src/features/Content/New/index.tsx","../../src/app/lazyRoutes/contentTypes.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router';\nimport { Blocks, Plus } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { useHasGlobalPermission } from '@/api/auth';\nimport { useDefinitions } from '@/api/schema';\nimport { EmptyState } from '@/components/EmptyState';\nimport { Page } from '@/components/Page';\nimport { PageHeader } from '@/components/PageHeader';\nimport { QueryView } from '@/components/QueryView';\nimport { Button } from '@/components/ui/button';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { List } from '@/features/Models/List';\nimport { LockNotice } from '@/features/Models/LockNotice';\n\n/** `/develop/components`: reusable field groups that content types embed (Develop → Components). */\nexport const Components = () => {\n const { t } = useTranslation();\n const components = useDefinitions('component');\n const canCreate = useHasGlobalPermission('schema.create');\n const { locked, reason } = useSchemaLock();\n const createAction =\n canCreate && !locked ? (\n <Button asChild>\n <Link to=\"/develop/components/new\">\n <Plus aria-hidden=\"true\" />\n {t('contentTypes.newComponentTitle')}\n </Link>\n </Button>\n ) : null;\n return (\n <Page>\n <PageHeader title={t('shell.nav.components')} actions={createAction} />\n {locked ? <LockNotice reason={reason} /> : null}\n <QueryView\n query={components}\n isEmpty={(data) => data.length === 0}\n empty={\n <EmptyState\n icon={Blocks}\n title={t('contentTypes.noComponents')}\n description={t('models.emptyDescription')}\n action={createAction}\n />\n }\n >\n {(data) => <List items={data} />}\n </QueryView>\n </Page>\n );\n};\n","import { useParams } from '@tanstack/react-router';\nimport { Builder as DefinitionBuilder } from '@/features/Models/Builder';\n\n/** `/develop/components/:componentId`: a component in the shared definition builder. */\nexport const Builder = () => {\n const { componentId } = useParams({ from: '/app/develop/components/$componentId' });\n return <DefinitionBuilder category=\"component\" id={componentId} />;\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Form } from '@/features/Content/New/Form';\n\nconst KINDS = ['component'] as const;\n\n/** `/develop/components/new`: a reusable component (Develop → Components). */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newComponentTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/develop/components' })}\n backLabel={t('shell.nav.components')}\n />\n );\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useProposeSchema } from '@/api/assist';\nimport { useSaveNewDefinitionsToChangeSet } from '@/api/changeSets';\n\n/**\n * \"Describe it\": a description → proposed definitions (nothing written) → saved as schema drafts into a\n * change set, whose review opens next. Shipping them stays a person's decision there.\n */\nexport const useDescribeSchema = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [description, setDescription] = useState('');\n const [proposal, setProposal] = useState<SchemaDraftResult | null>(null);\n const propose = useProposeSchema();\n const save = useSaveNewDefinitionsToChangeSet();\n const run = () => {\n if (description.trim() === '') {\n return;\n }\n setProposal(null);\n save.reset();\n propose.mutate({ description: description.trim() }, { onSuccess: setProposal });\n };\n const discard = () => {\n setProposal(null);\n propose.reset();\n save.reset();\n };\n const addToChangeSet = () => {\n if (!proposal) {\n return;\n }\n save.mutate(\n {\n definitions: proposal.definitions,\n newSetTitle: t('assist.describe.setTitle', { model: proposal.model }),\n },\n {\n onSuccess: (changeSetId) => void navigate({ to: '/changes/$changeSetId', params: { changeSetId } }),\n },\n );\n };\n return {\n description,\n setDescription,\n proposal,\n run,\n discard,\n addToChangeSet,\n proposing: propose.isPending,\n proposeError: propose.error,\n adding: save.isPending,\n addError: save.error,\n };\n};\n","import type { SchemaDraftResult } from '@shapio/client';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '@/components/ui/badge';\nimport { KIND_LABEL_KEYS } from '@/features/Models/constants';\n\ntype ProposalProps = { proposal: SchemaDraftResult };\n\n/** The proposed definitions at a glance: name, kind, API ID and fields, before they go into a change set. */\nexport const Proposal = ({ proposal }: ProposalProps) => {\n const { t } = useTranslation();\n return (\n <div className=\"space-y-3\">\n <p className=\"text-meta text-muted-foreground\">\n {t('assist.describe.proposedBy', { model: proposal.model })}\n </p>\n <ul aria-label={t('assist.describe.proposalLabel')} className=\"space-y-3\">\n {proposal.definitions.map((definition) => (\n <li key={definition.id} className=\"rounded-lg border p-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold\">{definition.label}</span>\n <Badge variant=\"secondary\">{t(KIND_LABEL_KEYS[definition.kind])}</Badge>\n <span className=\"font-mono text-meta text-muted-foreground\">{definition.apiKey}</span>\n </div>\n <ul className=\"mt-2 space-y-0.5 text-meta text-muted-foreground\">\n {definition.fields.map((field) => (\n <li key={field.id}>\n <span className=\"text-foreground\">{field.label}</span>{' '}\n {t('assist.describe.fieldType', { type: t(`models.dataTypes.${field.type}.name`) })}\n </li>\n ))}\n </ul>\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import { useId } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAssistEnabled } from '@/api/assist';\nimport { AssistButton } from '@/components/AssistButton';\nimport { AssistError } from '@/components/AssistError';\nimport { HintedLabel } from '@/components/HintedLabel';\nimport { Panel } from '@/components/Panel';\nimport { SubmitButton } from '@/components/SubmitButton';\nimport { Button } from '@/components/ui/button';\nimport { Textarea } from '@/components/ui/textarea';\nimport { SCHEMA_DESCRIPTION_MAX } from '@/constants/assist';\nimport { useSchemaLock } from '@/features/Models/hooks/useSchemaLock';\nimport { useDescribeSchema } from '../hooks/useDescribeSchema';\nimport { Proposal } from './Proposal';\n\n/** \"Describe it\" above the new content type form: a model proposes the types, a change set holds them. */\nexport const Describe = () => {\n const { t } = useTranslation();\n const id = useId();\n const enabled = useAssistEnabled();\n const { locked } = useSchemaLock();\n const describe = useDescribeSchema();\n if (!enabled) {\n return null;\n }\n return (\n <Panel title={t('assist.describe.title')} titleAs=\"h2\">\n <div className=\"space-y-3\">\n {describe.proposal ? (\n <form\n className=\"space-y-3\"\n onSubmit={(event) => {\n event.preventDefault();\n describe.addToChangeSet();\n }}\n >\n <Proposal proposal={describe.proposal} />\n <AssistError error={describe.addError} />\n <div className=\"flex flex-wrap justify-end gap-2\">\n <Button type=\"button\" variant=\"outline\" onClick={describe.discard}>\n {t('assist.discard')}\n </Button>\n <SubmitButton pending={describe.adding} pendingLabel={t('common.saving')} disabled={locked}>\n {t('assist.describe.add')}\n </SubmitButton>\n </div>\n </form>\n ) : (\n <>\n <div className=\"space-y-2\">\n <HintedLabel\n htmlFor={`${id}-description`}\n label={t('assist.describe.label')}\n hint={t('assist.describe.hint')}\n />\n <Textarea\n id={`${id}-description`}\n value={describe.description}\n rows={4}\n maxLength={SCHEMA_DESCRIPTION_MAX}\n placeholder={t('assist.describe.placeholder')}\n disabled={describe.proposing}\n onChange={(event) => describe.setDescription(event.target.value)}\n />\n </div>\n <AssistError error={describe.proposeError} />\n <div className=\"flex justify-end\">\n <AssistButton\n variant=\"outline\"\n size=\"default\"\n pending={describe.proposing}\n pendingLabel={t('assist.working')}\n disabled={describe.description.trim() === '' || locked}\n onClick={describe.run}\n >\n {t('assist.describe.run')}\n </AssistButton>\n </div>\n </>\n )}\n </div>\n </Panel>\n );\n};\n","import { linkOptions } from '@tanstack/react-router';\nimport { useTranslation } from 'react-i18next';\nimport { Describe } from './Describe';\nimport { Form } from './Form';\n\nconst KINDS = ['collection', 'singleton'] as const;\n\n/** `/content/new`: a new content type (a place for editors), live as soon as it is created. */\nexport const New = () => {\n const { t } = useTranslation();\n return (\n <Form\n title={t('contentTypes.newTitle')}\n kinds={KINDS}\n back={linkOptions({ to: '/content' })}\n backLabel={t('content.title')}\n intro={<Describe />}\n />\n );\n};\n","import { createLazyRoute } from '@tanstack/react-router';\nimport { Components } from '@/features/Components';\nimport { Builder as ComponentBuilder } from '@/features/Components/Builder';\nimport { New as NewComponent } from '@/features/Components/New';\nimport { New as NewContentType } from '@/features/Content/New';\n\n/** Creating content types and components, and Develop → Components (with @shapio/schema's validators). */\nexport const contentTypesLazyRoutes = {\n newContentType: createLazyRoute('/app/content/new')({ component: NewContentType }),\n components: createLazyRoute('/app/develop/components')({ component: Components }),\n newComponent: createLazyRoute('/app/develop/components/new')({ component: NewComponent }),\n component: createLazyRoute('/app/develop/components/$componentId')({ component: ComponentBuilder }),\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./cn-
|
|
2
|
-
//# sourceMappingURL=copy-
|
|
1
|
+
import{i as e}from"./cn-M4_WHiur.js";var t={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};t.node;var n=e(t);export{n as t};
|
|
2
|
+
//# sourceMappingURL=copy-DT7dAzVm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-
|
|
1
|
+
{"version":3,"file":"copy-DT7dAzVm.js","names":["createLucideIcon","__iconData","Copy"],"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/copy.mjs"],"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: \"copy\",\n size: 24,\n node: [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n ]\n};\n__iconData.node;\nconst Copy = createLucideIcon(__iconData);\n\nexport { __iconData, Copy as default };\n//# sourceMappingURL=copy.mjs.map\n"],"ignoreList":[0],"mappings":"qCASA,IAAMC,EAAa,CACjB,KAAM,OACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EACvF,CAAC,OAAQ,CAAE,EAAG,0DAA2D,IAAK,QAAS,CAAC,CAC1F,CACF,EACAA,EAAW,KACX,IAAMC,EAAOF,EAAiBC,CAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as e}from"./table-
|
|
2
|
-
//# sourceMappingURL=dateTimeLocal-
|
|
1
|
+
import{_ as e}from"./table-BEDv9IRM.js";var t=e=>String(e).padStart(2,`0`),n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?$/,r=36e5,i=e=>`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}T${t(e.getHours())}:${t(e.getMinutes())}`,a=e=>{let t=n.exec(e);if(!t)return;let[r=0,i=0,a=0,o=0,s=0,c=0]=t.slice(1).map(e=>e===void 0?0:Number(e)),l=new Date(r,i-1,a,o,s,c);return l.getFullYear()===r&&l.getMonth()===i-1&&l.getDate()===a&&l.getHours()===o&&l.getMinutes()===s?l.toISOString():void 0},o=(e=new Date)=>{let t=new Date(e.getTime()+r/2);return t.setMinutes(0,0,0),i(new Date(t.getTime()+r))},s=()=>e().refine(e=>a(e)!==void 0,`validation.dateTime`);export{a as n,o as r,s as t};
|
|
2
|
+
//# sourceMappingURL=dateTimeLocal-DRq7DuYO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateTimeLocal-
|
|
1
|
+
{"version":3,"file":"dateTimeLocal-DRq7DuYO.js","names":["z.string","string","pad","value","DATE_TIME_LOCAL","HOUR_MS","toDateTimeLocalValue","date","dateTimeLocalToIso","match","year","month","day","hours","minutes","seconds","part","defaultScheduleValue","next","now","dateTimeLocalField"],"sources":["../../src/features/Publishing/helpers/dateTimeLocal.ts"],"sourcesContent":["import { z } from 'zod';\n\nconst pad = (value: number) => String(value).padStart(2, '0');\n\nconst DATE_TIME_LOCAL = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2}))?$/;\n\nconst HOUR_MS = 60 * 60 * 1000;\n\n/** `YYYY-MM-DDTHH:mm` in the browser's time zone: the value format of `<input type=\"datetime-local\">`. */\nexport const toDateTimeLocalValue = (date: Date): string =>\n `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`;\n\n/**\n * The instant a `datetime-local` value means (read in the browser's time zone) as an ISO string for the\n * API, or `undefined` when the value is not a real date and time (e.g. 31 February).\n */\nexport const dateTimeLocalToIso = (value: string): string | undefined => {\n const match = DATE_TIME_LOCAL.exec(value);\n if (!match) {\n return undefined;\n }\n // Seconds are optional in the value; a missing group reads as 0.\n const [year = 0, month = 0, day = 0, hours = 0, minutes = 0, seconds = 0] = match\n .slice(1)\n .map((part) => (part === undefined ? 0 : Number(part)));\n const date = new Date(year, month - 1, day, hours, minutes, seconds);\n const roundTrips =\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n date.getDate() === day &&\n date.getHours() === hours &&\n date.getMinutes() === minutes;\n return roundTrips ? date.toISOString() : undefined;\n};\n\n/** The default time offered for a new schedule: the start of the next hour, at least 30 minutes away. */\nexport const defaultScheduleValue = (now: Date = new Date()): string => {\n const next = new Date(now.getTime() + HOUR_MS / 2);\n next.setMinutes(0, 0, 0);\n return toDateTimeLocalValue(new Date(next.getTime() + HOUR_MS));\n};\n\n/** A form field holding a `datetime-local` value that must be a real date and time. */\nexport const dateTimeLocalField = () =>\n z.string().refine((value) => dateTimeLocalToIso(value) !== undefined, 'validation.dateTime');\n"],"mappings":"wCAEA,IAAME,EAAO,GAAkB,OAAOC,CAAK,CAAC,CAAC,SAAS,EAAG,GAAG,EAEtDC,EAAkB,yDAElBC,EAAU,KAGHC,EAAwB,GACnC,GAAGC,EAAK,YAAY,EAAE,GAAGL,EAAIK,EAAK,SAAS,EAAI,CAAC,EAAE,GAAGL,EAAIK,EAAK,QAAQ,CAAC,EAAE,GAAGL,EAAIK,EAAK,SAAS,CAAC,EAAE,GAAGL,EAAIK,EAAK,WAAW,CAAC,IAM9GC,EAAsB,GAAsC,CACvE,IAAMC,EAAQL,EAAgB,KAAKD,CAAK,EACxC,GAAI,CAACM,EACH,OAGF,GAAM,CAACC,EAAO,EAAGC,EAAQ,EAAGC,EAAM,EAAGC,EAAQ,EAAGC,EAAU,EAAGC,EAAU,GAAKN,EACzE,MAAM,CAAC,CAAC,CACR,IAAK,GAAUO,IAAS,IAAA,GAAY,EAAI,OAAOA,CAAI,CAAE,EAClDT,EAAO,IAAI,KAAKG,EAAMC,EAAQ,EAAGC,EAAKC,EAAOC,EAASC,CAAO,EAOnE,OALER,EAAK,YAAY,IAAMG,GACvBH,EAAK,SAAS,IAAMI,EAAQ,GAC5BJ,EAAK,QAAQ,IAAMK,GACnBL,EAAK,SAAS,IAAMM,GACpBN,EAAK,WAAW,IAAMO,EACJP,EAAK,YAAY,EAAI,IAAA,EAC3C,EAGaU,GAAwB,EAAY,IAAI,OAAmB,CACtE,IAAMC,EAAO,IAAI,KAAKC,EAAI,QAAQ,EAAId,EAAU,CAAC,EAEjD,OADAa,EAAK,WAAW,EAAG,EAAG,CAAC,EAChBZ,EAAqB,IAAI,KAAKY,EAAK,QAAQ,EAAIb,CAAO,CAAC,CAChE,EAGae,MACXpB,EAAS,CAAC,CAAC,OAAQ,GAAUQ,EAAmBL,CAAK,IAAM,IAAA,GAAW,qBAAqB"}
|