@modern-admin/web 0.6.0 → 0.7.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/config/runtime-config.d.ts +28 -2
- package/dist/config/vite.d.ts +14 -0
- package/dist/config/vite.js +2 -2
- package/dist/lib/index.js +4 -1
- package/dist/lib/runtime-config.d.ts +28 -2
- package/dist/standalone/assets/{action-component-host-8DE4kuUJ.js → action-component-host-Cch_SQOc.js} +1 -2
- package/dist/standalone/assets/action-component-host-Cch_SQOc.js.br +0 -0
- package/dist/standalone/assets/action-component-host-Cch_SQOc.js.gz +0 -0
- package/dist/standalone/assets/{action-page-D6BbXzUo.js → action-page-Cs9GeU9A.js} +1 -2
- package/dist/standalone/assets/action-page-Cs9GeU9A.js.br +0 -0
- package/dist/standalone/assets/action-page-Cs9GeU9A.js.gz +0 -0
- package/dist/standalone/assets/{ai-assistant-widget-BORa8_hT.js → ai-assistant-widget-DC9Li4zI.js} +1 -2
- package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.br +0 -0
- package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.gz +0 -0
- package/dist/standalone/assets/arrow-left-yVCaEJJu.js +1 -2
- package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js +1 -0
- package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.br +0 -0
- package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.gz +0 -0
- package/dist/standalone/assets/badge-CdW_Z0lB.js +1 -2
- package/dist/standalone/assets/bot-CuDPD_ZU.js +1 -2
- package/dist/standalone/assets/{cache-page-CBKj7WFq.js → cache-page-D6YyRm0a.js} +1 -2
- package/dist/standalone/assets/cache-page-D6YyRm0a.js.br +0 -0
- package/dist/standalone/assets/cache-page-D6YyRm0a.js.gz +0 -0
- package/dist/standalone/assets/calendar-Dt13SKbK.js +1 -0
- package/dist/standalone/assets/calendar-Dt13SKbK.js.br +0 -0
- package/dist/standalone/assets/calendar-Dt13SKbK.js.gz +0 -0
- package/dist/standalone/assets/card-BYbadRar.js +1 -2
- package/dist/standalone/assets/card-BYbadRar.js.br +0 -0
- package/dist/standalone/assets/card-BYbadRar.js.gz +0 -0
- package/dist/standalone/assets/chart-widget-BCr0m4cg.js +1 -0
- package/dist/standalone/assets/chart-widget-BCr0m4cg.js.br +0 -0
- package/dist/standalone/assets/chart-widget-BCr0m4cg.js.gz +0 -0
- package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js +1 -2
- package/dist/standalone/assets/circle-alert-D1sKnXtO.js +1 -2
- package/dist/standalone/assets/clock-B9qbSr_k.js +1 -2
- package/dist/standalone/assets/{command-BAXXxf0P.js → command-D25Gk8Ov.js} +1 -2
- package/dist/standalone/assets/command-D25Gk8Ov.js.br +0 -0
- package/dist/standalone/assets/command-D25Gk8Ov.js.gz +0 -0
- package/dist/standalone/assets/copy-5fb4qj-_.js +1 -2
- package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js +1 -2
- package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.br +0 -0
- package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.gz +0 -0
- package/dist/standalone/assets/date-picker-dWT-FYDM.js +1 -0
- package/dist/standalone/assets/date-picker-dWT-FYDM.js.br +0 -0
- package/dist/standalone/assets/date-picker-dWT-FYDM.js.gz +0 -0
- package/dist/standalone/assets/{dist-COXu-_Zv.js → dist-B4BiJqz7.js} +1 -2
- package/dist/standalone/assets/dist-B4BiJqz7.js.br +0 -0
- package/dist/standalone/assets/dist-B4BiJqz7.js.gz +0 -0
- package/dist/standalone/assets/dist-CiXwD0ML.js +1 -2
- package/dist/standalone/assets/dist-CiXwD0ML.js.br +0 -0
- package/dist/standalone/assets/dist-CiXwD0ML.js.gz +0 -0
- package/dist/standalone/assets/dist-DPxQeZn3.js +1 -2
- package/dist/standalone/assets/dist-DPxQeZn3.js.br +0 -0
- package/dist/standalone/assets/dist-DPxQeZn3.js.gz +0 -0
- package/dist/standalone/assets/edit-page-7gYT2IT5.js +1 -0
- package/dist/standalone/assets/edit-page-7gYT2IT5.js.br +0 -0
- package/dist/standalone/assets/edit-page-7gYT2IT5.js.gz +0 -0
- package/dist/standalone/assets/ellipsis-BRmOlhsy.js +1 -2
- package/dist/standalone/assets/{empty-DMs98grx.js → empty-BUKxdeYB.js} +1 -2
- package/dist/standalone/assets/empty-BUKxdeYB.js.br +0 -0
- package/dist/standalone/assets/empty-BUKxdeYB.js.gz +0 -0
- package/dist/standalone/assets/file-text-MQF--yeB.js +1 -2
- package/dist/standalone/assets/floating-layer-BcTp2AMB.js +1 -2
- package/dist/standalone/assets/floating-layer-BcTp2AMB.js.br +0 -0
- package/dist/standalone/assets/floating-layer-BcTp2AMB.js.gz +0 -0
- package/dist/standalone/assets/global-search-dialog--byVFtbc.js +1 -0
- package/dist/standalone/assets/global-search-dialog--byVFtbc.js.br +0 -0
- package/dist/standalone/assets/global-search-dialog--byVFtbc.js.gz +0 -0
- package/dist/standalone/assets/{heavy-fields-LnhreUPp.js → heavy-fields-BMTsLOom.js} +26 -27
- package/dist/standalone/assets/heavy-fields-BMTsLOom.js.br +0 -0
- package/dist/standalone/assets/heavy-fields-BMTsLOom.js.gz +0 -0
- package/dist/standalone/assets/{home-page-DiDOzuic.js → home-page-DKd5Im5n.js} +3 -4
- package/dist/standalone/assets/home-page-DKd5Im5n.js.br +0 -0
- package/dist/standalone/assets/home-page-DKd5Im5n.js.gz +0 -0
- package/dist/standalone/assets/{hooks-BiOfAnEq.js → hooks-DOvU3a-p.js} +20 -21
- package/dist/standalone/assets/hooks-DOvU3a-p.js.br +0 -0
- package/dist/standalone/assets/hooks-DOvU3a-p.js.gz +0 -0
- package/dist/standalone/assets/{icon-registry-s31CNk7M.js → icon-registry-CNZsLqJm.js} +1 -2
- package/dist/standalone/assets/icon-registry-CNZsLqJm.js.br +0 -0
- package/dist/standalone/assets/icon-registry-CNZsLqJm.js.gz +0 -0
- package/dist/standalone/assets/index-D_weBQAa.js +14 -0
- package/dist/standalone/assets/index-D_weBQAa.js.br +0 -0
- package/dist/standalone/assets/index-D_weBQAa.js.gz +0 -0
- package/dist/standalone/assets/info-ChwYoM77.js +1 -2
- package/dist/standalone/assets/{json-editor-BD0UhGOT.js → json-editor--WP9_q0O.js} +1 -2
- package/dist/standalone/assets/json-editor--WP9_q0O.js.br +0 -0
- package/dist/standalone/assets/json-editor--WP9_q0O.js.gz +0 -0
- package/dist/standalone/assets/key-BzJFbNbz.js +1 -2
- package/dist/standalone/assets/key-round-oSqmVdkQ.js +1 -2
- package/dist/standalone/assets/minimize-2-iWv98HjE.js +1 -2
- package/dist/standalone/assets/palette-jgTV28yN.js +1 -2
- package/dist/standalone/assets/pencil-kFOObGrY.js +1 -2
- package/dist/standalone/assets/pipette-roLBCmPv.js +1 -2
- package/dist/standalone/assets/pipette-roLBCmPv.js.br +0 -0
- package/dist/standalone/assets/pipette-roLBCmPv.js.gz +0 -0
- package/dist/standalone/assets/plus-D7PHzena.js +1 -2
- package/dist/standalone/assets/property-renderer-CqISwCnB.js +3 -0
- package/dist/standalone/assets/property-renderer-CqISwCnB.js.br +0 -0
- package/dist/standalone/assets/property-renderer-CqISwCnB.js.gz +0 -0
- package/dist/standalone/assets/reference-tHFrlwlu.js +1 -0
- package/dist/standalone/assets/reference-tHFrlwlu.js.br +0 -0
- package/dist/standalone/assets/reference-tHFrlwlu.js.gz +0 -0
- package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js +1 -2
- package/dist/standalone/assets/{revisions-button-Csueldv_.js → revisions-button-DUOp7SdS.js} +1 -2
- package/dist/standalone/assets/revisions-button-DUOp7SdS.js.br +0 -0
- package/dist/standalone/assets/revisions-button-DUOp7SdS.js.gz +0 -0
- package/dist/standalone/assets/richtext-render-DaiNQPjZ.js +1 -2
- package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.br +0 -0
- package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.gz +0 -0
- package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js +1 -2
- package/dist/standalone/assets/save-BkkrgP5Q.js +1 -2
- package/dist/standalone/assets/schemas-ByMQmMCS.js +1 -2
- package/dist/standalone/assets/schemas-ByMQmMCS.js.br +0 -0
- package/dist/standalone/assets/schemas-ByMQmMCS.js.gz +0 -0
- package/dist/standalone/assets/{select-BOe2daO9.js → select-CNvBRk3J.js} +1 -2
- package/dist/standalone/assets/select-CNvBRk3J.js.br +0 -0
- package/dist/standalone/assets/select-CNvBRk3J.js.gz +0 -0
- package/dist/standalone/assets/send-Bzb_4uMT.js +1 -2
- package/dist/standalone/assets/settings-page-SE19h-6J.js +1 -0
- package/dist/standalone/assets/settings-page-SE19h-6J.js.br +0 -0
- package/dist/standalone/assets/settings-page-SE19h-6J.js.gz +0 -0
- package/dist/standalone/assets/{show-page-CDgUXhsx.js → show-page-Bl5uqPGq.js} +1 -2
- package/dist/standalone/assets/show-page-Bl5uqPGq.js.br +0 -0
- package/dist/standalone/assets/show-page-Bl5uqPGq.js.gz +0 -0
- package/dist/standalone/assets/sparkles-1tT0H4n4.js +1 -2
- package/dist/standalone/assets/square-pen-ZvVEwkzw.js +1 -2
- package/dist/standalone/assets/table-RI-lM4fw.js +1 -2
- package/dist/standalone/assets/table-RI-lM4fw.js.br +0 -0
- package/dist/standalone/assets/table-RI-lM4fw.js.gz +0 -0
- package/dist/standalone/assets/{tabs-Bj4gQaH2.js → tabs-bJ8DvO_f.js} +1 -2
- package/dist/standalone/assets/tabs-bJ8DvO_f.js.br +0 -0
- package/dist/standalone/assets/tabs-bJ8DvO_f.js.gz +0 -0
- package/dist/standalone/assets/textarea-C2w7TG3h.js +1 -2
- package/dist/standalone/assets/trash-2-BIJVpWxv.js +1 -2
- package/dist/standalone/assets/triangle-alert-yljVpQCM.js +1 -2
- package/dist/standalone/assets/undo-2-CnH3ScKE.js +1 -2
- package/dist/standalone/assets/undo-2-CnH3ScKE.js.br +0 -0
- package/dist/standalone/assets/undo-2-CnH3ScKE.js.gz +0 -0
- package/dist/standalone/assets/upload-DrfB-4bU.js +1 -2
- package/dist/standalone/assets/upload-DrfB-4bU.js.br +0 -0
- package/dist/standalone/assets/upload-DrfB-4bU.js.gz +0 -0
- package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js +1 -2
- package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.br +0 -0
- package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.gz +0 -0
- package/dist/standalone/assets/{useQueries-DNUnShBb.js → useQueries-ClcMJqXb.js} +1 -2
- package/dist/standalone/assets/useQueries-ClcMJqXb.js.br +0 -0
- package/dist/standalone/assets/useQueries-ClcMJqXb.js.gz +0 -0
- package/dist/standalone/assets/{user-directory-BvmDzxsG.js → user-directory-DxioDri9.js} +2 -3
- package/dist/standalone/assets/user-directory-DxioDri9.js.br +0 -0
- package/dist/standalone/assets/user-directory-DxioDri9.js.gz +0 -0
- package/dist/standalone/assets/uuid-DLSnbsz2.js +1 -2
- package/dist/standalone/assets/wand-sparkles-DwseTI5T.js +1 -2
- package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js +1 -0
- package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.br +0 -0
- package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.gz +0 -0
- package/dist/standalone/assets/x-c-gfVPJa.js +1 -2
- package/dist/standalone/assets/zap-BxPAEPtJ.js +1 -2
- package/dist/standalone/assets/zod-B9XvCD94.js +1 -0
- package/dist/standalone/assets/zod-B9XvCD94.js.br +0 -0
- package/dist/standalone/assets/zod-B9XvCD94.js.gz +0 -0
- package/dist/standalone/index.html +6 -6
- package/dist/standalone/index.html.br +0 -0
- package/dist/standalone/index.html.gz +0 -0
- package/package.json +6 -5
- package/src/app.tsx +3 -0
- package/src/runtime-config.ts +28 -2
- package/src/vite.ts +16 -1
- package/dist/lib/app.d.ts.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/mount.d.ts.map +0 -1
- package/dist/lib/runtime-config.d.ts.map +0 -1
- package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.br +0 -0
- package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.gz +0 -0
- package/dist/standalone/assets/action-component-host-8DE4kuUJ.js.map +0 -1
- package/dist/standalone/assets/action-page-D6BbXzUo.js.br +0 -0
- package/dist/standalone/assets/action-page-D6BbXzUo.js.gz +0 -0
- package/dist/standalone/assets/action-page-D6BbXzUo.js.map +0 -1
- package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.br +0 -0
- package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.gz +0 -0
- package/dist/standalone/assets/ai-assistant-widget-BORa8_hT.js.map +0 -1
- package/dist/standalone/assets/arrow-left-yVCaEJJu.js.map +0 -1
- package/dist/standalone/assets/audit-log-page-uHj9GWfi.js +0 -2
- package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.br +0 -0
- package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.gz +0 -0
- package/dist/standalone/assets/audit-log-page-uHj9GWfi.js.map +0 -1
- package/dist/standalone/assets/badge-CdW_Z0lB.js.map +0 -1
- package/dist/standalone/assets/bot-CuDPD_ZU.js.map +0 -1
- package/dist/standalone/assets/cache-page-CBKj7WFq.js.br +0 -0
- package/dist/standalone/assets/cache-page-CBKj7WFq.js.gz +0 -0
- package/dist/standalone/assets/cache-page-CBKj7WFq.js.map +0 -1
- package/dist/standalone/assets/calendar-BuLRvNBg.js +0 -2
- package/dist/standalone/assets/calendar-BuLRvNBg.js.br +0 -0
- package/dist/standalone/assets/calendar-BuLRvNBg.js.gz +0 -0
- package/dist/standalone/assets/calendar-BuLRvNBg.js.map +0 -1
- package/dist/standalone/assets/card-BYbadRar.js.map +0 -1
- package/dist/standalone/assets/chart-widget-Bfk_mvm2.js +0 -2
- package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.br +0 -0
- package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.gz +0 -0
- package/dist/standalone/assets/chart-widget-Bfk_mvm2.js.map +0 -1
- package/dist/standalone/assets/chevrons-up-down-y29_Sm-3.js.map +0 -1
- package/dist/standalone/assets/circle-alert-D1sKnXtO.js.map +0 -1
- package/dist/standalone/assets/clock-B9qbSr_k.js.map +0 -1
- package/dist/standalone/assets/command-BAXXxf0P.js.br +0 -0
- package/dist/standalone/assets/command-BAXXxf0P.js.gz +0 -0
- package/dist/standalone/assets/command-BAXXxf0P.js.map +0 -1
- package/dist/standalone/assets/copy-5fb4qj-_.js.map +0 -1
- package/dist/standalone/assets/createLucideIcon-QE2kj6ru.js.map +0 -1
- package/dist/standalone/assets/date-picker-Bxv-yrWf.js +0 -2
- package/dist/standalone/assets/date-picker-Bxv-yrWf.js.br +0 -0
- package/dist/standalone/assets/date-picker-Bxv-yrWf.js.gz +0 -0
- package/dist/standalone/assets/date-picker-Bxv-yrWf.js.map +0 -1
- package/dist/standalone/assets/dist-COXu-_Zv.js.br +0 -0
- package/dist/standalone/assets/dist-COXu-_Zv.js.gz +0 -0
- package/dist/standalone/assets/dist-COXu-_Zv.js.map +0 -1
- package/dist/standalone/assets/dist-CiXwD0ML.js.map +0 -1
- package/dist/standalone/assets/dist-DPxQeZn3.js.map +0 -1
- package/dist/standalone/assets/edit-page-Dm638D2J.js +0 -2
- package/dist/standalone/assets/edit-page-Dm638D2J.js.br +0 -0
- package/dist/standalone/assets/edit-page-Dm638D2J.js.gz +0 -0
- package/dist/standalone/assets/edit-page-Dm638D2J.js.map +0 -1
- package/dist/standalone/assets/ellipsis-BRmOlhsy.js.map +0 -1
- package/dist/standalone/assets/empty-DMs98grx.js.br +0 -0
- package/dist/standalone/assets/empty-DMs98grx.js.gz +0 -0
- package/dist/standalone/assets/empty-DMs98grx.js.map +0 -1
- package/dist/standalone/assets/file-text-MQF--yeB.js.map +0 -1
- package/dist/standalone/assets/floating-layer-BcTp2AMB.js.map +0 -1
- package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js +0 -2
- package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.br +0 -0
- package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.gz +0 -0
- package/dist/standalone/assets/global-search-dialog-DxwxFDO5.js.map +0 -1
- package/dist/standalone/assets/heavy-fields-LnhreUPp.js.br +0 -0
- package/dist/standalone/assets/heavy-fields-LnhreUPp.js.gz +0 -0
- package/dist/standalone/assets/heavy-fields-LnhreUPp.js.map +0 -1
- package/dist/standalone/assets/home-page-DiDOzuic.js.br +0 -0
- package/dist/standalone/assets/home-page-DiDOzuic.js.gz +0 -0
- package/dist/standalone/assets/home-page-DiDOzuic.js.map +0 -1
- package/dist/standalone/assets/hooks-BiOfAnEq.js.br +0 -0
- package/dist/standalone/assets/hooks-BiOfAnEq.js.gz +0 -0
- package/dist/standalone/assets/hooks-BiOfAnEq.js.map +0 -1
- package/dist/standalone/assets/icon-registry-s31CNk7M.js.br +0 -0
- package/dist/standalone/assets/icon-registry-s31CNk7M.js.gz +0 -0
- package/dist/standalone/assets/icon-registry-s31CNk7M.js.map +0 -1
- package/dist/standalone/assets/index-CASCzvYu.js +0 -15
- package/dist/standalone/assets/index-CASCzvYu.js.br +0 -0
- package/dist/standalone/assets/index-CASCzvYu.js.gz +0 -0
- package/dist/standalone/assets/index-CASCzvYu.js.map +0 -1
- package/dist/standalone/assets/info-ChwYoM77.js.map +0 -1
- package/dist/standalone/assets/json-editor-BD0UhGOT.js.br +0 -0
- package/dist/standalone/assets/json-editor-BD0UhGOT.js.gz +0 -0
- package/dist/standalone/assets/json-editor-BD0UhGOT.js.map +0 -1
- package/dist/standalone/assets/key-BzJFbNbz.js.map +0 -1
- package/dist/standalone/assets/key-round-oSqmVdkQ.js.map +0 -1
- package/dist/standalone/assets/minimize-2-iWv98HjE.js.map +0 -1
- package/dist/standalone/assets/palette-jgTV28yN.js.map +0 -1
- package/dist/standalone/assets/pencil-kFOObGrY.js.map +0 -1
- package/dist/standalone/assets/pipette-roLBCmPv.js.map +0 -1
- package/dist/standalone/assets/plus-D7PHzena.js.map +0 -1
- package/dist/standalone/assets/property-renderer-ClrVnSny.js +0 -4
- package/dist/standalone/assets/property-renderer-ClrVnSny.js.br +0 -0
- package/dist/standalone/assets/property-renderer-ClrVnSny.js.gz +0 -0
- package/dist/standalone/assets/property-renderer-ClrVnSny.js.map +0 -1
- package/dist/standalone/assets/reference-BMbhUBHD.js +0 -2
- package/dist/standalone/assets/reference-BMbhUBHD.js.br +0 -0
- package/dist/standalone/assets/reference-BMbhUBHD.js.gz +0 -0
- package/dist/standalone/assets/reference-BMbhUBHD.js.map +0 -1
- package/dist/standalone/assets/refresh-cw-Cm9YiHGV.js.map +0 -1
- package/dist/standalone/assets/revisions-button-Csueldv_.js.br +0 -0
- package/dist/standalone/assets/revisions-button-Csueldv_.js.gz +0 -0
- package/dist/standalone/assets/revisions-button-Csueldv_.js.map +0 -1
- package/dist/standalone/assets/richtext-render-DaiNQPjZ.js.map +0 -1
- package/dist/standalone/assets/rotate-ccw-AB1VcvbK.js.map +0 -1
- package/dist/standalone/assets/save-BkkrgP5Q.js.map +0 -1
- package/dist/standalone/assets/schemas-ByMQmMCS.js.map +0 -1
- package/dist/standalone/assets/select-BOe2daO9.js.br +0 -0
- package/dist/standalone/assets/select-BOe2daO9.js.gz +0 -0
- package/dist/standalone/assets/select-BOe2daO9.js.map +0 -1
- package/dist/standalone/assets/send-Bzb_4uMT.js.map +0 -1
- package/dist/standalone/assets/settings-page-BmphreWj.js +0 -2
- package/dist/standalone/assets/settings-page-BmphreWj.js.br +0 -0
- package/dist/standalone/assets/settings-page-BmphreWj.js.gz +0 -0
- package/dist/standalone/assets/settings-page-BmphreWj.js.map +0 -1
- package/dist/standalone/assets/show-page-CDgUXhsx.js.br +0 -0
- package/dist/standalone/assets/show-page-CDgUXhsx.js.gz +0 -0
- package/dist/standalone/assets/show-page-CDgUXhsx.js.map +0 -1
- package/dist/standalone/assets/sparkles-1tT0H4n4.js.map +0 -1
- package/dist/standalone/assets/square-pen-ZvVEwkzw.js.map +0 -1
- package/dist/standalone/assets/table-RI-lM4fw.js.map +0 -1
- package/dist/standalone/assets/tabs-Bj4gQaH2.js.br +0 -0
- package/dist/standalone/assets/tabs-Bj4gQaH2.js.gz +0 -0
- package/dist/standalone/assets/tabs-Bj4gQaH2.js.map +0 -1
- package/dist/standalone/assets/textarea-C2w7TG3h.js.map +0 -1
- package/dist/standalone/assets/trash-2-BIJVpWxv.js.map +0 -1
- package/dist/standalone/assets/triangle-alert-yljVpQCM.js.map +0 -1
- package/dist/standalone/assets/undo-2-CnH3ScKE.js.map +0 -1
- package/dist/standalone/assets/upload-DrfB-4bU.js.map +0 -1
- package/dist/standalone/assets/use-dashboard-charts-D7-ctwCE.js.map +0 -1
- package/dist/standalone/assets/useQueries-DNUnShBb.js.br +0 -0
- package/dist/standalone/assets/useQueries-DNUnShBb.js.gz +0 -0
- package/dist/standalone/assets/useQueries-DNUnShBb.js.map +0 -1
- package/dist/standalone/assets/user-directory-BvmDzxsG.js.br +0 -0
- package/dist/standalone/assets/user-directory-BvmDzxsG.js.gz +0 -0
- package/dist/standalone/assets/user-directory-BvmDzxsG.js.map +0 -1
- package/dist/standalone/assets/uuid-DLSnbsz2.js.map +0 -1
- package/dist/standalone/assets/wand-sparkles-DwseTI5T.js.map +0 -1
- package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js +0 -2
- package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.br +0 -0
- package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.gz +0 -0
- package/dist/standalone/assets/wizard-create-page-D4a8FnmI.js.map +0 -1
- package/dist/standalone/assets/x-c-gfVPJa.js.map +0 -1
- package/dist/standalone/assets/zap-BxPAEPtJ.js.map +0 -1
- package/dist/standalone/assets/zod-2-ubQvxh.js +0 -2
- package/dist/standalone/assets/zod-2-ubQvxh.js.br +0 -0
- package/dist/standalone/assets/zod-2-ubQvxh.js.gz +0 -0
- package/dist/standalone/assets/zod-2-ubQvxh.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-assistant-widget-BORa8_hT.js","names":[],"sources":["../../../../react/src/components/ai-assistant-widget.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n RichtextRender,\n ScrollArea,\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n Textarea,\n} from '@modern-admin/ui'\nimport { Bot, History, Loader2, MessageSquare, Plus, Send, Settings, X } from 'lucide-react'\nimport { uuidv7 } from '@modern-admin/core'\nimport { useAdminClient } from '../provider.js'\nimport { useFeatures } from '../hooks.js'\nimport { useNotify } from '../notify.js'\nimport { useBasepath, useNavigate } from '../router.js'\nimport { useI18n } from '../i18n.js'\nimport type {\n AiAssistantChatHistoryItem,\n AiAssistantChatMessage,\n AiAssistantCitation,\n AiAssistantTask,\n AiUiAction,\n} from '../client.js'\nimport { emitDashboardReload } from '../use-dashboard-charts.js'\n\ninterface ChatItem {\n id: string\n role: 'user' | 'assistant'\n content: string\n citations?: AiAssistantCitation[]\n}\n\ninterface QueuedItem {\n id: string\n content: string\n}\n\nconst randomId = (): string => uuidv7()\n\nconst MAX_QUEUE = 5\n\nconst messagesFromTask = (task: AiAssistantTask, fallbackText: string): ChatItem[] => {\n const inputMessages = Array.isArray(task.input?.messages)\n ? task.input.messages as AiAssistantChatMessage[]\n : []\n const items: ChatItem[] = inputMessages.map((message, index) => ({\n id: `${task.id}-input-${index}`,\n role: message.role,\n content: message.content,\n }))\n if (task.output) {\n const text = String(task.output.text ?? '').trim()\n items.push({\n id: `task-${task.id}`,\n role: 'assistant',\n content: text || fallbackText,\n citations: Array.isArray(task.output.citations) ? task.output.citations : undefined,\n })\n }\n return items\n}\n\nexport function AiAssistantWidget(): React.ReactElement | null {\n const client = useAdminClient()\n const queryClient = useQueryClient()\n const notify = useNotify()\n const navigate = useNavigate()\n const basepath = useBasepath()\n const { locale, t } = useI18n()\n const [open, setOpen] = React.useState(false)\n const [input, setInput] = React.useState('')\n const [messages, setMessages] = React.useState<ChatItem[]>([])\n const [conversationId, setConversationId] = React.useState(() => randomId())\n const [activeTaskId, setActiveTaskId] = React.useState<string | null>(null)\n const [queue, setQueue] = React.useState<QueuedItem[]>([])\n\n // Capability gate: when the host hasn't wired `aiAssistant` in\n // `ModernAdminModule.forRoot`, the `/admin/api/ai-assistant/*`\n // controllers aren't even registered — issuing the settings query would\n // 404 every page load. Skip the query, the widget, and the chat sheet\n // entirely in that case.\n const features = useFeatures()\n const aiAvailable = features.aiAssistant\n\n const settings = useQuery({\n queryKey: ['modern-admin', 'ai-assistant', 'settings'],\n queryFn: () => client.getAiAssistantSettings(),\n enabled: aiAvailable,\n })\n\n const chat = useMutation({\n mutationFn: async (input: {\n requestId: string\n conversationId: string\n messages: AiAssistantChatMessage[]\n }) => {\n // Strip the admin's basepath so the backend receives a basepath-relative\n // path (e.g. `/resources/posts/123`, not `/admin/resources/posts/123`) —\n // the grounding prompt matches against the relative `/resources/...` form.\n // Boundary-aware: only strip a full segment match so basepath `/admin`\n // never mangles an unrelated path like `/administrators`.\n let pathname = typeof window !== 'undefined' ? window.location.pathname : undefined\n if (pathname && basepath) {\n if (pathname === basepath) {\n pathname = '/'\n } else if (pathname.startsWith(`${basepath}/`)) {\n pathname = pathname.slice(basepath.length)\n }\n }\n return client.sendAiAssistantChat(\n input.messages,\n input.requestId,\n locale,\n input.conversationId,\n pathname ? { pathname } : undefined,\n )\n },\n onSuccess: (response) => {\n setActiveTaskId(response.taskId)\n void queryClient.invalidateQueries({ queryKey: ['modern-admin', 'ai-assistant', 'chats'] })\n },\n onError: (err) => {\n notify.error({ message: err instanceof Error ? err.message : String(err) })\n },\n })\n\n const history = useQuery<AiAssistantChatHistoryItem[]>({\n queryKey: ['modern-admin', 'ai-assistant', 'chats'],\n queryFn: () => client.listAiAssistantChats(),\n enabled: aiAvailable && open && settings.data?.configured === true,\n })\n\n const task = useQuery<AiAssistantTask>({\n queryKey: ['modern-admin', 'ai-assistant', 'task', activeTaskId],\n queryFn: () => client.getAiAssistantTask(activeTaskId!),\n enabled: !!activeTaskId,\n refetchInterval: (query) => {\n const state = query.state.data?.status\n return state === 'pending' || state === 'running' ? 1200 : false\n },\n })\n\n React.useEffect(() => {\n const data = task.data\n if (!data || !activeTaskId) return\n if (data.status === 'succeeded' && data.output != null) {\n setMessages((prev) => {\n const alreadyExists = prev.some((item) => item.id === `task-${data.id}`)\n if (alreadyExists) return prev\n const text = String(data.output?.text ?? '').trim()\n return [\n ...prev,\n {\n id: `task-${data.id}`,\n role: 'assistant',\n content: text || t('aiAssistant:noText'),\n citations: Array.isArray(data.output?.citations) ? data.output.citations : undefined,\n },\n ]\n })\n setActiveTaskId(null)\n void queryClient.invalidateQueries({ queryKey: ['modern-admin', 'ai-assistant', 'chats'] })\n const uiActions = Array.isArray(data.output?.uiActions)\n ? (data.output.uiActions as AiUiAction[])\n : []\n for (const action of uiActions) {\n if (action.kind === 'refresh' && action.target === 'dashboard') {\n emitDashboardReload()\n continue\n }\n if (action.kind === 'navigate') {\n setOpen(false)\n navigate(action.route)\n }\n }\n return\n }\n if (data.status === 'failed' || data.status === 'cancelled') {\n notify.error({ message: data.error ?? t('aiAssistant:taskFailed') })\n setActiveTaskId(null)\n }\n }, [activeTaskId, navigate, notify, queryClient, task.data, t])\n\n // Send a user message immediately (assumes nothing is in flight).\n const sendChat = React.useCallback(\n (content: string): void => {\n const userMsg: ChatItem = { id: randomId(), role: 'user', content }\n const updated = [...messages, userMsg]\n setMessages(updated)\n chat.mutate({\n requestId: userMsg.id,\n conversationId,\n messages: updated.map((m) => ({ role: m.role, content: m.content })),\n })\n },\n [chat, conversationId, messages],\n )\n\n const startNewChat = React.useCallback((): void => {\n setConversationId(randomId())\n setMessages([])\n setInput('')\n setQueue([])\n setActiveTaskId(null)\n }, [])\n\n const selectChat = React.useCallback(\n async (item: AiAssistantChatHistoryItem): Promise<void> => {\n try {\n const selected = await client.getAiAssistantTask(item.taskId)\n setConversationId(item.conversationId)\n setMessages(messagesFromTask(selected, t('aiAssistant:noText')))\n setQueue([])\n setInput('')\n setActiveTaskId(\n selected.status === 'pending' || selected.status === 'running' ? selected.id : null,\n )\n } catch (err) {\n notify.error({ message: err instanceof Error ? err.message : String(err) })\n }\n },\n [client, notify, t],\n )\n\n // Auto-dequeue: when nothing is in flight and queue has items, send the head.\n React.useEffect(() => {\n if (activeTaskId !== null) return\n if (chat.isPending) return\n const next = queue[0]\n if (!next) return\n setQueue((q) => q.slice(1))\n sendChat(next.content)\n }, [activeTaskId, chat.isPending, queue, sendChat])\n\n if (!aiAvailable) return null\n if (settings.isLoading) return null\n if (settings.error) return null\n if (!settings.data?.enabled) return null\n if (!settings.data.canChat) return null\n\n const isProcessing = chat.isPending || activeTaskId != null\n const queueFull = queue.length >= MAX_QUEUE\n\n const submit = (): void => {\n const text = input.trim()\n if (!text) return\n if (isProcessing) {\n if (queueFull) return\n setQueue((q) => [...q, { id: randomId(), content: text }])\n setInput('')\n return\n }\n setInput('')\n sendChat(text)\n }\n\n const configured = settings.data.configured\n const isThinking =\n isProcessing ||\n task.data?.status === 'running' ||\n task.data?.status === 'pending'\n const progress = typeof task.data?.progress === 'number' ? task.data.progress : null\n const sendDisabled = input.trim().length === 0 || (isProcessing && queueFull)\n\n return (\n <>\n <div className=\"fixed bottom-4 right-4 z-40\">\n <Button\n onClick={() => setOpen(true)}\n aria-label={t('aiAssistant:fab.label')}\n className={\n 'group h-10 min-w-10 max-w-10 rounded-full pl-3 pr-3 shadow-lg ' +\n 'justify-end gap-0 overflow-hidden opacity-70 hover:opacity-100 ' +\n 'transition-[max-width,padding-left,opacity] duration-200 ease-in-out ' +\n 'hover:max-w-36 hover:pl-4'\n }\n >\n <span className=\"max-w-0 overflow-hidden whitespace-nowrap text-sm font-medium transition-[max-width,padding-right] duration-200 ease-in-out group-hover:max-w-[5rem] group-hover:pr-2\">\n {t('aiAssistant:fab.short')}\n </span>\n <MessageSquare className=\"size-4 shrink-0\" />\n </Button>\n </div>\n <Sheet open={open} onOpenChange={setOpen}>\n <SheetContent hideCloseButton className=\"flex w-full flex-col gap-0 sm:max-w-xl\">\n <SheetHeader className=\"border-b border-border pb-4\">\n <div className=\"flex items-start gap-3\">\n <div className=\"min-w-0 flex-1\">\n <SheetTitle className=\"flex items-center gap-2\">\n <Bot className=\"size-5\" />\n {t('aiAssistant:title')}\n </SheetTitle>\n <SheetDescription>{t('aiAssistant:description')}</SheetDescription>\n </div>\n <div className=\"flex shrink-0 items-center gap-0.5\">\n {configured && (\n <>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={t('aiAssistant:history')}\n >\n <History className=\"size-4\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-72\">\n <DropdownMenuLabel>{t('aiAssistant:history')}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {history.isLoading && (\n <DropdownMenuItem disabled>{t('common:loading')}</DropdownMenuItem>\n )}\n {!history.isLoading && (history.data?.length ?? 0) === 0 && (\n <DropdownMenuItem disabled>{t('aiAssistant:history.empty')}</DropdownMenuItem>\n )}\n {history.data?.map((item) => (\n <DropdownMenuItem\n key={item.conversationId}\n className=\"flex-col items-start gap-0 py-2\"\n onSelect={() => {\n void selectChat(item)\n }}\n >\n <span className=\"line-clamp-1 w-full text-sm font-medium\">{item.title}</span>\n <span className=\"text-xs text-muted-foreground\">\n {new Intl.DateTimeFormat(locale, {\n dateStyle: 'short',\n timeStyle: 'short',\n }).format(new Date(item.updatedAt))}\n </span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n onClick={startNewChat}\n aria-label={t('aiAssistant:newChat')}\n >\n <Plus className=\"size-4\" />\n </Button>\n </>\n )}\n <SheetClose asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={t('common:close')}\n >\n <X className=\"size-4\" />\n </Button>\n </SheetClose>\n </div>\n </div>\n </SheetHeader>\n\n {!configured ? (\n <div className=\"flex flex-1 flex-col items-center justify-center gap-4 px-4 text-center\">\n <div className=\"space-y-2\">\n <div className=\"text-lg font-semibold\">\n {t('aiAssistant:notConfigured.title')}\n </div>\n <div className=\"text-sm text-muted-foreground\">\n {t('aiAssistant:notConfigured.description')}\n </div>\n </div>\n {settings.data.canManage && (\n <Button\n variant=\"outline\"\n onClick={() => {\n setOpen(false)\n navigate({ name: 'settings', section: 'ai-assistant' })\n }}\n >\n <Settings className=\"size-4\" />\n {t('aiAssistant:notConfigured.openSettings')}\n </Button>\n )}\n </div>\n ) : (\n <>\n <ScrollArea className=\"flex-1 px-4 py-4\">\n <div className=\"space-y-3\">\n {messages.length === 0 && (\n <Card>\n <CardContent className=\"space-y-2 p-4 text-sm text-muted-foreground\">\n <div className=\"font-medium text-foreground\">\n {t('aiAssistant:tryAsking')}\n </div>\n <div>- {t('aiAssistant:tryAsking.example1')}</div>\n <div>- {t('aiAssistant:tryAsking.example2')}</div>\n <div>- {t('aiAssistant:tryAsking.example3')}</div>\n </CardContent>\n </Card>\n )}\n {messages.map((message) => (\n <div\n key={message.id}\n className={message.role === 'user' ? 'flex justify-end' : 'flex justify-start'}\n >\n <div\n className={message.role === 'user'\n ? 'max-w-[85%] rounded-2xl bg-primary px-4 py-3 text-sm text-primary-foreground'\n : 'max-w-[85%] rounded-2xl border border-border bg-card px-4 py-3 text-sm'}\n >\n {message.role === 'assistant' ? (\n <RichtextRender\n value={message.content}\n format=\"markdown\"\n className=\"text-sm [&_pre]:overflow-x-auto [&_pre]:text-xs\"\n />\n ) : (\n <div className=\"whitespace-pre-wrap\">{message.content}</div>\n )}\n {message.citations && message.citations.length > 0 && (\n <div className=\"mt-3 flex flex-wrap gap-2\">\n {message.citations.slice(0, 6).map((citation, index) => {\n const label = `${citation.resourceId}${citation.recordId ? `#${citation.recordId}` : ''}`\n const key = `${citation.resourceId}-${citation.recordId ?? 'resource'}-${index}`\n if (citation.recordId) {\n return (\n <button\n key={key}\n type=\"button\"\n className=\"cursor-pointer\"\n onClick={() => {\n setOpen(false)\n navigate({\n name: 'show',\n resourceId: citation.resourceId,\n recordId: citation.recordId!,\n })\n }}\n >\n <Badge variant=\"outline\">{label}</Badge>\n </button>\n )\n }\n return (\n <button\n key={key}\n type=\"button\"\n className=\"cursor-pointer\"\n onClick={() => {\n setOpen(false)\n navigate({ name: 'list', resourceId: citation.resourceId })\n }}\n >\n <Badge variant=\"outline\">{label}</Badge>\n </button>\n )\n })}\n </div>\n )}\n </div>\n </div>\n ))}\n {isThinking && (\n <div className=\"flex justify-start\">\n <div className=\"inline-flex items-center gap-2 rounded-2xl border border-border bg-card px-4 py-3 text-sm text-muted-foreground\">\n <Loader2 className=\"size-4 animate-spin\" />\n {progress != null\n ? t('aiAssistant:thinkingProgress', { progress })\n : t('aiAssistant:thinking')}\n </div>\n </div>\n )}\n </div>\n </ScrollArea>\n\n <div className=\"border-t border-border bg-background/95 px-3 py-2\">\n {queue.length > 0 && (\n <div className=\"mb-2 space-y-1\">\n {queue.map((item, index) => (\n <div\n key={item.id}\n className=\"flex items-center gap-2 rounded-md bg-muted/50 px-2 py-1 text-sm\"\n >\n <span className=\"shrink-0 tabular-nums text-xs text-muted-foreground\">\n ({index + 1})\n </span>\n <span className=\"flex-1 truncate\" title={item.content}>\n {item.content}\n </span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-6 shrink-0\"\n onClick={() =>\n setQueue((q) => q.filter((entry) => entry.id !== item.id))\n }\n aria-label={t('aiAssistant:queue.cancel')}\n >\n <X className=\"size-3.5\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n <form\n onSubmit={(e) => {\n e.preventDefault()\n submit()\n }}\n >\n <div className=\"flex items-center gap-1\">\n <Textarea\n value={input}\n onChange={(e) => setInput(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {\n e.preventDefault()\n submit()\n }\n }}\n rows={1}\n placeholder={t('aiAssistant:input.placeholder')}\n aria-label={t('aiAssistant:input.placeholder')}\n className={\n 'flex-1 max-h-[10rem] min-h-0 resize-none border-0 bg-transparent px-1 py-2 ' +\n 'text-sm shadow-none outline-none [field-sizing:content] ' +\n 'focus-visible:ring-0 focus-visible:ring-offset-0'\n }\n />\n <Button\n type=\"submit\"\n disabled={sendDisabled}\n aria-label={t('aiAssistant:send')}\n className=\"size-8 shrink-0 rounded-full p-0\"\n >\n <Send className=\"size-4\" />\n </Button>\n </div>\n <p className=\"px-1 pb-1 text-xs text-muted-foreground\">\n {t('aiAssistant:input.hint')}\n </p>\n </form>\n </div>\n </>\n )}\n </SheetContent>\n </Sheet>\n </>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-left-yVCaEJJu.js","names":[],"sources":["../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/arrow-left.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.31.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 __iconNode = [\n [\"path\", { d: \"m12 19-7-7 7-7\", key: \"1l729n\" }],\n [\"path\", { d: \"M19 12H5\", key: \"x3x0zl\" }]\n];\nconst ArrowLeft = createLucideIcon(\"arrow-left\", __iconNode);\n\nexport { __iconNode, ArrowLeft as default };\n//# sourceMappingURL=arrow-left.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAaA,IAAM,EAAY,EAAiB,aAAc,CAH/C,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,EAC/C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,CAEM,CAAU"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{n as i,r as a,t as o}from"./key-BzJFbNbz.js";import{n as s,t as c}from"./trash-2-BIJVpWxv.js";import{n as l,t as u}from"./pencil-kFOObGrY.js";import{t as d}from"./file-text-MQF--yeB.js";import{t as f}from"./key-round-oSqmVdkQ.js";import{t as p}from"./x-c-gfVPJa.js";import{o as m}from"./dist-DPxQeZn3.js";import{a as h,c as g,i as _,n as v,o as y,r as b,s as x,t as S}from"./calendar-BuLRvNBg.js";import{E as C,N as w,T,b as E,p as D,x as O}from"./hooks-BiOfAnEq.js";import{a as k,i as A,n as j,o as M,t as N}from"./select-BOe2daO9.js";import{a as ee,i as te,n as ne}from"./useQueries-DNUnShBb.js";import{a as P,i as F,n as I,t as L}from"./card-BYbadRar.js";import{a as R,i as re,n as ie,r as z,t as B}from"./user-directory-BvmDzxsG.js";import{Et as ae,Y as V,ft as oe,i as H,mt as se,nt as U}from"./index-CASCzvYu.js";var W=e(t(),1),G=n(),K=`yyyy-MM-dd`,q=`MMM d, yyyy`;function J(e){if(!e)return;let t=e.length<=10?_(e,K,new Date):v(e);return x(t)?t:void 0}function Y({from:e,to:t,onChange:n,disabled:i,className:o,labels:s={}}){let c=s.placeholder??`Select date range`,l=s.apply??`Apply`,u=s.clear??`Clear`,[d,f]=W.useState(!1),[_,v]=W.useState(()=>{let n=J(e),r=J(t);return n&&r?{from:n,to:r}:void 0});W.useEffect(()=>{let n=J(e),r=J(t);v(n??r?{from:n,to:r}:void 0)},[e,t]);let[x,C]=W.useState(()=>typeof window<`u`&&window.innerWidth>=640?2:1);W.useEffect(()=>{let e=window.matchMedia(`(min-width: 640px)`),t=e=>C(e.matches?2:1);return C(e.matches?2:1),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[w,T]=W.useState(()=>{let t=J(e);return y(t??new Date)}),[E,D]=W.useState(()=>{let n=J(e),r=J(t),i=y(n??new Date);return r&&!b(i,r)?y(r):g(i,1)}),O=n=>{if(n){let n=J(e),r=J(t);v(n&&r?{from:n,to:r}:void 0);let i=y(n??new Date),a=r&&!b(i,r)?y(r):g(i,1);T(i),D(a)}else{let n=J(e),r=J(t);v(n??r?{from:n,to:r}:void 0)}f(n)},k=e=>{T(e),!b(e,E)&&e>E&&D(g(e,1))},A=e=>{D(e),!b(e,w)&&e<w&&T(g(e,-1))},j=e=>{v(e)},M=()=>{_?.from&&n(h(_.from,K),_.to?h(_.to,K):``),f(!1)},N=()=>{v(void 0),n(``,``),f(!1)},P=e=>{e.stopPropagation(),v(void 0),n(``,``)},F=J(e),I=J(t),L=!!(e||t),R=L?[F?h(F,q):`…`,I?h(I,q):`…`].join(` – `):null;return(0,G.jsxs)(ne,{open:d,onOpenChange:O,children:[(0,G.jsx)(ee,{asChild:!0,children:(0,G.jsxs)(m,{type:`button`,variant:`outline`,disabled:i,className:r(`h-9 w-full justify-start gap-2 px-3 font-normal`,!L&&`text-muted-foreground`,o),children:[(0,G.jsx)(a,{className:`size-4 shrink-0 opacity-60`}),(0,G.jsx)(`span`,{className:`flex-1 truncate text-left text-sm`,children:R??c}),L&&(0,G.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":u,onClick:P,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&P(e)},className:`ml-1 rounded-sm p-0.5 opacity-50 hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:(0,G.jsx)(p,{className:`size-3.5`})})]})}),(0,G.jsxs)(te,{className:`w-auto p-0`,align:`start`,children:[x===2?(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row`,children:[(0,G.jsx)(S,{mode:`range`,selected:_,onSelect:j,numberOfMonths:1,month:w,onMonthChange:k,endMonth:E,autoFocus:!0}),(0,G.jsx)(S,{mode:`range`,selected:_,onSelect:j,numberOfMonths:1,month:E,onMonthChange:A,startMonth:w})]}):(0,G.jsx)(S,{mode:`range`,selected:_,onSelect:j,numberOfMonths:1,defaultMonth:_?.from??_?.to??void 0,autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-3 py-2`,children:[(0,G.jsx)(m,{variant:`ghost`,size:`sm`,onClick:N,children:u}),(0,G.jsx)(m,{size:`sm`,onClick:M,disabled:!_?.from,children:l})]})]})]})}Y.displayName=`DateRangeInput`;var X=`__all__`,ce=[`new`,`edit`,`delete`,`bulkDelete`,`login`,`apiKey.create`,`apiKey.update`,`apiKey.delete`],Z={__auth__:`audit:virtualResource.auth`,__api_keys__:`audit:virtualResource.apiKeys`},le={Icon:d,iconClass:`text-muted-foreground`,bgClass:`bg-muted`,titleKey:``},Q={new:{Icon:i,iconClass:`text-blue-600 dark:text-blue-300`,bgClass:`bg-blue-100 dark:bg-blue-950/40`,titleKey:`audit:action.new`},edit:{Icon:u,iconClass:`text-emerald-600 dark:text-emerald-300`,bgClass:`bg-emerald-100 dark:bg-emerald-950/40`,titleKey:`audit:action.edit`},delete:{Icon:c,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.delete`},bulkDelete:{Icon:c,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.bulkDelete`},login:{Icon:oe,iconClass:`text-violet-600 dark:text-violet-300`,bgClass:`bg-violet-100 dark:bg-violet-950/40`,titleKey:`audit:action.login`},"apiKey.create":{Icon:o,iconClass:`text-amber-600 dark:text-amber-300`,bgClass:`bg-amber-100 dark:bg-amber-950/40`,titleKey:`audit:action.apiKeyCreate`},"apiKey.update":{Icon:f,iconClass:`text-amber-600 dark:text-amber-300`,bgClass:`bg-amber-100 dark:bg-amber-950/40`,titleKey:`audit:action.apiKeyUpdate`},"apiKey.delete":{Icon:c,iconClass:`text-rose-600 dark:text-rose-300`,bgClass:`bg-rose-100 dark:bg-rose-950/40`,titleKey:`audit:action.apiKeyDelete`}};function ue(e){let t=W.useMemo(()=>new Intl.RelativeTimeFormat(e,{numeric:`auto`}),[e]),n=W.useMemo(()=>new Intl.DateTimeFormat(e,{dateStyle:`medium`,timeStyle:`short`}),[e]);return W.useCallback((e,r)=>{let i=Math.round((r-e)/1e3);return i<45?t.format(-Math.max(i,0),`second`):i<3600?t.format(-Math.round(i/60),`minute`):i<86400?t.format(-Math.round(i/3600),`hour`):i<604800?t.format(-Math.round(i/86400),`day`):n.format(new Date(e))},[n,t])}var de=e=>{let t=e.split(/\s+|[._@-]/).filter(Boolean);return t.length===0?`?`:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[1][0]).toUpperCase()},$=25;function fe(){let{t:e,locale:t}=w(),n=C(),[r,i]=W.useState({}),a=D(r,$),o=W.useMemo(()=>(a.data?.pages??[]).flatMap(e=>e.events.slice(0,$)),[a.data]),s=W.useMemo(()=>Array.from(new Set(o.map(e=>e.userId).filter(e=>!!e))),[o]),c=ie(s),l=W.useMemo(()=>{let e={};for(let t of n)e[t.id]=t;return e},[n]),u=n.some(e=>e.id===B),d=ue(t),f=W.useCallback(e=>new Intl.DateTimeFormat(t,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)),[t]),p=W.useMemo(()=>Date.now(),[o]),m=W.useRef(null),{hasNextPage:h,isFetchingNextPage:g,fetchNextPage:_}=a;W.useEffect(()=>{let e=m.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&h&&!g&&_()},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[h,g,_]);let v=e=>{i(t=>({...t,...e}))};return(0,G.jsxs)(`div`,{className:`space-y-2 sm:space-y-4`,children:[(0,G.jsxs)(L,{children:[(0,G.jsx)(F,{children:(0,G.jsx)(P,{children:e(`audit:title`)})}),(0,G.jsxs)(I,{className:`grid gap-3 sm:grid-cols-2 md:grid-cols-4`,children:[(0,G.jsxs)(N,{value:r.resourceId??X,onValueChange:e=>v({resourceId:e===X?void 0:e}),children:[(0,G.jsx)(k,{"aria-label":e(`audit:resource`),children:(0,G.jsx)(M,{})}),(0,G.jsxs)(j,{children:[(0,G.jsx)(A,{value:X,children:e(`audit:allResources`)}),Object.entries(Z).map(([t,n])=>(0,G.jsx)(A,{value:t,children:e(n)},t)),n.map(e=>(0,G.jsxs)(A,{value:e.id,children:[e.name,e.name!==e.id&&(0,G.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]}),(0,G.jsxs)(N,{value:r.actions?.[0]??X,onValueChange:e=>v({actions:e===X?void 0:[e]}),children:[(0,G.jsx)(k,{"aria-label":e(`audit:action`),children:(0,G.jsx)(M,{})}),(0,G.jsxs)(j,{children:[(0,G.jsx)(A,{value:X,children:e(`audit:allActions`)}),ce.map(t=>{let n=Q[t];return(0,G.jsx)(A,{value:t,children:n?.titleKey?e(n.titleKey):t},t)})]})]}),(0,G.jsx)(U,{value:r.recordId??``,placeholder:e(`audit:recordId`),onChange:e=>v({recordId:e.target.value||void 0})}),(0,G.jsx)(U,{value:r.userId??``,placeholder:e(`audit:userId`),onChange:e=>v({userId:e.target.value||void 0})}),(0,G.jsx)(Y,{from:r.from,to:r.to,onChange:(e,t)=>v({from:e||void 0,to:t||void 0}),className:`sm:col-span-2 md:col-span-4`,labels:{placeholder:e(`audit:dateRangePlaceholder`),apply:e(`common:apply`),clear:e(`common:clear`)}})]})]}),(0,G.jsx)(L,{children:(0,G.jsxs)(I,{children:[a.isLoading?(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(V,{className:`h-20 w-full`}),(0,G.jsx)(V,{className:`h-20 w-full`}),(0,G.jsx)(V,{className:`h-20 w-full`})]}):a.isError?(0,G.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:e(`audit:loadError`)}):o.length===0?(0,G.jsx)(`div`,{className:`rounded-md border border-dashed border-border p-6 text-center text-sm text-muted-foreground`,children:e(`audit:noEvents`)}):(0,G.jsx)(`ol`,{className:`space-y-3`,children:o.map((e,t)=>(0,G.jsx)(pe,{entry:e,resource:l[e.resourceId],user:e.userId?c.get(e.userId)??null:null,userResourceId:u?B:void 0,now:p,formatRelative:d,formatAbsolute:f},e.id??`${e.at}:${t}`))}),(0,G.jsx)(`div`,{ref:m,className:`h-1`,"aria-hidden":!0}),a.isFetchingNextPage&&(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(se,{className:`size-5 animate-spin text-muted-foreground`})})]})})]})}function pe({entry:e,resource:t,user:n,userResourceId:i,now:a,formatRelative:o,formatAbsolute:c}){let{t:u}=w(),[d,f]=W.useState(!1),p=Q[e.action]??le,h=p.Icon,g=p.titleKey?u(p.titleKey):e.action,_=e.userId??u(`history:unknownUser`),v=z(n,_),y=u(`audit:by`,{user:`\0`}).split(`\0`),b=y[0]??``,x=y[1]??``,S=Z[e.resourceId],C=S?u(S):t?.name??e.resourceId,T=e.action===`edit`&&!!e.recordId;return(0,G.jsx)(`li`,{className:`rounded-lg border border-border bg-card p-4 shadow-sm`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`span`,{className:r(`flex size-10 shrink-0 items-center justify-center rounded-full`,p.bgClass),children:(0,G.jsx)(h,{className:r(`size-5`,p.iconClass)})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`truncate text-sm font-semibold`,children:g}),(0,G.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:C}),e.recordId&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{"aria-hidden":!0,children:`·`}),t?(0,G.jsxs)(H,{to:{name:`show`,resourceId:e.resourceId,recordId:e.recordId},className:`inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-[11px] text-foreground hover:underline`,title:e.recordId,children:[(0,G.jsx)(`span`,{className:`truncate max-w-[12rem]`,children:e.recordTitle??`#${e.recordId}`}),(0,G.jsx)(l,{className:`size-3 shrink-0`})]}):e.recordTitle?(0,G.jsx)(`span`,{className:`truncate max-w-[12rem] rounded bg-muted px-1.5 py-0.5 text-[11px] text-foreground`,title:e.recordId,children:e.recordTitle}):null]}),!e.recordId&&e.recordIds?.length?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,G.jsxs)(`span`,{children:[e.recordIds.length,` `,u(`audit:records`)]})]}):null]}),(0,G.jsxs)(`p`,{className:`mt-1 flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,G.jsx)(`span`,{"aria-hidden":!0,className:`inline-flex size-5 shrink-0 items-center justify-center rounded-full bg-primary/10 text-[10px] font-semibold text-primary`,children:de(v)}),(0,G.jsxs)(`span`,{className:`truncate`,children:[b,i&&e.userId?(0,G.jsx)(H,{to:{name:`show`,resourceId:i,recordId:e.userId},className:`font-medium text-foreground hover:underline`,children:v}):v,x]})]})]}),(0,G.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground`,dateTime:new Date(e.at).toISOString(),title:c(e.at),children:o(e.at,a)})]}),T&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(m,{variant:`ghost`,size:`sm`,className:`-ml-2 h-7 px-2 text-xs`,onClick:()=>f(e=>!e),"aria-expanded":d,children:[d?(0,G.jsx)(s,{className:`size-3.5`}):(0,G.jsx)(ae,{className:`size-3.5`}),u(d?`audit:hideChanges`:`audit:viewChanges`)]}),d&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsx)(me,{resourceId:e.resourceId,recordId:e.recordId,atMs:e.at})})]})]})]})})}function me({resourceId:e,recordId:t,atMs:n}){let{t:r}=w(),i=T(e),a=O(e,t,{limit:50}),o=E(e,t),s=W.useMemo(()=>{let e={};for(let t of i?.properties??[])e[t.path]=t.label;return e},[i]);if(a.isLoading)return(0,G.jsx)(V,{className:`h-16 w-full`});if(a.isError)return(0,G.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive`,children:r(`audit:loadDiffError`)});let c=ge(a.data?.revisions??[],n);if(!c)return(0,G.jsx)(`div`,{className:`rounded-md border border-dashed border-border p-3 text-xs text-muted-foreground`,children:r(`audit:noDiff`)});let l=re(c.snapshotBefore??{},c.snapshot).map(e=>({...e,label:s[e.path]})),u=o.data?.record?.title;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[u&&u!==t&&(0,G.jsx)(`p`,{className:`truncate text-xs text-muted-foreground`,title:u,children:u}),(0,G.jsx)(R,{fields:l,labels:{added:r(`diff:added`),changed:r(`diff:changed`),removed:r(`diff:removed`),before:r(`diff:before`),after:r(`diff:after`),noChanges:r(`diff:noChanges`)}})]})}var he=6e4,ge=(e,t)=>{let n=null,r=1/0;for(let i of e){let e=new Date(i.createdAt).getTime();if(Number.isNaN(e))continue;let a=Math.abs(e-t);a<r&&a<=he&&(r=a,n=i)}return n};export{fe as AuditLogPage};
|
|
2
|
-
//# sourceMappingURL=audit-log-page-uHj9GWfi.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log-page-uHj9GWfi.js","names":[],"sources":["../../../../ui/src/components/date-range-input.tsx","../../../../react/src/pages/audit-log-page.tsx"],"sourcesContent":["// Popover-driven date-range picker.\n// A single trigger button shows the selected range (or placeholder);\n// clicking opens a popover with a two-month Calendar in range mode.\n// On narrow screens the calendar collapses to a single month.\n//\n// UX notes:\n// - The picker NEVER auto-closes on date selection — the user confirms\n// explicitly via the \"Apply\" button. This prevents the \"first click\n// closes the picker\" bug that occurs when a partial pending range\n// (from without to) is in state and the next click completes it.\n// - \"Clear\" inside the popover empties the range and closes.\n// - The X inline in the trigger clears directly without opening the picker.\n// - On open: only a COMPLETE committed range (both ends) is mirrored into\n// the calendar state so the user can edit from a known baseline.\n// A committed partial range (from only) resets to blank to avoid\n// accidentally completing it on the first click.\n// - Escape / click-outside discards in-progress selection and reverts to\n// the last committed range.\n//\n// i18n-unaware by design: all visible strings are passed via `labels`.\n\nimport * as React from 'react'\nimport { addMonths, format, isSameMonth, isValid, parse, parseISO, startOfMonth } from 'date-fns'\nimport { CalendarRange, X } from 'lucide-react'\nimport type { DateRange } from 'react-day-picker'\nimport { cn } from '../lib/utils.js'\nimport { Button } from './button.js'\nimport { Calendar } from './calendar.js'\nimport { Popover, PopoverContent, PopoverTrigger } from './popover.js'\n\nconst DATE_FMT = 'yyyy-MM-dd'\nconst DISPLAY_FMT = 'MMM d, yyyy'\n\nfunction parseDate(value: string | null | undefined): Date | undefined {\n if (!value) return undefined\n const d = value.length <= 10 ? parse(value, DATE_FMT, new Date()) : parseISO(value)\n return isValid(d) ? d : undefined\n}\n\nexport interface DateRangeInputLabels {\n /** Shown in the trigger when nothing is selected. */\n placeholder?: string\n /** \"Apply\" button inside the popover footer. */\n apply?: string\n /** \"Clear\" button inside the popover footer + aria-label for the inline X. */\n clear?: string\n}\n\nexport interface DateRangeInputProps {\n from: string | null | undefined\n to: string | null | undefined\n onChange(from: string, to: string): void\n disabled?: boolean\n className?: string\n labels?: DateRangeInputLabels\n}\n\nexport function DateRangeInput({\n from,\n to,\n onChange,\n disabled,\n className,\n labels = {},\n}: DateRangeInputProps): React.ReactElement {\n const placeholder = labels.placeholder ?? 'Select date range'\n const applyLabel = labels.apply ?? 'Apply'\n const clearLabel = labels.clear ?? 'Clear'\n\n const [open, setOpen] = React.useState(false)\n\n // Calendar selection in progress. Committed to onChange only via Apply.\n const [pending, setPending] = React.useState<DateRange | undefined>(() => {\n const f = parseDate(from)\n const t = parseDate(to)\n // Only restore a complete range on init — partial ranges start fresh.\n return f && t ? { from: f, to: t } : undefined\n })\n\n // Keep pending in sync when props change externally (e.g. programmatic reset).\n React.useEffect(() => {\n const f = parseDate(from)\n const t = parseDate(to)\n setPending(f ?? t ? { from: f, to: t } : undefined)\n }, [from, to])\n\n // Number of calendar months — 1 on narrow, 2 on wide viewports.\n const [months, setMonths] = React.useState(() =>\n typeof window !== 'undefined' && window.innerWidth >= 640 ? 2 : 1,\n )\n React.useEffect(() => {\n const mq = window.matchMedia('(min-width: 640px)')\n const handle = (e: MediaQueryListEvent): void => setMonths(e.matches ? 2 : 1)\n setMonths(mq.matches ? 2 : 1)\n mq.addEventListener('change', handle)\n return () => mq.removeEventListener('change', handle)\n }, [])\n\n // Independent navigation for the two-panel layout. Each panel keeps its\n // own visible month; the dropdowns on the right are constrained to\n // months >= left (and the left to months <= right) so the panels can\n // never cross over. State is (re)initialised from the committed range\n // every time the popover opens (see `handleOpenChange`).\n const [leftMonth, setLeftMonth] = React.useState<Date>(() => {\n const f = parseDate(from)\n return startOfMonth(f ?? new Date())\n })\n const [rightMonth, setRightMonth] = React.useState<Date>(() => {\n const f = parseDate(from)\n const t = parseDate(to)\n const left = startOfMonth(f ?? new Date())\n return t && !isSameMonth(left, t) ? startOfMonth(t) : addMonths(left, 1)\n })\n\n const handleOpenChange = (next: boolean): void => {\n if (next) {\n // On open: only restore a COMPLETE committed range so the user sees\n // their previous selection as a starting point. A partial range\n // (from without to) is intentionally dropped — carrying it over\n // would cause the very next calendar click to \"complete\" the range\n // and trigger an immediate commit + close.\n const f = parseDate(from)\n const t = parseDate(to)\n setPending(f && t ? { from: f, to: t } : undefined)\n // Re-derive panel navigation from the committed range so reopening\n // always lands the user on the months they were last looking at —\n // independently for the left and right panels.\n const left = startOfMonth(f ?? new Date())\n const right = t && !isSameMonth(left, t)\n ? startOfMonth(t)\n : addMonths(left, 1)\n setLeftMonth(left)\n setRightMonth(right)\n } else {\n // Closed without Apply (Escape / outside click) — discard in-progress\n // selection and revert to the last committed values.\n const f = parseDate(from)\n const t = parseDate(to)\n setPending(f ?? t ? { from: f, to: t } : undefined)\n }\n setOpen(next)\n }\n\n // Navigation guards. The right panel can never cross above the left's\n // month, and the left can never cross above the right's. If a user\n // navigates the LEFT forward past the right (via the prev/next arrow\n // when the dropdown bounds don't disable it), push the right one month\n // ahead; symmetric for the right going below the left.\n const handleLeftMonthChange = (next: Date): void => {\n setLeftMonth(next)\n if (!isSameMonth(next, rightMonth) && next > rightMonth) {\n setRightMonth(addMonths(next, 1))\n }\n }\n const handleRightMonthChange = (next: Date): void => {\n setRightMonth(next)\n if (!isSameMonth(next, leftMonth) && next < leftMonth) {\n setLeftMonth(addMonths(next, -1))\n }\n }\n\n // Update the in-progress selection; never auto-commit.\n const handleSelect = (range: DateRange | undefined): void => {\n setPending(range)\n }\n\n // Commit whatever is pending (at minimum a start date) and close.\n const handleApply = (): void => {\n if (pending?.from) {\n onChange(\n format(pending.from, DATE_FMT),\n pending.to ? format(pending.to, DATE_FMT) : '',\n )\n }\n setOpen(false)\n }\n\n // Clear inside the popover: empty the committed range and close.\n const handleClearPopover = (): void => {\n setPending(undefined)\n onChange('', '')\n setOpen(false)\n }\n\n // Inline X on the trigger: clear committed range without opening the picker.\n const handleClearInline = (e: React.MouseEvent): void => {\n e.stopPropagation()\n setPending(undefined)\n onChange('', '')\n }\n\n const fromDate = parseDate(from)\n const toDate = parseDate(to)\n const hasValue = !!(from || to)\n\n const displayText = hasValue\n ? [\n fromDate ? format(fromDate, DISPLAY_FMT) : '…',\n toDate ? format(toDate, DISPLAY_FMT) : '…',\n ].join(' – ')\n : null\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n 'h-9 w-full justify-start gap-2 px-3 font-normal',\n !hasValue && 'text-muted-foreground',\n className,\n )}\n >\n <CalendarRange className=\"size-4 shrink-0 opacity-60\" />\n <span className=\"flex-1 truncate text-left text-sm\">\n {displayText ?? placeholder}\n </span>\n {hasValue && (\n <span\n role=\"button\"\n tabIndex={0}\n aria-label={clearLabel}\n onClick={handleClearInline}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleClearInline(e as unknown as React.MouseEvent)\n }\n }}\n className=\"ml-1 rounded-sm p-0.5 opacity-50 hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <X className=\"size-3.5\" />\n </span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n {months === 2 ? (\n // Two-panel layout: each Calendar is a fully independent single-\n // month instance with its own controlled `month` state. The left\n // panel's dropdowns can't reach past the right panel's month\n // (and vice versa) thanks to the shared start/end-month bounds.\n // Range selection still spans both panels because they share\n // the same `selected` + `onSelect`.\n <div className=\"flex flex-col sm:flex-row\">\n <Calendar\n mode=\"range\"\n selected={pending}\n onSelect={handleSelect}\n numberOfMonths={1}\n month={leftMonth}\n onMonthChange={handleLeftMonthChange}\n endMonth={rightMonth}\n autoFocus\n />\n <Calendar\n mode=\"range\"\n selected={pending}\n onSelect={handleSelect}\n numberOfMonths={1}\n month={rightMonth}\n onMonthChange={handleRightMonthChange}\n startMonth={leftMonth}\n />\n </div>\n ) : (\n <Calendar\n mode=\"range\"\n selected={pending}\n onSelect={handleSelect}\n numberOfMonths={1}\n // react-day-picker doesn't auto-navigate to the selected range on\n // mount — it stays on today's month. The popover re-mounts the\n // Calendar each time it opens, so deriving `defaultMonth` from\n // the (already-restored) pending range puts the user back where\n // they left off without controlling navigation explicitly.\n defaultMonth={pending?.from ?? pending?.to ?? undefined}\n autoFocus\n />\n )}\n <div className=\"flex items-center justify-between border-t border-border px-3 py-2\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClearPopover}>\n {clearLabel}\n </Button>\n <Button size=\"sm\" onClick={handleApply} disabled={!pending?.from}>\n {applyLabel}\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nDateRangeInput.displayName = 'DateRangeInput'\n","import * as React from 'react'\nimport { diffSnapshots } from '@modern-admin/core'\nimport {\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n DateRangeInput,\n DiffView,\n Input,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Skeleton,\n cn,\n} from '@modern-admin/ui'\nimport { ChevronDown, ChevronUp, ExternalLink, FilePlus, FileText, Key, KeyRound, Loader2, LogIn, Pencil, Trash2 } from 'lucide-react'\nimport { useInfiniteAuditLog, useRecord, useRecordHistory, useResource, useResources } from '../hooks.js'\nimport { useI18n } from '../i18n.js'\nimport { Link } from '../router.js'\nimport { USERS_RESOURCE_ID, useUserDirectory, userLabelOf } from '../user-directory.js'\nimport type {\n AuditLogEntry,\n AuditLogQuery,\n HistoryDiffEntry,\n HistoryRevision,\n} from '../client.js'\nimport type { RecordJSON, ResourceJSON } from '../types.js'\n\nconst ALL = '__all__'\nconst ACTIONS = ['new', 'edit', 'delete', 'bulkDelete', 'login', 'apiKey.create', 'apiKey.update', 'apiKey.delete']\n/** Virtual resource IDs that don't map to ORM resources. */\nconst VIRTUAL_RESOURCE_LABELS: Record<string, string> = {\n __auth__: 'audit:virtualResource.auth',\n __api_keys__: 'audit:virtualResource.apiKeys',\n}\ninterface ActionStyle {\n Icon: React.ComponentType<{ className?: string }>\n iconClass: string\n bgClass: string\n titleKey: string\n}\n\nconst FALLBACK_STYLE: ActionStyle = {\n Icon: FileText,\n iconClass: 'text-muted-foreground',\n bgClass: 'bg-muted',\n titleKey: '',\n}\n\nconst ACTION_STYLES: Record<string, ActionStyle> = {\n new: {\n Icon: FilePlus,\n iconClass: 'text-blue-600 dark:text-blue-300',\n bgClass: 'bg-blue-100 dark:bg-blue-950/40',\n titleKey: 'audit:action.new',\n },\n edit: {\n Icon: Pencil,\n iconClass: 'text-emerald-600 dark:text-emerald-300',\n bgClass: 'bg-emerald-100 dark:bg-emerald-950/40',\n titleKey: 'audit:action.edit',\n },\n delete: {\n Icon: Trash2,\n iconClass: 'text-rose-600 dark:text-rose-300',\n bgClass: 'bg-rose-100 dark:bg-rose-950/40',\n titleKey: 'audit:action.delete',\n },\n bulkDelete: {\n Icon: Trash2,\n iconClass: 'text-rose-600 dark:text-rose-300',\n bgClass: 'bg-rose-100 dark:bg-rose-950/40',\n titleKey: 'audit:action.bulkDelete',\n },\n login: {\n Icon: LogIn,\n iconClass: 'text-violet-600 dark:text-violet-300',\n bgClass: 'bg-violet-100 dark:bg-violet-950/40',\n titleKey: 'audit:action.login',\n },\n 'apiKey.create': {\n Icon: Key,\n iconClass: 'text-amber-600 dark:text-amber-300',\n bgClass: 'bg-amber-100 dark:bg-amber-950/40',\n titleKey: 'audit:action.apiKeyCreate',\n },\n 'apiKey.update': {\n Icon: KeyRound,\n iconClass: 'text-amber-600 dark:text-amber-300',\n bgClass: 'bg-amber-100 dark:bg-amber-950/40',\n titleKey: 'audit:action.apiKeyUpdate',\n },\n 'apiKey.delete': {\n Icon: Trash2,\n iconClass: 'text-rose-600 dark:text-rose-300',\n bgClass: 'bg-rose-100 dark:bg-rose-950/40',\n titleKey: 'audit:action.apiKeyDelete',\n },\n}\n\n/** Format `entry.at` (unix-ms) as a relative phrase like \"2m ago\", falling\n * back to absolute date for entries older than a week. Uses\n * `Intl.RelativeTimeFormat` so output is locale-aware. */\nfunction useRelativeTimeFormatter(\n locale: string,\n): (atMs: number, nowMs: number) => string {\n const rtf = React.useMemo(\n () => new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }),\n [locale],\n )\n const dtf = React.useMemo(\n () => new Intl.DateTimeFormat(locale, { dateStyle: 'medium', timeStyle: 'short' }),\n [locale],\n )\n return React.useCallback(\n (atMs, nowMs) => {\n const sec = Math.round((nowMs - atMs) / 1000)\n if (sec < 45) return rtf.format(-Math.max(sec, 0), 'second')\n if (sec < 3600) return rtf.format(-Math.round(sec / 60), 'minute')\n if (sec < 86400) return rtf.format(-Math.round(sec / 3600), 'hour')\n if (sec < 86400 * 7) return rtf.format(-Math.round(sec / 86400), 'day')\n return dtf.format(new Date(atMs))\n },\n [dtf, rtf],\n )\n}\n\nconst initialsOf = (label: string): string => {\n const parts = label.split(/\\s+|[._@-]/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0]!.slice(0, 2).toUpperCase()\n return (parts[0]![0]! + parts[1]![0]!).toUpperCase()\n}\n\nconst PAGE_SIZE = 25\n\nexport function AuditLogPage(): React.ReactElement {\n const { t, locale } = useI18n()\n const resources = useResources()\n const [filters, setFilters] = React.useState<Omit<AuditLogQuery, 'before' | 'limit' | 'offset'>>({})\n\n const log = useInfiniteAuditLog(filters, PAGE_SIZE)\n\n // Flatten all pages into one list, trimming the sentinel \"+1\" entry from each page\n const events = React.useMemo(\n () =>\n (log.data?.pages ?? []).flatMap((page) => page.events.slice(0, PAGE_SIZE)),\n [log.data],\n )\n\n const userIds = React.useMemo(\n () => Array.from(new Set(events.map((e) => e.userId).filter((v): v is string => !!v))),\n [events],\n )\n const users = useUserDirectory(userIds)\n\n const resourceMap = React.useMemo(() => {\n const map: Record<string, ResourceJSON> = {}\n for (const r of resources) map[r.id] = r\n return map\n }, [resources])\n\n const userResourceExists = resources.some((r) => r.id === USERS_RESOURCE_ID)\n\n const formatRelative = useRelativeTimeFormatter(locale)\n const formatAbsolute = React.useCallback(\n (value: number) =>\n new Intl.DateTimeFormat(locale, { dateStyle: 'medium', timeStyle: 'short' }).format(new Date(value)),\n [locale],\n )\n\n // `now` is a snapshot for relative-time labels — we want it to refresh\n // whenever a new page of events arrives, even though `events` is not read\n // inside the callback.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const now = React.useMemo(() => Date.now(), [events])\n\n // IntersectionObserver sentinel — triggers next page load when visible\n const sentinelRef = React.useRef<HTMLDivElement>(null)\n const { hasNextPage, isFetchingNextPage, fetchNextPage } = log\n React.useEffect(() => {\n const el = sentinelRef.current\n if (!el) return\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0]?.isIntersecting && hasNextPage && !isFetchingNextPage) {\n void fetchNextPage()\n }\n },\n { rootMargin: '200px' },\n )\n observer.observe(el)\n return () => observer.disconnect()\n }, [hasNextPage, isFetchingNextPage, fetchNextPage])\n\n const resetFilters = (patch: Partial<typeof filters>): void => {\n setFilters((prev) => ({ ...prev, ...patch }))\n }\n\n return (\n <div className=\"space-y-2 sm:space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle>{t('audit:title')}</CardTitle>\n </CardHeader>\n <CardContent className=\"grid gap-3 sm:grid-cols-2 md:grid-cols-4\">\n <Select\n value={filters.resourceId ?? ALL}\n onValueChange={(v) => resetFilters({ resourceId: v === ALL ? undefined : v })}\n >\n <SelectTrigger aria-label={t('audit:resource')}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={ALL}>{t('audit:allResources')}</SelectItem>\n {Object.entries(VIRTUAL_RESOURCE_LABELS).map(([id, key]) => (\n <SelectItem key={id} value={id}>{t(key)}</SelectItem>\n ))}\n {resources.map((resource) => (\n <SelectItem key={resource.id} value={resource.id}>\n {resource.name}\n {resource.name !== resource.id && (\n <span className=\"ml-1.5 text-xs text-muted-foreground\">({resource.id})</span>\n )}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n value={filters.actions?.[0] ?? ALL}\n onValueChange={(v) => resetFilters({ actions: v === ALL ? undefined : [v] })}\n >\n <SelectTrigger aria-label={t('audit:action')}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={ALL}>{t('audit:allActions')}</SelectItem>\n {ACTIONS.map((action) => {\n const style = ACTION_STYLES[action]\n return (\n <SelectItem key={action} value={action}>\n {style?.titleKey ? t(style.titleKey) : action}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n <Input\n value={filters.recordId ?? ''}\n placeholder={t('audit:recordId')}\n onChange={(e) => resetFilters({ recordId: e.target.value || undefined })}\n />\n <Input\n value={filters.userId ?? ''}\n placeholder={t('audit:userId')}\n onChange={(e) => resetFilters({ userId: e.target.value || undefined })}\n />\n <DateRangeInput\n from={filters.from}\n to={filters.to}\n onChange={(from, to) =>\n resetFilters({ from: from || undefined, to: to || undefined })\n }\n className=\"sm:col-span-2 md:col-span-4\"\n labels={{\n placeholder: t('audit:dateRangePlaceholder'),\n apply: t('common:apply'),\n clear: t('common:clear'),\n }}\n />\n </CardContent>\n </Card>\n <Card>\n <CardContent>\n {log.isLoading ? (\n <div className=\"space-y-3\">\n <Skeleton className=\"h-20 w-full\" />\n <Skeleton className=\"h-20 w-full\" />\n <Skeleton className=\"h-20 w-full\" />\n </div>\n ) : log.isError ? (\n <div className=\"rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive\">\n {t('audit:loadError')}\n </div>\n ) : events.length === 0 ? (\n <div className=\"rounded-md border border-dashed border-border p-6 text-center text-sm text-muted-foreground\">\n {t('audit:noEvents')}\n </div>\n ) : (\n <ol className=\"space-y-3\">\n {events.map((entry, i) => (\n <AuditEntryCard\n key={entry.id ?? `${entry.at}:${i}`}\n entry={entry}\n resource={resourceMap[entry.resourceId]}\n user={entry.userId ? users.get(entry.userId) ?? null : null}\n userResourceId={userResourceExists ? USERS_RESOURCE_ID : undefined}\n now={now}\n formatRelative={formatRelative}\n formatAbsolute={formatAbsolute}\n />\n ))}\n </ol>\n )}\n {/* Sentinel div — observed by IntersectionObserver to trigger next page */}\n <div ref={sentinelRef} className=\"h-1\" aria-hidden />\n {log.isFetchingNextPage && (\n <div className=\"flex justify-center py-4\">\n <Loader2 className=\"size-5 animate-spin text-muted-foreground\" />\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}\n\ninterface AuditEntryCardProps {\n entry: AuditLogEntry\n resource: ResourceJSON | undefined\n user: RecordJSON | null | undefined\n userResourceId?: string\n now: number\n formatRelative: (atMs: number, nowMs: number) => string\n formatAbsolute: (value: number) => string\n}\n\nfunction AuditEntryCard({\n entry,\n resource,\n user,\n userResourceId,\n now,\n formatRelative,\n formatAbsolute,\n}: AuditEntryCardProps): React.ReactElement {\n const { t } = useI18n()\n const [expanded, setExpanded] = React.useState(false)\n\n const style = ACTION_STYLES[entry.action] ?? FALLBACK_STYLE\n const Icon = style.Icon\n const title = style.titleKey ? t(style.titleKey) : entry.action\n\n const userFallback = entry.userId ?? t('history:unknownUser')\n const userLabel = userLabelOf(user, userFallback)\n\n const byTpl = t('audit:by', { user: '\\u0000' })\n const byParts = byTpl.split('\\u0000')\n const byPrefix = byParts[0] ?? ''\n const bySuffix = byParts[1] ?? ''\n\n const virtualResourceKey = VIRTUAL_RESOURCE_LABELS[entry.resourceId]\n const resourceLabel = virtualResourceKey\n ? t(virtualResourceKey)\n : (resource?.name ?? entry.resourceId)\n\n // Diff drill-down only makes sense when we have a single recordId AND\n // history exists for that resource (we'll discover that lazily on first\n // expand). Bulk operations and `new`/`delete` actions skip the toggle.\n const canExpand = entry.action === 'edit' && !!entry.recordId\n\n return (\n <li className=\"rounded-lg border border-border bg-card p-4 shadow-sm\">\n <div className=\"flex items-start gap-3\">\n <span\n className={cn(\n 'flex size-10 shrink-0 items-center justify-center rounded-full',\n style.bgClass,\n )}\n >\n <Icon className={cn('size-5', style.iconClass)} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-semibold\">{title}</p>\n <div className=\"mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs text-muted-foreground\">\n <span className=\"font-medium\">{resourceLabel}</span>\n {entry.recordId && (\n <>\n <span aria-hidden>·</span>\n {resource ? (\n <Link\n to={{\n name: 'show',\n resourceId: entry.resourceId,\n recordId: entry.recordId,\n }}\n className=\"inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-[11px] text-foreground hover:underline\"\n title={entry.recordId}\n >\n <span className=\"truncate max-w-[12rem]\">\n {entry.recordTitle ?? `#${entry.recordId}`}\n </span>\n <ExternalLink className=\"size-3 shrink-0\" />\n </Link>\n ) : entry.recordTitle ? (\n <span\n className=\"truncate max-w-[12rem] rounded bg-muted px-1.5 py-0.5 text-[11px] text-foreground\"\n title={entry.recordId}\n >\n {entry.recordTitle}\n </span>\n ) : null}\n </>\n )}\n {!entry.recordId && entry.recordIds?.length ? (\n <>\n <span aria-hidden>·</span>\n <span>\n {entry.recordIds.length} {t('audit:records')}\n </span>\n </>\n ) : null}\n </div>\n <p className=\"mt-1 flex items-center gap-1.5 text-xs text-muted-foreground\">\n <span\n aria-hidden\n className=\"inline-flex size-5 shrink-0 items-center justify-center rounded-full bg-primary/10 text-[10px] font-semibold text-primary\"\n >\n {initialsOf(userLabel)}\n </span>\n <span className=\"truncate\">\n {byPrefix}\n {userResourceId && entry.userId ? (\n <Link\n to={{ name: 'show', resourceId: userResourceId, recordId: entry.userId }}\n className=\"font-medium text-foreground hover:underline\"\n >\n {userLabel}\n </Link>\n ) : (\n userLabel\n )}\n {bySuffix}\n </span>\n </p>\n </div>\n <time\n className=\"shrink-0 text-xs text-muted-foreground\"\n dateTime={new Date(entry.at).toISOString()}\n title={formatAbsolute(entry.at)}\n >\n {formatRelative(entry.at, now)}\n </time>\n </div>\n {canExpand && (\n <div className=\"mt-3\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-2 h-7 px-2 text-xs\"\n onClick={() => setExpanded((x) => !x)}\n aria-expanded={expanded}\n >\n {expanded ? (\n <ChevronUp className=\"size-3.5\" />\n ) : (\n <ChevronDown className=\"size-3.5\" />\n )}\n {expanded ? t('audit:hideChanges') : t('audit:viewChanges')}\n </Button>\n {expanded && (\n <div className=\"mt-2\">\n <AuditEntryChanges\n resourceId={entry.resourceId}\n recordId={entry.recordId!}\n atMs={entry.at}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n </li>\n )\n}\n\n/** Lazy-loaded diff for a single audit entry. Pulls the record's revision\n * history (server returns the freshest 50) and picks the revision whose\n * `createdAt` is closest to the entry's `at` timestamp. We require the\n * match to be within a 60s window to avoid showing an unrelated revision\n * when the matching one was pruned. */\nfunction AuditEntryChanges({\n resourceId,\n recordId,\n atMs,\n}: {\n resourceId: string\n recordId: string\n atMs: number\n}): React.ReactElement {\n const { t } = useI18n()\n const resource = useResource(resourceId)\n const history = useRecordHistory(resourceId, recordId, { limit: 50 })\n // Pull the live record so we can show its title (e.g. user's email) at\n // the top of the diff — helpful when the audit log lists many entries.\n const record = useRecord(resourceId, recordId)\n\n const labelByPath = React.useMemo(() => {\n const map: Record<string, string> = {}\n for (const p of resource?.properties ?? []) map[p.path] = p.label\n return map\n }, [resource])\n\n if (history.isLoading) {\n return <Skeleton className=\"h-16 w-full\" />\n }\n if (history.isError) {\n return (\n <div className=\"rounded-md border border-destructive/50 bg-destructive/10 p-3 text-xs text-destructive\">\n {t('audit:loadDiffError')}\n </div>\n )\n }\n\n const revisions = history.data?.revisions ?? []\n const target = findNearestRevision(revisions, atMs)\n\n if (!target) {\n return (\n <div className=\"rounded-md border border-dashed border-border p-3 text-xs text-muted-foreground\">\n {t('audit:noDiff')}\n </div>\n )\n }\n\n const fields: HistoryDiffEntry[] = diffSnapshots(\n target.snapshotBefore ?? {},\n target.snapshot,\n ).map((f) => ({ ...f, label: labelByPath[f.path] }))\n const recordTitle = record.data?.record?.title\n const showTitle = recordTitle && recordTitle !== recordId\n\n return (\n <div className=\"space-y-2\">\n {showTitle && (\n <p className=\"truncate text-xs text-muted-foreground\" title={recordTitle}>\n {recordTitle}\n </p>\n )}\n <DiffView\n fields={fields}\n labels={{\n added: t('diff:added'),\n changed: t('diff:changed'),\n removed: t('diff:removed'),\n before: t('diff:before'),\n after: t('diff:after'),\n noChanges: t('diff:noChanges'),\n }}\n />\n </div>\n )\n}\n\nconst TOLERANCE_MS = 60_000\n\nconst findNearestRevision = (\n revisions: ReadonlyArray<HistoryRevision>,\n atMs: number,\n): HistoryRevision | null => {\n let best: HistoryRevision | null = null\n let bestDiff = Infinity\n for (const r of revisions) {\n const t = new Date(r.createdAt).getTime()\n if (Number.isNaN(t)) continue\n const d = Math.abs(t - atMs)\n if (d < bestDiff && d <= TOLERANCE_MS) {\n bestDiff = d\n best = r\n }\n }\n return best\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"badge-CdW_Z0lB.js","names":[],"sources":["../../../../ui/src/components/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils.js'\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full border border-border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'text-foreground',\n success: 'border-transparent bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-300',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props} />\n ),\n)\nBadge.displayName = 'Badge'\n\nexport { badgeVariants }\n"],"mappings":"8KAIM,EAAgB,EACpB,uLACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,4EACT,UACE,kFACF,YACE,wFACF,QAAS,kBACT,QAAS,iGACX,CACF,EACA,gBAAiB,CAAE,QAAS,SAAU,CACxC,CACF,EAMa,EAAA,EAAc,YACxB,CAAE,YAAW,UAAS,GAAG,GAAS,KACjC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAW,MAAK,UAAW,EAAG,EAAc,CAAE,SAAQ,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEtF,EACA,EAAM,YAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bot-CuDPD_ZU.js","names":[],"sources":["../../../../../node_modules/.bun/lucide-react@1.31.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/bot.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.31.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 __iconNode = [\n [\"path\", { d: \"M12 8V4H8\", key: \"hb8ula\" }],\n [\"rect\", { width: \"16\", height: \"12\", x: \"4\", y: \"8\", rx: \"2\", key: \"enze0r\" }],\n [\"path\", { d: \"M2 14h2\", key: \"vft8re\" }],\n [\"path\", { d: \"M20 14h2\", key: \"4cs60a\" }],\n [\"path\", { d: \"M15 13v2\", key: \"1xurst\" }],\n [\"path\", { d: \"M9 13v2\", key: \"rq6x2g\" }]\n];\nconst Bot = createLucideIcon(\"bot\", __iconNode);\n\nexport { __iconNode, Bot as default };\n//# sourceMappingURL=bot.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAiBA,IAAM,EAAM,EAAiB,MAAO,CAPlC,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAS,CAAC,EAC1C,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EAC9E,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,EACxC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,CAEN,CAAU"}
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-page-CBKj7WFq.js","names":[],"sources":["../../../../react/src/pages/cache-page.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Skeleton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@modern-admin/ui'\nimport { RotateCcw, Trash2 } from 'lucide-react'\nimport {\n useCacheStats,\n useInvalidateResourceCache,\n useResetCacheStats,\n useResources,\n} from '../hooks.js'\nimport { useI18n } from '../i18n.js'\nimport { useNotify } from '../notify.js'\n\nconst sum = (values: number[]): number => values.reduce((total, value) => total + value, 0)\n\nexport function CachePage(): React.ReactElement {\n const { t, locale } = useI18n()\n const notify = useNotify()\n const resources = useResources()\n const stats = useCacheStats()\n const invalidate = useInvalidateResourceCache()\n const reset = useResetCacheStats()\n const [resourceId, setResourceId] = React.useState(resources[0]?.id ?? '')\n\n React.useEffect(() => {\n if (!resourceId && resources[0]) setResourceId(resources[0].id)\n }, [resourceId, resources])\n\n const entries = stats.data?.entries ?? []\n const hits = sum(entries.map((entry) => entry.hits))\n const misses = sum(entries.map((entry) => entry.misses))\n const requests = hits + misses\n const hitRate = requests > 0 ? (hits / requests) * 100 : 0\n const computes = sum(entries.map((entry) => entry.computes))\n const computeMs = sum(entries.map((entry) => entry.computeMs))\n const errors = sum(entries.map((entry) =>\n entry.readErrors + entry.writeErrors + entry.invalidationErrors,\n ))\n const number = React.useMemo(() => new Intl.NumberFormat(locale), [locale])\n\n const invalidateSelected = (): void => {\n if (!resourceId) return\n notify.promise(invalidate.mutateAsync(resourceId), {\n loading: { key: 'cache:invalidate.loading' },\n success: { key: 'cache:invalidate.success' },\n error: { key: 'cache:invalidate.error' },\n })\n }\n\n const resetMetrics = (): void => {\n notify.promise(reset.mutateAsync(), {\n loading: { key: 'cache:reset.loading' },\n success: { key: 'cache:reset.success' },\n error: { key: 'cache:reset.error' },\n })\n }\n\n if (stats.isLoading) {\n return (\n <div className=\"flex flex-col gap-3 pb-4 sm:gap-4 sm:pb-6\">\n <Skeleton className=\"h-24 w-full\" />\n <Skeleton className=\"h-72 w-full\" />\n </div>\n )\n }\n\n if (stats.isError) {\n return (\n <Card>\n <CardHeader>\n <CardTitle>{t('cache:load.error')}</CardTitle>\n </CardHeader>\n <CardContent>\n <Button variant=\"outline\" onClick={() => void stats.refetch()}>\n <RotateCcw data-icon=\"inline-start\" />\n {t('cache:load.retry')}\n </Button>\n </CardContent>\n </Card>\n )\n }\n\n return (\n <div className=\"flex flex-col gap-3 pb-4 sm:gap-4 sm:pb-6\">\n <Card>\n <CardHeader className=\"sm:flex-row sm:items-start sm:justify-between\">\n <div className=\"flex flex-col gap-1.5\">\n <CardTitle>{t('cache:title')}</CardTitle>\n <CardDescription>{t('cache:description')}</CardDescription>\n </div>\n <Button variant=\"outline\" size=\"sm\" disabled={reset.isPending} onClick={resetMetrics}>\n <RotateCcw data-icon=\"inline-start\" />\n {t('cache:reset.action')}\n </Button>\n </CardHeader>\n <CardContent className=\"grid grid-cols-2 gap-3 lg:grid-cols-4\">\n <Metric label={t('cache:metric.hitRate')} value={`${hitRate.toFixed(1)}%`} />\n <Metric label={t('cache:metric.requests')} value={number.format(requests)} />\n <Metric\n label={t('cache:metric.avgCompute')}\n value={computes > 0\n ? t('cache:unit.ms').replace('{value}', number.format(Math.round(computeMs / computes)))\n : '—'}\n />\n <Metric label={t('cache:metric.errors')} value={number.format(errors)} />\n </CardContent>\n </Card>\n\n {(stats.data?.dirtyTags.length ?? 0) > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>{t('cache:quarantine.title')}</CardTitle>\n <CardDescription>{t('cache:quarantine.description')}</CardDescription>\n </CardHeader>\n <CardContent className=\"flex flex-wrap gap-2\">\n {stats.data?.dirtyTags.map((tag) => (\n <Badge key={tag} variant=\"destructive\">{tag}</Badge>\n ))}\n </CardContent>\n </Card>\n )}\n\n <Card>\n <CardHeader>\n <CardTitle>{t('cache:invalidate.title')}</CardTitle>\n <CardDescription>{t('cache:invalidate.description')}</CardDescription>\n </CardHeader>\n <CardContent className=\"flex flex-col gap-2 sm:flex-row\">\n <Select value={resourceId} onValueChange={setResourceId}>\n <SelectTrigger aria-label={t('cache:invalidate.resource')} className=\"sm:max-w-sm\">\n <SelectValue placeholder={t('cache:invalidate.resource')} />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n {resources.map((resource) => (\n <SelectItem key={resource.id} value={resource.id}>{resource.name}</SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n <Button\n variant=\"outline-destructive\"\n disabled={!resourceId || invalidate.isPending}\n onClick={invalidateSelected}\n >\n <Trash2 data-icon=\"inline-start\" />\n {t('cache:invalidate.action')}\n </Button>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>{t('cache:table.title')}</CardTitle>\n <CardDescription>\n {t('cache:instance').replace('{id}', stats.data?.instanceId ?? '—')}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>{t('cache:table.namespace')}</TableHead>\n <TableHead>{t('cache:table.resource')}</TableHead>\n <TableHead>{t('cache:table.hits')}</TableHead>\n <TableHead>{t('cache:table.misses')}</TableHead>\n <TableHead>{t('cache:table.computes')}</TableHead>\n <TableHead>{t('cache:table.coalesced')}</TableHead>\n <TableHead>{t('cache:table.errors')}</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {entries.length === 0 && (\n <TableRow>\n <TableCell colSpan={7} className=\"py-8 text-center text-muted-foreground\">\n {t('cache:table.empty')}\n </TableCell>\n </TableRow>\n )}\n {entries.map((entry) => (\n <TableRow key={`${entry.namespace}:${entry.resourceId ?? '*'}`}>\n <TableCell><Badge variant=\"outline\">{entry.namespace}</Badge></TableCell>\n <TableCell>{entry.resourceId ?? '—'}</TableCell>\n <TableCell>{number.format(entry.hits)}</TableCell>\n <TableCell>{number.format(entry.misses)}</TableCell>\n <TableCell>{number.format(entry.computes)}</TableCell>\n <TableCell>{number.format(entry.coalesced)}</TableCell>\n <TableCell>\n {number.format(entry.readErrors + entry.writeErrors + entry.invalidationErrors)}\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n </div>\n )\n}\n\nfunction Metric({ label, value }: { label: string; value: string }): React.ReactElement {\n return (\n <div className=\"flex flex-col gap-1 rounded-md border border-border p-3\">\n <span className=\"text-xs text-muted-foreground\">{label}</span>\n <span className=\"text-xl font-semibold tabular-nums\">{value}</span>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n}from"./createLucideIcon-QE2kj6ru.js";import{C as r,l as i}from"./floating-layer-BcTp2AMB.js";import{s as a}from"./dist-DPxQeZn3.js";import{a as o,i as s,n as c,o as l,t as u}from"./select-BOe2daO9.js";import{Tt as d,wt as f}from"./index-CASCzvYu.js";function p(e,t,n=`long`){return new Intl.DateTimeFormat(`en-US`,{hour:`numeric`,timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(` `)}var m={},h={};function g(e,t){try{let n=(m[e]||=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`longOffset`}).format)(t).split(`GMT`)[1];return n in h?h[n]:v(n,n.split(`:`))}catch{if(e in h)return h[e];let t=e?.match(_);return t?v(e,t.slice(1)):NaN}}var _=/([+-]\d\d):?(\d\d)?/;function v(e,t){let n=+(t[0]||0),r=+(t[1]||0),i=(t[2]||0)/60;return h[e]=n*60+r>0?n*60+r+i:n*60-r-i}var y=class e extends Date{constructor(...e){super(),e.length>1&&typeof e[e.length-1]==`string`&&(this.timeZone=e.pop()),this.internal=new Date,isNaN(g(this.timeZone,this))?this.setTime(NaN):e.length?typeof e[0]==`number`&&(e.length===1||e.length===2&&typeof e[1]!=`number`)?this.setTime(e[0]):typeof e[0]==`string`?this.setTime(+new Date(e[0])):e[0]instanceof Date?this.setTime(+e[0]):(this.setTime(+new Date(...e)),ee(this,e)):this.setTime(Date.now())}static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}withTimeZone(t){return new e(+this,t)}getTimezoneOffset(){let e=-g(this.timeZone,this);return e>0?Math.floor(e):Math.ceil(e)}setTime(e){return Date.prototype.setTime.apply(this,arguments),x(this),+this}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}},b=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!b.test(e))return;let t=e.replace(b,`$1UTC`);y.prototype[t]&&(e.startsWith(`get`)?y.prototype[e]=function(){return this.internal[t]()}:(y.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),S(this),+this},y.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),x(this),+this}))});function x(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-g(e.timeZone,e)*60))}function S(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),ee(e)}function ee(e,t){let n=Array.isArray(t)?te(t):+e.internal,r=g(e.timeZone,e),i=r>0?Math.floor(r):Math.ceil(r),a=new Date(+e);a.setUTCHours(a.getUTCHours()-1);let o=-new Date(+e).getTimezoneOffset(),s=-new Date(+a).getTimezoneOffset(),c=o-s,l=o;if(c&&o!==i&&Date.prototype.getHours.apply(e)!==(Array.isArray(t)?t[3]||0:e.internal.getUTCHours())){let t=new Date(+e),n=o-i;n&&t.setUTCMinutes(t.getUTCMinutes()+n);let r=g(e.timeZone,t);(r>0?Math.floor(r):Math.ceil(r))===i&&(l=s)}let u=l-i;u&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+u);let d=new Date(+e);d.setUTCSeconds(0);let f=o>0?d.getSeconds():(d.getSeconds()-60)%60,p=Math.round(-(g(e.timeZone,e)*60))%60;(p||f)&&Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+f);let m=g(e.timeZone,e),h=m>0?Math.floor(m):Math.ceil(m),_=-new Date(+e).getTimezoneOffset()-h,v=h!==i,y=_-u,b=h-i,S=n-h*60*1e3,ee=b>0&&C(e)-n===b*60*1e3&&C(e,S)!==n;if(v&&y&&!ee){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+y);let t=g(e.timeZone,e),n=h-(t>0?Math.floor(t):Math.ceil(t));n&&y<0&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+n)}x(e);let w=(t?n:n+p*1e3)-+e.internal;w&&Math.abs(w)<18e5&&(Date.prototype.setTime.call(e,+e+w),x(e))}function te(e){return Date.UTC(e[0],e.length>1?e[1]:0,e.length>2?e[2]:1,...e.slice(3))}function C(e,t){let n=new Date(t??+e);return n.setUTCSeconds(n.getUTCSeconds()-Math.round(-g(e.timeZone,n)*60)),+n}var w=class e extends y{static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}toISOString(){let[e,t,n]=this.tzComponents(),r=`${e}${t}:${n}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[e,t,n,r]=this.internal.toUTCString().split(` `);return`${e?.slice(0,-1)} ${n} ${t} ${r}`}toTimeString(){let e=this.internal.toUTCString().split(` `)[4],[t,n,r]=this.tzComponents();return`${e} GMT${t}${n}${r} (${p(this.timeZone,this)})`}toLocaleString(e,t){return Date.prototype.toLocaleString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(e,t){return Date.prototype.toLocaleDateString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(e,t){return Date.prototype.toLocaleTimeString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){let e=this.getTimezoneOffset();return[e>0?`-`:`+`,String(Math.floor(Math.abs(e)/60)).padStart(2,`0`),String(Math.abs(e)%60).padStart(2,`0`)]}withTimeZone(t){return new e(+this,t)}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}},ne=365.2425,re=6048e5,ie=864e5,ae=6e4,oe=36e5,se=1e3,ce=86400;ce*7,ce*ne/12*3;var le=Symbol.for(`constructDateFrom`);function T(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&le in e?e[le](t):e instanceof Date?new e.constructor(t):new Date(t)}function E(e,t){return T(t||e,e)}function D(e,t,n){let r=E(e,n?.in);return isNaN(t)?T(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function ue(e,t,n){let r=E(e,n?.in);if(isNaN(t))return T(n?.in||e,NaN);if(!t)return r;let i=r.getDate(),a=T(n?.in||e,r.getTime());return a.setMonth(r.getMonth()+t+1,0),i>=a.getDate()?a:(r.setFullYear(a.getFullYear(),a.getMonth(),i),r)}var de={};function O(){return de}function k(e,t){let n=O(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=E(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function A(e,t){return k(e,{...t,weekStartsOn:1})}function fe(e,t){let n=E(e,t?.in),r=n.getFullYear(),i=T(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=A(i),o=T(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=A(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function pe(e){let t=E(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function j(e,...t){let n=T.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function M(e,t){let n=E(e,t?.in);return n.setHours(0,0,0,0),n}function me(e,t,n){let[r,i]=j(n?.in,e,t),a=M(r),o=M(i),s=+a-pe(a),c=+o-pe(o);return Math.round((s-c)/ie)}function he(e,t){let n=fe(e,t),r=T(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),A(r)}function ge(e,t,n){return D(e,t*7,n)}function _e(e,t,n){return ue(e,t*12,n)}function ve(e,t){let n,r=t?.in;return e.forEach(e=>{!r&&typeof e==`object`&&(r=T.bind(null,e));let t=E(e,r);(!n||n<t||isNaN(+t))&&(n=t)}),T(r,n||NaN)}function ye(e,t){let n,r=t?.in;return e.forEach(e=>{!r&&typeof e==`object`&&(r=T.bind(null,e));let t=E(e,r);(!n||n>t||isNaN(+t))&&(n=t)}),T(r,n||NaN)}function be(e,t,n){let[r,i]=j(n?.in,e,t);return+M(r)==+M(i)}function xe(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function Se(e){return!(!xe(e)&&typeof e!=`number`||isNaN(+E(e)))}function Ce(e,t,n){let[r,i]=j(n?.in,e,t),a=r.getFullYear()-i.getFullYear(),o=r.getMonth()-i.getMonth();return a*12+o}function we(e,t){let n=E(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function Te(e,t){let[n,r]=j(e,t.start,t.end);return{start:n,end:r}}function Ee(e,t){let{start:n,end:r}=Te(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0),o.setDate(1);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push(T(n,o)),o.setMonth(o.getMonth()+s);return i?c.reverse():c}function De(e,t){let n=E(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Oe(e,t){let n=E(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function ke(e,t){let n=E(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Ae(e,t){let{start:n,end:r}=Te(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0),o.setMonth(0,1);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push(T(n,o)),o.setFullYear(o.getFullYear()+s);return i?c.reverse():c}function je(e,t){let n=O(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=E(e,t?.in),a=i.getDay(),o=(a<r?-7:0)+6-(a-r);return i.setDate(i.getDate()+o),i.setHours(23,59,59,999),i}function Me(e,t){return je(e,{...t,weekStartsOn:1})}var Ne={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},Pe=(e,t,n)=>{let r,i=Ne[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function Fe(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ie={date:Fe({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:Fe({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:Fe({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Le={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Re=(e,t,n,r)=>Le[e];function ze(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var Be={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:ze({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:ze({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:ze({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:ze({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:ze({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function Ve(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?Ue(s,e=>e.test(o)):He(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function He(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Ue(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function We(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var Ge={code:`en-US`,formatDistance:Pe,formatLong:Ie,formatRelative:Re,localize:Be,match:{ordinalNumber:We({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:Ve({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:Ve({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:Ve({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:Ve({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:Ve({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ke(e,t){let n=E(e,t?.in);return me(n,ke(n))+1}function qe(e,t){let n=E(e,t?.in),r=A(n)-+he(n);return Math.round(r/re)+1}function Je(e,t){let n=E(e,t?.in),r=n.getFullYear(),i=O(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=T(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=k(o,t),c=T(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=k(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function Ye(e,t){let n=O(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Je(e,t),a=T(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),k(a,t)}function Xe(e,t){let n=E(e,t?.in),r=k(n,t)-+Ye(n,t);return Math.round(r/re)+1}function N(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var P={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return N(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):N(n+1,2)},d(e,t){return N(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return N(e.getHours()%12||12,t.length)},H(e,t){return N(e.getHours(),t.length)},m(e,t){return N(e.getMinutes(),t.length)},s(e,t){return N(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return N(Math.trunc(r*10**(n-3)),t.length)}},Ze={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},Qe={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return P.y(e,t)},Y:function(e,t,n,r){let i=Je(e,r),a=i>0?i:1-i;return t===`YY`?N(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):N(a,t.length)},R:function(e,t){return N(fe(e),t.length)},u:function(e,t){return N(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return N(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return N(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return P.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return N(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=Xe(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):N(i,t.length)},I:function(e,t,n){let r=qe(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):N(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):P.d(e,t)},D:function(e,t,n){let r=Ke(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):N(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return N(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return N(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return N(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?Ze.noon:r===0?Ze.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?Ze.evening:r>=12?Ze.afternoon:r>=4?Ze.morning:Ze.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return P.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):P.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):N(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):N(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):P.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):P.s(e,t)},S:function(e,t){return P.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return et(r);case`XXXX`:case`XX`:return tt(r);default:return tt(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return et(r);case`xxxx`:case`xx`:return tt(r);default:return tt(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+$e(r,`:`);default:return`GMT`+tt(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+$e(r,`:`);default:return`GMT`+tt(r,`:`)}},t:function(e,t,n){return N(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return N(+e,t.length)}};function $e(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+N(a,2)}function et(e,t){return e%60==0?(e>0?`-`:`+`)+N(Math.abs(e)/60,2):tt(e,t)}function tt(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=N(Math.trunc(r/60),2),a=N(r%60,2);return n+i+t+a}var nt=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},rt=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},it={p:rt,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return nt(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`})}return a.replace(`{{date}}`,nt(r,t)).replace(`{{time}}`,rt(i,t))}},at=/^D+$/,ot=/^Y+$/,st=[`D`,`DD`,`YY`,`YYYY`];function ct(e){return at.test(e)}function lt(e){return ot.test(e)}function ut(e,t,n){let r=dt(e,t,n);if(console.warn(r),st.includes(e))throw RangeError(r)}function dt(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var ft=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,pt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,mt=/^'([^]*?)'?$/,ht=/''/g,gt=/[a-zA-Z]/;function _t(e,t,n){let r=O(),i=n?.locale??r.locale??Ge,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=E(e,n?.in);if(!Se(s))throw RangeError(`Invalid time value`);let c=t.match(pt).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=it[t];return n(e,i.formatLong)}return e}).join(``).match(ft).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:vt(e)};if(Qe[t])return{isToken:!0,value:e};if(t.match(gt))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&<(a)||!n?.useAdditionalDayOfYearTokens&&ct(a))&&ut(a,t,String(e));let o=Qe[a[0]];return o(s,a,i.localize,l)}).join(``)}function vt(e){let t=e.match(mt);return t?t[1].replace(ht,`'`):e}function yt(e,t){let n=E(e,t?.in),r=n.getFullYear(),i=n.getMonth(),a=T(n,0);return a.setFullYear(r,i+1,0),a.setHours(0,0,0,0),a.getDate()}function bt(){return Object.assign({},O())}function xt(e,t){let n=E(e,t?.in).getDay();return n===0?7:n}function St(e,t){return E(e,t?.in).getMonth()}function Ct(e,t){return E(e,t?.in).getFullYear()}function wt(e,t){return+E(e)>+E(t)}function Tt(e,t){return+E(e)<+E(t)}function Et(e,t){let n=Dt(t)?new t(0):T(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function Dt(e){return typeof e==`function`&&e.prototype?.constructor===e}var Ot=10,kt=class{subPriority=0;validate(e,t){return!0}},At=class extends kt{constructor(e,t,n,r,i){super(),this.value=e,this.validateValue=t,this.setValue=n,this.priority=r,i&&(this.subPriority=i)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,n){return this.setValue(e,t,this.value,n)}},jt=class extends kt{priority=Ot;subPriority=-1;constructor(e,t){super(),this.context=e||(e=>T(t,e))}set(e,t){return t.timestampIsSet?e:T(e,Et(e,this.context))}},F=class{run(e,t,n,r){let i=this.parse(e,t,n,r);return i?{setter:new At(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(e,t,n){return!0}},Mt=class extends F{priority=140;parse(e,t,n){switch(t){case`G`:case`GG`:case`GGG`:return n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`});case`GGGGG`:return n.era(e,{width:`narrow`});default:return n.era(e,{width:`wide`})||n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`})}}set(e,t,n){return t.era=n,e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`R`,`u`,`t`,`T`]},I={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},L={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function R(e,t){return e&&{value:t(e.value),rest:e.rest}}function z(e,t){let n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function B(e,t){let n=t.match(e);if(!n)return null;if(n[0]===`Z`)return{value:0,rest:t.slice(1)};let r=n[1]===`+`?1:-1,i=n[2]?parseInt(n[2],10):0,a=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:r*(i*oe+a*ae+o*se),rest:t.slice(n[0].length)}}function Nt(e){return z(I.anyDigitsSigned,e)}function V(e,t){switch(e){case 1:return z(I.singleDigit,t);case 2:return z(I.twoDigits,t);case 3:return z(I.threeDigits,t);case 4:return z(I.fourDigits,t);default:return z(RegExp(`^\\d{1,`+e+`}`),t)}}function Pt(e,t){switch(e){case 1:return z(I.singleDigitSigned,t);case 2:return z(I.twoDigitsSigned,t);case 3:return z(I.threeDigitsSigned,t);case 4:return z(I.fourDigitsSigned,t);default:return z(RegExp(`^-?\\d{1,`+e+`}`),t)}}function Ft(e){switch(e){case`morning`:return 4;case`evening`:return 17;case`pm`:case`noon`:case`afternoon`:return 12;default:return 0}}function It(e,t){let n=t>0,r=n?t:1-t,i;if(r<=50)i=e||100;else{let t=r+50,n=Math.trunc(t/100)*100,a=e>=t%100;i=e+n-(a?100:0)}return n?i:1-i}function Lt(e){return e%400==0||e%4==0&&e%100!=0}var Rt=class extends F{priority=130;incompatibleTokens=[`Y`,`R`,`u`,`w`,`I`,`i`,`e`,`c`,`t`,`T`];parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`yy`});switch(t){case`y`:return R(V(4,e),r);case`yo`:return R(n.ordinalNumber(e,{unit:`year`}),r);default:return R(V(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n){let r=e.getFullYear();if(n.isTwoDigitYear){let t=It(n.year,r);return e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}let i=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(i,0,1),e.setHours(0,0,0,0),e}},zt=class extends F{priority=130;parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`YY`});switch(t){case`Y`:return R(V(4,e),r);case`Yo`:return R(n.ordinalNumber(e,{unit:`year`}),r);default:return R(V(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n,r){let i=Je(e,r);if(n.isTwoDigitYear){let t=It(n.year,i);return e.setFullYear(t,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),k(e,r)}let a=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(a,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),k(e,r)}incompatibleTokens=[`y`,`R`,`u`,`Q`,`q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]},Bt=class extends F{priority=130;parse(e,t){return Pt(t===`R`?4:t.length,e)}set(e,t,n){let r=T(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),A(r)}incompatibleTokens=[`G`,`y`,`Y`,`u`,`Q`,`q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},Vt=class extends F{priority=130;parse(e,t){return Pt(t===`u`?4:t.length,e)}set(e,t,n){return e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`G`,`y`,`Y`,`R`,`w`,`I`,`i`,`e`,`c`,`t`,`T`]},Ht=class extends F{priority=120;parse(e,t,n){switch(t){case`Q`:case`QQ`:return V(t.length,e);case`Qo`:return n.ordinalNumber(e,{unit:`quarter`});case`QQQ`:return n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`});case`QQQQQ`:return n.quarter(e,{width:`narrow`,context:`formatting`});default:return n.quarter(e,{width:`wide`,context:`formatting`})||n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},Ut=class extends F{priority=120;parse(e,t,n){switch(t){case`q`:case`qq`:return V(t.length,e);case`qo`:return n.ordinalNumber(e,{unit:`quarter`});case`qqq`:return n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`});case`qqqqq`:return n.quarter(e,{width:`narrow`,context:`standalone`});default:return n.quarter(e,{width:`wide`,context:`standalone`})||n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`Q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},Wt=class extends F{incompatibleTokens=[`Y`,`R`,`q`,`Q`,`L`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`];priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`M`:return R(z(I.month,e),r);case`MM`:return R(V(2,e),r);case`Mo`:return R(n.ordinalNumber(e,{unit:`month`}),r);case`MMM`:return n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`});case`MMMMM`:return n.month(e,{width:`narrow`,context:`formatting`});default:return n.month(e,{width:`wide`,context:`formatting`})||n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}},Gt=class extends F{priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`L`:return R(z(I.month,e),r);case`LL`:return R(V(2,e),r);case`Lo`:return R(n.ordinalNumber(e,{unit:`month`}),r);case`LLL`:return n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`});case`LLLLL`:return n.month(e,{width:`narrow`,context:`standalone`});default:return n.month(e,{width:`wide`,context:`standalone`})||n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]};function Kt(e,t,n){let r=E(e,n?.in),i=Xe(r,n)-t;return r.setDate(r.getDate()-i*7),E(r,n?.in)}var qt=class extends F{priority=100;parse(e,t,n){switch(t){case`w`:return z(I.week,e);case`wo`:return n.ordinalNumber(e,{unit:`week`});default:return V(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n,r){return k(Kt(e,n,r),r)}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]};function Jt(e,t,n){let r=E(e,n?.in),i=qe(r,n)-t;return r.setDate(r.getDate()-i*7),r}var Yt=class extends F{priority=100;parse(e,t,n){switch(t){case`I`:return z(I.week,e);case`Io`:return n.ordinalNumber(e,{unit:`week`});default:return V(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n){return A(Jt(e,n))}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},Xt=[31,28,31,30,31,30,31,31,30,31,30,31],Zt=[31,29,31,30,31,30,31,31,30,31,30,31],Qt=class extends F{priority=90;subPriority=1;parse(e,t,n){switch(t){case`d`:return z(I.date,e);case`do`:return n.ordinalNumber(e,{unit:`date`});default:return V(t.length,e)}}validate(e,t){let n=Lt(e.getFullYear()),r=e.getMonth();return n?t>=1&&t<=Zt[r]:t>=1&&t<=Xt[r]}set(e,t,n){return e.setDate(n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]},$t=class extends F{priority=90;subpriority=1;parse(e,t,n){switch(t){case`D`:case`DD`:return z(I.dayOfYear,e);case`Do`:return n.ordinalNumber(e,{unit:`date`});default:return V(t.length,e)}}validate(e,t){return Lt(e.getFullYear())?t>=1&&t<=366:t>=1&&t<=365}set(e,t,n){return e.setMonth(0,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`L`,`w`,`I`,`d`,`E`,`i`,`e`,`c`,`t`,`T`]};function en(e,t,n){let r=O(),i=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=E(e,n?.in),o=a.getDay(),s=(t%7+7)%7,c=7-i;return D(a,t<0||t>6?t-(o+c)%7:(s+c)%7-(o+c)%7,n)}var tn=class extends F{priority=90;parse(e,t,n){switch(t){case`E`:case`EE`:case`EEE`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`EEEEE`:return n.day(e,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=en(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`D`,`i`,`e`,`c`,`t`,`T`]},nn=class extends F{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`e`:case`ee`:return R(V(t.length,e),i);case`eo`:return R(n.ordinalNumber(e,{unit:`day`}),i);case`eee`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`eeeee`:return n.day(e,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=en(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`c`,`t`,`T`]},rn=class extends F{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`c`:case`cc`:return R(V(t.length,e),i);case`co`:return R(n.ordinalNumber(e,{unit:`day`}),i);case`ccc`:return n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});case`ccccc`:return n.day(e,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});default:return n.day(e,{width:`wide`,context:`standalone`})||n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=en(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`e`,`t`,`T`]};function an(e,t,n){let r=E(e,n?.in);return D(r,t-xt(r,n),n)}var on=class extends F{priority=90;parse(e,t,n){let r=e=>e===0?7:e;switch(t){case`i`:case`ii`:return V(t.length,e);case`io`:return n.ordinalNumber(e,{unit:`day`});case`iii`:return R(n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiii`:return R(n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiiii`:return R(n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);default:return R(n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r)}}validate(e,t){return t>=1&&t<=7}set(e,t,n){return e=an(e,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`E`,`e`,`c`,`t`,`T`]},sn=class extends F{priority=80;parse(e,t,n){switch(t){case`a`:case`aa`:case`aaa`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`aaaaa`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Ft(n),0,0,0),e}incompatibleTokens=[`b`,`B`,`H`,`k`,`t`,`T`]},cn=class extends F{priority=80;parse(e,t,n){switch(t){case`b`:case`bb`:case`bbb`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`bbbbb`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Ft(n),0,0,0),e}incompatibleTokens=[`a`,`B`,`H`,`k`,`t`,`T`]},ln=class extends F{priority=80;parse(e,t,n){switch(t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`BBBBB`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Ft(n),0,0,0),e}incompatibleTokens=[`a`,`b`,`t`,`T`]},un=class extends F{priority=70;parse(e,t,n){switch(t){case`h`:return z(I.hour12h,e);case`ho`:return n.ordinalNumber(e,{unit:`hour`});default:return V(t.length,e)}}validate(e,t){return t>=1&&t<=12}set(e,t,n){let r=e.getHours()>=12;return r&&n<12?e.setHours(n+12,0,0,0):!r&&n===12?e.setHours(0,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`H`,`K`,`k`,`t`,`T`]},dn=class extends F{priority=70;parse(e,t,n){switch(t){case`H`:return z(I.hour23h,e);case`Ho`:return n.ordinalNumber(e,{unit:`hour`});default:return V(t.length,e)}}validate(e,t){return t>=0&&t<=23}set(e,t,n){return e.setHours(n,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`K`,`k`,`t`,`T`]},fn=class extends F{priority=70;parse(e,t,n){switch(t){case`K`:return z(I.hour11h,e);case`Ko`:return n.ordinalNumber(e,{unit:`hour`});default:return V(t.length,e)}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.getHours()>=12&&n<12?e.setHours(n+12,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`h`,`H`,`k`,`t`,`T`]},pn=class extends F{priority=70;parse(e,t,n){switch(t){case`k`:return z(I.hour24h,e);case`ko`:return n.ordinalNumber(e,{unit:`hour`});default:return V(t.length,e)}}validate(e,t){return t>=1&&t<=24}set(e,t,n){let r=n<=24?n%24:n;return e.setHours(r,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`H`,`K`,`t`,`T`]},mn=class extends F{priority=60;parse(e,t,n){switch(t){case`m`:return z(I.minute,e);case`mo`:return n.ordinalNumber(e,{unit:`minute`});default:return V(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setMinutes(n,0,0),e}incompatibleTokens=[`t`,`T`]},hn=class extends F{priority=50;parse(e,t,n){switch(t){case`s`:return z(I.second,e);case`so`:return n.ordinalNumber(e,{unit:`second`});default:return V(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setSeconds(n,0),e}incompatibleTokens=[`t`,`T`]},gn=class extends F{priority=30;parse(e,t){return R(V(t.length,e),e=>Math.trunc(e*10**(-t.length+3)))}set(e,t,n){return e.setMilliseconds(n),e}incompatibleTokens=[`t`,`T`]},_n=class extends F{priority=10;parse(e,t){switch(t){case`X`:return B(L.basicOptionalMinutes,e);case`XX`:return B(L.basic,e);case`XXXX`:return B(L.basicOptionalSeconds,e);case`XXXXX`:return B(L.extendedOptionalSeconds,e);default:return B(L.extended,e)}}set(e,t,n){return t.timestampIsSet?e:T(e,e.getTime()-pe(e)-n)}incompatibleTokens=[`t`,`T`,`x`]},vn=class extends F{priority=10;parse(e,t){switch(t){case`x`:return B(L.basicOptionalMinutes,e);case`xx`:return B(L.basic,e);case`xxxx`:return B(L.basicOptionalSeconds,e);case`xxxxx`:return B(L.extendedOptionalSeconds,e);default:return B(L.extended,e)}}set(e,t,n){return t.timestampIsSet?e:T(e,e.getTime()-pe(e)-n)}incompatibleTokens=[`t`,`T`,`X`]},yn=class extends F{priority=40;parse(e){return Nt(e)}set(e,t,n){return[T(e,n*1e3),{timestampIsSet:!0}]}incompatibleTokens=`*`},bn=class extends F{priority=20;parse(e){return Nt(e)}set(e,t,n){return[T(e,n),{timestampIsSet:!0}]}incompatibleTokens=`*`},xn={G:new Mt,y:new Rt,Y:new zt,R:new Bt,u:new Vt,Q:new Ht,q:new Ut,M:new Wt,L:new Gt,w:new qt,I:new Yt,d:new Qt,D:new $t,E:new tn,e:new nn,c:new rn,i:new on,a:new sn,b:new cn,B:new ln,h:new un,H:new dn,K:new fn,k:new pn,m:new mn,s:new hn,S:new gn,X:new _n,x:new vn,t:new yn,T:new bn},Sn=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Cn=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,wn=/^'([^]*?)'?$/,Tn=/''/g,En=/\S/,Dn=/[a-zA-Z]/;function On(e,t,n,r){let i=()=>T(r?.in||n,NaN),a=bt(),o=r?.locale??a.locale??Ge,s=r?.firstWeekContainsDate??r?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,c=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(!t)return e?i():E(n,r?.in);let l={firstWeekContainsDate:s,weekStartsOn:c,locale:o},u=[new jt(r?.in,n)],d=t.match(Cn).map(e=>{let t=e[0];if(t in it){let n=it[t];return n(e,o.formatLong)}return e}).join(``).match(Sn),f=[];for(let n of d){!r?.useAdditionalWeekYearTokens&<(n)&&ut(n,t,e),!r?.useAdditionalDayOfYearTokens&&ct(n)&&ut(n,t,e);let a=n[0],s=xn[a];if(s){let{incompatibleTokens:t}=s;if(Array.isArray(t)){let e=f.find(e=>t.includes(e.token)||e.token===a);if(e)throw RangeError(`The format string mustn't contain \`${e.fullToken}\` and \`${n}\` at the same time`)}else if(s.incompatibleTokens===`*`&&f.length>0)throw RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);f.push({token:a,fullToken:n});let r=s.run(e,n,o.match,l);if(!r)return i();u.push(r.setter),e=r.rest}else{if(a.match(Dn))throw RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");if(n===`''`?n=`'`:a===`'`&&(n=kn(n)),e.indexOf(n)===0)e=e.slice(n.length);else return i()}}if(e.length>0&&En.test(e))return i();let p=u.map(e=>e.priority).sort((e,t)=>t-e).filter((e,t,n)=>n.indexOf(e)===t).map(e=>u.filter(t=>t.priority===e).sort((e,t)=>t.subPriority-e.subPriority)).map(e=>e[0]),m=E(n,r?.in);if(isNaN(+m))return i();let h={};for(let e of p){if(!e.validate(m,l))return i();let t=e.set(m,h,l);Array.isArray(t)?(m=t[0],Object.assign(h,t[1])):m=t}return m}function kn(e){return e.match(wn)[1].replace(Tn,`'`)}function An(e,t,n){let[r,i]=j(n?.in,e,t);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()}function jn(e,t,n){let[r,i]=j(n?.in,e,t);return r.getFullYear()===i.getFullYear()}function Mn(e,t){let n=()=>T(t?.in,NaN),r=t?.additionalDigits??2,i=Ln(e),a;if(i.date){let e=Rn(i.date,r);a=zn(e.restDateString,e.year)}if(!a||isNaN(+a))return n();let o=+a,s=0,c;if(i.time&&(s=Vn(i.time),isNaN(s)))return n();if(i.timezone){if(c=Un(i.timezone),isNaN(c))return n()}else{let e=new Date(o+s),n=E(0,t?.in);return n.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),n}return E(o+s+c,t?.in)}var Nn={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},Pn=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Fn=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,In=/^([+-])(\d{2})(?::?(\d{2}))?$/;function Ln(e){let t={},n=e.split(Nn.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Nn.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Nn.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){let e=Nn.timezone.exec(r);e?(t.time=r.replace(e[1],``),t.timezone=e[1]):t.time=r}return t}function Rn(e,t){let n=RegExp(`^(?:(\\d{4}|[+-]\\d{`+(4+t)+`})|(\\d{2}|[+-]\\d{`+(2+t)+`})$)`),r=e.match(n);if(!r)return{year:NaN,restDateString:``};let i=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:a===null?i:a*100,restDateString:e.slice((r[1]||r[2]).length)}}function zn(e,t){if(t===null)return new Date(NaN);let n=e.match(Pn);if(!n)return new Date(NaN);let r=!!n[4],i=Bn(n[1]),a=Bn(n[2])-1,o=Bn(n[3]),s=Bn(n[4]),c=Bn(n[5])-1;if(r)return Yn(t,s,c)?Wn(t,s,c):new Date(NaN);{let e=new Date(0);return!qn(t,a,o)||!Jn(t,i)?new Date(NaN):(e.setUTCFullYear(t,a,Math.max(i,o)),e)}}function Bn(e){return e?parseInt(e):1}function Vn(e){let t=e.match(Fn);if(!t)return NaN;let n=Hn(t[1]),r=Hn(t[2]),i=Hn(t[3]);return Xn(n,r,i)?n*oe+r*ae+i*1e3:NaN}function Hn(e){return e&&parseFloat(e.replace(`,`,`.`))||0}function Un(e){if(e===`Z`)return 0;let t=e.match(In);if(!t)return 0;let n=t[1]===`+`?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return Zn(r,i)?n*(r*oe+i*ae):NaN}function Wn(e,t,n){let r=new Date(0);r.setUTCFullYear(e,0,4);let i=r.getUTCDay()||7,a=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}var Gn=[31,null,31,30,31,30,31,31,30,31,30,31];function Kn(e){return e%400==0||e%4==0&&e%100!=0}function qn(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(Gn[t]||(Kn(e)?29:28))}function Jn(e,t){return t>=1&&t<=(Kn(e)?366:365)}function Yn(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function Xn(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function Zn(e,t){return t>=0&&t<=59}function Qn(e,t,n){let r=E(e,n?.in),i=r.getFullYear(),a=r.getDate(),o=T(n?.in||e,0);o.setFullYear(i,t,15),o.setHours(0,0,0,0);let s=yt(o);return r.setMonth(t,Math.min(a,s)),r}function $n(e,t,n){let r=E(e,n?.in);return isNaN(+r)?T(n?.in||e,NaN):(r.setFullYear(t),r)}var er=5,tr=4;function nr(e,t){let n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,i=t.addDays(e,-r+1),a=t.addDays(i,34);return t.getMonth(e)===t.getMonth(a)?er:tr}function rr(e,t){let n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function ir(e,t){let n=rr(e,t),r=nr(e,t);return t.addDays(n,r*7-1)}var ar={...Ge,labels:{labelDayButton:(e,t,n,r)=>{let i;i=r&&typeof r.format==`function`?r.format.bind(r):(e,t)=>_t(e,t,{locale:Ge,...n});let a=i(e,`PPPP`);return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a},labelMonthDropdown:`Choose the Month`,labelNext:`Go to the Next Month`,labelPrevious:`Go to the Previous Month`,labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:`Choose the Year`,labelGrid:(e,t,n)=>{let r;return r=n&&typeof n.format==`function`?n.format.bind(n):(e,n)=>_t(e,n,{locale:Ge,...t}),r(e,`LLLL yyyy`)},labelGridcell:(e,t,n,r)=>{let i;i=r&&typeof r.format==`function`?r.format.bind(r):(e,t)=>_t(e,t,{locale:Ge,...n});let a=i(e,`PPPP`);return t?.today&&(a=`Today, ${a}`),a},labelNav:`Navigation bar`,labelWeekNumberHeader:`Week Number`,labelWeekday:(e,t,n)=>{let r;return r=n&&typeof n.format==`function`?n.format.bind(n):(e,n)=>_t(e,n,{locale:Ge,...t}),r(e,`cccc`)}}},H=class e{constructor(e,t){this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?w.tz(this.options.timeZone):new(this.options.Date??Date),this.newDate=(e,t,n)=>this.overrides?.newDate?this.overrides.newDate(e,t,n):this.options.timeZone?new w(e,t,n,this.options.timeZone):new Date(e,t,n),this.addDays=(e,t)=>this.overrides?.addDays?this.overrides.addDays(e,t):D(e,t),this.addMonths=(e,t)=>this.overrides?.addMonths?this.overrides.addMonths(e,t):ue(e,t),this.addWeeks=(e,t)=>this.overrides?.addWeeks?this.overrides.addWeeks(e,t):ge(e,t),this.addYears=(e,t)=>this.overrides?.addYears?this.overrides.addYears(e,t):_e(e,t),this.differenceInCalendarDays=(e,t)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(e,t):me(e,t),this.differenceInCalendarMonths=(e,t)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(e,t):Ce(e,t),this.eachMonthOfInterval=e=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(e):Ee(e),this.eachYearOfInterval=e=>{let t=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(e):Ae(e),n=new Set(t.map(e=>this.getYear(e)));if(n.size===t.length)return t;let r=[];return n.forEach(e=>{r.push(new Date(e,0,1))}),r},this.endOfBroadcastWeek=e=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(e):ir(e,this),this.endOfISOWeek=e=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(e):Me(e),this.endOfMonth=e=>this.overrides?.endOfMonth?this.overrides.endOfMonth(e):we(e),this.endOfWeek=(e,t)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(e,t):je(e,this.options),this.endOfYear=e=>this.overrides?.endOfYear?this.overrides.endOfYear(e):Oe(e),this.format=(e,t,n)=>{let r=this.overrides?.format?this.overrides.format(e,t,this.options):_t(e,t,this.options);return this.options.numerals&&this.options.numerals!==`latn`?this.replaceDigits(r):r},this.getISOWeek=e=>this.overrides?.getISOWeek?this.overrides.getISOWeek(e):qe(e),this.getMonth=(e,t)=>this.overrides?.getMonth?this.overrides.getMonth(e,this.options):St(e,this.options),this.getYear=(e,t)=>this.overrides?.getYear?this.overrides.getYear(e,this.options):Ct(e,this.options),this.getWeek=(e,t)=>this.overrides?.getWeek?this.overrides.getWeek(e,this.options):Xe(e,this.options),this.isAfter=(e,t)=>this.overrides?.isAfter?this.overrides.isAfter(e,t):wt(e,t),this.isBefore=(e,t)=>this.overrides?.isBefore?this.overrides.isBefore(e,t):Tt(e,t),this.isDate=e=>this.overrides?.isDate?this.overrides.isDate(e):xe(e),this.isSameDay=(e,t)=>this.overrides?.isSameDay?this.overrides.isSameDay(e,t):be(e,t),this.isSameMonth=(e,t)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(e,t):An(e,t),this.isSameYear=(e,t)=>this.overrides?.isSameYear?this.overrides.isSameYear(e,t):jn(e,t),this.max=e=>this.overrides?.max?this.overrides.max(e):ve(e),this.min=e=>this.overrides?.min?this.overrides.min(e):ye(e),this.setMonth=(e,t)=>this.overrides?.setMonth?this.overrides.setMonth(e,t):Qn(e,t),this.setYear=(e,t)=>this.overrides?.setYear?this.overrides.setYear(e,t):$n(e,t),this.startOfBroadcastWeek=(e,t)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(e,this):rr(e,this),this.startOfDay=e=>this.overrides?.startOfDay?this.overrides.startOfDay(e):M(e),this.startOfISOWeek=e=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(e):A(e),this.startOfMonth=e=>this.overrides?.startOfMonth?this.overrides.startOfMonth(e):De(e),this.startOfWeek=(e,t)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(e,this.options):k(e,this.options),this.startOfYear=e=>this.overrides?.startOfYear?this.overrides.startOfYear(e):ke(e),this.options={locale:ar,...e},this.overrides=t}getDigitMap(){let{numerals:e=`latn`}=this.options,t=new Intl.NumberFormat(`en-US`,{numberingSystem:e}),n={};for(let e=0;e<10;e++)n[e.toString()]=t.format(e);return n}replaceDigits(e){let t=this.getDigitMap();return e.replace(/\d/g,e=>t[e]||e)}formatNumber(e){return this.replaceDigits(e.toString())}getMonthYearOrder(){let t=this.options.locale?.code;return t&&e.yearFirstLocales.has(t)?`year-first`:`month-first`}formatMonthYear(t){let{locale:n,timeZone:r,numerals:i}=this.options,a=n?.code;if(a&&e.yearFirstLocales.has(a))try{return new Intl.DateTimeFormat(a,{month:`long`,year:`numeric`,timeZone:r,numberingSystem:i}).format(t)}catch{}let o=this.getMonthYearOrder()===`year-first`?`y LLLL`:`LLLL y`;return this.format(t,o)}};H.yearFirstLocales=new Set([`eu`,`hu`,`ja`,`ja-Hira`,`ja-JP`,`ko`,`ko-KR`,`lt`,`lt-LT`,`lv`,`lv-LV`,`mn`,`mn-MN`,`zh`,`zh-CN`,`zh-HK`,`zh-TW`]);var U=new H,or=class{constructor(e,t,n=U){this.date=e,this.displayMonth=t,this.outside=!!(t&&!n.isSameMonth(e,t)),this.dateLib=n,this.isoDate=n.format(e,`yyyy-MM-dd`),this.displayMonthId=n.format(t,`yyyy-MM`),this.dateMonthId=n.format(e,`yyyy-MM`)}isEqualTo(e){return this.dateLib.isSameDay(e.date,this.date)&&this.dateLib.isSameMonth(e.displayMonth,this.displayMonth)}},sr=class{constructor(e,t){this.date=e,this.weeks=t}},cr=class{constructor(e,t){this.days=t,this.weekNumber=e}},W=e(n(),1);function lr(e){return W.createElement(`span`,{...e})}function ur(e){let{size:t=24,orientation:n=`left`,className:r,style:i}=e;return W.createElement(`svg`,{className:r,style:i,width:t,height:t,viewBox:`0 0 24 24`},n===`up`&&W.createElement(`polygon`,{points:`6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28`}),n===`down`&&W.createElement(`polygon`,{points:`6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72`}),n===`left`&&W.createElement(`polygon`,{points:`16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20`}),n===`right`&&W.createElement(`polygon`,{points:`8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20`}))}function dr(e){let{day:t,modifiers:n,...r}=e;return W.createElement(`td`,{...r})}function fr(e){let{day:t,modifiers:n,...r}=e,i=W.useRef(null);return W.useEffect(()=>{n.focused&&i.current?.focus()},[n.focused]),W.createElement(`button`,{ref:i,...r})}var G;(function(e){e.Root=`root`,e.Chevron=`chevron`,e.Day=`day`,e.DayButton=`day_button`,e.CaptionLabel=`caption_label`,e.Dropdowns=`dropdowns`,e.Dropdown=`dropdown`,e.DropdownRoot=`dropdown_root`,e.Footer=`footer`,e.MonthGrid=`month_grid`,e.MonthCaption=`month_caption`,e.MonthsDropdown=`months_dropdown`,e.Month=`month`,e.Months=`months`,e.Nav=`nav`,e.NextMonthButton=`button_next`,e.PreviousMonthButton=`button_previous`,e.Week=`week`,e.Weeks=`weeks`,e.Weekday=`weekday`,e.Weekdays=`weekdays`,e.WeekNumber=`week_number`,e.WeekNumberHeader=`week_number_header`,e.YearsDropdown=`years_dropdown`})(G||={});var K;(function(e){e.disabled=`disabled`,e.hidden=`hidden`,e.outside=`outside`,e.focused=`focused`,e.today=`today`})(K||={});var q;(function(e){e.range_end=`range_end`,e.range_middle=`range_middle`,e.range_start=`range_start`,e.selected=`selected`})(q||={});var J;(function(e){e.weeks_before_enter=`weeks_before_enter`,e.weeks_before_exit=`weeks_before_exit`,e.weeks_after_enter=`weeks_after_enter`,e.weeks_after_exit=`weeks_after_exit`,e.caption_after_enter=`caption_after_enter`,e.caption_after_exit=`caption_after_exit`,e.caption_before_enter=`caption_before_enter`,e.caption_before_exit=`caption_before_exit`})(J||={});var pr=(0,W.createContext)(void 0);function mr(){let e=(0,W.useContext)(pr);if(e===void 0)throw Error(`useDayPicker() must be used within a custom component.`);return e}function hr(e){let{options:t,className:n,...r}=e,{classNames:i,components:a,styles:o}=mr(),s=[i[G.Dropdown],n].join(` `),c=t?.find(({value:e})=>e===r.value);return W.createElement(`span`,{"data-disabled":r.disabled,className:i[G.DropdownRoot],style:o?.[G.DropdownRoot]},W.createElement(a.Select,{className:s,...r},t?.map(({value:e,label:t,disabled:n})=>W.createElement(a.Option,{key:e,value:e,disabled:n},t))),W.createElement(`span`,{className:i[G.CaptionLabel],style:o?.[G.CaptionLabel],"aria-hidden":!0},c?.label,W.createElement(a.Chevron,{orientation:`down`,size:18,className:i[G.Chevron],style:o?.[G.Chevron]})))}function gr(e){return W.createElement(`div`,{...e})}function _r(e){return W.createElement(`div`,{...e})}function vr(e){let{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement(`div`,{...r},e.children)}function yr(e){let{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement(`div`,{...r})}function br(e){return W.createElement(`table`,{...e})}function xr(e){return W.createElement(`div`,{...e})}function Sr(e){let{components:t}=mr();return W.createElement(t.Dropdown,{...e})}function Cr(e){let{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:i,...a}=e,{components:o,classNames:s,styles:c,labels:{labelPrevious:l,labelNext:u}}=mr(),d=(0,W.useCallback)(e=>{i&&n?.(e)},[i,n]),f=(0,W.useCallback)(e=>{r&&t?.(e)},[r,t]);return W.createElement(`nav`,{...a},W.createElement(o.PreviousMonthButton,{type:`button`,className:s[G.PreviousMonthButton],style:c?.[G.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":!r||void 0,"aria-label":l(r),onClick:f},W.createElement(o.Chevron,{disabled:!r||void 0,className:s[G.Chevron],style:c?.[G.Chevron],orientation:`left`})),W.createElement(o.NextMonthButton,{type:`button`,className:s[G.NextMonthButton],style:c?.[G.NextMonthButton],tabIndex:i?void 0:-1,"aria-disabled":!i||void 0,"aria-label":u(i),onClick:d},W.createElement(o.Chevron,{disabled:!i||void 0,orientation:`right`,className:s[G.Chevron],style:c?.[G.Chevron]})))}function wr(e){return W.createElement(`button`,{...e})}function Tr(e){return W.createElement(`option`,{...e})}function Er(e){return W.createElement(`button`,{...e})}function Dr(e){let{rootRef:t,...n}=e;return W.createElement(`div`,{...n,ref:t})}function Or(e){return W.createElement(`select`,{...e})}function kr(e){let{week:t,...n}=e;return W.createElement(`tr`,{...n})}function Ar(e){return W.createElement(`th`,{...e})}function jr(e){return W.createElement(`thead`,{"aria-hidden":!0},W.createElement(`tr`,{...e}))}function Mr(e){let{week:t,...n}=e;return W.createElement(`th`,{...n})}function Nr(e){return W.createElement(`th`,{...e})}function Pr(e){return W.createElement(`tbody`,{...e})}function Fr(e){let{components:t}=mr();return W.createElement(t.Dropdown,{...e})}var Ir=t({CaptionLabel:()=>lr,Chevron:()=>ur,Day:()=>dr,DayButton:()=>fr,Dropdown:()=>hr,DropdownNav:()=>gr,Footer:()=>_r,Month:()=>vr,MonthCaption:()=>yr,MonthGrid:()=>br,Months:()=>xr,MonthsDropdown:()=>Sr,Nav:()=>Cr,NextMonthButton:()=>wr,Option:()=>Tr,PreviousMonthButton:()=>Er,Root:()=>Dr,Select:()=>Or,Week:()=>kr,WeekNumber:()=>Mr,WeekNumberHeader:()=>Nr,Weekday:()=>Ar,Weekdays:()=>jr,Weeks:()=>Pr,YearsDropdown:()=>Fr});function Y(e,t,n=!1,r=U){let{from:i,to:a}=e,{differenceInCalendarDays:o,isSameDay:s}=r;return i&&a?(o(a,i)<0&&([i,a]=[a,i]),o(t,i)>=+!!n&&o(a,t)>=+!!n):!n&&a?s(a,t):!n&&i?s(i,t):!1}function Lr(e){return!!(e&&typeof e==`object`&&`before`in e&&`after`in e)}function Rr(e){return!!(e&&typeof e==`object`&&`from`in e)}function zr(e){return!!(e&&typeof e==`object`&&`after`in e)}function Br(e){return!!(e&&typeof e==`object`&&`before`in e)}function Vr(e){return!!(e&&typeof e==`object`&&`dayOfWeek`in e)}function Hr(e,t){return Array.isArray(e)&&e.every(t.isDate)}function X(e,t,n=U){let r=Array.isArray(t)?t:[t],{isSameDay:i,differenceInCalendarDays:a,isAfter:o}=n;return r.some(t=>{if(typeof t==`boolean`)return t;if(n.isDate(t))return i(e,t);if(Hr(t,n))return t.some(t=>i(e,t));if(Rr(t))return Y(t,e,!1,n);if(Vr(t))return Array.isArray(t.dayOfWeek)?t.dayOfWeek.includes(e.getDay()):t.dayOfWeek===e.getDay();if(Lr(t)){let n=a(t.before,e),r=a(t.after,e),i=n>0,s=r<0;return o(t.before,t.after)?s&&i:i||s}return zr(t)?a(e,t.after)>0:Br(t)?a(t.before,e)>0:typeof t==`function`&&t(e)})}function Ur(e,t,n,r,i){let{disabled:a,hidden:o,modifiers:s,showOutsideDays:c,broadcastCalendar:l,today:u=i.today()}=t,{isSameDay:d,isSameMonth:f,startOfMonth:p,isBefore:m,endOfMonth:h,isAfter:g}=i,_=n&&p(n),v=r&&h(r),y={[K.focused]:[],[K.outside]:[],[K.disabled]:[],[K.hidden]:[],[K.today]:[]},b={};for(let t of e){let{date:e,displayMonth:n}=t,r=!!(n&&!f(e,n)),p=!!(_&&m(e,_)),h=!!(v&&g(e,v)),x=!!(a&&X(e,a,i)),S=!!(o&&X(e,o,i))||p||h||!l&&!c&&r||l&&c===!1&&r,ee=d(e,u);r&&y.outside.push(t),x&&y.disabled.push(t),S&&y.hidden.push(t),ee&&y.today.push(t),s&&Object.keys(s).forEach(n=>{let r=s?.[n];r&&X(e,r,i)&&(b[n]?b[n].push(t):b[n]=[t])})}return e=>{let t={[K.focused]:!1,[K.disabled]:!1,[K.hidden]:!1,[K.outside]:!1,[K.today]:!1},n={};for(let n in y)t[n]=y[n].some(t=>t===e);for(let t in b)n[t]=b[t].some(t=>t===e);return{...t,...n}}}function Wr(e,t,n={}){return Object.entries(e).filter(([,e])=>e===!0).reduce((e,[r])=>(n[r]?e.push(n[r]):t[K[r]]?e.push(t[K[r]]):t[q[r]]&&e.push(t[q[r]]),e),[t[G.Day]])}function Gr(e){return{...Ir,...e}}function Kr(e){let t={"data-mode":e.mode??void 0,"data-required":`required`in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([e,n])=>{e.startsWith(`data-`)&&(t[e]=n)}),t}function qr(){let e={};for(let t in G)e[G[t]]=`rdp-${G[t]}`;for(let t in K)e[K[t]]=`rdp-${K[t]}`;for(let t in q)e[q[t]]=`rdp-${q[t]}`;for(let t in J)e[J[t]]=`rdp-${J[t]}`;return e}function Jr(e,t,n){return(n??new H(t)).formatMonthYear(e)}function Yr(e,t,n){return(n??new H(t)).format(e,`d`)}function Xr(e,t=U){return t.format(e,`LLLL`)}function Zr(e,t,n){return(n??new H(t)).format(e,`cccccc`)}function Qr(e,t=U){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function $r(){return``}function ei(e,t=U){return t.format(e,`yyyy`)}var ti=t({formatCaption:()=>Jr,formatDay:()=>Yr,formatMonthDropdown:()=>Xr,formatWeekNumber:()=>Qr,formatWeekNumberHeader:()=>$r,formatWeekdayName:()=>Zr,formatYearDropdown:()=>ei});function ni(e){return{...ti,...e}}function ri(e,t,n,r){let i=(r??new H(n)).format(e,`PPPP`);return t.today&&(i=`Today, ${i}`),t.selected&&(i=`${i}, selected`),i}function ii(e,t,n){return(n??new H(t)).formatMonthYear(e)}function ai(e,t,n,r){let i=(r??new H(n)).format(e,`PPPP`);return t?.today&&(i=`Today, ${i}`),i}function oi(e){return`Choose the Month`}function si(){return``}var ci=`Go to the Next Month`;function li(e,t){return ci}function ui(e){return`Go to the Previous Month`}function di(e,t,n){return(n??new H(t)).format(e,`cccc`)}function fi(e,t){return`Week ${e}`}function pi(e){return`Week Number`}function mi(e){return`Choose the Year`}var hi=t({labelDayButton:()=>ri,labelGrid:()=>ii,labelGridcell:()=>ai,labelMonthDropdown:()=>oi,labelNav:()=>si,labelNext:()=>li,labelPrevious:()=>ui,labelWeekNumber:()=>fi,labelWeekNumberHeader:()=>pi,labelWeekday:()=>di,labelYearDropdown:()=>mi}),Z=(e,t,n)=>t||(n?typeof n==`function`?n:(...e)=>n:e);function gi(e,t){let n=t.locale?.labels??{};return{...hi,...e??{},labelDayButton:Z(ri,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:Z(oi,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:Z(li,e?.labelNext,n.labelNext),labelPrevious:Z(ui,e?.labelPrevious,n.labelPrevious),labelWeekNumber:Z(fi,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:Z(mi,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:Z(ii,e?.labelGrid,n.labelGrid),labelGridcell:Z(ai,e?.labelGridcell,n.labelGridcell),labelNav:Z(si,e?.labelNav,n.labelNav),labelWeekNumberHeader:Z(pi,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:Z(di,e?.labelWeekday,n.labelWeekday)}}function _i(e,t,n,r,i){let{startOfMonth:a,startOfYear:o,endOfYear:s,eachMonthOfInterval:c,getMonth:l}=i;return c({start:o(e),end:s(e)}).map(e=>{let o=r.formatMonthDropdown(e,i);return{value:l(e),label:o,disabled:t&&e<a(t)||n&&e>a(n)||!1}})}function vi(e,t={},n={}){let r={...t?.[G.Day]};return Object.entries(e).filter(([,e])=>e===!0).forEach(([e])=>{r={...r,...n?.[e]}}),r}function yi(e,t,n,r){let i=r??e.today(),a=n?e.startOfBroadcastWeek(i,e):t?e.startOfISOWeek(i):e.startOfWeek(i),o=[];for(let t=0;t<7;t++){let n=e.addDays(a,t);o.push(n)}return o}function bi(e,t,n,r,i=!1){if(!e||!t)return;let{startOfYear:a,endOfYear:o,eachYearOfInterval:s,getYear:c}=r,l=s({start:a(e),end:o(t)});return i&&l.reverse(),l.map(e=>{let t=n.formatYearDropdown(e,r);return{value:c(e),label:t,disabled:!1}})}function xi(e,t={}){let{weekStartsOn:n,locale:r}=t,i=n??r?.options?.weekStartsOn??0,a=t=>{let n=typeof t==`number`||typeof t==`string`?new Date(t):t;return new w(n.getFullYear(),n.getMonth(),n.getDate(),12,0,0,e)},o=e=>{let t=a(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)};return{today:()=>a(w.tz(e)),newDate:(t,n,r)=>new w(t,n,r,12,0,0,e),startOfDay:e=>a(e),startOfWeek:(e,t)=>{let n=a(e),r=t?.weekStartsOn??i,o=(n.getDay()-r+7)%7;return n.setDate(n.getDate()-o),n},startOfISOWeek:e=>{let t=a(e),n=(t.getDay()-1+7)%7;return t.setDate(t.getDate()-n),t},startOfMonth:e=>{let t=a(e);return t.setDate(1),t},startOfYear:e=>{let t=a(e);return t.setMonth(0,1),t},endOfWeek:(e,t)=>{let n=a(e),r=(((t?.weekStartsOn??i)+6)%7-n.getDay()+7)%7;return n.setDate(n.getDate()+r),n},endOfISOWeek:e=>{let t=a(e),n=(7-t.getDay())%7;return t.setDate(t.getDate()+n),t},endOfMonth:e=>{let t=a(e);return t.setMonth(t.getMonth()+1,0),t},endOfYear:e=>{let t=a(e);return t.setMonth(11,31),t},eachMonthOfInterval:t=>{let n=a(t.start),r=a(t.end),i=[],o=new w(n.getFullYear(),n.getMonth(),1,12,0,0,e),s=r.getFullYear()*12+r.getMonth();for(;o.getFullYear()*12+o.getMonth()<=s;)i.push(new w(o,e)),o.setMonth(o.getMonth()+1,1);return i},addDays:(e,t)=>{let n=a(e);return n.setDate(n.getDate()+t),n},addWeeks:(e,t)=>{let n=a(e);return n.setDate(n.getDate()+t*7),n},addMonths:(e,t)=>{let n=a(e);return n.setMonth(n.getMonth()+t),n},addYears:(e,t)=>{let n=a(e);return n.setFullYear(n.getFullYear()+t),n},eachYearOfInterval:t=>{let n=a(t.start),r=a(t.end),i=[],o=new w(n.getFullYear(),0,1,12,0,0,e);for(;o.getFullYear()<=r.getFullYear();)i.push(new w(o,e)),o.setFullYear(o.getFullYear()+1,0,1);return i},getWeek:(e,t)=>Xe(o(e),{weekStartsOn:t?.weekStartsOn??i,firstWeekContainsDate:t?.firstWeekContainsDate??r?.options?.firstWeekContainsDate??1}),getISOWeek:e=>qe(o(e)),differenceInCalendarDays:(e,t)=>me(o(e),o(t)),differenceInCalendarMonths:(e,t)=>Ce(o(e),o(t))}}var Si=e=>e instanceof HTMLElement?e:null,Ci=e=>[...e.querySelectorAll(`[data-animated-month]`)??[]],wi=e=>Si(e.querySelector(`[data-animated-month]`)),Ti=e=>Si(e.querySelector(`[data-animated-caption]`)),Ei=e=>Si(e.querySelector(`[data-animated-weeks]`)),Di=e=>Si(e.querySelector(`[data-animated-nav]`)),Oi=e=>Si(e.querySelector(`[data-animated-weekdays]`));function ki(e,t,{classNames:n,months:r,focused:i,dateLib:a}){let o=(0,W.useRef)(null),s=(0,W.useRef)(r),c=(0,W.useRef)(!1);(0,W.useLayoutEffect)(()=>{let l=s.current;if(s.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||l.length===0||r.length!==l.length)return;let u=a.isSameMonth(r[0].date,l[0].date),d=a.isAfter(r[0].date,l[0].date),f=d?n[J.caption_after_enter]:n[J.caption_before_enter],p=d?n[J.weeks_after_enter]:n[J.weeks_before_enter],m=o.current,h=e.current.cloneNode(!0);if(h instanceof HTMLElement?(Ci(h).forEach(e=>{if(!(e instanceof HTMLElement))return;let t=wi(e);t&&e.contains(t)&&e.removeChild(t);let n=Ti(e);n&&n.classList.remove(f);let r=Ei(e);r&&r.classList.remove(p)}),o.current=h):o.current=null,c.current||u||i)return;let g=m instanceof HTMLElement?Ci(m):[],_=Ci(e.current);if(_?.every(e=>e instanceof HTMLElement)&&g?.every(e=>e instanceof HTMLElement)){c.current=!0;let t=[];e.current.style.isolation=`isolate`;let r=Di(e.current);r&&(r.style.zIndex=`1`),_.forEach((i,a)=>{let o=g[a];if(!o)return;i.style.position=`relative`,i.style.overflow=`hidden`;let s=Ti(i);s&&s.classList.add(f);let l=Ei(i);l&&l.classList.add(p);let u=()=>{c.current=!1,e.current&&(e.current.style.isolation=``),r&&(r.style.zIndex=``),s&&s.classList.remove(f),l&&l.classList.remove(p),i.style.position=``,i.style.overflow=``,i.contains(o)&&i.removeChild(o)};t.push(u),o.style.pointerEvents=`none`,o.style.position=`absolute`,o.style.overflow=`hidden`,o.setAttribute(`aria-hidden`,`true`);let m=Oi(o);m&&(m.style.opacity=`0`);let h=Ti(o);h&&(h.classList.add(d?n[J.caption_before_exit]:n[J.caption_after_exit]),h.addEventListener(`animationend`,u));let _=Ei(o);_&&_.classList.add(d?n[J.weeks_before_exit]:n[J.weeks_after_exit]),i.insertBefore(o,i.firstChild)})}})}function Ai(e,t,n,r){let i=e[0],a=e[e.length-1],{ISOWeek:o,fixedWeeks:s,broadcastCalendar:c}=n??{},{addDays:l,differenceInCalendarDays:u,differenceInCalendarMonths:d,endOfBroadcastWeek:f,endOfISOWeek:p,endOfMonth:m,endOfWeek:h,isAfter:g,startOfBroadcastWeek:_,startOfISOWeek:v,startOfWeek:y}=r,b=c?_(i,r):o?v(i):y(i),x=c?f(a):o?p(m(a)):h(m(a)),S=t&&(c?f(t):o?p(t):h(t)),ee=u(S&&g(x,S)?S:x,b),te=d(a,i)+1,C=[];for(let e=0;e<=ee;e++){let t=l(b,e);C.push(t)}let w=(c?35:42)*te;if(s&&C.length<w){let e=w-C.length;for(let t=0;t<e;t++){let e=l(C[C.length-1],1);C.push(e)}}return C}function ji(e){let t=[];return e.reduce((e,n)=>{let r=n.weeks.reduce((e,t)=>e.concat(t.days.slice()),t.slice());return e.concat(r.slice())},t.slice())}function Mi(e,t,n,r){let{numberOfMonths:i=1}=n,a=[];for(let n=0;n<i;n++){let i=r.addMonths(e,n);if(t&&i>t)break;a.push(i)}return a}function Ni(e,t,n,r){let{month:i,defaultMonth:a,today:o=r.today(),numberOfMonths:s=1}=e,c=i||a||o,{differenceInCalendarMonths:l,addMonths:u,startOfMonth:d}=r;return n&&l(n,c)<s-1&&(c=u(n,-1*(s-1))),t&&l(c,t)<0&&(c=t),d(c)}function Pi(e,t,n,r){let{addDays:i,endOfBroadcastWeek:a,endOfISOWeek:o,endOfMonth:s,endOfWeek:c,getISOWeek:l,getWeek:u,startOfBroadcastWeek:d,startOfISOWeek:f,startOfWeek:p}=r,m=e.reduce((e,m)=>{let h=n.broadcastCalendar?d(m,r):n.ISOWeek?f(m):p(m),g=n.broadcastCalendar?a(m):n.ISOWeek?o(s(m)):c(s(m)),_=t.filter(e=>e>=h&&e<=g),v=n.broadcastCalendar?35:42;if(n.fixedWeeks&&_.length<v){let e=t.filter(e=>{let t=v-_.length;return e>g&&e<=i(g,t)});_.push(...e)}let y=new sr(m,_.reduce((e,t)=>{let i=n.ISOWeek?l(t):u(t),a=e.find(e=>e.weekNumber===i),o=new or(t,m,r);return a?a.days.push(o):e.push(new cr(i,[o])),e},[]));return e.push(y),e},[]);return n.reverseMonths?m.reverse():m}function Fi(e,t){let{startMonth:n,endMonth:r}=e,{startOfYear:i,startOfDay:a,startOfMonth:o,endOfMonth:s,addYears:c,endOfYear:l,today:u}=t,d=e.captionLayout===`dropdown`||e.captionLayout===`dropdown-years`;return n?n=o(n):!n&&d&&(n=i(c(e.today??u(),-100))),r?r=s(r):!r&&d&&(r=l(e.today??u())),[n&&a(n),r&&a(r)]}function Ii(e,t,n,r){if(n.disableNavigation)return;let{pagedNavigation:i,numberOfMonths:a=1}=n,{startOfMonth:o,addMonths:s,differenceInCalendarMonths:c}=r,l=i?a:1,u=o(e);if(!t||!(c(t,e)<a))return s(u,l)}function Li(e,t,n,r){if(n.disableNavigation)return;let{pagedNavigation:i,numberOfMonths:a}=n,{startOfMonth:o,addMonths:s,differenceInCalendarMonths:c}=r,l=i?a??1:1,u=o(e);if(!t||!(c(u,t)<=0))return s(u,-l)}function Ri(e){return e.reduce((e,t)=>e.concat(t.weeks.slice()),[].slice())}function zi(e,t){let[n,r]=(0,W.useState)(e);return[t===void 0?n:t,r]}function Bi(e,t){let[n,r]=Fi(e,t),{startOfMonth:i,endOfMonth:a}=t,o=Ni(e,n,r,t),[s,c]=zi(o,e.month?o:void 0);(0,W.useEffect)(()=>{let i=Ni(e,n,r,t);c(i)},[e.timeZone]);let{months:l,weeks:u,days:d,previousMonth:f,nextMonth:p}=(0,W.useMemo)(()=>{let i=Mi(s,r,{numberOfMonths:e.numberOfMonths},t),o=Pi(i,Ai(i,e.endMonth?a(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t);return{months:o,weeks:Ri(o),days:ji(o),previousMonth:Li(s,n,e,t),nextMonth:Ii(s,r,e,t)}},[t,s.getTime(),r?.getTime(),n?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:m,onMonthChange:h}=e,g=e=>u.some(t=>t.days.some(t=>t.isEqualTo(e))),_=e=>{if(m)return;let t=i(e);n&&t<i(n)&&(t=i(n)),r&&t>i(r)&&(t=i(r)),c(t),h?.(t)};return{months:l,weeks:u,days:d,navStart:n,navEnd:r,previousMonth:f,nextMonth:p,goToMonth:_,goToDay:e=>{g(e)||_(e.date)}}}var Q;(function(e){e[e.Today=0]=`Today`,e[e.Selected=1]=`Selected`,e[e.LastFocused=2]=`LastFocused`,e[e.FocusedModifier=3]=`FocusedModifier`})(Q||={});function Vi(e){return!e[K.disabled]&&!e[K.hidden]&&!e[K.outside]}function Hi(e,t,n,r){let i,a=-1;for(let o of e){let e=t(o);Vi(e)&&(e[K.focused]&&a<Q.FocusedModifier?(i=o,a=Q.FocusedModifier):r?.isEqualTo(o)&&a<Q.LastFocused?(i=o,a=Q.LastFocused):n(o.date)&&a<Q.Selected?(i=o,a=Q.Selected):e[K.today]&&a<Q.Today&&(i=o,a=Q.Today))}return i||=e.find(e=>Vi(t(e))),i}function Ui(e,t,n,r,i,a,o){let{ISOWeek:s,broadcastCalendar:c}=a,{addDays:l,addMonths:u,addWeeks:d,addYears:f,endOfBroadcastWeek:p,endOfISOWeek:m,endOfWeek:h,max:g,min:_,startOfBroadcastWeek:v,startOfISOWeek:y,startOfWeek:b}=o,x={day:l,week:d,month:u,year:f,startOfWeek:e=>c?v(e,o):s?y(e):b(e),endOfWeek:e=>c?p(e):s?m(e):h(e)}[e](n,t===`after`?1:-1);return t===`before`&&r?x=g([r,x]):t===`after`&&i&&(x=_([i,x])),x}function Wi(e,t,n,r,i,a,o,s=0){if(s>365)return;let c=Ui(e,t,n.date,r,i,a,o),l=!!(a.disabled&&X(c,a.disabled,o)),u=!!(a.hidden&&X(c,a.hidden,o)),d=new or(c,c,o);return!l&&!u?d:Wi(e,t,d,r,i,a,o,s+1)}function Gi(e,t,n,r,i){let{autoFocus:a}=e,[o,s]=(0,W.useState)(),c=Hi(t.days,n,r||(()=>!1),o),[l,u]=(0,W.useState)(a?c:void 0);return{isFocusTarget:e=>!!c?.isEqualTo(e),setFocused:u,focused:l,blur:()=>{s(l),u(void 0)},moveFocus:(n,r)=>{if(!l)return;let a=Wi(n,r,l,t.navStart,t.navEnd,e,i);a&&(e.disableNavigation&&!t.days.some(e=>e.isEqualTo(a))||(t.goToDay(a),u(a)))}}}function Ki(e,t){let{selected:n,required:r,onSelect:i}=e,[a,o]=zi(n,i?n:void 0),s=i?n:a,{isSameDay:c}=t,l=e=>s?.some(t=>c(t,e))??!1,{min:u,max:d}=e;return{selected:s,select:(e,t,n)=>{let a=[...s??[]];if(l(e)){if(s?.length===u||r&&s?.length===1)return;a=s?.filter(t=>!c(t,e))}else a=s?.length===d?[e]:[...a,e];return i||o(a),i?.(a,e,t,n),a},isSelected:l}}function qi(e,t,n=0,r=0,i=!1,a=U){let{from:o,to:s}=t||{},{isSameDay:c,isAfter:l,isBefore:u}=a,d;if(!o&&!s)d={from:e,to:n>0?void 0:e};else if(o&&!s)d=c(o,e)?n===0?{from:o,to:e}:i?{from:o,to:void 0}:void 0:u(e,o)?{from:e,to:o}:{from:o,to:e};else if(o&&s){if(c(o,e)&&c(s,e))d=i?{from:o,to:s}:void 0;else if(c(o,e))d={from:o,to:n>0?void 0:e};else if(c(s,e))d={from:e,to:n>0?void 0:e};else if(u(e,o))d={from:e,to:s};else if(l(e,o))d={from:o,to:e};else if(l(e,s))d={from:o,to:e};else throw Error(`Invalid range`)}if(d?.from&&d?.to){let t=a.differenceInCalendarDays(d.to,d.from);(r>0&&t>r||n>1&&t<n)&&(d={from:e,to:void 0})}return d}function Ji(e,t,n=U){let r=Array.isArray(t)?t:[t],i=e.from,a=n.differenceInCalendarDays(e.to,e.from),o=Math.min(a,6);for(let e=0;e<=o;e++){if(r.includes(i.getDay()))return!0;i=n.addDays(i,1)}return!1}function Yi(e,t,n=U){return Y(e,t.from,!1,n)||Y(e,t.to,!1,n)||Y(t,e.from,!1,n)||Y(t,e.to,!1,n)}function Xi(e,t,n=U){let r=Array.isArray(t)?t:[t];if(r.filter(e=>typeof e!=`function`).some(t=>typeof t==`boolean`?t:n.isDate(t)?Y(e,t,!1,n):Hr(t,n)?t.some(t=>Y(e,t,!1,n)):Rr(t)?t.from&&t.to?Yi(e,{from:t.from,to:t.to},n):!1:Vr(t)?Ji(e,t.dayOfWeek,n):Lr(t)?n.isAfter(t.before,t.after)?Yi(e,{from:n.addDays(t.after,1),to:n.addDays(t.before,-1)},n):X(e.from,t,n)||X(e.to,t,n):zr(t)||Br(t)?X(e.from,t,n)||X(e.to,t,n):!1))return!0;let i=r.filter(e=>typeof e==`function`);if(i.length){let t=e.from,r=n.differenceInCalendarDays(e.to,e.from);for(let e=0;e<=r;e++){if(i.some(e=>e(t)))return!0;t=n.addDays(t,1)}}return!1}function Zi(e,t){let{disabled:n,excludeDisabled:r,resetOnSelect:i,selected:a,required:o,onSelect:s}=e,[c,l]=zi(a,s?a:void 0),u=s?a:c;return{selected:u,select:(a,c,d)=>{let{min:f,max:p}=e,m;if(a){let e=u?.from,n=u?.to,r=!!e&&!!n,s=!!e&&!!n&&t.isSameDay(e,n)&&t.isSameDay(a,e);m=i&&(r||!u?.from)?!o&&s?void 0:{from:a,to:void 0}:qi(a,u,f,p,o,t)}return r&&n&&m?.from&&m.to&&Xi({from:m.from,to:m.to},n,t)&&(m.from=a,m.to=void 0),s||l(m),s?.(m,a,c,d),m},isSelected:e=>u&&Y(u,e,!1,t)}}function Qi(e,t){let{selected:n,required:r,onSelect:i}=e,[a,o]=zi(n,i?n:void 0),s=i?n:a,{isSameDay:c}=t;return{selected:s,select:(e,t,n)=>{let a=e;return!r&&s&&s&&c(e,s)&&(a=void 0),i||o(a),i?.(a,e,t,n),a},isSelected:e=>s?c(s,e):!1}}function $i(e,t){let n=Qi(e,t),r=Ki(e,t),i=Zi(e,t);switch(e.mode){case`single`:return n;case`multiple`:return r;case`range`:return i;default:return}}function $(e,t){return e instanceof w&&e.timeZone===t?e:new w(e,t)}function ea(e,t,n){if(!n)return $(e,t);let r=$(e,t),i=new w(r.getFullYear(),r.getMonth(),r.getDate(),12,0,0,t);return new Date(i.getTime())}function ta(e,t,n){return typeof e==`boolean`||typeof e==`function`?e:e instanceof Date?ea(e,t,n):Array.isArray(e)?e.map(e=>e instanceof Date?ea(e,t,n):e):Rr(e)?{...e,from:e.from?$(e.from,t):e.from,to:e.to?$(e.to,t):e.to}:Lr(e)?{before:ea(e.before,t,n),after:ea(e.after,t,n)}:zr(e)?{after:ea(e.after,t,n)}:Br(e)?{before:ea(e.before,t,n)}:e}function na(e,t,n){return e&&(Array.isArray(e)?e.map(e=>ta(e,t,n)):ta(e,t,n))}function ra(e){let t=e,n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&(t.today=$(t.today,n)),t.month&&(t.month=$(t.month,n)),t.defaultMonth&&(t.defaultMonth=$(t.defaultMonth,n)),t.startMonth&&(t.startMonth=$(t.startMonth,n)),t.endMonth&&(t.endMonth=$(t.endMonth,n)),t.mode===`single`&&t.selected?t.selected=$(t.selected,n):t.mode===`multiple`&&t.selected?t.selected=t.selected?.map(e=>$(e,n)):t.mode===`range`&&t.selected&&(t.selected={from:t.selected.from?$(t.selected.from,n):t.selected.from,to:t.selected.to?$(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=na(t.disabled,n)),t.hidden!==void 0&&(t.hidden=na(t.hidden,n)),t.modifiers)){let e={};Object.keys(t.modifiers).forEach(r=>{e[r]=na(t.modifiers?.[r],n)}),t.modifiers=e}let{components:r,formatters:i,labels:a,dateLib:o,locale:s,classNames:c}=(0,W.useMemo)(()=>{let e={...ar,...t.locale},n=t.broadcastCalendar?1:t.weekStartsOn,r=t.noonSafe&&t.timeZone?xi(t.timeZone,{weekStartsOn:n,locale:e}):void 0,i=t.dateLib&&r?{...r,...t.dateLib}:t.dateLib??r,a=new H({locale:e,weekStartsOn:n,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},i);return{dateLib:a,components:Gr(t.components),formatters:ni(t.formatters),labels:gi(t.labels,a.options),locale:e,classNames:{...qr(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.noonSafe,t.components,t.formatters,t.labels,t.classNames]);t.today||(t={...t,today:o.today()});let{captionLayout:l,mode:u,navLayout:d,numberOfMonths:f=1,onDayBlur:p,onDayClick:m,onDayFocus:h,onDayKeyDown:g,onDayMouseEnter:_,onDayMouseLeave:v,onNextClick:y,onPrevClick:b,showWeekNumber:x,styles:S}=t,{formatCaption:ee,formatDay:te,formatMonthDropdown:C,formatWeekNumber:w,formatWeekNumberHeader:ne,formatWeekdayName:re,formatYearDropdown:ie}=i,ae=Bi(t,o),{days:oe,months:se,navStart:ce,navEnd:le,previousMonth:T,nextMonth:E,goToMonth:D}=ae,ue=Ur(oe,t,ce,le,o),{isSelected:de,select:O,selected:k}=$i(t,o)??{},{blur:A,focused:fe,isFocusTarget:pe,moveFocus:j,setFocused:M}=Gi(t,ae,ue,de??(()=>!1),o),{labelDayButton:me,labelGridcell:he,labelGrid:ge,labelMonthDropdown:_e,labelNav:ve,labelPrevious:ye,labelNext:be,labelWeekday:xe,labelWeekNumber:Se,labelWeekNumberHeader:Ce,labelYearDropdown:we}=a,Te=(0,W.useMemo)(()=>yi(o,t.ISOWeek,t.broadcastCalendar,t.today),[o,t.ISOWeek,t.broadcastCalendar,t.today]),Ee=u!==void 0||m!==void 0,De=(0,W.useCallback)(()=>{T&&(D(T),b?.(T))},[T,D,b]),Oe=(0,W.useCallback)(()=>{E&&(D(E),y?.(E))},[D,E,y]),ke=(0,W.useCallback)((e,t)=>n=>{n.preventDefault(),n.stopPropagation(),M(e),!t.disabled&&(O?.(e.date,t,n),m?.(e.date,t,n))},[O,m,M]),Ae=(0,W.useCallback)((e,t)=>n=>{M(e),h?.(e.date,t,n)},[h,M]),je=(0,W.useCallback)((e,t)=>n=>{A(),p?.(e.date,t,n)},[A,p]),Me=(0,W.useCallback)((e,n)=>r=>{let i={ArrowLeft:[r.shiftKey?`month`:`day`,t.dir===`rtl`?`after`:`before`],ArrowRight:[r.shiftKey?`month`:`day`,t.dir===`rtl`?`before`:`after`],ArrowDown:[r.shiftKey?`year`:`week`,`after`],ArrowUp:[r.shiftKey?`year`:`week`,`before`],PageUp:[r.shiftKey?`year`:`month`,`before`],PageDown:[r.shiftKey?`year`:`month`,`after`],Home:[`startOfWeek`,`before`],End:[`endOfWeek`,`after`]};if(i[r.key]){r.preventDefault(),r.stopPropagation();let[e,t]=i[r.key];j(e,t)}g?.(e.date,n,r)},[j,g,t.dir]),Ne=(0,W.useCallback)((e,t)=>n=>{_?.(e.date,t,n)},[_]),Pe=(0,W.useCallback)((e,t)=>n=>{v?.(e.date,t,n)},[v]),Fe=(0,W.useCallback)((e,t)=>n=>{let r=Number(n.target.value),i=o.setMonth(o.startOfMonth(e),r);D(o.addMonths(i,-t))},[o,D]),Ie=(0,W.useCallback)((e,t)=>n=>{let r=Number(n.target.value),i=o.setYear(o.startOfMonth(e),r);D(o.addMonths(i,-t))},[o,D]),{className:Le,style:Re}=(0,W.useMemo)(()=>({className:[c[G.Root],t.className].filter(Boolean).join(` `),style:{...S?.[G.Root],...t.style}}),[c,t.className,t.style,S]),ze=Kr(t),Be=e=>{let t=S?.[G.Dropdown],n=S?.[e];if(!(!t&&!n))return{...t,...n}},Ve=(0,W.useRef)(null);ki(Ve,!!t.animate,{classNames:c,months:se,focused:fe,dateLib:o});let He={dayPickerProps:t,selected:k,select:O,isSelected:de,months:se,nextMonth:E,previousMonth:T,goToMonth:D,getModifiers:ue,components:r,classNames:c,styles:S,labels:a,formatters:i};return W.createElement(pr.Provider,{value:He},W.createElement(r.Root,{rootRef:t.animate?Ve:void 0,className:Le,style:Re,dir:t.dir,id:t.id,lang:t.lang??s.code,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t[`aria-label`],"aria-labelledby":t[`aria-labelledby`],...ze},W.createElement(r.Months,{className:c[G.Months],style:S?.[G.Months]},!t.hideNavigation&&!d&&W.createElement(r.Nav,{"data-animated-nav":t.animate?`true`:void 0,className:c[G.Nav],style:S?.[G.Nav],"aria-label":ve(),onPreviousClick:De,onNextClick:Oe,previousMonth:T,nextMonth:E}),se.map((e,n)=>{let a=t.reverseMonths?se.length-1-n:n;return W.createElement(r.Month,{"data-animated-month":t.animate?`true`:void 0,className:c[G.Month],style:S?.[G.Month],key:n,displayIndex:n,calendarMonth:e},d===`around`&&!t.hideNavigation&&n===0&&W.createElement(r.PreviousMonthButton,{type:`button`,className:c[G.PreviousMonthButton],style:S?.[G.PreviousMonthButton],tabIndex:T?void 0:-1,"aria-disabled":!T||void 0,"aria-label":ye(T),onClick:De,"data-animated-button":t.animate?`true`:void 0},W.createElement(r.Chevron,{disabled:!T||void 0,className:c[G.Chevron],style:S?.[G.Chevron],orientation:t.dir===`rtl`?`right`:`left`})),W.createElement(r.MonthCaption,{"data-animated-caption":t.animate?`true`:void 0,className:c[G.MonthCaption],style:S?.[G.MonthCaption],calendarMonth:e,displayIndex:n},l?.startsWith(`dropdown`)?W.createElement(r.DropdownNav,{className:c[G.Dropdowns],style:S?.[G.Dropdowns]},(()=>{let n=l===`dropdown`||l===`dropdown-months`?W.createElement(r.MonthsDropdown,{key:`month`,className:c[G.MonthsDropdown],"aria-label":_e(),disabled:!!t.disableNavigation,onChange:Fe(e.date,a),options:_i(e.date,ce,le,i,o),style:Be(G.MonthsDropdown),value:o.getMonth(e.date)}):W.createElement(`span`,{key:`month`},C(e.date,o)),s=l===`dropdown`||l===`dropdown-years`?W.createElement(r.YearsDropdown,{key:`year`,className:c[G.YearsDropdown],"aria-label":we(o.options),disabled:!!t.disableNavigation,onChange:Ie(e.date,a),options:bi(ce,le,i,o,!!t.reverseYears),style:Be(G.YearsDropdown),value:o.getYear(e.date)}):W.createElement(`span`,{key:`year`},ie(e.date,o));return o.getMonthYearOrder()===`year-first`?[s,n]:[n,s]})(),W.createElement(`span`,{role:`status`,"aria-live":`polite`,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,width:`1px`,whiteSpace:`nowrap`,wordWrap:`normal`}},ee(e.date,o.options,o))):W.createElement(r.CaptionLabel,{className:c[G.CaptionLabel],style:S?.[G.CaptionLabel],role:`status`,"aria-live":`polite`},ee(e.date,o.options,o))),d===`around`&&!t.hideNavigation&&n===f-1&&W.createElement(r.NextMonthButton,{type:`button`,className:c[G.NextMonthButton],style:S?.[G.NextMonthButton],tabIndex:E?void 0:-1,"aria-disabled":!E||void 0,"aria-label":be(E),onClick:Oe,"data-animated-button":t.animate?`true`:void 0},W.createElement(r.Chevron,{disabled:!E||void 0,className:c[G.Chevron],style:S?.[G.Chevron],orientation:t.dir===`rtl`?`left`:`right`})),n===f-1&&d===`after`&&!t.hideNavigation&&W.createElement(r.Nav,{"data-animated-nav":t.animate?`true`:void 0,className:c[G.Nav],style:S?.[G.Nav],"aria-label":ve(),onPreviousClick:De,onNextClick:Oe,previousMonth:T,nextMonth:E}),W.createElement(r.MonthGrid,{role:`grid`,"aria-multiselectable":u===`multiple`||u===`range`,"aria-label":ge(e.date,o.options,o)||void 0,className:c[G.MonthGrid],style:S?.[G.MonthGrid]},!t.hideWeekdays&&W.createElement(r.Weekdays,{"data-animated-weekdays":t.animate?`true`:void 0,className:c[G.Weekdays],style:S?.[G.Weekdays]},x&&W.createElement(r.WeekNumberHeader,{"aria-label":Ce(o.options),className:c[G.WeekNumberHeader],style:S?.[G.WeekNumberHeader],scope:`col`},ne()),Te.map(e=>W.createElement(r.Weekday,{"aria-label":xe(e,o.options,o),className:c[G.Weekday],key:String(e),style:S?.[G.Weekday],scope:`col`},re(e,o.options,o)))),W.createElement(r.Weeks,{"data-animated-weeks":t.animate?`true`:void 0,className:c[G.Weeks],style:S?.[G.Weeks]},e.weeks.map(e=>W.createElement(r.Week,{className:c[G.Week],key:e.weekNumber,style:S?.[G.Week],week:e},x&&W.createElement(r.WeekNumber,{week:e,style:S?.[G.WeekNumber],"aria-label":Se(e.weekNumber,{locale:s}),className:c[G.WeekNumber],scope:`row`,role:`rowheader`},w(e.weekNumber,o)),e.days.map(e=>{let{date:n}=e,i=ue(e);if(i[K.focused]=!i.hidden&&!!fe?.isEqualTo(e),i[q.selected]=de?.(n)||i.selected,Rr(k)){let{from:e,to:t}=k;i[q.range_start]=!!(e&&t&&o.isSameDay(n,e)),i[q.range_end]=!!(e&&t&&o.isSameDay(n,t)),i[q.range_middle]=Y(k,n,!0,o)}let a=vi(i,S,t.modifiersStyles),s=Wr(i,c,t.modifiersClassNames),l=!Ee&&!i.hidden?he(n,i,o.options,o):void 0;return W.createElement(r.Day,{key:`${e.isoDate}_${e.displayMonthId}`,day:e,modifiers:i,className:s.join(` `),style:a,role:`gridcell`,"aria-selected":i.selected||void 0,"aria-label":l,"data-day":e.isoDate,"data-month":e.outside?e.dateMonthId:void 0,"data-selected":i.selected||void 0,"data-disabled":i.disabled||void 0,"data-hidden":i.hidden||void 0,"data-outside":e.outside||void 0,"data-focused":i.focused||void 0,"data-today":i.today||void 0},!i.hidden&&Ee?W.createElement(r.DayButton,{className:c[G.DayButton],style:S?.[G.DayButton],type:`button`,day:e,modifiers:i,disabled:!i.focused&&i.disabled||void 0,"aria-disabled":i.focused&&i.disabled||void 0,tabIndex:pe(e)?0:-1,"aria-label":me(n,i,o.options,o),onClick:ke(e,i),onBlur:je(e,i),onFocus:Ae(e,i),onKeyDown:Me(e,i),onMouseEnter:Ne(e,i),onMouseLeave:Pe(e,i)},te(n,o.options,o)):!i.hidden&&te(e.date,o.options,o))}))))))})),t.footer&&W.createElement(r.Footer,{className:c[G.Footer],style:S?.[G.Footer],role:`status`,"aria-live":`polite`},t.footer)))}var ia=r();function aa(e){let{options:t=[],value:n,onChange:r,disabled:a,className:d}=e,f=e[`aria-label`];return(0,ia.jsxs)(u,{value:n==null?void 0:String(n),onValueChange:e=>{r?.({target:{value:e}})},disabled:a,children:[(0,ia.jsx)(o,{"aria-label":f,className:i(`h-7 w-auto gap-1 rounded-md border-transparent bg-transparent px-2 text-sm font-medium shadow-none hover:bg-accent hover:text-accent-foreground focus:ring-1 [&>svg]:size-3.5 [&>svg]:opacity-60`,d),children:(0,ia.jsx)(l,{})}),(0,ia.jsx)(c,{className:`max-h-[var(--radix-select-content-available-height)]`,children:t.map(e=>(0,ia.jsx)(s,{value:String(e.value),disabled:e.disabled,children:e.label},e.value))})]})}var oa=new Date().getFullYear(),sa=new Date(oa-100,0,1),ca=new Date(oa+10,11,31);function la({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r=`dropdown`,startMonth:o=sa,endMonth:s=ca,...c}){return(0,ia.jsx)(ra,{showOutsideDays:n,fixedWeeks:!0,captionLayout:r,startMonth:o,endMonth:s,className:i(`p-3`,e),classNames:{months:`flex flex-col gap-4 sm:flex-row sm:gap-6`,month:`flex flex-col gap-3`,month_caption:`flex justify-center pt-1 relative items-center h-9 px-9`,caption_label:`inline-flex items-center gap-1 text-sm font-medium [&>svg]:size-3.5 [&>svg]:opacity-60`,dropdowns:`flex items-center gap-1`,dropdown_root:`relative inline-flex`,dropdown:``,months_dropdown:``,years_dropdown:``,nav:`absolute inset-x-1 top-1 flex items-center justify-between pointer-events-none z-10`,button_previous:i(a({variant:`ghost`,size:`icon`}),`pointer-events-auto size-7 p-0 opacity-70 hover:opacity-100`),button_next:i(a({variant:`ghost`,size:`icon`}),`pointer-events-auto size-7 p-0 opacity-70 hover:opacity-100`),month_grid:`w-full border-collapse space-y-1`,weekdays:`flex`,weekday:`text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]`,week:`flex w-full mt-2`,day:`relative p-0 text-center text-sm focus-within:relative focus-within:z-20`,day_button:i(a({variant:`ghost`}),`size-9 rounded-md p-0 font-normal aria-selected:opacity-100`),range_start:`day-range-start`,range_end:`day-range-end`,selected:`[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary [&>button]:hover:text-primary-foreground [&>button]:focus:bg-primary [&>button]:focus:text-primary-foreground`,today:`[&>button]:bg-accent [&>button]:text-accent-foreground`,outside:`day-outside text-muted-foreground aria-selected:text-muted-foreground`,disabled:`text-muted-foreground opacity-50`,range_middle:`[&>button]:bg-accent [&>button]:text-accent-foreground`,hidden:`invisible`,...t},components:{Chevron:({orientation:e,className:t})=>(0,ia.jsx)(e===`left`?d:f,{className:i(`size-4 pointer-events-none`,t)}),Dropdown:aa},...c})}la.displayName=`Calendar`;export{_t as a,ue as c,On as i,Mn as n,De as o,An as r,Se as s,la as t};
|
|
2
|
-
//# sourceMappingURL=calendar-BuLRvNBg.js.map
|
|
Binary file
|
|
Binary file
|