@shapio/cms 0.5.8 → 0.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/assets/{AssetTile-BrMzsUZD.js → AssetTile-DecaDqjj.js} +2 -2
- package/dist/admin/assets/{AssetTile-BrMzsUZD.js.map → AssetTile-DecaDqjj.js.map} +1 -1
- package/dist/admin/assets/AssistError-rslPtgWB.js +2 -0
- package/dist/admin/assets/{AssistError-Cs-r9Ssc.js.map → AssistError-rslPtgWB.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js → BlockMenuItems-JHFue7Qt.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-DsccXMc_.js.map → BlockMenuItems-JHFue7Qt.js.map} +1 -1
- package/dist/admin/assets/Body-7NgJl9Pi.js +2 -0
- package/dist/admin/assets/Body-7NgJl9Pi.js.map +1 -0
- package/dist/admin/assets/Builder-DmlYcgiP.js +2 -0
- package/dist/admin/assets/Builder-DmlYcgiP.js.map +1 -0
- package/dist/admin/assets/{CodeEditor-CBCR73Wd.js → CodeEditor-Dv1FtkvI.js} +2 -2
- package/dist/admin/assets/{CodeEditor-CBCR73Wd.js.map → CodeEditor-Dv1FtkvI.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-CxFsBHfF.js → CopyButton-Brnpfqe0.js} +2 -2
- package/dist/admin/assets/{CopyButton-CxFsBHfF.js.map → CopyButton-Brnpfqe0.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-BW2U3v6l.js → CursorPager-C7cAK5Qe.js} +2 -2
- package/dist/admin/assets/{CursorPager-BW2U3v6l.js.map → CursorPager-C7cAK5Qe.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-Bhtb1gUa.js} +2 -2
- package/dist/admin/assets/{FocalPoint-CpZTve1E.js.map → FocalPoint-Bhtb1gUa.js.map} +1 -1
- package/dist/admin/assets/Form-Cf1ephPH.js +2 -0
- package/dist/admin/assets/Form-Cf1ephPH.js.map +1 -0
- package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js +2 -0
- package/dist/admin/assets/FormCheckboxGroup-BzVZFR3W.js.map +1 -0
- package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js → FormRadioGroup-BzmLzRnI.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-Cfx5pvzU.js.map → FormRadioGroup-BzmLzRnI.js.map} +1 -1
- package/dist/admin/assets/FormSelectField-Cl7EjXc3.js +2 -0
- package/dist/admin/assets/FormSelectField-Cl7EjXc3.js.map +1 -0
- package/dist/admin/assets/FormSheet-CLZpd_7B.js +2 -0
- package/dist/admin/assets/FormSheet-CLZpd_7B.js.map +1 -0
- package/dist/admin/assets/{FormSwitchField-BLOh7qei.js → FormSwitchField-BbqQ3tx_.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-BLOh7qei.js.map → FormSwitchField-BbqQ3tx_.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-CO115n_u.js → FormTextareaField-9RN5Pt3B.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-CO115n_u.js.map → FormTextareaField-9RN5Pt3B.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-DzHnEdIK.js → HintedLabel-D9IVF0EE.js} +2 -2
- package/dist/admin/assets/{HintedLabel-DzHnEdIK.js.map → HintedLabel-D9IVF0EE.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-CSEtcHjL.js → InfoHint-tlSeZB9U.js} +2 -2
- package/dist/admin/assets/{InfoHint-CSEtcHjL.js.map → InfoHint-tlSeZB9U.js.map} +1 -1
- package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js → InlineConfirm-Kj9AOIFO.js} +2 -2
- package/dist/admin/assets/{InlineConfirm-yW-iUKFC.js.map → InlineConfirm-Kj9AOIFO.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js → InsertMenuItem-CHAp2tH7.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-CCr9e0qY.js.map → InsertMenuItem-CHAp2tH7.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-BfNRwPfR.js} +2 -2
- package/dist/admin/assets/{Match-CcD9KxHH.js.map → Match-BfNRwPfR.js.map} +1 -1
- package/dist/admin/assets/{NoAccess-C8RLPN0I.js → NoAccess-DnEpYj9l.js} +2 -2
- package/dist/admin/assets/{NoAccess-C8RLPN0I.js.map → NoAccess-DnEpYj9l.js.map} +1 -1
- package/dist/admin/assets/Panel-Bcl09TtM.js.map +1 -1
- package/dist/admin/assets/{QueryView-xMP_uJ_t.js → QueryView-B86NcRt5.js} +2 -2
- package/dist/admin/assets/{QueryView-xMP_uJ_t.js.map → QueryView-B86NcRt5.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-DQFmni5A.js → RadioTile-Bwd2Pmlk.js} +2 -2
- package/dist/admin/assets/RadioTile-Bwd2Pmlk.js.map +1 -0
- package/dist/admin/assets/{RichTextField-CVHRIbnu.js → RichTextField-Dou79MHF.js} +4 -4
- package/dist/admin/assets/RichTextField-Dou79MHF.js.map +1 -0
- package/dist/admin/assets/{RowTitle-Bqt6evG9.js → RowTitle-DH9OZs3g.js} +2 -2
- package/dist/admin/assets/{RowTitle-Bqt6evG9.js.map → RowTitle-DH9OZs3g.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js → SecretReveal-D95oACLj.js} +2 -2
- package/dist/admin/assets/{SecretReveal-Bm6nYg5J.js.map → SecretReveal-D95oACLj.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js → SharedGlyph-Chwb1EIS.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-cUmTh0_C.js.map → SharedGlyph-Chwb1EIS.js.map} +1 -1
- package/dist/admin/assets/StepList-D9iHsUZJ.js +2 -0
- package/dist/admin/assets/StepList-D9iHsUZJ.js.map +1 -0
- package/dist/admin/assets/Structure-CewJL1b3.js +2 -0
- package/dist/admin/assets/{Structure-D8csgrIt.js.map → Structure-CewJL1b3.js.map} +1 -1
- package/dist/admin/assets/{SubNavLink-CiCaVV8U.js → SubNavLink-7Cs1LqMv.js} +2 -2
- package/dist/admin/assets/SubNavLink-7Cs1LqMv.js.map +1 -0
- package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js → SuggestAltButton-BK1uo4yC.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-CvIoirnz.js.map → SuggestAltButton-BK1uo4yC.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-C2A_Ub77.js} +2 -2
- package/dist/admin/assets/{Thumbnail-DNj5TRBI.js.map → Thumbnail-C2A_Ub77.js.map} +1 -1
- package/dist/admin/assets/Trans-CPoNNUK1.js +2 -0
- package/dist/admin/assets/Trans-CPoNNUK1.js.map +1 -0
- package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js → UnsavedChangesGuard-BsEyn9oH.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-CUiuMklN.js.map → UnsavedChangesGuard-BsEyn9oH.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar-p-jV-LoD.js → UserAvatar-CgGKOFfP.js} +2 -2
- package/dist/admin/assets/{UserAvatar-p-jV-LoD.js.map → UserAvatar-CgGKOFfP.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-DGqA_yr_.js} +2 -2
- package/dist/admin/assets/{badge-CqKF1pwz.js.map → badge-DGqA_yr_.js.map} +1 -1
- package/dist/admin/assets/baseExtensions-TVKN1UwW.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-B6HxCJ4A.js +2 -0
- package/dist/admin/assets/{changeSets-8EburmT0.js.map → changeSets-B6HxCJ4A.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/cn-DVhJ55Mo.js.map +1 -1
- package/dist/admin/assets/{constants-a_15vqOh.js → constants-DY3YJAKH.js} +2 -2
- package/dist/admin/assets/{constants-a_15vqOh.js.map → constants-DY3YJAKH.js.map} +1 -1
- package/dist/admin/assets/content-BNZF26Ve.js +3 -0
- package/dist/admin/assets/content-BNZF26Ve.js.map +1 -0
- package/dist/admin/assets/{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-Bz2xpqGf.js} +2 -2
- package/dist/admin/assets/{contentTypes-84uc0bjR.js.map → contentTypes-Bz2xpqGf.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-D6CtwuYj.js +11 -0
- package/dist/admin/assets/develop-D6CtwuYj.js.map +1 -0
- package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js → dropdown-menu-Bz7CLcRK.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-_xfaEp5C.js.map → dropdown-menu-Bz7CLcRK.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-Cv57ynE1.js +42 -0
- package/dist/admin/assets/es2015-Cv57ynE1.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-D-xWW2E7.js} +2 -2
- package/dist/admin/assets/{field-COOzRptX.js.map → field-D-xWW2E7.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-DMal-zYL.js} +2 -2
- package/dist/admin/assets/{fileRoute-s7mCMYUJ.js.map → fileRoute-DMal-zYL.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-CsgeALTW.js +2 -0
- package/dist/admin/assets/followPlural-CsgeALTW.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-C0PVc6UI.js +2 -0
- package/dist/admin/assets/inbox-C0PVc6UI.js.map +1 -0
- 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/index-BqtCXB0u.js +4 -0
- package/dist/admin/assets/index-BqtCXB0u.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-BtktCNGw.js} +2 -2
- package/dist/admin/assets/{labels-DQckbLGW.js.map → labels-BtktCNGw.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-CeZGDGh7.js} +2 -2
- package/dist/admin/assets/{media-CURizGns.js.map → media-CeZGDGh7.js.map} +1 -1
- package/dist/admin/assets/network-BflLSKFO.js +2 -0
- package/dist/admin/assets/network-BflLSKFO.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-BkxBplUZ.js +2 -0
- package/dist/admin/assets/publishing-BkxBplUZ.js.map +1 -0
- package/dist/admin/assets/{radio-group-4ok5evXq.js → radio-group-CRuWQnuV.js} +2 -2
- package/dist/admin/assets/{radio-group-4ok5evXq.js.map → radio-group-CRuWQnuV.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-6eUoC8fJ.js +2 -0
- package/dist/admin/assets/schema-6eUoC8fJ.js.map +1 -0
- 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-DAnwh3I3.js} +2 -2
- package/dist/admin/assets/{searchSchemas-CSScloG8.js.map → searchSchemas-DAnwh3I3.js.map} +1 -1
- package/dist/admin/assets/{sections-DqBzSKMP.js → sections-CWL-XD6m.js} +2 -2
- package/dist/admin/assets/sections-CWL-XD6m.js.map +1 -0
- 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/{select-C0USI-Ox.js → select-DVrPV1b3.js} +2 -2
- package/dist/admin/assets/{select-C0USI-Ox.js.map → select-DVrPV1b3.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-CqnrPmzR.js +2 -0
- package/dist/admin/assets/{settings-B60vHpZd.js.map → settings-CqnrPmzR.js.map} +1 -1
- package/dist/admin/assets/shapes-ZAkMBB-Z.js +6 -0
- package/dist/admin/assets/shapes-ZAkMBB-Z.js.map +1 -0
- package/dist/admin/assets/{skeleton-B5MP72Kw.js → skeleton-CiX26LnL.js} +2 -2
- package/dist/admin/assets/{skeleton-B5MP72Kw.js.map → skeleton-CiX26LnL.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-CiVf05NF.js} +2 -2
- package/dist/admin/assets/{switch-Dp6WYNam.js.map → switch-CiVf05NF.js.map} +1 -1
- package/dist/admin/assets/{theme-65PB8uAu.js → theme-Cv-MfOv8.js} +2 -2
- package/dist/admin/assets/theme-Cv-MfOv8.js.map +1 -0
- 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-Bqf3oyqC.js} +2 -2
- package/dist/admin/assets/{tooltip-BGP1DVBt.js.map → tooltip-Bqf3oyqC.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-B_q1rMrG.js +2 -0
- package/dist/admin/assets/useContentSchema-B_q1rMrG.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-C4QTfiU4.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-BskWSlbT.js.map → useDiscardGuard-C4QTfiU4.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js → useMediaPickerDialog-BLrVV1Kn.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-CU-ekPqX.js.map → useMediaPickerDialog-BLrVV1Kn.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-CBcq1ICg.js → useMediaUploader-CFy6lasO.js} +2 -2
- package/dist/admin/assets/useMediaUploader-CFy6lasO.js.map +1 -0
- package/dist/admin/assets/useModelIndex-NU-WlHQY.js +2 -0
- package/dist/admin/assets/useModelIndex-NU-WlHQY.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-BA4x6503.js +2 -0
- package/dist/admin/assets/usePlaces-BA4x6503.js.map +1 -0
- package/dist/admin/assets/useResolvedDefinitions-30lnwFQ1.js +2 -0
- package/dist/admin/assets/useResolvedDefinitions-30lnwFQ1.js.map +1 -0
- package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js → useResolvedScheme-BVM4qLct.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-C8vcQVko.js.map → useResolvedScheme-BVM4qLct.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-ZaQjjiAq.js} +2 -2
- package/dist/admin/assets/{zod-Cry7YvLY.js.map → zod-ZaQjjiAq.js.map} +1 -1
- package/dist/admin/index.html +60 -58
- package/dist/cli.js +1 -1
- package/dist/{cliMain-papyXJDd.js → cliMain-CTntiVc2.js} +107 -30
- package/dist/cliMain-CTntiVc2.js.map +1 -0
- package/dist/config.d.ts +2 -2
- package/dist/config.js +1 -1
- package/dist/{contentDisposition-DOL2Xt0l.js → contentDisposition-DzhPhncr.js} +2 -2
- package/dist/{contentDisposition-DOL2Xt0l.js.map → contentDisposition-DzhPhncr.js.map} +1 -1
- package/dist/index.d.ts +43 -6
- package/dist/index.js +2 -2
- package/dist/{public-COKbHR-N.d.ts → public-CMFaGDyf.d.ts} +50 -8
- package/dist/{public-B57h4F7Y.js → public-sJCQaNaP.js} +2 -2
- package/dist/public-sJCQaNaP.js.map +1 -0
- package/dist/{s3Adapter-U01iEAcK.js → s3Adapter-CZcCl0sy.js} +2 -2
- package/dist/{s3Adapter-U01iEAcK.js.map → s3Adapter-CZcCl0sy.js.map} +1 -1
- package/dist/{worker-B-sC-eY2.js → worker-DHm2JwMZ.js} +3140 -1292
- package/dist/worker-DHm2JwMZ.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/FormCheckboxGroup-DeeaYnzB.js +0 -2
- package/dist/admin/assets/FormCheckboxGroup-DeeaYnzB.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/RadioTile-DQFmni5A.js.map +0 -1
- package/dist/admin/assets/RichTextField-CVHRIbnu.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/SubNavLink-CiCaVV8U.js.map +0 -1
- 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/publishing-Dke9bSKp.js.map +0 -1
- package/dist/admin/assets/schedules-BmB9Y73z.js +0 -2
- package/dist/admin/assets/schema-D-qo7XSF.js +0 -2
- package/dist/admin/assets/schema-D-qo7XSF.js.map +0 -1
- package/dist/admin/assets/sections-DqBzSKMP.js.map +0 -1
- 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/theme-65PB8uAu.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/useMediaUploader-CBcq1ICg.js.map +0 -1
- 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/public-B57h4F7Y.js.map +0 -1
- package/dist/worker-B-sC-eY2.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-
|
|
2
|
-
//# sourceMappingURL=stableId-
|
|
1
|
+
import{t as e}from"./createLucideIcon-BOsNKleB.js";var t={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};t.node;var n=e(t),r=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),i=()=>{if(typeof globalThis.crypto.randomUUID==`function`)return globalThis.crypto.randomUUID();let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=r(e);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`};export{n,i as t};
|
|
2
|
+
//# sourceMappingURL=stableId-g1uxJGSz.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stableId-
|
|
1
|
+
{"version":3,"file":"stableId-g1uxJGSz.js","names":["createLucideIcon","__iconData","GripVertical","hex","bytes","byte","newStableId","value"],"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/grip-vertical.mjs","../../src/helpers/stableId.ts"],"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: \"grip-vertical\",\n size: 24,\n node: [\n [\"circle\", { cx: \"9\", cy: \"12\", r: \"1\", key: \"1vctgf\" }],\n [\"circle\", { cx: \"9\", cy: \"5\", r: \"1\", key: \"hp0tcf\" }],\n [\"circle\", { cx: \"9\", cy: \"19\", r: \"1\", key: \"fkjjf6\" }],\n [\"circle\", { cx: \"15\", cy: \"12\", r: \"1\", key: \"1tmaij\" }],\n [\"circle\", { cx: \"15\", cy: \"5\", r: \"1\", key: \"19l28e\" }],\n [\"circle\", { cx: \"15\", cy: \"19\", r: \"1\", key: \"f4zoj3\" }]\n ]\n};\n__iconData.node;\nconst GripVertical = createLucideIcon(__iconData);\n\nexport { __iconData, GripVertical as default };\n//# sourceMappingURL=grip-vertical.mjs.map\n","const hex = (bytes: Uint8Array) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('');\n\n/**\n * A random v4 UUID for new fields (the stable-ID format of @shapio/schema). `crypto.randomUUID` only exists\n * in secure contexts, and self-hosters may open the admin over plain HTTP on a LAN address, so this falls\n * back to `crypto.getRandomValues`, which works everywhere.\n */\nexport const newStableId = (): string => {\n if (typeof globalThis.crypto.randomUUID === 'function') {\n return globalThis.crypto.randomUUID();\n }\n const bytes = globalThis.crypto.getRandomValues(new Uint8Array(16));\n bytes[6] = ((bytes[6] ?? 0) & 0x0f) | 0x40;\n bytes[8] = ((bytes[8] ?? 0) & 0x3f) | 0x80;\n const value = hex(bytes);\n return `${value.slice(0, 8)}-${value.slice(8, 12)}-${value.slice(12, 16)}-${value.slice(16, 20)}-${value.slice(20)}`;\n};\n"],"ignoreList":[0],"mappings":"mDASA,IAAMC,EAAa,CACjB,KAAM,gBACN,KAAM,GACN,KAAM,CACJ,CAAC,SAAU,CAAE,GAAI,IAAK,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,EACvD,CAAC,SAAU,CAAE,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,QAAS,CAAC,EACtD,CAAC,SAAU,CAAE,GAAI,IAAK,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,EACvD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,EACxD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,IAAK,EAAG,IAAK,IAAK,QAAS,CAAC,EACvD,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,IAAK,IAAK,QAAS,CAAC,CAC1D,CACF,EACAA,EAAW,KACX,IAAMC,EAAeF,EAAiBC,CAAU,ECtB1CE,EAAO,GAAsB,MAAM,KAAKC,EAAQ,GAASC,EAAK,SAAS,EAAE,CAAC,CAAC,SAAS,EAAG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAO7FC,MAA4B,CACvC,GAAI,OAAO,WAAW,OAAO,YAAe,WAC1C,OAAO,WAAW,OAAO,WAAW,EAEtC,IAAMF,EAAQ,WAAW,OAAO,gBAAgB,IAAI,WAAW,EAAE,CAAC,EAClE,EAAM,IAAOA,EAAM,IAAM,GAAK,GAAQ,GACtC,EAAM,IAAOA,EAAM,IAAM,GAAK,GAAQ,IACtC,IAAMG,EAAQJ,EAAIC,CAAK,EACvB,MAAO,GAAGG,EAAM,MAAM,EAAG,CAAC,EAAE,GAAGA,EAAM,MAAM,EAAG,EAAE,EAAE,GAAGA,EAAM,MAAM,GAAI,EAAE,EAAE,GAAGA,EAAM,MAAM,GAAI,EAAE,EAAE,GAAGA,EAAM,MAAM,EAAE,GACnH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=store-
|
|
1
|
+
import{Lt as e}from"./src-CMor9izq.js";var t=e()(e=>({open:!1,returnFocus:null,setOpen:t=>e(e=>t&&!e.open?{open:t,returnFocus:document.activeElement instanceof HTMLElement?document.activeElement:null}:{open:t}),registrations:new Map,register:(t,n)=>e(e=>({registrations:new Map(e.registrations).set(t,n)})),unregister:t=>e(e=>{let n=new Map(e.registrations);return n.delete(t),{registrations:n}})}));export{t};
|
|
2
|
+
//# sourceMappingURL=store-CznhNKEi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-
|
|
1
|
+
{"version":3,"file":"store-CznhNKEi.js","names":["create","usePaletteStore","set","open","state","id","registration","registrations"],"sources":["../../src/components/CommandPalette/store.ts"],"sourcesContent":["import { create } from 'zustand';\nimport type { PaletteItem, RegisteredGroup } from './types';\n\ntype Registration = { group: RegisteredGroup; items: readonly PaletteItem[] };\n\ntype PaletteState = {\n open: boolean;\n /** What had focus when the palette opened; it gets focus back when the palette closes. */\n returnFocus: HTMLElement | null;\n setOpen: (open: boolean) => void;\n /** Items registered by mounted screens and the shell, by registration ID. */\n registrations: ReadonlyMap<string, Registration>;\n register: (id: string, registration: Registration) => void;\n unregister: (id: string) => void;\n};\n\n/** Whether the palette is open and what the mounted screens offer in it (client-only state). */\nexport const usePaletteStore = create<PaletteState>()((set) => ({\n open: false,\n returnFocus: null,\n setOpen: (open) =>\n set((state) =>\n open && !state.open\n ? { open, returnFocus: document.activeElement instanceof HTMLElement ? document.activeElement : null }\n : { open },\n ),\n registrations: new Map(),\n register: (id, registration) =>\n set((state) => ({ registrations: new Map(state.registrations).set(id, registration) })),\n unregister: (id) =>\n set((state) => {\n const registrations = new Map(state.registrations);\n registrations.delete(id);\n return { registrations };\n }),\n}));\n"],"mappings":"uCAiBA,IAAaC,EAAkBD,EAAqB,CAAC,CAAE,IAAS,CAC9D,KAAM,GACN,YAAa,KACb,QAAU,GACRE,EAAK,GACHC,GAAQ,CAACC,EAAM,KACX,CAAE,OAAM,YAAa,SAAS,yBAAyB,YAAc,SAAS,cAAgB,IAAK,EACnG,CAAE,MAAK,CACb,EACF,cAAe,IAAI,IACnB,UAAW,EAAI,IACbF,EAAK,IAAW,CAAE,cAAe,IAAI,IAAIE,EAAM,aAAa,CAAC,CAAC,IAAIC,EAAIC,CAAY,CAAE,EAAE,EACxF,WAAa,GACXJ,EAAK,GAAU,CACb,IAAMK,EAAgB,IAAI,IAAIH,EAAM,aAAa,EAEjD,OADAG,EAAc,OAAOF,CAAE,EAChB,CAAE,eAAc,CACzB,CAAC,CACL,EAAE"}
|
|
@@ -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{x as r}from"./InfoHint-
|
|
2
|
-
//# sourceMappingURL=switch-
|
|
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{x as r}from"./InfoHint-tlSeZB9U.js";import{b as i,d as a,h as o,m as s,p as c}from"./es2015-Cv57ynE1.js";import{t as l}from"./cn-DVhJ55Mo.js";var u=e(t(),1),d=e(n(),1),f=Object.defineProperty,p=(e,t)=>f(e,`name`,{value:t,configurable:!0}),m=`Switch`,[h,g]=s(m),[_,v]=h(m);function y(e){let{__scopeSwitch:t,checked:n,children:r,defaultChecked:i,disabled:o,form:s,name:c,onCheckedChange:l,required:f,value:p=`on`,internal_do_not_use_render:h}=e,[g,v]=a({prop:n,defaultProp:i??!1,onChange:l,caller:m}),[y,b]=u.useState(null),[x,S]=u.useState(null),C=u.useRef(!1),[w,T]=u.useReducer(e=>e+1,0),E={checked:g,setChecked:v,disabled:o,control:y,setControl:b,name:c,form:s,value:p,hasConsumerStoppedPropagationRef:C,userInteractionCount:w,onUserInteraction:T,required:f,defaultChecked:i,isFormControl:!y||!!s||!!y.closest(`form`),bubbleInput:x,setBubbleInput:S};return(0,d.jsx)(_,{scope:t,...E,children:D(h)?h(E):r})}p(y,`SwitchProvider`);var b=`SwitchTrigger`,x=u.forwardRef(p(function({__scopeSwitch:e,onClick:t,...n},r){let{control:a,form:s,value:l,disabled:f,checked:m,required:h,setControl:g,setChecked:_,hasConsumerStoppedPropagationRef:y,onUserInteraction:x,isFormControl:S,bubbleInput:C}=v(b,e),w=i(r,g),T=u.useRef(m);return u.useEffect(()=>{let e=s?a?.ownerDocument.getElementById(s):a?.form;if(e instanceof HTMLFormElement){let t=p(()=>_(T.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,s,_]),(0,d.jsx)(o.button,{type:`button`,role:`switch`,"aria-checked":m,"aria-required":h,"data-state":O(m),"data-disabled":f?``:void 0,disabled:f,value:l,...n,ref:w,onClick:c(t,e=>{x(),_(e=>!e),C&&S&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})})},`SwitchTrigger`)),S=u.forwardRef(p(function(e,t){let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...f}=e;return(0,d.jsx)(y,{__scopeSwitch:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(x,{...f,ref:t,__scopeSwitch:n}),e&&(0,d.jsx)(E,{__scopeSwitch:n})]})})},`Switch`)),C=`SwitchThumb`,w=u.forwardRef(p(function(e,t){let{__scopeSwitch:n,...r}=e,i=v(C,n);return(0,d.jsx)(o.span,{"data-state":O(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})},`SwitchThumb`)),T=`SwitchBubbleInput`,E=u.forwardRef(p(function({__scopeSwitch:e,onClick:t,...n},a){let{control:s,hasConsumerStoppedPropagationRef:l,userInteractionCount:f,checked:p,defaultChecked:m,required:h,disabled:g,name:_,value:y,form:b,bubbleInput:x,setBubbleInput:S}=v(T,e),C=i(a,S),w=r(s),E=u.useRef(!1),D=u.useRef(p),O=u.useRef(f);u.useEffect(()=>{let e=x;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=f!==O.current;O.current=f;let i=D.current!==p;D.current=p;let a=!(r&&l.current);if(i&&n){E.current=!r;let t=new Event(`click`,{bubbles:a});n.call(e,p),e.dispatchEvent(t),E.current=!1}},[x,p,l,f]);let k=u.useRef(p);return(0,d.jsx)(o.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:m??k.current,required:h,disabled:g,name:_,value:y,form:b,...n,tabIndex:-1,ref:C,onClick:c(t,e=>{E.current&&e.stopPropagation()}),style:{...n.style,...w,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`SwitchBubbleInput`));function D(e){return typeof e==`function`}p(D,`isFunction`);function O(e){return e?`checked`:`unchecked`}p(O,`getState`);function k({className:e,size:t=`default`,...n}){return(0,d.jsx)(S,{"data-slot":`switch`,"data-size":t,className:l(`peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80`,e),...n,children:(0,d.jsx)(w,{"data-slot":`switch-thumb`,className:l(`pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground`)})})}export{k as t};
|
|
2
|
+
//# sourceMappingURL=switch-CiVf05NF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-Dp6WYNam.js","names":["Switch","Fragment","SwitchPrimitive.Root","SwitchPrimitive.Thumb","__toESM","require_jsx_runtime","useSize","useComposedRefs","useControllableState","Primitive","createContextScope","composeEventHandlers","cn","import_react","require_react","import_jsx_runtime","__defProp","__name","target","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","checkedProp","props","checked","setChecked","defaultChecked","onCheckedChange","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","count","context","form","__scopeSwitch","isFunction","internal_do_not_use_render","children","TRIGGER_NAME","SwitchTrigger","switchProps","composedRefs","forwardedRef","initialCheckedStateRef","associatedForm","reset","required","getState","disabled","onClick","prevChecked","isFormControl","event","Switch$1","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","value","Switch","size","className"],"sources":["../../../../node_modules/.pnpm/@radix-ui+react-switch@1.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_b893b13323262102390249914712580a/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(SwitchProvider, \"SwitchProvider\");\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchTrigger2({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"SwitchTrigger\")\n);\nvar Switch = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Switch2(props, forwardedRef) {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }, \"Switch\")\n);\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchThumb2(props, forwardedRef) {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }, \"SwitchThumb\")\n);\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SwitchBubbleInput2({ __scopeSwitch, onClick, ...props }, forwardedRef) {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"SwitchBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground',\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"switch-CiVf05NF.js","names":["Switch","Fragment","SwitchPrimitive.Root","SwitchPrimitive.Thumb","__toESM","require_jsx_runtime","useSize","useComposedRefs","useControllableState","Primitive","createContextScope","composeEventHandlers","cn","import_react","require_react","import_jsx_runtime","__defProp","__name","target","SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProviderImpl","useSwitchContext","SwitchProvider","checkedProp","props","checked","setChecked","defaultChecked","onCheckedChange","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","count","context","form","__scopeSwitch","isFunction","internal_do_not_use_render","children","TRIGGER_NAME","SwitchTrigger","switchProps","composedRefs","forwardedRef","initialCheckedStateRef","associatedForm","reset","required","getState","disabled","onClick","prevChecked","isFormControl","event","Switch$1","SwitchBubbleInput","THUMB_NAME","SwitchThumb","thumbProps","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","value","Switch","size","className"],"sources":["../../../../node_modules/.pnpm/@radix-ui+react-switch@1.3.7_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@_b893b13323262102390249914712580a/node_modules/@radix-ui/react-switch/dist/index.mjs","../../src/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nfunction SwitchProvider(props) {\n const {\n __scopeSwitch,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n setChecked,\n disabled,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(SwitchProviderImpl, { scope: __scopeSwitch, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(SwitchProvider, \"SwitchProvider\");\nvar TRIGGER_NAME = \"SwitchTrigger\";\nvar SwitchTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchTrigger2({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) {\n const {\n control,\n form,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.form;\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"SwitchTrigger\")\n);\nvar Switch = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Switch2(props, forwardedRef) {\n const {\n __scopeSwitch,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n return /* @__PURE__ */ jsx(\n SwitchProvider,\n {\n __scopeSwitch,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n SwitchTrigger,\n {\n ...switchProps,\n ref: forwardedRef,\n __scopeSwitch\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n __scopeSwitch\n }\n )\n ] })\n }\n );\n }, \"Switch\")\n);\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function SwitchThumb2(props, forwardedRef) {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }, \"SwitchThumb\")\n);\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function SwitchBubbleInput2({ __scopeSwitch, onClick, ...props }, forwardedRef) {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"SwitchBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Switch as Root,\n Switch,\n SwitchThumb,\n SwitchThumb as Thumb,\n createSwitchScope,\n SwitchBubbleInput as unstable_BubbleInput,\n SwitchProvider as unstable_Provider,\n SwitchBubbleInput as unstable_SwitchBubbleInput,\n SwitchProvider as unstable_SwitchProvider,\n SwitchTrigger as unstable_SwitchTrigger,\n SwitchTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n 'peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground',\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"ignoreList":[0],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=theme-
|
|
1
|
+
import{Lt as e,Nt as t,Pt as n,n as r,r as i}from"./src-CMor9izq.js";var a=(e,t)=>t.includes(e)?e:t[0]??e,o=(e,t)=>`${e}:${t}`,s=[{key:`shapio`,variants:[`dark`]},{key:`classic`,variants:[`dark`]},{key:`murdered-out`,variants:[`dark`]},{key:`forest`,variants:[`dark`]},{key:`snowed`,variants:[`light`]},{key:`butter`,variants:[`light`]}],c=`shapio`,l=[`dark`],u=`shapio.theme`,d=3,f={theme:c,appearance:`dark`,variants:l},p={theme:`classic`,appearance:`dark`,variants:[`dark`]},m=e=>typeof e==`object`&&!!e,h=e=>typeof e==`string`&&i.includes(e),g=(e,t)=>t<2?p:_(m(e)?e:{}),_=e=>{let t=typeof e.theme==`string`&&r.test(e.theme)?e.theme:f.theme,n=Array.isArray(e.variants)?i.filter(t=>e.variants.includes(t)):[],o=s.find(e=>e.key===t)?.variants??(n.length>0?n:f.variants);return{theme:t,appearance:a(h(e.appearance)?e.appearance:o[0]??`dark`,o),variants:o}},v=e()(n(e=>({...f,setLook:(t,n,r)=>e({theme:t,appearance:n,variants:r})}),{name:u,storage:t,version:d,migrate:g,partialize:({theme:e,appearance:t,variants:n})=>({theme:e,appearance:t,variants:n}),merge:(e,t)=>({...t,..._(m(e)?e:{})})}));export{o as a,l as i,s as n,a as o,c as r,v as t};
|
|
2
|
+
//# sourceMappingURL=theme-Cv-MfOv8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-Cv-MfOv8.js","names":["create","persistentStorage","persist","THEME_KEY_PATTERN","THEME_VARIANTS","resolveScheme","variants","appearance","lookValue","theme","variant","BUILT_IN_THEMES","DEFAULT_THEME_KEY","DEFAULT_THEME_VARIANTS","THEME_STORAGE_KEY","THEME_STORAGE_VERSION","DEFAULT_THEME_STATE","LEGACY_THEME_STATE","isRecord","value","isThemeVariant","migrateThemeState","version","sanitizeThemeState","persisted","state","cached","meta","useThemeStore","set","current"],"sources":["../../src/helpers/theme.ts","../../src/constants/themes.ts","../../src/stores/theme.ts"],"sourcesContent":["import type { ThemeVariant } from '@shapio/schema';\n\n/**\n * The variant actually rendered: the saved one when the theme has it, else the theme's first. Nothing follows\n * the operating system. public/theme-init.js repeats this before first paint (test/themeInit.test.ts keeps\n * the two in step).\n */\nexport const resolveScheme = (appearance: ThemeVariant, variants: readonly ThemeVariant[]): ThemeVariant =>\n variants.includes(appearance) ? appearance : (variants[0] ?? appearance);\n\n/** A look is one variant of one theme; its radio value is `<theme key>:<variant>` (keys never hold a colon). */\nexport const lookValue = (theme: string, variant: ThemeVariant) => `${theme}:${variant}`;\n","import type { BuiltInThemeKey, ThemeVariant } from '@shapio/schema';\n\nexport type BuiltInThemeMeta = {\n key: BuiltInThemeKey;\n /** The one variant the theme defines (styles/themes/<key>.css): every built-in theme is a single look. */\n variants: readonly ThemeVariant[];\n};\n\n/** The admin's own looks, in menu order: dark, then light. Names and descriptions: `appearance.themes.<key>.*`. */\nexport const BUILT_IN_THEMES: readonly BuiltInThemeMeta[] = [\n { key: 'shapio', variants: ['dark'] },\n { key: 'classic', variants: ['dark'] },\n { key: 'murdered-out', variants: ['dark'] },\n { key: 'forest', variants: ['dark'] },\n { key: 'snowed', variants: ['light'] },\n { key: 'butter', variants: ['light'] },\n];\n\nexport const DEFAULT_THEME_KEY: BuiltInThemeKey = 'shapio';\n\nexport const DEFAULT_THEME_VARIANTS: readonly ThemeVariant[] = ['dark'];\n","import { THEME_KEY_PATTERN, THEME_VARIANTS, type ThemeVariant } from '@shapio/schema';\nimport { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport { BUILT_IN_THEMES, DEFAULT_THEME_KEY, DEFAULT_THEME_VARIANTS } from '@/constants/themes';\nimport { persistentStorage } from '@/helpers/safeStorage';\nimport { resolveScheme } from '@/helpers/theme';\n\ntype ThemeState = {\n /** A theme key: built in (constants/themes.ts) or declared by an extension. */\n theme: string;\n /** The variant of that theme the person picked (a look is one theme in one variant). */\n appearance: ThemeVariant;\n /**\n * The chosen theme's variants, cached so public/theme-init.js can render an extension theme's look before\n * the admin has loaded the theme list.\n */\n variants: readonly ThemeVariant[];\n setLook: (theme: string, appearance: ThemeVariant, variants: readonly ThemeVariant[]) => void;\n};\n\n/** Key and shape are read before first paint by public/theme-init.js; keep them in sync. */\nexport const THEME_STORAGE_KEY = 'shapio.theme';\n\n/** 1: `{ preference }`, before themes. 2: themes plus System / Light / Dark. 3: one look, nothing follows the OS. */\nconst THEME_STORAGE_VERSION = 3;\n\ntype PersistedTheme = Pick<ThemeState, 'theme' | 'appearance' | 'variants'>;\n\nexport const DEFAULT_THEME_STATE: PersistedTheme = {\n theme: DEFAULT_THEME_KEY,\n appearance: 'dark',\n variants: DEFAULT_THEME_VARIANTS,\n};\n\n/** Version 1 (the original palette, any color mode) becomes Cobalt, the original dark look. */\nconst LEGACY_THEME_STATE: PersistedTheme = { theme: 'classic', appearance: 'dark', variants: ['dark'] };\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null;\n\nconst isThemeVariant = (value: unknown): value is ThemeVariant =>\n typeof value === 'string' && (THEME_VARIANTS as readonly string[]).includes(value);\n\nexport const migrateThemeState = (persisted: unknown, version: number): PersistedTheme =>\n version < 2 ? LEGACY_THEME_STATE : sanitizeThemeState(isRecord(persisted) ? persisted : {});\n\n/**\n * Drops anything malformed (edited storage, an older admin) back to the defaults, field by field. A built-in\n * theme's variants come from the registry, not the cache (they changed in version 3), and the appearance is\n * always a variant the theme has: version 2's \"system\", or a variant a theme lost, becomes its first.\n */\nconst sanitizeThemeState = (state: Record<string, unknown>): PersistedTheme => {\n const theme =\n typeof state.theme === 'string' && THEME_KEY_PATTERN.test(state.theme)\n ? state.theme\n : DEFAULT_THEME_STATE.theme;\n const cached = Array.isArray(state.variants)\n ? THEME_VARIANTS.filter((variant) => (state.variants as unknown[]).includes(variant))\n : [];\n const variants =\n BUILT_IN_THEMES.find((meta) => meta.key === theme)?.variants ??\n (cached.length > 0 ? cached : DEFAULT_THEME_STATE.variants);\n const appearance = isThemeVariant(state.appearance) ? state.appearance : (variants[0] ?? 'dark');\n return { theme, appearance: resolveScheme(appearance, variants), variants };\n};\n\nexport const useThemeStore = create<ThemeState>()(\n persist(\n (set) => ({\n ...DEFAULT_THEME_STATE,\n setLook: (theme, appearance, variants) => set({ theme, appearance, variants }),\n }),\n {\n name: THEME_STORAGE_KEY,\n storage: persistentStorage,\n version: THEME_STORAGE_VERSION,\n migrate: migrateThemeState,\n partialize: ({ theme, appearance, variants }) => ({ theme, appearance, variants }),\n merge: (persisted, current) => ({\n ...current,\n ...sanitizeThemeState(isRecord(persisted) ? persisted : {}),\n }),\n },\n ),\n);\n"],"mappings":"qEAOA,IAAaK,GAAiB,EAA0B,IACtDC,EAAS,SAASC,CAAU,EAAIA,EAAcD,EAAS,IAAMC,EAGlDC,GAAa,EAAe,IAA0B,GAAGC,EAAM,GAAGC,ICFlEC,EAA+C,CAC1D,CAAE,IAAK,SAAU,SAAU,CAAC,MAAM,CAAE,EACpC,CAAE,IAAK,UAAW,SAAU,CAAC,MAAM,CAAE,EACrC,CAAE,IAAK,eAAgB,SAAU,CAAC,MAAM,CAAE,EAC1C,CAAE,IAAK,SAAU,SAAU,CAAC,MAAM,CAAE,EACpC,CAAE,IAAK,SAAU,SAAU,CAAC,OAAO,CAAE,EACrC,CAAE,IAAK,SAAU,SAAU,CAAC,OAAO,CAAE,CACvC,EAEaC,EAAqC,SAErCC,EAAkD,CAAC,MAAM,ECCzDC,EAAoB,eAG3BC,EAAwB,EAIjBC,EAAsC,CACjD,MAAOJ,EACP,WAAY,OACZ,SAAUC,CACZ,EAGMI,EAAqC,CAAE,MAAO,UAAW,WAAY,OAAQ,SAAU,CAAC,MAAM,CAAE,EAEhGC,EAAY,GAChB,OAAOC,GAAU,YAAYA,EAEzBC,EAAkB,GACtB,OAAOD,GAAU,UAAaf,EAAqC,SAASe,CAAK,EAEtEE,GAAqB,EAAoB,IACpDC,EAAU,EAAIL,EAAqBM,EAAmBL,EAASM,CAAS,EAAIA,EAAY,CAAC,CAAC,EAOtFD,EAAsB,GAAmD,CAC7E,IAAMd,EACJ,OAAOgB,EAAM,OAAU,UAAYtB,EAAkB,KAAKsB,EAAM,KAAK,EACjEA,EAAM,MACNT,EAAoB,MACpBU,EAAS,MAAM,QAAQD,EAAM,QAAQ,EACvCrB,EAAe,OAAQ,GAAaqB,EAAM,SAAuB,SAASf,CAAO,CAAC,EAClF,CAAC,EACCJ,EACJK,EAAgB,KAAM,GAASgB,EAAK,MAAQlB,CAAK,CAAC,EAAE,WACnDiB,EAAO,OAAS,EAAIA,EAASV,EAAoB,UAEpD,MAAO,CAAE,QAAO,WAAYX,EADTe,EAAeK,EAAM,UAAU,EAAIA,EAAM,WAAcnB,EAAS,IAAM,OACnCA,CAAQ,EAAG,UAAS,CAC5E,EAEasB,EAAgB5B,EAAmB,CAAC,CAC/CE,EACG,IAAS,CACR,GAAGc,EACH,SAAU,EAAO,EAAY,IAAaa,EAAI,CAAE,QAAO,aAAY,UAAS,CAAC,CAC/E,GACA,CACE,KAAMf,EACN,QAASb,EACT,QAASc,EACT,QAASM,EACT,YAAa,CAAE,QAAO,aAAY,eAAgB,CAAE,QAAO,aAAY,UAAS,GAChF,OAAQ,EAAW,KAAa,CAC9B,GAAGS,EACH,GAAGP,EAAmBL,EAASM,CAAS,EAAIA,EAAY,CAAC,CAAC,CAC5D,EACF,CACF,CACF"}
|
|
@@ -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,Bt as r,Cn as i,En as a,I as o,Jt as s,L as c,Qt as l,Xt as u,Zt as d,an as f,en as p,fn as m,gn as h,gt as g,mt as _,nn as v,qt as y,rn as b,tn as x,un as S,x as C,xn as w,yn as T}from"./src-CMor9izq.js";import{tt as E}from"./auth-BFSvtV59.js";function D(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}var ee=class extends m{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,S.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),a=e.length!==n.length,o=n.some((t,n)=>t!==e[n]),s=a||o,c=s?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!i(e,n)});(s||c)&&(s&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(s&&(D(e,n).forEach(e=>{e.destroy()}),D(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){let n=new Set;return t.map((r,i)=>{let a=e[i];return r.defaultedQueryOptions.notifyOnChangeProps?a:r.observer.trackResult(a,e=>{n.has(e)||(n.add(e),t.forEach(t=>{t.observer.trackProp(e)}))})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=w(this.#a,t(e))),this.#a}return e}#f(){return!this.#r?.combine||this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new f(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=this.#t.slice(),this.#t[n]=t,this.#h())}#h(){if(this.hasListeners()){let e=this.#f(),t=this.#a,n=e?t:this.#d(this.#u(this.#t,this.#l),this.#r?.combine);(e||t!==n)&&S.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}},O=e(t(),1);function k({queries:e,...t},r){let i=a(r),o=b(),s=v(),c=t.subscribed!==!1,m=O.useMemo(()=>e.map(e=>{let t=i.defaultQueryOptions(e);return t._optimisticResults=o?`isRestoring`:c?`optimistic`:void 0,t}),[e,i,o,c]);m.forEach(e=>{u(e);let t=i.getQueryCache().get(e.queryHash);n(e,s,t)}),x(s);let[h]=O.useState(()=>new ee(i,m,t)),[g,_,y]=h.getOptimisticResult(m,t.combine),C=!o&&c;O.useSyncExternalStore(O.useCallback(e=>C?h.subscribe(S.batchCalls(e)):T,[h,C]),()=>h.getCurrentResult(),()=>h.getCurrentResult()),O.useEffect(()=>{h.setQueries(m,t)},[m,t,h]);let w=g.some((e,t)=>l(m[t],e))?g.flatMap((e,t)=>{let n=m[t];if(n&&l(n,e)){let e=new f(i,n);return d(n,e,s)}return[]}):[];if(w.length>0)throw Promise.all(w);let E=g.find((e,t)=>{let n=m[t];return n&&p({result:e,errorResetBoundary:s,throwOnError:n.throwOnError,query:i.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(E)throw E.error;return _(y())}var A={silent:!0},j=(e,t)=>E({queryKey:r.content.list(e,t),queryFn:()=>g.content.list(e,t),placeholderData:h,meta:A}),te=(e,t,n=!0)=>s({...j(e,t),enabled:n}),M=(e,t,n)=>E({queryKey:r.content.entry(e,t,n),queryFn:()=>g.content.get(e,t,n?{locale:n}:{}),staleTime:1/0,meta:A}),N=(e,t,n,r=!0)=>s({...M(e,t,n),enabled:r}),P=(e,t)=>{let n=e.getQueryData(r.schema.definitions(`model`))??[],i=new Map(n.map(({definition:e})=>[e.id,e])),a=n.find(({definition:e})=>e.apiKey===t)?.definition;return a?[...C(a,e=>i.get(e)).ids.flatMap(e=>{let t=i.get(e)?.apiKey;return t?[t]:[]}),t]:[t]},F=(e,t,{counts:n=!1}={})=>{let i=new Set(t),a=new Set(t.flatMap(t=>P(e,t)));return Promise.all([e.invalidateQueries({predicate:({queryKey:[e,t,n]})=>e===`content`&&typeof t==`string`&&(a.has(t)&&n===`list`||i.has(t)&&n===`revisions`)}),n?e.invalidateQueries({queryKey:r.contentCounts}):void 0])},I=(e,t,n)=>(e.setQueryData(r.content.entry(t,n.id,n.locale),n),F(e,[t,n.model])),L=e=>{let t=a();return y({mutationKey:[`content`,e,`create`],meta:A,mutationFn:t=>_(()=>g.content.create(e,t)),onSuccess:n=>I(t,e,n)})},R=e=>{let t=a();return y({mutationKey:[`content`,e,`save`],meta:A,mutationFn:({id:t,input:n})=>_(()=>g.content.update(e,t,n)),onSuccess:n=>I(t,e,n)})},z=e=>e&&e.length>0?{locales:e}:{},B=e=>{let t=a();return y({mutationKey:[`content`,e,`publish`],meta:A,mutationFn:({id:t,locales:n,modelKey:r=e,...i})=>_(()=>g.content.publish(r,t,{...z(n),...i})),onSuccess:(n,{modelKey:r=e})=>I(t,r,n)})},V=e=>{let t=a();return y({mutationKey:[`content`,e,`unpublish`],meta:A,mutationFn:({id:t,locales:n,modelKey:r=e})=>_(()=>g.content.unpublish(r,t,z(n))),onSuccess:(n,{modelKey:r=e})=>I(t,r,n)})},H=e=>{let t=a();return y({mutationKey:[`content`,e,`duplicate`],mutationFn:({id:t,modelKey:n=e})=>_(()=>g.content.duplicate(n,t)),onSuccess:(n,{modelKey:r=e})=>I(t,r,n)})},U=e=>{let t=a();return y({mutationKey:[`content`,e,`delete`],meta:A,mutationFn:({id:t,modelKey:n=e})=>_(()=>g.content.remove(n,t)),onSuccess:(n,{modelKey:i=e})=>Promise.all([t.invalidateQueries({queryKey:r.content.model(i)}),F(t,[e,i])])})},W=(e,t,n,i)=>s({queryKey:r.content.revisions(e,t,n),queryFn:()=>g.content.history(e,t,n?{locale:n}:{}),enabled:i,staleTime:0,meta:A}),G=(e,t,n)=>s({queryKey:r.content.revision(e,t,n??``),queryFn:()=>g.content.revision(e,t,n??``),enabled:n!==void 0,staleTime:1/0,meta:A}),K=e=>{let t=a();return y({mutationKey:[`content`,e,`restore`],meta:A,mutationFn:({id:t,revisionId:n,expectedVersion:r})=>_(()=>g.content.restore(e,t,n,r)),onSuccess:n=>I(t,e,n)})},q=({targetModelKey:e,expectedVersion:t,locale:n})=>({targetModelKey:e,expectedVersion:t,...n?{locale:n}:{},acknowledgeDroppedFields:!0}),J=(e,t)=>s({queryKey:r.content.kindChange(e,t?.id??``,t?.targetModelKey??``,t?.expectedVersion??0,t?.locale??null),queryFn:()=>t?_(()=>g.content.previewKindChange(e,t.id,q(t))):Promise.reject(Error(`No kind change to preview`)),enabled:t!==void 0,staleTime:0,retry:!1,meta:A}),Y=e=>{let t=a();return y({mutationKey:[`content`,e,`changeKind`],meta:A,mutationFn:t=>_(()=>g.content.changeKind(e,t.id,q(t))),onSuccess:({entry:n,target:i},{id:a})=>(n&&t.setQueryData(r.content.entry(n.model,n.id,n.locale),n),Promise.all([t.invalidateQueries({queryKey:[...r.content.model(e),`entry`,a],refetchType:`none`}),F(t,[e,i.modelKey],{counts:!0})]))})},X=e=>c(e),Z=e=>{let t=X(e);return t!==void 0&&o.has(t.type)},Q=(e,t)=>{let n=X(e),r=n?t[n.apiKey]:void 0;return typeof r==`string`&&r.trim()!==``?r:typeof r==`number`?String(r):void 0},$=e=>e.slice(0,8),ne=(e,t,n)=>Q(e,t.data)??`${n} · ${$(t.id)}`;export{k as S,B as _,X as a,R as b,F as c,U as d,H as f,J as g,te as h,$ as i,Y as l,W as m,Z as n,j as o,N as p,ne as r,M as s,Q as t,L as u,K as v,V as x,G as y};
|
|
2
|
+
//# sourceMappingURL=titles-DrQhW8z3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"titles-DrQhW8z3.js","names":["__toESM","ensurePreventErrorBoundaryRetry","queryKeys","shallowEqualObjects","useQueryClient","TEXT_TITLE_FIELD_TYPES","useQuery","effectiveTitleField","shouldSuspend","ensureSuspenseTimers","fetchOptimistic","QueryObserver","getHasError","Subscribable","keepPreviousData","adminApi","withCsrf","useQueryErrorResetBoundary","useMutation","useIsRestoring","useClearResetErrorBoundary","notifyManager","ancestorChain","replaceEqualDeep","noop","queryOptions","difference","excludeSet","array2","array1","x","QueriesObserver","#client","client","#options","options","#queries","#observers","#result","queries","observer","#onUpdate","result","prevObservers","newObserverMatches","#findMatchingObservers","match","newObservers","newResult","hasLengthChange","hasIndexChange","index","hasStructuralChange","hasResultChange","prev","#observerMatches","#notify","matches","queryHashes","#combineResult","r","combine","#trackResult","trackedProps","observerResult","accessedProp","m","lastHashes","#lastQueryHashes","queryHashesChanged","hash","i","#lastResult","#lastCombine","#combinedResult","input","prevObserversMap","key","previousObservers","observers","defaultedOptions","shouldSkipCombine","#shouldSkipCombine","previousResult","listener","import_react","require_react","useQueries","queryClient","isRestoring","errorResetBoundary","subscribed","defaultedQueries","opts","query","optimisticResult","getCombinedResult","trackResult","shouldSubscribe","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","silent","entryListQueryOptions","modelKey","useEntryList","entryQueryOptions","id","locale","useEntry","lineageKeysOf","items","byId","definition","model","apiKey","invalidateEntryLists","written","modelKeys","listed","scope","part","counts","rememberEntry","entry","useCreateEntry","useSaveEntry","localesBody","locales","usePublishEntry","versions","useUnpublishEntry","useDuplicateEntry","useDeleteEntry","useEntryHistory","useRevision","revisionId","useRestoreRevision","expectedVersion","kindChangeBody","useKindChangePreview","variables","useChangeEntryKind","target","titleFieldOf","isSearchable","title","entryTitle","value","data","shortId","labelOf","item","untitled"],"sources":["../../../../node_modules/.pnpm/@tanstack+query-core@5.104.0/node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.104.0_react@19.3.0/node_modules/@tanstack/react-query/build/modern/useQueries.js","../../src/api/content.ts","../../src/fields/helpers/titles.ts"],"sourcesContent":["import { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\n//#region src/queriesObserver.ts\nfunction difference(array1, array2) {\n\tconst excludeSet = new Set(array2);\n\treturn array1.filter((x) => !excludeSet.has(x));\n}\n/**\n* A `QueriesObserver` watches an array of queries at once, exposing them as\n* a single array of `QueryObserverResult`s (or, when a `combine` option is\n* given, as a combined value derived from that array). It manages one\n* internal `QueryObserver` per query, and is the primitive that framework\n* adapters (e.g. `useQueries`) build their hooks on top of.\n*\n* @example\n* ```ts\n* const observer = new QueriesObserver(queryClient, [\n* { queryKey: ['post', 1], queryFn: fetchPost },\n* { queryKey: ['post', 2], queryFn: fetchPost },\n* ])\n*\n* const unsubscribe = observer.subscribe((result) => {\n* console.log(result)\n* })\n* ```\n*/\nvar QueriesObserver = class extends Subscribable {\n\t#client;\n\t#result;\n\t#queries;\n\t#options;\n\t#observers;\n\t#combinedResult;\n\t#lastCombine;\n\t#lastResult;\n\t#lastQueryHashes;\n\t#observerMatches = [];\n\tconstructor(client, queries, options) {\n\t\tsuper();\n\t\tthis.#client = client;\n\t\tthis.#options = options;\n\t\tthis.#queries = [];\n\t\tthis.#observers = [];\n\t\tthis.#result = [];\n\t\tthis.setQueries(queries);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1) this.#observers.forEach((observer) => {\n\t\t\tobserver.subscribe((result) => {\n\t\t\t\tthis.#onUpdate(observer, result);\n\t\t\t});\n\t\t});\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.listeners.size) this.destroy();\n\t}\n\t/**\n\t* Stops observing all queries: clears all listeners and destroys every\n\t* underlying `QueryObserver` this observer manages.\n\t*/\n\tdestroy() {\n\t\tthis.listeners = /* @__PURE__ */ new Set();\n\t\tthis.#observers.forEach((observer) => {\n\t\t\tobserver.destroy();\n\t\t});\n\t}\n\t/**\n\t* Replaces the set of queries being observed. Existing `QueryObserver`s\n\t* are reused for queries that match an already-observed query hash;\n\t* observers for queries that are no longer present are destroyed, and new\n\t* observers are created and subscribed to for newly added queries.\n\t*\n\t* @example\n\t* ```ts\n\t* observer.setQueries([\n\t* { queryKey: ['post', 1], queryFn: fetchPost },\n\t* { queryKey: ['post', 3], queryFn: fetchPost },\n\t* ])\n\t* ```\n\t*/\n\tsetQueries(queries, options) {\n\t\tthis.#queries = queries;\n\t\tthis.#options = options;\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tconst queryHashes = queries.map((query) => this.#client.defaultQueryOptions(query).queryHash);\n\t\t\tif (new Set(queryHashes).size !== queryHashes.length) console.warn(\"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\");\n\t\t}\n\t\tnotifyManager.batch(() => {\n\t\t\tconst prevObservers = this.#observers;\n\t\t\tconst newObserverMatches = this.#findMatchingObservers(this.#queries);\n\t\t\tnewObserverMatches.forEach((match) => match.observer.setOptions(match.defaultedQueryOptions));\n\t\t\tconst newObservers = newObserverMatches.map((match) => match.observer);\n\t\t\tconst newResult = newObservers.map((observer) => observer.getCurrentResult());\n\t\t\tconst hasLengthChange = prevObservers.length !== newObservers.length;\n\t\t\tconst hasIndexChange = newObservers.some((observer, index) => observer !== prevObservers[index]);\n\t\t\tconst hasStructuralChange = hasLengthChange || hasIndexChange;\n\t\t\tconst hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n\t\t\t\tconst prev = this.#result[index];\n\t\t\t\treturn !prev || !shallowEqualObjects(result, prev);\n\t\t\t});\n\t\t\tif (!hasStructuralChange && !hasResultChange) return;\n\t\t\tif (hasStructuralChange) {\n\t\t\t\tthis.#observerMatches = newObserverMatches;\n\t\t\t\tthis.#observers = newObservers;\n\t\t\t}\n\t\t\tthis.#result = newResult;\n\t\t\tif (!this.hasListeners()) return;\n\t\t\tif (hasStructuralChange) {\n\t\t\t\tdifference(prevObservers, newObservers).forEach((observer) => {\n\t\t\t\t\tobserver.destroy();\n\t\t\t\t});\n\t\t\t\tdifference(newObservers, prevObservers).forEach((observer) => {\n\t\t\t\t\tobserver.subscribe((result) => {\n\t\t\t\t\t\tthis.#onUpdate(observer, result);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.#notify();\n\t\t});\n\t}\n\t/**\n\t* Returns the most recently computed array of `QueryObserverResult`s, one\n\t* per observed query, in the same order as the queries passed to the\n\t* constructor or `setQueries`.\n\t*\n\t* @example\n\t* ```ts\n\t* const results = observer.getCurrentResult()\n\t* const data = results.map((result) => result.data)\n\t* ```\n\t*/\n\tgetCurrentResult() {\n\t\treturn this.#result;\n\t}\n\t/**\n\t* Returns the underlying `Query` instances currently being observed, in\n\t* the same order as the queries passed to the constructor or `setQueries`.\n\t*/\n\tgetQueries() {\n\t\treturn this.#observers.map((observer) => observer.getCurrentQuery());\n\t}\n\t/**\n\t* Returns the underlying `QueryObserver` instances this observer manages,\n\t* in the same order as the queries passed to the constructor or\n\t* `setQueries`.\n\t*/\n\tgetObservers() {\n\t\treturn this.#observers;\n\t}\n\t/**\n\t* The `QueriesObserver` counterpart of {@link QueryObserver#getOptimisticResult} — computes\n\t* the result for the given (already-defaulted) queries right now, synchronously. Called by\n\t* framework adapters (e.g. `useQueries`) ahead of subscribing, returning a tuple of the raw\n\t* per-query results, a function to compute the combined result from them, and a function to\n\t* wrap the results for property-access tracking.\n\t*/\n\tgetOptimisticResult(queries, combine) {\n\t\tconst matches = this.#findMatchingObservers(queries);\n\t\tconst result = matches.map((match) => match.observer.getOptimisticResult(match.defaultedQueryOptions));\n\t\tconst queryHashes = matches.map((match) => match.defaultedQueryOptions.queryHash);\n\t\treturn [\n\t\t\tresult,\n\t\t\t(r) => {\n\t\t\t\treturn this.#combineResult(r ?? result, combine, queryHashes);\n\t\t\t},\n\t\t\t() => {\n\t\t\t\treturn this.#trackResult(result, matches);\n\t\t\t}\n\t\t];\n\t}\n\t#trackResult(result, matches) {\n\t\tconst trackedProps = /* @__PURE__ */ new Set();\n\t\treturn matches.map((match, index) => {\n\t\t\tconst observerResult = result[index];\n\t\t\treturn !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n\t\t\t\tif (!trackedProps.has(accessedProp)) {\n\t\t\t\t\ttrackedProps.add(accessedProp);\n\t\t\t\t\tmatches.forEach((m) => {\n\t\t\t\t\t\tm.observer.trackProp(accessedProp);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}) : observerResult;\n\t\t});\n\t}\n\t#combineResult(input, combine, queryHashes) {\n\t\tif (combine) {\n\t\t\tconst lastHashes = this.#lastQueryHashes;\n\t\t\tconst queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n\t\t\tif (this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n\t\t\t\tthis.#lastCombine = combine;\n\t\t\t\tthis.#lastResult = this.#result;\n\t\t\t\tif (queryHashes !== void 0) this.#lastQueryHashes = queryHashes;\n\t\t\t\tthis.#combinedResult = replaceEqualDeep(this.#combinedResult, combine(input));\n\t\t\t}\n\t\t\treturn this.#combinedResult;\n\t\t}\n\t\treturn input;\n\t}\n\t#shouldSkipCombine() {\n\t\treturn !this.#options?.combine || this.#observers.some((observer, index) => {\n\t\t\treturn observer.options.suspense && this.#result[index]?.data === void 0;\n\t\t});\n\t}\n\t#findMatchingObservers(queries) {\n\t\tconst prevObserversMap = /* @__PURE__ */ new Map();\n\t\tthis.#observers.forEach((observer) => {\n\t\t\tconst key = observer.options.queryHash;\n\t\t\tif (!key) return;\n\t\t\tconst previousObservers = prevObserversMap.get(key);\n\t\t\tif (previousObservers) previousObservers.push(observer);\n\t\t\telse prevObserversMap.set(key, [observer]);\n\t\t});\n\t\tconst observers = [];\n\t\tqueries.forEach((options) => {\n\t\t\tconst defaultedOptions = this.#client.defaultQueryOptions(options);\n\t\t\tconst observer = prevObserversMap.get(defaultedOptions.queryHash)?.shift() ?? new QueryObserver(this.#client, defaultedOptions);\n\t\t\tobservers.push({\n\t\t\t\tdefaultedQueryOptions: defaultedOptions,\n\t\t\t\tobserver\n\t\t\t});\n\t\t});\n\t\treturn observers;\n\t}\n\t#onUpdate(observer, result) {\n\t\tconst index = this.#observers.indexOf(observer);\n\t\tif (index !== -1) {\n\t\t\tthis.#result = this.#result.slice();\n\t\t\tthis.#result[index] = result;\n\t\t\tthis.#notify();\n\t\t}\n\t}\n\t#notify() {\n\t\tif (this.hasListeners()) {\n\t\t\tconst shouldSkipCombine = this.#shouldSkipCombine();\n\t\t\tconst previousResult = this.#combinedResult;\n\t\t\tconst newResult = shouldSkipCombine ? previousResult : this.#combineResult(this.#trackResult(this.#result, this.#observerMatches), this.#options?.combine);\n\t\t\tif (shouldSkipCombine || previousResult !== newResult) notifyManager.batch(() => {\n\t\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\t\tlistener(this.#result);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n};\n//#endregion\nexport { QueriesObserver };\n\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary } from \"./errorBoundaryUtils.js\";\nimport { ensureSuspenseTimers, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nimport * as React from \"react\";\nimport { QueriesObserver, QueryObserver, noop, notifyManager } from \"@tanstack/query-core\";\n//#region src/useQueries.ts\n/**\n* The `useQueries` hook can be used to fetch a variable number of queries.\n*\n* The `queries` key accepts an array with query option objects mostly identical to `useQuery` — the top-level\n* `subscribed` option isn't accepted per query (see `placeholderData` below for another difference). A custom\n* `QueryClient` is supplied once, as `useQueries`' own top-level second argument, rather than per query.\n*\n* Having the same query key more than once in the array of query objects may cause some data to be shared\n* between queries. To avoid this, consider de-duplicating the queries and map the results back to the desired\n* structure.\n*\n* The `combine` option can be used to combine the results of the queries into a single value. The result will\n* be structurally shared to be as referentially stable as possible.\n*\n* @remarks The `combine` function only re-runs if it changed referentially, or if any of the query results\n* changed. An inlined `combine` function, as shown in the example below, therefore runs on every render — wrap\n* it in `useCallback`, or extract it to a stable function reference if it doesn't have any dependencies, to\n* avoid that.\n*\n* Unlike `useQuery`, `useQueries` cannot infer the `data` argument of an _inline_ `select` from its sibling\n* `queryFn`. Because `useQueries` infers the type of the whole `queries` array at once, the `select` parameter\n* of a query object written inline cannot be contextually typed from that same object's `queryFn`, so it falls\n* back to `unknown` — a [known TypeScript limitation](https://github.com/TanStack/query/issues/6556). Annotate\n* the `select` parameter explicitly, or define the query with {@link queryOptions}, which resolves its types in\n* a single object _before_ it reaches `useQueries`, to work around this — see the example below. The same\n* limitation applies to {@link useSuspenseQueries}.\n*\n* `placeholderData` is supported here too, but unlike `useQuery`, it doesn't receive information from\n* previously rendered queries, because the number of queries can differ between renders.\n* @param queryClient - Use this to provide a custom `QueryClient`. Otherwise, the one from the nearest context\n* will be used.\n* @returns The combined result. Without `combine`, this is an array with all the query results, in the same\n* order as the input. When `combine` is provided, this is the value returned by `combine` instead.\n*\n* @example\n* ```tsx\n* import { useQueries } from '@tanstack/react-query'\n*\n* function Posts({ ids }: { ids: Array<number> }) {\n* const postQueries = useQueries({\n* queries: ids.map((id) => ({\n* queryKey: ['post', id],\n* queryFn: () => fetchPost(id),\n* staleTime: Infinity,\n* })),\n* })\n*\n* return (\n* <ul>\n* {postQueries.map((query, index) => {\n* if (query.isPending) return <li key={ids[index]}>Loading...</li>\n* if (query.isError) return <li key={ids[index]}>Error: {query.error.message}</li>\n* return <li key={ids[index]}>{query.data.title}</li>\n* })}\n* </ul>\n* )\n* }\n* ```\n*\n* @example\n* Combining results into a single value:\n* ```tsx\n* import { useQueries } from '@tanstack/react-query'\n*\n* function Posts({ ids }: { ids: Array<number> }) {\n* const { data, isPending, isError } = useQueries({\n* queries: ids.map((id) => ({\n* queryKey: ['post', id],\n* queryFn: () => fetchPost(id),\n* })),\n* combine: (postQueries) => {\n* return {\n* data: postQueries.map((query) => query.data),\n* isPending: postQueries.some((query) => query.isPending),\n* isError: postQueries.some((query) => query.isError),\n* }\n* },\n* })\n*\n* if (isPending) return 'Loading...'\n* if (isError) return 'Error loading posts'\n*\n* return (\n* <ul>\n* {data.map((post) => (\n* <li key={post?.id}>{post?.title}</li>\n* ))}\n* </ul>\n* )\n* }\n* ```\n*\n* @example\n* Typing `select` via {@link queryOptions}. Note that spreading a `queryOptions` result and overriding\n* `select` inline still falls back to `unknown` — wrap the spread in `queryOptions` again so the override is\n* resolved before it reaches `useQueries`:\n* ```tsx\n* import { queryOptions, useQueries } from '@tanstack/react-query'\n*\n* const postOptions = (id: number) =>\n* queryOptions({\n* queryKey: ['post', id],\n* queryFn: () => fetchPost(id),\n* })\n*\n* function PostTitle({ id }: { id: number }) {\n* const [{ data: broken }] = useQueries({\n* queries: [\n* {\n* ...postOptions(id),\n* // ❌ `data` is `unknown` here\n* select: (data) => data.title,\n* },\n* ],\n* })\n*\n* const [{ data: fixed }] = useQueries({\n* queries: [\n* queryOptions({\n* ...postOptions(id),\n* // ✅ `data` is `Post`\n* select: (data) => data.title,\n* }),\n* ],\n* })\n*\n* return <h1>{fixed}</h1>\n* }\n* ```\n*/\nfunction useQueries({ queries, ...options }, queryClient) {\n\tconst client = useQueryClient(queryClient);\n\tconst isRestoring = useIsRestoring();\n\tconst errorResetBoundary = useQueryErrorResetBoundary();\n\tconst subscribed = options.subscribed !== false;\n\tconst defaultedQueries = React.useMemo(() => queries.map((opts) => {\n\t\tconst defaultedOptions = client.defaultQueryOptions(opts);\n\t\tdefaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n\t\treturn defaultedOptions;\n\t}), [\n\t\tqueries,\n\t\tclient,\n\t\tisRestoring,\n\t\tsubscribed\n\t]);\n\tdefaultedQueries.forEach((queryOptions) => {\n\t\tensureSuspenseTimers(queryOptions);\n\t\tconst query = client.getQueryCache().get(queryOptions.queryHash);\n\t\tensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n\t});\n\tuseClearResetErrorBoundary(errorResetBoundary);\n\tconst [observer] = React.useState(() => new QueriesObserver(client, defaultedQueries, options));\n\tconst [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(defaultedQueries, options.combine);\n\tconst shouldSubscribe = !isRestoring && subscribed;\n\tReact.useSyncExternalStore(React.useCallback((onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop, [observer, shouldSubscribe]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tReact.useEffect(() => {\n\t\tobserver.setQueries(defaultedQueries, options);\n\t}, [\n\t\tdefaultedQueries,\n\t\toptions,\n\t\tobserver\n\t]);\n\tconst suspensePromises = optimisticResult.some((result, index) => shouldSuspend(defaultedQueries[index], result)) ? optimisticResult.flatMap((result, index) => {\n\t\tconst opts = defaultedQueries[index];\n\t\tif (opts && shouldSuspend(opts, result)) {\n\t\t\tconst queryObserver = new QueryObserver(client, opts);\n\t\t\treturn fetchOptimistic(opts, queryObserver, errorResetBoundary);\n\t\t}\n\t\treturn [];\n\t}) : [];\n\tif (suspensePromises.length > 0) throw Promise.all(suspensePromises);\n\tconst firstSingleResultWhichShouldThrow = optimisticResult.find((result, index) => {\n\t\tconst query = defaultedQueries[index];\n\t\treturn query && getHasError({\n\t\t\tresult,\n\t\t\terrorResetBoundary,\n\t\t\tthrowOnError: query.throwOnError,\n\t\t\tquery: client.getQueryCache().get(query.queryHash),\n\t\t\tsuspense: query.suspense\n\t\t});\n\t});\n\tif (firstSingleResultWhichShouldThrow) throw firstSingleResultWhichShouldThrow.error;\n\treturn getCombinedResult(trackResult());\n}\n//#endregion\nexport { useQueries };\n\n//# sourceMappingURL=useQueries.js.map","import type {\n AdminEntry,\n ContentListQuery,\n CreateEntryInput,\n DefinitionListItem,\n UpdateEntryInput,\n} from '@shapio/client';\nimport { ancestorChain, type SchemaDefinition } from '@shapio/schema';\nimport {\n keepPreviousData,\n queryOptions,\n useMutation,\n useQuery,\n useQueryClient,\n type QueryClient,\n} from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\n/**\n * Content of any model (`/api/admin/content/:modelKey`). Mutations are silent: the entry form and list\n * show failures themselves (inline issues, the conflict dialog, the \"still referenced\" explanation).\n */\nconst silent = { silent: true } as const;\n\nexport const entryListQueryOptions = (modelKey: string, query: ContentListQuery) =>\n queryOptions({\n queryKey: queryKeys.content.list(modelKey, query),\n queryFn: () => adminApi.content.list(modelKey, query),\n placeholderData: keepPreviousData,\n meta: silent,\n });\n\nexport const useEntryList = (modelKey: string, query: ContentListQuery, enabled = true) =>\n useQuery({ ...entryListQueryOptions(modelKey, query), enabled });\n\nexport const entryQueryOptions = (modelKey: string, id: string, locale: string | undefined) =>\n queryOptions({\n queryKey: queryKeys.content.entry(modelKey, id, locale),\n queryFn: () => adminApi.content.get(modelKey, id, locale ? { locale } : {}),\n // The form owns the values once loaded; it is refreshed explicitly (conflicts, restores, locales).\n staleTime: Infinity,\n meta: silent,\n });\n\nexport const useEntry = (modelKey: string, id: string, locale: string | undefined, enabled = true) =>\n useQuery({ ...entryQueryOptions(modelKey, id, locale), enabled });\n\n/**\n * The model's API key after its ancestors' (root first), from the cached registry: a type's list holds its\n * kinds' entries, so a write to a kind changes every ancestor's list too. Just the key when it is unknown.\n */\nexport const lineageKeysOf = (queryClient: QueryClient, modelKey: string): string[] => {\n const items = queryClient.getQueryData<DefinitionListItem[]>(queryKeys.schema.definitions('model')) ?? [];\n const byId = new Map<string, SchemaDefinition>(items.map(({ definition }) => [definition.id, definition]));\n const model = items.find(({ definition }) => definition.apiKey === modelKey)?.definition;\n if (!model) {\n return [modelKey];\n }\n const ancestors = ancestorChain(model, (id) => byId.get(id)).ids.flatMap((id) => {\n const apiKey = byId.get(id)?.apiKey;\n return apiKey ? [apiKey] : [];\n });\n return [...ancestors, modelKey];\n};\n\n/**\n * Refreshes what a write to these models' entries changes: each model's lists and revisions, and every\n * ancestor's lists. With `counts`, also the entries per model (the sidebar's counts).\n */\nexport const invalidateEntryLists = (\n queryClient: QueryClient,\n modelKeys: readonly string[],\n { counts = false }: { counts?: boolean } = {},\n) => {\n const written = new Set(modelKeys);\n const listed = new Set(modelKeys.flatMap((modelKey) => lineageKeysOf(queryClient, modelKey)));\n return Promise.all([\n queryClient.invalidateQueries({\n predicate: ({ queryKey: [scope, modelKey, part] }) =>\n scope === 'content' &&\n typeof modelKey === 'string' &&\n ((listed.has(modelKey) && part === 'list') || (written.has(modelKey) && part === 'revisions')),\n }),\n counts ? queryClient.invalidateQueries({ queryKey: queryKeys.contentCounts }) : undefined,\n ]);\n};\n\n/**\n * Remembers a write's result as the entry's latest state and refreshes its model's lists (the route's and the\n * entry's own, when it was written through a parent type) and their ancestors'.\n */\nconst rememberEntry = (queryClient: QueryClient, modelKey: string, entry: AdminEntry) => {\n queryClient.setQueryData(queryKeys.content.entry(modelKey, entry.id, entry.locale), entry);\n return invalidateEntryLists(queryClient, [modelKey, entry.model]);\n};\n\n/**\n * Which entry a mutation acts on. `modelKey` overrides the hook's: a type's list runs row actions against\n * each row's own kind.\n */\nexport type EntryTarget = { id: string; modelKey?: string };\n\nexport const useCreateEntry = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'create'],\n meta: silent,\n mutationFn: (input: CreateEntryInput) => withCsrf(() => adminApi.content.create(modelKey, input)),\n onSuccess: (entry) => rememberEntry(queryClient, modelKey, entry),\n });\n};\n\nexport const useSaveEntry = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'save'],\n meta: silent,\n mutationFn: ({ id, input }: { id: string; input: UpdateEntryInput }) =>\n withCsrf(() => adminApi.content.update(modelKey, id, input)),\n onSuccess: (entry) => rememberEntry(queryClient, modelKey, entry),\n });\n};\n\n/** Omitting `locales` targets the request's default locale; it is the only form a non-localized model accepts. */\ntype LocalesVariables = EntryTarget & { locales?: string[] };\n\n/** The body never carries an empty `locales` array: the API requires at least one locale when it is sent. */\nconst localesBody = (locales?: string[]) => (locales && locales.length > 0 ? { locales } : {});\n\n/** The draft version(s) the editor saw: the API refuses (409) to publish a draft that moved since. */\ntype PublishVariables = LocalesVariables & {\n expectedVersion?: number;\n expectedVersions?: Record<string, number>;\n};\n\nexport const usePublishEntry = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'publish'],\n meta: silent,\n mutationFn: ({ id, locales, modelKey: key = modelKey, ...versions }: PublishVariables) =>\n withCsrf(() => adminApi.content.publish(key, id, { ...localesBody(locales), ...versions })),\n onSuccess: (entry, { modelKey: key = modelKey }) => rememberEntry(queryClient, key, entry),\n });\n};\n\nexport const useUnpublishEntry = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'unpublish'],\n meta: silent,\n mutationFn: ({ id, locales, modelKey: key = modelKey }: LocalesVariables) =>\n withCsrf(() => adminApi.content.unpublish(key, id, localesBody(locales))),\n onSuccess: (entry, { modelKey: key = modelKey }) => rememberEntry(queryClient, key, entry),\n });\n};\n\nexport const useDuplicateEntry = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'duplicate'],\n mutationFn: ({ id, modelKey: key = modelKey }: EntryTarget) =>\n withCsrf(() => adminApi.content.duplicate(key, id)),\n onSuccess: (entry, { modelKey: key = modelKey }) => rememberEntry(queryClient, key, entry),\n });\n};\n\n/** 409 ENTRY_REFERENCED comes back to the caller, which explains what still points at the entry. */\nexport const useDeleteEntry = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'delete'],\n meta: silent,\n mutationFn: ({ id, modelKey: key = modelKey }: EntryTarget) =>\n withCsrf(() => adminApi.content.remove(key, id)),\n onSuccess: (_, { modelKey: key = modelKey }) =>\n Promise.all([\n queryClient.invalidateQueries({ queryKey: queryKeys.content.model(key) }),\n invalidateEntryLists(queryClient, [modelKey, key]),\n ]),\n });\n};\n\n/** The entry's revisions (with authors) and publications in a locale, for the history sheet. */\nexport const useEntryHistory = (modelKey: string, id: string, locale: string | undefined, enabled: boolean) =>\n useQuery({\n queryKey: queryKeys.content.revisions(modelKey, id, locale),\n queryFn: () => adminApi.content.history(modelKey, id, locale ? { locale } : {}),\n enabled,\n staleTime: 0,\n meta: silent,\n });\n\nexport const useRevision = (modelKey: string, id: string, revisionId: string | undefined) =>\n useQuery({\n queryKey: queryKeys.content.revision(modelKey, id, revisionId ?? ''),\n queryFn: () => adminApi.content.revision(modelKey, id, revisionId ?? ''),\n enabled: revisionId !== undefined,\n staleTime: Infinity,\n meta: silent,\n });\n\nexport const useRestoreRevision = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'restore'],\n meta: silent,\n mutationFn: ({\n id,\n revisionId,\n expectedVersion,\n }: {\n id: string;\n revisionId: string;\n expectedVersion: number;\n }) => withCsrf(() => adminApi.content.restore(modelKey, id, revisionId, expectedVersion)),\n onSuccess: (entry) => rememberEntry(queryClient, modelKey, entry),\n });\n};\n\n/**\n * The kind change an editor asks about: another kind of the entry's family, at the draft version it saw of\n * `locale`'s draft (null: a model that isn't localized).\n */\nexport type KindChangeVariables = {\n id: string;\n targetModelKey: string;\n expectedVersion: number;\n locale: string | null;\n};\n\n/** The change is only sent once the person acknowledged what it drops, so it always acknowledges. */\nconst kindChangeBody = ({ targetModelKey, expectedVersion, locale }: KindChangeVariables) =>\n ({\n targetModelKey,\n expectedVersion,\n ...(locale ? { locale } : {}),\n acknowledgeDroppedFields: true,\n }) as const;\n\n/** What changing the entry's kind would drop (a dry run); idle until a target is picked. */\nexport const useKindChangePreview = (modelKey: string, variables: KindChangeVariables | undefined) =>\n useQuery({\n queryKey: queryKeys.content.kindChange(\n modelKey,\n variables?.id ?? '',\n variables?.targetModelKey ?? '',\n variables?.expectedVersion ?? 0,\n variables?.locale ?? null,\n ),\n queryFn: () =>\n variables\n ? withCsrf(() =>\n adminApi.content.previewKindChange(modelKey, variables.id, kindChangeBody(variables)),\n )\n : Promise.reject(new Error('No kind change to preview')),\n enabled: variables !== undefined,\n staleTime: 0,\n retry: false,\n meta: silent,\n });\n\n/**\n * Moves an entry to another kind of its family. The entry is remembered under its new kind; both kinds' lists\n * and their ancestors', and the counts, refresh; the entry under its old kind goes stale without a refetch\n * (the editor leaves it for the new route).\n */\nexport const useChangeEntryKind = (modelKey: string) => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['content', modelKey, 'changeKind'],\n meta: silent,\n mutationFn: (variables: KindChangeVariables) =>\n withCsrf(() => adminApi.content.changeKind(modelKey, variables.id, kindChangeBody(variables))),\n onSuccess: ({ entry, target }, { id }) => {\n if (entry) {\n queryClient.setQueryData(queryKeys.content.entry(entry.model, entry.id, entry.locale), entry);\n }\n return Promise.all([\n queryClient.invalidateQueries({\n queryKey: [...queryKeys.content.model(modelKey), 'entry', id],\n refetchType: 'none',\n }),\n invalidateEntryLists(queryClient, [modelKey, target.modelKey], { counts: true }),\n ]);\n },\n });\n};\n","import type { AdminEntryListItem } from '@shapio/client';\nimport {\n effectiveTitleField,\n TEXT_TITLE_FIELD_TYPES,\n type FieldDefinition,\n type ModelDefinition,\n} from '@shapio/schema';\n\n/**\n * The field that labels a model's entries in lists, pickers and relation summaries: the configured title\n * field, or the first text field when none is set (the same rule the API's `q` search uses).\n */\nexport const titleFieldOf = (model: ModelDefinition): FieldDefinition | undefined =>\n effectiveTitleField(model);\n\n/** Whether the list API's `q` search works for this model (it searches the title field, if it is text). */\nexport const isSearchable = (model: ModelDefinition): boolean => {\n const title = titleFieldOf(model);\n return title !== undefined && TEXT_TITLE_FIELD_TYPES.has(title.type);\n};\n\n/** An entry's label: its title field's text, or undefined (callers show \"Untitled\"). */\nexport const entryTitle = (\n model: ModelDefinition,\n data: Readonly<Record<string, unknown>>,\n): string | undefined => {\n const title = titleFieldOf(model);\n const value = title ? data[title.apiKey] : undefined;\n return typeof value === 'string' && value.trim() !== ''\n ? value\n : typeof value === 'number'\n ? String(value)\n : undefined;\n};\n\nexport const shortId = (id: string) => id.slice(0, 8);\n\nexport const labelOf = (\n model: ModelDefinition,\n item: Pick<AdminEntryListItem, 'id' | 'data'>,\n untitled: string,\n) => entryTitle(model, item.data) ?? `${untitled} · ${shortId(item.id)}`;\n"],"ignoreList":[0,1],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Bt as e,En as t,Jt as n,gt as r,mt as i,qt as a}from"./src-CMor9izq.js";var o=()=>n({queryKey:e.tokens,queryFn:()=>r.tokens.list(),meta:{silent:!0}}),s=()=>{let n=t();return a({mutationKey:[`tokens`,`create`],meta:{silent:!0},mutationFn:e=>i(()=>r.tokens.create(e)),onSuccess:()=>n.invalidateQueries({queryKey:e.tokens})})},c=()=>{let n=t();return a({mutationKey:[`tokens`,`revoke`],mutationFn:e=>i(()=>r.tokens.revoke(e)),onSettled:()=>n.invalidateQueries({queryKey:e.tokens})})};export{s as n,c as r,o as t};
|
|
2
|
+
//# sourceMappingURL=tokens-B1S81Epe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens-
|
|
1
|
+
{"version":3,"file":"tokens-B1S81Epe.js","names":["queryKeys","useQueryClient","useQuery","adminApi","withCsrf","useMutation","useApiTokens","useCreateApiToken","queryClient","input","useRevokeApiToken","id"],"sources":["../../src/api/tokens.ts"],"sourcesContent":["import type { CreateApiTokenInput } from '@shapio/client';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { adminApi } from './client';\nimport { withCsrf } from './csrf';\nimport { queryKeys } from './queryKeys';\n\nexport const useApiTokens = () =>\n useQuery({ queryKey: queryKeys.tokens, queryFn: () => adminApi.tokens.list(), meta: { silent: true } });\n\nexport const useCreateApiToken = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['tokens', 'create'],\n meta: { silent: true },\n mutationFn: (input: CreateApiTokenInput) => withCsrf(() => adminApi.tokens.create(input)),\n onSuccess: () => queryClient.invalidateQueries({ queryKey: queryKeys.tokens }),\n });\n};\n\nexport const useRevokeApiToken = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['tokens', 'revoke'],\n mutationFn: (id: string) => withCsrf(() => adminApi.tokens.revoke(id)),\n onSettled: () => queryClient.invalidateQueries({ queryKey: queryKeys.tokens }),\n });\n};\n"],"mappings":"+EAMA,IAAaM,MACXJ,EAAS,CAAE,SAAUF,EAAU,OAAQ,YAAeG,EAAS,OAAO,KAAK,EAAG,KAAM,CAAE,OAAQ,EAAK,CAAE,CAAC,EAE3FI,MAA0B,CACrC,IAAMC,EAAcP,EAAe,EACnC,OAAOI,EAAY,CACjB,YAAa,CAAC,SAAU,QAAQ,EAChC,KAAM,CAAE,OAAQ,EAAK,EACrB,WAAa,GAA+BD,MAAeD,EAAS,OAAO,OAAOM,CAAK,CAAC,EACxF,cAAiBD,EAAY,kBAAkB,CAAE,SAAUR,EAAU,MAAO,CAAC,CAC/E,CAAC,CACH,EAEaU,MAA0B,CACrC,IAAMF,EAAcP,EAAe,EACnC,OAAOI,EAAY,CACjB,YAAa,CAAC,SAAU,QAAQ,EAChC,WAAa,GAAeD,MAAeD,EAAS,OAAO,OAAOQ,CAAE,CAAC,EACrE,cAAiBH,EAAY,kBAAkB,CAAE,SAAUR,EAAU,MAAO,CAAC,CAC/E,CAAC,CACH"}
|
|
@@ -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{c as r,l as i,o as a,s as o,u as s}from"./InfoHint-
|
|
2
|
-
//# sourceMappingURL=tooltip-
|
|
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{c as r,l as i,o as a,s as o,u as s}from"./InfoHint-tlSeZB9U.js";import{b as c,d as l,f as u,h as d,i as f,l as p,m,o as h,p as g,u as _,y as v}from"./es2015-Cv57ynE1.js";import{h as y}from"./field-D-xWW2E7.js";import{t as b}from"./cn-DVhJ55Mo.js";var x=e(t(),1),S=e(n(),1),C=Object.defineProperty,w=(e,t)=>C(e,`name`,{value:t,configurable:!0}),[T,E]=m(`Tooltip`,[s]),D=s(),O=`TooltipProvider`,k=700,A=`tooltip.open`,[j,M]=T(O),N=w(e=>{let{__scopeTooltip:t,delayDuration:n=k,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(j,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:x.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),P=`Tooltip`,[ee,F]=T(P),I=w(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:o,disableHoverableContent:s,delayDuration:c}=e,u=M(P,e.__scopeTooltip),d=D(t),[f,m]=x.useState(null),[h,g]=x.useState(void 0),_=p(),v=x.useRef(0),y=s??u.disableHoverableContent,b=c??u.delayDuration,C=x.useRef(!1),[T,E]=l({prop:r,defaultProp:a??!1,onChange:w(e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(A))):u.onClose(),o?.(e)},`onChange`),caller:P}),O=x.useMemo(()=>T?C.current?`delayed-open`:`instant-open`:`closed`,[T]),k=x.useCallback(()=>{window.clearTimeout(v.current),v.current=0,C.current=!1,E(!0)},[E]),j=x.useCallback(()=>{window.clearTimeout(v.current),v.current=0,E(!1)},[E]),N=x.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{C.current=!0,E(!0),v.current=0},b)},[b,E]);x.useEffect(()=>()=>{v.current&&=(window.clearTimeout(v.current),0)},[]);let F=h??_;return(0,S.jsx)(i,{...d,children:(0,S.jsx)(ee,{scope:t,contentId:F,setContentId:g,open:T,stateAttribute:O,trigger:f,onTriggerChange:m,onTriggerEnter:x.useCallback(()=>{u.isOpenDelayedRef.current?N():k()},[u.isOpenDelayedRef,N,k]),onTriggerLeave:x.useCallback(()=>{y?j():(window.clearTimeout(v.current),v.current=0)},[j,y]),onOpen:k,onClose:j,disableHoverableContent:y,children:n})})},`Tooltip`),L=`TooltipTrigger`,R=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,...r}=e,i=F(L,n),o=M(L,n),s=D(n),l=x.useRef(null),u=c(t,l,i.onTriggerChange),f=x.useRef(!1),p=x.useRef(!1),m=x.useCallback(()=>f.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,m),[m]),(0,S.jsx)(a,{asChild:!0,...s,children:(0,S.jsx)(d.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:u,onPointerMove:g(e.onPointerMove,e=>{e.pointerType!==`touch`&&!p.current&&!o.isPointerInTransitRef.current&&(i.onTriggerEnter(),p.current=!0)}),onPointerLeave:g(e.onPointerLeave,()=>{i.onTriggerLeave(),p.current=!1}),onPointerDown:g(e.onPointerDown,()=>{i.open&&i.onClose(),f.current=!0,document.addEventListener(`pointerup`,m,{once:!0})}),onFocus:g(e.onFocus,()=>{f.current||i.onOpen()}),onBlur:g(e.onBlur,i.onClose),onClick:g(e.onClick,i.onClose)})})},`TooltipTrigger`)),z=`TooltipPortal`,[B,V]=T(z,{forceMount:void 0}),H=w(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=F(z,t);return(0,S.jsx)(B,{scope:t,forceMount:n,children:(0,S.jsx)(_,{present:n||a.open,children:(0,S.jsx)(f,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),U=`TooltipContent`,te=x.forwardRef(w(function(e,t){let n=V(U,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=F(U,e.__scopeTooltip);return(0,S.jsx)(_,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(G,{side:i,...a,ref:t}):(0,S.jsx)(ne,{side:i,...a,ref:t})})},`TooltipContent`)),ne=x.forwardRef(w(function(e,t){let n=F(U,e.__scopeTooltip),r=M(U,e.__scopeTooltip),i=x.useRef(null),a=c(t,i),[o,s]=x.useState(null),{trigger:l,onClose:u}=n,d=i.current,{onPointerInTransitChange:f}=r,p=x.useCallback(()=>{s(null),f(!1)},[f]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=J(r,q(r,n.getBoundingClientRect())),a=Y(t.getBoundingClientRect()),o=Z([...i,...a]);s(o),f(!0)},[f]);return x.useEffect(()=>()=>p(),[p]),x.useEffect(()=>{if(l&&d){let e=w(e=>m(e,d),`handleTriggerLeave`),t=w(e=>m(e,l),`handleContentLeave`);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),x.useEffect(()=>{if(o){let e=w(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!X(n,o);r?p():i&&(p(),u())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,o,u,p]),(0,S.jsx)(G,{...e,ref:a})},`TooltipContentHoverable`)),W=v(`TooltipContent`),G=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,children:i,"aria-label":a,id:o,onEscapeKeyDown:s,onPointerDownOutside:c,...l}=e,d=F(U,n),f=D(n),{onClose:p}=d;x.useEffect(()=>(document.addEventListener(A,p),()=>document.removeEventListener(A,p)),[p]),x.useEffect(()=>{if(d.trigger){let e=w(e=>{e.target instanceof Node&&e.target.contains(d.trigger)&&p()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[d.trigger,p]);let{setContentId:m}=d;return u(()=>(m(o),()=>{m(void 0)}),[o,m]),(0,S.jsx)(h,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:p,children:(0,S.jsxs)(r,{"data-state":d.stateAttribute,role:a?void 0:`tooltip`,id:a?void 0:d.contentId,...f,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,S.jsx)(W,{children:i}),a?(0,S.jsx)(y,{id:d.contentId,role:`tooltip`,children:a}):null]})})},`TooltipContentImpl`)),K=x.forwardRef(w(function(e,t){let{__scopeTooltip:n,...r}=e,i=D(n);return(0,S.jsx)(o,{...i,...r,ref:t})},`TooltipArrow`));function q(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}w(q,`getExitSideFromRect`);function J(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}w(J,`getPaddedExitPoints`);function Y(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}w(Y,`getPointsFromRect`);function X(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}w(X,`isPointInPolygon`);function Z(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Q(t)}w(Z,`getHull`);function Q(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}w(Q,`getHullPresorted`);var re=N,ie=I,$=R,ae=H,oe=te,se=K;function ce({delayDuration:e=0,...t}){return(0,S.jsx)(re,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function le({...e}){return(0,S.jsx)(ie,{"data-slot":`tooltip`,...e})}function ue({...e}){return(0,S.jsx)($,{"data-slot":`tooltip-trigger`,...e})}function de({className:e,sideOffset:t=0,children:n,...r}){return(0,S.jsx)(ae,{children:(0,S.jsxs)(oe,{"data-slot":`tooltip-content`,sideOffset:t,className:b(`z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs font-medium text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,e),...r,children:[n,(0,S.jsx)(se,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`})]})})}export{ue as i,de as n,ce as r,le as t};
|
|
2
|
+
//# sourceMappingURL=tooltip-Bqf3oyqC.js.map
|