palettecn 0.1.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/index.mjs +10 -0
- package/dist/web/nitro.json +17 -0
- package/dist/web/public/assets/abap-BdvmRIgS.js +1 -0
- package/dist/web/public/assets/actionscript-3-et0rQaqm.js +1 -0
- package/dist/web/public/assets/ada-DPgrustg.js +1 -0
- package/dist/web/public/assets/andromeeda-DJl1yeV_.js +1 -0
- package/dist/web/public/assets/angular-html-Dm7s7tSx.js +1 -0
- package/dist/web/public/assets/angular-ts-B_ywTULt.js +1 -0
- package/dist/web/public/assets/apache-CFpsYX8S.js +1 -0
- package/dist/web/public/assets/apex-CN5n6pbI.js +1 -0
- package/dist/web/public/assets/apl-Dm11wHHc.js +1 -0
- package/dist/web/public/assets/applescript-JrY23hsL.js +1 -0
- package/dist/web/public/assets/ara-DR83hn3A.js +1 -0
- package/dist/web/public/assets/asciidoc-Dpu9XLB1.js +1 -0
- package/dist/web/public/assets/asm-BYI3A31V.js +1 -0
- package/dist/web/public/assets/astro-DP1naDCT.js +1 -0
- package/dist/web/public/assets/aurora-x-Nav5jnoQ.js +1 -0
- package/dist/web/public/assets/awk-BIoTx_w6.js +1 -0
- package/dist/web/public/assets/ayu-dark-H5QV5J7K.js +1 -0
- package/dist/web/public/assets/ayu-light-BrwTNGnU.js +1 -0
- package/dist/web/public/assets/ayu-mirage-Bg6FpF5w.js +1 -0
- package/dist/web/public/assets/ballerina-BFvDNd4T.js +1 -0
- package/dist/web/public/assets/bat-DtQkx7Ny.js +1 -0
- package/dist/web/public/assets/beancount-BIjKALa1.js +1 -0
- package/dist/web/public/assets/berry-BPkDN_EZ.js +1 -0
- package/dist/web/public/assets/bibtex-Dur2CNW6.js +1 -0
- package/dist/web/public/assets/bicep-BMz1bZ7m.js +1 -0
- package/dist/web/public/assets/bird2-91rdr9s7.js +1 -0
- package/dist/web/public/assets/blade-DD5O596X.js +1 -0
- package/dist/web/public/assets/bsl-FmB7U2qd.js +1 -0
- package/dist/web/public/assets/bundle-mjs-Bso3xn9x.js +1 -0
- package/dist/web/public/assets/c-DqqBLLyl.js +1 -0
- package/dist/web/public/assets/c3-CJTbEooS.js +1 -0
- package/dist/web/public/assets/cadence-C0GI7BZZ.js +1 -0
- package/dist/web/public/assets/cairo-B5JMmIC0.js +1 -0
- package/dist/web/public/assets/catppuccin-frappe-D76-cUjK.js +1 -0
- package/dist/web/public/assets/catppuccin-latte-DUHNJ_6_.js +1 -0
- package/dist/web/public/assets/catppuccin-macchiato-CFhPH2wd.js +1 -0
- package/dist/web/public/assets/catppuccin-mocha-BRD0cvUW.js +1 -0
- package/dist/web/public/assets/chunk-FRKYWMV7-DUkk3w4h.js +122 -0
- package/dist/web/public/assets/clarity-KgUVrNfC.js +1 -0
- package/dist/web/public/assets/clojure-BhQuoGIG.js +1 -0
- package/dist/web/public/assets/cmake-CA59gUFQ.js +1 -0
- package/dist/web/public/assets/cobol-CCFShgGZ.js +1 -0
- package/dist/web/public/assets/codeowners-CD36YqjJ.js +1 -0
- package/dist/web/public/assets/codeql-CrMosKUt.js +1 -0
- package/dist/web/public/assets/coffee-C-Mn3tBT.js +1 -0
- package/dist/web/public/assets/common-lisp-DYnOjAFz.js +1 -0
- package/dist/web/public/assets/components-DiZ1dSl3.js +77 -0
- package/dist/web/public/assets/coq-BaHtq3Qt.js +1 -0
- package/dist/web/public/assets/cpp-D8Y73ItU.js +1 -0
- package/dist/web/public/assets/crystal-CnXWqbxx.js +1 -0
- package/dist/web/public/assets/csharp-D6sghVPa.js +1 -0
- package/dist/web/public/assets/css-CUGjdPw_.js +1 -0
- package/dist/web/public/assets/csv-DuxyxUAI.js +1 -0
- package/dist/web/public/assets/cue-D9NRAX0_.js +1 -0
- package/dist/web/public/assets/cypher-HJRdtilF.js +1 -0
- package/dist/web/public/assets/d-B4Ont7_X.js +1 -0
- package/dist/web/public/assets/dark-plus-DZSBycyp.js +1 -0
- package/dist/web/public/assets/dart-Dp4asavE.js +1 -0
- package/dist/web/public/assets/dax-DBUubp6S.js +1 -0
- package/dist/web/public/assets/desktop-DQ0n6zIQ.js +1 -0
- package/dist/web/public/assets/diff-CFHlrffC.js +1 -0
- package/dist/web/public/assets/docker-BuefmsF5.js +1 -0
- package/dist/web/public/assets/dotenv-BKTsUQ_r.js +1 -0
- package/dist/web/public/assets/dracula-MOn9qacs.js +1 -0
- package/dist/web/public/assets/dracula-soft-C4r_sC_D.js +1 -0
- package/dist/web/public/assets/dream-maker-BNdv5lLS.js +1 -0
- package/dist/web/public/assets/edge-C-Mi8Oda.js +1 -0
- package/dist/web/public/assets/elixir-CTS5wQtX.js +1 -0
- package/dist/web/public/assets/elm-rM310x8D.js +1 -0
- package/dist/web/public/assets/emacs-lisp-D9FIGRtM.js +1 -0
- package/dist/web/public/assets/erb-oaGjGVGO.js +1 -0
- package/dist/web/public/assets/erlang-q4Mkyw3m.js +1 -0
- package/dist/web/public/assets/everforest-dark-CNa2QFRn.js +1 -0
- package/dist/web/public/assets/everforest-light-DRbUDqJT.js +1 -0
- package/dist/web/public/assets/fennel-DpqQTaVZ.js +1 -0
- package/dist/web/public/assets/field-1-Ujza0S5j.js +1 -0
- package/dist/web/public/assets/fish-hyk5x6Q4.js +1 -0
- package/dist/web/public/assets/fluent-DMll-MGX.js +1 -0
- package/dist/web/public/assets/fortran-fixed-form-BmdfKovV.js +1 -0
- package/dist/web/public/assets/fortran-free-form-MCAifii4.js +1 -0
- package/dist/web/public/assets/fsharp-DLlBn9Nl.js +1 -0
- package/dist/web/public/assets/gdresource-BzFzBRli.js +1 -0
- package/dist/web/public/assets/gdscript-D3R4J0Cv.js +1 -0
- package/dist/web/public/assets/gdshader-BAubtqqN.js +1 -0
- package/dist/web/public/assets/genie-BnIIX2pC.js +1 -0
- package/dist/web/public/assets/gherkin-CL3NUuB1.js +1 -0
- package/dist/web/public/assets/git-commit-BYPE8h85.js +1 -0
- package/dist/web/public/assets/git-rebase-Bmmgf6eN.js +1 -0
- package/dist/web/public/assets/github-dark-default-C6I2oE4c.js +1 -0
- package/dist/web/public/assets/github-dark-dimmed-DEqwxg6D.js +1 -0
- package/dist/web/public/assets/github-dark-high-contrast-DDt3j0cs.js +1 -0
- package/dist/web/public/assets/github-dark-oLN6SDKl.js +1 -0
- package/dist/web/public/assets/github-light-DaN-N2Gj.js +1 -0
- package/dist/web/public/assets/github-light-default-B3EwMbS7.js +1 -0
- package/dist/web/public/assets/github-light-high-contrast-Cl9D0f_e.js +1 -0
- package/dist/web/public/assets/gleam-Cvj8QRtQ.js +1 -0
- package/dist/web/public/assets/glimmer-js-CahbROb1.js +1 -0
- package/dist/web/public/assets/glimmer-ts-JMFYNbot.js +1 -0
- package/dist/web/public/assets/global-XWAvxWcA.css +2 -0
- package/dist/web/public/assets/glsl-BCuCNM3V.js +1 -0
- package/dist/web/public/assets/gn-DxCHSEMl.js +1 -0
- package/dist/web/public/assets/gnuplot-CkGXHK7B.js +1 -0
- package/dist/web/public/assets/go-B_NLCuTj.js +1 -0
- package/dist/web/public/assets/graphql-RXOfHGfI.js +1 -0
- package/dist/web/public/assets/groovy-DVge8oRs.js +1 -0
- package/dist/web/public/assets/gruvbox-dark-hard-BwZz1yni.js +1 -0
- package/dist/web/public/assets/gruvbox-dark-medium-Bqy6jkuO.js +1 -0
- package/dist/web/public/assets/gruvbox-dark-soft-DjUvyUfH.js +1 -0
- package/dist/web/public/assets/gruvbox-light-hard-BTLmfPdm.js +1 -0
- package/dist/web/public/assets/gruvbox-light-medium-DeWqsWs6.js +1 -0
- package/dist/web/public/assets/gruvbox-light-soft-BL8ld-1F.js +1 -0
- package/dist/web/public/assets/hack-BBQpwyf_.js +1 -0
- package/dist/web/public/assets/haml-mWELc9kh.js +1 -0
- package/dist/web/public/assets/handlebars-COrUo8cC.js +1 -0
- package/dist/web/public/assets/haskell-DRmM8XlQ.js +1 -0
- package/dist/web/public/assets/haxe-BEhq8ZEr.js +1 -0
- package/dist/web/public/assets/hcl-B5ZIaGS0.js +1 -0
- package/dist/web/public/assets/highlighted-body-TPN3WLV5-YJgGFx4e.js +1 -0
- package/dist/web/public/assets/hjson-B9uRLqIO.js +1 -0
- package/dist/web/public/assets/hlsl-Hv1kKjrS.js +1 -0
- package/dist/web/public/assets/horizon-ClXGBjWw.js +1 -0
- package/dist/web/public/assets/horizon-bright-CvUCr3ux.js +1 -0
- package/dist/web/public/assets/houston-NqkqG60q.js +1 -0
- package/dist/web/public/assets/html-cmigv1ou.js +1 -0
- package/dist/web/public/assets/html-derivative-B3me0pSu.js +1 -0
- package/dist/web/public/assets/http-BojM9cyU.js +1 -0
- package/dist/web/public/assets/hurl-BxEmMiGP.js +1 -0
- package/dist/web/public/assets/hxml-CoBuVbfs.js +1 -0
- package/dist/web/public/assets/hy-CeISYGGU.js +1 -0
- package/dist/web/public/assets/imba-xjcDFXUW.js +1 -0
- package/dist/web/public/assets/ini-D0ZCSj6e.js +1 -0
- package/dist/web/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/dist/web/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/dist/web/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/dist/web/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/dist/web/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/dist/web/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/dist/web/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/dist/web/public/assets/java-BvheClGI.js +1 -0
- package/dist/web/public/assets/javascript-DjlJORDg.js +1 -0
- package/dist/web/public/assets/jinja-Bi4sG72X.js +1 -0
- package/dist/web/public/assets/jison-BTz5Ik2Y.js +1 -0
- package/dist/web/public/assets/json-CiTd40Rg.js +1 -0
- package/dist/web/public/assets/json5-FR9EyF7a.js +1 -0
- package/dist/web/public/assets/jsonc-CHIeFfsD.js +1 -0
- package/dist/web/public/assets/jsonl-B4WQkwTf.js +1 -0
- package/dist/web/public/assets/jsonnet-vd-gzGkL.js +1 -0
- package/dist/web/public/assets/jssm-C_bj1LkZ.js +1 -0
- package/dist/web/public/assets/jsx-Bx-RZMFH.js +1 -0
- package/dist/web/public/assets/jsx-runtime-n8k0hwt8.js +1 -0
- package/dist/web/public/assets/julia-BKcIfSxk.js +1 -0
- package/dist/web/public/assets/just-IkZCagAs.js +1 -0
- package/dist/web/public/assets/kanagawa-dragon-B3Cz89vt.js +1 -0
- package/dist/web/public/assets/kanagawa-lotus-CRe_W5Ft.js +1 -0
- package/dist/web/public/assets/kanagawa-wave-BPqZ5XB7.js +1 -0
- package/dist/web/public/assets/kdl-BzL_Ak31.js +1 -0
- package/dist/web/public/assets/kotlin-BQQFk6ql.js +1 -0
- package/dist/web/public/assets/kusto-vWe6OLKV.js +1 -0
- package/dist/web/public/assets/laserwave-CwtvEUcj.js +1 -0
- package/dist/web/public/assets/latex-9N90_WFU.js +1 -0
- package/dist/web/public/assets/lean-CaqenOqv.js +1 -0
- package/dist/web/public/assets/less-CERnPzn6.js +1 -0
- package/dist/web/public/assets/light-plus-B9_M_OKq.js +1 -0
- package/dist/web/public/assets/liquid-CQLPDP7m.js +1 -0
- package/dist/web/public/assets/llvm-BylJXvm7.js +1 -0
- package/dist/web/public/assets/log-CBBcNcbO.js +1 -0
- package/dist/web/public/assets/logo-r-8Jc8Xk.js +1 -0
- package/dist/web/public/assets/lua-BBL6LXKd.js +1 -0
- package/dist/web/public/assets/luau-B2g7L-zP.js +1 -0
- package/dist/web/public/assets/main-0lKVDR64.css +2 -0
- package/dist/web/public/assets/main-CcNf0BOb.js +126 -0
- package/dist/web/public/assets/make-DK-HzJ2w.js +1 -0
- package/dist/web/public/assets/markdown-FgdsukgR.js +1 -0
- package/dist/web/public/assets/marko-CLZwt2N2.js +1 -0
- package/dist/web/public/assets/material-theme-DOJ9PS4O.js +1 -0
- package/dist/web/public/assets/material-theme-darker-DOurH5jT.js +1 -0
- package/dist/web/public/assets/material-theme-lighter-BfPWxCP6.js +1 -0
- package/dist/web/public/assets/material-theme-ocean-BcO5PKoq.js +1 -0
- package/dist/web/public/assets/material-theme-palenight-ClWQBDDd.js +1 -0
- package/dist/web/public/assets/matlab-DwyUVNXd.js +1 -0
- package/dist/web/public/assets/mdc-Bo8CRPg4.js +1 -0
- package/dist/web/public/assets/mdx-3EBShbsD.js +1 -0
- package/dist/web/public/assets/mermaid-ByG2-SLz.js +1 -0
- package/dist/web/public/assets/mermaid-O7DHMXV3-COAgR3aM.js +1 -0
- package/dist/web/public/assets/min-dark-ClJ2x5pc.js +1 -0
- package/dist/web/public/assets/min-light-BsOUz5iE.js +1 -0
- package/dist/web/public/assets/mipsasm-BKDtQCf3.js +1 -0
- package/dist/web/public/assets/mojo-DmEAK7iv.js +1 -0
- package/dist/web/public/assets/monokai-BKc3VADO.js +1 -0
- package/dist/web/public/assets/moonbit-Qm8v_cKN.js +1 -0
- package/dist/web/public/assets/move-CMectUPk.js +1 -0
- package/dist/web/public/assets/narrat-Bdm8NaK8.js +1 -0
- package/dist/web/public/assets/nextflow-BpSt05nC.js +1 -0
- package/dist/web/public/assets/nextflow-groovy-BZ-bqJ-u.js +1 -0
- package/dist/web/public/assets/nginx-ChZL5FWE.js +1 -0
- package/dist/web/public/assets/night-owl-CbFc5pXO.js +1 -0
- package/dist/web/public/assets/night-owl-light-zYbVCVuz.js +1 -0
- package/dist/web/public/assets/nim-5JnPAJWa.js +1 -0
- package/dist/web/public/assets/nix-P5P-2qHs.js +1 -0
- package/dist/web/public/assets/nord-C7hKGudV.js +1 -0
- package/dist/web/public/assets/nushell-DKPnC5RG.js +1 -0
- package/dist/web/public/assets/objective-c-BPwXtM0v.js +1 -0
- package/dist/web/public/assets/objective-cpp-CWYEdWNG.js +1 -0
- package/dist/web/public/assets/ocaml-CL7OJ02v.js +1 -0
- package/dist/web/public/assets/odin-Dtay25eA.js +1 -0
- package/dist/web/public/assets/one-dark-pro-CrdFNNwF.js +1 -0
- package/dist/web/public/assets/one-light-BUiz8X4B.js +1 -0
- package/dist/web/public/assets/openscad-WD4sXUUp.js +1 -0
- package/dist/web/public/assets/pascal-A6-MZnZ8.js +1 -0
- package/dist/web/public/assets/perl-Yq3AfnVV.js +1 -0
- package/dist/web/public/assets/php-CCj0foPx.js +1 -0
- package/dist/web/public/assets/pkl-cmPbg8fI.js +1 -0
- package/dist/web/public/assets/plastic-DtQ_LnDB.js +1 -0
- package/dist/web/public/assets/plsql-DwmuVd7q.js +1 -0
- package/dist/web/public/assets/po-CkVxkZaj.js +1 -0
- package/dist/web/public/assets/poimandres-Dt0xZuaa.js +1 -0
- package/dist/web/public/assets/polar-hStNz_W2.js +1 -0
- package/dist/web/public/assets/postcss-ZIk0AQ7M.js +1 -0
- package/dist/web/public/assets/powerquery-D0gqoHHD.js +1 -0
- package/dist/web/public/assets/powershell-DXB5HoVh.js +1 -0
- package/dist/web/public/assets/prisma-DmTrfxC0.js +1 -0
- package/dist/web/public/assets/prolog-CdoyriEj.js +1 -0
- package/dist/web/public/assets/proto-4MrN11dS.js +1 -0
- package/dist/web/public/assets/pug-svYJKDOQ.js +1 -0
- package/dist/web/public/assets/puppet-MEaLGpAP.js +1 -0
- package/dist/web/public/assets/purescript-CPxCorqB.js +1 -0
- package/dist/web/public/assets/python-f4fp5z0z.js +1 -0
- package/dist/web/public/assets/qml-BzEtWdqI.js +1 -0
- package/dist/web/public/assets/qmldir-DCjSceJ_.js +1 -0
- package/dist/web/public/assets/qss-BdM02NUc.js +1 -0
- package/dist/web/public/assets/r-luosIeJH.js +1 -0
- package/dist/web/public/assets/racket-D2tfa8Zc.js +1 -0
- package/dist/web/public/assets/raku-KeGPJVZg.js +1 -0
- package/dist/web/public/assets/razor-Bokxs4Qx.js +1 -0
- package/dist/web/public/assets/red-C0qZ-1lN.js +1 -0
- package/dist/web/public/assets/reg-DdnswvOj.js +1 -0
- package/dist/web/public/assets/regexp-CYC8h6V9.js +1 -0
- package/dist/web/public/assets/rel-RhzEfSRc.js +1 -0
- package/dist/web/public/assets/riscv-dS5TzX10.js +1 -0
- package/dist/web/public/assets/ron-CQjQSCVp.js +1 -0
- package/dist/web/public/assets/rose-pine-C89ViLdr.js +1 -0
- package/dist/web/public/assets/rose-pine-dawn-Dq2gf0yi.js +1 -0
- package/dist/web/public/assets/rose-pine-moon-CBDvXVs_.js +1 -0
- package/dist/web/public/assets/rosmsg-nvjuSIGu.js +1 -0
- package/dist/web/public/assets/routes-BXqJCOpL.js +542 -0
- package/dist/web/public/assets/rst-1xwvVGf7.js +1 -0
- package/dist/web/public/assets/ruby-Blad-eDx.js +1 -0
- package/dist/web/public/assets/rust-rV8q_xyI.js +1 -0
- package/dist/web/public/assets/sas-DUPWtptg.js +1 -0
- package/dist/web/public/assets/sass-CuxdoNN0.js +1 -0
- package/dist/web/public/assets/scala-Df4L7N3R.js +1 -0
- package/dist/web/public/assets/scheme-DalRmAPH.js +1 -0
- package/dist/web/public/assets/scss-CYQ8LEwP.js +1 -0
- package/dist/web/public/assets/sdbl-B_TmFnGf.js +1 -0
- package/dist/web/public/assets/shaderlab-DYEMDY3e.js +1 -0
- package/dist/web/public/assets/shellscript-DjKZ34ac.js +1 -0
- package/dist/web/public/assets/shellsession-C3kcnBnh.js +1 -0
- package/dist/web/public/assets/slack-dark-ak_jOeLl.js +1 -0
- package/dist/web/public/assets/slack-ochin-ByiYhLwu.js +1 -0
- package/dist/web/public/assets/smalltalk-DTTnjjZJ.js +1 -0
- package/dist/web/public/assets/snazzy-light-BBRYeY60.js +1 -0
- package/dist/web/public/assets/solarized-dark-BtoLnWkw.js +1 -0
- package/dist/web/public/assets/solarized-light-CtzUA7GI.js +1 -0
- package/dist/web/public/assets/solidity-CSIHEQ2t.js +1 -0
- package/dist/web/public/assets/soy-BN0uzUAI.js +1 -0
- package/dist/web/public/assets/sparql-B6k9tA6Q.js +1 -0
- package/dist/web/public/assets/splunk-DkRzN7V_.js +1 -0
- package/dist/web/public/assets/sql-Bx-WX28V.js +1 -0
- package/dist/web/public/assets/ssh-config-Bqp7ng33.js +1 -0
- package/dist/web/public/assets/stata-HAj7doU8.js +1 -0
- package/dist/web/public/assets/stylus-CdbCxDLX.js +1 -0
- package/dist/web/public/assets/surrealql-BkGf0I3k.js +1 -0
- package/dist/web/public/assets/svelte-DtWg6ssL.js +1 -0
- package/dist/web/public/assets/swift-yRu2dtgr.js +1 -0
- package/dist/web/public/assets/synthwave-84-2WIu6MHX.js +1 -0
- package/dist/web/public/assets/system-verilog-GUE_oP1V.js +1 -0
- package/dist/web/public/assets/systemd-FLIJAQZV.js +1 -0
- package/dist/web/public/assets/talonscript-DTR-8ILs.js +1 -0
- package/dist/web/public/assets/tasl-WHNWP-1F.js +1 -0
- package/dist/web/public/assets/tcl-BaBXNNp6.js +1 -0
- package/dist/web/public/assets/templ-Dc9vj00n.js +1 -0
- package/dist/web/public/assets/terraform-uJUFpr8t.js +1 -0
- package/dist/web/public/assets/tex-DA3dAz55.js +1 -0
- package/dist/web/public/assets/tokyo-night-BbogFqAr.js +1 -0
- package/dist/web/public/assets/toml-CyR4Gqq1.js +1 -0
- package/dist/web/public/assets/ts-tags-BD1j21LH.js +1 -0
- package/dist/web/public/assets/tsv-COLVYI6A.js +1 -0
- package/dist/web/public/assets/tsx-CFm2E6uK.js +1 -0
- package/dist/web/public/assets/turtle-PQwt4gkb.js +1 -0
- package/dist/web/public/assets/twig-DrUXy85s.js +1 -0
- package/dist/web/public/assets/typescript-Dy-5sXFx.js +1 -0
- package/dist/web/public/assets/typespec-Bb7qHV0g.js +1 -0
- package/dist/web/public/assets/typst-Bj_JElGz.js +1 -0
- package/dist/web/public/assets/v-BTkrtik4.js +1 -0
- package/dist/web/public/assets/vala-AXT1CI9v.js +1 -0
- package/dist/web/public/assets/vb-DzTKUgW8.js +1 -0
- package/dist/web/public/assets/verilog-aI3j5Xj8.js +1 -0
- package/dist/web/public/assets/vesper-BmnwIC_B.js +1 -0
- package/dist/web/public/assets/vhdl-4IgBB7vO.js +1 -0
- package/dist/web/public/assets/viml-D_XMKSR6.js +1 -0
- package/dist/web/public/assets/vitesse-black-DhmxIXiA.js +1 -0
- package/dist/web/public/assets/vitesse-dark-dvEH_9qt.js +1 -0
- package/dist/web/public/assets/vitesse-light-Ca0W2L1O.js +1 -0
- package/dist/web/public/assets/vue-DC_yTvy2.js +1 -0
- package/dist/web/public/assets/vue-html-Bp8x4gdt.js +1 -0
- package/dist/web/public/assets/vue-vine-ZcUkuUUp.js +1 -0
- package/dist/web/public/assets/vyper-Dz2f7-FK.js +1 -0
- package/dist/web/public/assets/wasm-CuXPCj65.js +1 -0
- package/dist/web/public/assets/wasm-DHkXUMsP.js +1 -0
- package/dist/web/public/assets/wenyan-BRAtM0Iv.js +1 -0
- package/dist/web/public/assets/wgsl-CMpn9jTa.js +1 -0
- package/dist/web/public/assets/wikitext-DRmBVmVA.js +1 -0
- package/dist/web/public/assets/wit-Drp_HLqJ.js +1 -0
- package/dist/web/public/assets/wolfram-C33umj7M.js +1 -0
- package/dist/web/public/assets/xml-BHoOtGbO.js +1 -0
- package/dist/web/public/assets/xsl-CN1PlFqm.js +1 -0
- package/dist/web/public/assets/yaml-DT0mpn8u.js +1 -0
- package/dist/web/public/assets/zenscript-BlYQ_Frf.js +1 -0
- package/dist/web/public/assets/zig-Buk7I0y-.js +1 -0
- package/dist/web/server/_chunks/ssr-renderer.mjs +15 -0
- package/dist/web/server/_libs/@ai-sdk/anthropic+[...].mjs +14021 -0
- package/dist/web/server/_libs/@ai-sdk/moonshotai+[...].mjs +898 -0
- package/dist/web/server/_libs/@ai-sdk/react+[...].mjs +8969 -0
- package/dist/web/server/_libs/@emotion/is-prop-valid+[...].mjs +34 -0
- package/dist/web/server/_libs/@floating-ui/core+[...].mjs +698 -0
- package/dist/web/server/_libs/@floating-ui/dom+[...].mjs +644 -0
- package/dist/web/server/_libs/@floating-ui/react-dom+[...].mjs +475 -0
- package/dist/web/server/_libs/@lobehub/icons+[...].mjs +3079 -0
- package/dist/web/server/_libs/@radix-ui/react-arrow+[...].mjs +184 -0
- package/dist/web/server/_libs/@radix-ui/react-collapsible+[...].mjs +374 -0
- package/dist/web/server/_libs/@radix-ui/react-dialog+[...].mjs +1503 -0
- package/dist/web/server/_libs/@radix-ui/react-menu+[...].mjs +1236 -0
- package/dist/web/server/_libs/@radix-ui/react-select+[...].mjs +1007 -0
- package/dist/web/server/_libs/@shikijs/core+[...].mjs +9017 -0
- package/dist/web/server/_libs/@shikijs/engine-javascript+[...].mjs +3159 -0
- package/dist/web/server/_libs/@streamdown/math+[...].mjs +37559 -0
- package/dist/web/server/_libs/@tanstack/react-router+[...].mjs +14074 -0
- package/dist/web/server/_libs/_.mjs +3 -0
- package/dist/web/server/_libs/_2.mjs +3 -0
- package/dist/web/server/_libs/_3.mjs +2 -0
- package/dist/web/server/_libs/_4.mjs +2 -0
- package/dist/web/server/_libs/ai-sdk__gateway+vercel__oidc.mjs +1255 -0
- package/dist/web/server/_libs/ai-sdk__google.mjs +1630 -0
- package/dist/web/server/_libs/ai-sdk__openai+zod.mjs +4951 -0
- package/dist/web/server/_libs/ai-sdk__provider-utils.mjs +411 -0
- package/dist/web/server/_libs/ai-sdk__provider.mjs +222 -0
- package/dist/web/server/_libs/bail.mjs +13 -0
- package/dist/web/server/_libs/character-entities.mjs +2135 -0
- package/dist/web/server/_libs/class-variance-authority+clsx.mjs +69 -0
- package/dist/web/server/_libs/color+[...].mjs +2185 -0
- package/dist/web/server/_libs/copy-text-to-clipboard.mjs +40 -0
- package/dist/web/server/_libs/d3-array.mjs +231 -0
- package/dist/web/server/_libs/d3-color.mjs +330 -0
- package/dist/web/server/_libs/d3-format.mjs +252 -0
- package/dist/web/server/_libs/d3-interpolate.mjs +207 -0
- package/dist/web/server/_libs/d3-path.mjs +77 -0
- package/dist/web/server/_libs/d3-scale+[...].mjs +1907 -0
- package/dist/web/server/_libs/d3-shape.mjs +818 -0
- package/dist/web/server/_libs/date-fns.mjs +3012 -0
- package/dist/web/server/_libs/date-fns__tz.mjs +249 -0
- package/dist/web/server/_libs/decimal.js-light.mjs +884 -0
- package/dist/web/server/_libs/decode-named-character-reference+[...].mjs +19 -0
- package/dist/web/server/_libs/dexie.mjs +3745 -0
- package/dist/web/server/_libs/escape-string-regexp.mjs +7 -0
- package/dist/web/server/_libs/estree-util-is-identifier-name.mjs +20 -0
- package/dist/web/server/_libs/eventemitter3.mjs +237 -0
- package/dist/web/server/_libs/extend.mjs +75 -0
- package/dist/web/server/_libs/fast-equals.mjs +423 -0
- package/dist/web/server/_libs/framer-motion+[...].mjs +9573 -0
- package/dist/web/server/_libs/fuzzysort.mjs +621 -0
- package/dist/web/server/_libs/h3+rou3+srvx.mjs +1158 -0
- package/dist/web/server/_libs/hast-util-raw+[...].mjs +800 -0
- package/dist/web/server/_libs/hast-util-sanitize.mjs +780 -0
- package/dist/web/server/_libs/hast-util-to-jsx-runtime+[...].mjs +853 -0
- package/dist/web/server/_libs/hookable.mjs +41 -0
- package/dist/web/server/_libs/html-url-attributes.mjs +44 -0
- package/dist/web/server/_libs/is-plain-obj.mjs +8 -0
- package/dist/web/server/_libs/lodash.mjs +4532 -0
- package/dist/web/server/_libs/lucide-react.mjs +605 -0
- package/dist/web/server/_libs/markdown-table.mjs +289 -0
- package/dist/web/server/_libs/marked.mjs +1511 -0
- package/dist/web/server/_libs/mdast-util-find-and-replace.mjs +198 -0
- package/dist/web/server/_libs/mdast-util-from-markdown+[...].mjs +8121 -0
- package/dist/web/server/_libs/mdast-util-gfm+[...].mjs +2060 -0
- package/dist/web/server/_libs/mdast-util-to-hast+[...].mjs +1770 -0
- package/dist/web/server/_libs/micromark-extension-gfm+[...].mjs +2235 -0
- package/dist/web/server/_libs/nanoid.mjs +26 -0
- package/dist/web/server/_libs/next-themes.mjs +124 -0
- package/dist/web/server/_libs/prop-types.mjs +69 -0
- package/dist/web/server/_libs/radix-ui__number.mjs +6 -0
- package/dist/web/server/_libs/radix-ui__primitive.mjs +9 -0
- package/dist/web/server/_libs/radix-ui__react-collection.mjs +80 -0
- package/dist/web/server/_libs/radix-ui__react-direction.mjs +11 -0
- package/dist/web/server/_libs/radix-ui__react-label.mjs +23 -0
- package/dist/web/server/_libs/radix-ui__react-menubar.mjs +400 -0
- package/dist/web/server/_libs/radix-ui__react-popover.mjs +251 -0
- package/dist/web/server/_libs/radix-ui__react-progress.mjs +81 -0
- package/dist/web/server/_libs/radix-ui__react-scroll-area.mjs +669 -0
- package/dist/web/server/_libs/radix-ui__react-separator.mjs +32 -0
- package/dist/web/server/_libs/radix-ui__react-slider.mjs +464 -0
- package/dist/web/server/_libs/radix-ui__react-switch.mjs +120 -0
- package/dist/web/server/_libs/radix-ui__react-tabs.mjs +145 -0
- package/dist/web/server/_libs/radix-ui__react-tooltip.mjs +494 -0
- package/dist/web/server/_libs/react-day-picker.mjs +3510 -0
- package/dist/web/server/_libs/react-is.mjs +48 -0
- package/dist/web/server/_libs/react-resizable-panels.mjs +1517 -0
- package/dist/web/server/_libs/react-smooth.mjs +1024 -0
- package/dist/web/server/_libs/recharts+[...].mjs +12998 -0
- package/dist/web/server/_libs/rehype-harden.mjs +210 -0
- package/dist/web/server/_libs/rehype-raw.mjs +37 -0
- package/dist/web/server/_libs/rehype-sanitize.mjs +27 -0
- package/dist/web/server/_libs/remark-gfm.mjs +34 -0
- package/dist/web/server/_libs/remark-parse.mjs +37 -0
- package/dist/web/server/_libs/remark-rehype.mjs +169 -0
- package/dist/web/server/_libs/remend.mjs +544 -0
- package/dist/web/server/_libs/scule.mjs +55 -0
- package/dist/web/server/_libs/shiki+streamdown__code.mjs +1748 -0
- package/dist/web/server/_libs/shiki.mjs +16 -0
- package/dist/web/server/_libs/shikijs__engine-oniguruma.mjs +387 -0
- package/dist/web/server/_libs/shikijs__langs.mjs +1357 -0
- package/dist/web/server/_libs/shikijs__themes.mjs +268 -0
- package/dist/web/server/_libs/sonner.mjs +909 -0
- package/dist/web/server/_libs/streamdown+[...].mjs +5842 -0
- package/dist/web/server/_libs/tanstack__history.mjs +342 -0
- package/dist/web/server/_libs/tanstack__query-core.mjs +2073 -0
- package/dist/web/server/_libs/tanstack__react-query.mjs +146 -0
- package/dist/web/server/_libs/tanstack__router-core.mjs +6 -0
- package/dist/web/server/_libs/tanstack__zod-adapter.mjs +16 -0
- package/dist/web/server/_libs/ufo.mjs +64 -0
- package/dist/web/server/_libs/ungap__structured-clone.mjs +197 -0
- package/dist/web/server/_libs/use-stick-to-bottom.mjs +410 -0
- package/dist/web/server/_libs/vercel__oidc.mjs +393 -0
- package/dist/web/server/_libs/zhipu-ai-provider.mjs +13483 -0
- package/dist/web/server/_libs/zustand.mjs +48 -0
- package/dist/web/server/_runtime.mjs +35 -0
- package/dist/web/server/_ssr/components-BzCiScpA.mjs +1452 -0
- package/dist/web/server/_ssr/dist-3Mu7PF0n.mjs +137 -0
- package/dist/web/server/_ssr/dist-BRaLXgxZ.mjs +17 -0
- package/dist/web/server/_ssr/field-1-agM60DBf.mjs +167 -0
- package/dist/web/server/_ssr/get-providers-BoYkp0Of.mjs +40 -0
- package/dist/web/server/_ssr/initialize-provider-B6W8V5Eg.mjs +19 -0
- package/dist/web/server/_ssr/model-list-CDFjdz2P.mjs +60 -0
- package/dist/web/server/_ssr/router-BmmOCtJZ.mjs +168 -0
- package/dist/web/server/_ssr/routes-CvlpZK4Q.mjs +2630 -0
- package/dist/web/server/_ssr/schemas-DsZ5O3zp.mjs +67 -0
- package/dist/web/server/_ssr/send-message-DUT1vRvx.mjs +135 -0
- package/dist/web/server/_ssr/ssr.mjs +5253 -0
- package/dist/web/server/_ssr/start-rewezkfD.mjs +4 -0
- package/dist/web/server/_ssr/submit-key-CcCv6-yy.mjs +62 -0
- package/dist/web/server/_ssr/suggestions-B0Uc3p7F.mjs +38 -0
- package/dist/web/server/_ssr/use-providers-Bwqg2U3N.mjs +1554 -0
- package/dist/web/server/_tanstack-start-manifest_v-BMIvh4y6.mjs +60 -0
- package/dist/web/server/index.mjs +2531 -0
- package/dist/web/server/node_modules/tslib/modules/index.js +70 -0
- package/dist/web/server/node_modules/tslib/modules/package.json +3 -0
- package/dist/web/server/node_modules/tslib/package.json +47 -0
- package/dist/web/server/node_modules/tslib/tslib.js +484 -0
- package/package.json +32 -0
|
@@ -0,0 +1,3510 @@
|
|
|
1
|
+
import { i as __toESM, n as __exportAll } from "../_runtime.mjs";
|
|
2
|
+
import { u as require_react } from "./@ai-sdk/react+[...].mjs";
|
|
3
|
+
import { t as TZDate } from "./date-fns__tz.mjs";
|
|
4
|
+
import { A as startOfISOWeek, C as isSameDay, D as addWeeks, E as addYears, M as addMonths, N as addDays, O as differenceInCalendarDays, S as isDate, T as max, _ as endOfYear, a as isBefore, b as endOfMonth, c as getMonth, d as getISOWeek, f as enUS$1, g as startOfYear, h as eachYearOfInterval, i as isSameMonth, j as startOfWeek, k as startOfDay, l as format, m as endOfWeek, n as setMonth, o as isAfter, p as endOfISOWeek, r as isSameYear, s as getYear, t as setYear, u as getWeek, v as startOfMonth, w as min, x as differenceInCalendarMonths, y as eachMonthOfInterval } from "./date-fns.mjs";
|
|
5
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js
|
|
6
|
+
var FIVE_WEEKS = 5;
|
|
7
|
+
var FOUR_WEEKS = 4;
|
|
8
|
+
/**
|
|
9
|
+
* Returns the number of weeks to display in the broadcast calendar for a given
|
|
10
|
+
* month.
|
|
11
|
+
*
|
|
12
|
+
* The broadcast calendar may have either 4 or 5 weeks in a month, depending on
|
|
13
|
+
* the start and end dates of the broadcast weeks.
|
|
14
|
+
*
|
|
15
|
+
* @since 9.4.0
|
|
16
|
+
* @param month The month for which to calculate the number of weeks.
|
|
17
|
+
* @param dateLib The date library to use for date manipulation.
|
|
18
|
+
* @returns The number of weeks in the broadcast calendar (4 or 5).
|
|
19
|
+
*/
|
|
20
|
+
function getBroadcastWeeksInMonth(month, dateLib) {
|
|
21
|
+
const firstDayOfMonth = dateLib.startOfMonth(month);
|
|
22
|
+
const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;
|
|
23
|
+
const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);
|
|
24
|
+
const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);
|
|
25
|
+
return dateLib.getMonth(month) === dateLib.getMonth(lastDateOfLastWeek) ? FIVE_WEEKS : FOUR_WEEKS;
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js
|
|
29
|
+
/**
|
|
30
|
+
* Returns the start date of the week in the broadcast calendar.
|
|
31
|
+
*
|
|
32
|
+
* The broadcast week starts on Monday. If the first day of the month is not a
|
|
33
|
+
* Monday, this function calculates the previous Monday as the start of the
|
|
34
|
+
* broadcast week.
|
|
35
|
+
*
|
|
36
|
+
* @since 9.4.0
|
|
37
|
+
* @param date The date for which to calculate the start of the broadcast week.
|
|
38
|
+
* @param dateLib The date library to use for date manipulation.
|
|
39
|
+
* @returns The start date of the broadcast week.
|
|
40
|
+
*/
|
|
41
|
+
function startOfBroadcastWeek(date, dateLib) {
|
|
42
|
+
const firstOfMonth = dateLib.startOfMonth(date);
|
|
43
|
+
const dayOfWeek = firstOfMonth.getDay();
|
|
44
|
+
if (dayOfWeek === 1) return firstOfMonth;
|
|
45
|
+
else if (dayOfWeek === 0) return dateLib.addDays(firstOfMonth, -6);
|
|
46
|
+
else return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js
|
|
50
|
+
/**
|
|
51
|
+
* Returns the end date of the week in the broadcast calendar.
|
|
52
|
+
*
|
|
53
|
+
* The broadcast week ends on the last day of the last broadcast week for the
|
|
54
|
+
* given date.
|
|
55
|
+
*
|
|
56
|
+
* @since 9.4.0
|
|
57
|
+
* @param date The date for which to calculate the end of the broadcast week.
|
|
58
|
+
* @param dateLib The date library to use for date manipulation.
|
|
59
|
+
* @returns The end date of the broadcast week.
|
|
60
|
+
*/
|
|
61
|
+
function endOfBroadcastWeek(date, dateLib) {
|
|
62
|
+
const startDate = startOfBroadcastWeek(date, dateLib);
|
|
63
|
+
const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);
|
|
64
|
+
return dateLib.addDays(startDate, numberOfWeeks * 7 - 1);
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/locale/en-US.js
|
|
68
|
+
/** English (United States) locale extended with DayPicker-specific translations. */
|
|
69
|
+
var enUS = {
|
|
70
|
+
...enUS$1,
|
|
71
|
+
labels: {
|
|
72
|
+
labelDayButton: (date, modifiers, options, dateLib) => {
|
|
73
|
+
let formatDate;
|
|
74
|
+
if (dateLib && typeof dateLib.format === "function") formatDate = dateLib.format.bind(dateLib);
|
|
75
|
+
else formatDate = (d, pattern) => format(d, pattern, {
|
|
76
|
+
locale: enUS$1,
|
|
77
|
+
...options
|
|
78
|
+
});
|
|
79
|
+
let label = formatDate(date, "PPPP");
|
|
80
|
+
if (modifiers.today) label = `Today, ${label}`;
|
|
81
|
+
if (modifiers.selected) label = `${label}, selected`;
|
|
82
|
+
return label;
|
|
83
|
+
},
|
|
84
|
+
labelMonthDropdown: "Choose the Month",
|
|
85
|
+
labelNext: "Go to the Next Month",
|
|
86
|
+
labelPrevious: "Go to the Previous Month",
|
|
87
|
+
labelWeekNumber: (weekNumber) => `Week ${weekNumber}`,
|
|
88
|
+
labelYearDropdown: "Choose the Year",
|
|
89
|
+
labelGrid: (date, options, dateLib) => {
|
|
90
|
+
let formatDate;
|
|
91
|
+
if (dateLib && typeof dateLib.format === "function") formatDate = dateLib.format.bind(dateLib);
|
|
92
|
+
else formatDate = (d, pattern) => format(d, pattern, {
|
|
93
|
+
locale: enUS$1,
|
|
94
|
+
...options
|
|
95
|
+
});
|
|
96
|
+
return formatDate(date, "LLLL yyyy");
|
|
97
|
+
},
|
|
98
|
+
labelGridcell: (date, modifiers, options, dateLib) => {
|
|
99
|
+
let formatDate;
|
|
100
|
+
if (dateLib && typeof dateLib.format === "function") formatDate = dateLib.format.bind(dateLib);
|
|
101
|
+
else formatDate = (d, pattern) => format(d, pattern, {
|
|
102
|
+
locale: enUS$1,
|
|
103
|
+
...options
|
|
104
|
+
});
|
|
105
|
+
let label = formatDate(date, "PPPP");
|
|
106
|
+
if (modifiers?.today) label = `Today, ${label}`;
|
|
107
|
+
return label;
|
|
108
|
+
},
|
|
109
|
+
labelNav: "Navigation bar",
|
|
110
|
+
labelWeekNumberHeader: "Week Number",
|
|
111
|
+
labelWeekday: (date, options, dateLib) => {
|
|
112
|
+
let formatDate;
|
|
113
|
+
if (dateLib && typeof dateLib.format === "function") formatDate = dateLib.format.bind(dateLib);
|
|
114
|
+
else formatDate = (d, pattern) => format(d, pattern, {
|
|
115
|
+
locale: enUS$1,
|
|
116
|
+
...options
|
|
117
|
+
});
|
|
118
|
+
return formatDate(date, "cccc");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
//#endregion
|
|
123
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/classes/DateLib.js
|
|
124
|
+
/**
|
|
125
|
+
* A wrapper class around [date-fns](http://date-fns.org) that provides utility
|
|
126
|
+
* methods for date manipulation and formatting.
|
|
127
|
+
*
|
|
128
|
+
* @since 9.2.0
|
|
129
|
+
* @example
|
|
130
|
+
* const dateLib = new DateLib({ locale: es });
|
|
131
|
+
* const newDate = dateLib.addDays(new Date(), 5);
|
|
132
|
+
*/
|
|
133
|
+
var DateLib = class DateLib {
|
|
134
|
+
/**
|
|
135
|
+
* Creates an instance of `DateLib`.
|
|
136
|
+
*
|
|
137
|
+
* @param options Configuration options for the date library.
|
|
138
|
+
* @param overrides Custom overrides for the date library functions.
|
|
139
|
+
*/
|
|
140
|
+
constructor(options, overrides) {
|
|
141
|
+
/**
|
|
142
|
+
* Reference to the built-in Date constructor.
|
|
143
|
+
*
|
|
144
|
+
* @deprecated Use `newDate()` or `today()`.
|
|
145
|
+
*/
|
|
146
|
+
this.Date = Date;
|
|
147
|
+
/**
|
|
148
|
+
* Creates a new `Date` object representing today's date.
|
|
149
|
+
*
|
|
150
|
+
* @since 9.5.0
|
|
151
|
+
* @returns A `Date` object for today's date.
|
|
152
|
+
*/
|
|
153
|
+
this.today = () => {
|
|
154
|
+
if (this.overrides?.today) return this.overrides.today();
|
|
155
|
+
if (this.options.timeZone) return TZDate.tz(this.options.timeZone);
|
|
156
|
+
return new this.Date();
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Creates a new `Date` object with the specified year, month, and day.
|
|
160
|
+
*
|
|
161
|
+
* @since 9.5.0
|
|
162
|
+
* @param year The year.
|
|
163
|
+
* @param monthIndex The month (0-11).
|
|
164
|
+
* @param date The day of the month.
|
|
165
|
+
* @returns A new `Date` object.
|
|
166
|
+
*/
|
|
167
|
+
this.newDate = (year, monthIndex, date) => {
|
|
168
|
+
if (this.overrides?.newDate) return this.overrides.newDate(year, monthIndex, date);
|
|
169
|
+
if (this.options.timeZone) return new TZDate(year, monthIndex, date, this.options.timeZone);
|
|
170
|
+
return new Date(year, monthIndex, date);
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* Adds the specified number of days to the given date.
|
|
174
|
+
*
|
|
175
|
+
* @param date The date to add days to.
|
|
176
|
+
* @param amount The number of days to add.
|
|
177
|
+
* @returns The new date with the days added.
|
|
178
|
+
*/
|
|
179
|
+
this.addDays = (date, amount) => {
|
|
180
|
+
return this.overrides?.addDays ? this.overrides.addDays(date, amount) : addDays(date, amount);
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Adds the specified number of months to the given date.
|
|
184
|
+
*
|
|
185
|
+
* @param date The date to add months to.
|
|
186
|
+
* @param amount The number of months to add.
|
|
187
|
+
* @returns The new date with the months added.
|
|
188
|
+
*/
|
|
189
|
+
this.addMonths = (date, amount) => {
|
|
190
|
+
return this.overrides?.addMonths ? this.overrides.addMonths(date, amount) : addMonths(date, amount);
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Adds the specified number of weeks to the given date.
|
|
194
|
+
*
|
|
195
|
+
* @param date The date to add weeks to.
|
|
196
|
+
* @param amount The number of weeks to add.
|
|
197
|
+
* @returns The new date with the weeks added.
|
|
198
|
+
*/
|
|
199
|
+
this.addWeeks = (date, amount) => {
|
|
200
|
+
return this.overrides?.addWeeks ? this.overrides.addWeeks(date, amount) : addWeeks(date, amount);
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Adds the specified number of years to the given date.
|
|
204
|
+
*
|
|
205
|
+
* @param date The date to add years to.
|
|
206
|
+
* @param amount The number of years to add.
|
|
207
|
+
* @returns The new date with the years added.
|
|
208
|
+
*/
|
|
209
|
+
this.addYears = (date, amount) => {
|
|
210
|
+
return this.overrides?.addYears ? this.overrides.addYears(date, amount) : addYears(date, amount);
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Returns the number of calendar days between the given dates.
|
|
214
|
+
*
|
|
215
|
+
* @param dateLeft The later date.
|
|
216
|
+
* @param dateRight The earlier date.
|
|
217
|
+
* @returns The number of calendar days between the dates.
|
|
218
|
+
*/
|
|
219
|
+
this.differenceInCalendarDays = (dateLeft, dateRight) => {
|
|
220
|
+
return this.overrides?.differenceInCalendarDays ? this.overrides.differenceInCalendarDays(dateLeft, dateRight) : differenceInCalendarDays(dateLeft, dateRight);
|
|
221
|
+
};
|
|
222
|
+
/**
|
|
223
|
+
* Returns the number of calendar months between the given dates.
|
|
224
|
+
*
|
|
225
|
+
* @param dateLeft The later date.
|
|
226
|
+
* @param dateRight The earlier date.
|
|
227
|
+
* @returns The number of calendar months between the dates.
|
|
228
|
+
*/
|
|
229
|
+
this.differenceInCalendarMonths = (dateLeft, dateRight) => {
|
|
230
|
+
return this.overrides?.differenceInCalendarMonths ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight) : differenceInCalendarMonths(dateLeft, dateRight);
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Returns the months between the given dates.
|
|
234
|
+
*
|
|
235
|
+
* @param interval The interval to get the months for.
|
|
236
|
+
*/
|
|
237
|
+
this.eachMonthOfInterval = (interval) => {
|
|
238
|
+
return this.overrides?.eachMonthOfInterval ? this.overrides.eachMonthOfInterval(interval) : eachMonthOfInterval(interval);
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Returns the years between the given dates.
|
|
242
|
+
*
|
|
243
|
+
* @since 9.11.1
|
|
244
|
+
* @param interval The interval to get the years for.
|
|
245
|
+
* @returns The array of years in the interval.
|
|
246
|
+
*/
|
|
247
|
+
this.eachYearOfInterval = (interval) => {
|
|
248
|
+
const years = this.overrides?.eachYearOfInterval ? this.overrides.eachYearOfInterval(interval) : eachYearOfInterval(interval);
|
|
249
|
+
const uniqueYears = new Set(years.map((d) => this.getYear(d)));
|
|
250
|
+
if (uniqueYears.size === years.length) return years;
|
|
251
|
+
const yearsArray = [];
|
|
252
|
+
uniqueYears.forEach((y) => {
|
|
253
|
+
yearsArray.push(new Date(y, 0, 1));
|
|
254
|
+
});
|
|
255
|
+
return yearsArray;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Returns the end of the broadcast week for the given date.
|
|
259
|
+
*
|
|
260
|
+
* @param date The original date.
|
|
261
|
+
* @returns The end of the broadcast week.
|
|
262
|
+
*/
|
|
263
|
+
this.endOfBroadcastWeek = (date) => {
|
|
264
|
+
return this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(date) : endOfBroadcastWeek(date, this);
|
|
265
|
+
};
|
|
266
|
+
/**
|
|
267
|
+
* Returns the end of the ISO week for the given date.
|
|
268
|
+
*
|
|
269
|
+
* @param date The original date.
|
|
270
|
+
* @returns The end of the ISO week.
|
|
271
|
+
*/
|
|
272
|
+
this.endOfISOWeek = (date) => {
|
|
273
|
+
return this.overrides?.endOfISOWeek ? this.overrides.endOfISOWeek(date) : endOfISOWeek(date);
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* Returns the end of the month for the given date.
|
|
277
|
+
*
|
|
278
|
+
* @param date The original date.
|
|
279
|
+
* @returns The end of the month.
|
|
280
|
+
*/
|
|
281
|
+
this.endOfMonth = (date) => {
|
|
282
|
+
return this.overrides?.endOfMonth ? this.overrides.endOfMonth(date) : endOfMonth(date);
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Returns the end of the week for the given date.
|
|
286
|
+
*
|
|
287
|
+
* @param date The original date.
|
|
288
|
+
* @returns The end of the week.
|
|
289
|
+
*/
|
|
290
|
+
this.endOfWeek = (date, options) => {
|
|
291
|
+
return this.overrides?.endOfWeek ? this.overrides.endOfWeek(date, options) : endOfWeek(date, this.options);
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* Returns the end of the year for the given date.
|
|
295
|
+
*
|
|
296
|
+
* @param date The original date.
|
|
297
|
+
* @returns The end of the year.
|
|
298
|
+
*/
|
|
299
|
+
this.endOfYear = (date) => {
|
|
300
|
+
return this.overrides?.endOfYear ? this.overrides.endOfYear(date) : endOfYear(date);
|
|
301
|
+
};
|
|
302
|
+
/**
|
|
303
|
+
* Formats the given date using the specified format string.
|
|
304
|
+
*
|
|
305
|
+
* @param date The date to format.
|
|
306
|
+
* @param formatStr The format string.
|
|
307
|
+
* @returns The formatted date string.
|
|
308
|
+
*/
|
|
309
|
+
this.format = (date, formatStr, _options) => {
|
|
310
|
+
const formatted = this.overrides?.format ? this.overrides.format(date, formatStr, this.options) : format(date, formatStr, this.options);
|
|
311
|
+
if (this.options.numerals && this.options.numerals !== "latn") return this.replaceDigits(formatted);
|
|
312
|
+
return formatted;
|
|
313
|
+
};
|
|
314
|
+
/**
|
|
315
|
+
* Returns the ISO week number for the given date.
|
|
316
|
+
*
|
|
317
|
+
* @param date The date to get the ISO week number for.
|
|
318
|
+
* @returns The ISO week number.
|
|
319
|
+
*/
|
|
320
|
+
this.getISOWeek = (date) => {
|
|
321
|
+
return this.overrides?.getISOWeek ? this.overrides.getISOWeek(date) : getISOWeek(date);
|
|
322
|
+
};
|
|
323
|
+
/**
|
|
324
|
+
* Returns the month of the given date.
|
|
325
|
+
*
|
|
326
|
+
* @param date The date to get the month for.
|
|
327
|
+
* @returns The month.
|
|
328
|
+
*/
|
|
329
|
+
this.getMonth = (date, _options) => {
|
|
330
|
+
return this.overrides?.getMonth ? this.overrides.getMonth(date, this.options) : getMonth(date, this.options);
|
|
331
|
+
};
|
|
332
|
+
/**
|
|
333
|
+
* Returns the year of the given date.
|
|
334
|
+
*
|
|
335
|
+
* @param date The date to get the year for.
|
|
336
|
+
* @returns The year.
|
|
337
|
+
*/
|
|
338
|
+
this.getYear = (date, _options) => {
|
|
339
|
+
return this.overrides?.getYear ? this.overrides.getYear(date, this.options) : getYear(date, this.options);
|
|
340
|
+
};
|
|
341
|
+
/**
|
|
342
|
+
* Returns the local week number for the given date.
|
|
343
|
+
*
|
|
344
|
+
* @param date The date to get the week number for.
|
|
345
|
+
* @returns The week number.
|
|
346
|
+
*/
|
|
347
|
+
this.getWeek = (date, _options) => {
|
|
348
|
+
return this.overrides?.getWeek ? this.overrides.getWeek(date, this.options) : getWeek(date, this.options);
|
|
349
|
+
};
|
|
350
|
+
/**
|
|
351
|
+
* Checks if the first date is after the second date.
|
|
352
|
+
*
|
|
353
|
+
* @param date The date to compare.
|
|
354
|
+
* @param dateToCompare The date to compare with.
|
|
355
|
+
* @returns True if the first date is after the second date.
|
|
356
|
+
*/
|
|
357
|
+
this.isAfter = (date, dateToCompare) => {
|
|
358
|
+
return this.overrides?.isAfter ? this.overrides.isAfter(date, dateToCompare) : isAfter(date, dateToCompare);
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* Checks if the first date is before the second date.
|
|
362
|
+
*
|
|
363
|
+
* @param date The date to compare.
|
|
364
|
+
* @param dateToCompare The date to compare with.
|
|
365
|
+
* @returns True if the first date is before the second date.
|
|
366
|
+
*/
|
|
367
|
+
this.isBefore = (date, dateToCompare) => {
|
|
368
|
+
return this.overrides?.isBefore ? this.overrides.isBefore(date, dateToCompare) : isBefore(date, dateToCompare);
|
|
369
|
+
};
|
|
370
|
+
/**
|
|
371
|
+
* Checks if the given value is a Date object.
|
|
372
|
+
*
|
|
373
|
+
* @param value The value to check.
|
|
374
|
+
* @returns True if the value is a Date object.
|
|
375
|
+
*/
|
|
376
|
+
this.isDate = (value) => {
|
|
377
|
+
return this.overrides?.isDate ? this.overrides.isDate(value) : isDate(value);
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* Checks if the given dates are on the same day.
|
|
381
|
+
*
|
|
382
|
+
* @param dateLeft The first date to compare.
|
|
383
|
+
* @param dateRight The second date to compare.
|
|
384
|
+
* @returns True if the dates are on the same day.
|
|
385
|
+
*/
|
|
386
|
+
this.isSameDay = (dateLeft, dateRight) => {
|
|
387
|
+
return this.overrides?.isSameDay ? this.overrides.isSameDay(dateLeft, dateRight) : isSameDay(dateLeft, dateRight);
|
|
388
|
+
};
|
|
389
|
+
/**
|
|
390
|
+
* Checks if the given dates are in the same month.
|
|
391
|
+
*
|
|
392
|
+
* @param dateLeft The first date to compare.
|
|
393
|
+
* @param dateRight The second date to compare.
|
|
394
|
+
* @returns True if the dates are in the same month.
|
|
395
|
+
*/
|
|
396
|
+
this.isSameMonth = (dateLeft, dateRight) => {
|
|
397
|
+
return this.overrides?.isSameMonth ? this.overrides.isSameMonth(dateLeft, dateRight) : isSameMonth(dateLeft, dateRight);
|
|
398
|
+
};
|
|
399
|
+
/**
|
|
400
|
+
* Checks if the given dates are in the same year.
|
|
401
|
+
*
|
|
402
|
+
* @param dateLeft The first date to compare.
|
|
403
|
+
* @param dateRight The second date to compare.
|
|
404
|
+
* @returns True if the dates are in the same year.
|
|
405
|
+
*/
|
|
406
|
+
this.isSameYear = (dateLeft, dateRight) => {
|
|
407
|
+
return this.overrides?.isSameYear ? this.overrides.isSameYear(dateLeft, dateRight) : isSameYear(dateLeft, dateRight);
|
|
408
|
+
};
|
|
409
|
+
/**
|
|
410
|
+
* Returns the latest date in the given array of dates.
|
|
411
|
+
*
|
|
412
|
+
* @param dates The array of dates to compare.
|
|
413
|
+
* @returns The latest date.
|
|
414
|
+
*/
|
|
415
|
+
this.max = (dates) => {
|
|
416
|
+
return this.overrides?.max ? this.overrides.max(dates) : max(dates);
|
|
417
|
+
};
|
|
418
|
+
/**
|
|
419
|
+
* Returns the earliest date in the given array of dates.
|
|
420
|
+
*
|
|
421
|
+
* @param dates The array of dates to compare.
|
|
422
|
+
* @returns The earliest date.
|
|
423
|
+
*/
|
|
424
|
+
this.min = (dates) => {
|
|
425
|
+
return this.overrides?.min ? this.overrides.min(dates) : min(dates);
|
|
426
|
+
};
|
|
427
|
+
/**
|
|
428
|
+
* Sets the month of the given date.
|
|
429
|
+
*
|
|
430
|
+
* @param date The date to set the month on.
|
|
431
|
+
* @param month The month to set (0-11).
|
|
432
|
+
* @returns The new date with the month set.
|
|
433
|
+
*/
|
|
434
|
+
this.setMonth = (date, month) => {
|
|
435
|
+
return this.overrides?.setMonth ? this.overrides.setMonth(date, month) : setMonth(date, month);
|
|
436
|
+
};
|
|
437
|
+
/**
|
|
438
|
+
* Sets the year of the given date.
|
|
439
|
+
*
|
|
440
|
+
* @param date The date to set the year on.
|
|
441
|
+
* @param year The year to set.
|
|
442
|
+
* @returns The new date with the year set.
|
|
443
|
+
*/
|
|
444
|
+
this.setYear = (date, year) => {
|
|
445
|
+
return this.overrides?.setYear ? this.overrides.setYear(date, year) : setYear(date, year);
|
|
446
|
+
};
|
|
447
|
+
/**
|
|
448
|
+
* Returns the start of the broadcast week for the given date.
|
|
449
|
+
*
|
|
450
|
+
* @param date The original date.
|
|
451
|
+
* @returns The start of the broadcast week.
|
|
452
|
+
*/
|
|
453
|
+
this.startOfBroadcastWeek = (date, _dateLib) => {
|
|
454
|
+
return this.overrides?.startOfBroadcastWeek ? this.overrides.startOfBroadcastWeek(date, this) : startOfBroadcastWeek(date, this);
|
|
455
|
+
};
|
|
456
|
+
/**
|
|
457
|
+
* Returns the start of the day for the given date.
|
|
458
|
+
*
|
|
459
|
+
* @param date The original date.
|
|
460
|
+
* @returns The start of the day.
|
|
461
|
+
*/
|
|
462
|
+
this.startOfDay = (date) => {
|
|
463
|
+
return this.overrides?.startOfDay ? this.overrides.startOfDay(date) : startOfDay(date);
|
|
464
|
+
};
|
|
465
|
+
/**
|
|
466
|
+
* Returns the start of the ISO week for the given date.
|
|
467
|
+
*
|
|
468
|
+
* @param date The original date.
|
|
469
|
+
* @returns The start of the ISO week.
|
|
470
|
+
*/
|
|
471
|
+
this.startOfISOWeek = (date) => {
|
|
472
|
+
return this.overrides?.startOfISOWeek ? this.overrides.startOfISOWeek(date) : startOfISOWeek(date);
|
|
473
|
+
};
|
|
474
|
+
/**
|
|
475
|
+
* Returns the start of the month for the given date.
|
|
476
|
+
*
|
|
477
|
+
* @param date The original date.
|
|
478
|
+
* @returns The start of the month.
|
|
479
|
+
*/
|
|
480
|
+
this.startOfMonth = (date) => {
|
|
481
|
+
return this.overrides?.startOfMonth ? this.overrides.startOfMonth(date) : startOfMonth(date);
|
|
482
|
+
};
|
|
483
|
+
/**
|
|
484
|
+
* Returns the start of the week for the given date.
|
|
485
|
+
*
|
|
486
|
+
* @param date The original date.
|
|
487
|
+
* @returns The start of the week.
|
|
488
|
+
*/
|
|
489
|
+
this.startOfWeek = (date, _options) => {
|
|
490
|
+
return this.overrides?.startOfWeek ? this.overrides.startOfWeek(date, this.options) : startOfWeek(date, this.options);
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Returns the start of the year for the given date.
|
|
494
|
+
*
|
|
495
|
+
* @param date The original date.
|
|
496
|
+
* @returns The start of the year.
|
|
497
|
+
*/
|
|
498
|
+
this.startOfYear = (date) => {
|
|
499
|
+
return this.overrides?.startOfYear ? this.overrides.startOfYear(date) : startOfYear(date);
|
|
500
|
+
};
|
|
501
|
+
this.options = {
|
|
502
|
+
locale: enUS,
|
|
503
|
+
...options
|
|
504
|
+
};
|
|
505
|
+
this.overrides = overrides;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Generates a mapping of Arabic digits (0-9) to the target numbering system
|
|
509
|
+
* digits.
|
|
510
|
+
*
|
|
511
|
+
* @since 9.5.0
|
|
512
|
+
* @returns A record mapping Arabic digits to the target numerals.
|
|
513
|
+
*/
|
|
514
|
+
getDigitMap() {
|
|
515
|
+
const { numerals = "latn" } = this.options;
|
|
516
|
+
const formatter = new Intl.NumberFormat("en-US", { numberingSystem: numerals });
|
|
517
|
+
const digitMap = {};
|
|
518
|
+
for (let i = 0; i < 10; i++) digitMap[i.toString()] = formatter.format(i);
|
|
519
|
+
return digitMap;
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Replaces Arabic digits in a string with the target numbering system digits.
|
|
523
|
+
*
|
|
524
|
+
* @since 9.5.0
|
|
525
|
+
* @param input The string containing Arabic digits.
|
|
526
|
+
* @returns The string with digits replaced.
|
|
527
|
+
*/
|
|
528
|
+
replaceDigits(input) {
|
|
529
|
+
const digitMap = this.getDigitMap();
|
|
530
|
+
return input.replace(/\d/g, (digit) => digitMap[digit] || digit);
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Formats a number using the configured numbering system.
|
|
534
|
+
*
|
|
535
|
+
* @since 9.5.0
|
|
536
|
+
* @param value The number to format.
|
|
537
|
+
* @returns The formatted number as a string.
|
|
538
|
+
*/
|
|
539
|
+
formatNumber(value) {
|
|
540
|
+
return this.replaceDigits(value.toString());
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Returns the preferred ordering for month and year labels for the current
|
|
544
|
+
* locale.
|
|
545
|
+
*/
|
|
546
|
+
getMonthYearOrder() {
|
|
547
|
+
const code = this.options.locale?.code;
|
|
548
|
+
if (!code) return "month-first";
|
|
549
|
+
return DateLib.yearFirstLocales.has(code) ? "year-first" : "month-first";
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Formats the month/year pair respecting locale conventions.
|
|
553
|
+
*
|
|
554
|
+
* @since 9.11.0
|
|
555
|
+
*/
|
|
556
|
+
formatMonthYear(date) {
|
|
557
|
+
const { locale, timeZone, numerals } = this.options;
|
|
558
|
+
const localeCode = locale?.code;
|
|
559
|
+
if (localeCode && DateLib.yearFirstLocales.has(localeCode)) try {
|
|
560
|
+
return new Intl.DateTimeFormat(localeCode, {
|
|
561
|
+
month: "long",
|
|
562
|
+
year: "numeric",
|
|
563
|
+
timeZone,
|
|
564
|
+
numberingSystem: numerals
|
|
565
|
+
}).format(date);
|
|
566
|
+
} catch {}
|
|
567
|
+
const pattern = this.getMonthYearOrder() === "year-first" ? "y LLLL" : "LLLL y";
|
|
568
|
+
return this.format(date, pattern);
|
|
569
|
+
}
|
|
570
|
+
};
|
|
571
|
+
DateLib.yearFirstLocales = new Set([
|
|
572
|
+
"eu",
|
|
573
|
+
"hu",
|
|
574
|
+
"ja",
|
|
575
|
+
"ja-Hira",
|
|
576
|
+
"ja-JP",
|
|
577
|
+
"ko",
|
|
578
|
+
"ko-KR",
|
|
579
|
+
"lt",
|
|
580
|
+
"lt-LT",
|
|
581
|
+
"lv",
|
|
582
|
+
"lv-LV",
|
|
583
|
+
"mn",
|
|
584
|
+
"mn-MN",
|
|
585
|
+
"zh",
|
|
586
|
+
"zh-CN",
|
|
587
|
+
"zh-HK",
|
|
588
|
+
"zh-TW"
|
|
589
|
+
]);
|
|
590
|
+
/**
|
|
591
|
+
* The default date library with English locale.
|
|
592
|
+
*
|
|
593
|
+
* @since 9.2.0
|
|
594
|
+
*/
|
|
595
|
+
var defaultDateLib = new DateLib();
|
|
596
|
+
//#endregion
|
|
597
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js
|
|
598
|
+
/**
|
|
599
|
+
* Represents a day displayed in the calendar.
|
|
600
|
+
*
|
|
601
|
+
* In DayPicker, a `CalendarDay` is a wrapper around a `Date` object that
|
|
602
|
+
* provides additional information about the day, such as whether it belongs to
|
|
603
|
+
* the displayed month.
|
|
604
|
+
*/
|
|
605
|
+
var CalendarDay = class {
|
|
606
|
+
constructor(date, displayMonth, dateLib = defaultDateLib) {
|
|
607
|
+
this.date = date;
|
|
608
|
+
this.displayMonth = displayMonth;
|
|
609
|
+
this.outside = Boolean(displayMonth && !dateLib.isSameMonth(date, displayMonth));
|
|
610
|
+
this.dateLib = dateLib;
|
|
611
|
+
this.isoDate = dateLib.format(date, "yyyy-MM-dd");
|
|
612
|
+
this.displayMonthId = dateLib.format(displayMonth, "yyyy-MM");
|
|
613
|
+
this.dateMonthId = dateLib.format(date, "yyyy-MM");
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* Checks if this day is equal to another `CalendarDay`, considering both the
|
|
617
|
+
* date and the displayed month.
|
|
618
|
+
*
|
|
619
|
+
* @param day The `CalendarDay` to compare with.
|
|
620
|
+
* @returns `true` if the days are equal, otherwise `false`.
|
|
621
|
+
*/
|
|
622
|
+
isEqualTo(day) {
|
|
623
|
+
return this.dateLib.isSameDay(day.date, this.date) && this.dateLib.isSameMonth(day.displayMonth, this.displayMonth);
|
|
624
|
+
}
|
|
625
|
+
};
|
|
626
|
+
//#endregion
|
|
627
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js
|
|
628
|
+
/**
|
|
629
|
+
* Represents a month in a calendar year.
|
|
630
|
+
*
|
|
631
|
+
* A `CalendarMonth` contains the weeks within the month and the date of the
|
|
632
|
+
* month.
|
|
633
|
+
*/
|
|
634
|
+
var CalendarMonth = class {
|
|
635
|
+
constructor(month, weeks) {
|
|
636
|
+
this.date = month;
|
|
637
|
+
this.weeks = weeks;
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
//#endregion
|
|
641
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js
|
|
642
|
+
/**
|
|
643
|
+
* Represents a week in a calendar month.
|
|
644
|
+
*
|
|
645
|
+
* A `CalendarWeek` contains the days within the week and the week number.
|
|
646
|
+
*/
|
|
647
|
+
var CalendarWeek = class {
|
|
648
|
+
constructor(weekNumber, days) {
|
|
649
|
+
this.days = days;
|
|
650
|
+
this.weekNumber = weekNumber;
|
|
651
|
+
}
|
|
652
|
+
};
|
|
653
|
+
//#endregion
|
|
654
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Button.js
|
|
655
|
+
var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
|
|
656
|
+
/**
|
|
657
|
+
* Render the button elements in the calendar.
|
|
658
|
+
*
|
|
659
|
+
* @private
|
|
660
|
+
* @deprecated Use `PreviousMonthButton` or `@link NextMonthButton` instead.
|
|
661
|
+
*/
|
|
662
|
+
function Button(props) {
|
|
663
|
+
return import_react.createElement("button", { ...props });
|
|
664
|
+
}
|
|
665
|
+
//#endregion
|
|
666
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js
|
|
667
|
+
/**
|
|
668
|
+
* Render the label in the month caption.
|
|
669
|
+
*
|
|
670
|
+
* @group Components
|
|
671
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
672
|
+
*/
|
|
673
|
+
function CaptionLabel(props) {
|
|
674
|
+
return import_react.createElement("span", { ...props });
|
|
675
|
+
}
|
|
676
|
+
//#endregion
|
|
677
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Chevron.js
|
|
678
|
+
/**
|
|
679
|
+
* Render the chevron icon used in the navigation buttons and dropdowns.
|
|
680
|
+
*
|
|
681
|
+
* @group Components
|
|
682
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
683
|
+
*/
|
|
684
|
+
function Chevron(props) {
|
|
685
|
+
const { size = 24, orientation = "left", className } = props;
|
|
686
|
+
return import_react.createElement("svg", {
|
|
687
|
+
className,
|
|
688
|
+
width: size,
|
|
689
|
+
height: size,
|
|
690
|
+
viewBox: "0 0 24 24"
|
|
691
|
+
}, orientation === "up" && import_react.createElement("polygon", { points: "6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28" }), orientation === "down" && import_react.createElement("polygon", { points: "6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72" }), orientation === "left" && import_react.createElement("polygon", { points: "16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20" }), orientation === "right" && import_react.createElement("polygon", { points: "8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20" }));
|
|
692
|
+
}
|
|
693
|
+
//#endregion
|
|
694
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Day.js
|
|
695
|
+
/**
|
|
696
|
+
* Render a grid cell for a specific day in the calendar.
|
|
697
|
+
*
|
|
698
|
+
* Handles interaction and focus for the day. If you only need to change the
|
|
699
|
+
* content of the day cell, consider swapping the `DayButton` component
|
|
700
|
+
* instead.
|
|
701
|
+
*
|
|
702
|
+
* @group Components
|
|
703
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
704
|
+
*/
|
|
705
|
+
function Day(props) {
|
|
706
|
+
const { day, modifiers, ...tdProps } = props;
|
|
707
|
+
return import_react.createElement("td", { ...tdProps });
|
|
708
|
+
}
|
|
709
|
+
//#endregion
|
|
710
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/DayButton.js
|
|
711
|
+
/**
|
|
712
|
+
* Render a button for a specific day in the calendar.
|
|
713
|
+
*
|
|
714
|
+
* @group Components
|
|
715
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
716
|
+
*/
|
|
717
|
+
function DayButton(props) {
|
|
718
|
+
const { day, modifiers, ...buttonProps } = props;
|
|
719
|
+
const ref = import_react.useRef(null);
|
|
720
|
+
import_react.useEffect(() => {
|
|
721
|
+
if (modifiers.focused) ref.current?.focus();
|
|
722
|
+
}, [modifiers.focused]);
|
|
723
|
+
return import_react.createElement("button", {
|
|
724
|
+
ref,
|
|
725
|
+
...buttonProps
|
|
726
|
+
});
|
|
727
|
+
}
|
|
728
|
+
//#endregion
|
|
729
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/UI.js
|
|
730
|
+
/**
|
|
731
|
+
* Enum representing the UI elements composing DayPicker. These elements are
|
|
732
|
+
* mapped to {@link CustomComponents}, {@link ClassNames}, and {@link Styles}.
|
|
733
|
+
*
|
|
734
|
+
* Some elements are extended by flags and modifiers.
|
|
735
|
+
*/
|
|
736
|
+
var UI;
|
|
737
|
+
(function(UI) {
|
|
738
|
+
/** The root component displaying the months and the navigation bar. */
|
|
739
|
+
UI["Root"] = "root";
|
|
740
|
+
/** The Chevron SVG element used by navigation buttons and dropdowns. */
|
|
741
|
+
UI["Chevron"] = "chevron";
|
|
742
|
+
/**
|
|
743
|
+
* The grid cell with the day's date. Extended by {@link DayFlag} and
|
|
744
|
+
* {@link SelectionState}.
|
|
745
|
+
*/
|
|
746
|
+
UI["Day"] = "day";
|
|
747
|
+
/** The button containing the formatted day's date, inside the grid cell. */
|
|
748
|
+
UI["DayButton"] = "day_button";
|
|
749
|
+
/** The caption label of the month (when not showing the dropdown navigation). */
|
|
750
|
+
UI["CaptionLabel"] = "caption_label";
|
|
751
|
+
/** The container of the dropdown navigation (when enabled). */
|
|
752
|
+
UI["Dropdowns"] = "dropdowns";
|
|
753
|
+
/** The dropdown element to select for years and months. */
|
|
754
|
+
UI["Dropdown"] = "dropdown";
|
|
755
|
+
/** The container element of the dropdown. */
|
|
756
|
+
UI["DropdownRoot"] = "dropdown_root";
|
|
757
|
+
/** The root element of the footer. */
|
|
758
|
+
UI["Footer"] = "footer";
|
|
759
|
+
/** The month grid. */
|
|
760
|
+
UI["MonthGrid"] = "month_grid";
|
|
761
|
+
/** Contains the dropdown navigation or the caption label. */
|
|
762
|
+
UI["MonthCaption"] = "month_caption";
|
|
763
|
+
/** The dropdown with the months. */
|
|
764
|
+
UI["MonthsDropdown"] = "months_dropdown";
|
|
765
|
+
/** Wrapper of the month grid. */
|
|
766
|
+
UI["Month"] = "month";
|
|
767
|
+
/** The container of the displayed months. */
|
|
768
|
+
UI["Months"] = "months";
|
|
769
|
+
/** The navigation bar with the previous and next buttons. */
|
|
770
|
+
UI["Nav"] = "nav";
|
|
771
|
+
/**
|
|
772
|
+
* The next month button in the navigation. *
|
|
773
|
+
*
|
|
774
|
+
* @since 9.1.0
|
|
775
|
+
*/
|
|
776
|
+
UI["NextMonthButton"] = "button_next";
|
|
777
|
+
/**
|
|
778
|
+
* The previous month button in the navigation.
|
|
779
|
+
*
|
|
780
|
+
* @since 9.1.0
|
|
781
|
+
*/
|
|
782
|
+
UI["PreviousMonthButton"] = "button_previous";
|
|
783
|
+
/** The row containing the week. */
|
|
784
|
+
UI["Week"] = "week";
|
|
785
|
+
/** The group of row weeks in a month (`tbody`). */
|
|
786
|
+
UI["Weeks"] = "weeks";
|
|
787
|
+
/** The column header with the weekday. */
|
|
788
|
+
UI["Weekday"] = "weekday";
|
|
789
|
+
/** The row grouping the weekdays in the column headers. */
|
|
790
|
+
UI["Weekdays"] = "weekdays";
|
|
791
|
+
/** The cell containing the week number. */
|
|
792
|
+
UI["WeekNumber"] = "week_number";
|
|
793
|
+
/** The cell header of the week numbers column. */
|
|
794
|
+
UI["WeekNumberHeader"] = "week_number_header";
|
|
795
|
+
/** The dropdown with the years. */
|
|
796
|
+
UI["YearsDropdown"] = "years_dropdown";
|
|
797
|
+
})(UI || (UI = {}));
|
|
798
|
+
/** Enum representing flags for the {@link UI | UI.Day} element. */
|
|
799
|
+
var DayFlag;
|
|
800
|
+
(function(DayFlag) {
|
|
801
|
+
/** The day is disabled. */
|
|
802
|
+
DayFlag["disabled"] = "disabled";
|
|
803
|
+
/** The day is hidden. */
|
|
804
|
+
DayFlag["hidden"] = "hidden";
|
|
805
|
+
/** The day is outside the current month. */
|
|
806
|
+
DayFlag["outside"] = "outside";
|
|
807
|
+
/** The day is focused. */
|
|
808
|
+
DayFlag["focused"] = "focused";
|
|
809
|
+
/** The day is today. */
|
|
810
|
+
DayFlag["today"] = "today";
|
|
811
|
+
})(DayFlag || (DayFlag = {}));
|
|
812
|
+
/**
|
|
813
|
+
* Enum representing selection states that can be applied to the
|
|
814
|
+
* {@link UI | UI.Day} element in selection mode.
|
|
815
|
+
*/
|
|
816
|
+
var SelectionState;
|
|
817
|
+
(function(SelectionState) {
|
|
818
|
+
/** The day is at the end of a selected range. */
|
|
819
|
+
SelectionState["range_end"] = "range_end";
|
|
820
|
+
/** The day is at the middle of a selected range. */
|
|
821
|
+
SelectionState["range_middle"] = "range_middle";
|
|
822
|
+
/** The day is at the start of a selected range. */
|
|
823
|
+
SelectionState["range_start"] = "range_start";
|
|
824
|
+
/** The day is selected. */
|
|
825
|
+
SelectionState["selected"] = "selected";
|
|
826
|
+
})(SelectionState || (SelectionState = {}));
|
|
827
|
+
/**
|
|
828
|
+
* Enum representing different animation states for transitioning between
|
|
829
|
+
* months.
|
|
830
|
+
*/
|
|
831
|
+
var Animation;
|
|
832
|
+
(function(Animation) {
|
|
833
|
+
/** The entering weeks when they appear before the exiting month. */
|
|
834
|
+
Animation["weeks_before_enter"] = "weeks_before_enter";
|
|
835
|
+
/** The exiting weeks when they disappear before the entering month. */
|
|
836
|
+
Animation["weeks_before_exit"] = "weeks_before_exit";
|
|
837
|
+
/** The entering weeks when they appear after the exiting month. */
|
|
838
|
+
Animation["weeks_after_enter"] = "weeks_after_enter";
|
|
839
|
+
/** The exiting weeks when they disappear after the entering month. */
|
|
840
|
+
Animation["weeks_after_exit"] = "weeks_after_exit";
|
|
841
|
+
/** The entering caption when it appears after the exiting month. */
|
|
842
|
+
Animation["caption_after_enter"] = "caption_after_enter";
|
|
843
|
+
/** The exiting caption when it disappears after the entering month. */
|
|
844
|
+
Animation["caption_after_exit"] = "caption_after_exit";
|
|
845
|
+
/** The entering caption when it appears before the exiting month. */
|
|
846
|
+
Animation["caption_before_enter"] = "caption_before_enter";
|
|
847
|
+
/** The exiting caption when it disappears before the entering month. */
|
|
848
|
+
Animation["caption_before_exit"] = "caption_before_exit";
|
|
849
|
+
})(Animation || (Animation = {}));
|
|
850
|
+
//#endregion
|
|
851
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Dropdown.js
|
|
852
|
+
/**
|
|
853
|
+
* Render a dropdown component for navigation in the calendar.
|
|
854
|
+
*
|
|
855
|
+
* @group Components
|
|
856
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
857
|
+
*/
|
|
858
|
+
function Dropdown(props) {
|
|
859
|
+
const { options, className, components, classNames, ...selectProps } = props;
|
|
860
|
+
const cssClassSelect = [classNames[UI.Dropdown], className].join(" ");
|
|
861
|
+
const selectedOption = options?.find(({ value }) => value === selectProps.value);
|
|
862
|
+
return import_react.createElement("span", {
|
|
863
|
+
"data-disabled": selectProps.disabled,
|
|
864
|
+
className: classNames[UI.DropdownRoot]
|
|
865
|
+
}, import_react.createElement(components.Select, {
|
|
866
|
+
className: cssClassSelect,
|
|
867
|
+
...selectProps
|
|
868
|
+
}, options?.map(({ value, label, disabled }) => import_react.createElement(components.Option, {
|
|
869
|
+
key: value,
|
|
870
|
+
value,
|
|
871
|
+
disabled
|
|
872
|
+
}, label))), import_react.createElement("span", {
|
|
873
|
+
className: classNames[UI.CaptionLabel],
|
|
874
|
+
"aria-hidden": true
|
|
875
|
+
}, selectedOption?.label, import_react.createElement(components.Chevron, {
|
|
876
|
+
orientation: "down",
|
|
877
|
+
size: 18,
|
|
878
|
+
className: classNames[UI.Chevron]
|
|
879
|
+
})));
|
|
880
|
+
}
|
|
881
|
+
//#endregion
|
|
882
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/DropdownNav.js
|
|
883
|
+
/**
|
|
884
|
+
* Render the navigation dropdowns for the calendar.
|
|
885
|
+
*
|
|
886
|
+
* @group Components
|
|
887
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
888
|
+
*/
|
|
889
|
+
function DropdownNav(props) {
|
|
890
|
+
return import_react.createElement("div", { ...props });
|
|
891
|
+
}
|
|
892
|
+
//#endregion
|
|
893
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Footer.js
|
|
894
|
+
/**
|
|
895
|
+
* Render the footer of the calendar.
|
|
896
|
+
*
|
|
897
|
+
* @group Components
|
|
898
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
899
|
+
*/
|
|
900
|
+
function Footer(props) {
|
|
901
|
+
return import_react.createElement("div", { ...props });
|
|
902
|
+
}
|
|
903
|
+
//#endregion
|
|
904
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Month.js
|
|
905
|
+
/**
|
|
906
|
+
* Render the grid with the weekday header row and the weeks for a specific
|
|
907
|
+
* month.
|
|
908
|
+
*
|
|
909
|
+
* @group Components
|
|
910
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
911
|
+
*/
|
|
912
|
+
function Month(props) {
|
|
913
|
+
const { calendarMonth, displayIndex, ...divProps } = props;
|
|
914
|
+
return import_react.createElement("div", { ...divProps }, props.children);
|
|
915
|
+
}
|
|
916
|
+
//#endregion
|
|
917
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/MonthCaption.js
|
|
918
|
+
/**
|
|
919
|
+
* Render the caption for a month in the calendar.
|
|
920
|
+
*
|
|
921
|
+
* @group Components
|
|
922
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
923
|
+
*/
|
|
924
|
+
function MonthCaption(props) {
|
|
925
|
+
const { calendarMonth, displayIndex, ...divProps } = props;
|
|
926
|
+
return import_react.createElement("div", { ...divProps });
|
|
927
|
+
}
|
|
928
|
+
//#endregion
|
|
929
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/MonthGrid.js
|
|
930
|
+
/**
|
|
931
|
+
* Render the grid of days for a specific month.
|
|
932
|
+
*
|
|
933
|
+
* @group Components
|
|
934
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
935
|
+
*/
|
|
936
|
+
function MonthGrid(props) {
|
|
937
|
+
return import_react.createElement("table", { ...props });
|
|
938
|
+
}
|
|
939
|
+
//#endregion
|
|
940
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Months.js
|
|
941
|
+
/**
|
|
942
|
+
* Render a container wrapping the month grids.
|
|
943
|
+
*
|
|
944
|
+
* @group Components
|
|
945
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
946
|
+
*/
|
|
947
|
+
function Months(props) {
|
|
948
|
+
return import_react.createElement("div", { ...props });
|
|
949
|
+
}
|
|
950
|
+
//#endregion
|
|
951
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/useDayPicker.js
|
|
952
|
+
/** @ignore */
|
|
953
|
+
var dayPickerContext = (0, import_react.createContext)(void 0);
|
|
954
|
+
/**
|
|
955
|
+
* Provides access to the DayPicker context, which includes properties and
|
|
956
|
+
* methods to interact with the DayPicker component. This hook must be used
|
|
957
|
+
* within a custom component.
|
|
958
|
+
*
|
|
959
|
+
* @template T - Use this type to refine the returned context type with a
|
|
960
|
+
* specific selection mode.
|
|
961
|
+
* @returns The context to work with DayPicker.
|
|
962
|
+
* @throws {Error} If the hook is used outside of a DayPicker provider.
|
|
963
|
+
* @group Hooks
|
|
964
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
965
|
+
*/
|
|
966
|
+
function useDayPicker() {
|
|
967
|
+
const context = (0, import_react.useContext)(dayPickerContext);
|
|
968
|
+
if (context === void 0) throw new Error("useDayPicker() must be used within a custom component.");
|
|
969
|
+
return context;
|
|
970
|
+
}
|
|
971
|
+
//#endregion
|
|
972
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/MonthsDropdown.js
|
|
973
|
+
/**
|
|
974
|
+
* Render a dropdown to navigate between months in the calendar.
|
|
975
|
+
*
|
|
976
|
+
* @group Components
|
|
977
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
978
|
+
*/
|
|
979
|
+
function MonthsDropdown(props) {
|
|
980
|
+
const { components } = useDayPicker();
|
|
981
|
+
return import_react.createElement(components.Dropdown, { ...props });
|
|
982
|
+
}
|
|
983
|
+
//#endregion
|
|
984
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Nav.js
|
|
985
|
+
/**
|
|
986
|
+
* Render the navigation toolbar with buttons to navigate between months.
|
|
987
|
+
*
|
|
988
|
+
* @group Components
|
|
989
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
990
|
+
*/
|
|
991
|
+
function Nav(props) {
|
|
992
|
+
const { onPreviousClick, onNextClick, previousMonth, nextMonth, ...navProps } = props;
|
|
993
|
+
const { components, classNames, labels: { labelPrevious, labelNext } } = useDayPicker();
|
|
994
|
+
const handleNextClick = (0, import_react.useCallback)((e) => {
|
|
995
|
+
if (nextMonth) onNextClick?.(e);
|
|
996
|
+
}, [nextMonth, onNextClick]);
|
|
997
|
+
const handlePreviousClick = (0, import_react.useCallback)((e) => {
|
|
998
|
+
if (previousMonth) onPreviousClick?.(e);
|
|
999
|
+
}, [previousMonth, onPreviousClick]);
|
|
1000
|
+
return import_react.createElement("nav", { ...navProps }, import_react.createElement(components.PreviousMonthButton, {
|
|
1001
|
+
type: "button",
|
|
1002
|
+
className: classNames[UI.PreviousMonthButton],
|
|
1003
|
+
tabIndex: previousMonth ? void 0 : -1,
|
|
1004
|
+
"aria-disabled": previousMonth ? void 0 : true,
|
|
1005
|
+
"aria-label": labelPrevious(previousMonth),
|
|
1006
|
+
onClick: handlePreviousClick
|
|
1007
|
+
}, import_react.createElement(components.Chevron, {
|
|
1008
|
+
disabled: previousMonth ? void 0 : true,
|
|
1009
|
+
className: classNames[UI.Chevron],
|
|
1010
|
+
orientation: "left"
|
|
1011
|
+
})), import_react.createElement(components.NextMonthButton, {
|
|
1012
|
+
type: "button",
|
|
1013
|
+
className: classNames[UI.NextMonthButton],
|
|
1014
|
+
tabIndex: nextMonth ? void 0 : -1,
|
|
1015
|
+
"aria-disabled": nextMonth ? void 0 : true,
|
|
1016
|
+
"aria-label": labelNext(nextMonth),
|
|
1017
|
+
onClick: handleNextClick
|
|
1018
|
+
}, import_react.createElement(components.Chevron, {
|
|
1019
|
+
disabled: nextMonth ? void 0 : true,
|
|
1020
|
+
orientation: "right",
|
|
1021
|
+
className: classNames[UI.Chevron]
|
|
1022
|
+
})));
|
|
1023
|
+
}
|
|
1024
|
+
//#endregion
|
|
1025
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/NextMonthButton.js
|
|
1026
|
+
/**
|
|
1027
|
+
* Render the button to navigate to the next month in the calendar.
|
|
1028
|
+
*
|
|
1029
|
+
* @group Components
|
|
1030
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1031
|
+
*/
|
|
1032
|
+
function NextMonthButton(props) {
|
|
1033
|
+
const { components } = useDayPicker();
|
|
1034
|
+
return import_react.createElement(components.Button, { ...props });
|
|
1035
|
+
}
|
|
1036
|
+
//#endregion
|
|
1037
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Option.js
|
|
1038
|
+
/**
|
|
1039
|
+
* Render an `option` element.
|
|
1040
|
+
*
|
|
1041
|
+
* @group Components
|
|
1042
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1043
|
+
*/
|
|
1044
|
+
function Option(props) {
|
|
1045
|
+
return import_react.createElement("option", { ...props });
|
|
1046
|
+
}
|
|
1047
|
+
//#endregion
|
|
1048
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/PreviousMonthButton.js
|
|
1049
|
+
/**
|
|
1050
|
+
* Render the button to navigate to the previous month in the calendar.
|
|
1051
|
+
*
|
|
1052
|
+
* @group Components
|
|
1053
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1054
|
+
*/
|
|
1055
|
+
function PreviousMonthButton(props) {
|
|
1056
|
+
const { components } = useDayPicker();
|
|
1057
|
+
return import_react.createElement(components.Button, { ...props });
|
|
1058
|
+
}
|
|
1059
|
+
//#endregion
|
|
1060
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Root.js
|
|
1061
|
+
/**
|
|
1062
|
+
* Render the root element of the calendar.
|
|
1063
|
+
*
|
|
1064
|
+
* @group Components
|
|
1065
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1066
|
+
*/
|
|
1067
|
+
function Root(props) {
|
|
1068
|
+
const { rootRef, ...rest } = props;
|
|
1069
|
+
return import_react.createElement("div", {
|
|
1070
|
+
...rest,
|
|
1071
|
+
ref: rootRef
|
|
1072
|
+
});
|
|
1073
|
+
}
|
|
1074
|
+
//#endregion
|
|
1075
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Select.js
|
|
1076
|
+
/**
|
|
1077
|
+
* Render a `select` element.
|
|
1078
|
+
*
|
|
1079
|
+
* @group Components
|
|
1080
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1081
|
+
*/
|
|
1082
|
+
function Select(props) {
|
|
1083
|
+
return import_react.createElement("select", { ...props });
|
|
1084
|
+
}
|
|
1085
|
+
//#endregion
|
|
1086
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Week.js
|
|
1087
|
+
/**
|
|
1088
|
+
* Render a table row representing a week in the calendar.
|
|
1089
|
+
*
|
|
1090
|
+
* @group Components
|
|
1091
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1092
|
+
*/
|
|
1093
|
+
function Week(props) {
|
|
1094
|
+
const { week, ...trProps } = props;
|
|
1095
|
+
return import_react.createElement("tr", { ...trProps });
|
|
1096
|
+
}
|
|
1097
|
+
//#endregion
|
|
1098
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Weekday.js
|
|
1099
|
+
/**
|
|
1100
|
+
* Render a table header cell with the name of a weekday (e.g., "Mo", "Tu").
|
|
1101
|
+
*
|
|
1102
|
+
* @group Components
|
|
1103
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1104
|
+
*/
|
|
1105
|
+
function Weekday(props) {
|
|
1106
|
+
return import_react.createElement("th", { ...props });
|
|
1107
|
+
}
|
|
1108
|
+
//#endregion
|
|
1109
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Weekdays.js
|
|
1110
|
+
/**
|
|
1111
|
+
* Render the table row containing the weekday names.
|
|
1112
|
+
*
|
|
1113
|
+
* @group Components
|
|
1114
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1115
|
+
*/
|
|
1116
|
+
function Weekdays(props) {
|
|
1117
|
+
return import_react.createElement("thead", { "aria-hidden": true }, import_react.createElement("tr", { ...props }));
|
|
1118
|
+
}
|
|
1119
|
+
//#endregion
|
|
1120
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/WeekNumber.js
|
|
1121
|
+
/**
|
|
1122
|
+
* Render a table cell displaying the number of the week.
|
|
1123
|
+
*
|
|
1124
|
+
* @group Components
|
|
1125
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1126
|
+
*/
|
|
1127
|
+
function WeekNumber(props) {
|
|
1128
|
+
const { week, ...thProps } = props;
|
|
1129
|
+
return import_react.createElement("th", { ...thProps });
|
|
1130
|
+
}
|
|
1131
|
+
//#endregion
|
|
1132
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js
|
|
1133
|
+
/**
|
|
1134
|
+
* Render the header cell for the week numbers column.
|
|
1135
|
+
*
|
|
1136
|
+
* @group Components
|
|
1137
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1138
|
+
*/
|
|
1139
|
+
function WeekNumberHeader(props) {
|
|
1140
|
+
return import_react.createElement("th", { ...props });
|
|
1141
|
+
}
|
|
1142
|
+
//#endregion
|
|
1143
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/Weeks.js
|
|
1144
|
+
/**
|
|
1145
|
+
* Render the container for the weeks in the month grid.
|
|
1146
|
+
*
|
|
1147
|
+
* @group Components
|
|
1148
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1149
|
+
*/
|
|
1150
|
+
function Weeks(props) {
|
|
1151
|
+
return import_react.createElement("tbody", { ...props });
|
|
1152
|
+
}
|
|
1153
|
+
//#endregion
|
|
1154
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/YearsDropdown.js
|
|
1155
|
+
/**
|
|
1156
|
+
* Render a dropdown to navigate between years in the calendar.
|
|
1157
|
+
*
|
|
1158
|
+
* @group Components
|
|
1159
|
+
* @see https://daypicker.dev/guides/custom-components
|
|
1160
|
+
*/
|
|
1161
|
+
function YearsDropdown(props) {
|
|
1162
|
+
const { components } = useDayPicker();
|
|
1163
|
+
return import_react.createElement(components.Dropdown, { ...props });
|
|
1164
|
+
}
|
|
1165
|
+
//#endregion
|
|
1166
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/components/custom-components.js
|
|
1167
|
+
var custom_components_exports = /* @__PURE__ */ __exportAll({
|
|
1168
|
+
Button: () => Button,
|
|
1169
|
+
CaptionLabel: () => CaptionLabel,
|
|
1170
|
+
Chevron: () => Chevron,
|
|
1171
|
+
Day: () => Day,
|
|
1172
|
+
DayButton: () => DayButton,
|
|
1173
|
+
Dropdown: () => Dropdown,
|
|
1174
|
+
DropdownNav: () => DropdownNav,
|
|
1175
|
+
Footer: () => Footer,
|
|
1176
|
+
Month: () => Month,
|
|
1177
|
+
MonthCaption: () => MonthCaption,
|
|
1178
|
+
MonthGrid: () => MonthGrid,
|
|
1179
|
+
Months: () => Months,
|
|
1180
|
+
MonthsDropdown: () => MonthsDropdown,
|
|
1181
|
+
Nav: () => Nav,
|
|
1182
|
+
NextMonthButton: () => NextMonthButton,
|
|
1183
|
+
Option: () => Option,
|
|
1184
|
+
PreviousMonthButton: () => PreviousMonthButton,
|
|
1185
|
+
Root: () => Root,
|
|
1186
|
+
Select: () => Select,
|
|
1187
|
+
Week: () => Week,
|
|
1188
|
+
WeekNumber: () => WeekNumber,
|
|
1189
|
+
WeekNumberHeader: () => WeekNumberHeader,
|
|
1190
|
+
Weekday: () => Weekday,
|
|
1191
|
+
Weekdays: () => Weekdays,
|
|
1192
|
+
Weeks: () => Weeks,
|
|
1193
|
+
YearsDropdown: () => YearsDropdown
|
|
1194
|
+
});
|
|
1195
|
+
//#endregion
|
|
1196
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js
|
|
1197
|
+
/**
|
|
1198
|
+
* Checks if a given date is within a specified date range.
|
|
1199
|
+
*
|
|
1200
|
+
* @since 9.0.0
|
|
1201
|
+
* @param range - The date range to check against.
|
|
1202
|
+
* @param date - The date to check.
|
|
1203
|
+
* @param excludeEnds - If `true`, the range's start and end dates are excluded.
|
|
1204
|
+
* @param dateLib - The date utility library instance.
|
|
1205
|
+
* @returns `true` if the date is within the range, otherwise `false`.
|
|
1206
|
+
* @group Utilities
|
|
1207
|
+
*/
|
|
1208
|
+
function rangeIncludesDate(range, date, excludeEnds = false, dateLib = defaultDateLib) {
|
|
1209
|
+
let { from, to } = range;
|
|
1210
|
+
const { differenceInCalendarDays, isSameDay } = dateLib;
|
|
1211
|
+
if (from && to) {
|
|
1212
|
+
if (differenceInCalendarDays(to, from) < 0) [from, to] = [to, from];
|
|
1213
|
+
return differenceInCalendarDays(date, from) >= (excludeEnds ? 1 : 0) && differenceInCalendarDays(to, date) >= (excludeEnds ? 1 : 0);
|
|
1214
|
+
}
|
|
1215
|
+
if (!excludeEnds && to) return isSameDay(to, date);
|
|
1216
|
+
if (!excludeEnds && from) return isSameDay(from, date);
|
|
1217
|
+
return false;
|
|
1218
|
+
}
|
|
1219
|
+
//#endregion
|
|
1220
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/typeguards.js
|
|
1221
|
+
/**
|
|
1222
|
+
* Checks if the given value is of type {@link DateInterval}.
|
|
1223
|
+
*
|
|
1224
|
+
* @param matcher - The value to check.
|
|
1225
|
+
* @returns `true` if the value is a {@link DateInterval}, otherwise `false`.
|
|
1226
|
+
* @group Utilities
|
|
1227
|
+
*/
|
|
1228
|
+
function isDateInterval(matcher) {
|
|
1229
|
+
return Boolean(matcher && typeof matcher === "object" && "before" in matcher && "after" in matcher);
|
|
1230
|
+
}
|
|
1231
|
+
/**
|
|
1232
|
+
* Checks if the given value is of type {@link DateRange}.
|
|
1233
|
+
*
|
|
1234
|
+
* @param value - The value to check.
|
|
1235
|
+
* @returns `true` if the value is a {@link DateRange}, otherwise `false`.
|
|
1236
|
+
* @group Utilities
|
|
1237
|
+
*/
|
|
1238
|
+
function isDateRange(value) {
|
|
1239
|
+
return Boolean(value && typeof value === "object" && "from" in value);
|
|
1240
|
+
}
|
|
1241
|
+
/**
|
|
1242
|
+
* Checks if the given value is of type {@link DateAfter}.
|
|
1243
|
+
*
|
|
1244
|
+
* @param value - The value to check.
|
|
1245
|
+
* @returns `true` if the value is a {@link DateAfter}, otherwise `false`.
|
|
1246
|
+
* @group Utilities
|
|
1247
|
+
*/
|
|
1248
|
+
function isDateAfterType(value) {
|
|
1249
|
+
return Boolean(value && typeof value === "object" && "after" in value);
|
|
1250
|
+
}
|
|
1251
|
+
/**
|
|
1252
|
+
* Checks if the given value is of type {@link DateBefore}.
|
|
1253
|
+
*
|
|
1254
|
+
* @param value - The value to check.
|
|
1255
|
+
* @returns `true` if the value is a {@link DateBefore}, otherwise `false`.
|
|
1256
|
+
* @group Utilities
|
|
1257
|
+
*/
|
|
1258
|
+
function isDateBeforeType(value) {
|
|
1259
|
+
return Boolean(value && typeof value === "object" && "before" in value);
|
|
1260
|
+
}
|
|
1261
|
+
/**
|
|
1262
|
+
* Checks if the given value is of type {@link DayOfWeek}.
|
|
1263
|
+
*
|
|
1264
|
+
* @param value - The value to check.
|
|
1265
|
+
* @returns `true` if the value is a {@link DayOfWeek}, otherwise `false`.
|
|
1266
|
+
* @group Utilities
|
|
1267
|
+
*/
|
|
1268
|
+
function isDayOfWeekType(value) {
|
|
1269
|
+
return Boolean(value && typeof value === "object" && "dayOfWeek" in value);
|
|
1270
|
+
}
|
|
1271
|
+
/**
|
|
1272
|
+
* Checks if the given value is an array of valid dates.
|
|
1273
|
+
*
|
|
1274
|
+
* @private
|
|
1275
|
+
* @param value - The value to check.
|
|
1276
|
+
* @param dateLib - The date utility library instance.
|
|
1277
|
+
* @returns `true` if the value is an array of valid dates, otherwise `false`.
|
|
1278
|
+
*/
|
|
1279
|
+
function isDatesArray(value, dateLib) {
|
|
1280
|
+
return Array.isArray(value) && value.every(dateLib.isDate);
|
|
1281
|
+
}
|
|
1282
|
+
//#endregion
|
|
1283
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js
|
|
1284
|
+
/**
|
|
1285
|
+
* Checks if a given date matches at least one of the specified {@link Matcher}.
|
|
1286
|
+
*
|
|
1287
|
+
* @param date - The date to check.
|
|
1288
|
+
* @param matchers - The matchers to check against.
|
|
1289
|
+
* @param dateLib - The date utility library instance.
|
|
1290
|
+
* @returns `true` if the date matches any of the matchers, otherwise `false`.
|
|
1291
|
+
* @group Utilities
|
|
1292
|
+
*/
|
|
1293
|
+
function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {
|
|
1294
|
+
const matchersArr = !Array.isArray(matchers) ? [matchers] : matchers;
|
|
1295
|
+
const { isSameDay, differenceInCalendarDays, isAfter } = dateLib;
|
|
1296
|
+
return matchersArr.some((matcher) => {
|
|
1297
|
+
if (typeof matcher === "boolean") return matcher;
|
|
1298
|
+
if (dateLib.isDate(matcher)) return isSameDay(date, matcher);
|
|
1299
|
+
if (isDatesArray(matcher, dateLib)) return matcher.some((matcherDate) => isSameDay(date, matcherDate));
|
|
1300
|
+
if (isDateRange(matcher)) return rangeIncludesDate(matcher, date, false, dateLib);
|
|
1301
|
+
if (isDayOfWeekType(matcher)) {
|
|
1302
|
+
if (!Array.isArray(matcher.dayOfWeek)) return matcher.dayOfWeek === date.getDay();
|
|
1303
|
+
return matcher.dayOfWeek.includes(date.getDay());
|
|
1304
|
+
}
|
|
1305
|
+
if (isDateInterval(matcher)) {
|
|
1306
|
+
const diffBefore = differenceInCalendarDays(matcher.before, date);
|
|
1307
|
+
const diffAfter = differenceInCalendarDays(matcher.after, date);
|
|
1308
|
+
const isDayBefore = diffBefore > 0;
|
|
1309
|
+
const isDayAfter = diffAfter < 0;
|
|
1310
|
+
if (isAfter(matcher.before, matcher.after)) return isDayAfter && isDayBefore;
|
|
1311
|
+
else return isDayBefore || isDayAfter;
|
|
1312
|
+
}
|
|
1313
|
+
if (isDateAfterType(matcher)) return differenceInCalendarDays(date, matcher.after) > 0;
|
|
1314
|
+
if (isDateBeforeType(matcher)) return differenceInCalendarDays(matcher.before, date) > 0;
|
|
1315
|
+
if (typeof matcher === "function") return matcher(date);
|
|
1316
|
+
return false;
|
|
1317
|
+
});
|
|
1318
|
+
}
|
|
1319
|
+
//#endregion
|
|
1320
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js
|
|
1321
|
+
/**
|
|
1322
|
+
* Creates a function to retrieve the modifiers for a given day.
|
|
1323
|
+
*
|
|
1324
|
+
* This function calculates both internal and custom modifiers for each day
|
|
1325
|
+
* based on the provided calendar days and DayPicker props.
|
|
1326
|
+
*
|
|
1327
|
+
* @private
|
|
1328
|
+
* @param days The array of `CalendarDay` objects to process.
|
|
1329
|
+
* @param props The DayPicker props, including modifiers and configuration
|
|
1330
|
+
* options.
|
|
1331
|
+
* @param dateLib The date library to use for date manipulation.
|
|
1332
|
+
* @returns A function that retrieves the modifiers for a given `CalendarDay`.
|
|
1333
|
+
*/
|
|
1334
|
+
function createGetModifiers(days, props, navStart, navEnd, dateLib) {
|
|
1335
|
+
const { disabled, hidden, modifiers, showOutsideDays, broadcastCalendar, today = dateLib.today() } = props;
|
|
1336
|
+
const { isSameDay, isSameMonth, startOfMonth, isBefore, endOfMonth, isAfter } = dateLib;
|
|
1337
|
+
const computedNavStart = navStart && startOfMonth(navStart);
|
|
1338
|
+
const computedNavEnd = navEnd && endOfMonth(navEnd);
|
|
1339
|
+
const internalModifiersMap = {
|
|
1340
|
+
[DayFlag.focused]: [],
|
|
1341
|
+
[DayFlag.outside]: [],
|
|
1342
|
+
[DayFlag.disabled]: [],
|
|
1343
|
+
[DayFlag.hidden]: [],
|
|
1344
|
+
[DayFlag.today]: []
|
|
1345
|
+
};
|
|
1346
|
+
const customModifiersMap = {};
|
|
1347
|
+
for (const day of days) {
|
|
1348
|
+
const { date, displayMonth } = day;
|
|
1349
|
+
const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
|
|
1350
|
+
const isBeforeNavStart = Boolean(computedNavStart && isBefore(date, computedNavStart));
|
|
1351
|
+
const isAfterNavEnd = Boolean(computedNavEnd && isAfter(date, computedNavEnd));
|
|
1352
|
+
const isDisabled = Boolean(disabled && dateMatchModifiers(date, disabled, dateLib));
|
|
1353
|
+
const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) || isBeforeNavStart || isAfterNavEnd || !broadcastCalendar && !showOutsideDays && isOutside || broadcastCalendar && showOutsideDays === false && isOutside;
|
|
1354
|
+
const isToday = isSameDay(date, today);
|
|
1355
|
+
if (isOutside) internalModifiersMap.outside.push(day);
|
|
1356
|
+
if (isDisabled) internalModifiersMap.disabled.push(day);
|
|
1357
|
+
if (isHidden) internalModifiersMap.hidden.push(day);
|
|
1358
|
+
if (isToday) internalModifiersMap.today.push(day);
|
|
1359
|
+
if (modifiers) Object.keys(modifiers).forEach((name) => {
|
|
1360
|
+
const modifierValue = modifiers?.[name];
|
|
1361
|
+
if (!(modifierValue ? dateMatchModifiers(date, modifierValue, dateLib) : false)) return;
|
|
1362
|
+
if (customModifiersMap[name]) customModifiersMap[name].push(day);
|
|
1363
|
+
else customModifiersMap[name] = [day];
|
|
1364
|
+
});
|
|
1365
|
+
}
|
|
1366
|
+
return (day) => {
|
|
1367
|
+
const dayFlags = {
|
|
1368
|
+
[DayFlag.focused]: false,
|
|
1369
|
+
[DayFlag.disabled]: false,
|
|
1370
|
+
[DayFlag.hidden]: false,
|
|
1371
|
+
[DayFlag.outside]: false,
|
|
1372
|
+
[DayFlag.today]: false
|
|
1373
|
+
};
|
|
1374
|
+
const customModifiers = {};
|
|
1375
|
+
for (const name in internalModifiersMap) dayFlags[name] = internalModifiersMap[name].some((d) => d === day);
|
|
1376
|
+
for (const name in customModifiersMap) customModifiers[name] = customModifiersMap[name].some((d) => d === day);
|
|
1377
|
+
return {
|
|
1378
|
+
...dayFlags,
|
|
1379
|
+
...customModifiers
|
|
1380
|
+
};
|
|
1381
|
+
};
|
|
1382
|
+
}
|
|
1383
|
+
//#endregion
|
|
1384
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js
|
|
1385
|
+
/**
|
|
1386
|
+
* Returns the class names for a day based on its modifiers.
|
|
1387
|
+
*
|
|
1388
|
+
* This function combines the base class name for the day with any class names
|
|
1389
|
+
* associated with active modifiers.
|
|
1390
|
+
*
|
|
1391
|
+
* @param modifiers The modifiers applied to the day.
|
|
1392
|
+
* @param classNames The base class names for the calendar elements.
|
|
1393
|
+
* @param modifiersClassNames The class names associated with specific
|
|
1394
|
+
* modifiers.
|
|
1395
|
+
* @returns An array of class names for the day.
|
|
1396
|
+
*/
|
|
1397
|
+
function getClassNamesForModifiers(modifiers, classNames, modifiersClassNames = {}) {
|
|
1398
|
+
return Object.entries(modifiers).filter(([, active]) => active === true).reduce((previousValue, [key]) => {
|
|
1399
|
+
if (modifiersClassNames[key]) previousValue.push(modifiersClassNames[key]);
|
|
1400
|
+
else if (classNames[DayFlag[key]]) previousValue.push(classNames[DayFlag[key]]);
|
|
1401
|
+
else if (classNames[SelectionState[key]]) previousValue.push(classNames[SelectionState[key]]);
|
|
1402
|
+
return previousValue;
|
|
1403
|
+
}, [classNames[UI.Day]]);
|
|
1404
|
+
}
|
|
1405
|
+
//#endregion
|
|
1406
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getComponents.js
|
|
1407
|
+
/**
|
|
1408
|
+
* Merges custom components from the props with the default components.
|
|
1409
|
+
*
|
|
1410
|
+
* This function ensures that any custom components provided in the props
|
|
1411
|
+
* override the default components.
|
|
1412
|
+
*
|
|
1413
|
+
* @param customComponents The custom components provided in the DayPicker
|
|
1414
|
+
* props.
|
|
1415
|
+
* @returns An object containing the merged components.
|
|
1416
|
+
*/
|
|
1417
|
+
function getComponents(customComponents) {
|
|
1418
|
+
return {
|
|
1419
|
+
...custom_components_exports,
|
|
1420
|
+
...customComponents
|
|
1421
|
+
};
|
|
1422
|
+
}
|
|
1423
|
+
//#endregion
|
|
1424
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js
|
|
1425
|
+
/**
|
|
1426
|
+
* Extracts `data-` attributes from the DayPicker props.
|
|
1427
|
+
*
|
|
1428
|
+
* This function collects all `data-` attributes from the props and adds
|
|
1429
|
+
* additional attributes based on the DayPicker configuration.
|
|
1430
|
+
*
|
|
1431
|
+
* @param props The DayPicker props.
|
|
1432
|
+
* @returns An object containing the `data-` attributes.
|
|
1433
|
+
*/
|
|
1434
|
+
function getDataAttributes(props) {
|
|
1435
|
+
const dataAttributes = {
|
|
1436
|
+
"data-mode": props.mode ?? void 0,
|
|
1437
|
+
"data-required": "required" in props ? props.required : void 0,
|
|
1438
|
+
"data-multiple-months": props.numberOfMonths && props.numberOfMonths > 1 || void 0,
|
|
1439
|
+
"data-week-numbers": props.showWeekNumber || void 0,
|
|
1440
|
+
"data-broadcast-calendar": props.broadcastCalendar || void 0,
|
|
1441
|
+
"data-nav-layout": props.navLayout || void 0
|
|
1442
|
+
};
|
|
1443
|
+
Object.entries(props).forEach(([key, val]) => {
|
|
1444
|
+
if (key.startsWith("data-")) dataAttributes[key] = val;
|
|
1445
|
+
});
|
|
1446
|
+
return dataAttributes;
|
|
1447
|
+
}
|
|
1448
|
+
//#endregion
|
|
1449
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js
|
|
1450
|
+
/**
|
|
1451
|
+
* Returns the default class names for the UI elements.
|
|
1452
|
+
*
|
|
1453
|
+
* This function generates a mapping of default class names for various UI
|
|
1454
|
+
* elements, day flags, selection states, and animations.
|
|
1455
|
+
*
|
|
1456
|
+
* @returns An object containing the default class names.
|
|
1457
|
+
* @group Utilities
|
|
1458
|
+
*/
|
|
1459
|
+
function getDefaultClassNames() {
|
|
1460
|
+
const classNames = {};
|
|
1461
|
+
for (const key in UI) classNames[UI[key]] = `rdp-${UI[key]}`;
|
|
1462
|
+
for (const key in DayFlag) classNames[DayFlag[key]] = `rdp-${DayFlag[key]}`;
|
|
1463
|
+
for (const key in SelectionState) classNames[SelectionState[key]] = `rdp-${SelectionState[key]}`;
|
|
1464
|
+
for (const key in Animation) classNames[Animation[key]] = `rdp-${Animation[key]}`;
|
|
1465
|
+
return classNames;
|
|
1466
|
+
}
|
|
1467
|
+
//#endregion
|
|
1468
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js
|
|
1469
|
+
/**
|
|
1470
|
+
* Formats the caption of the month.
|
|
1471
|
+
*
|
|
1472
|
+
* @defaultValue Locale-specific month/year order (e.g., "November 2022").
|
|
1473
|
+
* @param month The date representing the month.
|
|
1474
|
+
* @param options Configuration options for the date library.
|
|
1475
|
+
* @param dateLib The date library to use for formatting. If not provided, a new
|
|
1476
|
+
* instance is created.
|
|
1477
|
+
* @returns The formatted caption as a string.
|
|
1478
|
+
* @group Formatters
|
|
1479
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1480
|
+
*/
|
|
1481
|
+
function formatCaption(month, options, dateLib) {
|
|
1482
|
+
return (dateLib ?? new DateLib(options)).formatMonthYear(month);
|
|
1483
|
+
}
|
|
1484
|
+
/**
|
|
1485
|
+
* @private
|
|
1486
|
+
* @deprecated Use {@link formatCaption} instead.
|
|
1487
|
+
* @group Formatters
|
|
1488
|
+
*/
|
|
1489
|
+
var formatMonthCaption = formatCaption;
|
|
1490
|
+
//#endregion
|
|
1491
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatDay.js
|
|
1492
|
+
/**
|
|
1493
|
+
* Formats the day date shown in the day cell.
|
|
1494
|
+
*
|
|
1495
|
+
* @defaultValue `d` (e.g., "1").
|
|
1496
|
+
* @param date The date to format.
|
|
1497
|
+
* @param options Configuration options for the date library.
|
|
1498
|
+
* @param dateLib The date library to use for formatting. If not provided, a new
|
|
1499
|
+
* instance is created.
|
|
1500
|
+
* @returns The formatted day as a string.
|
|
1501
|
+
* @group Formatters
|
|
1502
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1503
|
+
*/
|
|
1504
|
+
function formatDay(date, options, dateLib) {
|
|
1505
|
+
return (dateLib ?? new DateLib(options)).format(date, "d");
|
|
1506
|
+
}
|
|
1507
|
+
//#endregion
|
|
1508
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js
|
|
1509
|
+
/**
|
|
1510
|
+
* Formats the month for the dropdown option label.
|
|
1511
|
+
*
|
|
1512
|
+
* @defaultValue The localized full month name.
|
|
1513
|
+
* @param month The date representing the month.
|
|
1514
|
+
* @param dateLib The date library to use for formatting. Defaults to
|
|
1515
|
+
* `defaultDateLib`.
|
|
1516
|
+
* @returns The formatted month name as a string.
|
|
1517
|
+
* @group Formatters
|
|
1518
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1519
|
+
*/
|
|
1520
|
+
function formatMonthDropdown(month, dateLib = defaultDateLib) {
|
|
1521
|
+
return dateLib.format(month, "LLLL");
|
|
1522
|
+
}
|
|
1523
|
+
//#endregion
|
|
1524
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js
|
|
1525
|
+
/**
|
|
1526
|
+
* Formats the name of a weekday to be displayed in the weekdays header.
|
|
1527
|
+
*
|
|
1528
|
+
* @defaultValue `cccccc` (e.g., "Mo" for Monday).
|
|
1529
|
+
* @param weekday The date representing the weekday.
|
|
1530
|
+
* @param options Configuration options for the date library.
|
|
1531
|
+
* @param dateLib The date library to use for formatting. If not provided, a new
|
|
1532
|
+
* instance is created.
|
|
1533
|
+
* @returns The formatted weekday name as a string.
|
|
1534
|
+
* @group Formatters
|
|
1535
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1536
|
+
*/
|
|
1537
|
+
function formatWeekdayName(weekday, options, dateLib) {
|
|
1538
|
+
return (dateLib ?? new DateLib(options)).format(weekday, "cccccc");
|
|
1539
|
+
}
|
|
1540
|
+
//#endregion
|
|
1541
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js
|
|
1542
|
+
/**
|
|
1543
|
+
* Formats the week number.
|
|
1544
|
+
*
|
|
1545
|
+
* @defaultValue The week number as a string, with a leading zero for single-digit numbers.
|
|
1546
|
+
* @param weekNumber The week number to format.
|
|
1547
|
+
* @param dateLib The date library to use for formatting. Defaults to
|
|
1548
|
+
* `defaultDateLib`.
|
|
1549
|
+
* @returns The formatted week number as a string.
|
|
1550
|
+
* @group Formatters
|
|
1551
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1552
|
+
*/
|
|
1553
|
+
function formatWeekNumber(weekNumber, dateLib = defaultDateLib) {
|
|
1554
|
+
if (weekNumber < 10) return dateLib.formatNumber(`0${weekNumber.toLocaleString()}`);
|
|
1555
|
+
return dateLib.formatNumber(`${weekNumber.toLocaleString()}`);
|
|
1556
|
+
}
|
|
1557
|
+
//#endregion
|
|
1558
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js
|
|
1559
|
+
/**
|
|
1560
|
+
* Formats the header for the week number column.
|
|
1561
|
+
*
|
|
1562
|
+
* @defaultValue An empty string `""`.
|
|
1563
|
+
* @returns The formatted week number header as a string.
|
|
1564
|
+
* @group Formatters
|
|
1565
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1566
|
+
*/
|
|
1567
|
+
function formatWeekNumberHeader() {
|
|
1568
|
+
return ``;
|
|
1569
|
+
}
|
|
1570
|
+
//#endregion
|
|
1571
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js
|
|
1572
|
+
/**
|
|
1573
|
+
* Formats the year for the dropdown option label.
|
|
1574
|
+
*
|
|
1575
|
+
* @param year The year to format.
|
|
1576
|
+
* @param dateLib The date library to use for formatting. Defaults to
|
|
1577
|
+
* `defaultDateLib`.
|
|
1578
|
+
* @returns The formatted year as a string.
|
|
1579
|
+
* @group Formatters
|
|
1580
|
+
* @see https://daypicker.dev/docs/translation#custom-formatters
|
|
1581
|
+
*/
|
|
1582
|
+
function formatYearDropdown(year, dateLib = defaultDateLib) {
|
|
1583
|
+
return dateLib.format(year, "yyyy");
|
|
1584
|
+
}
|
|
1585
|
+
/**
|
|
1586
|
+
* @private
|
|
1587
|
+
* @deprecated Use `formatYearDropdown` instead.
|
|
1588
|
+
* @group Formatters
|
|
1589
|
+
*/
|
|
1590
|
+
var formatYearCaption = formatYearDropdown;
|
|
1591
|
+
//#endregion
|
|
1592
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/formatters/index.js
|
|
1593
|
+
var formatters_exports = /* @__PURE__ */ __exportAll({
|
|
1594
|
+
formatCaption: () => formatCaption,
|
|
1595
|
+
formatDay: () => formatDay,
|
|
1596
|
+
formatMonthCaption: () => formatMonthCaption,
|
|
1597
|
+
formatMonthDropdown: () => formatMonthDropdown,
|
|
1598
|
+
formatWeekNumber: () => formatWeekNumber,
|
|
1599
|
+
formatWeekNumberHeader: () => formatWeekNumberHeader,
|
|
1600
|
+
formatWeekdayName: () => formatWeekdayName,
|
|
1601
|
+
formatYearCaption: () => formatYearCaption,
|
|
1602
|
+
formatYearDropdown: () => formatYearDropdown
|
|
1603
|
+
});
|
|
1604
|
+
//#endregion
|
|
1605
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js
|
|
1606
|
+
/**
|
|
1607
|
+
* Merges custom formatters from the props with the default formatters.
|
|
1608
|
+
*
|
|
1609
|
+
* @param customFormatters The custom formatters provided in the DayPicker
|
|
1610
|
+
* props.
|
|
1611
|
+
* @returns The merged formatters object.
|
|
1612
|
+
*/
|
|
1613
|
+
function getFormatters(customFormatters) {
|
|
1614
|
+
if (customFormatters?.formatMonthCaption && !customFormatters.formatCaption) customFormatters.formatCaption = customFormatters.formatMonthCaption;
|
|
1615
|
+
if (customFormatters?.formatYearCaption && !customFormatters.formatYearDropdown) customFormatters.formatYearDropdown = customFormatters.formatYearCaption;
|
|
1616
|
+
return {
|
|
1617
|
+
...formatters_exports,
|
|
1618
|
+
...customFormatters
|
|
1619
|
+
};
|
|
1620
|
+
}
|
|
1621
|
+
//#endregion
|
|
1622
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js
|
|
1623
|
+
/**
|
|
1624
|
+
* Generates the ARIA label for a day button.
|
|
1625
|
+
*
|
|
1626
|
+
* Use the `modifiers` argument to provide additional context for the label,
|
|
1627
|
+
* such as indicating if the day is "today" or "selected."
|
|
1628
|
+
*
|
|
1629
|
+
* @defaultValue The formatted date.
|
|
1630
|
+
* @param date - The date to format.
|
|
1631
|
+
* @param modifiers - The modifiers providing context for the day.
|
|
1632
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1633
|
+
* @param dateLib - An optional instance of the date formatting library.
|
|
1634
|
+
* @returns The ARIA label for the day button.
|
|
1635
|
+
* @group Labels
|
|
1636
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1637
|
+
*/
|
|
1638
|
+
function labelDayButton(date, modifiers, options, dateLib) {
|
|
1639
|
+
let label = (dateLib ?? new DateLib(options)).format(date, "PPPP");
|
|
1640
|
+
if (modifiers.today) label = `Today, ${label}`;
|
|
1641
|
+
if (modifiers.selected) label = `${label}, selected`;
|
|
1642
|
+
return label;
|
|
1643
|
+
}
|
|
1644
|
+
/**
|
|
1645
|
+
* @ignore
|
|
1646
|
+
* @deprecated Use `labelDayButton` instead.
|
|
1647
|
+
*/
|
|
1648
|
+
var labelDay = labelDayButton;
|
|
1649
|
+
//#endregion
|
|
1650
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelGrid.js
|
|
1651
|
+
/**
|
|
1652
|
+
* Generates the ARIA label for the month grid, which is announced when entering
|
|
1653
|
+
* the grid.
|
|
1654
|
+
*
|
|
1655
|
+
* @defaultValue Locale-specific month/year order (e.g., "November 2022").
|
|
1656
|
+
* @param date - The date representing the month.
|
|
1657
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1658
|
+
* @param dateLib - An optional instance of the date formatting library.
|
|
1659
|
+
* @returns The ARIA label for the month grid.
|
|
1660
|
+
* @group Labels
|
|
1661
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1662
|
+
*/
|
|
1663
|
+
function labelGrid(date, options, dateLib) {
|
|
1664
|
+
return (dateLib ?? new DateLib(options)).formatMonthYear(date);
|
|
1665
|
+
}
|
|
1666
|
+
/**
|
|
1667
|
+
* @ignore
|
|
1668
|
+
* @deprecated Use {@link labelGrid} instead.
|
|
1669
|
+
*/
|
|
1670
|
+
var labelCaption = labelGrid;
|
|
1671
|
+
//#endregion
|
|
1672
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js
|
|
1673
|
+
/**
|
|
1674
|
+
* Generates the label for a day grid cell when the calendar is not interactive.
|
|
1675
|
+
*
|
|
1676
|
+
* @param date - The date to format.
|
|
1677
|
+
* @param modifiers - Optional modifiers providing context for the day.
|
|
1678
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1679
|
+
* @param dateLib - An optional instance of the date formatting library.
|
|
1680
|
+
* @returns The label for the day grid cell.
|
|
1681
|
+
* @group Labels
|
|
1682
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1683
|
+
*/
|
|
1684
|
+
function labelGridcell(date, modifiers, options, dateLib) {
|
|
1685
|
+
let label = (dateLib ?? new DateLib(options)).format(date, "PPPP");
|
|
1686
|
+
if (modifiers?.today) label = `Today, ${label}`;
|
|
1687
|
+
return label;
|
|
1688
|
+
}
|
|
1689
|
+
//#endregion
|
|
1690
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js
|
|
1691
|
+
/**
|
|
1692
|
+
* Generates the ARIA label for the months dropdown.
|
|
1693
|
+
*
|
|
1694
|
+
* @defaultValue `"Choose the Month"`
|
|
1695
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1696
|
+
* @returns The ARIA label for the months dropdown.
|
|
1697
|
+
* @group Labels
|
|
1698
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1699
|
+
*/
|
|
1700
|
+
function labelMonthDropdown(_options) {
|
|
1701
|
+
return "Choose the Month";
|
|
1702
|
+
}
|
|
1703
|
+
//#endregion
|
|
1704
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelNav.js
|
|
1705
|
+
/**
|
|
1706
|
+
* Generates the ARIA label for the navigation toolbar.
|
|
1707
|
+
*
|
|
1708
|
+
* @defaultValue `""`
|
|
1709
|
+
* @returns The ARIA label for the navigation toolbar.
|
|
1710
|
+
* @group Labels
|
|
1711
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1712
|
+
*/
|
|
1713
|
+
function labelNav() {
|
|
1714
|
+
return "";
|
|
1715
|
+
}
|
|
1716
|
+
//#endregion
|
|
1717
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelNext.js
|
|
1718
|
+
var defaultLabel = "Go to the Next Month";
|
|
1719
|
+
/**
|
|
1720
|
+
* Generates the ARIA label for the "next month" button.
|
|
1721
|
+
*
|
|
1722
|
+
* @defaultValue `"Go to the Next Month"`
|
|
1723
|
+
* @param month - The date representing the next month, or `undefined` if there
|
|
1724
|
+
* is no next month.
|
|
1725
|
+
* @returns The ARIA label for the "next month" button.
|
|
1726
|
+
* @group Labels
|
|
1727
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1728
|
+
*/
|
|
1729
|
+
function labelNext(_month, _options) {
|
|
1730
|
+
return defaultLabel;
|
|
1731
|
+
}
|
|
1732
|
+
//#endregion
|
|
1733
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js
|
|
1734
|
+
/**
|
|
1735
|
+
* Generates the ARIA label for the "previous month" button.
|
|
1736
|
+
*
|
|
1737
|
+
* @defaultValue `"Go to the Previous Month"`
|
|
1738
|
+
* @param month - The date representing the previous month, or `undefined` if
|
|
1739
|
+
* there is no previous month.
|
|
1740
|
+
* @returns The ARIA label for the "previous month" button.
|
|
1741
|
+
* @group Labels
|
|
1742
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1743
|
+
*/
|
|
1744
|
+
function labelPrevious(_month) {
|
|
1745
|
+
return "Go to the Previous Month";
|
|
1746
|
+
}
|
|
1747
|
+
//#endregion
|
|
1748
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js
|
|
1749
|
+
/**
|
|
1750
|
+
* Generates the ARIA label for a weekday column header.
|
|
1751
|
+
*
|
|
1752
|
+
* @defaultValue `"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"`
|
|
1753
|
+
* @param date - The date representing the weekday.
|
|
1754
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1755
|
+
* @param dateLib - An optional instance of the date formatting library.
|
|
1756
|
+
* @returns The ARIA label for the weekday column header.
|
|
1757
|
+
* @group Labels
|
|
1758
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1759
|
+
*/
|
|
1760
|
+
function labelWeekday(date, options, dateLib) {
|
|
1761
|
+
return (dateLib ?? new DateLib(options)).format(date, "cccc");
|
|
1762
|
+
}
|
|
1763
|
+
//#endregion
|
|
1764
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js
|
|
1765
|
+
/**
|
|
1766
|
+
* Generates the ARIA label for the week number cell (the first cell in a row).
|
|
1767
|
+
*
|
|
1768
|
+
* @defaultValue `Week ${weekNumber}`
|
|
1769
|
+
* @param weekNumber - The number of the week.
|
|
1770
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1771
|
+
* @returns The ARIA label for the week number cell.
|
|
1772
|
+
* @group Labels
|
|
1773
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1774
|
+
*/
|
|
1775
|
+
function labelWeekNumber(weekNumber, _options) {
|
|
1776
|
+
return `Week ${weekNumber}`;
|
|
1777
|
+
}
|
|
1778
|
+
//#endregion
|
|
1779
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js
|
|
1780
|
+
/**
|
|
1781
|
+
* Generates the ARIA label for the week number header element.
|
|
1782
|
+
*
|
|
1783
|
+
* @defaultValue `"Week Number"`
|
|
1784
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1785
|
+
* @returns The ARIA label for the week number header.
|
|
1786
|
+
* @group Labels
|
|
1787
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1788
|
+
*/
|
|
1789
|
+
function labelWeekNumberHeader(_options) {
|
|
1790
|
+
return "Week Number";
|
|
1791
|
+
}
|
|
1792
|
+
//#endregion
|
|
1793
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js
|
|
1794
|
+
/**
|
|
1795
|
+
* Generates the ARIA label for the years dropdown.
|
|
1796
|
+
*
|
|
1797
|
+
* @defaultValue `"Choose the Year"`
|
|
1798
|
+
* @param options - Optional configuration for the date formatting library.
|
|
1799
|
+
* @returns The ARIA label for the years dropdown.
|
|
1800
|
+
* @group Labels
|
|
1801
|
+
* @see https://daypicker.dev/docs/translation#aria-labels
|
|
1802
|
+
*/
|
|
1803
|
+
function labelYearDropdown(_options) {
|
|
1804
|
+
return "Choose the Year";
|
|
1805
|
+
}
|
|
1806
|
+
//#endregion
|
|
1807
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/labels/index.js
|
|
1808
|
+
var labels_exports = /* @__PURE__ */ __exportAll({
|
|
1809
|
+
labelCaption: () => labelCaption,
|
|
1810
|
+
labelDay: () => labelDay,
|
|
1811
|
+
labelDayButton: () => labelDayButton,
|
|
1812
|
+
labelGrid: () => labelGrid,
|
|
1813
|
+
labelGridcell: () => labelGridcell,
|
|
1814
|
+
labelMonthDropdown: () => labelMonthDropdown,
|
|
1815
|
+
labelNav: () => labelNav,
|
|
1816
|
+
labelNext: () => labelNext,
|
|
1817
|
+
labelPrevious: () => labelPrevious,
|
|
1818
|
+
labelWeekNumber: () => labelWeekNumber,
|
|
1819
|
+
labelWeekNumberHeader: () => labelWeekNumberHeader,
|
|
1820
|
+
labelWeekday: () => labelWeekday,
|
|
1821
|
+
labelYearDropdown: () => labelYearDropdown
|
|
1822
|
+
});
|
|
1823
|
+
//#endregion
|
|
1824
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getLabels.js
|
|
1825
|
+
var resolveLabel = (defaultLabel, customLabel, localeLabel) => {
|
|
1826
|
+
if (customLabel) return customLabel;
|
|
1827
|
+
if (localeLabel) return typeof localeLabel === "function" ? localeLabel : (..._args) => localeLabel;
|
|
1828
|
+
return defaultLabel;
|
|
1829
|
+
};
|
|
1830
|
+
/**
|
|
1831
|
+
* Merges custom labels from the props with the default labels.
|
|
1832
|
+
*
|
|
1833
|
+
* When available, uses the locale-provided translation for `labelNext`.
|
|
1834
|
+
*
|
|
1835
|
+
* @param customLabels The custom labels provided in the DayPicker props.
|
|
1836
|
+
* @param options Options from the date library, used to resolve locale
|
|
1837
|
+
* translations.
|
|
1838
|
+
* @returns The merged labels object with locale-aware defaults.
|
|
1839
|
+
*/
|
|
1840
|
+
function getLabels(customLabels, options) {
|
|
1841
|
+
const localeLabels = options.locale?.labels ?? {};
|
|
1842
|
+
return {
|
|
1843
|
+
...labels_exports,
|
|
1844
|
+
...customLabels ?? {},
|
|
1845
|
+
labelDayButton: resolveLabel(labelDayButton, customLabels?.labelDayButton, localeLabels.labelDayButton),
|
|
1846
|
+
labelMonthDropdown: resolveLabel(labelMonthDropdown, customLabels?.labelMonthDropdown, localeLabels.labelMonthDropdown),
|
|
1847
|
+
labelNext: resolveLabel(labelNext, customLabels?.labelNext, localeLabels.labelNext),
|
|
1848
|
+
labelPrevious: resolveLabel(labelPrevious, customLabels?.labelPrevious, localeLabels.labelPrevious),
|
|
1849
|
+
labelWeekNumber: resolveLabel(labelWeekNumber, customLabels?.labelWeekNumber, localeLabels.labelWeekNumber),
|
|
1850
|
+
labelYearDropdown: resolveLabel(labelYearDropdown, customLabels?.labelYearDropdown, localeLabels.labelYearDropdown),
|
|
1851
|
+
labelGrid: resolveLabel(labelGrid, customLabels?.labelGrid, localeLabels.labelGrid),
|
|
1852
|
+
labelGridcell: resolveLabel(labelGridcell, customLabels?.labelGridcell, localeLabels.labelGridcell),
|
|
1853
|
+
labelNav: resolveLabel(labelNav, customLabels?.labelNav, localeLabels.labelNav),
|
|
1854
|
+
labelWeekNumberHeader: resolveLabel(labelWeekNumberHeader, customLabels?.labelWeekNumberHeader, localeLabels.labelWeekNumberHeader),
|
|
1855
|
+
labelWeekday: resolveLabel(labelWeekday, customLabels?.labelWeekday, localeLabels.labelWeekday)
|
|
1856
|
+
};
|
|
1857
|
+
}
|
|
1858
|
+
//#endregion
|
|
1859
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js
|
|
1860
|
+
/**
|
|
1861
|
+
* Returns the months to show in the dropdown.
|
|
1862
|
+
*
|
|
1863
|
+
* This function generates a list of months for the current year, formatted
|
|
1864
|
+
* using the provided formatter, and determines whether each month should be
|
|
1865
|
+
* disabled based on the navigation range.
|
|
1866
|
+
*
|
|
1867
|
+
* @param displayMonth The currently displayed month.
|
|
1868
|
+
* @param navStart The start date for navigation.
|
|
1869
|
+
* @param navEnd The end date for navigation.
|
|
1870
|
+
* @param formatters The formatters to use for formatting the month labels.
|
|
1871
|
+
* @param dateLib The date library to use for date manipulation.
|
|
1872
|
+
* @returns An array of dropdown options representing the months, or `undefined`
|
|
1873
|
+
* if no months are available.
|
|
1874
|
+
*/
|
|
1875
|
+
function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
|
|
1876
|
+
const { startOfMonth, startOfYear, endOfYear, eachMonthOfInterval, getMonth } = dateLib;
|
|
1877
|
+
return eachMonthOfInterval({
|
|
1878
|
+
start: startOfYear(displayMonth),
|
|
1879
|
+
end: endOfYear(displayMonth)
|
|
1880
|
+
}).map((month) => {
|
|
1881
|
+
const label = formatters.formatMonthDropdown(month, dateLib);
|
|
1882
|
+
return {
|
|
1883
|
+
value: getMonth(month),
|
|
1884
|
+
label,
|
|
1885
|
+
disabled: navStart && month < startOfMonth(navStart) || navEnd && month > startOfMonth(navEnd) || false
|
|
1886
|
+
};
|
|
1887
|
+
});
|
|
1888
|
+
}
|
|
1889
|
+
//#endregion
|
|
1890
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js
|
|
1891
|
+
/**
|
|
1892
|
+
* Returns the computed style for a day based on its modifiers.
|
|
1893
|
+
*
|
|
1894
|
+
* This function merges the base styles for the day with any styles associated
|
|
1895
|
+
* with active modifiers.
|
|
1896
|
+
*
|
|
1897
|
+
* @param dayModifiers The modifiers applied to the day.
|
|
1898
|
+
* @param styles The base styles for the calendar elements.
|
|
1899
|
+
* @param modifiersStyles The styles associated with specific modifiers.
|
|
1900
|
+
* @returns The computed style for the day.
|
|
1901
|
+
*/
|
|
1902
|
+
function getStyleForModifiers(dayModifiers, styles = {}, modifiersStyles = {}) {
|
|
1903
|
+
let style = { ...styles?.[UI.Day] };
|
|
1904
|
+
Object.entries(dayModifiers).filter(([, active]) => active === true).forEach(([modifier]) => {
|
|
1905
|
+
style = {
|
|
1906
|
+
...style,
|
|
1907
|
+
...modifiersStyles?.[modifier]
|
|
1908
|
+
};
|
|
1909
|
+
});
|
|
1910
|
+
return style;
|
|
1911
|
+
}
|
|
1912
|
+
//#endregion
|
|
1913
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js
|
|
1914
|
+
/**
|
|
1915
|
+
* Generates a series of 7 days, starting from the beginning of the week, to use
|
|
1916
|
+
* for formatting weekday names (e.g., Monday, Tuesday, etc.).
|
|
1917
|
+
*
|
|
1918
|
+
* @param dateLib The date library to use for date manipulation.
|
|
1919
|
+
* @param ISOWeek Whether to use ISO week numbering (weeks start on Monday).
|
|
1920
|
+
* @param broadcastCalendar Whether to use the broadcast calendar (weeks start
|
|
1921
|
+
* on Monday, but may include adjustments for broadcast-specific rules).
|
|
1922
|
+
* @returns An array of 7 dates representing the weekdays.
|
|
1923
|
+
*/
|
|
1924
|
+
function getWeekdays(dateLib, ISOWeek, broadcastCalendar, today) {
|
|
1925
|
+
const referenceToday = today ?? dateLib.today();
|
|
1926
|
+
const start = broadcastCalendar ? dateLib.startOfBroadcastWeek(referenceToday, dateLib) : ISOWeek ? dateLib.startOfISOWeek(referenceToday) : dateLib.startOfWeek(referenceToday);
|
|
1927
|
+
const days = [];
|
|
1928
|
+
for (let i = 0; i < 7; i++) {
|
|
1929
|
+
const day = dateLib.addDays(start, i);
|
|
1930
|
+
days.push(day);
|
|
1931
|
+
}
|
|
1932
|
+
return days;
|
|
1933
|
+
}
|
|
1934
|
+
//#endregion
|
|
1935
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js
|
|
1936
|
+
/**
|
|
1937
|
+
* Returns the years to display in the dropdown.
|
|
1938
|
+
*
|
|
1939
|
+
* This function generates a list of years between the navigation start and end
|
|
1940
|
+
* dates, formatted using the provided formatter.
|
|
1941
|
+
*
|
|
1942
|
+
* @param navStart The start date for navigation.
|
|
1943
|
+
* @param navEnd The end date for navigation.
|
|
1944
|
+
* @param formatters The formatters to use for formatting the year labels.
|
|
1945
|
+
* @param dateLib The date library to use for date manipulation.
|
|
1946
|
+
* @param reverse If true, reverses the order of the years (descending).
|
|
1947
|
+
* @returns An array of dropdown options representing the years, or `undefined`
|
|
1948
|
+
* if `navStart` or `navEnd` is not provided.
|
|
1949
|
+
*/
|
|
1950
|
+
function getYearOptions(navStart, navEnd, formatters, dateLib, reverse = false) {
|
|
1951
|
+
if (!navStart) return void 0;
|
|
1952
|
+
if (!navEnd) return void 0;
|
|
1953
|
+
const { startOfYear, endOfYear, eachYearOfInterval, getYear } = dateLib;
|
|
1954
|
+
const years = eachYearOfInterval({
|
|
1955
|
+
start: startOfYear(navStart),
|
|
1956
|
+
end: endOfYear(navEnd)
|
|
1957
|
+
});
|
|
1958
|
+
if (reverse) years.reverse();
|
|
1959
|
+
return years.map((year) => {
|
|
1960
|
+
const label = formatters.formatYearDropdown(year, dateLib);
|
|
1961
|
+
return {
|
|
1962
|
+
value: getYear(year),
|
|
1963
|
+
label,
|
|
1964
|
+
disabled: false
|
|
1965
|
+
};
|
|
1966
|
+
});
|
|
1967
|
+
}
|
|
1968
|
+
//#endregion
|
|
1969
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/noonDateLib.js
|
|
1970
|
+
/**
|
|
1971
|
+
* Creates `dateLib` overrides that keep all calendar math at noon in the target
|
|
1972
|
+
* time zone. This avoids second-level offset changes (e.g., historical zones
|
|
1973
|
+
* with +03:41:12) from pushing dates backward across midnight.
|
|
1974
|
+
*/
|
|
1975
|
+
function createNoonOverrides(timeZone, options = {}) {
|
|
1976
|
+
const { weekStartsOn, locale } = options;
|
|
1977
|
+
const fallbackWeekStartsOn = weekStartsOn ?? locale?.options?.weekStartsOn ?? 0;
|
|
1978
|
+
const toNoonTZDate = (date) => {
|
|
1979
|
+
const normalizedDate = typeof date === "number" || typeof date === "string" ? new Date(date) : date;
|
|
1980
|
+
return new TZDate(normalizedDate.getFullYear(), normalizedDate.getMonth(), normalizedDate.getDate(), 12, 0, 0, timeZone);
|
|
1981
|
+
};
|
|
1982
|
+
const toCalendarDate = (date) => {
|
|
1983
|
+
const zoned = toNoonTZDate(date);
|
|
1984
|
+
return new Date(zoned.getFullYear(), zoned.getMonth(), zoned.getDate(), 0, 0, 0, 0);
|
|
1985
|
+
};
|
|
1986
|
+
return {
|
|
1987
|
+
today: () => {
|
|
1988
|
+
return toNoonTZDate(TZDate.tz(timeZone));
|
|
1989
|
+
},
|
|
1990
|
+
newDate: (year, monthIndex, date) => {
|
|
1991
|
+
return new TZDate(year, monthIndex, date, 12, 0, 0, timeZone);
|
|
1992
|
+
},
|
|
1993
|
+
startOfDay: (date) => {
|
|
1994
|
+
return toNoonTZDate(date);
|
|
1995
|
+
},
|
|
1996
|
+
startOfWeek: (date, options) => {
|
|
1997
|
+
const base = toNoonTZDate(date);
|
|
1998
|
+
const weekStartsOnValue = options?.weekStartsOn ?? fallbackWeekStartsOn;
|
|
1999
|
+
const diff = (base.getDay() - weekStartsOnValue + 7) % 7;
|
|
2000
|
+
base.setDate(base.getDate() - diff);
|
|
2001
|
+
return base;
|
|
2002
|
+
},
|
|
2003
|
+
startOfISOWeek: (date) => {
|
|
2004
|
+
const base = toNoonTZDate(date);
|
|
2005
|
+
const diff = (base.getDay() - 1 + 7) % 7;
|
|
2006
|
+
base.setDate(base.getDate() - diff);
|
|
2007
|
+
return base;
|
|
2008
|
+
},
|
|
2009
|
+
startOfMonth: (date) => {
|
|
2010
|
+
const base = toNoonTZDate(date);
|
|
2011
|
+
base.setDate(1);
|
|
2012
|
+
return base;
|
|
2013
|
+
},
|
|
2014
|
+
startOfYear: (date) => {
|
|
2015
|
+
const base = toNoonTZDate(date);
|
|
2016
|
+
base.setMonth(0, 1);
|
|
2017
|
+
return base;
|
|
2018
|
+
},
|
|
2019
|
+
endOfWeek: (date, options) => {
|
|
2020
|
+
const base = toNoonTZDate(date);
|
|
2021
|
+
const diff = (((options?.weekStartsOn ?? fallbackWeekStartsOn) + 6) % 7 - base.getDay() + 7) % 7;
|
|
2022
|
+
base.setDate(base.getDate() + diff);
|
|
2023
|
+
return base;
|
|
2024
|
+
},
|
|
2025
|
+
endOfISOWeek: (date) => {
|
|
2026
|
+
const base = toNoonTZDate(date);
|
|
2027
|
+
const diff = (7 - base.getDay()) % 7;
|
|
2028
|
+
base.setDate(base.getDate() + diff);
|
|
2029
|
+
return base;
|
|
2030
|
+
},
|
|
2031
|
+
endOfMonth: (date) => {
|
|
2032
|
+
const base = toNoonTZDate(date);
|
|
2033
|
+
base.setMonth(base.getMonth() + 1, 0);
|
|
2034
|
+
return base;
|
|
2035
|
+
},
|
|
2036
|
+
endOfYear: (date) => {
|
|
2037
|
+
const base = toNoonTZDate(date);
|
|
2038
|
+
base.setMonth(11, 31);
|
|
2039
|
+
return base;
|
|
2040
|
+
},
|
|
2041
|
+
eachMonthOfInterval: (interval) => {
|
|
2042
|
+
const start = toNoonTZDate(interval.start);
|
|
2043
|
+
const end = toNoonTZDate(interval.end);
|
|
2044
|
+
const result = [];
|
|
2045
|
+
const cursor = new TZDate(start.getFullYear(), start.getMonth(), 1, 12, 0, 0, timeZone);
|
|
2046
|
+
const endKey = end.getFullYear() * 12 + end.getMonth();
|
|
2047
|
+
while (cursor.getFullYear() * 12 + cursor.getMonth() <= endKey) {
|
|
2048
|
+
result.push(new TZDate(cursor, timeZone));
|
|
2049
|
+
cursor.setMonth(cursor.getMonth() + 1, 1);
|
|
2050
|
+
}
|
|
2051
|
+
return result;
|
|
2052
|
+
},
|
|
2053
|
+
addDays: (date, amount) => {
|
|
2054
|
+
const base = toNoonTZDate(date);
|
|
2055
|
+
base.setDate(base.getDate() + amount);
|
|
2056
|
+
return base;
|
|
2057
|
+
},
|
|
2058
|
+
addWeeks: (date, amount) => {
|
|
2059
|
+
const base = toNoonTZDate(date);
|
|
2060
|
+
base.setDate(base.getDate() + amount * 7);
|
|
2061
|
+
return base;
|
|
2062
|
+
},
|
|
2063
|
+
addMonths: (date, amount) => {
|
|
2064
|
+
const base = toNoonTZDate(date);
|
|
2065
|
+
base.setMonth(base.getMonth() + amount);
|
|
2066
|
+
return base;
|
|
2067
|
+
},
|
|
2068
|
+
addYears: (date, amount) => {
|
|
2069
|
+
const base = toNoonTZDate(date);
|
|
2070
|
+
base.setFullYear(base.getFullYear() + amount);
|
|
2071
|
+
return base;
|
|
2072
|
+
},
|
|
2073
|
+
eachYearOfInterval: (interval) => {
|
|
2074
|
+
const start = toNoonTZDate(interval.start);
|
|
2075
|
+
const end = toNoonTZDate(interval.end);
|
|
2076
|
+
const years = [];
|
|
2077
|
+
const cursor = new TZDate(start.getFullYear(), 0, 1, 12, 0, 0, timeZone);
|
|
2078
|
+
while (cursor.getFullYear() <= end.getFullYear()) {
|
|
2079
|
+
years.push(new TZDate(cursor, timeZone));
|
|
2080
|
+
cursor.setFullYear(cursor.getFullYear() + 1, 0, 1);
|
|
2081
|
+
}
|
|
2082
|
+
return years;
|
|
2083
|
+
},
|
|
2084
|
+
getWeek: (date, options) => {
|
|
2085
|
+
return getWeek(toCalendarDate(date), {
|
|
2086
|
+
weekStartsOn: options?.weekStartsOn ?? fallbackWeekStartsOn,
|
|
2087
|
+
firstWeekContainsDate: options?.firstWeekContainsDate ?? locale?.options?.firstWeekContainsDate ?? 1
|
|
2088
|
+
});
|
|
2089
|
+
},
|
|
2090
|
+
getISOWeek: (date) => {
|
|
2091
|
+
return getISOWeek(toCalendarDate(date));
|
|
2092
|
+
},
|
|
2093
|
+
differenceInCalendarDays: (dateLeft, dateRight) => {
|
|
2094
|
+
return differenceInCalendarDays(toCalendarDate(dateLeft), toCalendarDate(dateRight));
|
|
2095
|
+
},
|
|
2096
|
+
differenceInCalendarMonths: (dateLeft, dateRight) => {
|
|
2097
|
+
return differenceInCalendarMonths(toCalendarDate(dateLeft), toCalendarDate(dateRight));
|
|
2098
|
+
}
|
|
2099
|
+
};
|
|
2100
|
+
}
|
|
2101
|
+
//#endregion
|
|
2102
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/useAnimation.js
|
|
2103
|
+
var asHtmlElement = (element) => {
|
|
2104
|
+
if (element instanceof HTMLElement) return element;
|
|
2105
|
+
return null;
|
|
2106
|
+
};
|
|
2107
|
+
var queryMonthEls = (element) => [...element.querySelectorAll("[data-animated-month]") ?? []];
|
|
2108
|
+
var queryMonthEl = (element) => asHtmlElement(element.querySelector("[data-animated-month]"));
|
|
2109
|
+
var queryCaptionEl = (element) => asHtmlElement(element.querySelector("[data-animated-caption]"));
|
|
2110
|
+
var queryWeeksEl = (element) => asHtmlElement(element.querySelector("[data-animated-weeks]"));
|
|
2111
|
+
var queryNavEl = (element) => asHtmlElement(element.querySelector("[data-animated-nav]"));
|
|
2112
|
+
var queryWeekdaysEl = (element) => asHtmlElement(element.querySelector("[data-animated-weekdays]"));
|
|
2113
|
+
/**
|
|
2114
|
+
* Handles animations for transitioning between months in the DayPicker
|
|
2115
|
+
* component.
|
|
2116
|
+
*
|
|
2117
|
+
* @private
|
|
2118
|
+
* @param rootElRef - A reference to the root element of the DayPicker
|
|
2119
|
+
* component.
|
|
2120
|
+
* @param enabled - Whether animations are enabled.
|
|
2121
|
+
* @param options - Configuration options for the animation, including class
|
|
2122
|
+
* names, months, focused day, and the date utility library.
|
|
2123
|
+
*/
|
|
2124
|
+
function useAnimation(rootElRef, enabled, { classNames, months, focused, dateLib }) {
|
|
2125
|
+
const previousRootElSnapshotRef = (0, import_react.useRef)(null);
|
|
2126
|
+
const previousMonthsRef = (0, import_react.useRef)(months);
|
|
2127
|
+
const animatingRef = (0, import_react.useRef)(false);
|
|
2128
|
+
(0, import_react.useLayoutEffect)(() => {
|
|
2129
|
+
const previousMonths = previousMonthsRef.current;
|
|
2130
|
+
previousMonthsRef.current = months;
|
|
2131
|
+
if (!enabled || !rootElRef.current || !(rootElRef.current instanceof HTMLElement) || months.length === 0 || previousMonths.length === 0 || months.length !== previousMonths.length) return;
|
|
2132
|
+
const isSameMonth = dateLib.isSameMonth(months[0].date, previousMonths[0].date);
|
|
2133
|
+
const isAfterPreviousMonth = dateLib.isAfter(months[0].date, previousMonths[0].date);
|
|
2134
|
+
const captionAnimationClass = isAfterPreviousMonth ? classNames[Animation.caption_after_enter] : classNames[Animation.caption_before_enter];
|
|
2135
|
+
const weeksAnimationClass = isAfterPreviousMonth ? classNames[Animation.weeks_after_enter] : classNames[Animation.weeks_before_enter];
|
|
2136
|
+
const previousRootElSnapshot = previousRootElSnapshotRef.current;
|
|
2137
|
+
const rootElSnapshot = rootElRef.current.cloneNode(true);
|
|
2138
|
+
if (rootElSnapshot instanceof HTMLElement) {
|
|
2139
|
+
queryMonthEls(rootElSnapshot).forEach((currentMonthElSnapshot) => {
|
|
2140
|
+
if (!(currentMonthElSnapshot instanceof HTMLElement)) return;
|
|
2141
|
+
const previousMonthElSnapshot = queryMonthEl(currentMonthElSnapshot);
|
|
2142
|
+
if (previousMonthElSnapshot && currentMonthElSnapshot.contains(previousMonthElSnapshot)) currentMonthElSnapshot.removeChild(previousMonthElSnapshot);
|
|
2143
|
+
const captionEl = queryCaptionEl(currentMonthElSnapshot);
|
|
2144
|
+
if (captionEl) captionEl.classList.remove(captionAnimationClass);
|
|
2145
|
+
const weeksEl = queryWeeksEl(currentMonthElSnapshot);
|
|
2146
|
+
if (weeksEl) weeksEl.classList.remove(weeksAnimationClass);
|
|
2147
|
+
});
|
|
2148
|
+
previousRootElSnapshotRef.current = rootElSnapshot;
|
|
2149
|
+
} else previousRootElSnapshotRef.current = null;
|
|
2150
|
+
if (animatingRef.current || isSameMonth || focused) return;
|
|
2151
|
+
const previousMonthEls = previousRootElSnapshot instanceof HTMLElement ? queryMonthEls(previousRootElSnapshot) : [];
|
|
2152
|
+
const currentMonthEls = queryMonthEls(rootElRef.current);
|
|
2153
|
+
if (currentMonthEls?.every((el) => el instanceof HTMLElement) && previousMonthEls && previousMonthEls.every((el) => el instanceof HTMLElement)) {
|
|
2154
|
+
animatingRef.current = true;
|
|
2155
|
+
const cleanUpFunctions = [];
|
|
2156
|
+
rootElRef.current.style.isolation = "isolate";
|
|
2157
|
+
const navEl = queryNavEl(rootElRef.current);
|
|
2158
|
+
if (navEl) navEl.style.zIndex = "1";
|
|
2159
|
+
currentMonthEls.forEach((currentMonthEl, index) => {
|
|
2160
|
+
const previousMonthEl = previousMonthEls[index];
|
|
2161
|
+
if (!previousMonthEl) return;
|
|
2162
|
+
currentMonthEl.style.position = "relative";
|
|
2163
|
+
currentMonthEl.style.overflow = "hidden";
|
|
2164
|
+
const captionEl = queryCaptionEl(currentMonthEl);
|
|
2165
|
+
if (captionEl) captionEl.classList.add(captionAnimationClass);
|
|
2166
|
+
const weeksEl = queryWeeksEl(currentMonthEl);
|
|
2167
|
+
if (weeksEl) weeksEl.classList.add(weeksAnimationClass);
|
|
2168
|
+
const cleanUp = () => {
|
|
2169
|
+
animatingRef.current = false;
|
|
2170
|
+
if (rootElRef.current) rootElRef.current.style.isolation = "";
|
|
2171
|
+
if (navEl) navEl.style.zIndex = "";
|
|
2172
|
+
if (captionEl) captionEl.classList.remove(captionAnimationClass);
|
|
2173
|
+
if (weeksEl) weeksEl.classList.remove(weeksAnimationClass);
|
|
2174
|
+
currentMonthEl.style.position = "";
|
|
2175
|
+
currentMonthEl.style.overflow = "";
|
|
2176
|
+
if (currentMonthEl.contains(previousMonthEl)) currentMonthEl.removeChild(previousMonthEl);
|
|
2177
|
+
};
|
|
2178
|
+
cleanUpFunctions.push(cleanUp);
|
|
2179
|
+
previousMonthEl.style.pointerEvents = "none";
|
|
2180
|
+
previousMonthEl.style.position = "absolute";
|
|
2181
|
+
previousMonthEl.style.overflow = "hidden";
|
|
2182
|
+
previousMonthEl.setAttribute("aria-hidden", "true");
|
|
2183
|
+
const previousWeekdaysEl = queryWeekdaysEl(previousMonthEl);
|
|
2184
|
+
if (previousWeekdaysEl) previousWeekdaysEl.style.opacity = "0";
|
|
2185
|
+
const previousCaptionEl = queryCaptionEl(previousMonthEl);
|
|
2186
|
+
if (previousCaptionEl) {
|
|
2187
|
+
previousCaptionEl.classList.add(isAfterPreviousMonth ? classNames[Animation.caption_before_exit] : classNames[Animation.caption_after_exit]);
|
|
2188
|
+
previousCaptionEl.addEventListener("animationend", cleanUp);
|
|
2189
|
+
}
|
|
2190
|
+
const previousWeeksEl = queryWeeksEl(previousMonthEl);
|
|
2191
|
+
if (previousWeeksEl) previousWeeksEl.classList.add(isAfterPreviousMonth ? classNames[Animation.weeks_before_exit] : classNames[Animation.weeks_after_exit]);
|
|
2192
|
+
currentMonthEl.insertBefore(previousMonthEl, currentMonthEl.firstChild);
|
|
2193
|
+
});
|
|
2194
|
+
}
|
|
2195
|
+
});
|
|
2196
|
+
}
|
|
2197
|
+
//#endregion
|
|
2198
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getDates.js
|
|
2199
|
+
/**
|
|
2200
|
+
* Returns all the dates to display in the calendar.
|
|
2201
|
+
*
|
|
2202
|
+
* This function calculates the range of dates to display based on the provided
|
|
2203
|
+
* display months, constraints, and calendar configuration.
|
|
2204
|
+
*
|
|
2205
|
+
* @param displayMonths The months to display in the calendar.
|
|
2206
|
+
* @param maxDate The maximum date to include in the range.
|
|
2207
|
+
* @param props The DayPicker props, including calendar configuration options.
|
|
2208
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2209
|
+
* @returns An array of dates to display in the calendar.
|
|
2210
|
+
*/
|
|
2211
|
+
function getDates(displayMonths, maxDate, props, dateLib) {
|
|
2212
|
+
const firstMonth = displayMonths[0];
|
|
2213
|
+
const lastMonth = displayMonths[displayMonths.length - 1];
|
|
2214
|
+
const { ISOWeek, fixedWeeks, broadcastCalendar } = props ?? {};
|
|
2215
|
+
const { addDays, differenceInCalendarDays, differenceInCalendarMonths, endOfBroadcastWeek, endOfISOWeek, endOfMonth, endOfWeek, isAfter, startOfBroadcastWeek, startOfISOWeek, startOfWeek } = dateLib;
|
|
2216
|
+
const startWeekFirstDate = broadcastCalendar ? startOfBroadcastWeek(firstMonth, dateLib) : ISOWeek ? startOfISOWeek(firstMonth) : startOfWeek(firstMonth);
|
|
2217
|
+
const displayMonthsWeekEnd = broadcastCalendar ? endOfBroadcastWeek(lastMonth) : ISOWeek ? endOfISOWeek(endOfMonth(lastMonth)) : endOfWeek(endOfMonth(lastMonth));
|
|
2218
|
+
const constraintWeekEnd = maxDate && (broadcastCalendar ? endOfBroadcastWeek(maxDate) : ISOWeek ? endOfISOWeek(maxDate) : endOfWeek(maxDate));
|
|
2219
|
+
const nOfDays = differenceInCalendarDays(constraintWeekEnd && isAfter(displayMonthsWeekEnd, constraintWeekEnd) ? constraintWeekEnd : displayMonthsWeekEnd, startWeekFirstDate);
|
|
2220
|
+
const nOfMonths = differenceInCalendarMonths(lastMonth, firstMonth) + 1;
|
|
2221
|
+
const dates = [];
|
|
2222
|
+
for (let i = 0; i <= nOfDays; i++) {
|
|
2223
|
+
const date = addDays(startWeekFirstDate, i);
|
|
2224
|
+
dates.push(date);
|
|
2225
|
+
}
|
|
2226
|
+
const extraDates = (broadcastCalendar ? 35 : 42) * nOfMonths;
|
|
2227
|
+
if (fixedWeeks && dates.length < extraDates) {
|
|
2228
|
+
const daysToAdd = extraDates - dates.length;
|
|
2229
|
+
for (let i = 0; i < daysToAdd; i++) {
|
|
2230
|
+
const date = addDays(dates[dates.length - 1], 1);
|
|
2231
|
+
dates.push(date);
|
|
2232
|
+
}
|
|
2233
|
+
}
|
|
2234
|
+
return dates;
|
|
2235
|
+
}
|
|
2236
|
+
//#endregion
|
|
2237
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getDays.js
|
|
2238
|
+
/**
|
|
2239
|
+
* Returns all the days belonging to the calendar by merging the days in the
|
|
2240
|
+
* weeks for each month.
|
|
2241
|
+
*
|
|
2242
|
+
* @param calendarMonths The array of calendar months.
|
|
2243
|
+
* @returns An array of `CalendarDay` objects representing all the days in the
|
|
2244
|
+
* calendar.
|
|
2245
|
+
*/
|
|
2246
|
+
function getDays(calendarMonths) {
|
|
2247
|
+
const initialDays = [];
|
|
2248
|
+
return calendarMonths.reduce((days, month) => {
|
|
2249
|
+
const weekDays = month.weeks.reduce((weekDays, week) => {
|
|
2250
|
+
return weekDays.concat(week.days.slice());
|
|
2251
|
+
}, initialDays.slice());
|
|
2252
|
+
return days.concat(weekDays.slice());
|
|
2253
|
+
}, initialDays.slice());
|
|
2254
|
+
}
|
|
2255
|
+
//#endregion
|
|
2256
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js
|
|
2257
|
+
/**
|
|
2258
|
+
* Returns the months to display in the calendar.
|
|
2259
|
+
*
|
|
2260
|
+
* @param firstDisplayedMonth The first month currently displayed in the
|
|
2261
|
+
* calendar.
|
|
2262
|
+
* @param calendarEndMonth The latest month the user can navigate to.
|
|
2263
|
+
* @param props The DayPicker props, including `numberOfMonths`.
|
|
2264
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2265
|
+
* @returns An array of dates representing the months to display.
|
|
2266
|
+
*/
|
|
2267
|
+
function getDisplayMonths(firstDisplayedMonth, calendarEndMonth, props, dateLib) {
|
|
2268
|
+
const { numberOfMonths = 1 } = props;
|
|
2269
|
+
const months = [];
|
|
2270
|
+
for (let i = 0; i < numberOfMonths; i++) {
|
|
2271
|
+
const month = dateLib.addMonths(firstDisplayedMonth, i);
|
|
2272
|
+
if (calendarEndMonth && month > calendarEndMonth) break;
|
|
2273
|
+
months.push(month);
|
|
2274
|
+
}
|
|
2275
|
+
return months;
|
|
2276
|
+
}
|
|
2277
|
+
//#endregion
|
|
2278
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js
|
|
2279
|
+
/**
|
|
2280
|
+
* Determines the initial month to display in the calendar based on the provided
|
|
2281
|
+
* props.
|
|
2282
|
+
*
|
|
2283
|
+
* This function calculates the starting month, considering constraints such as
|
|
2284
|
+
* `startMonth`, `endMonth`, and the number of months to display.
|
|
2285
|
+
*
|
|
2286
|
+
* @param props The DayPicker props, including navigation and date constraints.
|
|
2287
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2288
|
+
* @returns The initial month to display.
|
|
2289
|
+
*/
|
|
2290
|
+
function getInitialMonth(props, navStart, navEnd, dateLib) {
|
|
2291
|
+
const { month, defaultMonth, today = dateLib.today(), numberOfMonths = 1 } = props;
|
|
2292
|
+
let initialMonth = month || defaultMonth || today;
|
|
2293
|
+
const { differenceInCalendarMonths, addMonths, startOfMonth } = dateLib;
|
|
2294
|
+
if (navEnd && differenceInCalendarMonths(navEnd, initialMonth) < numberOfMonths - 1) initialMonth = addMonths(navEnd, -1 * (numberOfMonths - 1));
|
|
2295
|
+
if (navStart && differenceInCalendarMonths(initialMonth, navStart) < 0) initialMonth = navStart;
|
|
2296
|
+
return startOfMonth(initialMonth);
|
|
2297
|
+
}
|
|
2298
|
+
//#endregion
|
|
2299
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getMonths.js
|
|
2300
|
+
/**
|
|
2301
|
+
* Returns the months to display in the calendar.
|
|
2302
|
+
*
|
|
2303
|
+
* This function generates `CalendarMonth` objects for each month to be
|
|
2304
|
+
* displayed, including their weeks and days, based on the provided display
|
|
2305
|
+
* months and dates.
|
|
2306
|
+
*
|
|
2307
|
+
* @param displayMonths The months (as dates) to display in the calendar.
|
|
2308
|
+
* @param dates The dates to display in the calendar.
|
|
2309
|
+
* @param props Options from the DayPicker props context.
|
|
2310
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2311
|
+
* @returns An array of `CalendarMonth` objects representing the months to
|
|
2312
|
+
* display.
|
|
2313
|
+
*/
|
|
2314
|
+
function getMonths(displayMonths, dates, props, dateLib) {
|
|
2315
|
+
const { addDays, endOfBroadcastWeek, endOfISOWeek, endOfMonth, endOfWeek, getISOWeek, getWeek, startOfBroadcastWeek, startOfISOWeek, startOfWeek } = dateLib;
|
|
2316
|
+
const dayPickerMonths = displayMonths.reduce((months, month) => {
|
|
2317
|
+
const firstDateOfFirstWeek = props.broadcastCalendar ? startOfBroadcastWeek(month, dateLib) : props.ISOWeek ? startOfISOWeek(month) : startOfWeek(month);
|
|
2318
|
+
const lastDateOfLastWeek = props.broadcastCalendar ? endOfBroadcastWeek(month) : props.ISOWeek ? endOfISOWeek(endOfMonth(month)) : endOfWeek(endOfMonth(month));
|
|
2319
|
+
/** The dates to display in the month. */
|
|
2320
|
+
const monthDates = dates.filter((date) => {
|
|
2321
|
+
return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
|
|
2322
|
+
});
|
|
2323
|
+
const nrOfDaysWithFixedWeeks = props.broadcastCalendar ? 35 : 42;
|
|
2324
|
+
if (props.fixedWeeks && monthDates.length < nrOfDaysWithFixedWeeks) {
|
|
2325
|
+
const extraDates = dates.filter((date) => {
|
|
2326
|
+
const daysToAdd = nrOfDaysWithFixedWeeks - monthDates.length;
|
|
2327
|
+
return date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, daysToAdd);
|
|
2328
|
+
});
|
|
2329
|
+
monthDates.push(...extraDates);
|
|
2330
|
+
}
|
|
2331
|
+
const dayPickerMonth = new CalendarMonth(month, monthDates.reduce((weeks, date) => {
|
|
2332
|
+
const weekNumber = props.ISOWeek ? getISOWeek(date) : getWeek(date);
|
|
2333
|
+
const week = weeks.find((week) => week.weekNumber === weekNumber);
|
|
2334
|
+
const day = new CalendarDay(date, month, dateLib);
|
|
2335
|
+
if (!week) weeks.push(new CalendarWeek(weekNumber, [day]));
|
|
2336
|
+
else week.days.push(day);
|
|
2337
|
+
return weeks;
|
|
2338
|
+
}, []));
|
|
2339
|
+
months.push(dayPickerMonth);
|
|
2340
|
+
return months;
|
|
2341
|
+
}, []);
|
|
2342
|
+
if (!props.reverseMonths) return dayPickerMonths;
|
|
2343
|
+
else return dayPickerMonths.reverse();
|
|
2344
|
+
}
|
|
2345
|
+
//#endregion
|
|
2346
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js
|
|
2347
|
+
/**
|
|
2348
|
+
* Returns the start and end months for calendar navigation.
|
|
2349
|
+
*
|
|
2350
|
+
* @param props The DayPicker props, including navigation and layout options.
|
|
2351
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2352
|
+
* @returns A tuple containing the start and end months for navigation.
|
|
2353
|
+
*/
|
|
2354
|
+
function getNavMonths(props, dateLib) {
|
|
2355
|
+
let { startMonth, endMonth } = props;
|
|
2356
|
+
const { startOfYear, startOfDay, startOfMonth, endOfMonth, addYears, endOfYear, newDate, today } = dateLib;
|
|
2357
|
+
const { fromYear, toYear, fromMonth, toMonth } = props;
|
|
2358
|
+
if (!startMonth && fromMonth) startMonth = fromMonth;
|
|
2359
|
+
if (!startMonth && fromYear) startMonth = dateLib.newDate(fromYear, 0, 1);
|
|
2360
|
+
if (!endMonth && toMonth) endMonth = toMonth;
|
|
2361
|
+
if (!endMonth && toYear) endMonth = newDate(toYear, 11, 31);
|
|
2362
|
+
const hasYearDropdown = props.captionLayout === "dropdown" || props.captionLayout === "dropdown-years";
|
|
2363
|
+
if (startMonth) startMonth = startOfMonth(startMonth);
|
|
2364
|
+
else if (fromYear) startMonth = newDate(fromYear, 0, 1);
|
|
2365
|
+
else if (!startMonth && hasYearDropdown) startMonth = startOfYear(addYears(props.today ?? today(), -100));
|
|
2366
|
+
if (endMonth) endMonth = endOfMonth(endMonth);
|
|
2367
|
+
else if (toYear) endMonth = newDate(toYear, 11, 31);
|
|
2368
|
+
else if (!endMonth && hasYearDropdown) endMonth = endOfYear(props.today ?? today());
|
|
2369
|
+
return [startMonth ? startOfDay(startMonth) : startMonth, endMonth ? startOfDay(endMonth) : endMonth];
|
|
2370
|
+
}
|
|
2371
|
+
//#endregion
|
|
2372
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js
|
|
2373
|
+
/**
|
|
2374
|
+
* Returns the next month the user can navigate to, based on the given options.
|
|
2375
|
+
*
|
|
2376
|
+
* The next month is not always the next calendar month:
|
|
2377
|
+
*
|
|
2378
|
+
* - If it is after the `calendarEndMonth`, it returns `undefined`.
|
|
2379
|
+
* - If paged navigation is enabled, it skips forward by the number of displayed
|
|
2380
|
+
* months.
|
|
2381
|
+
*
|
|
2382
|
+
* @param firstDisplayedMonth The first month currently displayed in the
|
|
2383
|
+
* calendar.
|
|
2384
|
+
* @param calendarEndMonth The latest month the user can navigate to.
|
|
2385
|
+
* @param options Navigation options, including `numberOfMonths` and
|
|
2386
|
+
* `pagedNavigation`.
|
|
2387
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2388
|
+
* @returns The next month, or `undefined` if navigation is not possible.
|
|
2389
|
+
*/
|
|
2390
|
+
function getNextMonth(firstDisplayedMonth, calendarEndMonth, options, dateLib) {
|
|
2391
|
+
if (options.disableNavigation) return;
|
|
2392
|
+
const { pagedNavigation, numberOfMonths = 1 } = options;
|
|
2393
|
+
const { startOfMonth, addMonths, differenceInCalendarMonths } = dateLib;
|
|
2394
|
+
const offset = pagedNavigation ? numberOfMonths : 1;
|
|
2395
|
+
const month = startOfMonth(firstDisplayedMonth);
|
|
2396
|
+
if (!calendarEndMonth) return addMonths(month, offset);
|
|
2397
|
+
if (differenceInCalendarMonths(calendarEndMonth, firstDisplayedMonth) < numberOfMonths) return;
|
|
2398
|
+
return addMonths(month, offset);
|
|
2399
|
+
}
|
|
2400
|
+
//#endregion
|
|
2401
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js
|
|
2402
|
+
/**
|
|
2403
|
+
* Returns the previous month the user can navigate to, based on the given
|
|
2404
|
+
* options.
|
|
2405
|
+
*
|
|
2406
|
+
* The previous month is not always the previous calendar month:
|
|
2407
|
+
*
|
|
2408
|
+
* - If it is before the `calendarStartMonth`, it returns `undefined`.
|
|
2409
|
+
* - If paged navigation is enabled, it skips back by the number of displayed
|
|
2410
|
+
* months.
|
|
2411
|
+
*
|
|
2412
|
+
* @param firstDisplayedMonth The first month currently displayed in the
|
|
2413
|
+
* calendar.
|
|
2414
|
+
* @param calendarStartMonth The earliest month the user can navigate to.
|
|
2415
|
+
* @param options Navigation options, including `numberOfMonths` and
|
|
2416
|
+
* `pagedNavigation`.
|
|
2417
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2418
|
+
* @returns The previous month, or `undefined` if navigation is not possible.
|
|
2419
|
+
*/
|
|
2420
|
+
function getPreviousMonth(firstDisplayedMonth, calendarStartMonth, options, dateLib) {
|
|
2421
|
+
if (options.disableNavigation) return;
|
|
2422
|
+
const { pagedNavigation, numberOfMonths } = options;
|
|
2423
|
+
const { startOfMonth, addMonths, differenceInCalendarMonths } = dateLib;
|
|
2424
|
+
const offset = pagedNavigation ? numberOfMonths ?? 1 : 1;
|
|
2425
|
+
const month = startOfMonth(firstDisplayedMonth);
|
|
2426
|
+
if (!calendarStartMonth) return addMonths(month, -offset);
|
|
2427
|
+
if (differenceInCalendarMonths(month, calendarStartMonth) <= 0) return;
|
|
2428
|
+
return addMonths(month, -offset);
|
|
2429
|
+
}
|
|
2430
|
+
//#endregion
|
|
2431
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js
|
|
2432
|
+
/**
|
|
2433
|
+
* Returns an array of calendar weeks from an array of calendar months.
|
|
2434
|
+
*
|
|
2435
|
+
* @param months The array of calendar months.
|
|
2436
|
+
* @returns An array of calendar weeks.
|
|
2437
|
+
*/
|
|
2438
|
+
function getWeeks(months) {
|
|
2439
|
+
return months.reduce((weeks, month) => {
|
|
2440
|
+
return weeks.concat(month.weeks.slice());
|
|
2441
|
+
}, [].slice());
|
|
2442
|
+
}
|
|
2443
|
+
//#endregion
|
|
2444
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js
|
|
2445
|
+
/**
|
|
2446
|
+
* A custom hook for managing both controlled and uncontrolled component states.
|
|
2447
|
+
*
|
|
2448
|
+
* This hook allows a component to support both controlled and uncontrolled
|
|
2449
|
+
* states by determining whether the `controlledValue` is provided. If it is
|
|
2450
|
+
* undefined, the hook falls back to using the internal state.
|
|
2451
|
+
*
|
|
2452
|
+
* @example
|
|
2453
|
+
* // Uncontrolled usage
|
|
2454
|
+
* const [value, setValue] = useControlledValue(0, undefined);
|
|
2455
|
+
*
|
|
2456
|
+
* // Controlled usage
|
|
2457
|
+
* const [value, setValue] = useControlledValue(0, props.value);
|
|
2458
|
+
*
|
|
2459
|
+
* @template T - The type of the value.
|
|
2460
|
+
* @param defaultValue The initial value for the uncontrolled state.
|
|
2461
|
+
* @param controlledValue The value for the controlled state. If undefined, the
|
|
2462
|
+
* component will use the uncontrolled state.
|
|
2463
|
+
* @returns A tuple where the first element is the current value (either
|
|
2464
|
+
* controlled or uncontrolled) and the second element is a setter function to
|
|
2465
|
+
* update the value.
|
|
2466
|
+
*/
|
|
2467
|
+
function useControlledValue(defaultValue, controlledValue) {
|
|
2468
|
+
const [uncontrolledValue, setValue] = (0, import_react.useState)(defaultValue);
|
|
2469
|
+
return [controlledValue === void 0 ? uncontrolledValue : controlledValue, setValue];
|
|
2470
|
+
}
|
|
2471
|
+
//#endregion
|
|
2472
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/useCalendar.js
|
|
2473
|
+
/**
|
|
2474
|
+
* Provides the calendar object to work with the calendar in custom components.
|
|
2475
|
+
*
|
|
2476
|
+
* @private
|
|
2477
|
+
* @param props - The DayPicker props related to calendar configuration.
|
|
2478
|
+
* @param dateLib - The date utility library instance.
|
|
2479
|
+
* @returns The calendar object containing displayed days, weeks, months, and
|
|
2480
|
+
* navigation methods.
|
|
2481
|
+
*/
|
|
2482
|
+
function useCalendar(props, dateLib) {
|
|
2483
|
+
const [navStart, navEnd] = getNavMonths(props, dateLib);
|
|
2484
|
+
const { startOfMonth, endOfMonth } = dateLib;
|
|
2485
|
+
const initialMonth = getInitialMonth(props, navStart, navEnd, dateLib);
|
|
2486
|
+
const [firstMonth, setFirstMonth] = useControlledValue(initialMonth, props.month ? initialMonth : void 0);
|
|
2487
|
+
(0, import_react.useEffect)(() => {
|
|
2488
|
+
setFirstMonth(getInitialMonth(props, navStart, navEnd, dateLib));
|
|
2489
|
+
}, [props.timeZone]);
|
|
2490
|
+
/** The months displayed in the calendar. */
|
|
2491
|
+
const { months, weeks, days, previousMonth, nextMonth } = (0, import_react.useMemo)(() => {
|
|
2492
|
+
const displayMonths = getDisplayMonths(firstMonth, navEnd, { numberOfMonths: props.numberOfMonths }, dateLib);
|
|
2493
|
+
const months = getMonths(displayMonths, getDates(displayMonths, props.endMonth ? endOfMonth(props.endMonth) : void 0, {
|
|
2494
|
+
ISOWeek: props.ISOWeek,
|
|
2495
|
+
fixedWeeks: props.fixedWeeks,
|
|
2496
|
+
broadcastCalendar: props.broadcastCalendar
|
|
2497
|
+
}, dateLib), {
|
|
2498
|
+
broadcastCalendar: props.broadcastCalendar,
|
|
2499
|
+
fixedWeeks: props.fixedWeeks,
|
|
2500
|
+
ISOWeek: props.ISOWeek,
|
|
2501
|
+
reverseMonths: props.reverseMonths
|
|
2502
|
+
}, dateLib);
|
|
2503
|
+
return {
|
|
2504
|
+
months,
|
|
2505
|
+
weeks: getWeeks(months),
|
|
2506
|
+
days: getDays(months),
|
|
2507
|
+
previousMonth: getPreviousMonth(firstMonth, navStart, props, dateLib),
|
|
2508
|
+
nextMonth: getNextMonth(firstMonth, navEnd, props, dateLib)
|
|
2509
|
+
};
|
|
2510
|
+
}, [
|
|
2511
|
+
dateLib,
|
|
2512
|
+
firstMonth.getTime(),
|
|
2513
|
+
navEnd?.getTime(),
|
|
2514
|
+
navStart?.getTime(),
|
|
2515
|
+
props.disableNavigation,
|
|
2516
|
+
props.broadcastCalendar,
|
|
2517
|
+
props.endMonth?.getTime(),
|
|
2518
|
+
props.fixedWeeks,
|
|
2519
|
+
props.ISOWeek,
|
|
2520
|
+
props.numberOfMonths,
|
|
2521
|
+
props.pagedNavigation,
|
|
2522
|
+
props.reverseMonths
|
|
2523
|
+
]);
|
|
2524
|
+
const { disableNavigation, onMonthChange } = props;
|
|
2525
|
+
const isDayInCalendar = (day) => weeks.some((week) => week.days.some((d) => d.isEqualTo(day)));
|
|
2526
|
+
const goToMonth = (date) => {
|
|
2527
|
+
if (disableNavigation) return;
|
|
2528
|
+
let newMonth = startOfMonth(date);
|
|
2529
|
+
if (navStart && newMonth < startOfMonth(navStart)) newMonth = startOfMonth(navStart);
|
|
2530
|
+
if (navEnd && newMonth > startOfMonth(navEnd)) newMonth = startOfMonth(navEnd);
|
|
2531
|
+
setFirstMonth(newMonth);
|
|
2532
|
+
onMonthChange?.(newMonth);
|
|
2533
|
+
};
|
|
2534
|
+
const goToDay = (day) => {
|
|
2535
|
+
if (isDayInCalendar(day)) return;
|
|
2536
|
+
goToMonth(day.date);
|
|
2537
|
+
};
|
|
2538
|
+
return {
|
|
2539
|
+
months,
|
|
2540
|
+
weeks,
|
|
2541
|
+
days,
|
|
2542
|
+
navStart,
|
|
2543
|
+
navEnd,
|
|
2544
|
+
previousMonth,
|
|
2545
|
+
nextMonth,
|
|
2546
|
+
goToMonth,
|
|
2547
|
+
goToDay
|
|
2548
|
+
};
|
|
2549
|
+
}
|
|
2550
|
+
//#endregion
|
|
2551
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js
|
|
2552
|
+
var FocusTargetPriority;
|
|
2553
|
+
(function(FocusTargetPriority) {
|
|
2554
|
+
FocusTargetPriority[FocusTargetPriority["Today"] = 0] = "Today";
|
|
2555
|
+
FocusTargetPriority[FocusTargetPriority["Selected"] = 1] = "Selected";
|
|
2556
|
+
FocusTargetPriority[FocusTargetPriority["LastFocused"] = 2] = "LastFocused";
|
|
2557
|
+
FocusTargetPriority[FocusTargetPriority["FocusedModifier"] = 3] = "FocusedModifier";
|
|
2558
|
+
})(FocusTargetPriority || (FocusTargetPriority = {}));
|
|
2559
|
+
/**
|
|
2560
|
+
* Determines if a day is focusable based on its modifiers.
|
|
2561
|
+
*
|
|
2562
|
+
* A day is considered focusable if it is not disabled, hidden, or outside the
|
|
2563
|
+
* displayed month.
|
|
2564
|
+
*
|
|
2565
|
+
* @param modifiers The modifiers applied to the day.
|
|
2566
|
+
* @returns `true` if the day is focusable, otherwise `false`.
|
|
2567
|
+
*/
|
|
2568
|
+
function isFocusableDay(modifiers) {
|
|
2569
|
+
return !modifiers[DayFlag.disabled] && !modifiers[DayFlag.hidden] && !modifiers[DayFlag.outside];
|
|
2570
|
+
}
|
|
2571
|
+
/**
|
|
2572
|
+
* Calculates the focus target day based on priority.
|
|
2573
|
+
*
|
|
2574
|
+
* This function determines the day that should receive focus in the calendar,
|
|
2575
|
+
* prioritizing days with specific modifiers (e.g., "focused", "today") or
|
|
2576
|
+
* selection states.
|
|
2577
|
+
*
|
|
2578
|
+
* @param days The array of `CalendarDay` objects to evaluate.
|
|
2579
|
+
* @param getModifiers A function to retrieve the modifiers for a given day.
|
|
2580
|
+
* @param isSelected A function to determine if a day is selected.
|
|
2581
|
+
* @param lastFocused The last focused day, if any.
|
|
2582
|
+
* @returns The `CalendarDay` that should receive focus, or `undefined` if no
|
|
2583
|
+
* focusable day is found.
|
|
2584
|
+
*/
|
|
2585
|
+
function calculateFocusTarget(days, getModifiers, isSelected, lastFocused) {
|
|
2586
|
+
let focusTarget;
|
|
2587
|
+
let foundFocusTargetPriority = -1;
|
|
2588
|
+
for (const day of days) {
|
|
2589
|
+
const modifiers = getModifiers(day);
|
|
2590
|
+
if (isFocusableDay(modifiers)) {
|
|
2591
|
+
if (modifiers[DayFlag.focused] && foundFocusTargetPriority < FocusTargetPriority.FocusedModifier) {
|
|
2592
|
+
focusTarget = day;
|
|
2593
|
+
foundFocusTargetPriority = FocusTargetPriority.FocusedModifier;
|
|
2594
|
+
} else if (lastFocused?.isEqualTo(day) && foundFocusTargetPriority < FocusTargetPriority.LastFocused) {
|
|
2595
|
+
focusTarget = day;
|
|
2596
|
+
foundFocusTargetPriority = FocusTargetPriority.LastFocused;
|
|
2597
|
+
} else if (isSelected(day.date) && foundFocusTargetPriority < FocusTargetPriority.Selected) {
|
|
2598
|
+
focusTarget = day;
|
|
2599
|
+
foundFocusTargetPriority = FocusTargetPriority.Selected;
|
|
2600
|
+
} else if (modifiers[DayFlag.today] && foundFocusTargetPriority < FocusTargetPriority.Today) {
|
|
2601
|
+
focusTarget = day;
|
|
2602
|
+
foundFocusTargetPriority = FocusTargetPriority.Today;
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2605
|
+
}
|
|
2606
|
+
if (!focusTarget) focusTarget = days.find((day) => isFocusableDay(getModifiers(day)));
|
|
2607
|
+
return focusTarget;
|
|
2608
|
+
}
|
|
2609
|
+
//#endregion
|
|
2610
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js
|
|
2611
|
+
/**
|
|
2612
|
+
* Calculates the next date that should be focused in the calendar.
|
|
2613
|
+
*
|
|
2614
|
+
* This function determines the next focusable date based on the movement
|
|
2615
|
+
* direction, constraints, and calendar configuration.
|
|
2616
|
+
*
|
|
2617
|
+
* @param moveBy The unit of movement (e.g., "day", "week").
|
|
2618
|
+
* @param moveDir The direction of movement ("before" or "after").
|
|
2619
|
+
* @param refDate The reference date from which to calculate the next focusable
|
|
2620
|
+
* date.
|
|
2621
|
+
* @param navStart The earliest date the user can navigate to.
|
|
2622
|
+
* @param navEnd The latest date the user can navigate to.
|
|
2623
|
+
* @param props The DayPicker props, including calendar configuration options.
|
|
2624
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2625
|
+
* @returns The next focusable date.
|
|
2626
|
+
*/
|
|
2627
|
+
function getFocusableDate(moveBy, moveDir, refDate, navStart, navEnd, props, dateLib) {
|
|
2628
|
+
const { ISOWeek, broadcastCalendar } = props;
|
|
2629
|
+
const { addDays, addMonths, addWeeks, addYears, endOfBroadcastWeek, endOfISOWeek, endOfWeek, max, min, startOfBroadcastWeek, startOfISOWeek, startOfWeek } = dateLib;
|
|
2630
|
+
let focusableDate = {
|
|
2631
|
+
day: addDays,
|
|
2632
|
+
week: addWeeks,
|
|
2633
|
+
month: addMonths,
|
|
2634
|
+
year: addYears,
|
|
2635
|
+
startOfWeek: (date) => broadcastCalendar ? startOfBroadcastWeek(date, dateLib) : ISOWeek ? startOfISOWeek(date) : startOfWeek(date),
|
|
2636
|
+
endOfWeek: (date) => broadcastCalendar ? endOfBroadcastWeek(date) : ISOWeek ? endOfISOWeek(date) : endOfWeek(date)
|
|
2637
|
+
}[moveBy](refDate, moveDir === "after" ? 1 : -1);
|
|
2638
|
+
if (moveDir === "before" && navStart) focusableDate = max([navStart, focusableDate]);
|
|
2639
|
+
else if (moveDir === "after" && navEnd) focusableDate = min([navEnd, focusableDate]);
|
|
2640
|
+
return focusableDate;
|
|
2641
|
+
}
|
|
2642
|
+
//#endregion
|
|
2643
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js
|
|
2644
|
+
/**
|
|
2645
|
+
* Determines the next focusable day in the calendar.
|
|
2646
|
+
*
|
|
2647
|
+
* This function recursively calculates the next focusable day based on the
|
|
2648
|
+
* movement direction and modifiers applied to the days.
|
|
2649
|
+
*
|
|
2650
|
+
* @param moveBy The unit of movement (e.g., "day", "week").
|
|
2651
|
+
* @param moveDir The direction of movement ("before" or "after").
|
|
2652
|
+
* @param refDay The currently focused day.
|
|
2653
|
+
* @param calendarStartMonth The earliest month the user can navigate to.
|
|
2654
|
+
* @param calendarEndMonth The latest month the user can navigate to.
|
|
2655
|
+
* @param props The DayPicker props, including modifiers and configuration
|
|
2656
|
+
* options.
|
|
2657
|
+
* @param dateLib The date library to use for date manipulation.
|
|
2658
|
+
* @param attempt The current recursion attempt (used to limit recursion depth).
|
|
2659
|
+
* @returns The next focusable day, or `undefined` if no focusable day is found.
|
|
2660
|
+
*/
|
|
2661
|
+
function getNextFocus(moveBy, moveDir, refDay, calendarStartMonth, calendarEndMonth, props, dateLib, attempt = 0) {
|
|
2662
|
+
if (attempt > 365) return;
|
|
2663
|
+
const focusableDate = getFocusableDate(moveBy, moveDir, refDay.date, calendarStartMonth, calendarEndMonth, props, dateLib);
|
|
2664
|
+
const isDisabled = Boolean(props.disabled && dateMatchModifiers(focusableDate, props.disabled, dateLib));
|
|
2665
|
+
const isHidden = Boolean(props.hidden && dateMatchModifiers(focusableDate, props.hidden, dateLib));
|
|
2666
|
+
const focusDay = new CalendarDay(focusableDate, focusableDate, dateLib);
|
|
2667
|
+
if (!isDisabled && !isHidden) return focusDay;
|
|
2668
|
+
return getNextFocus(moveBy, moveDir, focusDay, calendarStartMonth, calendarEndMonth, props, dateLib, attempt + 1);
|
|
2669
|
+
}
|
|
2670
|
+
//#endregion
|
|
2671
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/useFocus.js
|
|
2672
|
+
/**
|
|
2673
|
+
* Manages focus behavior for the DayPicker component, including setting,
|
|
2674
|
+
* moving, and blurring focus on calendar days.
|
|
2675
|
+
*
|
|
2676
|
+
* @template T - The type of DayPicker props.
|
|
2677
|
+
* @param props - The DayPicker props.
|
|
2678
|
+
* @param calendar - The calendar object containing the displayed days and
|
|
2679
|
+
* months.
|
|
2680
|
+
* @param getModifiers - A function to retrieve modifiers for a given day.
|
|
2681
|
+
* @param isSelected - A function to check if a date is selected.
|
|
2682
|
+
* @param dateLib - The date utility library instance.
|
|
2683
|
+
* @returns An object containing focus-related methods and the currently focused
|
|
2684
|
+
* day.
|
|
2685
|
+
*/
|
|
2686
|
+
function useFocus(props, calendar, getModifiers, isSelected, dateLib) {
|
|
2687
|
+
const { autoFocus } = props;
|
|
2688
|
+
const [lastFocused, setLastFocused] = (0, import_react.useState)();
|
|
2689
|
+
const focusTarget = calculateFocusTarget(calendar.days, getModifiers, isSelected || (() => false), lastFocused);
|
|
2690
|
+
const [focusedDay, setFocused] = (0, import_react.useState)(autoFocus ? focusTarget : void 0);
|
|
2691
|
+
const blur = () => {
|
|
2692
|
+
setLastFocused(focusedDay);
|
|
2693
|
+
setFocused(void 0);
|
|
2694
|
+
};
|
|
2695
|
+
const moveFocus = (moveBy, moveDir) => {
|
|
2696
|
+
if (!focusedDay) return;
|
|
2697
|
+
const nextFocus = getNextFocus(moveBy, moveDir, focusedDay, calendar.navStart, calendar.navEnd, props, dateLib);
|
|
2698
|
+
if (!nextFocus) return;
|
|
2699
|
+
if (props.disableNavigation) {
|
|
2700
|
+
if (!calendar.days.some((day) => day.isEqualTo(nextFocus))) return;
|
|
2701
|
+
}
|
|
2702
|
+
calendar.goToDay(nextFocus);
|
|
2703
|
+
setFocused(nextFocus);
|
|
2704
|
+
};
|
|
2705
|
+
const isFocusTarget = (day) => {
|
|
2706
|
+
return Boolean(focusTarget?.isEqualTo(day));
|
|
2707
|
+
};
|
|
2708
|
+
return {
|
|
2709
|
+
isFocusTarget,
|
|
2710
|
+
setFocused,
|
|
2711
|
+
focused: focusedDay,
|
|
2712
|
+
blur,
|
|
2713
|
+
moveFocus
|
|
2714
|
+
};
|
|
2715
|
+
}
|
|
2716
|
+
//#endregion
|
|
2717
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/selection/useMulti.js
|
|
2718
|
+
/**
|
|
2719
|
+
* Hook to manage multiple-date selection in the DayPicker component.
|
|
2720
|
+
*
|
|
2721
|
+
* @template T - The type of DayPicker props.
|
|
2722
|
+
* @param props - The DayPicker props.
|
|
2723
|
+
* @param dateLib - The date utility library instance.
|
|
2724
|
+
* @returns An object containing the selected dates, a function to select dates,
|
|
2725
|
+
* and a function to check if a date is selected.
|
|
2726
|
+
*/
|
|
2727
|
+
function useMulti(props, dateLib) {
|
|
2728
|
+
const { selected: initiallySelected, required, onSelect } = props;
|
|
2729
|
+
const [internallySelected, setSelected] = useControlledValue(initiallySelected, onSelect ? initiallySelected : void 0);
|
|
2730
|
+
const selected = !onSelect ? internallySelected : initiallySelected;
|
|
2731
|
+
const { isSameDay } = dateLib;
|
|
2732
|
+
const isSelected = (date) => {
|
|
2733
|
+
return selected?.some((d) => isSameDay(d, date)) ?? false;
|
|
2734
|
+
};
|
|
2735
|
+
const { min, max } = props;
|
|
2736
|
+
const select = (triggerDate, modifiers, e) => {
|
|
2737
|
+
let newDates = [...selected ?? []];
|
|
2738
|
+
if (isSelected(triggerDate)) {
|
|
2739
|
+
if (selected?.length === min) return;
|
|
2740
|
+
if (required && selected?.length === 1) return;
|
|
2741
|
+
newDates = selected?.filter((d) => !isSameDay(d, triggerDate));
|
|
2742
|
+
} else if (selected?.length === max) newDates = [triggerDate];
|
|
2743
|
+
else newDates = [...newDates, triggerDate];
|
|
2744
|
+
if (!onSelect) setSelected(newDates);
|
|
2745
|
+
onSelect?.(newDates, triggerDate, modifiers, e);
|
|
2746
|
+
return newDates;
|
|
2747
|
+
};
|
|
2748
|
+
return {
|
|
2749
|
+
selected,
|
|
2750
|
+
select,
|
|
2751
|
+
isSelected
|
|
2752
|
+
};
|
|
2753
|
+
}
|
|
2754
|
+
//#endregion
|
|
2755
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/addToRange.js
|
|
2756
|
+
/**
|
|
2757
|
+
* Adds a date to an existing range, considering constraints like minimum and
|
|
2758
|
+
* maximum range size.
|
|
2759
|
+
*
|
|
2760
|
+
* @param date - The date to add to the range.
|
|
2761
|
+
* @param initialRange - The initial range to which the date will be added.
|
|
2762
|
+
* @param min - The minimum number of days in the range.
|
|
2763
|
+
* @param max - The maximum number of days in the range.
|
|
2764
|
+
* @param required - Whether the range must always include at least one date.
|
|
2765
|
+
* @param dateLib - The date utility library instance.
|
|
2766
|
+
* @returns The updated date range, or `undefined` if the range is cleared.
|
|
2767
|
+
* @group Utilities
|
|
2768
|
+
*/
|
|
2769
|
+
function addToRange(date, initialRange, min = 0, max = 0, required = false, dateLib = defaultDateLib) {
|
|
2770
|
+
const { from, to } = initialRange || {};
|
|
2771
|
+
const { isSameDay, isAfter, isBefore } = dateLib;
|
|
2772
|
+
let range;
|
|
2773
|
+
if (!from && !to) range = {
|
|
2774
|
+
from: date,
|
|
2775
|
+
to: min > 0 ? void 0 : date
|
|
2776
|
+
};
|
|
2777
|
+
else if (from && !to) if (isSameDay(from, date)) if (min === 0) range = {
|
|
2778
|
+
from,
|
|
2779
|
+
to: date
|
|
2780
|
+
};
|
|
2781
|
+
else if (required) range = {
|
|
2782
|
+
from,
|
|
2783
|
+
to: void 0
|
|
2784
|
+
};
|
|
2785
|
+
else range = void 0;
|
|
2786
|
+
else if (isBefore(date, from)) range = {
|
|
2787
|
+
from: date,
|
|
2788
|
+
to: from
|
|
2789
|
+
};
|
|
2790
|
+
else range = {
|
|
2791
|
+
from,
|
|
2792
|
+
to: date
|
|
2793
|
+
};
|
|
2794
|
+
else if (from && to) if (isSameDay(from, date) && isSameDay(to, date)) if (required) range = {
|
|
2795
|
+
from,
|
|
2796
|
+
to
|
|
2797
|
+
};
|
|
2798
|
+
else range = void 0;
|
|
2799
|
+
else if (isSameDay(from, date)) range = {
|
|
2800
|
+
from,
|
|
2801
|
+
to: min > 0 ? void 0 : date
|
|
2802
|
+
};
|
|
2803
|
+
else if (isSameDay(to, date)) range = {
|
|
2804
|
+
from: date,
|
|
2805
|
+
to: min > 0 ? void 0 : date
|
|
2806
|
+
};
|
|
2807
|
+
else if (isBefore(date, from)) range = {
|
|
2808
|
+
from: date,
|
|
2809
|
+
to
|
|
2810
|
+
};
|
|
2811
|
+
else if (isAfter(date, from)) range = {
|
|
2812
|
+
from,
|
|
2813
|
+
to: date
|
|
2814
|
+
};
|
|
2815
|
+
else if (isAfter(date, to)) range = {
|
|
2816
|
+
from,
|
|
2817
|
+
to: date
|
|
2818
|
+
};
|
|
2819
|
+
else throw new Error("Invalid range");
|
|
2820
|
+
if (range?.from && range?.to) {
|
|
2821
|
+
const diff = dateLib.differenceInCalendarDays(range.to, range.from);
|
|
2822
|
+
if (max > 0 && diff > max) range = {
|
|
2823
|
+
from: date,
|
|
2824
|
+
to: void 0
|
|
2825
|
+
};
|
|
2826
|
+
else if (min > 1 && diff < min) range = {
|
|
2827
|
+
from: date,
|
|
2828
|
+
to: void 0
|
|
2829
|
+
};
|
|
2830
|
+
}
|
|
2831
|
+
return range;
|
|
2832
|
+
}
|
|
2833
|
+
//#endregion
|
|
2834
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js
|
|
2835
|
+
/**
|
|
2836
|
+
* Checks if a date range contains one or more specified days of the week.
|
|
2837
|
+
*
|
|
2838
|
+
* @since 9.2.2
|
|
2839
|
+
* @param range - The date range to check.
|
|
2840
|
+
* @param dayOfWeek - The day(s) of the week to check for (`0-6`, where `0` is
|
|
2841
|
+
* Sunday).
|
|
2842
|
+
* @param dateLib - The date utility library instance.
|
|
2843
|
+
* @returns `true` if the range contains the specified day(s) of the week,
|
|
2844
|
+
* otherwise `false`.
|
|
2845
|
+
* @group Utilities
|
|
2846
|
+
*/
|
|
2847
|
+
function rangeContainsDayOfWeek(range, dayOfWeek, dateLib = defaultDateLib) {
|
|
2848
|
+
const dayOfWeekArr = !Array.isArray(dayOfWeek) ? [dayOfWeek] : dayOfWeek;
|
|
2849
|
+
let date = range.from;
|
|
2850
|
+
const totalDays = dateLib.differenceInCalendarDays(range.to, range.from);
|
|
2851
|
+
const totalDaysLimit = Math.min(totalDays, 6);
|
|
2852
|
+
for (let i = 0; i <= totalDaysLimit; i++) {
|
|
2853
|
+
if (dayOfWeekArr.includes(date.getDay())) return true;
|
|
2854
|
+
date = dateLib.addDays(date, 1);
|
|
2855
|
+
}
|
|
2856
|
+
return false;
|
|
2857
|
+
}
|
|
2858
|
+
//#endregion
|
|
2859
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/rangeOverlaps.js
|
|
2860
|
+
/**
|
|
2861
|
+
* Determines if two date ranges overlap.
|
|
2862
|
+
*
|
|
2863
|
+
* @since 9.2.2
|
|
2864
|
+
* @param rangeLeft - The first date range.
|
|
2865
|
+
* @param rangeRight - The second date range.
|
|
2866
|
+
* @param dateLib - The date utility library instance.
|
|
2867
|
+
* @returns `true` if the ranges overlap, otherwise `false`.
|
|
2868
|
+
* @group Utilities
|
|
2869
|
+
*/
|
|
2870
|
+
function rangeOverlaps(rangeLeft, rangeRight, dateLib = defaultDateLib) {
|
|
2871
|
+
return rangeIncludesDate(rangeLeft, rangeRight.from, false, dateLib) || rangeIncludesDate(rangeLeft, rangeRight.to, false, dateLib) || rangeIncludesDate(rangeRight, rangeLeft.from, false, dateLib) || rangeIncludesDate(rangeRight, rangeLeft.to, false, dateLib);
|
|
2872
|
+
}
|
|
2873
|
+
//#endregion
|
|
2874
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js
|
|
2875
|
+
/**
|
|
2876
|
+
* Checks if a date range contains dates that match the given modifiers.
|
|
2877
|
+
*
|
|
2878
|
+
* @since 9.2.2
|
|
2879
|
+
* @param range - The date range to check.
|
|
2880
|
+
* @param modifiers - The modifiers to match against.
|
|
2881
|
+
* @param dateLib - The date utility library instance.
|
|
2882
|
+
* @returns `true` if the range contains matching dates, otherwise `false`.
|
|
2883
|
+
* @group Utilities
|
|
2884
|
+
*/
|
|
2885
|
+
function rangeContainsModifiers(range, modifiers, dateLib = defaultDateLib) {
|
|
2886
|
+
const matchers = Array.isArray(modifiers) ? modifiers : [modifiers];
|
|
2887
|
+
if (matchers.filter((matcher) => typeof matcher !== "function").some((matcher) => {
|
|
2888
|
+
if (typeof matcher === "boolean") return matcher;
|
|
2889
|
+
if (dateLib.isDate(matcher)) return rangeIncludesDate(range, matcher, false, dateLib);
|
|
2890
|
+
if (isDatesArray(matcher, dateLib)) return matcher.some((date) => rangeIncludesDate(range, date, false, dateLib));
|
|
2891
|
+
if (isDateRange(matcher)) {
|
|
2892
|
+
if (matcher.from && matcher.to) return rangeOverlaps(range, {
|
|
2893
|
+
from: matcher.from,
|
|
2894
|
+
to: matcher.to
|
|
2895
|
+
}, dateLib);
|
|
2896
|
+
return false;
|
|
2897
|
+
}
|
|
2898
|
+
if (isDayOfWeekType(matcher)) return rangeContainsDayOfWeek(range, matcher.dayOfWeek, dateLib);
|
|
2899
|
+
if (isDateInterval(matcher)) {
|
|
2900
|
+
if (dateLib.isAfter(matcher.before, matcher.after)) return rangeOverlaps(range, {
|
|
2901
|
+
from: dateLib.addDays(matcher.after, 1),
|
|
2902
|
+
to: dateLib.addDays(matcher.before, -1)
|
|
2903
|
+
}, dateLib);
|
|
2904
|
+
return dateMatchModifiers(range.from, matcher, dateLib) || dateMatchModifiers(range.to, matcher, dateLib);
|
|
2905
|
+
}
|
|
2906
|
+
if (isDateAfterType(matcher) || isDateBeforeType(matcher)) return dateMatchModifiers(range.from, matcher, dateLib) || dateMatchModifiers(range.to, matcher, dateLib);
|
|
2907
|
+
return false;
|
|
2908
|
+
})) return true;
|
|
2909
|
+
const functionMatchers = matchers.filter((matcher) => typeof matcher === "function");
|
|
2910
|
+
if (functionMatchers.length) {
|
|
2911
|
+
let date = range.from;
|
|
2912
|
+
const totalDays = dateLib.differenceInCalendarDays(range.to, range.from);
|
|
2913
|
+
for (let i = 0; i <= totalDays; i++) {
|
|
2914
|
+
if (functionMatchers.some((matcher) => matcher(date))) return true;
|
|
2915
|
+
date = dateLib.addDays(date, 1);
|
|
2916
|
+
}
|
|
2917
|
+
}
|
|
2918
|
+
return false;
|
|
2919
|
+
}
|
|
2920
|
+
//#endregion
|
|
2921
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/selection/useRange.js
|
|
2922
|
+
/**
|
|
2923
|
+
* Hook to manage range selection in the DayPicker component.
|
|
2924
|
+
*
|
|
2925
|
+
* @template T - The type of DayPicker props.
|
|
2926
|
+
* @param props - The DayPicker props.
|
|
2927
|
+
* @param dateLib - The date utility library instance.
|
|
2928
|
+
* @returns An object containing the selected range, a function to select a
|
|
2929
|
+
* range, and a function to check if a date is within the range.
|
|
2930
|
+
*/
|
|
2931
|
+
function useRange(props, dateLib) {
|
|
2932
|
+
const { disabled, excludeDisabled, resetOnSelect, selected: initiallySelected, required, onSelect } = props;
|
|
2933
|
+
const [internallySelected, setSelected] = useControlledValue(initiallySelected, onSelect ? initiallySelected : void 0);
|
|
2934
|
+
const selected = !onSelect ? internallySelected : initiallySelected;
|
|
2935
|
+
const isSelected = (date) => selected && rangeIncludesDate(selected, date, false, dateLib);
|
|
2936
|
+
const select = (triggerDate, modifiers, e) => {
|
|
2937
|
+
const { min, max } = props;
|
|
2938
|
+
let newRange;
|
|
2939
|
+
if (triggerDate) {
|
|
2940
|
+
const selectedFrom = selected?.from;
|
|
2941
|
+
const selectedTo = selected?.to;
|
|
2942
|
+
const hasFullRange = !!selectedFrom && !!selectedTo;
|
|
2943
|
+
const isClickingSingleDayRange = !!selectedFrom && !!selectedTo && dateLib.isSameDay(selectedFrom, selectedTo) && dateLib.isSameDay(triggerDate, selectedFrom);
|
|
2944
|
+
if (resetOnSelect && (hasFullRange || !selected?.from)) if (!required && isClickingSingleDayRange) newRange = void 0;
|
|
2945
|
+
else newRange = {
|
|
2946
|
+
from: triggerDate,
|
|
2947
|
+
to: void 0
|
|
2948
|
+
};
|
|
2949
|
+
else newRange = addToRange(triggerDate, selected, min, max, required, dateLib);
|
|
2950
|
+
}
|
|
2951
|
+
if (excludeDisabled && disabled && newRange?.from && newRange.to) {
|
|
2952
|
+
if (rangeContainsModifiers({
|
|
2953
|
+
from: newRange.from,
|
|
2954
|
+
to: newRange.to
|
|
2955
|
+
}, disabled, dateLib)) {
|
|
2956
|
+
newRange.from = triggerDate;
|
|
2957
|
+
newRange.to = void 0;
|
|
2958
|
+
}
|
|
2959
|
+
}
|
|
2960
|
+
if (!onSelect) setSelected(newRange);
|
|
2961
|
+
onSelect?.(newRange, triggerDate, modifiers, e);
|
|
2962
|
+
return newRange;
|
|
2963
|
+
};
|
|
2964
|
+
return {
|
|
2965
|
+
selected,
|
|
2966
|
+
select,
|
|
2967
|
+
isSelected
|
|
2968
|
+
};
|
|
2969
|
+
}
|
|
2970
|
+
//#endregion
|
|
2971
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/selection/useSingle.js
|
|
2972
|
+
/**
|
|
2973
|
+
* Hook to manage single-date selection in the DayPicker component.
|
|
2974
|
+
*
|
|
2975
|
+
* @template T - The type of DayPicker props.
|
|
2976
|
+
* @param props - The DayPicker props.
|
|
2977
|
+
* @param dateLib - The date utility library instance.
|
|
2978
|
+
* @returns An object containing the selected date, a function to select a date,
|
|
2979
|
+
* and a function to check if a date is selected.
|
|
2980
|
+
*/
|
|
2981
|
+
function useSingle(props, dateLib) {
|
|
2982
|
+
const { selected: initiallySelected, required, onSelect } = props;
|
|
2983
|
+
const [internallySelected, setSelected] = useControlledValue(initiallySelected, onSelect ? initiallySelected : void 0);
|
|
2984
|
+
const selected = !onSelect ? internallySelected : initiallySelected;
|
|
2985
|
+
const { isSameDay } = dateLib;
|
|
2986
|
+
const isSelected = (compareDate) => {
|
|
2987
|
+
return selected ? isSameDay(selected, compareDate) : false;
|
|
2988
|
+
};
|
|
2989
|
+
const select = (triggerDate, modifiers, e) => {
|
|
2990
|
+
let newDate = triggerDate;
|
|
2991
|
+
if (!required && selected && selected && isSameDay(triggerDate, selected)) newDate = void 0;
|
|
2992
|
+
if (!onSelect) setSelected(newDate);
|
|
2993
|
+
if (required) onSelect?.(newDate, triggerDate, modifiers, e);
|
|
2994
|
+
else onSelect?.(newDate, triggerDate, modifiers, e);
|
|
2995
|
+
return newDate;
|
|
2996
|
+
};
|
|
2997
|
+
return {
|
|
2998
|
+
selected,
|
|
2999
|
+
select,
|
|
3000
|
+
isSelected
|
|
3001
|
+
};
|
|
3002
|
+
}
|
|
3003
|
+
//#endregion
|
|
3004
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/useSelection.js
|
|
3005
|
+
/**
|
|
3006
|
+
* Determines the appropriate selection hook to use based on the selection mode
|
|
3007
|
+
* and returns the corresponding selection object.
|
|
3008
|
+
*
|
|
3009
|
+
* @template T - The type of DayPicker props.
|
|
3010
|
+
* @param props - The DayPicker props.
|
|
3011
|
+
* @param dateLib - The date utility library instance.
|
|
3012
|
+
* @returns The selection object for the specified mode, or `undefined` if no
|
|
3013
|
+
* mode is set.
|
|
3014
|
+
*/
|
|
3015
|
+
function useSelection(props, dateLib) {
|
|
3016
|
+
const single = useSingle(props, dateLib);
|
|
3017
|
+
const multi = useMulti(props, dateLib);
|
|
3018
|
+
const range = useRange(props, dateLib);
|
|
3019
|
+
switch (props.mode) {
|
|
3020
|
+
case "single": return single;
|
|
3021
|
+
case "multiple": return multi;
|
|
3022
|
+
case "range": return range;
|
|
3023
|
+
default: return;
|
|
3024
|
+
}
|
|
3025
|
+
}
|
|
3026
|
+
//#endregion
|
|
3027
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/toTimeZone.js
|
|
3028
|
+
/**
|
|
3029
|
+
* Convert a {@link Date} or {@link TZDate} instance to the given time zone.
|
|
3030
|
+
* Reuses the same instance when it is already a {@link TZDate} using the target
|
|
3031
|
+
* time zone to avoid extra allocations.
|
|
3032
|
+
*/
|
|
3033
|
+
function toTimeZone(date, timeZone) {
|
|
3034
|
+
if (date instanceof TZDate && date.timeZone === timeZone) return date;
|
|
3035
|
+
return new TZDate(date, timeZone);
|
|
3036
|
+
}
|
|
3037
|
+
//#endregion
|
|
3038
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/utils/convertMatchersToTimeZone.js
|
|
3039
|
+
function toZoneNoon(date, timeZone, noonSafe) {
|
|
3040
|
+
if (!noonSafe) return toTimeZone(date, timeZone);
|
|
3041
|
+
const zoned = toTimeZone(date, timeZone);
|
|
3042
|
+
const noonZoned = new TZDate(zoned.getFullYear(), zoned.getMonth(), zoned.getDate(), 12, 0, 0, timeZone);
|
|
3043
|
+
return new Date(noonZoned.getTime());
|
|
3044
|
+
}
|
|
3045
|
+
function convertMatcher(matcher, timeZone, noonSafe) {
|
|
3046
|
+
if (typeof matcher === "boolean" || typeof matcher === "function") return matcher;
|
|
3047
|
+
if (matcher instanceof Date) return toZoneNoon(matcher, timeZone, noonSafe);
|
|
3048
|
+
if (Array.isArray(matcher)) return matcher.map((value) => value instanceof Date ? toZoneNoon(value, timeZone, noonSafe) : value);
|
|
3049
|
+
if (isDateRange(matcher)) return {
|
|
3050
|
+
...matcher,
|
|
3051
|
+
from: matcher.from ? toTimeZone(matcher.from, timeZone) : matcher.from,
|
|
3052
|
+
to: matcher.to ? toTimeZone(matcher.to, timeZone) : matcher.to
|
|
3053
|
+
};
|
|
3054
|
+
if (isDateInterval(matcher)) return {
|
|
3055
|
+
before: toZoneNoon(matcher.before, timeZone, noonSafe),
|
|
3056
|
+
after: toZoneNoon(matcher.after, timeZone, noonSafe)
|
|
3057
|
+
};
|
|
3058
|
+
if (isDateAfterType(matcher)) return { after: toZoneNoon(matcher.after, timeZone, noonSafe) };
|
|
3059
|
+
if (isDateBeforeType(matcher)) return { before: toZoneNoon(matcher.before, timeZone, noonSafe) };
|
|
3060
|
+
return matcher;
|
|
3061
|
+
}
|
|
3062
|
+
/**
|
|
3063
|
+
* Convert any {@link Matcher} or array of matchers to the specified time zone.
|
|
3064
|
+
*
|
|
3065
|
+
* @param matchers - The matcher or matchers to convert.
|
|
3066
|
+
* @param timeZone - The target IANA time zone.
|
|
3067
|
+
* @returns The converted matcher(s).
|
|
3068
|
+
* @group Utilities
|
|
3069
|
+
*/
|
|
3070
|
+
function convertMatchersToTimeZone(matchers, timeZone, noonSafe) {
|
|
3071
|
+
if (!matchers) return matchers;
|
|
3072
|
+
if (Array.isArray(matchers)) return matchers.map((matcher) => convertMatcher(matcher, timeZone, noonSafe));
|
|
3073
|
+
return convertMatcher(matchers, timeZone, noonSafe);
|
|
3074
|
+
}
|
|
3075
|
+
//#endregion
|
|
3076
|
+
//#region ../../node_modules/.pnpm/react-day-picker@9.14.0_react@19.2.4/node_modules/react-day-picker/dist/esm/DayPicker.js
|
|
3077
|
+
/**
|
|
3078
|
+
* Renders the DayPicker calendar component.
|
|
3079
|
+
*
|
|
3080
|
+
* @param initialProps - The props for the DayPicker component.
|
|
3081
|
+
* @returns The rendered DayPicker component.
|
|
3082
|
+
* @group DayPicker
|
|
3083
|
+
* @see https://daypicker.dev
|
|
3084
|
+
*/
|
|
3085
|
+
function DayPicker(initialProps) {
|
|
3086
|
+
let props = initialProps;
|
|
3087
|
+
const timeZone = props.timeZone;
|
|
3088
|
+
if (timeZone) {
|
|
3089
|
+
props = {
|
|
3090
|
+
...initialProps,
|
|
3091
|
+
timeZone
|
|
3092
|
+
};
|
|
3093
|
+
if (props.today) props.today = toTimeZone(props.today, timeZone);
|
|
3094
|
+
if (props.month) props.month = toTimeZone(props.month, timeZone);
|
|
3095
|
+
if (props.defaultMonth) props.defaultMonth = toTimeZone(props.defaultMonth, timeZone);
|
|
3096
|
+
if (props.startMonth) props.startMonth = toTimeZone(props.startMonth, timeZone);
|
|
3097
|
+
if (props.endMonth) props.endMonth = toTimeZone(props.endMonth, timeZone);
|
|
3098
|
+
if (props.mode === "single" && props.selected) props.selected = toTimeZone(props.selected, timeZone);
|
|
3099
|
+
else if (props.mode === "multiple" && props.selected) props.selected = props.selected?.map((date) => toTimeZone(date, timeZone));
|
|
3100
|
+
else if (props.mode === "range" && props.selected) props.selected = {
|
|
3101
|
+
from: props.selected.from ? toTimeZone(props.selected.from, timeZone) : props.selected.from,
|
|
3102
|
+
to: props.selected.to ? toTimeZone(props.selected.to, timeZone) : props.selected.to
|
|
3103
|
+
};
|
|
3104
|
+
if (props.disabled !== void 0) props.disabled = convertMatchersToTimeZone(props.disabled, timeZone);
|
|
3105
|
+
if (props.hidden !== void 0) props.hidden = convertMatchersToTimeZone(props.hidden, timeZone);
|
|
3106
|
+
if (props.modifiers) {
|
|
3107
|
+
const nextModifiers = {};
|
|
3108
|
+
Object.keys(props.modifiers).forEach((key) => {
|
|
3109
|
+
nextModifiers[key] = convertMatchersToTimeZone(props.modifiers?.[key], timeZone);
|
|
3110
|
+
});
|
|
3111
|
+
props.modifiers = nextModifiers;
|
|
3112
|
+
}
|
|
3113
|
+
}
|
|
3114
|
+
const { components, formatters, labels, dateLib, locale, classNames } = (0, import_react.useMemo)(() => {
|
|
3115
|
+
const locale = {
|
|
3116
|
+
...enUS,
|
|
3117
|
+
...props.locale
|
|
3118
|
+
};
|
|
3119
|
+
const weekStartsOn = props.broadcastCalendar ? 1 : props.weekStartsOn;
|
|
3120
|
+
const noonOverrides = props.noonSafe && props.timeZone ? createNoonOverrides(props.timeZone, {
|
|
3121
|
+
weekStartsOn,
|
|
3122
|
+
locale
|
|
3123
|
+
}) : void 0;
|
|
3124
|
+
const overrides = props.dateLib && noonOverrides ? {
|
|
3125
|
+
...noonOverrides,
|
|
3126
|
+
...props.dateLib
|
|
3127
|
+
} : props.dateLib ?? noonOverrides;
|
|
3128
|
+
const dateLib = new DateLib({
|
|
3129
|
+
locale,
|
|
3130
|
+
weekStartsOn,
|
|
3131
|
+
firstWeekContainsDate: props.firstWeekContainsDate,
|
|
3132
|
+
useAdditionalWeekYearTokens: props.useAdditionalWeekYearTokens,
|
|
3133
|
+
useAdditionalDayOfYearTokens: props.useAdditionalDayOfYearTokens,
|
|
3134
|
+
timeZone: props.timeZone,
|
|
3135
|
+
numerals: props.numerals
|
|
3136
|
+
}, overrides);
|
|
3137
|
+
return {
|
|
3138
|
+
dateLib,
|
|
3139
|
+
components: getComponents(props.components),
|
|
3140
|
+
formatters: getFormatters(props.formatters),
|
|
3141
|
+
labels: getLabels(props.labels, dateLib.options),
|
|
3142
|
+
locale,
|
|
3143
|
+
classNames: {
|
|
3144
|
+
...getDefaultClassNames(),
|
|
3145
|
+
...props.classNames
|
|
3146
|
+
}
|
|
3147
|
+
};
|
|
3148
|
+
}, [
|
|
3149
|
+
props.locale,
|
|
3150
|
+
props.broadcastCalendar,
|
|
3151
|
+
props.weekStartsOn,
|
|
3152
|
+
props.firstWeekContainsDate,
|
|
3153
|
+
props.useAdditionalWeekYearTokens,
|
|
3154
|
+
props.useAdditionalDayOfYearTokens,
|
|
3155
|
+
props.timeZone,
|
|
3156
|
+
props.numerals,
|
|
3157
|
+
props.dateLib,
|
|
3158
|
+
props.noonSafe,
|
|
3159
|
+
props.components,
|
|
3160
|
+
props.formatters,
|
|
3161
|
+
props.labels,
|
|
3162
|
+
props.classNames
|
|
3163
|
+
]);
|
|
3164
|
+
if (!props.today) props = {
|
|
3165
|
+
...props,
|
|
3166
|
+
today: dateLib.today()
|
|
3167
|
+
};
|
|
3168
|
+
const { captionLayout, mode, navLayout, numberOfMonths = 1, onDayBlur, onDayClick, onDayFocus, onDayKeyDown, onDayMouseEnter, onDayMouseLeave, onNextClick, onPrevClick, showWeekNumber, styles } = props;
|
|
3169
|
+
const { formatCaption, formatDay, formatMonthDropdown, formatWeekNumber, formatWeekNumberHeader, formatWeekdayName, formatYearDropdown } = formatters;
|
|
3170
|
+
const calendar = useCalendar(props, dateLib);
|
|
3171
|
+
const { days, months, navStart, navEnd, previousMonth, nextMonth, goToMonth } = calendar;
|
|
3172
|
+
const getModifiers = createGetModifiers(days, props, navStart, navEnd, dateLib);
|
|
3173
|
+
const { isSelected, select, selected: selectedValue } = useSelection(props, dateLib) ?? {};
|
|
3174
|
+
const { blur, focused, isFocusTarget, moveFocus, setFocused } = useFocus(props, calendar, getModifiers, isSelected ?? (() => false), dateLib);
|
|
3175
|
+
const { labelDayButton, labelGridcell, labelGrid, labelMonthDropdown, labelNav, labelPrevious, labelNext, labelWeekday, labelWeekNumber, labelWeekNumberHeader, labelYearDropdown } = labels;
|
|
3176
|
+
const weekdays = (0, import_react.useMemo)(() => getWeekdays(dateLib, props.ISOWeek, props.broadcastCalendar, props.today), [
|
|
3177
|
+
dateLib,
|
|
3178
|
+
props.ISOWeek,
|
|
3179
|
+
props.broadcastCalendar,
|
|
3180
|
+
props.today
|
|
3181
|
+
]);
|
|
3182
|
+
const isInteractive = mode !== void 0 || onDayClick !== void 0;
|
|
3183
|
+
const handlePreviousClick = (0, import_react.useCallback)(() => {
|
|
3184
|
+
if (!previousMonth) return;
|
|
3185
|
+
goToMonth(previousMonth);
|
|
3186
|
+
onPrevClick?.(previousMonth);
|
|
3187
|
+
}, [
|
|
3188
|
+
previousMonth,
|
|
3189
|
+
goToMonth,
|
|
3190
|
+
onPrevClick
|
|
3191
|
+
]);
|
|
3192
|
+
const handleNextClick = (0, import_react.useCallback)(() => {
|
|
3193
|
+
if (!nextMonth) return;
|
|
3194
|
+
goToMonth(nextMonth);
|
|
3195
|
+
onNextClick?.(nextMonth);
|
|
3196
|
+
}, [
|
|
3197
|
+
goToMonth,
|
|
3198
|
+
nextMonth,
|
|
3199
|
+
onNextClick
|
|
3200
|
+
]);
|
|
3201
|
+
const handleDayClick = (0, import_react.useCallback)((day, m) => (e) => {
|
|
3202
|
+
e.preventDefault();
|
|
3203
|
+
e.stopPropagation();
|
|
3204
|
+
setFocused(day);
|
|
3205
|
+
if (m.disabled) return;
|
|
3206
|
+
select?.(day.date, m, e);
|
|
3207
|
+
onDayClick?.(day.date, m, e);
|
|
3208
|
+
}, [
|
|
3209
|
+
select,
|
|
3210
|
+
onDayClick,
|
|
3211
|
+
setFocused
|
|
3212
|
+
]);
|
|
3213
|
+
const handleDayFocus = (0, import_react.useCallback)((day, m) => (e) => {
|
|
3214
|
+
setFocused(day);
|
|
3215
|
+
onDayFocus?.(day.date, m, e);
|
|
3216
|
+
}, [onDayFocus, setFocused]);
|
|
3217
|
+
const handleDayBlur = (0, import_react.useCallback)((day, m) => (e) => {
|
|
3218
|
+
blur();
|
|
3219
|
+
onDayBlur?.(day.date, m, e);
|
|
3220
|
+
}, [blur, onDayBlur]);
|
|
3221
|
+
const handleDayKeyDown = (0, import_react.useCallback)((day, modifiers) => (e) => {
|
|
3222
|
+
const keyMap = {
|
|
3223
|
+
ArrowLeft: [e.shiftKey ? "month" : "day", props.dir === "rtl" ? "after" : "before"],
|
|
3224
|
+
ArrowRight: [e.shiftKey ? "month" : "day", props.dir === "rtl" ? "before" : "after"],
|
|
3225
|
+
ArrowDown: [e.shiftKey ? "year" : "week", "after"],
|
|
3226
|
+
ArrowUp: [e.shiftKey ? "year" : "week", "before"],
|
|
3227
|
+
PageUp: [e.shiftKey ? "year" : "month", "before"],
|
|
3228
|
+
PageDown: [e.shiftKey ? "year" : "month", "after"],
|
|
3229
|
+
Home: ["startOfWeek", "before"],
|
|
3230
|
+
End: ["endOfWeek", "after"]
|
|
3231
|
+
};
|
|
3232
|
+
if (keyMap[e.key]) {
|
|
3233
|
+
e.preventDefault();
|
|
3234
|
+
e.stopPropagation();
|
|
3235
|
+
const [moveBy, moveDir] = keyMap[e.key];
|
|
3236
|
+
moveFocus(moveBy, moveDir);
|
|
3237
|
+
}
|
|
3238
|
+
onDayKeyDown?.(day.date, modifiers, e);
|
|
3239
|
+
}, [
|
|
3240
|
+
moveFocus,
|
|
3241
|
+
onDayKeyDown,
|
|
3242
|
+
props.dir
|
|
3243
|
+
]);
|
|
3244
|
+
const handleDayMouseEnter = (0, import_react.useCallback)((day, modifiers) => (e) => {
|
|
3245
|
+
onDayMouseEnter?.(day.date, modifiers, e);
|
|
3246
|
+
}, [onDayMouseEnter]);
|
|
3247
|
+
const handleDayMouseLeave = (0, import_react.useCallback)((day, modifiers) => (e) => {
|
|
3248
|
+
onDayMouseLeave?.(day.date, modifiers, e);
|
|
3249
|
+
}, [onDayMouseLeave]);
|
|
3250
|
+
const handleMonthChange = (0, import_react.useCallback)((date) => (e) => {
|
|
3251
|
+
const selectedMonth = Number(e.target.value);
|
|
3252
|
+
goToMonth(dateLib.setMonth(dateLib.startOfMonth(date), selectedMonth));
|
|
3253
|
+
}, [dateLib, goToMonth]);
|
|
3254
|
+
const handleYearChange = (0, import_react.useCallback)((date) => (e) => {
|
|
3255
|
+
const selectedYear = Number(e.target.value);
|
|
3256
|
+
goToMonth(dateLib.setYear(dateLib.startOfMonth(date), selectedYear));
|
|
3257
|
+
}, [dateLib, goToMonth]);
|
|
3258
|
+
const { className, style } = (0, import_react.useMemo)(() => ({
|
|
3259
|
+
className: [classNames[UI.Root], props.className].filter(Boolean).join(" "),
|
|
3260
|
+
style: {
|
|
3261
|
+
...styles?.[UI.Root],
|
|
3262
|
+
...props.style
|
|
3263
|
+
}
|
|
3264
|
+
}), [
|
|
3265
|
+
classNames,
|
|
3266
|
+
props.className,
|
|
3267
|
+
props.style,
|
|
3268
|
+
styles
|
|
3269
|
+
]);
|
|
3270
|
+
const dataAttributes = getDataAttributes(props);
|
|
3271
|
+
const rootElRef = (0, import_react.useRef)(null);
|
|
3272
|
+
useAnimation(rootElRef, Boolean(props.animate), {
|
|
3273
|
+
classNames,
|
|
3274
|
+
months,
|
|
3275
|
+
focused,
|
|
3276
|
+
dateLib
|
|
3277
|
+
});
|
|
3278
|
+
const contextValue = {
|
|
3279
|
+
dayPickerProps: props,
|
|
3280
|
+
selected: selectedValue,
|
|
3281
|
+
select,
|
|
3282
|
+
isSelected,
|
|
3283
|
+
months,
|
|
3284
|
+
nextMonth,
|
|
3285
|
+
previousMonth,
|
|
3286
|
+
goToMonth,
|
|
3287
|
+
getModifiers,
|
|
3288
|
+
components,
|
|
3289
|
+
classNames,
|
|
3290
|
+
styles,
|
|
3291
|
+
labels,
|
|
3292
|
+
formatters
|
|
3293
|
+
};
|
|
3294
|
+
return import_react.createElement(dayPickerContext.Provider, { value: contextValue }, import_react.createElement(components.Root, {
|
|
3295
|
+
rootRef: props.animate ? rootElRef : void 0,
|
|
3296
|
+
className,
|
|
3297
|
+
style,
|
|
3298
|
+
dir: props.dir,
|
|
3299
|
+
id: props.id,
|
|
3300
|
+
lang: props.lang ?? locale.code,
|
|
3301
|
+
nonce: props.nonce,
|
|
3302
|
+
title: props.title,
|
|
3303
|
+
role: props.role,
|
|
3304
|
+
"aria-label": props["aria-label"],
|
|
3305
|
+
"aria-labelledby": props["aria-labelledby"],
|
|
3306
|
+
...dataAttributes
|
|
3307
|
+
}, import_react.createElement(components.Months, {
|
|
3308
|
+
className: classNames[UI.Months],
|
|
3309
|
+
style: styles?.[UI.Months]
|
|
3310
|
+
}, !props.hideNavigation && !navLayout && import_react.createElement(components.Nav, {
|
|
3311
|
+
"data-animated-nav": props.animate ? "true" : void 0,
|
|
3312
|
+
className: classNames[UI.Nav],
|
|
3313
|
+
style: styles?.[UI.Nav],
|
|
3314
|
+
"aria-label": labelNav(),
|
|
3315
|
+
onPreviousClick: handlePreviousClick,
|
|
3316
|
+
onNextClick: handleNextClick,
|
|
3317
|
+
previousMonth,
|
|
3318
|
+
nextMonth
|
|
3319
|
+
}), months.map((calendarMonth, displayIndex) => {
|
|
3320
|
+
return import_react.createElement(components.Month, {
|
|
3321
|
+
"data-animated-month": props.animate ? "true" : void 0,
|
|
3322
|
+
className: classNames[UI.Month],
|
|
3323
|
+
style: styles?.[UI.Month],
|
|
3324
|
+
key: displayIndex,
|
|
3325
|
+
displayIndex,
|
|
3326
|
+
calendarMonth
|
|
3327
|
+
}, navLayout === "around" && !props.hideNavigation && displayIndex === 0 && import_react.createElement(components.PreviousMonthButton, {
|
|
3328
|
+
type: "button",
|
|
3329
|
+
className: classNames[UI.PreviousMonthButton],
|
|
3330
|
+
tabIndex: previousMonth ? void 0 : -1,
|
|
3331
|
+
"aria-disabled": previousMonth ? void 0 : true,
|
|
3332
|
+
"aria-label": labelPrevious(previousMonth),
|
|
3333
|
+
onClick: handlePreviousClick,
|
|
3334
|
+
"data-animated-button": props.animate ? "true" : void 0
|
|
3335
|
+
}, import_react.createElement(components.Chevron, {
|
|
3336
|
+
disabled: previousMonth ? void 0 : true,
|
|
3337
|
+
className: classNames[UI.Chevron],
|
|
3338
|
+
orientation: props.dir === "rtl" ? "right" : "left"
|
|
3339
|
+
})), import_react.createElement(components.MonthCaption, {
|
|
3340
|
+
"data-animated-caption": props.animate ? "true" : void 0,
|
|
3341
|
+
className: classNames[UI.MonthCaption],
|
|
3342
|
+
style: styles?.[UI.MonthCaption],
|
|
3343
|
+
calendarMonth,
|
|
3344
|
+
displayIndex
|
|
3345
|
+
}, captionLayout?.startsWith("dropdown") ? import_react.createElement(components.DropdownNav, {
|
|
3346
|
+
className: classNames[UI.Dropdowns],
|
|
3347
|
+
style: styles?.[UI.Dropdowns]
|
|
3348
|
+
}, (() => {
|
|
3349
|
+
const monthControl = captionLayout === "dropdown" || captionLayout === "dropdown-months" ? import_react.createElement(components.MonthsDropdown, {
|
|
3350
|
+
key: "month",
|
|
3351
|
+
className: classNames[UI.MonthsDropdown],
|
|
3352
|
+
"aria-label": labelMonthDropdown(),
|
|
3353
|
+
classNames,
|
|
3354
|
+
components,
|
|
3355
|
+
disabled: Boolean(props.disableNavigation),
|
|
3356
|
+
onChange: handleMonthChange(calendarMonth.date),
|
|
3357
|
+
options: getMonthOptions(calendarMonth.date, navStart, navEnd, formatters, dateLib),
|
|
3358
|
+
style: styles?.[UI.Dropdown],
|
|
3359
|
+
value: dateLib.getMonth(calendarMonth.date)
|
|
3360
|
+
}) : import_react.createElement("span", { key: "month" }, formatMonthDropdown(calendarMonth.date, dateLib));
|
|
3361
|
+
const yearControl = captionLayout === "dropdown" || captionLayout === "dropdown-years" ? import_react.createElement(components.YearsDropdown, {
|
|
3362
|
+
key: "year",
|
|
3363
|
+
className: classNames[UI.YearsDropdown],
|
|
3364
|
+
"aria-label": labelYearDropdown(dateLib.options),
|
|
3365
|
+
classNames,
|
|
3366
|
+
components,
|
|
3367
|
+
disabled: Boolean(props.disableNavigation),
|
|
3368
|
+
onChange: handleYearChange(calendarMonth.date),
|
|
3369
|
+
options: getYearOptions(navStart, navEnd, formatters, dateLib, Boolean(props.reverseYears)),
|
|
3370
|
+
style: styles?.[UI.Dropdown],
|
|
3371
|
+
value: dateLib.getYear(calendarMonth.date)
|
|
3372
|
+
}) : import_react.createElement("span", { key: "year" }, formatYearDropdown(calendarMonth.date, dateLib));
|
|
3373
|
+
return dateLib.getMonthYearOrder() === "year-first" ? [yearControl, monthControl] : [monthControl, yearControl];
|
|
3374
|
+
})(), import_react.createElement("span", {
|
|
3375
|
+
role: "status",
|
|
3376
|
+
"aria-live": "polite",
|
|
3377
|
+
style: {
|
|
3378
|
+
border: 0,
|
|
3379
|
+
clip: "rect(0 0 0 0)",
|
|
3380
|
+
height: "1px",
|
|
3381
|
+
margin: "-1px",
|
|
3382
|
+
overflow: "hidden",
|
|
3383
|
+
padding: 0,
|
|
3384
|
+
position: "absolute",
|
|
3385
|
+
width: "1px",
|
|
3386
|
+
whiteSpace: "nowrap",
|
|
3387
|
+
wordWrap: "normal"
|
|
3388
|
+
}
|
|
3389
|
+
}, formatCaption(calendarMonth.date, dateLib.options, dateLib))) : import_react.createElement(components.CaptionLabel, {
|
|
3390
|
+
className: classNames[UI.CaptionLabel],
|
|
3391
|
+
role: "status",
|
|
3392
|
+
"aria-live": "polite"
|
|
3393
|
+
}, formatCaption(calendarMonth.date, dateLib.options, dateLib))), navLayout === "around" && !props.hideNavigation && displayIndex === numberOfMonths - 1 && import_react.createElement(components.NextMonthButton, {
|
|
3394
|
+
type: "button",
|
|
3395
|
+
className: classNames[UI.NextMonthButton],
|
|
3396
|
+
tabIndex: nextMonth ? void 0 : -1,
|
|
3397
|
+
"aria-disabled": nextMonth ? void 0 : true,
|
|
3398
|
+
"aria-label": labelNext(nextMonth),
|
|
3399
|
+
onClick: handleNextClick,
|
|
3400
|
+
"data-animated-button": props.animate ? "true" : void 0
|
|
3401
|
+
}, import_react.createElement(components.Chevron, {
|
|
3402
|
+
disabled: nextMonth ? void 0 : true,
|
|
3403
|
+
className: classNames[UI.Chevron],
|
|
3404
|
+
orientation: props.dir === "rtl" ? "left" : "right"
|
|
3405
|
+
})), displayIndex === numberOfMonths - 1 && navLayout === "after" && !props.hideNavigation && import_react.createElement(components.Nav, {
|
|
3406
|
+
"data-animated-nav": props.animate ? "true" : void 0,
|
|
3407
|
+
className: classNames[UI.Nav],
|
|
3408
|
+
style: styles?.[UI.Nav],
|
|
3409
|
+
"aria-label": labelNav(),
|
|
3410
|
+
onPreviousClick: handlePreviousClick,
|
|
3411
|
+
onNextClick: handleNextClick,
|
|
3412
|
+
previousMonth,
|
|
3413
|
+
nextMonth
|
|
3414
|
+
}), import_react.createElement(components.MonthGrid, {
|
|
3415
|
+
role: "grid",
|
|
3416
|
+
"aria-multiselectable": mode === "multiple" || mode === "range",
|
|
3417
|
+
"aria-label": labelGrid(calendarMonth.date, dateLib.options, dateLib) || void 0,
|
|
3418
|
+
className: classNames[UI.MonthGrid],
|
|
3419
|
+
style: styles?.[UI.MonthGrid]
|
|
3420
|
+
}, !props.hideWeekdays && import_react.createElement(components.Weekdays, {
|
|
3421
|
+
"data-animated-weekdays": props.animate ? "true" : void 0,
|
|
3422
|
+
className: classNames[UI.Weekdays],
|
|
3423
|
+
style: styles?.[UI.Weekdays]
|
|
3424
|
+
}, showWeekNumber && import_react.createElement(components.WeekNumberHeader, {
|
|
3425
|
+
"aria-label": labelWeekNumberHeader(dateLib.options),
|
|
3426
|
+
className: classNames[UI.WeekNumberHeader],
|
|
3427
|
+
style: styles?.[UI.WeekNumberHeader],
|
|
3428
|
+
scope: "col"
|
|
3429
|
+
}, formatWeekNumberHeader()), weekdays.map((weekday) => import_react.createElement(components.Weekday, {
|
|
3430
|
+
"aria-label": labelWeekday(weekday, dateLib.options, dateLib),
|
|
3431
|
+
className: classNames[UI.Weekday],
|
|
3432
|
+
key: String(weekday),
|
|
3433
|
+
style: styles?.[UI.Weekday],
|
|
3434
|
+
scope: "col"
|
|
3435
|
+
}, formatWeekdayName(weekday, dateLib.options, dateLib)))), import_react.createElement(components.Weeks, {
|
|
3436
|
+
"data-animated-weeks": props.animate ? "true" : void 0,
|
|
3437
|
+
className: classNames[UI.Weeks],
|
|
3438
|
+
style: styles?.[UI.Weeks]
|
|
3439
|
+
}, calendarMonth.weeks.map((week) => {
|
|
3440
|
+
return import_react.createElement(components.Week, {
|
|
3441
|
+
className: classNames[UI.Week],
|
|
3442
|
+
key: week.weekNumber,
|
|
3443
|
+
style: styles?.[UI.Week],
|
|
3444
|
+
week
|
|
3445
|
+
}, showWeekNumber && import_react.createElement(components.WeekNumber, {
|
|
3446
|
+
week,
|
|
3447
|
+
style: styles?.[UI.WeekNumber],
|
|
3448
|
+
"aria-label": labelWeekNumber(week.weekNumber, { locale }),
|
|
3449
|
+
className: classNames[UI.WeekNumber],
|
|
3450
|
+
scope: "row",
|
|
3451
|
+
role: "rowheader"
|
|
3452
|
+
}, formatWeekNumber(week.weekNumber, dateLib)), week.days.map((day) => {
|
|
3453
|
+
const { date } = day;
|
|
3454
|
+
const modifiers = getModifiers(day);
|
|
3455
|
+
modifiers[DayFlag.focused] = !modifiers.hidden && Boolean(focused?.isEqualTo(day));
|
|
3456
|
+
modifiers[SelectionState.selected] = isSelected?.(date) || modifiers.selected;
|
|
3457
|
+
if (isDateRange(selectedValue)) {
|
|
3458
|
+
const { from, to } = selectedValue;
|
|
3459
|
+
modifiers[SelectionState.range_start] = Boolean(from && to && dateLib.isSameDay(date, from));
|
|
3460
|
+
modifiers[SelectionState.range_end] = Boolean(from && to && dateLib.isSameDay(date, to));
|
|
3461
|
+
modifiers[SelectionState.range_middle] = rangeIncludesDate(selectedValue, date, true, dateLib);
|
|
3462
|
+
}
|
|
3463
|
+
const style = getStyleForModifiers(modifiers, styles, props.modifiersStyles);
|
|
3464
|
+
const className = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);
|
|
3465
|
+
const ariaLabel = !isInteractive && !modifiers.hidden ? labelGridcell(date, modifiers, dateLib.options, dateLib) : void 0;
|
|
3466
|
+
return import_react.createElement(components.Day, {
|
|
3467
|
+
key: `${day.isoDate}_${day.displayMonthId}`,
|
|
3468
|
+
day,
|
|
3469
|
+
modifiers,
|
|
3470
|
+
className: className.join(" "),
|
|
3471
|
+
style,
|
|
3472
|
+
role: "gridcell",
|
|
3473
|
+
"aria-selected": modifiers.selected || void 0,
|
|
3474
|
+
"aria-label": ariaLabel,
|
|
3475
|
+
"data-day": day.isoDate,
|
|
3476
|
+
"data-month": day.outside ? day.dateMonthId : void 0,
|
|
3477
|
+
"data-selected": modifiers.selected || void 0,
|
|
3478
|
+
"data-disabled": modifiers.disabled || void 0,
|
|
3479
|
+
"data-hidden": modifiers.hidden || void 0,
|
|
3480
|
+
"data-outside": day.outside || void 0,
|
|
3481
|
+
"data-focused": modifiers.focused || void 0,
|
|
3482
|
+
"data-today": modifiers.today || void 0
|
|
3483
|
+
}, !modifiers.hidden && isInteractive ? import_react.createElement(components.DayButton, {
|
|
3484
|
+
className: classNames[UI.DayButton],
|
|
3485
|
+
style: styles?.[UI.DayButton],
|
|
3486
|
+
type: "button",
|
|
3487
|
+
day,
|
|
3488
|
+
modifiers,
|
|
3489
|
+
disabled: !modifiers.focused && modifiers.disabled || void 0,
|
|
3490
|
+
"aria-disabled": modifiers.focused && modifiers.disabled || void 0,
|
|
3491
|
+
tabIndex: isFocusTarget(day) ? 0 : -1,
|
|
3492
|
+
"aria-label": labelDayButton(date, modifiers, dateLib.options, dateLib),
|
|
3493
|
+
onClick: handleDayClick(day, modifiers),
|
|
3494
|
+
onBlur: handleDayBlur(day, modifiers),
|
|
3495
|
+
onFocus: handleDayFocus(day, modifiers),
|
|
3496
|
+
onKeyDown: handleDayKeyDown(day, modifiers),
|
|
3497
|
+
onMouseEnter: handleDayMouseEnter(day, modifiers),
|
|
3498
|
+
onMouseLeave: handleDayMouseLeave(day, modifiers)
|
|
3499
|
+
}, formatDay(date, dateLib.options, dateLib)) : !modifiers.hidden && formatDay(day.date, dateLib.options, dateLib));
|
|
3500
|
+
}));
|
|
3501
|
+
}))));
|
|
3502
|
+
})), props.footer && import_react.createElement(components.Footer, {
|
|
3503
|
+
className: classNames[UI.Footer],
|
|
3504
|
+
style: styles?.[UI.Footer],
|
|
3505
|
+
role: "status",
|
|
3506
|
+
"aria-live": "polite"
|
|
3507
|
+
}, props.footer)));
|
|
3508
|
+
}
|
|
3509
|
+
//#endregion
|
|
3510
|
+
export { DayPicker as t };
|