@shapio/cms 0.4.0 → 0.5.0
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-C-Mu0BRF.js → AssetTile-zOf0K0nN.js} +2 -2
- package/dist/admin/assets/{AssetTile-C-Mu0BRF.js.map → AssetTile-zOf0K0nN.js.map} +1 -1
- package/dist/admin/assets/{AssistError-B-bnaHhJ.js → AssistError-D_vY2CO0.js} +2 -2
- package/dist/admin/assets/{AssistError-B-bnaHhJ.js.map → AssistError-D_vY2CO0.js.map} +1 -1
- package/dist/admin/assets/{BlockMenuItems-Dn9WULjL.js → BlockMenuItems-BEnSpClj.js} +2 -2
- package/dist/admin/assets/{BlockMenuItems-Dn9WULjL.js.map → BlockMenuItems-BEnSpClj.js.map} +1 -1
- package/dist/admin/assets/{Body-C0SwduLi.js → Body-B_IVN5wp.js} +2 -2
- package/dist/admin/assets/{Body-C0SwduLi.js.map → Body-B_IVN5wp.js.map} +1 -1
- package/dist/admin/assets/Builder-CnEtRudv.js +2 -0
- package/dist/admin/assets/Builder-CnEtRudv.js.map +1 -0
- package/dist/admin/assets/{ConfirmDialog-BfpN2MQx.js → ConfirmDialog-BW-l3Whg.js} +2 -2
- package/dist/admin/assets/{ConfirmDialog-BfpN2MQx.js.map → ConfirmDialog-BW-l3Whg.js.map} +1 -1
- package/dist/admin/assets/{CopyButton-Dxbzp7hC.js → CopyButton-CyoUMStc.js} +2 -2
- package/dist/admin/assets/{CopyButton-Dxbzp7hC.js.map → CopyButton-CyoUMStc.js.map} +1 -1
- package/dist/admin/assets/{CursorPager-DkZs6rPg.js → CursorPager-BW2Dl_hn.js} +2 -2
- package/dist/admin/assets/{CursorPager-DkZs6rPg.js.map → CursorPager-BW2Dl_hn.js.map} +1 -1
- package/dist/admin/assets/{ExternalLink-KdO72pTj.js → ExternalLink-BCI0q9ib.js} +2 -2
- package/dist/admin/assets/{ExternalLink-KdO72pTj.js.map → ExternalLink-BCI0q9ib.js.map} +1 -1
- package/dist/admin/assets/{FocalPoint-r1MG_y-r.js → FocalPoint-CxicvlJO.js} +2 -2
- package/dist/admin/assets/{FocalPoint-r1MG_y-r.js.map → FocalPoint-CxicvlJO.js.map} +1 -1
- package/dist/admin/assets/{Form-D8vp4Kd_.js → Form-DB03drS9.js} +2 -2
- package/dist/admin/assets/{Form-D8vp4Kd_.js.map → Form-DB03drS9.js.map} +1 -1
- package/dist/admin/assets/{FormCheckboxGroup-8ObPh9cH.js → FormCheckboxGroup-JP1xzReQ.js} +2 -2
- package/dist/admin/assets/{FormCheckboxGroup-8ObPh9cH.js.map → FormCheckboxGroup-JP1xzReQ.js.map} +1 -1
- package/dist/admin/assets/{FormRadioGroup-CAB3qzVS.js → FormRadioGroup-BvSC8SRm.js} +2 -2
- package/dist/admin/assets/{FormRadioGroup-CAB3qzVS.js.map → FormRadioGroup-BvSC8SRm.js.map} +1 -1
- package/dist/admin/assets/{FormSelectField-C7hE05Wq.js → FormSelectField-BDIVhZh6.js} +2 -2
- package/dist/admin/assets/{FormSelectField-C7hE05Wq.js.map → FormSelectField-BDIVhZh6.js.map} +1 -1
- package/dist/admin/assets/{FormSwitchField-7EEYkGOH.js → FormSwitchField-OM4F8ln4.js} +2 -2
- package/dist/admin/assets/{FormSwitchField-7EEYkGOH.js.map → FormSwitchField-OM4F8ln4.js.map} +1 -1
- package/dist/admin/assets/{FormTextareaField-BasuRoXW.js → FormTextareaField-Bw7EkC4H.js} +2 -2
- package/dist/admin/assets/{FormTextareaField-BasuRoXW.js.map → FormTextareaField-Bw7EkC4H.js.map} +1 -1
- package/dist/admin/assets/{HintedLabel-BDV81kIT.js → HintedLabel-BGidukgy.js} +2 -2
- package/dist/admin/assets/{HintedLabel-BDV81kIT.js.map → HintedLabel-BGidukgy.js.map} +1 -1
- package/dist/admin/assets/{InfoHint-DWn9kLf1.js → InfoHint-D3uwei-E.js} +2 -2
- package/dist/admin/assets/{InfoHint-DWn9kLf1.js.map → InfoHint-D3uwei-E.js.map} +1 -1
- package/dist/admin/assets/{InsertMenuItem-DhJk5BeH.js → InsertMenuItem-DAihGvbw.js} +2 -2
- package/dist/admin/assets/{InsertMenuItem-DhJk5BeH.js.map → InsertMenuItem-DAihGvbw.js.map} +1 -1
- package/dist/admin/assets/{LinkTabs-stM3j4aH.js → LinkTabs-DBXbfzME.js} +2 -2
- package/dist/admin/assets/{LinkTabs-stM3j4aH.js.map → LinkTabs-DBXbfzME.js.map} +1 -1
- package/dist/admin/assets/{Match-Zu4pwfCC.js → Match-CgfZTzqs.js} +2 -2
- package/dist/admin/assets/{Match-Zu4pwfCC.js.map → Match-CgfZTzqs.js.map} +1 -1
- package/dist/admin/assets/{Panel-ClY9b33D.js → Panel-DDky5_x9.js} +2 -2
- package/dist/admin/assets/{Panel-ClY9b33D.js.map → Panel-DDky5_x9.js.map} +1 -1
- package/dist/admin/assets/{QueryView-Cu-KPtQI.js → QueryView-C2d392ly.js} +2 -2
- package/dist/admin/assets/{QueryView-Cu-KPtQI.js.map → QueryView-C2d392ly.js.map} +1 -1
- package/dist/admin/assets/{RadioTile-Ci0LucKI.js → RadioTile-CcP78eb_.js} +2 -2
- package/dist/admin/assets/{RadioTile-Ci0LucKI.js.map → RadioTile-CcP78eb_.js.map} +1 -1
- package/dist/admin/assets/{RichTextField-BcYOFkeW.js → RichTextField-CeztaFET.js} +2 -2
- package/dist/admin/assets/{RichTextField-BcYOFkeW.js.map → RichTextField-CeztaFET.js.map} +1 -1
- package/dist/admin/assets/{RowTitle-BdDgA5Lb.js → RowTitle-mkKp4yfl.js} +2 -2
- package/dist/admin/assets/{RowTitle-BdDgA5Lb.js.map → RowTitle-mkKp4yfl.js.map} +1 -1
- package/dist/admin/assets/{SecretReveal-ai1uMW_b.js → SecretReveal-mYCzxF96.js} +2 -2
- package/dist/admin/assets/{SecretReveal-ai1uMW_b.js.map → SecretReveal-mYCzxF96.js.map} +1 -1
- package/dist/admin/assets/{SharedGlyph-y6ZsA_gz.js → SharedGlyph-CuDT7OUU.js} +2 -2
- package/dist/admin/assets/{SharedGlyph-y6ZsA_gz.js.map → SharedGlyph-CuDT7OUU.js.map} +1 -1
- package/dist/admin/assets/{StepList-xmD9CPZl.js → StepList-BDO0Q3Wc.js} +2 -2
- package/dist/admin/assets/{StepList-xmD9CPZl.js.map → StepList-BDO0Q3Wc.js.map} +1 -1
- package/dist/admin/assets/Structure-CL_0hVci.js +2 -0
- package/dist/admin/assets/{Structure-DGt-TDk5.js.map → Structure-CL_0hVci.js.map} +1 -1
- package/dist/admin/assets/{SubNavLink-YjjaDN40.js → SubNavLink-C4eSybWd.js} +2 -2
- package/dist/admin/assets/{SubNavLink-YjjaDN40.js.map → SubNavLink-C4eSybWd.js.map} +1 -1
- package/dist/admin/assets/{SuggestAltButton-D1-v_0wB.js → SuggestAltButton-CxYlhwyd.js} +2 -2
- package/dist/admin/assets/{SuggestAltButton-D1-v_0wB.js.map → SuggestAltButton-CxYlhwyd.js.map} +1 -1
- package/dist/admin/assets/{TextLink-DIqr5zkJ.js → TextLink-DzNaAft6.js} +2 -2
- package/dist/admin/assets/{TextLink-DIqr5zkJ.js.map → TextLink-DzNaAft6.js.map} +1 -1
- package/dist/admin/assets/{Thumbnail-cjA7fSWh.js → Thumbnail-DSPArZ9h.js} +2 -2
- package/dist/admin/assets/{Thumbnail-cjA7fSWh.js.map → Thumbnail-DSPArZ9h.js.map} +1 -1
- package/dist/admin/assets/{UnsavedChangesGuard-B57D0278.js → UnsavedChangesGuard-BPOCBD5T.js} +2 -2
- package/dist/admin/assets/{UnsavedChangesGuard-B57D0278.js.map → UnsavedChangesGuard-BPOCBD5T.js.map} +1 -1
- package/dist/admin/assets/{UserAvatar--pMv2i3c.js → UserAvatar-BHNWHDVb.js} +2 -2
- package/dist/admin/assets/{UserAvatar--pMv2i3c.js.map → UserAvatar-BHNWHDVb.js.map} +1 -1
- package/dist/admin/assets/{auth-YVfK3SxF.js → auth-BzCgJtgr.js} +2 -2
- package/dist/admin/assets/{auth-YVfK3SxF.js.map → auth-BzCgJtgr.js.map} +1 -1
- package/dist/admin/assets/{badge-C5oMRtwJ.js → badge-DBoaS0nQ.js} +2 -2
- package/dist/admin/assets/{badge-C5oMRtwJ.js.map → badge-DBoaS0nQ.js.map} +1 -1
- package/dist/admin/assets/{boxes-DRvd25_u.js → boxes-DhN0ctLo.js} +2 -2
- package/dist/admin/assets/{boxes-DRvd25_u.js.map → boxes-DhN0ctLo.js.map} +1 -1
- package/dist/admin/assets/{calendar-clock-VENf4s1R.js → calendar-clock-BEA3tG17.js} +2 -2
- package/dist/admin/assets/{calendar-clock-VENf4s1R.js.map → calendar-clock-BEA3tG17.js.map} +1 -1
- package/dist/admin/assets/{changeSets-CObZV8H2.js → changeSets-C54Ku-X9.js} +2 -2
- package/dist/admin/assets/{changeSets-CObZV8H2.js.map → changeSets-C54Ku-X9.js.map} +1 -1
- package/dist/admin/assets/chevron-left-BeJdUVAX.js +2 -0
- package/dist/admin/assets/{chevron-left-D2DnQyeV.js.map → chevron-left-BeJdUVAX.js.map} +1 -1
- package/dist/admin/assets/{circle-check-jmRQz1Jq.js → circle-check-ktACw37r.js} +2 -2
- package/dist/admin/assets/{circle-check-jmRQz1Jq.js.map → circle-check-ktACw37r.js.map} +1 -1
- package/dist/admin/assets/{clock-DrSTMGjp.js → clock-BKNNASKp.js} +2 -2
- package/dist/admin/assets/{clock-DrSTMGjp.js.map → clock-BKNNASKp.js.map} +1 -1
- package/dist/admin/assets/cn-h5ORT3LK.js +2 -0
- package/dist/admin/assets/cn-h5ORT3LK.js.map +1 -0
- package/dist/admin/assets/coerce-DDQ1vGLx.js +2 -0
- package/dist/admin/assets/{coerce-B4MJTGg1.js.map → coerce-DDQ1vGLx.js.map} +1 -1
- package/dist/admin/assets/{constants-DT4WPUvz.js → constants-DH7oqfO_.js} +2 -2
- package/dist/admin/assets/{constants-DT4WPUvz.js.map → constants-DH7oqfO_.js.map} +1 -1
- package/dist/admin/assets/content-BptqQO8c.js +3 -0
- package/dist/admin/assets/content-BptqQO8c.js.map +1 -0
- package/dist/admin/assets/{contentCounts-DzIvdeXR.js → contentCounts-BpGlmyeZ.js} +2 -2
- package/dist/admin/assets/{contentCounts-DzIvdeXR.js.map → contentCounts-BpGlmyeZ.js.map} +1 -1
- package/dist/admin/assets/{contentTypes-ArLEfM29.js → contentTypes-B_mAlIcH.js} +2 -2
- package/dist/admin/assets/{contentTypes-ArLEfM29.js.map → contentTypes-B_mAlIcH.js.map} +1 -1
- package/dist/admin/assets/{context-4Jl20mYc.js → context-DyyMW7Md.js} +2 -2
- package/dist/admin/assets/{context-4Jl20mYc.js.map → context-DyyMW7Md.js.map} +1 -1
- package/dist/admin/assets/{copy-t6kAFw-O.js → copy-DjzlFY9u.js} +2 -2
- package/dist/admin/assets/{copy-t6kAFw-O.js.map → copy-DjzlFY9u.js.map} +1 -1
- package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js → dateTimeLocal-DFXY779D.js} +2 -2
- package/dist/admin/assets/{dateTimeLocal-IDUOKulz.js.map → dateTimeLocal-DFXY779D.js.map} +1 -1
- package/dist/admin/assets/{develop-DvKYqVeK.js → develop-DJap_z-1.js} +3 -3
- package/dist/admin/assets/{develop-DvKYqVeK.js.map → develop-DJap_z-1.js.map} +1 -1
- package/dist/admin/assets/{dropdown-menu-DPzDthV7.js → dropdown-menu-DGSMTf23.js} +2 -2
- package/dist/admin/assets/{dropdown-menu-DPzDthV7.js.map → dropdown-menu-DGSMTf23.js.map} +1 -1
- package/dist/admin/assets/{ellipsis-DEHUaCkn.js → ellipsis-BMP-j3yO.js} +2 -2
- package/dist/admin/assets/{ellipsis-DEHUaCkn.js.map → ellipsis-BMP-j3yO.js.map} +1 -1
- package/dist/admin/assets/{external-link-B8UFREQ_.js → external-link-DzOkt97S.js} +2 -2
- package/dist/admin/assets/{external-link-B8UFREQ_.js.map → external-link-DzOkt97S.js.map} +1 -1
- package/dist/admin/assets/{fileRoute-sJvv4Ipn.js → fileRoute-CG0Dufvt.js} +2 -2
- package/dist/admin/assets/{fileRoute-sJvv4Ipn.js.map → fileRoute-CG0Dufvt.js.map} +1 -1
- package/dist/admin/assets/{folder-plus-iDg1hhew.js → folder-plus-C-LhI4a2.js} +2 -2
- package/dist/admin/assets/{folder-plus-iDg1hhew.js.map → folder-plus-C-LhI4a2.js.map} +1 -1
- package/dist/admin/assets/{followPlural-tOh6gDgT.js → followPlural-D-8kzFOe.js} +2 -2
- package/dist/admin/assets/{followPlural-tOh6gDgT.js.map → followPlural-D-8kzFOe.js.map} +1 -1
- package/dist/admin/assets/{globe-TooNSp9V.js → globe-DOoGBy23.js} +2 -2
- package/dist/admin/assets/{globe-TooNSp9V.js.map → globe-DOoGBy23.js.map} +1 -1
- package/dist/admin/assets/{image-CXZXXH58.js → image-D9p_gGE2.js} +2 -2
- package/dist/admin/assets/{image-CXZXXH58.js.map → image-D9p_gGE2.js.map} +1 -1
- package/dist/admin/assets/{image-off-cxva5G-Y.js → image-off-G0M2Nh1I.js} +2 -2
- package/dist/admin/assets/{image-off-cxva5G-Y.js.map → image-off-G0M2Nh1I.js.map} +1 -1
- package/dist/admin/assets/{inbox-B8c9Kj_z.js → inbox-CMzYVMZo.js} +2 -2
- package/dist/admin/assets/{inbox-B8c9Kj_z.js.map → inbox-CMzYVMZo.js.map} +1 -1
- package/dist/admin/assets/{inbox-nfR2K7f6.js → inbox-XaM-nvsM.js} +2 -2
- package/dist/admin/assets/{inbox-nfR2K7f6.js.map → inbox-XaM-nvsM.js.map} +1 -1
- package/dist/admin/assets/index-6iVBpUhu.css +2 -0
- package/dist/admin/assets/index-DHmfMpqz.js +4 -0
- package/dist/admin/assets/index-DHmfMpqz.js.map +1 -0
- package/dist/admin/assets/{key-round-CFJ61iCd.js → key-round-HBvMrmMo.js} +2 -2
- package/dist/admin/assets/{key-round-CFJ61iCd.js.map → key-round-HBvMrmMo.js.map} +1 -1
- package/dist/admin/assets/{languages-eh7U4anI.js → languages-BOv0jYhe.js} +2 -2
- package/dist/admin/assets/{languages-eh7U4anI.js.map → languages-BOv0jYhe.js.map} +1 -1
- package/dist/admin/assets/{layers-mGfmMsKE.js → layers-CkZyCaeb.js} +2 -2
- package/dist/admin/assets/{layers-mGfmMsKE.js.map → layers-CkZyCaeb.js.map} +1 -1
- package/dist/admin/assets/{link-2-off-DbZzRN_w.js → link-2-off-UUkSmPIL.js} +2 -2
- package/dist/admin/assets/{link-2-off-DbZzRN_w.js.map → link-2-off-UUkSmPIL.js.map} +1 -1
- package/dist/admin/assets/{link-b2pFaN-A.js → link-Bvqcg7db.js} +2 -2
- package/dist/admin/assets/{link-b2pFaN-A.js.map → link-Bvqcg7db.js.map} +1 -1
- package/dist/admin/assets/{locales-oBD0q1pN.js → locales-DbrcdhZi.js} +2 -2
- package/dist/admin/assets/{locales-oBD0q1pN.js.map → locales-DbrcdhZi.js.map} +1 -1
- package/dist/admin/assets/{media-BzivlEh2.js → media-CO0HSS3b.js} +2 -2
- package/dist/admin/assets/{media-BzivlEh2.js.map → media-CO0HSS3b.js.map} +1 -1
- package/dist/admin/assets/{media-5ks_0Rre.js → media-ugEyLgwN.js} +2 -2
- package/dist/admin/assets/{media-5ks_0Rre.js.map → media-ugEyLgwN.js.map} +1 -1
- package/dist/admin/assets/{network-Cj04CpFi.js → network-BfDaUb7D.js} +2 -2
- package/dist/admin/assets/{network-Cj04CpFi.js.map → network-BfDaUb7D.js.map} +1 -1
- package/dist/admin/assets/{pencil-C7eD5mlZ.js → pencil-BLNGNJmL.js} +2 -2
- package/dist/admin/assets/{pencil-C7eD5mlZ.js.map → pencil-BLNGNJmL.js.map} +1 -1
- package/dist/admin/assets/{plus-BDZHQBlU.js → plus-BXMBYPoB.js} +2 -2
- package/dist/admin/assets/{plus-BDZHQBlU.js.map → plus-BXMBYPoB.js.map} +1 -1
- package/dist/admin/assets/{preload-helper-CJNJ4S3k.js → preload-helper-DEbJbZwX.js} +2 -2
- package/dist/admin/assets/{preload-helper-CJNJ4S3k.js.map → preload-helper-DEbJbZwX.js.map} +1 -1
- package/dist/admin/assets/{publishing-ChHkrwvr.js → publishing-DKrATBaj.js} +2 -2
- package/dist/admin/assets/{publishing-ChHkrwvr.js.map → publishing-DKrATBaj.js.map} +1 -1
- package/dist/admin/assets/{radio-group-DSK5LPaM.js → radio-group-BIhT_uEK.js} +2 -2
- package/dist/admin/assets/{radio-group-DSK5LPaM.js.map → radio-group-BIhT_uEK.js.map} +1 -1
- package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js → rotate-ccw-DqbffhiC.js} +2 -2
- package/dist/admin/assets/{rotate-ccw-DCWwb4Ga.js.map → rotate-ccw-DqbffhiC.js.map} +1 -1
- package/dist/admin/assets/{schedules-DXrBSypK.js → schedules-CETl2eLe.js} +2 -2
- package/dist/admin/assets/{schedules-DXrBSypK.js.map → schedules-CETl2eLe.js.map} +1 -1
- package/dist/admin/assets/{schema-B7L9OJrX.js → schema-CWHuez0q.js} +2 -2
- package/dist/admin/assets/{schema-B7L9OJrX.js.map → schema-CWHuez0q.js.map} +1 -1
- package/dist/admin/assets/{scroll-text-BLThe4Ki.js → scroll-text-DlcDEi2k.js} +2 -2
- package/dist/admin/assets/{scroll-text-BLThe4Ki.js.map → scroll-text-DlcDEi2k.js.map} +1 -1
- package/dist/admin/assets/{search-CcJQqtRw.js → search-Dy2dtwyR.js} +2 -2
- package/dist/admin/assets/{search-CcJQqtRw.js.map → search-Dy2dtwyR.js.map} +1 -1
- package/dist/admin/assets/{searchSchemas-BdwAFaVO.js → searchSchemas-Cz4P1iku.js} +2 -2
- package/dist/admin/assets/{searchSchemas-BdwAFaVO.js.map → searchSchemas-Cz4P1iku.js.map} +1 -1
- package/dist/admin/assets/{sections-iNOzo7pL.js → sections-BfG6DTFr.js} +2 -2
- package/dist/admin/assets/{sections-iNOzo7pL.js.map → sections-BfG6DTFr.js.map} +1 -1
- package/dist/admin/assets/{sections-TIN_Nl1b.js → sections-EgXyXN3-.js} +2 -2
- package/dist/admin/assets/{sections-TIN_Nl1b.js.map → sections-EgXyXN3-.js.map} +1 -1
- package/dist/admin/assets/{select-DyD7qIkJ.js → select--mePTdz8.js} +2 -2
- package/dist/admin/assets/{select-DyD7qIkJ.js.map → select--mePTdz8.js.map} +1 -1
- package/dist/admin/assets/{send-CbP0Rc9_.js → send-DVgq5Iwg.js} +2 -2
- package/dist/admin/assets/{send-CbP0Rc9_.js.map → send-DVgq5Iwg.js.map} +1 -1
- package/dist/admin/assets/{seo-uMm2fGPB.js → seo-Zhb62Ojz.js} +2 -2
- package/dist/admin/assets/{seo-uMm2fGPB.js.map → seo-Zhb62Ojz.js.map} +1 -1
- package/dist/admin/assets/{settings-CJVORrIV.js → settings-Mscp6tN5.js} +2 -2
- package/dist/admin/assets/{settings-CJVORrIV.js.map → settings-Mscp6tN5.js.map} +1 -1
- package/dist/admin/assets/{skeleton-B5GJgv7y.js → skeleton-DJVukcn6.js} +2 -2
- package/dist/admin/assets/skeleton-DJVukcn6.js.map +1 -0
- package/dist/admin/assets/{snapshots-DkyyrWX3.js → snapshots-BpLhILlt.js} +2 -2
- package/dist/admin/assets/{snapshots-DkyyrWX3.js.map → snapshots-BpLhILlt.js.map} +1 -1
- package/dist/admin/assets/{sparkles-D88gf3vX.js → sparkles-Dd6S_roX.js} +2 -2
- package/dist/admin/assets/{sparkles-D88gf3vX.js.map → sparkles-Dd6S_roX.js.map} +1 -1
- package/dist/admin/assets/src-Be3Ds5Dc.js +4 -0
- package/dist/admin/assets/src-Be3Ds5Dc.js.map +1 -0
- package/dist/admin/assets/{stableId-DlNKh3HM.js → stableId-DFVM13gJ.js} +2 -2
- package/dist/admin/assets/{stableId-DlNKh3HM.js.map → stableId-DFVM13gJ.js.map} +1 -1
- package/dist/admin/assets/{store-jUWyOXDG.js → store-BP-xStwU.js} +2 -2
- package/dist/admin/assets/{store-jUWyOXDG.js.map → store-BP-xStwU.js.map} +1 -1
- package/dist/admin/assets/{switch-DbIrjP3h.js → switch-skVypg5O.js} +2 -2
- package/dist/admin/assets/{switch-DbIrjP3h.js.map → switch-skVypg5O.js.map} +1 -1
- package/dist/admin/assets/{table-DQ5ILlSh.js → table-BMbbRUK9.js} +2 -2
- package/dist/admin/assets/{table-DQ5ILlSh.js.map → table-BMbbRUK9.js.map} +1 -1
- package/dist/admin/assets/tabs-C1lgOg1B.js +5 -0
- package/dist/admin/assets/tabs-C1lgOg1B.js.map +1 -0
- package/dist/admin/assets/{textarea-FwSvwmyT.js → textarea-CffBBxoQ.js} +2 -2
- package/dist/admin/assets/{textarea-FwSvwmyT.js.map → textarea-CffBBxoQ.js.map} +1 -1
- package/dist/admin/assets/{theme-C0Tv6M38.js → theme-RHTVnR9j.js} +2 -2
- package/dist/admin/assets/{theme-C0Tv6M38.js.map → theme-RHTVnR9j.js.map} +1 -1
- package/dist/admin/assets/{titles-uL13bpi8.js → titles-DWiPmNvn.js} +2 -2
- package/dist/admin/assets/{titles-uL13bpi8.js.map → titles-DWiPmNvn.js.map} +1 -1
- package/dist/admin/assets/{tokens-C-20gLAT.js → tokens-BqyeN1D-.js} +2 -2
- package/dist/admin/assets/{tokens-C-20gLAT.js.map → tokens-BqyeN1D-.js.map} +1 -1
- package/dist/admin/assets/{tooltip-BK5FqmJ0.js → tooltip-BfSF6EyR.js} +2 -2
- package/dist/admin/assets/{tooltip-BK5FqmJ0.js.map → tooltip-BfSF6EyR.js.map} +1 -1
- package/dist/admin/assets/{undo-2-CLy2zklL.js → undo-2-p4YlNhBp.js} +2 -2
- package/dist/admin/assets/{undo-2-CLy2zklL.js.map → undo-2-p4YlNhBp.js.map} +1 -1
- package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js → useAuditLabels-DV5gcaaG.js} +2 -2
- package/dist/admin/assets/{useAuditLabels-BJF7M5RY.js.map → useAuditLabels-DV5gcaaG.js.map} +1 -1
- package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js → useConfirmTarget-DCvnxNVg.js} +2 -2
- package/dist/admin/assets/{useConfirmTarget-BUvlrGSW.js.map → useConfirmTarget-DCvnxNVg.js.map} +1 -1
- package/dist/admin/assets/{useContentSchema-BCdLYsKa.js → useContentSchema-z6tNif86.js} +2 -2
- package/dist/admin/assets/{useContentSchema-BCdLYsKa.js.map → useContentSchema-z6tNif86.js.map} +1 -1
- package/dist/admin/assets/{useCursorPager-CzB6NDOB.js → useCursorPager-CQGX41_L.js} +2 -2
- package/dist/admin/assets/{useCursorPager-CzB6NDOB.js.map → useCursorPager-CQGX41_L.js.map} +1 -1
- package/dist/admin/assets/{useDiscardGuard-CGFgC3xY.js → useDiscardGuard-Dhbif7VL.js} +2 -2
- package/dist/admin/assets/{useDiscardGuard-CGFgC3xY.js.map → useDiscardGuard-Dhbif7VL.js.map} +1 -1
- package/dist/admin/assets/{useMediaPickerDialog-BOkGEyG7.js → useMediaPickerDialog-D-5uKsMG.js} +2 -2
- package/dist/admin/assets/{useMediaPickerDialog-BOkGEyG7.js.map → useMediaPickerDialog-D-5uKsMG.js.map} +1 -1
- package/dist/admin/assets/{useMediaUploader-D1ouV8jc.js → useMediaUploader-BtLoimmQ.js} +2 -2
- package/dist/admin/assets/{useMediaUploader-D1ouV8jc.js.map → useMediaUploader-BtLoimmQ.js.map} +1 -1
- package/dist/admin/assets/usePaletteItems-D3PZsW0Q.js +2 -0
- package/dist/admin/assets/usePaletteItems-D3PZsW0Q.js.map +1 -0
- package/dist/admin/assets/{usePlaces-6iTN15Xy.js → usePlaces-Cj5PljTy.js} +2 -2
- package/dist/admin/assets/{usePlaces-6iTN15Xy.js.map → usePlaces-Cj5PljTy.js.map} +1 -1
- package/dist/admin/assets/{useQueries-CYfcxI0Q.js → useQueries-CeDzli4Z.js} +2 -2
- package/dist/admin/assets/{useQueries-CYfcxI0Q.js.map → useQueries-CeDzli4Z.js.map} +1 -1
- package/dist/admin/assets/{useResolvedScheme-D0moXjaP.js → useResolvedScheme-DHD-zisP.js} +2 -2
- package/dist/admin/assets/{useResolvedScheme-D0moXjaP.js.map → useResolvedScheme-DHD-zisP.js.map} +1 -1
- package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js → useSchemaScopeAccess-BNeVslcv.js} +2 -2
- package/dist/admin/assets/{useSchemaScopeAccess-WQKmj8_3.js.map → useSchemaScopeAccess-BNeVslcv.js.map} +1 -1
- package/dist/admin/assets/{users-BgTNDPXx.js → users-BRefbzuS.js} +2 -2
- package/dist/admin/assets/{users-BgTNDPXx.js.map → users-BRefbzuS.js.map} +1 -1
- package/dist/admin/assets/{users-B01EH47o.js → users-CppI8ctO.js} +2 -2
- package/dist/admin/assets/{users-B01EH47o.js.map → users-CppI8ctO.js.map} +1 -1
- package/dist/admin/assets/{zod-CS0EvbwG.js → zod-Dcwk-m8X.js} +2 -2
- package/dist/admin/assets/{zod-CS0EvbwG.js.map → zod-Dcwk-m8X.js.map} +1 -1
- package/dist/admin/index.html +57 -57
- package/dist/cli.js +110 -18
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{public-BSbOGbK-.d.ts → public-DYR4mtVQ.d.ts} +3 -1
- package/dist/s3Adapter-C8AgFVYw.js +125 -0
- package/dist/s3Adapter-C8AgFVYw.js.map +1 -0
- package/dist/{worker-i1rY2TIZ.js → worker-jz_0yAmS.js} +691 -458
- package/dist/worker-jz_0yAmS.js.map +1 -0
- package/package.json +8 -5
- package/dist/admin/assets/Builder-C11yUgu9.js +0 -2
- package/dist/admin/assets/Builder-C11yUgu9.js.map +0 -1
- package/dist/admin/assets/Structure-DGt-TDk5.js +0 -2
- package/dist/admin/assets/chevron-left-D2DnQyeV.js +0 -2
- package/dist/admin/assets/cn-CL1YHRrS.js +0 -2
- package/dist/admin/assets/cn-CL1YHRrS.js.map +0 -1
- package/dist/admin/assets/coerce-B4MJTGg1.js +0 -2
- package/dist/admin/assets/content-HvisCB5m.js +0 -3
- package/dist/admin/assets/content-HvisCB5m.js.map +0 -1
- package/dist/admin/assets/index-Bbb2ER3l.css +0 -2
- package/dist/admin/assets/index-C6FrF34G.js +0 -4
- package/dist/admin/assets/index-C6FrF34G.js.map +0 -1
- package/dist/admin/assets/skeleton-B5GJgv7y.js.map +0 -1
- package/dist/admin/assets/src-B2qcqjNM.js +0 -4
- package/dist/admin/assets/src-B2qcqjNM.js.map +0 -1
- package/dist/admin/assets/tabs-BJhfL-lw.js +0 -5
- package/dist/admin/assets/tabs-BJhfL-lw.js.map +0 -1
- package/dist/admin/assets/usePaletteItems-neKzBlys.js +0 -2
- package/dist/admin/assets/usePaletteItems-neKzBlys.js.map +0 -1
- package/dist/worker-i1rY2TIZ.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{i as r,j as i,r as a,t as o}from"./cn-CL1YHRrS.js";import{C as s,D as c,E as l,S as u,T as d,b as f,g as p,w as m,x as h,y as g}from"./badge-C5oMRtwJ.js";import{N as _,a as v,d as y,i as b,n as x,o as S,r as C,z as w}from"./InfoHint-DWn9kLf1.js";import{E as T,O as E,T as D,a as O,b as k,g as A,h as j,i as M,k as N,v as P,y as F}from"./skeleton-B5GJgv7y.js";var I={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};I.node;var L=r(I),R=e(t(),1),z=e(n(),1),ee=Object.defineProperty,B=(e,t)=>ee(e,`name`,{value:t,configurable:!0}),[te,ne]=F(`AlertDialog`,[c]),V=c(),re=B(e=>{let{__scopeAlertDialog:t,...n}=e,r=V(t);return(0,z.jsx)(g,{...r,...n,modal:!0})},`AlertDialog`);R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(l,{...i,...r,ref:t})},`AlertDialogTrigger`));var ie=B(e=>{let{__scopeAlertDialog:t,...n}=e,r=V(t);return(0,z.jsx)(m,{...r,...n})},`AlertDialogPortal`),ae=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(s,{...i,...r,ref:t})},`AlertDialogOverlay`)),[oe,se]=te(`AlertDialogContent`),ce=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,children:r,...i}=e,a=V(n),o=R.useRef(null),s=D(t,o),c=R.useRef(null);return(0,z.jsx)(oe,{scope:n,cancelRef:c,children:(0,z.jsx)(h,{role:`alertdialog`,...a,...i,ref:s,onOpenAutoFocus:P(i.onOpenAutoFocus,e=>{e.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:r})})},`AlertDialogContent`)),le=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(d,{...i,...r,ref:t})},`AlertDialogTitle`)),ue=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(u,{...i,...r,ref:t})},`AlertDialogDescription`)),de=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(f,{...i,...r,ref:t})},`AlertDialogAction`)),fe=`AlertDialogCancel`,pe=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=se(fe,n),a=V(n),o=D(t,i);return(0,z.jsx)(f,{...a,...r,ref:o})},`AlertDialogCancel`)),me=re,he=ie,ge=ae,_e=ce,ve=de,ye=pe,be=le,xe=ue,Se=Object.defineProperty,H=(e,t)=>Se(e,`name`,{value:t,configurable:!0}),U=`Checkbox`,[Ce,we]=F(U),[Te,W]=Ce(U);function G(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=A({prop:n,defaultProp:i??!1,onChange:c,caller:U}),[m,h]=R.useState(null),[g,_]=R.useState(null),v=R.useRef(!1),[y,b]=R.useReducer(e=>e+1,0),x=!m||!!o||!!m.closest(`form`),S={checked:f,disabled:a,setChecked:p,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:v,userInteractionCount:y,onUserInteraction:b,required:l,defaultChecked:!q(i)&&i,isFormControl:x,bubbleInput:g,setBubbleInput:_};return(0,z.jsx)(Te,{scope:t,...S,children:K(d)?d(S):r})}H(G,`CheckboxProvider`);var Ee=`CheckboxTrigger`,De=R.forwardRef(H(function({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i){let{control:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:m,bubbleInput:h}=W(Ee,e),g=D(i,u),_=R.useRef(c);return R.useEffect(()=>{let e=a?.form;if(e){let t=H(()=>d(_.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,d]),(0,z.jsx)(k.button,{type:`button`,role:`checkbox`,"aria-checked":q(c)?`mixed`:c,"aria-required":l,"data-state":J(c),"data-disabled":s?``:void 0,disabled:s,value:o,...r,ref:g,onKeyDown:P(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:P(n,e=>{p(),d(e=>q(e)?!0:!e),h&&m&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`CheckboxTrigger`)),Oe=R.forwardRef(H(function(e,t){let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,z.jsx)(G,{__scopeCheckbox: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,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(De,{...d,ref:t,__scopeCheckbox:n}),e&&(0,z.jsx)(Me,{__scopeCheckbox:n})]})})},`Checkbox`)),ke=`CheckboxIndicator`,Ae=R.forwardRef(H(function(e,t){let{__scopeCheckbox:n,forceMount:r,...i}=e,a=W(ke,n);return(0,z.jsx)(j,{present:r||q(a.checked)||a.checked===!0,children:(0,z.jsx)(k.span,{"data-state":J(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})},`CheckboxIndicator`)),je=`CheckboxBubbleInput`,Me=R.forwardRef(H(function({__scopeCheckbox:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:m,setBubbleInput:h}=W(je,e),g=D(r,h),v=_(i),y=R.useRef(!1),b=R.useRef(s),x=R.useRef(o);R.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==x.current;x.current=o;let i=b.current!==s;b.current=s;let c=!(r&&a.current);if(i&&n){y.current=!r;let t=new Event(`click`,{bubbles:c});e.indeterminate=q(s),n.call(e,!q(s)&&s),e.dispatchEvent(t),y.current=!1}},[m,s,a,o]);let S=R.useRef(!q(s)&&s);return(0,z.jsx)(k.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??S.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:g,onClick:P(t,e=>{y.current&&e.stopPropagation()}),style:{...n.style,...v,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`CheckboxBubbleInput`));function K(e){return typeof e==`function`}H(K,`isFunction`);function q(e){return e===`indeterminate`}H(q,`isIndeterminate`);function J(e){return q(e)?`indeterminate`:e?`checked`:`unchecked`}H(J,`getState`);var Ne=T(`relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`border-destructive/30 bg-destructive-muted text-destructive *:data-[slot=alert-description]:text-destructive [&>svg]:text-current`,warning:`border-warning/30 bg-warning-muted text-warning *:data-[slot=alert-description]:text-warning [&>svg]:text-current`,info:`border-border bg-muted text-foreground *:data-[slot=alert-description]:text-muted-foreground dark:border-info/30 dark:bg-info-muted dark:text-info dark:*:data-[slot=alert-description]:text-info [&>svg]:text-info`,success:`border-success/30 bg-success-muted text-success *:data-[slot=alert-description]:text-success [&>svg]:text-current`}},defaultVariants:{variant:`default`}});function Y({className:e,variant:t,...n}){return(0,z.jsx)(`div`,{"data-slot":`alert`,role:`alert`,className:o(Ne({variant:t}),e),...n})}function Pe({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-title`,className:o(`col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight`,e),...t})}function X({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-description`,className:o(`col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed`,e),...t})}var Z=({error:e})=>e?(0,z.jsxs)(Y,{variant:`destructive`,children:[(0,z.jsx)(L,{"aria-hidden":`true`}),(0,z.jsx)(X,{children:N(e)})]}):null,Fe=e=>{let{title:t,description:n,confirmLabel:r,cancelLabel:o,pendingLabel:s,tone:c,onConfirm:l,align:u=`end`,side:d=`bottom`,onCloseAutoFocus:f}=e,{t:m}=i(),h=(0,R.useId)(),g=(0,R.useId)(),_=(0,R.useRef)(null),y=(0,R.useRef)(null),[S,w]=(0,R.useState)(!1),[T,E]=(0,R.useState)(!1),[D,O]=(0,R.useState)(null),k=e.trigger===void 0?e.open:S,A=t=>{t&&O(null),e.trigger===void 0?e.onOpenChange(t):w(t)},j=e=>T&&!e?void 0:A(e),N=()=>{let e=l();if(!(e instanceof Promise)){A(!1);return}E(!0),O(null),e.then(()=>{E(!1),A(!1)},e=>{E(!1),O(e)})},P=p(e=>{e.preventDefault(),(c===`danger`?_:y).current?.focus()},f);return(0,z.jsxs)(x,{open:k,onOpenChange:j,modal:!0,children:[e.trigger===void 0?(0,z.jsx)(C,{asChild:!0,children:e.children}):(0,z.jsx)(v,{asChild:!0,children:e.trigger}),(0,z.jsxs)(b,{role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":h,"aria-describedby":n?g:void 0,align:u,side:d,className:`w-80 space-y-4`,...P,children:[(0,z.jsxs)(`div`,{className:`space-y-1`,children:[(0,z.jsx)(`p`,{id:h,className:`text-sm font-semibold`,children:t}),n?(0,z.jsx)(`p`,{id:g,className:`text-meta text-muted-foreground`,children:n}):null]}),(0,z.jsx)(Z,{error:D}),(0,z.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,z.jsx)(M,{ref:_,type:`button`,size:`sm`,variant:`outline`,disabled:T,onClick:()=>A(!1),children:o??m(`common.cancel`)}),(0,z.jsx)(M,{ref:y,type:`button`,size:`sm`,variant:c===`danger`?`destructive`:`default`,disabled:T,"aria-busy":T||void 0,onClick:N,children:T?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(a,{className:`animate-spin`,"aria-hidden":`true`}),s??r]}):r})]})]})]})};function Q({className:e,...t}){return(0,z.jsx)(Oe,{"data-slot":`checkbox`,className:o(`peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary dark:data-[state=indeterminate]:bg-primary`,e),...t,children:(0,z.jsx)(Ae,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none`,children:t.checked===`indeterminate`?(0,z.jsx)(w,{className:`size-3.5`}):(0,z.jsx)(E,{className:`size-3.5`})})})}function Ie({...e}){return(0,z.jsx)(me,{"data-slot":`alert-dialog`,...e})}function Le({...e}){return(0,z.jsx)(he,{"data-slot":`alert-dialog-portal`,...e})}function $({className:e,...t}){return(0,z.jsx)(ge,{"data-slot":`alert-dialog-overlay`,className:o(`fixed inset-0 z-50 bg-overlay/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function Re({className:e,size:t=`default`,onOpenAutoFocus:n,onCloseAutoFocus:r,...i}){let a=p(n,r);return(0,z.jsxs)(Le,{children:[(0,z.jsx)($,{}),(0,z.jsx)(_e,{"data-slot":`alert-dialog-content`,"data-size":t,className:o(`group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-xl border bg-card p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg`,e),...i,...a})]})}function ze({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-dialog-header`,className:o(`grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]`,e),...t})}function Be({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-dialog-footer`,className:o(`flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end`,e),...t})}function Ve({className:e,...t}){return(0,z.jsx)(be,{"data-slot":`alert-dialog-title`,className:o(`text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2`,e),...t})}function He({className:e,...t}){return(0,z.jsx)(xe,{"data-slot":`alert-dialog-description`,className:o(`text-sm text-muted-foreground`,e),...t})}function Ue({className:e,variant:t=`default`,size:n=`default`,...r}){return(0,z.jsx)(M,{variant:t,size:n,asChild:!0,children:(0,z.jsx)(ve,{"data-slot":`alert-dialog-action`,className:o(e),...r})})}function We({className:e,variant:t=`outline`,size:n=`default`,...r}){return(0,z.jsx)(M,{variant:t,size:n,asChild:!0,children:(0,z.jsx)(ye,{"data-slot":`alert-dialog-cancel`,className:o(e),...r})})}var Ge=({open:e,onOpenChange:t,title:n,description:r,confirmLabel:o,cancelLabel:s,destructive:c=!1,onConfirm:l,acknowledgement:u,pending:d,pendingLabel:f,error:p})=>{let{t:m}=i(),h=(0,R.useId)(),[g,_]=(0,R.useState)(!1),[v,b]=(0,R.useState)(e);e!==v&&(b(e),e&&_(!1));let x=d!==void 0,C=d===!0,w=u!==void 0&&!g,T=O({variant:c?`destructive`:`default`});return(0,z.jsx)(Ie,{open:e,onOpenChange:e=>C&&!e?void 0:t(e),children:(0,z.jsxs)(Re,{children:[(0,z.jsxs)(ze,{children:[(0,z.jsx)(Ve,{children:n}),(0,z.jsx)(He,{children:r})]}),u?(0,z.jsxs)(S,{orientation:`horizontal`,children:[(0,z.jsx)(Q,{id:h,checked:g,disabled:C,onCheckedChange:e=>_(e===!0)}),(0,z.jsx)(y,{htmlFor:h,className:`font-normal`,children:u})]}):null,x?(0,z.jsx)(Z,{error:p}):null,(0,z.jsxs)(Be,{children:[(0,z.jsx)(We,{disabled:C,children:s??m(`common.cancel`)}),x?(0,z.jsx)(M,{type:`button`,variant:c?`destructive`:`default`,disabled:C||w,"aria-busy":C||void 0,onClick:l,children:C?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(a,{className:`animate-spin`,"aria-hidden":`true`}),f??o]}):o}):(0,z.jsx)(Ue,{className:T,disabled:w,onClick:l,children:o})]})]})})};export{Y as a,L as c,Z as i,Q as n,X as o,Fe as r,Pe as s,Ge as t};
|
|
2
|
-
//# sourceMappingURL=ConfirmDialog-
|
|
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{i as r,j as i,r as a,t as o}from"./cn-h5ORT3LK.js";import{C as s,D as c,E as l,S as u,T as d,b as f,g as p,w as m,x as h,y as g}from"./badge-DBoaS0nQ.js";import{N as _,a as v,d as y,i as b,n as x,o as S,r as C,z as w}from"./InfoHint-D3uwei-E.js";import{E as T,O as E,T as D,a as O,b as k,g as A,h as j,i as M,k as N,v as P,y as F}from"./skeleton-DJVukcn6.js";var I={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};I.node;var L=r(I),R=e(t(),1),z=e(n(),1),ee=Object.defineProperty,B=(e,t)=>ee(e,`name`,{value:t,configurable:!0}),[te,ne]=F(`AlertDialog`,[c]),V=c(),re=B(e=>{let{__scopeAlertDialog:t,...n}=e,r=V(t);return(0,z.jsx)(g,{...r,...n,modal:!0})},`AlertDialog`);R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(l,{...i,...r,ref:t})},`AlertDialogTrigger`));var ie=B(e=>{let{__scopeAlertDialog:t,...n}=e,r=V(t);return(0,z.jsx)(m,{...r,...n})},`AlertDialogPortal`),ae=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(s,{...i,...r,ref:t})},`AlertDialogOverlay`)),[oe,se]=te(`AlertDialogContent`),ce=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,children:r,...i}=e,a=V(n),o=R.useRef(null),s=D(t,o),c=R.useRef(null);return(0,z.jsx)(oe,{scope:n,cancelRef:c,children:(0,z.jsx)(h,{role:`alertdialog`,...a,...i,ref:s,onOpenAutoFocus:P(i.onOpenAutoFocus,e=>{e.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:r})})},`AlertDialogContent`)),le=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(d,{...i,...r,ref:t})},`AlertDialogTitle`)),ue=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(u,{...i,...r,ref:t})},`AlertDialogDescription`)),de=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=V(n);return(0,z.jsx)(f,{...i,...r,ref:t})},`AlertDialogAction`)),fe=`AlertDialogCancel`,pe=R.forwardRef(B(function(e,t){let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=se(fe,n),a=V(n),o=D(t,i);return(0,z.jsx)(f,{...a,...r,ref:o})},`AlertDialogCancel`)),me=re,he=ie,ge=ae,_e=ce,ve=de,ye=pe,be=le,xe=ue,Se=Object.defineProperty,H=(e,t)=>Se(e,`name`,{value:t,configurable:!0}),U=`Checkbox`,[Ce,we]=F(U),[Te,W]=Ce(U);function G(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=A({prop:n,defaultProp:i??!1,onChange:c,caller:U}),[m,h]=R.useState(null),[g,_]=R.useState(null),v=R.useRef(!1),[y,b]=R.useReducer(e=>e+1,0),x=!m||!!o||!!m.closest(`form`),S={checked:f,disabled:a,setChecked:p,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:v,userInteractionCount:y,onUserInteraction:b,required:l,defaultChecked:!q(i)&&i,isFormControl:x,bubbleInput:g,setBubbleInput:_};return(0,z.jsx)(Te,{scope:t,...S,children:K(d)?d(S):r})}H(G,`CheckboxProvider`);var Ee=`CheckboxTrigger`,De=R.forwardRef(H(function({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i){let{control:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,onUserInteraction:p,isFormControl:m,bubbleInput:h}=W(Ee,e),g=D(i,u),_=R.useRef(c);return R.useEffect(()=>{let e=a?.form;if(e){let t=H(()=>d(_.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,d]),(0,z.jsx)(k.button,{type:`button`,role:`checkbox`,"aria-checked":q(c)?`mixed`:c,"aria-required":l,"data-state":J(c),"data-disabled":s?``:void 0,disabled:s,value:o,...r,ref:g,onKeyDown:P(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:P(n,e=>{p(),d(e=>q(e)?!0:!e),h&&m&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})},`CheckboxTrigger`)),Oe=R.forwardRef(H(function(e,t){let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,z.jsx)(G,{__scopeCheckbox: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,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(De,{...d,ref:t,__scopeCheckbox:n}),e&&(0,z.jsx)(Me,{__scopeCheckbox:n})]})})},`Checkbox`)),ke=`CheckboxIndicator`,Ae=R.forwardRef(H(function(e,t){let{__scopeCheckbox:n,forceMount:r,...i}=e,a=W(ke,n);return(0,z.jsx)(j,{present:r||q(a.checked)||a.checked===!0,children:(0,z.jsx)(k.span,{"data-state":J(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})},`CheckboxIndicator`)),je=`CheckboxBubbleInput`,Me=R.forwardRef(H(function({__scopeCheckbox:e,onClick:t,...n},r){let{control:i,hasConsumerStoppedPropagationRef:a,userInteractionCount:o,checked:s,defaultChecked:c,required:l,disabled:u,name:d,value:f,form:p,bubbleInput:m,setBubbleInput:h}=W(je,e),g=D(r,h),v=_(i),y=R.useRef(!1),b=R.useRef(s),x=R.useRef(o);R.useEffect(()=>{let e=m;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=o!==x.current;x.current=o;let i=b.current!==s;b.current=s;let c=!(r&&a.current);if(i&&n){y.current=!r;let t=new Event(`click`,{bubbles:c});e.indeterminate=q(s),n.call(e,!q(s)&&s),e.dispatchEvent(t),y.current=!1}},[m,s,a,o]);let S=R.useRef(!q(s)&&s);return(0,z.jsx)(k.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??S.current,required:l,disabled:u,name:d,value:f,form:p,...n,tabIndex:-1,ref:g,onClick:P(t,e=>{y.current&&e.stopPropagation()}),style:{...n.style,...v,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})},`CheckboxBubbleInput`));function K(e){return typeof e==`function`}H(K,`isFunction`);function q(e){return e===`indeterminate`}H(q,`isIndeterminate`);function J(e){return q(e)?`indeterminate`:e?`checked`:`unchecked`}H(J,`getState`);var Ne=T(`relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current`,{variants:{variant:{default:`bg-card text-card-foreground`,destructive:`border-destructive/30 bg-destructive-muted text-destructive *:data-[slot=alert-description]:text-destructive [&>svg]:text-current`,warning:`border-warning/30 bg-warning-muted text-warning *:data-[slot=alert-description]:text-warning [&>svg]:text-current`,info:`border-border bg-muted text-foreground *:data-[slot=alert-description]:text-muted-foreground dark:border-info/30 dark:bg-info-muted dark:text-info dark:*:data-[slot=alert-description]:text-info [&>svg]:text-info`,success:`border-success/30 bg-success-muted text-success *:data-[slot=alert-description]:text-success [&>svg]:text-current`}},defaultVariants:{variant:`default`}});function Y({className:e,variant:t,...n}){return(0,z.jsx)(`div`,{"data-slot":`alert`,role:`alert`,className:o(Ne({variant:t}),e),...n})}function Pe({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-title`,className:o(`col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight`,e),...t})}function X({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-description`,className:o(`col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed`,e),...t})}var Z=({error:e})=>e?(0,z.jsxs)(Y,{variant:`destructive`,children:[(0,z.jsx)(L,{"aria-hidden":`true`}),(0,z.jsx)(X,{children:N(e)})]}):null,Fe=e=>{let{title:t,description:n,confirmLabel:r,cancelLabel:o,pendingLabel:s,tone:c,onConfirm:l,align:u=`end`,side:d=`bottom`,onCloseAutoFocus:f}=e,{t:m}=i(),h=(0,R.useId)(),g=(0,R.useId)(),_=(0,R.useRef)(null),y=(0,R.useRef)(null),[S,w]=(0,R.useState)(!1),[T,E]=(0,R.useState)(!1),[D,O]=(0,R.useState)(null),k=e.trigger===void 0?e.open:S,A=t=>{t&&O(null),e.trigger===void 0?e.onOpenChange(t):w(t)},j=e=>T&&!e?void 0:A(e),N=()=>{let e=l();if(!(e instanceof Promise)){A(!1);return}E(!0),O(null),e.then(()=>{E(!1),A(!1)},e=>{E(!1),O(e)})},P=p(e=>{e.preventDefault(),(c===`danger`?_:y).current?.focus()},f);return(0,z.jsxs)(x,{open:k,onOpenChange:j,modal:!0,children:[e.trigger===void 0?(0,z.jsx)(C,{asChild:!0,children:e.children}):(0,z.jsx)(v,{asChild:!0,children:e.trigger}),(0,z.jsxs)(b,{role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":h,"aria-describedby":n?g:void 0,align:u,side:d,className:`w-80 space-y-4`,...P,children:[(0,z.jsxs)(`div`,{className:`space-y-1`,children:[(0,z.jsx)(`p`,{id:h,className:`text-sm font-semibold`,children:t}),n?(0,z.jsx)(`p`,{id:g,className:`text-meta text-muted-foreground`,children:n}):null]}),(0,z.jsx)(Z,{error:D}),(0,z.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,z.jsx)(M,{ref:_,type:`button`,size:`sm`,variant:`outline`,disabled:T,onClick:()=>A(!1),children:o??m(`common.cancel`)}),(0,z.jsx)(M,{ref:y,type:`button`,size:`sm`,variant:c===`danger`?`destructive`:`default`,disabled:T,"aria-busy":T||void 0,onClick:N,children:T?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(a,{className:`animate-spin`,"aria-hidden":`true`}),s??r]}):r})]})]})]})};function Q({className:e,...t}){return(0,z.jsx)(Oe,{"data-slot":`checkbox`,className:o(`peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary dark:data-[state=indeterminate]:bg-primary`,e),...t,children:(0,z.jsx)(Ae,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none`,children:t.checked===`indeterminate`?(0,z.jsx)(w,{className:`size-3.5`}):(0,z.jsx)(E,{className:`size-3.5`})})})}function Ie({...e}){return(0,z.jsx)(me,{"data-slot":`alert-dialog`,...e})}function Le({...e}){return(0,z.jsx)(he,{"data-slot":`alert-dialog-portal`,...e})}function $({className:e,...t}){return(0,z.jsx)(ge,{"data-slot":`alert-dialog-overlay`,className:o(`fixed inset-0 z-50 bg-overlay/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0`,e),...t})}function Re({className:e,size:t=`default`,onOpenAutoFocus:n,onCloseAutoFocus:r,...i}){let a=p(n,r);return(0,z.jsxs)(Le,{children:[(0,z.jsx)($,{}),(0,z.jsx)(_e,{"data-slot":`alert-dialog-content`,"data-size":t,className:o(`group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-xl border bg-card p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg`,e),...i,...a})]})}function ze({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-dialog-header`,className:o(`grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]`,e),...t})}function Be({className:e,...t}){return(0,z.jsx)(`div`,{"data-slot":`alert-dialog-footer`,className:o(`flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end`,e),...t})}function Ve({className:e,...t}){return(0,z.jsx)(be,{"data-slot":`alert-dialog-title`,className:o(`text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2`,e),...t})}function He({className:e,...t}){return(0,z.jsx)(xe,{"data-slot":`alert-dialog-description`,className:o(`text-sm text-muted-foreground`,e),...t})}function Ue({className:e,variant:t=`default`,size:n=`default`,...r}){return(0,z.jsx)(M,{variant:t,size:n,asChild:!0,children:(0,z.jsx)(ve,{"data-slot":`alert-dialog-action`,className:o(e),...r})})}function We({className:e,variant:t=`outline`,size:n=`default`,...r}){return(0,z.jsx)(M,{variant:t,size:n,asChild:!0,children:(0,z.jsx)(ye,{"data-slot":`alert-dialog-cancel`,className:o(e),...r})})}var Ge=({open:e,onOpenChange:t,title:n,description:r,confirmLabel:o,cancelLabel:s,destructive:c=!1,onConfirm:l,acknowledgement:u,pending:d,pendingLabel:f,error:p})=>{let{t:m}=i(),h=(0,R.useId)(),[g,_]=(0,R.useState)(!1),[v,b]=(0,R.useState)(e);e!==v&&(b(e),e&&_(!1));let x=d!==void 0,C=d===!0,w=u!==void 0&&!g,T=O({variant:c?`destructive`:`default`});return(0,z.jsx)(Ie,{open:e,onOpenChange:e=>C&&!e?void 0:t(e),children:(0,z.jsxs)(Re,{children:[(0,z.jsxs)(ze,{children:[(0,z.jsx)(Ve,{children:n}),(0,z.jsx)(He,{children:r})]}),u?(0,z.jsxs)(S,{orientation:`horizontal`,children:[(0,z.jsx)(Q,{id:h,checked:g,disabled:C,onCheckedChange:e=>_(e===!0)}),(0,z.jsx)(y,{htmlFor:h,className:`font-normal`,children:u})]}):null,x?(0,z.jsx)(Z,{error:p}):null,(0,z.jsxs)(Be,{children:[(0,z.jsx)(We,{disabled:C,children:s??m(`common.cancel`)}),x?(0,z.jsx)(M,{type:`button`,variant:c?`destructive`:`default`,disabled:C||w,"aria-busy":C||void 0,onClick:l,children:C?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(a,{className:`animate-spin`,"aria-hidden":`true`}),f??o]}):o}):(0,z.jsx)(Ue,{className:T,disabled:w,onClick:l,children:o})]})]})})};export{Y as a,L as c,Z as i,Q as n,X as o,Fe as r,Pe as s,Ge as t};
|
|
2
|
+
//# sourceMappingURL=ConfirmDialog-BW-l3Whg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmDialog-BfpN2MQx.js","names":["__defProp","__name","AlertDialog","DialogPrimitive.Root","DialogPrimitive.Trigger","AlertDialogPortal","DialogPrimitive.Portal","AlertDialogOverlay","DialogPrimitive.Overlay","AlertDialogContent","DialogPrimitive.Content","AlertDialogTitle","DialogPrimitive.Title","AlertDialogDescription","DialogPrimitive.Description","AlertDialogAction","DialogPrimitive.Close","AlertDialogCancel","Checkbox","Fragment","AlertCircle","useId","useRef","useState","_Fragment","Loader2","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","MinusIcon","CheckIcon","AlertDialogPrimitive.Root","AlertDialogPrimitive.Portal","AlertDialogPrimitive.Overlay","AlertDialogPrimitive.Content","AlertDialogPrimitive.Title","AlertDialogPrimitive.Description","AlertDialogPrimitive.Action","AlertDialogPrimitive.Cancel","useId","useState","_Fragment","Loader2","__toESM","require_jsx_runtime","createLucideIcon","useTranslation","LoaderCircle","cn","DialogOverlay","createDialogScope","DialogTrigger","DialogDescription","DialogTitle","DialogClose","useReturnFocus","DialogPortal","DialogContent","Dialog","useSize","PopoverTrigger","FieldLabel","PopoverContent","Popover","Field","PopoverAnchor","Minus","cva","Check","useComposedRefs","buttonVariants","Primitive","useControllableState","Presence","Button","describeError","composeEventHandlers","createContextScope","__iconData","CircleAlert","import_react","require_react","import_jsx_runtime","__defProp$1","__name$1","target","createAlertDialogContext","createAlertDialogScope","useDialogScope","AlertDialog$1","alertDialogProps","props","dialogScope","__scopeAlertDialog","triggerProps","forwardedRef","AlertDialogPortal$1","portalProps","AlertDialogOverlay$1","overlayProps","AlertDialogContentProvider","useAlertDialogContentContext","AlertDialogContent$1","contentProps","contentRef","composedRefs","cancelRef","event","AlertDialogTitle$1","titleProps","AlertDialogDescription$1","descriptionProps","AlertDialogAction$1","actionProps","CANCEL_NAME","AlertDialogCancel$1","cancelProps","ref","Root2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","__defProp","__name","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","checkedProp","checked","setChecked","defaultChecked","onCheckedChange","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","count","isFormControl","form","context","__scopeCheckbox","isFunction","internal_do_not_use_render","children","TRIGGER_NAME","CheckboxTrigger","checkboxProps","initialCheckedStateRef","reset","isIndeterminate","required","getState","disabled","onKeyDown","onClick","prevChecked","Checkbox$1","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","indicatorProps","forceMount","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","value","alertVariants","Alert","className","AlertTitle","AlertDescription","FormError","error","InlineConfirm","titleId","descriptionId","confirmRef","uncontrolledOpen","setUncontrolledOpen","pending","setPending","setError","open","changeOpen","next","requestOpenChange","confirm","result","onConfirm","reason","returnFocus","tone","onCloseAutoFocus","description","title","cancelLabel","t","pendingLabel","confirmLabel","Checkbox","AlertDialog","AlertDialogPortal","AlertDialogOverlay","AlertDialogContent","onOpenAutoFocus","size","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","AlertDialogCancel","ConfirmDialog","acknowledgementId","acknowledged","setAcknowledged","wasOpen","setWasOpen","isAsync","busy","blocked","acknowledgement","confirmClassName","destructive","onOpenChange"],"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/circle-alert.mjs","../../../../node_modules/.pnpm/@radix-ui+react-alert-dialog@1.1.23_@types+react-dom@19.3.0_@types+react@19.3.0__@types_490aa920fbab0adbc2c4344386ab6831/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-checkbox@1.3.11_@types+react-dom@19.3.0_@types+react@19.3.0__@types+rea_c6d869b9fcc94d95bd12a12175a8f53a/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../src/components/ui/alert.tsx","../../src/components/FormError/index.tsx","../../src/components/InlineConfirm/index.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ConfirmDialog/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"circle-alert\",\n size: 24,\n node: [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n ],\n aliases: [\"alert-circle\"]\n};\n__iconData.node;\nconst CircleAlert = createLucideIcon(__iconData);\n\nexport { __iconData, CircleAlert as default };\n//# sourceMappingURL=circle-alert.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = /* @__PURE__ */ __name((props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n}, \"AlertDialog\");\nvar AlertDialogTrigger = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogTrigger2(props, forwardedRef) {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }, \"AlertDialogTrigger\")\n);\nvar AlertDialogPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n}, \"AlertDialogPortal\");\nvar AlertDialogOverlay = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogOverlay2(props, forwardedRef) {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }, \"AlertDialogOverlay\")\n);\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogContent2(props, forwardedRef) {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsx(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children\n }\n ) });\n }, \"AlertDialogContent\")\n);\nvar AlertDialogTitle = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogTitle2(props, forwardedRef) {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }, \"AlertDialogTitle\")\n);\nvar AlertDialogDescription = React.forwardRef(/* @__PURE__ */ __name(function AlertDialogDescription2(props, forwardedRef) {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n}, \"AlertDialogDescription\"));\nvar AlertDialogAction = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogAction2(props, forwardedRef) {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }, \"AlertDialogAction\")\n);\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogCancel2(props, forwardedRef) {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }, \"AlertDialogCancel\")\n);\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\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: CHECKBOX_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 disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\n__name(CheckboxProvider, \"CheckboxProvider\");\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function CheckboxTrigger2({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"CheckboxTrigger\")\n);\nvar Checkbox = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Checkbox2(props, forwardedRef) {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\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 CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }, \"Checkbox\")\n);\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function CheckboxIndicator2(props, forwardedRef) {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }, \"CheckboxIndicator\")\n);\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function CheckboxBubbleInput2({ __scopeCheckbox, 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 } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\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 input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : 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 }, \"CheckboxBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\n__name(isIndeterminate, \"isIndeterminate\");\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nconst alertVariants = cva(\n 'relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'border-destructive/30 bg-destructive-muted text-destructive *:data-[slot=alert-description]:text-destructive [&>svg]:text-current',\n // Shapio: status alerts on the status tokens (DESIGN.md).\n warning:\n 'border-warning/30 bg-warning-muted text-warning *:data-[slot=alert-description]:text-warning [&>svg]:text-current',\n // Light: a neutral note with a cobalt icon (no blue surfaces outside the info chip); dark keeps the tint.\n info: 'border-border bg-muted text-foreground *:data-[slot=alert-description]:text-muted-foreground dark:border-info/30 dark:bg-info-muted dark:text-info dark:*:data-[slot=alert-description]:text-info [&>svg]:text-info',\n success:\n 'border-success/30 bg-success-muted text-success *:data-[slot=alert-description]:text-success [&>svg]:text-current',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return (\n <div data-slot=\"alert\" role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n 'col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n","import { AlertCircle } from 'lucide-react';\nimport { Alert, AlertDescription } from '@/components/ui/alert';\nimport { describeError } from '@/helpers/describeError';\n\ntype FormErrorProps = { error: unknown };\n\n/** The server's answer to a failed form submission, shown above the submit button and announced. */\nexport const FormError = ({ error }: FormErrorProps) => {\n if (!error) {\n return null;\n }\n return (\n <Alert variant=\"destructive\">\n <AlertCircle aria-hidden=\"true\" />\n <AlertDescription>{describeError(error)}</AlertDescription>\n </Alert>\n );\n};\n","import { Loader2 } from 'lucide-react';\nimport { useId, useRef, useState, type ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@/components/ui/button';\nimport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { useReturnFocus } from '@/hooks/useReturnFocus';\nimport { FormError } from '../FormError';\n\ntype InlineConfirmCommonProps = {\n /** The question, and the popover's accessible name (\"Delete “Hero”?\"). */\n title: string;\n /** The consequence, in one line. */\n description?: string;\n confirmLabel: string;\n cancelLabel?: string;\n /** Shown on Confirm while an async `onConfirm` runs. */\n pendingLabel?: string;\n /** `danger`: red Confirm, focus starts on Cancel. `default`: primary Confirm, focus starts on it. */\n tone: 'danger' | 'default';\n /**\n * Runs on Confirm. Return nothing to close at once; return a promise (`mutateAsync`) to keep the popover\n * open with a spinner until it settles: it closes when it resolves and shows the error when it rejects.\n */\n onConfirm: () => void | Promise<unknown>;\n align?: 'start' | 'center' | 'end';\n side?: 'top' | 'right' | 'bottom' | 'left';\n /**\n * Runs as the popover closes, before focus returns to the opener. Call `event.preventDefault()` to keep\n * focus where it is (e.g. on a `SecretReveal` that a confirmed rotate just showed).\n */\n onCloseAutoFocus?: (event: Event) => void;\n};\n\n/** Trigger mode: the popover opens from this button (it gets `aria-expanded` and returns focus to it). */\ntype TriggerModeProps = InlineConfirmCommonProps & {\n trigger: ReactElement;\n open?: never;\n onOpenChange?: never;\n children?: never;\n};\n\n/**\n * Anchored mode, for actions in a menu (a menu item disappears with its menu): the caller opens it (from\n * the item's `onSelect`) and the popover points at `children`, usually the menu's own trigger button.\n */\ntype AnchoredModeProps = InlineConfirmCommonProps & {\n trigger?: never;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n children: ReactElement;\n};\n\ntype InlineConfirmProps = TriggerModeProps | AnchoredModeProps;\n\n/**\n * Confirms a routine destructive or consequential action where it was asked for (DESIGN.md \"Dialogs\"): a\n * modal popover with role `alertdialog`, the question, one line of consequence and Cancel / Confirm. Escape\n * or a click outside cancels, Enter activates the focused button, focus returns to the opener.\n */\nexport const InlineConfirm = (props: InlineConfirmProps) => {\n const {\n title,\n description,\n confirmLabel,\n cancelLabel,\n pendingLabel,\n tone,\n onConfirm,\n align = 'end',\n side = 'bottom',\n onCloseAutoFocus,\n } = props;\n const { t } = useTranslation();\n const titleId = useId();\n const descriptionId = useId();\n const cancelRef = useRef<HTMLButtonElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<unknown>(null);\n const open = props.trigger === undefined ? props.open : uncontrolledOpen;\n\n const changeOpen = (next: boolean) => {\n if (next) {\n setError(null);\n }\n if (props.trigger === undefined) {\n props.onOpenChange(next);\n } else {\n setUncontrolledOpen(next);\n }\n };\n // Nothing dismisses it while the action runs.\n const requestOpenChange = (next: boolean) => (pending && !next ? undefined : changeOpen(next));\n\n const confirm = () => {\n const result = onConfirm();\n if (!(result instanceof Promise)) {\n changeOpen(false);\n return;\n }\n setPending(true);\n setError(null);\n result.then(\n () => {\n setPending(false);\n changeOpen(false);\n },\n (reason: unknown) => {\n // Already logged and toasted by the mutation cache; shown here too, beside the action that failed.\n setPending(false);\n setError(reason);\n },\n );\n };\n\n const returnFocus = useReturnFocus((event) => {\n event.preventDefault();\n (tone === 'danger' ? cancelRef : confirmRef).current?.focus();\n }, onCloseAutoFocus);\n\n return (\n <Popover open={open} onOpenChange={requestOpenChange} modal>\n {props.trigger === undefined ? (\n <PopoverAnchor asChild>{props.children}</PopoverAnchor>\n ) : (\n <PopoverTrigger asChild>{props.trigger}</PopoverTrigger>\n )}\n <PopoverContent\n role=\"alertdialog\"\n // Modal like Radix's own dialogs: focus is trapped and the rest of the page is aria-hidden. Declaring\n // it lets assistive technology (and axe's aria-hidden-focus rule) know the hidden page is inert.\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n align={align}\n side={side}\n className=\"w-80 space-y-4\"\n {...returnFocus}\n >\n <div className=\"space-y-1\">\n <p id={titleId} className=\"text-sm font-semibold\">\n {title}\n </p>\n {description ? (\n <p id={descriptionId} className=\"text-meta text-muted-foreground\">\n {description}\n </p>\n ) : null}\n </div>\n <FormError error={error} />\n <div className=\"flex justify-end gap-2\">\n <Button\n ref={cancelRef}\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n disabled={pending}\n onClick={() => changeOpen(false)}\n >\n {cancelLabel ?? t('common.cancel')}\n </Button>\n <Button\n ref={confirmRef}\n type=\"button\"\n size=\"sm\"\n variant={tone === 'danger' ? 'destructive' : 'default'}\n disabled={pending}\n aria-busy={pending || undefined}\n onClick={confirm}\n >\n {pending ? (\n <>\n <Loader2 className=\"animate-spin\" aria-hidden=\"true\" />\n {pendingLabel ?? confirmLabel}\n </>\n ) : (\n confirmLabel\n )}\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import { CheckIcon, MinusIcon } from 'lucide-react';\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary dark:data-[state=indeterminate]:bg-primary',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n {props.checked === 'indeterminate' ? (\n <MinusIcon className=\"size-3.5\" />\n ) : (\n <CheckIcon className=\"size-3.5\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","'use client';\n\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/helpers/cn';\nimport { useReturnFocus } from '@/hooks/useReturnFocus';\n\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-overlay/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n onOpenAutoFocus,\n onCloseAutoFocus,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n const returnFocus = useReturnFocus(onOpenAutoFocus, onCloseAutoFocus);\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n 'group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-xl border bg-card p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg',\n className,\n )}\n {...props}\n {...returnFocus}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action data-slot=\"alert-dialog-action\" className={cn(className)} {...props} />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel data-slot=\"alert-dialog-cancel\" className={cn(className)} {...props} />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","import { Loader2 } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\nimport { Button, buttonVariants } from '@/components/ui/button';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { Field, FieldLabel } from '@/components/ui/field';\nimport { FormError } from '../FormError';\n\ntype ConfirmDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description: string;\n confirmLabel: string;\n cancelLabel?: string;\n destructive?: boolean;\n onConfirm: () => void;\n /** When set, Confirm stays disabled until this statement is checked (unticked on every open). */\n acknowledgement?: string;\n /**\n * Async mode: pass the mutation's pending state. Confirm then doesn't close the dialog; the caller closes\n * it on success. While pending, Confirm shows `pendingLabel` and the dialog can't be dismissed.\n */\n pending?: boolean;\n pendingLabel?: string;\n /** The failed attempt's error, shown above the buttons (async mode). */\n error?: unknown;\n};\n\n/**\n * A blocking yes/no question, kept only for irreversible acknowledgements (DESIGN.md \"Dialogs\"). Focus starts\n * on Cancel (Radix default).\n */\nexport const ConfirmDialog = ({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel,\n cancelLabel,\n destructive = false,\n onConfirm,\n acknowledgement,\n pending,\n pendingLabel,\n error,\n}: ConfirmDialogProps) => {\n const { t } = useTranslation();\n const acknowledgementId = useId();\n const [acknowledged, setAcknowledged] = useState(false);\n const [wasOpen, setWasOpen] = useState(open);\n if (open !== wasOpen) {\n setWasOpen(open);\n if (open) {\n setAcknowledged(false);\n }\n }\n const isAsync = pending !== undefined;\n const busy = pending === true;\n const blocked = acknowledgement !== undefined && !acknowledged;\n const confirmClassName = buttonVariants({ variant: destructive ? 'destructive' : 'default' });\n return (\n <AlertDialog open={open} onOpenChange={(next) => (busy && !next ? undefined : onOpenChange(next))}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n {acknowledgement ? (\n <Field orientation=\"horizontal\">\n <Checkbox\n id={acknowledgementId}\n checked={acknowledged}\n disabled={busy}\n onCheckedChange={(checked) => setAcknowledged(checked === true)}\n />\n <FieldLabel htmlFor={acknowledgementId} className=\"font-normal\">\n {acknowledgement}\n </FieldLabel>\n </Field>\n ) : null}\n {isAsync ? <FormError error={error} /> : null}\n <AlertDialogFooter>\n <AlertDialogCancel disabled={busy}>{cancelLabel ?? t('common.cancel')}</AlertDialogCancel>\n {isAsync ? (\n <Button\n type=\"button\"\n variant={destructive ? 'destructive' : 'default'}\n disabled={busy || blocked}\n aria-busy={busy || undefined}\n onClick={onConfirm}\n >\n {busy ? (\n <>\n <Loader2 className=\"animate-spin\" aria-hidden=\"true\" />\n {pendingLabel ?? confirmLabel}\n </>\n ) : (\n confirmLabel\n )}\n </Button>\n ) : (\n <AlertDialogAction className={confirmClassName} disabled={blocked} onClick={onConfirm}>\n {confirmLabel}\n </AlertDialogAction>\n )}\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"ignoreList":[0,1,2],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfirmDialog-BW-l3Whg.js","names":["__defProp","__name","AlertDialog","DialogPrimitive.Root","DialogPrimitive.Trigger","AlertDialogPortal","DialogPrimitive.Portal","AlertDialogOverlay","DialogPrimitive.Overlay","AlertDialogContent","DialogPrimitive.Content","AlertDialogTitle","DialogPrimitive.Title","AlertDialogDescription","DialogPrimitive.Description","AlertDialogAction","DialogPrimitive.Close","AlertDialogCancel","Checkbox","Fragment","AlertCircle","useId","useRef","useState","_Fragment","Loader2","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","MinusIcon","CheckIcon","AlertDialogPrimitive.Root","AlertDialogPrimitive.Portal","AlertDialogPrimitive.Overlay","AlertDialogPrimitive.Content","AlertDialogPrimitive.Title","AlertDialogPrimitive.Description","AlertDialogPrimitive.Action","AlertDialogPrimitive.Cancel","useId","useState","_Fragment","Loader2","__toESM","require_jsx_runtime","createLucideIcon","useTranslation","LoaderCircle","cn","DialogOverlay","createDialogScope","DialogTrigger","DialogDescription","DialogTitle","DialogClose","useReturnFocus","DialogPortal","DialogContent","Dialog","useSize","PopoverTrigger","FieldLabel","PopoverContent","Popover","Field","PopoverAnchor","Minus","cva","Check","useComposedRefs","buttonVariants","Primitive","useControllableState","Presence","Button","describeError","composeEventHandlers","createContextScope","__iconData","CircleAlert","import_react","require_react","import_jsx_runtime","__defProp$1","__name$1","target","createAlertDialogContext","createAlertDialogScope","useDialogScope","AlertDialog$1","alertDialogProps","props","dialogScope","__scopeAlertDialog","triggerProps","forwardedRef","AlertDialogPortal$1","portalProps","AlertDialogOverlay$1","overlayProps","AlertDialogContentProvider","useAlertDialogContentContext","AlertDialogContent$1","contentProps","contentRef","composedRefs","cancelRef","event","AlertDialogTitle$1","titleProps","AlertDialogDescription$1","descriptionProps","AlertDialogAction$1","actionProps","CANCEL_NAME","AlertDialogCancel$1","cancelProps","ref","Root2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","__defProp","__name","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","checkedProp","checked","setChecked","defaultChecked","onCheckedChange","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","userInteractionCount","onUserInteraction","count","isFormControl","form","context","__scopeCheckbox","isFunction","internal_do_not_use_render","children","TRIGGER_NAME","CheckboxTrigger","checkboxProps","initialCheckedStateRef","reset","isIndeterminate","required","getState","disabled","onKeyDown","onClick","prevChecked","Checkbox$1","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","indicatorProps","forceMount","BUBBLE_INPUT_NAME","controlSize","shouldStopClickPropagationRef","prevCheckedRef","prevUserInteractionCountRef","input","inputProto","isUserInteraction","checkedChanged","bubbles","defaultCheckedRef","value","alertVariants","Alert","className","AlertTitle","AlertDescription","FormError","error","InlineConfirm","titleId","descriptionId","confirmRef","uncontrolledOpen","setUncontrolledOpen","pending","setPending","setError","open","changeOpen","next","requestOpenChange","confirm","result","onConfirm","reason","returnFocus","tone","onCloseAutoFocus","description","title","cancelLabel","t","pendingLabel","confirmLabel","Checkbox","AlertDialog","AlertDialogPortal","AlertDialogOverlay","AlertDialogContent","onOpenAutoFocus","size","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","AlertDialogCancel","ConfirmDialog","acknowledgementId","acknowledged","setAcknowledged","wasOpen","setWasOpen","isAsync","busy","blocked","acknowledgement","confirmClassName","destructive","onOpenChange"],"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/circle-alert.mjs","../../../../node_modules/.pnpm/@radix-ui+react-alert-dialog@1.1.23_@types+react-dom@19.3.0_@types+react@19.3.0__@types_490aa920fbab0adbc2c4344386ab6831/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../../../node_modules/.pnpm/@radix-ui+react-checkbox@1.3.11_@types+react-dom@19.3.0_@types+react@19.3.0__@types+rea_c6d869b9fcc94d95bd12a12175a8f53a/node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../src/components/ui/alert.tsx","../../src/components/FormError/index.tsx","../../src/components/InlineConfirm/index.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ConfirmDialog/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"circle-alert\",\n size: 24,\n node: [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n ],\n aliases: [\"alert-circle\"]\n};\n__iconData.node;\nconst CircleAlert = createLucideIcon(__iconData);\n\nexport { __iconData, CircleAlert as default };\n//# sourceMappingURL=circle-alert.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = /* @__PURE__ */ __name((props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n}, \"AlertDialog\");\nvar AlertDialogTrigger = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogTrigger2(props, forwardedRef) {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }, \"AlertDialogTrigger\")\n);\nvar AlertDialogPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n}, \"AlertDialogPortal\");\nvar AlertDialogOverlay = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogOverlay2(props, forwardedRef) {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }, \"AlertDialogOverlay\")\n);\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogContent2(props, forwardedRef) {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsx(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children\n }\n ) });\n }, \"AlertDialogContent\")\n);\nvar AlertDialogTitle = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogTitle2(props, forwardedRef) {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }, \"AlertDialogTitle\")\n);\nvar AlertDialogDescription = React.forwardRef(/* @__PURE__ */ __name(function AlertDialogDescription2(props, forwardedRef) {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n}, \"AlertDialogDescription\"));\nvar AlertDialogAction = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogAction2(props, forwardedRef) {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }, \"AlertDialogAction\")\n);\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n /* @__PURE__ */ __name(function AlertDialogCancel2(props, forwardedRef) {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }, \"AlertDialogCancel\")\n);\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\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: CHECKBOX_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 disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\n__name(CheckboxProvider, \"CheckboxProvider\");\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function CheckboxTrigger2({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = /* @__PURE__ */ __name(() => setChecked(initialCheckedStateRef.current), \"reset\");\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n onUserInteraction();\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"CheckboxTrigger\")\n);\nvar Checkbox = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function Checkbox2(props, forwardedRef) {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\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 CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }, \"Checkbox\")\n);\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function CheckboxIndicator2(props, forwardedRef) {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }, \"CheckboxIndicator\")\n);\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function CheckboxBubbleInput2({ __scopeCheckbox, 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 } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\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 input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : 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 }, \"CheckboxBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\n__name(isIndeterminate, \"isIndeterminate\");\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nconst alertVariants = cva(\n 'relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current',\n {\n variants: {\n variant: {\n default: 'bg-card text-card-foreground',\n destructive:\n 'border-destructive/30 bg-destructive-muted text-destructive *:data-[slot=alert-description]:text-destructive [&>svg]:text-current',\n // Shapio: status alerts on the status tokens (DESIGN.md).\n warning:\n 'border-warning/30 bg-warning-muted text-warning *:data-[slot=alert-description]:text-warning [&>svg]:text-current',\n // Light: a neutral note with a cobalt icon (no blue surfaces outside the info chip); dark keeps the tint.\n info: 'border-border bg-muted text-foreground *:data-[slot=alert-description]:text-muted-foreground dark:border-info/30 dark:bg-info-muted dark:text-info dark:*:data-[slot=alert-description]:text-info [&>svg]:text-info',\n success:\n 'border-success/30 bg-success-muted text-success *:data-[slot=alert-description]:text-success [&>svg]:text-current',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\n return (\n <div data-slot=\"alert\" role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n 'col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n","import { AlertCircle } from 'lucide-react';\nimport { Alert, AlertDescription } from '@/components/ui/alert';\nimport { describeError } from '@/helpers/describeError';\n\ntype FormErrorProps = { error: unknown };\n\n/** The server's answer to a failed form submission, shown above the submit button and announced. */\nexport const FormError = ({ error }: FormErrorProps) => {\n if (!error) {\n return null;\n }\n return (\n <Alert variant=\"destructive\">\n <AlertCircle aria-hidden=\"true\" />\n <AlertDescription>{describeError(error)}</AlertDescription>\n </Alert>\n );\n};\n","import { Loader2 } from 'lucide-react';\nimport { useId, useRef, useState, type ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@/components/ui/button';\nimport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { useReturnFocus } from '@/hooks/useReturnFocus';\nimport { FormError } from '../FormError';\n\ntype InlineConfirmCommonProps = {\n /** The question, and the popover's accessible name (\"Delete “Hero”?\"). */\n title: string;\n /** The consequence, in one line. */\n description?: string;\n confirmLabel: string;\n cancelLabel?: string;\n /** Shown on Confirm while an async `onConfirm` runs. */\n pendingLabel?: string;\n /** `danger`: red Confirm, focus starts on Cancel. `default`: primary Confirm, focus starts on it. */\n tone: 'danger' | 'default';\n /**\n * Runs on Confirm. Return nothing to close at once; return a promise (`mutateAsync`) to keep the popover\n * open with a spinner until it settles: it closes when it resolves and shows the error when it rejects.\n */\n onConfirm: () => void | Promise<unknown>;\n align?: 'start' | 'center' | 'end';\n side?: 'top' | 'right' | 'bottom' | 'left';\n /**\n * Runs as the popover closes, before focus returns to the opener. Call `event.preventDefault()` to keep\n * focus where it is (e.g. on a `SecretReveal` that a confirmed rotate just showed).\n */\n onCloseAutoFocus?: (event: Event) => void;\n};\n\n/** Trigger mode: the popover opens from this button (it gets `aria-expanded` and returns focus to it). */\ntype TriggerModeProps = InlineConfirmCommonProps & {\n trigger: ReactElement;\n open?: never;\n onOpenChange?: never;\n children?: never;\n};\n\n/**\n * Anchored mode, for actions in a menu (a menu item disappears with its menu): the caller opens it (from\n * the item's `onSelect`) and the popover points at `children`, usually the menu's own trigger button.\n */\ntype AnchoredModeProps = InlineConfirmCommonProps & {\n trigger?: never;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n children: ReactElement;\n};\n\ntype InlineConfirmProps = TriggerModeProps | AnchoredModeProps;\n\n/**\n * Confirms a routine destructive or consequential action where it was asked for (DESIGN.md \"Dialogs\"): a\n * modal popover with role `alertdialog`, the question, one line of consequence and Cancel / Confirm. Escape\n * or a click outside cancels, Enter activates the focused button, focus returns to the opener.\n */\nexport const InlineConfirm = (props: InlineConfirmProps) => {\n const {\n title,\n description,\n confirmLabel,\n cancelLabel,\n pendingLabel,\n tone,\n onConfirm,\n align = 'end',\n side = 'bottom',\n onCloseAutoFocus,\n } = props;\n const { t } = useTranslation();\n const titleId = useId();\n const descriptionId = useId();\n const cancelRef = useRef<HTMLButtonElement>(null);\n const confirmRef = useRef<HTMLButtonElement>(null);\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState<unknown>(null);\n const open = props.trigger === undefined ? props.open : uncontrolledOpen;\n\n const changeOpen = (next: boolean) => {\n if (next) {\n setError(null);\n }\n if (props.trigger === undefined) {\n props.onOpenChange(next);\n } else {\n setUncontrolledOpen(next);\n }\n };\n // Nothing dismisses it while the action runs.\n const requestOpenChange = (next: boolean) => (pending && !next ? undefined : changeOpen(next));\n\n const confirm = () => {\n const result = onConfirm();\n if (!(result instanceof Promise)) {\n changeOpen(false);\n return;\n }\n setPending(true);\n setError(null);\n result.then(\n () => {\n setPending(false);\n changeOpen(false);\n },\n (reason: unknown) => {\n // Already logged and toasted by the mutation cache; shown here too, beside the action that failed.\n setPending(false);\n setError(reason);\n },\n );\n };\n\n const returnFocus = useReturnFocus((event) => {\n event.preventDefault();\n (tone === 'danger' ? cancelRef : confirmRef).current?.focus();\n }, onCloseAutoFocus);\n\n return (\n <Popover open={open} onOpenChange={requestOpenChange} modal>\n {props.trigger === undefined ? (\n <PopoverAnchor asChild>{props.children}</PopoverAnchor>\n ) : (\n <PopoverTrigger asChild>{props.trigger}</PopoverTrigger>\n )}\n <PopoverContent\n role=\"alertdialog\"\n // Modal like Radix's own dialogs: focus is trapped and the rest of the page is aria-hidden. Declaring\n // it lets assistive technology (and axe's aria-hidden-focus rule) know the hidden page is inert.\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n align={align}\n side={side}\n className=\"w-80 space-y-4\"\n {...returnFocus}\n >\n <div className=\"space-y-1\">\n <p id={titleId} className=\"text-sm font-semibold\">\n {title}\n </p>\n {description ? (\n <p id={descriptionId} className=\"text-meta text-muted-foreground\">\n {description}\n </p>\n ) : null}\n </div>\n <FormError error={error} />\n <div className=\"flex justify-end gap-2\">\n <Button\n ref={cancelRef}\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n disabled={pending}\n onClick={() => changeOpen(false)}\n >\n {cancelLabel ?? t('common.cancel')}\n </Button>\n <Button\n ref={confirmRef}\n type=\"button\"\n size=\"sm\"\n variant={tone === 'danger' ? 'destructive' : 'default'}\n disabled={pending}\n aria-busy={pending || undefined}\n onClick={confirm}\n >\n {pending ? (\n <>\n <Loader2 className=\"animate-spin\" aria-hidden=\"true\" />\n {pendingLabel ?? confirmLabel}\n </>\n ) : (\n confirmLabel\n )}\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import { CheckIcon, MinusIcon } from 'lucide-react';\nimport { Checkbox as CheckboxPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { cn } from '@/helpers/cn';\n\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary dark:data-[state=indeterminate]:bg-primary',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n {props.checked === 'indeterminate' ? (\n <MinusIcon className=\"size-3.5\" />\n ) : (\n <CheckIcon className=\"size-3.5\" />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","'use client';\n\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\nimport * as React from 'react';\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/helpers/cn';\nimport { useReturnFocus } from '@/hooks/useReturnFocus';\n\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-overlay/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n onOpenAutoFocus,\n onCloseAutoFocus,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n const returnFocus = useReturnFocus(onOpenAutoFocus, onCloseAutoFocus);\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n 'group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-xl border bg-card p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg',\n className,\n )}\n {...props}\n {...returnFocus}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action data-slot=\"alert-dialog-action\" className={cn(className)} {...props} />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel data-slot=\"alert-dialog-cancel\" className={cn(className)} {...props} />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","import { Loader2 } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\nimport { Button, buttonVariants } from '@/components/ui/button';\nimport { Checkbox } from '@/components/ui/checkbox';\nimport { Field, FieldLabel } from '@/components/ui/field';\nimport { FormError } from '../FormError';\n\ntype ConfirmDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description: string;\n confirmLabel: string;\n cancelLabel?: string;\n destructive?: boolean;\n onConfirm: () => void;\n /** When set, Confirm stays disabled until this statement is checked (unticked on every open). */\n acknowledgement?: string;\n /**\n * Async mode: pass the mutation's pending state. Confirm then doesn't close the dialog; the caller closes\n * it on success. While pending, Confirm shows `pendingLabel` and the dialog can't be dismissed.\n */\n pending?: boolean;\n pendingLabel?: string;\n /** The failed attempt's error, shown above the buttons (async mode). */\n error?: unknown;\n};\n\n/**\n * A blocking yes/no question, kept only for irreversible acknowledgements (DESIGN.md \"Dialogs\"). Focus starts\n * on Cancel (Radix default).\n */\nexport const ConfirmDialog = ({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel,\n cancelLabel,\n destructive = false,\n onConfirm,\n acknowledgement,\n pending,\n pendingLabel,\n error,\n}: ConfirmDialogProps) => {\n const { t } = useTranslation();\n const acknowledgementId = useId();\n const [acknowledged, setAcknowledged] = useState(false);\n const [wasOpen, setWasOpen] = useState(open);\n if (open !== wasOpen) {\n setWasOpen(open);\n if (open) {\n setAcknowledged(false);\n }\n }\n const isAsync = pending !== undefined;\n const busy = pending === true;\n const blocked = acknowledgement !== undefined && !acknowledged;\n const confirmClassName = buttonVariants({ variant: destructive ? 'destructive' : 'default' });\n return (\n <AlertDialog open={open} onOpenChange={(next) => (busy && !next ? undefined : onOpenChange(next))}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n {acknowledgement ? (\n <Field orientation=\"horizontal\">\n <Checkbox\n id={acknowledgementId}\n checked={acknowledged}\n disabled={busy}\n onCheckedChange={(checked) => setAcknowledged(checked === true)}\n />\n <FieldLabel htmlFor={acknowledgementId} className=\"font-normal\">\n {acknowledgement}\n </FieldLabel>\n </Field>\n ) : null}\n {isAsync ? <FormError error={error} /> : null}\n <AlertDialogFooter>\n <AlertDialogCancel disabled={busy}>{cancelLabel ?? t('common.cancel')}</AlertDialogCancel>\n {isAsync ? (\n <Button\n type=\"button\"\n variant={destructive ? 'destructive' : 'default'}\n disabled={busy || blocked}\n aria-busy={busy || undefined}\n onClick={onConfirm}\n >\n {busy ? (\n <>\n <Loader2 className=\"animate-spin\" aria-hidden=\"true\" />\n {pendingLabel ?? confirmLabel}\n </>\n ) : (\n confirmLabel\n )}\n </Button>\n ) : (\n <AlertDialogAction className={confirmClassName} disabled={blocked} onClick={onConfirm}>\n {confirmLabel}\n </AlertDialogAction>\n )}\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n};\n"],"ignoreList":[0,1,2],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{j as r}from"./cn-
|
|
2
|
-
//# sourceMappingURL=CopyButton-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./react-CQOZoUwg.js";import{t as n}from"./jsx-runtime-DREnUpxT.js";import{j as r}from"./cn-h5ORT3LK.js";import{U as i}from"./InfoHint-D3uwei-E.js";import{O as a,i as o}from"./skeleton-DJVukcn6.js";import{t as s}from"./copy-DjzlFY9u.js";var c=e(t(),1),l=e(n(),1),u=2e3,d=({value:e,ref:t})=>{let{t:n}=r(),[d,f]=(0,c.useState)(!1),p=async()=>{try{await navigator.clipboard.writeText(e),f(!0),setTimeout(()=>f(!1),u)}catch(e){i(e,`copy to clipboard`)}};return(0,l.jsxs)(o,{ref:t,type:`button`,variant:`outline`,onClick:()=>void p(),children:[d?(0,l.jsx)(a,{"aria-hidden":`true`}):(0,l.jsx)(s,{"aria-hidden":`true`}),(0,l.jsx)(`span`,{"aria-live":`polite`,children:n(d?`common.copied`:`common.copy`)})]})};export{d as t};
|
|
2
|
+
//# sourceMappingURL=CopyButton-CyoUMStc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton-
|
|
1
|
+
{"version":3,"file":"CopyButton-CyoUMStc.js","names":["useState","__toESM","require_jsx_runtime","useTranslation","reportError","Check","Button","Copy","import_react","require_react","import_jsx_runtime","COPIED_RESET_MS","CopyButton","copied","setCopied","copy","value","error","t"],"sources":["../../src/components/CopyButton/index.tsx"],"sourcesContent":["import { Check, Copy } from 'lucide-react';\nimport { useState, type Ref } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@/components/ui/button';\nimport { reportError } from '@/helpers/reportError';\n\ntype CopyButtonProps = {\n value: string;\n /** For a caller that moves focus to the button (SecretReveal on mount). */\n ref?: Ref<HTMLButtonElement>;\n};\n\nconst COPIED_RESET_MS = 2000;\n\nexport const CopyButton = ({ value, ref }: CopyButtonProps) => {\n const { t } = useTranslation();\n const [copied, setCopied] = useState(false);\n const copy = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), COPIED_RESET_MS);\n } catch (error) {\n reportError(error, 'copy to clipboard');\n }\n };\n return (\n <Button ref={ref} type=\"button\" variant=\"outline\" onClick={() => void copy()}>\n {copied ? <Check aria-hidden=\"true\" /> : <Copy aria-hidden=\"true\" />}\n <span aria-live=\"polite\">{copied ? t('common.copied') : t('common.copy')}</span>\n </Button>\n );\n};\n"],"mappings":"uUAYMW,EAAkB,IAEXC,GAAc,CAAE,QAAO,SAA2B,CAC7D,GAAM,CAAE,KAAMT,EAAe,EACvB,CAACU,EAAQC,IAAA,EAAad,EAAAA,SAAAA,CAAS,EAAK,EACpCe,EAAO,SAAY,CACvB,GAAI,CACF,MAAM,UAAU,UAAU,UAAUC,CAAK,EACzCF,EAAU,EAAI,EACd,eAAiBA,EAAU,EAAK,EAAGH,CAAe,CACpD,OAASM,EAAO,CACdb,EAAYa,EAAO,mBAAmB,CACxC,CACF,EACA,OACE,EAAAP,EAAA,KAAA,CAACJ,EAAD,CAAa,MAAK,KAAK,SAAS,QAAQ,UAAU,YAAe,KAAKS,EAAK,EAA3E,SAAA,CACGF,GAAS,EAAAH,EAAA,IAAA,CAACL,EAAD,CAAO,cAAY,MAAQ,CAAA,GAAI,EAAAK,EAAA,IAAA,CAACH,EAAD,CAAM,cAAY,MAAQ,CAAA,GACnE,EAAAG,EAAA,IAAA,CAAC,OAAD,CAAM,YAAU,SAAU,SAASQ,EAATL,EAAW,gBAAqB,aAAa,CAAQ,CAAA,CACzE,GAEZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./jsx-runtime-DREnUpxT.js";import{i as n,j as r,t as i}from"./cn-
|
|
2
|
-
//# sourceMappingURL=CursorPager-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./jsx-runtime-DREnUpxT.js";import{i as n,j as r,t as i}from"./cn-h5ORT3LK.js";import{D as a,i as o}from"./skeleton-DJVukcn6.js";import{t as s}from"./chevron-left-BeJdUVAX.js";var c={name:`chevrons-left`,size:24,node:[[`path`,{d:`m11 17-5-5 5-5`,key:`13zhaf`}],[`path`,{d:`m18 17-5-5 5-5`,key:`h8a8et`}]]};c.node;var l=n(c),u=e(t(),1),d=({onFirst:e,onPrevious:t,onNext:n,className:c})=>{let{t:d}=r();return(0,u.jsxs)(`nav`,{"aria-label":d(`common.pagination`),className:i(`flex items-center justify-end gap-2`,c),children:[(0,u.jsx)(o,{variant:`outline`,size:`icon-sm`,"aria-label":d(`common.first`),disabled:!e,onClick:e,children:(0,u.jsx)(l,{"aria-hidden":`true`})}),(0,u.jsx)(o,{variant:`outline`,size:`icon-sm`,"aria-label":d(`common.previous`),disabled:!t,onClick:t,children:(0,u.jsx)(s,{"aria-hidden":`true`})}),(0,u.jsx)(o,{variant:`outline`,size:`icon-sm`,"aria-label":d(`common.next`),disabled:!n,onClick:n,children:(0,u.jsx)(a,{"aria-hidden":`true`})})]})};export{d as t};
|
|
2
|
+
//# sourceMappingURL=CursorPager-BW2Dl_hn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorPager-
|
|
1
|
+
{"version":3,"file":"CursorPager-BW2Dl_hn.js","names":["__toESM","createLucideIcon","useTranslation","cn","ChevronRight","Button","ChevronLeft","__iconData","ChevronsLeft","import_jsx_runtime","require_jsx_runtime","CursorPager","t","className","onFirst","onPrevious","onNext"],"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/chevrons-left.mjs","../../src/components/CursorPager/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"chevrons-left\",\n size: 24,\n node: [\n [\"path\", { d: \"m11 17-5-5 5-5\", key: \"13zhaf\" }],\n [\"path\", { d: \"m18 17-5-5 5-5\", key: \"h8a8et\" }]\n ]\n};\n__iconData.node;\nconst ChevronsLeft = createLucideIcon(__iconData);\n\nexport { __iconData, ChevronsLeft as default };\n//# sourceMappingURL=chevrons-left.mjs.map\n","import { ChevronLeft, ChevronRight, ChevronsLeft } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/helpers/cn';\n\ntype CursorPagerProps = {\n /** Undefined when already on the first page. */\n onFirst: (() => void) | undefined;\n onPrevious: (() => void) | undefined;\n /** Undefined when there is no further page. */\n onNext: (() => void) | undefined;\n className?: string;\n};\n\n/** Paging for cursor-paginated lists (newest first, no total): Newest, Previous, Next as icon buttons. */\nexport const CursorPager = ({ onFirst, onPrevious, onNext, className }: CursorPagerProps) => {\n const { t } = useTranslation();\n return (\n <nav aria-label={t('common.pagination')} className={cn('flex items-center justify-end gap-2', className)}>\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n aria-label={t('common.first')}\n disabled={!onFirst}\n onClick={onFirst}\n >\n <ChevronsLeft aria-hidden=\"true\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n aria-label={t('common.previous')}\n disabled={!onPrevious}\n onClick={onPrevious}\n >\n <ChevronLeft aria-hidden=\"true\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n aria-label={t('common.next')}\n disabled={!onNext}\n onClick={onNext}\n >\n <ChevronRight aria-hidden=\"true\" />\n </Button>\n </nav>\n );\n};\n"],"ignoreList":[0],"mappings":"gPASA,IAAMO,EAAa,CACjB,KAAM,gBACN,KAAM,GACN,KAAM,CACJ,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,EAC/C,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,CACjD,CACF,EACAA,EAAW,KACX,IAAMC,EAAeP,EAAiBM,CAAU,aCHnCI,GAAe,CAAE,UAAS,aAAY,SAAQ,eAAkC,CAC3F,GAAM,CAAE,KAAMT,EAAe,EAC7B,OACE,EAAAO,EAAA,KAAA,CAAC,MAAD,CAAK,aAAYG,EAAE,mBAAmB,EAAG,UAAWT,EAAG,sCAAuCU,CAAS,EAAvG,SAAA,EACE,EAAAJ,EAAA,IAAA,CAACJ,EAAD,CACE,QAAQ,UACR,KAAK,UACL,aAAYO,EAAE,cAAc,EAC5B,SAAU,CAACE,EACX,QAASA,EAET,UAAA,EAAAL,EAAA,IAAA,CAACD,EAAD,CAAc,cAAY,MAAQ,CAAA,CAC5B,CAAA,GACR,EAAAC,EAAA,IAAA,CAACJ,EAAD,CACE,QAAQ,UACR,KAAK,UACL,aAAYO,EAAE,iBAAiB,EAC/B,SAAU,CAACG,EACX,QAASA,EAET,UAAA,EAAAN,EAAA,IAAA,CAACH,EAAD,CAAa,cAAY,MAAQ,CAAA,CAC3B,CAAA,GACR,EAAAG,EAAA,IAAA,CAACJ,EAAD,CACE,QAAQ,UACR,KAAK,UACL,aAAYO,EAAE,aAAa,EAC3B,SAAU,CAACI,EACX,QAASA,EAET,UAAA,EAAAP,EAAA,IAAA,CAACL,EAAD,CAAc,cAAY,MAAQ,CAAA,CAC5B,CAAA,CACL,GAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./jsx-runtime-DREnUpxT.js";import{j as n}from"./cn-
|
|
2
|
-
//# sourceMappingURL=ExternalLink-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{t}from"./jsx-runtime-DREnUpxT.js";import{j as n}from"./cn-h5ORT3LK.js";import{t as r}from"./external-link-DzOkt97S.js";var i=e(t(),1),a=({href:e,children:t})=>{let{t:a}=n();return(0,i.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 rounded-sm font-medium break-all text-link underline-offset-4 outline-none hover:underline focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:[t,(0,i.jsx)(r,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,i.jsx)(`span`,{className:`sr-only`,children:a(`publishing.opensInNewTab`)})]})};export{a as t};
|
|
2
|
+
//# sourceMappingURL=ExternalLink-BCI0q9ib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalLink-
|
|
1
|
+
{"version":3,"file":"ExternalLink-BCI0q9ib.js","names":["ExternalLinkIcon","__toESM","useTranslation","ExternalLink$1","import_jsx_runtime","require_jsx_runtime","ExternalLink","children","t"],"sources":["../../src/features/Publishing/ExternalLink/index.tsx"],"sourcesContent":["import { ExternalLink as ExternalLinkIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\n\ntype ExternalLinkProps = { href: string; children: ReactNode };\n\n/** A link that leaves the admin in a new tab, without giving the other site access to this window. */\nexport const ExternalLink = ({ href, children }: ExternalLinkProps) => {\n const { t } = useTranslation();\n return (\n <a\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1 rounded-sm font-medium break-all text-link underline-offset-4 outline-none hover:underline focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n >\n {children}\n <ExternalLinkIcon className=\"size-3.5 shrink-0\" aria-hidden=\"true\" />\n <span className=\"sr-only\">{t('publishing.opensInNewTab')}</span>\n </a>\n );\n};\n"],"mappings":"gMAOaM,GAAgB,CAAE,OAAM,cAAkC,CACrE,GAAM,CAAE,KAAMJ,EAAe,EAC7B,OACE,EAAAE,EAAA,KAAA,CAAC,IAAD,CACQ,OACN,OAAO,SACP,IAAI,sBACJ,UAAU,gLAJZ,SAAA,CAMGG,GACD,EAAAH,EAAA,IAAA,CAACJ,EAAD,CAAkB,UAAU,oBAAoB,cAAY,MAAQ,CAAA,GACpE,EAAAI,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,UAAW,SAAAI,EAAE,0BAA0B,CAAQ,CAAA,CAC9D,GAEP"}
|
|
@@ -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{i as r,j as i}from"./cn-
|
|
2
|
-
//# sourceMappingURL=FocalPoint-
|
|
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{i as r,j as i}from"./cn-h5ORT3LK.js";import{d as a,f as o,o as s,p as c,t as l}from"./InfoHint-D3uwei-E.js";import{i as u,n as d}from"./skeleton-DJVukcn6.js";var f={name:`crosshair`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]};f.node;var p=r(f),m=e(t(),1),h=e(n(),1),g=100,_={x:.5,y:.5},v=e=>Math.min(1,Math.max(0,e)),y=({imageUrl:e,value:t,onChange:n})=>{let{t:r}=i(),f=(0,m.useId)(),y=t??_,b=e=>{let t=e.currentTarget.getBoundingClientRect();n({x:v((e.clientX-t.left)/t.width),y:v((e.clientY-t.top)/t.height)})},x=(e,t)=>{let r=Number(t);t!==``&&Number.isFinite(r)&&n({...y,[e]:v(r/g)})};return(0,h.jsxs)(c,{"aria-labelledby":`${f}-title`,children:[(0,h.jsxs)(o,{variant:`label`,className:`flex items-center gap-1`,children:[(0,h.jsx)(`span`,{id:`${f}-title`,children:r(`media.focal.title`)}),(0,h.jsx)(l,{about:r(`media.focal.title`),children:r(`media.focal.hint`)})]}),(0,h.jsxs)(`div`,{"aria-hidden":`true`,onClick:b,className:`relative w-fit max-w-full cursor-crosshair overflow-hidden rounded-lg border`,style:{"--focal-x":`${y.x*g}%`,"--focal-y":`${y.y*g}%`},children:[(0,h.jsx)(`img`,{src:e,alt:``,className:`block max-h-64 w-auto`,draggable:!1}),t?(0,h.jsx)(`span`,{className:`absolute top-[var(--focal-y)] left-[var(--focal-x)] flex size-6 -translate-1/2 items-center justify-center rounded-full border-2 border-background bg-primary text-primary-foreground shadow`,children:(0,h.jsx)(p,{className:`size-3.5`})}):null]}),(0,h.jsxs)(`div`,{className:`flex flex-wrap items-end gap-3`,children:[(0,h.jsxs)(s,{className:`w-28`,children:[(0,h.jsx)(a,{htmlFor:`${f}-x`,children:r(`media.focal.x`)}),(0,h.jsx)(d,{id:`${f}-x`,type:`number`,min:0,max:g,step:1,value:t?Math.round(t.x*g):``,placeholder:r(`media.focal.unset`),onChange:e=>x(`x`,e.target.value)})]}),(0,h.jsxs)(s,{className:`w-28`,children:[(0,h.jsx)(a,{htmlFor:`${f}-y`,children:r(`media.focal.y`)}),(0,h.jsx)(d,{id:`${f}-y`,type:`number`,min:0,max:g,step:1,value:t?Math.round(t.y*g):``,placeholder:r(`media.focal.unset`),onChange:e=>x(`y`,e.target.value)})]}),(0,h.jsx)(u,{type:`button`,variant:`ghost`,size:`sm`,disabled:!t,onClick:()=>n(null),children:r(`media.focal.clear`)})]})]})};export{p as n,y as t};
|
|
2
|
+
//# sourceMappingURL=FocalPoint-CxicvlJO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocalPoint-
|
|
1
|
+
{"version":3,"file":"FocalPoint-CxicvlJO.js","names":["useId","__toESM","require_jsx_runtime","createLucideIcon","useTranslation","FieldLabel","FieldLegend","Field","FieldSet","InfoHint","Button","Input","__iconData","Crosshair","import_react","require_react","import_jsx_runtime","PERCENT","CENTRE","clamp","value","FocalPoint","id","point","place","box","event","onChange","setAxis","number","text","axis","t","imageUrl"],"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/crosshair.mjs","../../src/components/FocalPoint/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.49.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconData = {\n name: \"crosshair\",\n size: 24,\n node: [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"22\", x2: \"18\", y1: \"12\", y2: \"12\", key: \"l9bcsi\" }],\n [\"line\", { x1: \"6\", x2: \"2\", y1: \"12\", y2: \"12\", key: \"13hhkx\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"6\", y2: \"2\", key: \"10w3f3\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"22\", y2: \"18\", key: \"15g9kq\" }]\n ]\n};\n__iconData.node;\nconst Crosshair = createLucideIcon(__iconData);\n\nexport { __iconData, Crosshair as default };\n//# sourceMappingURL=crosshair.mjs.map\n","import type { MediaFocalPoint } from '@shapio/client';\nimport { Crosshair } from 'lucide-react';\nimport { useId, type CSSProperties, type MouseEvent } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { InfoHint } from '@/components/InfoHint';\nimport { Button } from '@/components/ui/button';\nimport { Field, FieldLabel, FieldLegend, FieldSet } from '@/components/ui/field';\nimport { Input } from '@/components/ui/input';\n\ntype FocalPointProps = {\n imageUrl: string;\n value: MediaFocalPoint | null;\n onChange: (value: MediaFocalPoint | null) => void;\n};\n\nconst PERCENT = 100;\nconst CENTRE: MediaFocalPoint = { x: 0.5, y: 0.5 };\n\nconst clamp = (value: number) => Math.min(1, Math.max(0, value));\n\n/**\n * The point crops keep in view. Click the image to place it; the percentage inputs are the keyboard path\n * (the image itself is a pointer shortcut and hidden from assistive technology).\n */\nexport const FocalPoint = ({ imageUrl, value, onChange }: FocalPointProps) => {\n const { t } = useTranslation();\n // Unique per instance: the media details sheet and the entry's settings drawer can both show one.\n const id = useId();\n const point = value ?? CENTRE;\n const place = (event: MouseEvent<HTMLDivElement>) => {\n const box = event.currentTarget.getBoundingClientRect();\n onChange({\n x: clamp((event.clientX - box.left) / box.width),\n y: clamp((event.clientY - box.top) / box.height),\n });\n };\n const setAxis = (axis: 'x' | 'y', text: string) => {\n const number = Number(text);\n if (text !== '' && Number.isFinite(number)) {\n onChange({ ...point, [axis]: clamp(number / PERCENT) });\n }\n };\n return (\n <FieldSet aria-labelledby={`${id}-title`}>\n <FieldLegend variant=\"label\" className=\"flex items-center gap-1\">\n <span id={`${id}-title`}>{t('media.focal.title')}</span>\n <InfoHint about={t('media.focal.title')}>{t('media.focal.hint')}</InfoHint>\n </FieldLegend>\n <div\n aria-hidden=\"true\"\n onClick={place}\n className=\"relative w-fit max-w-full cursor-crosshair overflow-hidden rounded-lg border\"\n style={\n { '--focal-x': `${point.x * PERCENT}%`, '--focal-y': `${point.y * PERCENT}%` } as CSSProperties\n }\n >\n <img src={imageUrl} alt=\"\" className=\"block max-h-64 w-auto\" draggable={false} />\n {value ? (\n <span className=\"absolute top-[var(--focal-y)] left-[var(--focal-x)] flex size-6 -translate-1/2 items-center justify-center rounded-full border-2 border-background bg-primary text-primary-foreground shadow\">\n <Crosshair className=\"size-3.5\" />\n </span>\n ) : null}\n </div>\n <div className=\"flex flex-wrap items-end gap-3\">\n <Field className=\"w-28\">\n <FieldLabel htmlFor={`${id}-x`}>{t('media.focal.x')}</FieldLabel>\n <Input\n id={`${id}-x`}\n type=\"number\"\n min={0}\n max={PERCENT}\n step={1}\n value={value ? Math.round(value.x * PERCENT) : ''}\n placeholder={t('media.focal.unset')}\n onChange={(event) => setAxis('x', event.target.value)}\n />\n </Field>\n <Field className=\"w-28\">\n <FieldLabel htmlFor={`${id}-y`}>{t('media.focal.y')}</FieldLabel>\n <Input\n id={`${id}-y`}\n type=\"number\"\n min={0}\n max={PERCENT}\n step={1}\n value={value ? Math.round(value.y * PERCENT) : ''}\n placeholder={t('media.focal.unset')}\n onChange={(event) => setAxis('y', event.target.value)}\n />\n </Field>\n <Button type=\"button\" variant=\"ghost\" size=\"sm\" disabled={!value} onClick={() => onChange(null)}>\n {t('media.focal.clear')}\n </Button>\n </div>\n </FieldSet>\n );\n};\n"],"ignoreList":[0],"mappings":"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"}
|
|
@@ -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{P as r,bt as i,i as a,j as o,t as s}from"./cn-CL1YHRrS.js";import{T as c,b as l,u,x as d}from"./auth-YVfK3SxF.js";import{_ as ee,a as f,i as te,n as p}from"./badge-C5oMRtwJ.js";import{i as m,n as h,t as g}from"./RowTitle-BdDgA5Lb.js";import{t as ne}from"./UnsavedChangesGuard-B57D0278.js";import{K as _,b as v,h as y,v as b,y as x}from"./src-B2qcqjNM.js";import{G as S,f as C,p as w,t as re,u as ie}from"./InfoHint-DWn9kLf1.js";import{N as T,i as E}from"./skeleton-B5GJgv7y.js";import{a as D,i as O,l as ae,r as oe,u as se}from"./constants-DT4WPUvz.js";import{t as k}from"./useSchemaScopeAccess-WQKmj8_3.js";import{i as ce}from"./ConfirmDialog-BfpN2MQx.js";import{t as A}from"./radio-group-DSK5LPaM.js";import{c as j,f as M,n as N,o as le,t as P,u as F}from"./zod-CS0EvbwG.js";import{t as I}from"./settle-LRKtTN_e.js";import{a as L,d as R,g as z,i as B,l as V,n as H,o as U,r as W,s as ue,t as de,v as G}from"./table-DQ5ILlSh.js";import{t as fe}from"./SharedGlyph-y6ZsA_gz.js";import{a as pe,h as me,r as he,u as ge}from"./schema-B7L9OJrX.js";import{t as _e}from"./Panel-ClY9b33D.js";import{a as ve,i as ye,n as K,r as be,t as xe}from"./followPlural-tOh6gDgT.js";import{t as q}from"./RadioTile-Ci0LucKI.js";import{t as Se}from"./FormSwitchField-7EEYkGOH.js";import{t as Ce}from"./FormTextareaField-BasuRoXW.js";var J={name:`app-window`,size:24,node:[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]};J.node;var we=a(J),Y=e(n(),1),Te=({definition:e})=>(0,Y.jsx)(g,{asChild:!0,children:e.kind===`component`?(0,Y.jsx)(d,{to:`/models/components/$componentId`,params:{componentId:e.id},children:e.label}):(0,Y.jsx)(d,{to:`/models/$modelId`,params:{modelId:e.id},children:e.label})}),X=e(t(),1),Ee=({changeId:e})=>{let{t}=o(),n=ge(e),a=i(),s=n.data?.status,c=s!==void 0&&me.has(s);return(0,X.useEffect)(()=>{c&&a.invalidateQueries({queryKey:r.schema.all})},[c,a]),c||n.isError?null:(0,Y.jsx)(p,{tone:`progress`,size:`sm`,label:t(`models.pendingChange`)})},De=e=>e.kind===`collection`?`${e.apiKey} · ${y(e)}`:e.apiKey,Oe=({items:e,showKind:t=!1,markShared:n=!0})=>{let{t:r}=o(),{multiSite:i}=k(),a=n&&i;return(0,Y.jsx)(ue,{children:(0,Y.jsxs)(de,{children:[(0,Y.jsx)(L,{children:(0,Y.jsxs)(U,{children:[(0,Y.jsx)(B,{children:r(`models.columns.label`)}),t?(0,Y.jsx)(B,{children:r(`models.columns.kind`)}):null,(0,Y.jsx)(B,{children:r(`models.columns.apiKey`)}),(0,Y.jsx)(B,{className:`text-right`,children:r(`models.columns.fields`)}),(0,Y.jsx)(B,{className:`text-right`,children:r(`models.columns.version`)}),(0,Y.jsx)(B,{children:r(`models.columns.activated`)})]})}),(0,Y.jsx)(H,{children:e.map(({definition:e,scope:n,version:i,activatedAt:o,pendingChange:s})=>(0,Y.jsxs)(U,{children:[(0,Y.jsx)(W,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Te,{definition:e}),a&&n===`network`?(0,Y.jsx)(fe,{}):null,s?(0,Y.jsx)(Ee,{changeId:s.id}):null]})}),t?(0,Y.jsx)(W,{className:`text-muted-foreground`,children:r(D[e.kind])}):null,(0,Y.jsx)(W,{className:`font-mono text-meta text-muted-foreground`,children:De(e)}),(0,Y.jsx)(W,{className:`text-right tabular-nums`,children:e.fields.length}),(0,Y.jsx)(W,{className:`text-right text-muted-foreground tabular-nums`,children:r(`models.versionNumber`,{version:i})}),(0,Y.jsx)(W,{className:`text-muted-foreground`,title:h(o),children:m(o)})]},e.id))})]})})},ke={API_KEY_INVALID:`validation.apiKeyInvalid`,API_KEY_TOO_LONG:`validation.apiKeyTooLong`,API_KEY_RESERVED_PREFIX:`validation.apiKeyReservedPrefix`},Z=e=>{let t=x(e);return t?ke[t.code]??`validation.apiKeyInvalid`:null},Ae=()=>G().trim().min(1,`validation.required`).superRefine((e,t)=>{let n=Z(e);n&&t.addIssue({code:`custom`,message:n})}),je=(e,t)=>Z(e)?null:t===``?`validation.required`:v(t)===v(e)?`validation.pluralApiKeySameAsSingular`:Z(t),Me=(e,t,n)=>{let r=(0,X.useRef)(e);(0,X.useEffect)(()=>{let i=t();(i===``||i===K(r.current))&&n(K(e)),r.current=e},[e,t,n])},Ne=(e,t,n)=>{let r=(0,X.useRef)(e);(0,X.useEffect)(()=>{let i=t(),a=xe(r.current,e,i);a!==i&&n(a),r.current=e},[e,t,n])},Pe=z({kind:V([`collection`,`singleton`,`component`]),label:le(),apiKey:Ae(),pluralApiKey:G().trim(),description:G().trim(),localized:R(),scope:V([`site`,`network`])}).superRefine((e,t)=>{let n=e.kind===`collection`?je(e.apiKey,e.pluralApiKey):null;n&&t.addIssue({code:`custom`,path:[`pluralApiKey`],message:n})}),Fe=(e,t)=>({kind:e,label:``,apiKey:``,pluralApiKey:``,description:``,localized:!1,scope:t}),Q=({kind:e,label:t,apiKey:n,pluralApiKey:r,description:i,localized:a})=>e===`component`?{kind:e,label:t,apiKey:n,description:i,fields:[]}:e===`collection`?{kind:e,label:t,apiKey:n,pluralApiKey:r,description:i,localized:a,fields:[]}:{kind:e,label:t,apiKey:n,description:i,localized:a,fields:[]},Ie=e=>new Set((e??[]).flatMap(({definition:e})=>[e.apiKey,..._(e)?[y(e)]:[]].map(v))),Le=[`apiKey`,`pluralApiKey`],Re=(e,t=`site`)=>{let n=pe(),{definitions:r}=he(),i=c(),a=F({resolver:P(Pe),defaultValues:Fe(e,t)}),{setValue:o,setError:s,getValues:u}=a;return Me(M({control:a.control,name:`label`}),(0,X.useCallback)(()=>u(`apiKey`),[u]),(0,X.useCallback)(e=>o(`apiKey`,e,{shouldValidate:!1}),[o])),Ne(M({control:a.control,name:`apiKey`}),(0,X.useCallback)(()=>u(`pluralApiKey`),[u]),(0,X.useCallback)(e=>o(`pluralApiKey`,e,{shouldValidate:!1}),[o])),{form:a,onSubmit:a.handleSubmit(async e=>{let t=Ie(r);if(t.has(v(e.apiKey))){s(`apiKey`,{message:`validation.apiKeyTaken`});return}if(e.kind===`collection`&&t.has(v(e.pluralApiKey))){s(`pluralApiKey`,{message:`validation.apiKeyTaken`});return}let a=ae(e.kind),o=await I(n.mutateAsync({category:a,input:{definition:Q(e),scope:e.scope}}));if(!o.ok){let e=l(n.error);for(let t of Le){let n=e.find(e=>e.path===`/${t}`);n&&s(t,{message:be(n)})}return}S.success(T.t(`models.created`));let c=o.value.definitionId;await i(a===`component`?{to:`/models/components/$componentId`,params:{componentId:c},ignoreBlocker:!0}:{to:`/models/$modelId`,params:{modelId:c},ignoreBlocker:!0})}),pending:n.isPending,error:n.error}},$=({label:e,names:t})=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Y.jsx)(`dt`,{className:`w-14 shrink-0`,children:e}),(0,Y.jsx)(`dd`,{className:`flex min-w-0 flex-wrap gap-1.5`,children:t.map(e=>(0,Y.jsx)(`code`,{className:`max-w-full truncate rounded bg-muted px-1.5 py-0.5 font-mono text-foreground/80`,children:e},e))})]}),ze=({apiKey:e,pluralApiKey:t,kind:n})=>{let{t:r}=o(),i=e.trim();if(i===``||n===`component`)return null;let a=t.trim()||b(i),s=n===`collection`?a:i,c=n===`collection`?[i,a]:[i];return(0,Y.jsxs)(`dl`,{className:`flex flex-col gap-1 text-xs text-muted-foreground`,children:[(0,Y.jsx)($,{label:r(`models.restLabel`),names:[r(`models.endpointPath`,{routeKey:s})]}),(0,Y.jsx)($,{label:r(`models.graphqlLabel`),names:c})]})},Be=({control:e,kinds:t})=>{let{t:n}=o(),{field:{ref:r,value:i,onChange:a}}=j({control:e,name:`kind`});return(0,Y.jsxs)(w,{className:`gap-3`,children:[(0,Y.jsx)(C,{variant:`label`,className:`mb-0`,children:n(`models.kind`)}),(0,Y.jsx)(A,{ref:r,value:i,onValueChange:a,className:s(`gap-3 sm:grid-cols-2`,t.length>2&&`sm:grid-cols-3`),children:t.map(e=>(0,Y.jsx)(q,{value:e,icon:O[e],label:n(D[e]),description:n(oe[e])},e))})]})},Ve=({control:e,canShare:t})=>{let{t:n}=o(),r=u().data?.site,{field:{ref:i,value:a,onChange:s}}=j({control:e,name:`scope`});return(0,Y.jsxs)(w,{className:`gap-3`,children:[(0,Y.jsxs)(C,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[n(`contentTypes.availableOn`),t?null:(0,Y.jsx)(re,{about:n(`contentTypes.allSites`),children:n(`contentTypes.allSitesNeedsNetwork`)})]}),(0,Y.jsxs)(A,{ref:i,value:a,onValueChange:s,className:`gap-3 sm:grid-cols-2`,children:[(0,Y.jsx)(q,{value:`site`,icon:we,label:n(`contentTypes.thisSite`),description:n(`contentTypes.thisSiteDescription`,{site:r?.name??``})}),(0,Y.jsx)(q,{value:`network`,icon:se,label:n(`contentTypes.allSites`),description:n(`contentTypes.allSitesDescription`),disabled:!t})]})]})},He=({title:e,kinds:t,back:n,backLabel:r,intro:i,scope:a})=>{let{t:c}=o(),{locked:l,reason:u}=ve(),{multiSite:p,canShare:m}=k(),{form:h,onSubmit:g,pending:_,error:v}=Re(t[0],a),[y,b,x]=M({control:h.control,name:[`kind`,`apiKey`,`pluralApiKey`]}),S=y===`collection`;return(0,Y.jsxs)(f,{width:`narrow`,children:[(0,Y.jsx)(ne,{when:h.formState.isDirty}),(0,Y.jsx)(te,{breadcrumb:[{label:r,link:n}],title:e}),l?(0,Y.jsx)(ye,{reason:u}):null,i,(0,Y.jsx)(_e,{children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void g(e),children:(0,Y.jsxs)(ie,{className:`gap-5`,children:[t.length>1?(0,Y.jsx)(Be,{control:h.control,kinds:t}):null,a===void 0&&p?(0,Y.jsx)(Ve,{control:h.control,canShare:m}):null,(0,Y.jsx)(N,{control:h.control,name:`label`,label:c(`models.label`),autoComplete:`off`}),(0,Y.jsxs)(`div`,{className:s(`grid items-start gap-5`,S&&`sm:grid-cols-2`),children:[(0,Y.jsx)(N,{control:h.control,name:`apiKey`,label:c(`models.apiKey`),hint:c(`models.apiKeyHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`}),S?(0,Y.jsx)(N,{control:h.control,name:`pluralApiKey`,label:c(`models.pluralApiKey`),hint:c(`models.pluralApiKeyHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`}):null]}),(0,Y.jsx)(ze,{apiKey:b,pluralApiKey:x,kind:y}),(0,Y.jsx)(Ce,{control:h.control,name:`description`,label:c(`common.optionalLabel`,{label:c(`models.descriptionLabel`)}),rows:2}),y===`component`?null:(0,Y.jsx)(Se,{control:h.control,name:`localized`,label:c(`models.localized`),hint:c(`models.localizedHint`),variant:`bordered`}),(0,Y.jsx)(ce,{error:v}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,Y.jsx)(E,{variant:`outline`,asChild:!0,children:(0,Y.jsx)(d,{...n,children:c(`common.cancel`)})}),(0,Y.jsx)(ee,{pending:_,pendingLabel:c(`models.creating`),disabled:l,children:c(`common.create`)})]})]})})})]})};export{Oe as n,He as t};
|
|
2
|
-
//# sourceMappingURL=Form-
|
|
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{P as r,bt as i,i as a,j as o,t as s}from"./cn-h5ORT3LK.js";import{T as c,b as l,u,x as d}from"./auth-BzCgJtgr.js";import{_ as ee,a as f,i as te,n as p}from"./badge-DBoaS0nQ.js";import{i as m,n as h,t as g}from"./RowTitle-mkKp4yfl.js";import{t as ne}from"./UnsavedChangesGuard-BPOCBD5T.js";import{b as _,h as v,q as y,v as b,y as x}from"./src-Be3Ds5Dc.js";import{G as S,f as C,p as w,t as re,u as ie}from"./InfoHint-D3uwei-E.js";import{N as T,i as E}from"./skeleton-DJVukcn6.js";import{a as D,i as O,l as ae,r as oe,u as se}from"./constants-DH7oqfO_.js";import{t as k}from"./useSchemaScopeAccess-BNeVslcv.js";import{i as ce}from"./ConfirmDialog-BW-l3Whg.js";import{t as A}from"./radio-group-BIhT_uEK.js";import{c as j,f as M,n as N,o as le,t as P,u as F}from"./zod-Dcwk-m8X.js";import{t as I}from"./settle-LRKtTN_e.js";import{a as L,d as R,g as z,i as B,l as V,n as H,o as U,r as W,s as ue,t as de,v as G}from"./table-BMbbRUK9.js";import{t as fe}from"./SharedGlyph-CuDT7OUU.js";import{a as pe,h as me,r as he,u as ge}from"./schema-CWHuez0q.js";import{t as _e}from"./Panel-DDky5_x9.js";import{a as ve,i as ye,n as K,r as be,t as xe}from"./followPlural-D-8kzFOe.js";import{t as q}from"./RadioTile-CcP78eb_.js";import{t as Se}from"./FormSwitchField-OM4F8ln4.js";import{t as Ce}from"./FormTextareaField-Bw7EkC4H.js";var J={name:`app-window`,size:24,node:[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]};J.node;var we=a(J),Y=e(n(),1),Te=({definition:e})=>(0,Y.jsx)(g,{asChild:!0,children:e.kind===`component`?(0,Y.jsx)(d,{to:`/models/components/$componentId`,params:{componentId:e.id},children:e.label}):(0,Y.jsx)(d,{to:`/models/$modelId`,params:{modelId:e.id},children:e.label})}),X=e(t(),1),Ee=({changeId:e})=>{let{t}=o(),n=ge(e),a=i(),s=n.data?.status,c=s!==void 0&&me.has(s);return(0,X.useEffect)(()=>{c&&a.invalidateQueries({queryKey:r.schema.all})},[c,a]),c||n.isError?null:(0,Y.jsx)(p,{tone:`progress`,size:`sm`,label:t(`models.pendingChange`)})},De=e=>e.kind===`collection`?`${e.apiKey} · ${v(e)}`:e.apiKey,Oe=({items:e,showKind:t=!1,markShared:n=!0})=>{let{t:r}=o(),{multiSite:i}=k(),a=n&&i;return(0,Y.jsx)(ue,{children:(0,Y.jsxs)(de,{children:[(0,Y.jsx)(L,{children:(0,Y.jsxs)(U,{children:[(0,Y.jsx)(B,{children:r(`models.columns.label`)}),t?(0,Y.jsx)(B,{children:r(`models.columns.kind`)}):null,(0,Y.jsx)(B,{children:r(`models.columns.apiKey`)}),(0,Y.jsx)(B,{className:`text-right`,children:r(`models.columns.fields`)}),(0,Y.jsx)(B,{className:`text-right`,children:r(`models.columns.version`)}),(0,Y.jsx)(B,{children:r(`models.columns.activated`)})]})}),(0,Y.jsx)(H,{children:e.map(({definition:e,scope:n,version:i,activatedAt:o,pendingChange:s})=>(0,Y.jsxs)(U,{children:[(0,Y.jsx)(W,{children:(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(Te,{definition:e}),a&&n===`network`?(0,Y.jsx)(fe,{}):null,s?(0,Y.jsx)(Ee,{changeId:s.id}):null]})}),t?(0,Y.jsx)(W,{className:`text-muted-foreground`,children:r(D[e.kind])}):null,(0,Y.jsx)(W,{className:`font-mono text-meta text-muted-foreground`,children:De(e)}),(0,Y.jsx)(W,{className:`text-right tabular-nums`,children:e.fields.length}),(0,Y.jsx)(W,{className:`text-right text-muted-foreground tabular-nums`,children:r(`models.versionNumber`,{version:i})}),(0,Y.jsx)(W,{className:`text-muted-foreground`,title:h(o),children:m(o)})]},e.id))})]})})},ke={API_KEY_INVALID:`validation.apiKeyInvalid`,API_KEY_TOO_LONG:`validation.apiKeyTooLong`,API_KEY_RESERVED_PREFIX:`validation.apiKeyReservedPrefix`},Z=e=>{let t=x(e);return t?ke[t.code]??`validation.apiKeyInvalid`:null},Ae=()=>G().trim().min(1,`validation.required`).superRefine((e,t)=>{let n=Z(e);n&&t.addIssue({code:`custom`,message:n})}),je=(e,t)=>Z(e)?null:t===``?`validation.required`:_(t)===_(e)?`validation.pluralApiKeySameAsSingular`:Z(t),Me=(e,t,n)=>{let r=(0,X.useRef)(e);(0,X.useEffect)(()=>{let i=t();(i===``||i===K(r.current))&&n(K(e)),r.current=e},[e,t,n])},Ne=(e,t,n)=>{let r=(0,X.useRef)(e);(0,X.useEffect)(()=>{let i=t(),a=xe(r.current,e,i);a!==i&&n(a),r.current=e},[e,t,n])},Pe=z({kind:V([`collection`,`singleton`,`component`]),label:le(),apiKey:Ae(),pluralApiKey:G().trim(),description:G().trim(),localized:R(),scope:V([`site`,`network`])}).superRefine((e,t)=>{let n=e.kind===`collection`?je(e.apiKey,e.pluralApiKey):null;n&&t.addIssue({code:`custom`,path:[`pluralApiKey`],message:n})}),Fe=(e,t)=>({kind:e,label:``,apiKey:``,pluralApiKey:``,description:``,localized:!1,scope:t}),Q=({kind:e,label:t,apiKey:n,pluralApiKey:r,description:i,localized:a})=>e===`component`?{kind:e,label:t,apiKey:n,description:i,fields:[]}:e===`collection`?{kind:e,label:t,apiKey:n,pluralApiKey:r,description:i,localized:a,fields:[]}:{kind:e,label:t,apiKey:n,description:i,localized:a,fields:[]},Ie=e=>new Set((e??[]).flatMap(({definition:e})=>[e.apiKey,...y(e)?[v(e)]:[]].map(_))),Le=[`apiKey`,`pluralApiKey`],Re=(e,t=`site`)=>{let n=pe(),{definitions:r}=he(),i=c(),a=F({resolver:P(Pe),defaultValues:Fe(e,t)}),{setValue:o,setError:s,getValues:u}=a;return Me(M({control:a.control,name:`label`}),(0,X.useCallback)(()=>u(`apiKey`),[u]),(0,X.useCallback)(e=>o(`apiKey`,e,{shouldValidate:!1}),[o])),Ne(M({control:a.control,name:`apiKey`}),(0,X.useCallback)(()=>u(`pluralApiKey`),[u]),(0,X.useCallback)(e=>o(`pluralApiKey`,e,{shouldValidate:!1}),[o])),{form:a,onSubmit:a.handleSubmit(async e=>{let t=Ie(r);if(t.has(_(e.apiKey))){s(`apiKey`,{message:`validation.apiKeyTaken`});return}if(e.kind===`collection`&&t.has(_(e.pluralApiKey))){s(`pluralApiKey`,{message:`validation.apiKeyTaken`});return}let a=ae(e.kind),o=await I(n.mutateAsync({category:a,input:{definition:Q(e),scope:e.scope}}));if(!o.ok){let e=l(n.error);for(let t of Le){let n=e.find(e=>e.path===`/${t}`);n&&s(t,{message:be(n)})}return}S.success(T.t(`models.created`));let c=o.value.definitionId;await i(a===`component`?{to:`/models/components/$componentId`,params:{componentId:c},ignoreBlocker:!0}:{to:`/models/$modelId`,params:{modelId:c},ignoreBlocker:!0})}),pending:n.isPending,error:n.error}},$=({label:e,names:t})=>(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Y.jsx)(`dt`,{className:`w-14 shrink-0`,children:e}),(0,Y.jsx)(`dd`,{className:`flex min-w-0 flex-wrap gap-1.5`,children:t.map(e=>(0,Y.jsx)(`code`,{className:`max-w-full truncate rounded bg-muted px-1.5 py-0.5 font-mono text-foreground/80`,children:e},e))})]}),ze=({apiKey:e,pluralApiKey:t,kind:n})=>{let{t:r}=o(),i=e.trim();if(i===``||n===`component`)return null;let a=t.trim()||b(i),s=n===`collection`?a:i,c=n===`collection`?[i,a]:[i];return(0,Y.jsxs)(`dl`,{className:`flex flex-col gap-1 text-xs text-muted-foreground`,children:[(0,Y.jsx)($,{label:r(`models.restLabel`),names:[r(`models.endpointPath`,{routeKey:s})]}),(0,Y.jsx)($,{label:r(`models.graphqlLabel`),names:c})]})},Be=({control:e,kinds:t})=>{let{t:n}=o(),{field:{ref:r,value:i,onChange:a}}=j({control:e,name:`kind`});return(0,Y.jsxs)(w,{className:`gap-3`,children:[(0,Y.jsx)(C,{variant:`label`,className:`mb-0`,children:n(`models.kind`)}),(0,Y.jsx)(A,{ref:r,value:i,onValueChange:a,className:s(`gap-3 sm:grid-cols-2`,t.length>2&&`sm:grid-cols-3`),children:t.map(e=>(0,Y.jsx)(q,{value:e,icon:O[e],label:n(D[e]),description:n(oe[e])},e))})]})},Ve=({control:e,canShare:t})=>{let{t:n}=o(),r=u().data?.site,{field:{ref:i,value:a,onChange:s}}=j({control:e,name:`scope`});return(0,Y.jsxs)(w,{className:`gap-3`,children:[(0,Y.jsxs)(C,{variant:`label`,className:`mb-0 flex items-center gap-1`,children:[n(`contentTypes.availableOn`),t?null:(0,Y.jsx)(re,{about:n(`contentTypes.allSites`),children:n(`contentTypes.allSitesNeedsNetwork`)})]}),(0,Y.jsxs)(A,{ref:i,value:a,onValueChange:s,className:`gap-3 sm:grid-cols-2`,children:[(0,Y.jsx)(q,{value:`site`,icon:we,label:n(`contentTypes.thisSite`),description:n(`contentTypes.thisSiteDescription`,{site:r?.name??``})}),(0,Y.jsx)(q,{value:`network`,icon:se,label:n(`contentTypes.allSites`),description:n(`contentTypes.allSitesDescription`),disabled:!t})]})]})},He=({title:e,kinds:t,back:n,backLabel:r,intro:i,scope:a})=>{let{t:c}=o(),{locked:l,reason:u}=ve(),{multiSite:p,canShare:m}=k(),{form:h,onSubmit:g,pending:_,error:v}=Re(t[0],a),[y,b,x]=M({control:h.control,name:[`kind`,`apiKey`,`pluralApiKey`]}),S=y===`collection`;return(0,Y.jsxs)(f,{width:`narrow`,children:[(0,Y.jsx)(ne,{when:h.formState.isDirty}),(0,Y.jsx)(te,{breadcrumb:[{label:r,link:n}],title:e}),l?(0,Y.jsx)(ye,{reason:u}):null,i,(0,Y.jsx)(_e,{children:(0,Y.jsx)(`form`,{noValidate:!0,onSubmit:e=>void g(e),children:(0,Y.jsxs)(ie,{className:`gap-5`,children:[t.length>1?(0,Y.jsx)(Be,{control:h.control,kinds:t}):null,a===void 0&&p?(0,Y.jsx)(Ve,{control:h.control,canShare:m}):null,(0,Y.jsx)(N,{control:h.control,name:`label`,label:c(`models.label`),autoComplete:`off`}),(0,Y.jsxs)(`div`,{className:s(`grid items-start gap-5`,S&&`sm:grid-cols-2`),children:[(0,Y.jsx)(N,{control:h.control,name:`apiKey`,label:c(`models.apiKey`),hint:c(`models.apiKeyHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`}),S?(0,Y.jsx)(N,{control:h.control,name:`pluralApiKey`,label:c(`models.pluralApiKey`),hint:c(`models.pluralApiKeyHint`),autoComplete:`off`,spellCheck:!1,className:`font-mono`}):null]}),(0,Y.jsx)(ze,{apiKey:b,pluralApiKey:x,kind:y}),(0,Y.jsx)(Ce,{control:h.control,name:`description`,label:c(`common.optionalLabel`,{label:c(`models.descriptionLabel`)}),rows:2}),y===`component`?null:(0,Y.jsx)(Se,{control:h.control,name:`localized`,label:c(`models.localized`),hint:c(`models.localizedHint`),variant:`bordered`}),(0,Y.jsx)(ce,{error:v}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[(0,Y.jsx)(E,{variant:`outline`,asChild:!0,children:(0,Y.jsx)(d,{...n,children:c(`common.cancel`)})}),(0,Y.jsx)(ee,{pending:_,pendingLabel:c(`models.creating`),disabled:l,children:c(`common.create`)})]})]})})})]})};export{Oe as n,He as t};
|
|
2
|
+
//# sourceMappingURL=Form-DB03drS9.js.map
|