viba-cli 0.36.0 → 0.38.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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +18 -0
- package/.next/build-manifest.json +7 -6
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +123 -3
- package/.next/routes-manifest.json +108 -0
- package/.next/server/app/_global-error/page/build-manifest.json +5 -4
- package/.next/server/app/_global-error/page.js +1 -1
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page/build-manifest.json +5 -4
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +18 -16
- package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -16
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -4
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/api/component-source/resolve/route.js +1 -1
- package/.next/server/app/api/component-source/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/credentials/github/repos/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/credentials/github/repos/route/build-manifest.json +11 -0
- package/.next/server/app/api/credentials/github/repos/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/credentials/github/repos/route.js +8 -0
- package/.next/server/app/api/credentials/github/repos/route.js.map +5 -0
- package/.next/server/app/api/credentials/github/repos/route.js.nft.json +1 -0
- package/.next/server/app/api/credentials/github/repos/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/credentials/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/credentials/route/build-manifest.json +11 -0
- package/.next/server/app/api/credentials/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/credentials/route.js +8 -0
- package/.next/server/app/api/credentials/route.js.map +5 -0
- package/.next/server/app/api/credentials/route.js.nft.json +1 -0
- package/.next/server/app/api/credentials/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/custom-scripts/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/custom-scripts/route/build-manifest.json +11 -0
- package/.next/server/app/api/custom-scripts/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/custom-scripts/route.js +10 -0
- package/.next/server/app/api/custom-scripts/route.js.map +5 -0
- package/.next/server/app/api/custom-scripts/route.js.nft.json +1 -0
- package/.next/server/app/api/custom-scripts/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/file-thumbnail/route.js +1 -1
- package/.next/server/app/api/file-thumbnail/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/open/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/fs/open/route/build-manifest.json +11 -0
- package/.next/server/app/api/fs/open/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/fs/open/route.js +8 -0
- package/.next/server/app/api/fs/open/route.js.map +5 -0
- package/.next/server/app/api/fs/open/route.js.nft.json +1 -0
- package/.next/server/app/api/fs/open/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/fs/open-terminal/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/fs/open-terminal/route/build-manifest.json +11 -0
- package/.next/server/app/api/fs/open-terminal/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/fs/open-terminal/route.js +8 -0
- package/.next/server/app/api/fs/open-terminal/route.js.map +5 -0
- package/.next/server/app/api/fs/open-terminal/route.js.nft.json +1 -0
- package/.next/server/app/api/fs/open-terminal/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/action/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/action/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/action/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/action/route.js +10 -0
- package/.next/server/app/api/git/action/route.js.map +5 -0
- package/.next/server/app/api/git/action/route.js.nft.json +1 -0
- package/.next/server/app/api/git/action/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/branches/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/branches/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/branches/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/branches/route.js +10 -0
- package/.next/server/app/api/git/branches/route.js.map +5 -0
- package/.next/server/app/api/git/branches/route.js.nft.json +1 -0
- package/.next/server/app/api/git/branches/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/diff/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/diff/route.js +9 -0
- package/.next/server/app/api/git/diff/route.js.map +5 -0
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/log/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/log/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/log/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/log/route.js +10 -0
- package/.next/server/app/api/git/log/route.js.map +5 -0
- package/.next/server/app/api/git/log/route.js.nft.json +1 -0
- package/.next/server/app/api/git/log/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/git/status/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/git/status/route/build-manifest.json +11 -0
- package/.next/server/app/api/git/status/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/git/status/route.js +10 -0
- package/.next/server/app/api/git/status/route.js.map +5 -0
- package/.next/server/app/api/git/status/route.js.nft.json +1 -0
- package/.next/server/app/api/git/status/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/preview-proxy/start/route.js +2 -2
- package/.next/server/app/api/preview-proxy/start/route.js.nft.json +1 -1
- package/.next/server/app/api/repos/clone/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/repos/clone/route/build-manifest.json +11 -0
- package/.next/server/app/api/repos/clone/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/repos/clone/route.js +9 -0
- package/.next/server/app/api/repos/clone/route.js.map +5 -0
- package/.next/server/app/api/repos/clone/route.js.nft.json +1 -0
- package/.next/server/app/api/repos/clone/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/repos/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/repos/route/build-manifest.json +11 -0
- package/.next/server/app/api/repos/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/repos/route.js +9 -0
- package/.next/server/app/api/repos/route.js.map +5 -0
- package/.next/server/app/api/repos/route.js.nft.json +1 -0
- package/.next/server/app/api/repos/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/settings/route/build-manifest.json +11 -0
- package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/settings/route.js +8 -0
- package/.next/server/app/api/settings/route.js.map +5 -0
- package/.next/server/app/api/settings/route.js.nft.json +1 -0
- package/.next/server/app/api/settings/route_client-reference-manifest.js +2 -0
- package/.next/server/app/credentials/page/build-manifest.json +5 -4
- package/.next/server/app/credentials/page/server-reference-manifest.json +7 -7
- package/.next/server/app/credentials/page.js +4 -3
- package/.next/server/app/credentials/page.js.nft.json +1 -1
- package/.next/server/app/credentials/page_client-reference-manifest.js +1 -1
- package/.next/server/app/credentials.html +2 -2
- package/.next/server/app/credentials.rsc +22 -20
- package/.next/server/app/credentials.segments/_full.segment.rsc +22 -20
- package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
- package/.next/server/app/credentials.segments/_index.segment.rsc +6 -4
- package/.next/server/app/credentials.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
- package/.next/server/app/git/changes/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/changes/page/build-manifest.json +18 -0
- package/.next/server/app/git/changes/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/changes/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/changes/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/changes/page.js +18 -0
- package/.next/server/app/git/changes/page.js.map +5 -0
- package/.next/server/app/git/changes/page.js.nft.json +1 -0
- package/.next/server/app/git/changes/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/changes.html +54 -0
- package/.next/server/app/git/changes.meta +16 -0
- package/.next/server/app/git/changes.rsc +83 -0
- package/.next/server/app/git/changes.segments/_full.segment.rsc +83 -0
- package/.next/server/app/git/changes.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/changes.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/changes.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git/changes.segments/git/changes/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git/changes.segments/git/changes.segment.rsc +4 -0
- package/.next/server/app/git/changes.segments/git.segment.rsc +7 -0
- package/.next/server/app/git/custom-scripts/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/custom-scripts/page/build-manifest.json +18 -0
- package/.next/server/app/git/custom-scripts/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/custom-scripts/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/custom-scripts/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/custom-scripts/page.js +18 -0
- package/.next/server/app/git/custom-scripts/page.js.map +5 -0
- package/.next/server/app/git/custom-scripts/page.js.nft.json +1 -0
- package/.next/server/app/git/custom-scripts/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/custom-scripts.html +54 -0
- package/.next/server/app/git/custom-scripts.meta +16 -0
- package/.next/server/app/git/custom-scripts.rsc +82 -0
- package/.next/server/app/git/custom-scripts.segments/_full.segment.rsc +82 -0
- package/.next/server/app/git/custom-scripts.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/custom-scripts.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/custom-scripts.segments/_tree.segment.rsc +6 -0
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts.segment.rsc +4 -0
- package/.next/server/app/git/custom-scripts.segments/git.segment.rsc +7 -0
- package/.next/server/app/git/history/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/history/page/build-manifest.json +18 -0
- package/.next/server/app/git/history/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/history/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/history/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/history/page.js +18 -0
- package/.next/server/app/git/history/page.js.map +5 -0
- package/.next/server/app/git/history/page.js.nft.json +1 -0
- package/.next/server/app/git/history/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/history.html +54 -0
- package/.next/server/app/git/history.meta +16 -0
- package/.next/server/app/git/history.rsc +83 -0
- package/.next/server/app/git/history.segments/_full.segment.rsc +83 -0
- package/.next/server/app/git/history.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/history.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/history.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git/history.segments/git/history/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git/history.segments/git/history.segment.rsc +4 -0
- package/.next/server/app/git/history.segments/git.segment.rsc +7 -0
- package/.next/server/app/git/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/page/build-manifest.json +18 -0
- package/.next/server/app/git/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/page.js +18 -0
- package/.next/server/app/git/page.js.map +5 -0
- package/.next/server/app/git/page.js.nft.json +1 -0
- package/.next/server/app/git/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/stashes/page/app-paths-manifest.json +3 -0
- package/.next/server/app/git/stashes/page/build-manifest.json +18 -0
- package/.next/server/app/git/stashes/page/next-font-manifest.json +11 -0
- package/.next/server/app/git/stashes/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/git/stashes/page/server-reference-manifest.json +4 -0
- package/.next/server/app/git/stashes/page.js +18 -0
- package/.next/server/app/git/stashes/page.js.map +5 -0
- package/.next/server/app/git/stashes/page.js.nft.json +1 -0
- package/.next/server/app/git/stashes/page_client-reference-manifest.js +2 -0
- package/.next/server/app/git/stashes.html +54 -0
- package/.next/server/app/git/stashes.meta +16 -0
- package/.next/server/app/git/stashes.rsc +83 -0
- package/.next/server/app/git/stashes.segments/_full.segment.rsc +83 -0
- package/.next/server/app/git/stashes.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git/stashes.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git/stashes.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git/stashes.segments/git/stashes/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git/stashes.segments/git/stashes.segment.rsc +4 -0
- package/.next/server/app/git/stashes.segments/git.segment.rsc +7 -0
- package/.next/server/app/git.html +54 -0
- package/.next/server/app/git.meta +15 -0
- package/.next/server/app/git.rsc +82 -0
- package/.next/server/app/git.segments/_full.segment.rsc +82 -0
- package/.next/server/app/git.segments/_head.segment.rsc +6 -0
- package/.next/server/app/git.segments/_index.segment.rsc +61 -0
- package/.next/server/app/git.segments/_tree.segment.rsc +7 -0
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +10 -0
- package/.next/server/app/git.segments/git.segment.rsc +7 -0
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +21 -19
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +21 -19
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +6 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/new/page/build-manifest.json +5 -4
- package/.next/server/app/new/page/server-reference-manifest.json +29 -29
- package/.next/server/app/new/page.js +5 -5
- package/.next/server/app/new/page.js.nft.json +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/build-manifest.json +5 -4
- package/.next/server/app/page/server-reference-manifest.json +29 -29
- package/.next/server/app/page.js +5 -5
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/session/[sessionId]/page/build-manifest.json +5 -4
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +19 -19
- package/.next/server/app/session/[sessionId]/page.js +4 -4
- package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +18 -0
- package/.next/server/chunks/[externals]__7ece43c5._.js +3 -0
- package/.next/server/chunks/[externals]_keytar_23140f5c._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01a6baa7._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01a6baa7._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1bf60374._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1bf60374._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__2dcb1454._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__2dcb1454._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__3ffc9919._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__3ffc9919._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__462092c0._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__462092c0._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__5349b858._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__5349b858._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__597e4f2f._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__597e4f2f._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__7324fe0b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__7324fe0b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__7f2f8f49._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__7f2f8f49._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__82d53572._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__82d53572._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__85af257a._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__85af257a._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__9af2c9bf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__9af2c9bf._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__a0cc36ad._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__a0cc36ad._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__afea2116._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__afea2116._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__b17e6c62._.js +7 -0
- package/.next/server/chunks/[root-of-the-server]__b17e6c62._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__c2ff0bd8._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__c2ff0bd8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__ceda8fbc._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__ceda8fbc._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__e1b60268._.js +519 -0
- package/.next/server/chunks/[root-of-the-server]__e1b60268._.js.map +1 -0
- package/.next/server/chunks/{[root-of-the-server]__ed7be8e0._.js → [root-of-the-server]__e993c1a5._.js} +2 -2
- package/.next/server/chunks/_next-internal_server_app_api_credentials_github_repos_route_actions_29e1f39a.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_credentials_github_repos_route_actions_29e1f39a.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_credentials_route_actions_ec24437f.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_credentials_route_actions_ec24437f.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_custom-scripts_route_actions_895ba0fd.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_custom-scripts_route_actions_895ba0fd.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open-terminal_route_actions_e2201c01.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open-terminal_route_actions_e2201c01.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open_route_actions_140e2d00.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_fs_open_route_actions_140e2d00.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_action_route_actions_696a03a1.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_action_route_actions_696a03a1.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_branches_route_actions_716a58c0.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_branches_route_actions_716a58c0.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_diff_route_actions_7bd2d341.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_diff_route_actions_7bd2d341.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_log_route_actions_1660bf04.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_log_route_actions_1660bf04.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_status_route_actions_71f3da53.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_git_status_route_actions_71f3da53.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_clone_route_actions_ef268146.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_clone_route_actions_ef268146.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_route_actions_cd76e461.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_repos_route_actions_cd76e461.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_a476013b.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_a476013b.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0002606b.js +3 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0002606b.js.map +1 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_fa90cebf.js +39 -0
- package/.next/server/chunks/node_modules_zod_v4_classic_external_fa90cebf.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__05b3451a._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__05b3451a._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__59834c63._.js → [root-of-the-server]__05e6fb4c._.js} +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__05e6fb4c._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__4c388861._.js → [root-of-the-server]__2798aa4d._.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__4c388861._.js.map → [root-of-the-server]__2798aa4d._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__2c252246._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__2c252246._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3cd44871._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__3cd44871._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__52b5581b._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__52b5581b._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5be652da._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__9f8d4cf6._.js.map → [root-of-the-server]__5be652da._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__5e499636._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__5e499636._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6afa74ac._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6afa74ac._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__79a7a15d._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__79a7a15d._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__96a8b4aa._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__012c2bdd._.js.map → [root-of-the-server]__96a8b4aa._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9a619a34._.js +56 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__9a619a34._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ab761bdf._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__ab761bdf._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b77b4157._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__b77b4157._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__d45abc45._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__d45abc45._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e86a1b81._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__7cd07782._.js.map → [root-of-the-server]__e86a1b81._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__e8b7f48a._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__e8b7f48a._.js.map +1 -0
- package/.next/server/chunks/ssr/_2a7fa4b0._.js +3 -0
- package/.next/server/chunks/ssr/_2a7fa4b0._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0522f852._.js → _476e86d1._.js} +3 -3
- package/.next/server/chunks/ssr/_476e86d1._.js.map +1 -0
- package/.next/server/chunks/ssr/_4d07d45e._.js +3 -0
- package/.next/server/chunks/ssr/_4d07d45e._.js.map +1 -0
- package/.next/server/chunks/ssr/_523ff032._.js +3 -0
- package/.next/server/chunks/ssr/_523ff032._.js.map +1 -0
- package/.next/server/chunks/ssr/_57f63a65._.js +3 -0
- package/.next/server/chunks/ssr/_57f63a65._.js.map +1 -0
- package/.next/server/chunks/ssr/_707e5fab._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__9201693f._.js.map → _707e5fab._.js.map} +1 -1
- package/.next/server/chunks/ssr/_787bdec7._.js +3 -0
- package/.next/server/chunks/ssr/_787bdec7._.js.map +1 -0
- package/.next/server/chunks/ssr/_85a742de._.js +4 -0
- package/.next/server/chunks/ssr/_85a742de._.js.map +1 -0
- package/.next/server/chunks/ssr/_9493de08._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__352d2b3c._.js.map → _9493de08._.js.map} +1 -1
- package/.next/server/chunks/ssr/_9769f5e5._.js +4 -0
- package/.next/server/chunks/ssr/_9769f5e5._.js.map +1 -0
- package/.next/server/chunks/ssr/_a7a8132a._.js +4 -0
- package/.next/server/chunks/ssr/_a7a8132a._.js.map +1 -0
- package/.next/server/chunks/ssr/_be721a9c._.js +3 -0
- package/.next/server/chunks/ssr/_be721a9c._.js.map +1 -0
- package/.next/server/chunks/ssr/_df00ee4d._.js +4 -0
- package/.next/server/chunks/ssr/_df00ee4d._.js.map +1 -0
- package/.next/server/chunks/ssr/_e17414c3._.js +3 -0
- package/.next/server/chunks/ssr/_e17414c3._.js.map +1 -0
- package/.next/server/chunks/ssr/_fc027e1f._.js +4 -0
- package/.next/server/chunks/ssr/_fc027e1f._.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_changes_page_actions_6b75ad0c.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_changes_page_actions_6b75ad0c.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_custom-scripts_page_actions_c3e2453e.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_custom-scripts_page_actions_c3e2453e.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_stashes_page_actions_44843274.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_git_stashes_page_actions_44843274.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_3e692bb2._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_3e692bb2._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_8e38eac2._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_8e38eac2._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_bf7b09f8._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_bf7b09f8._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_5999d873._.js → node_modules_cf1f3d2c._.js} +2 -4
- package/.next/server/chunks/ssr/node_modules_cf1f3d2c._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0ff44e32._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0ff44e32._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js.map +1 -0
- package/.next/server/chunks/ssr/src_408d74ba._.js +3 -0
- package/.next/server/chunks/ssr/src_408d74ba._.js.map +1 -0
- package/.next/server/chunks/ssr/src_49325427._.js +3 -0
- package/.next/server/chunks/ssr/src_49325427._.js.map +1 -0
- package/.next/server/chunks/ssr/src_91238eaa._.js +3 -0
- package/.next/server/chunks/ssr/src_91238eaa._.js.map +1 -0
- package/.next/server/chunks/ssr/src_9994126b._.js +3 -0
- package/.next/server/chunks/ssr/src_9994126b._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js +1 -1
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_git_changes_page_tsx_f6dc28dc._.js +5 -0
- package/.next/server/chunks/ssr/src_app_git_changes_page_tsx_f6dc28dc._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_providers_tsx_2ae5be81._.js +3 -0
- package/.next/server/chunks/ssr/src_app_providers_tsx_2ae5be81._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js +3 -3
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_git_grouped-diff-viewer_tsx_41b8ab60._.js +20 -0
- package/.next/server/chunks/ssr/src_components_git_grouped-diff-viewer_tsx_41b8ab60._.js.map +1 -0
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js +10 -0
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js.map +1 -0
- package/.next/server/chunks/ssr/src_hooks_use-workspace-title_ts_9edd343b._.js +3 -0
- package/.next/server/chunks/ssr/src_hooks_use-workspace-title_ts_9edd343b._.js.map +1 -0
- package/.next/server/functions-config-manifest.json +3 -0
- package/.next/server/middleware-build-manifest.js +5 -4
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +20 -0
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +48 -48
- package/.next/static/chunks/068649e8eb29b8d9.js +2 -0
- package/.next/static/chunks/0eca2eff234acf1b.js +1 -0
- package/.next/static/chunks/46c9f58659e11b7d.js +1 -0
- package/.next/static/chunks/47ad182e478611c4.css +1 -0
- package/.next/static/chunks/4b818f2593bc4300.js +1 -0
- package/.next/static/chunks/4cabe8a0df24e6d1.js +1 -0
- package/.next/static/chunks/4d93976ea0e8b685.js +9 -0
- package/.next/static/chunks/58e245f27f38e5ff.js +1 -0
- package/.next/static/chunks/5d6988fe9dd191e1.js +1 -0
- package/.next/static/chunks/73b3e447914a757b.js +1 -0
- package/.next/static/chunks/76c064224d953678.js +4 -0
- package/.next/static/chunks/78859d33c5671d29.js +8 -0
- package/.next/static/chunks/94fb2462104985a8.js +3 -0
- package/.next/static/chunks/9f82d45ee88d5dc1.js +3 -0
- package/.next/static/chunks/a29874cab09f6b0f.js +3 -0
- package/.next/static/chunks/b4077ef0304a2ff4.js +18 -0
- package/.next/static/chunks/bcc203fd591a3e1b.js +3 -0
- package/.next/static/chunks/c1a983df0a5e5f3a.css +1 -0
- package/.next/static/chunks/c7c82526da1ea165.js +1 -0
- package/.next/static/chunks/e152c322e888ccea.js +1 -0
- package/.next/static/chunks/ff0443d5f56a7060.js +3 -0
- package/.next/static/chunks/fff7986d66d302cf.js +1 -0
- package/.next/static/chunks/turbopack-e9cbd31f7b697763.js +4 -0
- package/package.json +4 -1
- package/.next/server/chunks/[externals]__6f5f63a1._.js +0 -3
- package/.next/server/chunks/[externals]__ad3eabe7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1368fab8._.js +0 -519
- package/.next/server/chunks/[root-of-the-server]__1368fab8._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__012c2bdd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03608b11._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__03608b11._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0522f852._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11fa4345._.js +0 -56
- package/.next/server/chunks/ssr/[root-of-the-server]__11fa4345._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__34682cce._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__34682cce._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__352d2b3c._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__5248b09d._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__5248b09d._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__59834c63._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__5afb130a._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__5afb130a._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__7cd07782._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__90f3f366._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__90f3f366._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__9201693f._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__9f8d4cf6._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ddfe4bc9._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ddfe4bc9._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__ebb382fb._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__ebb382fb._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__f56dd853._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__f56dd853._.js.map +0 -1
- package/.next/server/chunks/ssr/_0e1eddd4._.js +0 -3
- package/.next/server/chunks/ssr/_0e1eddd4._.js.map +0 -1
- package/.next/server/chunks/ssr/_24abf4af._.js +0 -3
- package/.next/server/chunks/ssr/_24abf4af._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_04e0be7d._.js +0 -8
- package/.next/server/chunks/ssr/node_modules_04e0be7d._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_358ee037._.js +0 -8
- package/.next/server/chunks/ssr/node_modules_358ee037._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_5999d873._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_a8dcdfed._.js +0 -8
- package/.next/server/chunks/ssr/node_modules_a8dcdfed._.js.map +0 -1
- package/.next/static/chunks/0b5678df432c3623.js +0 -4
- package/.next/static/chunks/0dfa5be743492ce2.js +0 -2
- package/.next/static/chunks/55530e7372f637a5.js +0 -9
- package/.next/static/chunks/69f9cafe63e37b94.js +0 -3
- package/.next/static/chunks/77fd18eb8db19b06.js +0 -3
- package/.next/static/chunks/7d1a2e687efd0dae.js +0 -1
- package/.next/static/chunks/87a0daee0af7dbbb.js +0 -3
- package/.next/static/chunks/b77fa77a013ad38a.js +0 -1
- package/.next/static/chunks/b7d3629158b8408c.css +0 -1
- package/.next/static/chunks/cbeda3911cb6ed6b.js +0 -3
- package/.next/static/chunks/turbopack-18722873613a4289.js +0 -4
- /package/.next/server/chunks/{[externals]__6f5f63a1._.js.map → [externals]__7ece43c5._.js.map} +0 -0
- /package/.next/server/chunks/{[externals]__ad3eabe7._.js.map → [externals]_keytar_23140f5c._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__ed7be8e0._.js.map → [root-of-the-server]__e993c1a5._.js.map} +0 -0
- /package/.next/static/{ZQBlMiVA1p6iyepPKzRE3 → mx8z_YoNSm8FluLvondrw}/_buildManifest.js +0 -0
- /package/.next/static/{ZQBlMiVA1p6iyepPKzRE3 → mx8z_YoNSm8FluLvondrw}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{ZQBlMiVA1p6iyepPKzRE3 → mx8z_YoNSm8FluLvondrw}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/%40tanstack/query-core/build/modern/timeoutManager.js","../../../../node_modules/%40tanstack/query-core/build/modern/utils.js","../../../../node_modules/%40tanstack/query-core/src/notifyManager.ts","../../../../node_modules/%40tanstack/query-core/src/subscribable.ts","../../../../node_modules/%40tanstack/query-core/src/focusManager.ts","../../../../node_modules/%40tanstack/query-core/build/modern/query.js","../../../../node_modules/%40tanstack/query-core/build/modern/onlineManager.js","../../../../node_modules/%40tanstack/query-core/build/modern/removable.js","../../../../node_modules/%40tanstack/query-core/build/modern/retryer.js","../../../../node_modules/%40tanstack/query-core/build/modern/thenable.js","../../../../node_modules/%40tanstack/query-core/src/mutation.ts","../../../../node_modules/%40tanstack/react-query/src/QueryClientProvider.tsx","../../../../src/hooks/use-toast.ts","../../../../node_modules/%40tanstack/query-core/src/queryObserver.ts","../../../../node_modules/%40tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../../node_modules/%40tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../../node_modules/%40tanstack/react-query/build/modern/IsRestoringProvider.js","../../../../node_modules/%40tanstack/react-query/build/modern/suspense.js","../../../../node_modules/%40tanstack/react-query/build/modern/useBaseQuery.js","../../../../node_modules/%40tanstack/react-query/build/modern/useQuery.js","../../../../node_modules/%40tanstack/query-core/build/modern/mutationObserver.js","../../../../node_modules/%40tanstack/react-query/build/modern/useMutation.js","../../../../src/hooks/use-git.ts","../../../../node_modules/clsx/dist/clsx.mjs","../../../../node_modules/tailwind-merge/src/lib/utils.ts","../../../../src/lib/utils.ts","../../../../node_modules/tailwind-merge/src/lib/class-group-utils.ts","../../../../node_modules/tailwind-merge/src/lib/lru-cache.ts","../../../../node_modules/tailwind-merge/src/lib/parse-class-name.ts","../../../../node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../../../../node_modules/tailwind-merge/src/lib/config-utils.ts","../../../../node_modules/tailwind-merge/src/lib/merge-classlist.ts","../../../../node_modules/tailwind-merge/src/lib/tw-join.ts","../../../../node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../../../../node_modules/tailwind-merge/src/lib/from-theme.ts","../../../../node_modules/tailwind-merge/src/lib/validators.ts","../../../../node_modules/tailwind-merge/src/lib/default-config.ts","../../../../node_modules/tailwind-merge/src/lib/merge-configs.ts","../../../../node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts","../../../../node_modules/tailwind-merge/src/lib/tw-merge.ts"],"sourcesContent":["// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support ReturnType<typeof setTimeout>, which is infeasible.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// TYPES\n\nimport { systemSetTimeoutZero } from './timeoutManager'\n\ntype NotifyCallback = () => void\n\ntype NotifyFunction = (callback: () => void) => void\n\ntype BatchNotifyFunction = (callback: () => void) => void\n\ntype BatchCallsCallback<T extends Array<unknown>> = (...args: T) => void\n\ntype ScheduleFunction = (callback: () => void) => void\n\nexport const defaultScheduler: ScheduleFunction = systemSetTimeoutZero\n\nexport function createNotifyManager() {\n let queue: Array<NotifyCallback> = []\n let transactions = 0\n let notifyFn: NotifyFunction = (callback) => {\n callback()\n }\n let batchNotifyFn: BatchNotifyFunction = (callback: () => void) => {\n callback()\n }\n let scheduleFn = defaultScheduler\n\n const schedule = (callback: NotifyCallback): void => {\n if (transactions) {\n queue.push(callback)\n } else {\n scheduleFn(() => {\n notifyFn(callback)\n })\n }\n }\n const flush = (): void => {\n const originalQueue = queue\n queue = []\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback)\n })\n })\n })\n }\n }\n\n return {\n batch: <T>(callback: () => T): T => {\n let result\n transactions++\n try {\n result = callback()\n } finally {\n transactions--\n if (!transactions) {\n flush()\n }\n }\n return result\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: <T extends Array<unknown>>(\n callback: BatchCallsCallback<T>,\n ): BatchCallsCallback<T> => {\n return (...args) => {\n schedule(() => {\n callback(...args)\n })\n }\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn: NotifyFunction) => {\n notifyFn = fn\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn: BatchNotifyFunction) => {\n batchNotifyFn = fn\n },\n setScheduler: (fn: ScheduleFunction) => {\n scheduleFn = fn\n },\n } as const\n}\n\n// SINGLETON\nexport const notifyManager = createNotifyManager()\n","export class Subscribable<TListener extends Function> {\n protected listeners = new Set<TListener>()\n\n constructor() {\n this.subscribe = this.subscribe.bind(this)\n }\n\n subscribe(listener: TListener): () => void {\n this.listeners.add(listener)\n\n this.onSubscribe()\n\n return () => {\n this.listeners.delete(listener)\n this.onUnsubscribe()\n }\n }\n\n hasListeners(): boolean {\n return this.listeners.size > 0\n }\n\n protected onSubscribe(): void {\n // Do nothing\n }\n\n protected onUnsubscribe(): void {\n // Do nothing\n }\n}\n","import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype Listener = (focused: boolean) => void\n\ntype SetupFn = (\n setFocused: (focused?: boolean) => void,\n) => (() => void) | undefined\n\nexport class FocusManager extends Subscribable<Listener> {\n #focused?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onFocus) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus()\n // Listen to visibilitychange\n window.addEventListener('visibilitychange', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener)\n }\n }\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((focused) => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused)\n } else {\n this.onFocus()\n }\n })\n }\n\n setFocused(focused?: boolean): void {\n const changed = this.#focused !== focused\n if (changed) {\n this.#focused = focused\n this.onFocus()\n }\n }\n\n onFocus(): void {\n const isFocused = this.isFocused()\n this.listeners.forEach((listener) => {\n listener(isFocused)\n })\n }\n\n isFocused(): boolean {\n if (typeof this.#focused === 'boolean') {\n return this.#focused\n }\n\n // document global can be unavailable in react native\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n return globalThis.document?.visibilityState !== 'hidden'\n }\n}\n\nexport const focusManager = new FocusManager()\n","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","import { notifyManager } from './notifyManager'\nimport { Removable } from './removable'\nimport { createRetryer } from './retryer'\nimport type {\n DefaultError,\n MutationFunctionContext,\n MutationMeta,\n MutationOptions,\n MutationStatus,\n} from './types'\nimport type { MutationCache } from './mutationCache'\nimport type { MutationObserver } from './mutationObserver'\nimport type { Retryer } from './retryer'\nimport type { QueryClient } from './queryClient'\n\n// TYPES\n\ninterface MutationConfig<TData, TError, TVariables, TOnMutateResult> {\n client: QueryClient\n mutationId: number\n mutationCache: MutationCache\n options: MutationOptions<TData, TError, TVariables, TOnMutateResult>\n state?: MutationState<TData, TError, TVariables, TOnMutateResult>\n}\n\nexport interface MutationState<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> {\n context: TOnMutateResult | undefined\n data: TData | undefined\n error: TError | null\n failureCount: number\n failureReason: TError | null\n isPaused: boolean\n status: MutationStatus\n variables: TVariables | undefined\n submittedAt: number\n}\n\ninterface FailedAction<TError> {\n type: 'failed'\n failureCount: number\n error: TError | null\n}\n\ninterface PendingAction<TVariables, TOnMutateResult> {\n type: 'pending'\n isPaused: boolean\n variables?: TVariables\n context?: TOnMutateResult\n}\n\ninterface SuccessAction<TData> {\n type: 'success'\n data: TData\n}\n\ninterface ErrorAction<TError> {\n type: 'error'\n error: TError\n}\n\ninterface PauseAction {\n type: 'pause'\n}\n\ninterface ContinueAction {\n type: 'continue'\n}\n\nexport type Action<TData, TError, TVariables, TOnMutateResult> =\n | ContinueAction\n | ErrorAction<TError>\n | FailedAction<TError>\n | PendingAction<TVariables, TOnMutateResult>\n | PauseAction\n | SuccessAction<TData>\n\n// CLASS\n\nexport class Mutation<\n TData = unknown,\n TError = DefaultError,\n TVariables = unknown,\n TOnMutateResult = unknown,\n> extends Removable {\n state: MutationState<TData, TError, TVariables, TOnMutateResult>\n options!: MutationOptions<TData, TError, TVariables, TOnMutateResult>\n readonly mutationId: number\n\n #client: QueryClient\n #observers: Array<\n MutationObserver<TData, TError, TVariables, TOnMutateResult>\n >\n #mutationCache: MutationCache\n #retryer?: Retryer<TData>\n\n constructor(\n config: MutationConfig<TData, TError, TVariables, TOnMutateResult>,\n ) {\n super()\n\n this.#client = config.client\n this.mutationId = config.mutationId\n this.#mutationCache = config.mutationCache\n this.#observers = []\n this.state = config.state || getDefaultState()\n\n this.setOptions(config.options)\n this.scheduleGc()\n }\n\n setOptions(\n options: MutationOptions<TData, TError, TVariables, TOnMutateResult>,\n ): void {\n this.options = options\n\n this.updateGcTime(this.options.gcTime)\n }\n\n get meta(): MutationMeta | undefined {\n return this.options.meta\n }\n\n addObserver(observer: MutationObserver<any, any, any, any>): void {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer)\n\n // Stop the mutation from being garbage collected\n this.clearGcTimeout()\n\n this.#mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer,\n })\n }\n }\n\n removeObserver(observer: MutationObserver<any, any, any, any>): void {\n this.#observers = this.#observers.filter((x) => x !== observer)\n\n this.scheduleGc()\n\n this.#mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer,\n })\n }\n\n protected optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === 'pending') {\n this.scheduleGc()\n } else {\n this.#mutationCache.remove(this)\n }\n }\n }\n\n continue(): Promise<unknown> {\n return (\n this.#retryer?.continue() ??\n // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables!)\n )\n }\n\n async execute(variables: TVariables): Promise<TData> {\n const onContinue = () => {\n this.#dispatch({ type: 'continue' })\n }\n\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey,\n } satisfies MutationFunctionContext\n\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error('No mutationFn found'))\n }\n\n return this.options.mutationFn(variables, mutationFnContext)\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: 'failed', failureCount, error })\n },\n onPause: () => {\n this.#dispatch({ type: 'pause' })\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this),\n })\n\n const restored = this.state.status === 'pending'\n const isPaused = !this.#retryer.canStart()\n\n try {\n if (restored) {\n // Dispatch continue action to unpause restored mutation\n onContinue()\n } else {\n this.#dispatch({ type: 'pending', variables, isPaused })\n // Notify cache callback\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext,\n )\n if (context !== this.state.context) {\n this.#dispatch({\n type: 'pending',\n context,\n variables,\n isPaused,\n })\n }\n }\n const data = await this.#retryer.start()\n\n // Notify cache callback\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context!,\n mutationFnContext,\n )\n\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext,\n )\n\n this.#dispatch({ type: 'success', data })\n return data\n } catch (error) {\n try {\n // Notify cache callback\n await this.#mutationCache.config.onError?.(\n error as any,\n variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n try {\n await this.options.onError?.(\n error as TError,\n variables,\n this.state.context,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n try {\n // Notify cache callback\n await this.#mutationCache.config.onSettled?.(\n undefined,\n error as any,\n this.state.variables,\n this.state.context,\n this as Mutation<unknown, unknown, unknown, unknown>,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n try {\n await this.options.onSettled?.(\n undefined,\n error as TError,\n variables,\n this.state.context,\n mutationFnContext,\n )\n } catch (e) {\n void Promise.reject(e)\n }\n\n this.#dispatch({ type: 'error', error: error as TError })\n throw error\n } finally {\n this.#mutationCache.runNext(this)\n }\n }\n\n #dispatch(action: Action<TData, TError, TVariables, TOnMutateResult>): void {\n const reducer = (\n state: MutationState<TData, TError, TVariables, TOnMutateResult>,\n ): MutationState<TData, TError, TVariables, TOnMutateResult> => {\n switch (action.type) {\n case 'failed':\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error,\n }\n case 'pause':\n return {\n ...state,\n isPaused: true,\n }\n case 'continue':\n return {\n ...state,\n isPaused: false,\n }\n case 'pending':\n return {\n ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: 'pending',\n variables: action.variables,\n submittedAt: Date.now(),\n }\n case 'success':\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false,\n }\n case 'error':\n return {\n ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error',\n }\n }\n }\n this.state = reducer(this.state)\n\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action)\n })\n this.#mutationCache.notify({\n mutation: this,\n type: 'updated',\n action,\n })\n })\n }\n}\n\nexport function getDefaultState<\n TData,\n TError,\n TVariables,\n TOnMutateResult,\n>(): MutationState<TData, TError, TVariables, TOnMutateResult> {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined,\n submittedAt: 0,\n }\n}\n","'use client'\nimport * as React from 'react'\n\nimport type { QueryClient } from '@tanstack/query-core'\n\nexport const QueryClientContext = React.createContext<QueryClient | undefined>(\n undefined,\n)\n\nexport const useQueryClient = (queryClient?: QueryClient) => {\n const client = React.useContext(QueryClientContext)\n\n if (queryClient) {\n return queryClient\n }\n\n if (!client) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one')\n }\n\n return client\n}\n\nexport type QueryClientProviderProps = {\n client: QueryClient\n children?: React.ReactNode\n}\n\nexport const QueryClientProvider = ({\n client,\n children,\n}: QueryClientProviderProps): React.JSX.Element => {\n React.useEffect(() => {\n client.mount()\n return () => {\n client.unmount()\n }\n }, [client])\n\n return (\n <QueryClientContext.Provider value={client}>\n {children}\n </QueryClientContext.Provider>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nconst TOAST_LIMIT = 5\nconst TOAST_REMOVE_DELAY = 5000\n\n// Helper to copy text to clipboard\nasync function copyToClipboard(text: string): Promise<boolean> {\n try {\n await navigator.clipboard.writeText(text);\n return true;\n } catch {\n // Fallback for older browsers\n const textArea = document.createElement('textarea');\n textArea.value = text;\n textArea.style.position = 'fixed';\n textArea.style.left = '-9999px';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('copy');\n return true;\n } catch {\n return false;\n } finally {\n document.body.removeChild(textArea);\n }\n }\n}\n\nexport type ToastType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\"\n\nexport interface Toast {\n id: string\n title?: React.ReactNode\n description?: React.ReactNode\n type?: ToastType\n variant?: \"default\" | \"destructive\" | \"warning\" // For compatibility\n duration?: number\n action?: React.ReactNode\n}\n\nlet count = 0\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER\n return count.toString()\n}\n\ntype Action =\n | {\n type: \"ADD_TOAST\"\n toast: Toast\n }\n | {\n type: \"UPDATE_TOAST\"\n toast: Partial<Toast>\n }\n | {\n type: \"DISMISS_TOAST\"\n toastId?: string\n }\n | {\n type: \"REMOVE_TOAST\"\n toastId?: string\n }\n\ninterface State {\n toasts: Toast[]\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\n\nconst addToRemoveQueue = (toastId: string, duration = TOAST_REMOVE_DELAY) => {\n if (toastTimeouts.has(toastId)) {\n return\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId)\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n })\n }, duration)\n\n toastTimeouts.set(toastId, timeout)\n}\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n }\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n }\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action\n\n if (toastId) {\n addToRemoveQueue(toastId, 0) // Remove immediately for dismiss\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id, 0)\n })\n }\n\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== toastId && toastId !== undefined),\n }\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n }\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n }\n }\n}\n\nconst listeners: Array<(state: State) => void> = []\n\nlet memoryState: State = { toasts: [] }\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action)\n listeners.forEach((listener) => {\n listener(memoryState)\n })\n}\n\nfunction toast(props: Omit<Toast, \"id\">) {\n const id = genId()\n\n const update = (props: Toast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n })\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id })\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n },\n })\n\n // Auto remove\n addToRemoveQueue(id, props.duration || TOAST_REMOVE_DELAY)\n\n return {\n id: id,\n dismiss,\n update,\n }\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState)\n\n React.useEffect(() => {\n listeners.push(setState)\n return () => {\n const index = listeners.indexOf(setState)\n if (index > -1) {\n listeners.splice(index, 1)\n }\n }\n }, [state])\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n }\n}\n\n// Git error toast helper - shows a destructive toast with copy button\ninterface GitErrorToastOptions {\n title?: string;\n operation?: string;\n onFix?: () => void | Promise<void>;\n fixLabel?: string;\n}\n\nfunction showGitErrorToast(error: Error | string, options: GitErrorToastOptions = {}) {\n const errorMessage = typeof error === 'string' ? error : error.message;\n const title = options.title || (options.operation ? `${options.operation} Failed` : 'Git Operation Failed');\n \n const id = genId();\n \n // Create a stateful component for the copy button\n const CopyableErrorDescription = () => {\n const [copied, setCopied] = React.useState(false);\n const [fixing, setFixing] = React.useState(false);\n \n const handleCopy = async (e: React.MouseEvent) => {\n e.stopPropagation();\n const success = await copyToClipboard(errorMessage);\n if (success) {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n };\n\n const handleFix = async (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!options.onFix) return;\n\n setFixing(true);\n try {\n await options.onFix();\n dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n } catch (err) {\n console.error(\"Fix failed\", err);\n setFixing(false);\n }\n };\n \n // Container\n return React.createElement('div', { \n className: 'mt-2 space-y-3' \n },\n // Error message box\n React.createElement('div', { \n className: 'max-h-[120px] overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed bg-black/20 p-3 rounded-md break-all text-error-content/90 border border-error-content/20'\n }, errorMessage),\n // Buttons container\n React.createElement('div', { className: 'flex gap-2' },\n // Copy button\n React.createElement('button', {\n onClick: handleCopy,\n type: 'button',\n className: `btn btn-xs ${copied ? 'btn-success text-white' : 'bg-white/20 hover:bg-white/30 text-white border-white/20'}`,\n },\n copied ? 'Copied!' : 'Copy Error'\n ),\n // Fix button\n options.onFix ? React.createElement('button', {\n onClick: handleFix,\n type: 'button',\n disabled: fixing,\n className: 'btn btn-xs btn-warning text-white',\n }, fixing ? 'Fixing...' : (options.fixLabel || 'Fix Issue')) : null\n )\n );\n };\n \n toast({\n type: \"error\",\n title,\n description: React.createElement(CopyableErrorDescription),\n duration: 10000 // Long duration for errors\n });\n \n return {\n id,\n dismiss: () => dispatch({ type: \"DISMISS_TOAST\", toastId: id }),\n };\n}\n\nexport { useToast, toast, showGitErrorToast }\n","import { focusManager } from './focusManager'\nimport { notifyManager } from './notifyManager'\nimport { fetchState } from './query'\nimport { Subscribable } from './subscribable'\nimport { pendingThenable } from './thenable'\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale,\n} from './utils'\nimport { timeoutManager } from './timeoutManager'\nimport type { ManagedTimerId } from './timeoutManager'\nimport type { FetchOptions, Query, QueryState } from './query'\nimport type { QueryClient } from './queryClient'\nimport type { PendingThenable, Thenable } from './thenable'\nimport type {\n DefaultError,\n DefaultedQueryObserverOptions,\n PlaceholderDataFunction,\n QueryKey,\n QueryObserverBaseResult,\n QueryObserverOptions,\n QueryObserverResult,\n RefetchOptions,\n} from './types'\n\ntype QueryObserverListener<TData, TError> = (\n result: QueryObserverResult<TData, TError>,\n) => void\n\ninterface ObserverFetchOptions extends FetchOptions {\n throwOnError?: boolean\n}\n\nexport class QueryObserver<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> extends Subscribable<QueryObserverListener<TData, TError>> {\n #client: QueryClient\n #currentQuery: Query<TQueryFnData, TError, TQueryData, TQueryKey> = undefined!\n #currentQueryInitialState: QueryState<TQueryData, TError> = undefined!\n #currentResult: QueryObserverResult<TData, TError> = undefined!\n #currentResultState?: QueryState<TQueryData, TError>\n #currentResultOptions?: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >\n #currentThenable: Thenable<TData>\n #selectError: TError | null\n #selectFn?: (data: TQueryData) => TData\n #selectResult?: TData\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData?: Query<TQueryFnData, TError, TQueryData, TQueryKey>\n #staleTimeoutId?: ManagedTimerId\n #refetchIntervalId?: ManagedTimerId\n #currentRefetchInterval?: number | false\n #trackedProps = new Set<keyof QueryObserverResult>()\n\n constructor(\n client: QueryClient,\n public options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ) {\n super()\n\n this.#client = client\n this.#selectError = null\n this.#currentThenable = pendingThenable()\n\n this.bindMethods()\n this.setOptions(options)\n }\n\n protected bindMethods(): void {\n this.refetch = this.refetch.bind(this)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this)\n\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch()\n } else {\n this.updateResult()\n }\n\n this.#updateTimers()\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.destroy()\n }\n }\n\n shouldFetchOnReconnect(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect,\n )\n }\n\n shouldFetchOnWindowFocus(): boolean {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus,\n )\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#clearStaleTimeout()\n this.#clearRefetchInterval()\n this.#currentQuery.removeObserver(this)\n }\n\n setOptions(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): void {\n const prevOptions = this.options\n const prevQuery = this.#currentQuery\n\n this.options = this.#client.defaultQueryOptions(options)\n\n if (\n this.options.enabled !== undefined &&\n typeof this.options.enabled !== 'boolean' &&\n typeof this.options.enabled !== 'function' &&\n typeof resolveEnabled(this.options.enabled, this.#currentQuery) !==\n 'boolean'\n ) {\n throw new Error(\n 'Expected enabled to be a boolean or a callback that returns a boolean',\n )\n }\n\n this.#updateQuery()\n this.#currentQuery.setOptions(this.options)\n\n if (\n prevOptions._defaulted &&\n !shallowEqualObjects(this.options, prevOptions)\n ) {\n this.#client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.#currentQuery,\n observer: this,\n })\n }\n\n const mounted = this.hasListeners()\n\n // Fetch if there are subscribers\n if (\n mounted &&\n shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions,\n )\n ) {\n this.#executeFetch()\n }\n\n // Update result\n this.updateResult()\n\n // Update stale interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n resolveEnabled(this.options.enabled, this.#currentQuery) !==\n resolveEnabled(prevOptions.enabled, this.#currentQuery) ||\n resolveStaleTime(this.options.staleTime, this.#currentQuery) !==\n resolveStaleTime(prevOptions.staleTime, this.#currentQuery))\n ) {\n this.#updateStaleTimeout()\n }\n\n const nextRefetchInterval = this.#computeRefetchInterval()\n\n // Update refetch interval if needed\n if (\n mounted &&\n (this.#currentQuery !== prevQuery ||\n resolveEnabled(this.options.enabled, this.#currentQuery) !==\n resolveEnabled(prevOptions.enabled, this.#currentQuery) ||\n nextRefetchInterval !== this.#currentRefetchInterval)\n ) {\n this.#updateRefetchInterval(nextRefetchInterval)\n }\n }\n\n getOptimisticResult(\n options: DefaultedQueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const query = this.#client.getQueryCache().build(this.#client, options)\n\n const result = this.createResult(query, options)\n\n if (shouldAssignObserverCurrentProperties(this, result)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult every time\n // an observer reads an optimistic value.\n\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.#currentResult = result\n this.#currentResultOptions = this.options\n this.#currentResultState = this.#currentQuery.state\n }\n return result\n }\n\n getCurrentResult(): QueryObserverResult<TData, TError> {\n return this.#currentResult\n }\n\n trackResult(\n result: QueryObserverResult<TData, TError>,\n onPropTracked?: (key: keyof QueryObserverResult) => void,\n ): QueryObserverResult<TData, TError> {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key as keyof QueryObserverResult)\n onPropTracked?.(key as keyof QueryObserverResult)\n if (key === 'promise') {\n this.trackProp('data')\n if (\n !this.options.experimental_prefetchInRender &&\n this.#currentThenable.status === 'pending'\n ) {\n this.#currentThenable.reject(\n new Error(\n 'experimental_prefetchInRender feature flag is not enabled',\n ),\n )\n }\n }\n return Reflect.get(target, key)\n },\n })\n }\n\n trackProp(key: keyof QueryObserverResult) {\n this.#trackedProps.add(key)\n }\n\n getCurrentQuery(): Query<TQueryFnData, TError, TQueryData, TQueryKey> {\n return this.#currentQuery\n }\n\n refetch({ ...options }: RefetchOptions = {}): Promise<\n QueryObserverResult<TData, TError>\n > {\n return this.fetch({\n ...options,\n })\n }\n\n fetchOptimistic(\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): Promise<QueryObserverResult<TData, TError>> {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n\n const query = this.#client\n .getQueryCache()\n .build(this.#client, defaultedOptions)\n\n return query.fetch().then(() => this.createResult(query, defaultedOptions))\n }\n\n protected fetch(\n fetchOptions: ObserverFetchOptions,\n ): Promise<QueryObserverResult<TData, TError>> {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true,\n }).then(() => {\n this.updateResult()\n return this.#currentResult\n })\n }\n\n #executeFetch(\n fetchOptions?: Omit<ObserverFetchOptions, 'initialPromise'>,\n ): Promise<TQueryData | undefined> {\n // Make sure we reference the latest query as the current one might have been removed\n this.#updateQuery()\n\n // Fetch\n let promise: Promise<TQueryData | undefined> = this.#currentQuery.fetch(\n this.options,\n fetchOptions,\n )\n\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop)\n }\n\n return promise\n }\n\n #updateStaleTimeout(): void {\n this.#clearStaleTimeout()\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery,\n )\n\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return\n }\n\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime)\n\n // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n const timeout = time + 1\n\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult()\n }\n }, timeout)\n }\n\n #computeRefetchInterval() {\n return (\n (typeof this.options.refetchInterval === 'function'\n ? this.options.refetchInterval(this.#currentQuery)\n : this.options.refetchInterval) ?? false\n )\n }\n\n #updateRefetchInterval(nextInterval: number | false): void {\n this.#clearRefetchInterval()\n\n this.#currentRefetchInterval = nextInterval\n\n if (\n isServer ||\n resolveEnabled(this.options.enabled, this.#currentQuery) === false ||\n !isValidTimeout(this.#currentRefetchInterval) ||\n this.#currentRefetchInterval === 0\n ) {\n return\n }\n\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (\n this.options.refetchIntervalInBackground ||\n focusManager.isFocused()\n ) {\n this.#executeFetch()\n }\n }, this.#currentRefetchInterval)\n }\n\n #updateTimers(): void {\n this.#updateStaleTimeout()\n this.#updateRefetchInterval(this.#computeRefetchInterval())\n }\n\n #clearStaleTimeout(): void {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId)\n this.#staleTimeoutId = undefined\n }\n }\n\n #clearRefetchInterval(): void {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId)\n this.#refetchIntervalId = undefined\n }\n }\n\n protected createResult(\n query: Query<TQueryFnData, TError, TQueryData, TQueryKey>,\n options: QueryObserverOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n ): QueryObserverResult<TData, TError> {\n const prevQuery = this.#currentQuery\n const prevOptions = this.options\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n const prevResultState = this.#currentResultState\n const prevResultOptions = this.#currentResultOptions\n const queryChange = query !== prevQuery\n const queryInitialState = queryChange\n ? query.state\n : this.#currentQueryInitialState\n\n const { state } = query\n let newState = { ...state }\n let isPlaceholderData = false\n let data: TData | undefined\n\n // Optimistically set result in fetching state if needed\n if (options._optimisticResults) {\n const mounted = this.hasListeners()\n\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options)\n\n const fetchOptionally =\n mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions)\n\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options),\n }\n }\n if (options._optimisticResults === 'isRestoring') {\n newState.fetchStatus = 'idle'\n }\n }\n\n let { error, errorUpdatedAt, status } = newState\n\n // Per default, use query data\n data = newState.data as unknown as TData\n let skipSelect = false\n\n // use placeholderData if needed\n if (\n options.placeholderData !== undefined &&\n data === undefined &&\n status === 'pending'\n ) {\n let placeholderData\n\n // Memoize placeholder data\n if (\n prevResult?.isPlaceholderData &&\n options.placeholderData === prevResultOptions?.placeholderData\n ) {\n placeholderData = prevResult.data\n // we have to skip select when reading this memoization\n // because prevResult.data is already \"selected\"\n skipSelect = true\n } else {\n // compute placeholderData\n placeholderData =\n typeof options.placeholderData === 'function'\n ? (\n options.placeholderData as unknown as PlaceholderDataFunction<TQueryData>\n )(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData as any,\n )\n : options.placeholderData\n }\n\n if (placeholderData !== undefined) {\n status = 'success'\n data = replaceData(\n prevResult?.data,\n placeholderData as unknown,\n options,\n ) as TData\n isPlaceholderData = true\n }\n }\n\n // Select data if needed\n // this also runs placeholderData through the select function\n if (options.select && data !== undefined && !skipSelect) {\n // Memoize select result\n if (\n prevResult &&\n data === prevResultState?.data &&\n options.select === this.#selectFn\n ) {\n data = this.#selectResult\n } else {\n try {\n this.#selectFn = options.select\n data = options.select(data as any)\n data = replaceData(prevResult?.data, data, options)\n this.#selectResult = data\n this.#selectError = null\n } catch (selectError) {\n this.#selectError = selectError as TError\n }\n }\n }\n\n if (this.#selectError) {\n error = this.#selectError\n data = this.#selectResult\n errorUpdatedAt = Date.now()\n status = 'error'\n }\n\n const isFetching = newState.fetchStatus === 'fetching'\n const isPending = status === 'pending'\n const isError = status === 'error'\n\n const isLoading = isPending && isFetching\n const hasData = data !== undefined\n\n const result: QueryObserverBaseResult<TData, TError> = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount:\n newState.dataUpdateCount > queryInitialState.dataUpdateCount ||\n newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === 'paused',\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false,\n }\n\n const nextResult = result as QueryObserverResult<TData, TError>\n\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== undefined\n const isErrorWithoutData = nextResult.status === 'error' && !hasResultData\n const finalizeThenableIfPossible = (thenable: PendingThenable<TData>) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error)\n } else if (hasResultData) {\n thenable.resolve(nextResult.data as TData)\n }\n }\n\n /**\n * Create a new thenable and result promise when the results have changed\n */\n const recreateThenable = () => {\n const pending =\n (this.#currentThenable =\n nextResult.promise =\n pendingThenable())\n\n finalizeThenableIfPossible(pending)\n }\n\n const prevThenable = this.#currentThenable\n switch (prevThenable.status) {\n case 'pending':\n // Finalize the previous thenable if it was pending\n // and we are still observing the same query\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable)\n }\n break\n case 'fulfilled':\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable()\n }\n break\n case 'rejected':\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable()\n }\n break\n }\n }\n\n return nextResult\n }\n\n updateResult(): void {\n const prevResult = this.#currentResult as\n | QueryObserverResult<TData, TError>\n | undefined\n\n const nextResult = this.createResult(this.#currentQuery, this.options)\n\n this.#currentResultState = this.#currentQuery.state\n this.#currentResultOptions = this.options\n\n if (this.#currentResultState.data !== undefined) {\n this.#lastQueryWithDefinedData = this.#currentQuery\n }\n\n // Only notify and update result if something has changed\n if (shallowEqualObjects(nextResult, prevResult)) {\n return\n }\n\n this.#currentResult = nextResult\n\n const shouldNotifyListeners = (): boolean => {\n if (!prevResult) {\n return true\n }\n\n const { notifyOnChangeProps } = this.options\n const notifyOnChangePropsValue =\n typeof notifyOnChangeProps === 'function'\n ? notifyOnChangeProps()\n : notifyOnChangeProps\n\n if (\n notifyOnChangePropsValue === 'all' ||\n (!notifyOnChangePropsValue && !this.#trackedProps.size)\n ) {\n return true\n }\n\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps,\n )\n\n if (this.options.throwOnError) {\n includedProps.add('error')\n }\n\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key as keyof QueryObserverResult\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey]\n\n return changed && includedProps.has(typedKey)\n })\n }\n\n this.#notify({ listeners: shouldNotifyListeners() })\n }\n\n #updateQuery(): void {\n const query = this.#client.getQueryCache().build(this.#client, this.options)\n\n if (query === this.#currentQuery) {\n return\n }\n\n const prevQuery = this.#currentQuery as\n | Query<TQueryFnData, TError, TQueryData, TQueryKey>\n | undefined\n this.#currentQuery = query\n this.#currentQueryInitialState = query.state\n\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this)\n query.addObserver(this)\n }\n }\n\n onQueryUpdate(): void {\n this.updateResult()\n\n if (this.hasListeners()) {\n this.#updateTimers()\n }\n }\n\n #notify(notifyOptions: { listeners: boolean }): void {\n notifyManager.batch(() => {\n // First, trigger the listeners\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n }\n\n // Then the cache listeners\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: 'observerResultsUpdated',\n })\n })\n }\n}\n\nfunction shouldLoadOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any>,\n): boolean {\n return (\n resolveEnabled(options.enabled, query) !== false &&\n query.state.data === undefined &&\n !(query.state.status === 'error' && options.retryOnMount === false)\n )\n}\n\nfunction shouldFetchOnMount(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n shouldLoadOnMount(query, options) ||\n (query.state.data !== undefined &&\n shouldFetchOn(query, options, options.refetchOnMount))\n )\n}\n\nfunction shouldFetchOn(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n field: (typeof options)['refetchOnMount'] &\n (typeof options)['refetchOnWindowFocus'] &\n (typeof options)['refetchOnReconnect'],\n) {\n if (\n resolveEnabled(options.enabled, query) !== false &&\n resolveStaleTime(options.staleTime, query) !== 'static'\n ) {\n const value = typeof field === 'function' ? field(query) : field\n\n return value === 'always' || (value !== false && isStale(query, options))\n }\n return false\n}\n\nfunction shouldFetchOptionally(\n query: Query<any, any, any, any>,\n prevQuery: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n prevOptions: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n (query !== prevQuery ||\n resolveEnabled(prevOptions.enabled, query) === false) &&\n (!options.suspense || query.state.status !== 'error') &&\n isStale(query, options)\n )\n}\n\nfunction isStale(\n query: Query<any, any, any, any>,\n options: QueryObserverOptions<any, any, any, any, any>,\n): boolean {\n return (\n resolveEnabled(options.enabled, query) !== false &&\n query.isStaleByTime(resolveStaleTime(options.staleTime, query))\n )\n}\n\n// this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\nfunction shouldAssignObserverCurrentProperties<\n TQueryFnData = unknown,\n TError = unknown,\n TData = TQueryFnData,\n TQueryData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n>(\n observer: QueryObserver<TQueryFnData, TError, TData, TQueryData, TQueryKey>,\n optimisticResult: QueryObserverResult<TData, TError>,\n) {\n // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true\n }\n\n // basically, just keep previous properties if nothing changed\n return false\n}\n","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import { useMemo } from 'react';\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';\nimport { GitStatus, GitLog, Repository, AppSettings, FileDiffPayload, BranchTrackingInfo, GitError, GitWorktree, GitConflictState } from '@/lib/types';\nimport { showGitErrorToast } from './use-toast';\n\nconst API_BASE = '/api';\n\nexport function useSettings() {\n return useQuery<AppSettings & { resolvedDefaultFolder: string }>({\n queryKey: ['settings'],\n queryFn: async () => {\n const res = await fetch(`${API_BASE}/settings`);\n if (!res.ok) throw new Error('Failed to fetch settings');\n return res.json();\n },\n });\n}\n\nexport function useUpdateSettings() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (updates: Partial<AppSettings>) => {\n const res = await fetch(`${API_BASE}/settings`, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(updates),\n });\n if (!res.ok) throw new Error('Failed to update settings');\n return res.json();\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['settings'] });\n },\n });\n}\n\nexport function useRepositories() {\n return useQuery<Repository[]>({\n queryKey: ['repos'],\n queryFn: async () => {\n const res = await fetch(`${API_BASE}/repos`);\n if (!res.ok) throw new Error('Failed to fetch repositories');\n return res.json();\n },\n });\n}\n\nexport function useRepository(repoPath: string | null) {\n const { data: repos } = useRepositories();\n return useMemo(() => \n repos?.find(r => r.path === repoPath) || null,\n [repos, repoPath]);\n}\n\nexport function useAddRepository() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async ({ path, name, initializeIfNeeded }: { path: string; name?: string; initializeIfNeeded?: boolean }) => {\n const res = await fetch(`${API_BASE}/repos`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ path, name, initializeIfNeeded }),\n });\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n throw new Error(errorData.error || 'Failed to add repository');\n }\n return res.json();\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['repos'] });\n },\n });\n}\n\ninterface CloneRepositoryParams {\n repoUrl: string;\n destinationParent: string;\n folderName?: string;\n credentialId?: string | null;\n}\n\ninterface CloneRepositoryResponse extends Repository {\n usedCredentialId: string | null;\n}\n\nexport function useCloneRepository() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (params: CloneRepositoryParams): Promise<CloneRepositoryResponse> => {\n const res = await fetch(`${API_BASE}/repos/clone`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(params),\n });\n const data = await res.json().catch(() => ({}));\n if (!res.ok) {\n throw new Error(data.error || 'Failed to clone repository');\n }\n return data;\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['repos'] });\n },\n });\n}\n\nexport function useUpdateRepository() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async ({ path, updates }: { path: string; updates: Partial<Repository> }) => {\n const res = await fetch(`${API_BASE}/repos`, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ path, updates }),\n });\n if (!res.ok) throw new Error(await res.text());\n return res.json();\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['repos'] });\n },\n });\n}\n\nexport function useDeleteRepository() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async ({ path, deleteLocalFolder = false }: { path: string; deleteLocalFolder?: boolean }) => {\n const res = await fetch(`${API_BASE}/repos`, {\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ path, deleteLocalFolder }),\n });\n if (!res.ok) throw new Error(await res.text());\n return res.json();\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['repos'] });\n },\n });\n}\n\n\nexport function useGitStatus(repoPath: string | null) {\n return useQuery<GitStatus>({\n queryKey: ['git', repoPath, 'status'],\n queryFn: async () => {\n if (!repoPath) return null;\n const res = await fetch(`${API_BASE}/git/status?path=${encodeURIComponent(repoPath)}`);\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch status') as GitError;\n err.status = res.status;\n throw err;\n }\n return res.json();\n },\n enabled: !!repoPath,\n refetchOnWindowFocus: true,\n refetchOnReconnect: true,\n retry: (failureCount, error: GitError) => {\n // Don't retry for 404 or 400 errors\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\nexport function useGitConflictState(repoPath: string | null) {\n return useQuery<GitConflictState>({\n queryKey: ['git', repoPath, 'conflict-state'],\n queryFn: async () => {\n if (!repoPath) {\n return {\n operation: null,\n conflictedFiles: [],\n hasConflicts: false,\n canContinue: false,\n };\n }\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ repoPath, action: 'get-conflict-state' }),\n });\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch conflict state') as GitError;\n err.status = res.status;\n throw err;\n }\n const data = await res.json();\n return {\n operation: data.operation ?? null,\n conflictedFiles: data.conflictedFiles ?? [],\n hasConflicts: Boolean(data.hasConflicts),\n canContinue: Boolean(data.canContinue),\n };\n },\n enabled: !!repoPath,\n refetchOnWindowFocus: true,\n refetchOnReconnect: true,\n retry: (failureCount, error: GitError) => {\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\nexport interface GitConflictFileVersions {\n ours: string;\n theirs: string;\n current: string;\n}\n\nexport function useGitConflictFileVersions(repoPath: string | null, filePath: string | null) {\n return useQuery<GitConflictFileVersions>({\n queryKey: ['git', repoPath, 'conflict-file-versions', filePath],\n queryFn: async () => {\n if (!repoPath || !filePath) {\n return { ours: '', theirs: '', current: '' };\n }\n\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n repoPath,\n action: 'get-conflict-file-versions',\n data: { path: filePath },\n }),\n });\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch conflict file versions') as GitError;\n err.status = res.status;\n throw err;\n }\n const data = await res.json();\n return {\n ours: typeof data.ours === 'string' ? data.ours : '',\n theirs: typeof data.theirs === 'string' ? data.theirs : '',\n current: typeof data.current === 'string' ? data.current : '',\n };\n },\n enabled: !!repoPath && !!filePath,\n refetchOnWindowFocus: true,\n refetchOnReconnect: true,\n retry: (failureCount, error: GitError) => {\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\nexport function useGitLog(repoPath: string | null, limit: number = 50) {\n return useQuery<GitLog>({\n queryKey: ['git', repoPath, 'log', limit],\n queryFn: async () => {\n if (!repoPath) return null;\n const res = await fetch(`${API_BASE}/git/log?path=${encodeURIComponent(repoPath)}&limit=${limit}`);\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch log') as GitError;\n err.status = res.status;\n throw err;\n }\n return res.json();\n },\n enabled: !!repoPath,\n placeholderData: (previousData) => previousData,\n retry: (failureCount, error: GitError) => {\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\nexport function useGitBranches(repoPath: string | null) {\n return useQuery<{ \n branches: string[], \n current: string, \n branchCommits: Record<string, string>, \n remotes: Record<string, string[]>,\n remoteUrls: Record<string, string>,\n trackingInfo: Record<string, BranchTrackingInfo>,\n worktrees: GitWorktree[],\n }>({\n queryKey: ['git', repoPath, 'branches'],\n queryFn: async () => {\n if (!repoPath) return null;\n const res = await fetch(`${API_BASE}/git/branches?path=${encodeURIComponent(repoPath)}`);\n if (!res.ok) {\n throw new Error('Failed to fetch branches');\n }\n return res.json();\n },\n enabled: !!repoPath,\n });\n}\n\nexport function useGitDiff(repoPath: string | null, filePath: string | null) {\n return useQuery<FileDiffPayload>({\n queryKey: ['git', repoPath, 'diff', filePath],\n queryFn: async () => {\n if (!repoPath || !filePath) return null;\n const res = await fetch(`${API_BASE}/git/diff?path=${encodeURIComponent(repoPath)}&file=${encodeURIComponent(filePath)}`);\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch diff') as GitError;\n err.status = res.status;\n throw err;\n }\n return res.json();\n },\n enabled: !!repoPath && !!filePath,\n retry: (failureCount, error: GitError) => {\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\nexport interface CommitFile {\n path: string;\n status: string;\n additions: number;\n deletions: number;\n}\n\nexport interface CommitDiffQuery {\n commitHash?: string | null;\n fromCommitHash?: string | null;\n toCommitHash?: string | null;\n}\n\nexport function useCommitDiff(repoPath: string | null, query: CommitDiffQuery) {\n const commitHash = query.commitHash ?? null;\n const fromCommitHash = query.fromCommitHash ?? null;\n const toCommitHash = query.toCommitHash ?? null;\n const hasRange = !!fromCommitHash && !!toCommitHash;\n const hasSingleCommit = !!commitHash;\n\n return useQuery<{ files: CommitFile[]; diff: string }>({\n queryKey: ['git', repoPath, 'commit-diff', commitHash, fromCommitHash, toCommitHash],\n queryFn: async () => {\n if (!repoPath) return null;\n if (!hasSingleCommit && !hasRange) return null;\n\n const params = new URLSearchParams({ path: repoPath });\n if (hasSingleCommit) {\n params.set('commit', commitHash);\n } else if (hasRange) {\n params.set('from', fromCommitHash);\n params.set('to', toCommitHash);\n }\n\n const res = await fetch(`${API_BASE}/git/diff?${params.toString()}`);\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch commit diff') as GitError;\n err.status = res.status;\n throw err;\n }\n return res.json();\n },\n enabled: !!repoPath && (hasSingleCommit || hasRange),\n retry: (failureCount, error: GitError) => {\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\nexport function useCommitFileDiff(repoPath: string | null, filePath: string | null, query: CommitDiffQuery) {\n const commitHash = query.commitHash ?? null;\n const fromCommitHash = query.fromCommitHash ?? null;\n const toCommitHash = query.toCommitHash ?? null;\n const hasRange = !!fromCommitHash && !!toCommitHash;\n const hasSingleCommit = !!commitHash;\n\n return useQuery<FileDiffPayload>({\n queryKey: ['git', repoPath, 'commit-file-diff', filePath, commitHash, fromCommitHash, toCommitHash],\n queryFn: async () => {\n if (!repoPath || !filePath) return null;\n if (!hasSingleCommit && !hasRange) return null;\n\n const params = new URLSearchParams({\n path: repoPath,\n file: filePath,\n });\n if (hasSingleCommit) {\n params.set('commit', commitHash);\n } else if (hasRange) {\n params.set('from', fromCommitHash);\n params.set('to', toCommitHash);\n }\n\n const res = await fetch(`${API_BASE}/git/diff?${params.toString()}`);\n if (!res.ok) {\n const errorData = await res.json().catch(() => ({}));\n const err = new Error(errorData.error || 'Failed to fetch file diff') as GitError;\n err.status = res.status;\n throw err;\n }\n return res.json();\n },\n enabled: !!repoPath && !!filePath && (hasSingleCommit || hasRange),\n retry: (failureCount, error: GitError) => {\n if (error.status === 404 || error.status === 400) return false;\n return failureCount < 3;\n },\n });\n}\n\n// Stash types\nexport interface GitStash {\n index: number;\n message: string;\n date: string;\n hash: string;\n}\n\nexport function useGitStashes(repoPath: string | null) {\n return useQuery<GitStash[]>({\n queryKey: ['git', repoPath, 'stashes'],\n queryFn: async () => {\n if (!repoPath) return [];\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ repoPath, action: 'stash-list' }),\n });\n if (!res.ok) {\n throw new Error('Failed to fetch stashes');\n }\n const data = await res.json();\n return data.stashes || [];\n },\n enabled: !!repoPath,\n });\n}\n\nexport interface StashFile {\n path: string;\n status: string;\n}\n\nexport function useStashFiles(repoPath: string | null, stashIndex: number | null) {\n return useQuery<StashFile[]>({\n queryKey: ['git', repoPath, 'stash-files', stashIndex],\n queryFn: async () => {\n if (!repoPath || stashIndex === null) return [];\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ repoPath, action: 'stash-files', data: { index: stashIndex } }),\n });\n if (!res.ok) {\n throw new Error('Failed to fetch stash files');\n }\n const data = await res.json();\n return data.files || [];\n },\n enabled: !!repoPath && stashIndex !== null,\n });\n}\n\nexport function useStashFileDiff(repoPath: string | null, stashIndex: number | null, filePath: string | null) {\n return useQuery<FileDiffPayload>({\n queryKey: ['git', repoPath, 'stash-file-diff', stashIndex, filePath],\n queryFn: async () => {\n if (!repoPath || stashIndex === null || !filePath) return { left: '', right: '', diff: '' };\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ repoPath, action: 'stash-file-diff', data: { index: stashIndex, file: filePath } }),\n });\n if (!res.ok) {\n throw new Error('Failed to fetch stash file diff');\n }\n return res.json();\n },\n enabled: !!repoPath && stashIndex !== null && !!filePath,\n });\n}\n\n// Actions\nexport type GitActionType = 'commit' | 'push' | 'pull' | 'fetch' | 'stage' | 'unstage' | 'checkout' | 'checkout-to-local' | 'branch' | 'create-tag' | 'delete-branch' | 'delete-worktree' | 'delete-remote-branch' | 'delete-remote' | 'delete-tag' | 'delete-remote-tag' | 'rename-branch' | 'rename-remote-branch' | 'rename-remote' | 'add-remote' | 'reset' | 'revert' | 'cherry-pick' | 'cherry-pick-multiple' | 'cherry-pick-abort' | 'rebase' | 'merge' | 'check-merge-conflicts' | 'check-rebase-conflicts' | 'get-conflict-state' | 'get-conflict-file-versions' | 'resolve-conflict-file' | 'continue-merge' | 'abort-merge' | 'continue-rebase' | 'abort-rebase' | 'get-remotes' | 'get-remote-branches' | 'get-tracking-branch' | 'get-latest-commit-message' | 'push-to-remote' | 'pull-from-remote' | 'stash' | 'stash-apply' | 'stash-drop' | 'stash-pop' | 'reword' | 'discard' | 'cleanup-lock-file';\n\n// Map action types to human-readable operation names\nconst actionOperationNames: Record<GitActionType, string> = {\n 'commit': 'Commit',\n 'push': 'Push',\n 'pull': 'Pull',\n 'fetch': 'Fetch',\n 'stage': 'Stage',\n 'unstage': 'Unstage',\n 'checkout': 'Checkout',\n 'checkout-to-local': 'Checkout',\n 'branch': 'Create Branch',\n 'create-tag': 'Create Tag',\n 'delete-branch': 'Delete Branch',\n 'delete-worktree': 'Delete Worktree',\n 'delete-remote-branch': 'Delete Remote Branch',\n 'delete-remote': 'Delete Remote',\n 'delete-tag': 'Delete Tag',\n 'delete-remote-tag': 'Delete Remote Tag',\n 'rename-branch': 'Rename Branch',\n 'rename-remote-branch': 'Rename Remote Branch',\n 'rename-remote': 'Rename Remote',\n 'add-remote': 'Add Remote',\n 'reset': 'Reset',\n 'revert': 'Revert Commit',\n 'cherry-pick': 'Cherry Pick',\n 'cherry-pick-multiple': 'Cherry Pick',\n 'cherry-pick-abort': 'Cherry Pick',\n 'rebase': 'Rebase',\n 'merge': 'Merge',\n 'check-merge-conflicts': 'Check Merge Conflicts',\n 'check-rebase-conflicts': 'Check Rebase Conflicts',\n 'get-conflict-state': 'Get Conflict State',\n 'get-conflict-file-versions': 'Get Conflict File Versions',\n 'resolve-conflict-file': 'Resolve Conflict File',\n 'continue-merge': 'Continue Merge',\n 'abort-merge': 'Abort Merge',\n 'continue-rebase': 'Continue Rebase',\n 'abort-rebase': 'Abort Rebase',\n 'get-remotes': 'Get Remotes',\n 'get-remote-branches': 'Get Remote Branches',\n 'get-tracking-branch': 'Get Tracking Branch',\n 'get-latest-commit-message': 'Get Latest Commit Message',\n 'push-to-remote': 'Push',\n 'pull-from-remote': 'Pull',\n 'stash': 'Stash',\n 'stash-apply': 'Apply Stash',\n 'stash-drop': 'Drop Stash',\n 'stash-pop': 'Pop Stash',\n 'reword': 'Reword Commit',\n 'discard': 'Discard Changes',\n 'cleanup-lock-file': 'Cleanup Lock File',\n};\n\nconst READ_ONLY_ACTIONS: readonly GitActionType[] = [\n 'check-merge-conflicts',\n 'check-rebase-conflicts',\n 'get-conflict-state',\n 'get-conflict-file-versions',\n 'get-remotes',\n 'get-remote-branches',\n 'get-tracking-branch',\n 'get-latest-commit-message'\n];\n\ninterface GitActionPayload {\n repoPath: string;\n action: GitActionType;\n data?: any;\n suppressErrorToast?: boolean;\n}\n\nasync function cleanupLockFile(repoPath: string) {\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ repoPath, action: 'cleanup-lock-file' }),\n });\n if (!res.ok) {\n throw new Error('Failed to cleanup lock file');\n }\n return res.json();\n}\n\nexport function useGitAction() {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async ({ repoPath, action, data }: GitActionPayload) => {\n const res = await fetch(`${API_BASE}/git/action`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ repoPath, action, data }),\n });\n if (!res.ok) {\n const error = await res.json();\n throw new Error(error.error || 'Failed to execute action');\n }\n return res.json();\n },\n onSuccess: (_, variables) => {\n // Don't invalidate for read-only actions\n if (!READ_ONLY_ACTIONS.includes(variables.action)) {\n // Invalidate relevant queries\n queryClient.invalidateQueries({ queryKey: ['git', variables.repoPath] });\n }\n },\n onError: (error: Error, variables) => {\n // Show error toast for git operations (except read-only actions)\n if (!READ_ONLY_ACTIONS.includes(variables.action) && !variables.suppressErrorToast) {\n const operationName = actionOperationNames[variables.action] || variables.action;\n\n // Check for lock file error\n if (error.message.includes('Unable to create') && error.message.includes('.git/index.lock')) {\n showGitErrorToast(error, {\n operation: operationName,\n fixLabel: 'Remove Lock File',\n onFix: async () => {\n await cleanupLockFile(variables.repoPath);\n // Invalidate queries to refresh status\n queryClient.invalidateQueries({ queryKey: ['git', variables.repoPath] });\n }\n });\n } else {\n showGitErrorToast(error, { operation: operationName });\n }\n }\n },\n });\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nexport const concatArrays = <T, U>(\n array1: readonly T[],\n array2: readonly U[],\n): readonly (T | U)[] => {\n // Pre-allocate for better V8 optimization\n const combinedArray: (T | U)[] = new Array(array1.length + array2.length)\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i]!\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i]!\n }\n return combinedArray\n}\n","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\nimport type { Repository } from './types';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function getRepoFolderName(repoPath: string): string {\n const normalizedPath = repoPath.replace(/[\\\\/]+$/, '');\n const segments = normalizedPath.split(/[/\\\\]/).filter(Boolean);\n return segments[segments.length - 1] || repoPath;\n}\n\nexport function getRepositoryDisplayName(repo: Pick<Repository, 'path' | 'name' | 'displayName'>): string {\n const customName = repo.displayName?.trim();\n if (customName) {\n return customName;\n }\n\n if (repo.name?.trim()) {\n return repo.name;\n }\n\n return getRepoFolderName(repo.path);\n}\n\nfunction getNormalizedExtension(filePath: string): string {\n if (!filePath) return '';\n\n const fileName = filePath.split('/').pop() || '';\n const lastDotIndex = fileName.lastIndexOf('.');\n\n if (lastDotIndex === -1 || lastDotIndex === 0) {\n return fileName.toLowerCase();\n }\n\n return fileName.slice(lastDotIndex + 1).toLowerCase();\n}\n\n// Known text-based file extensions\nconst TEXT_EXTENSIONS = new Set([\n // Programming languages\n 'js', 'jsx', 'ts', 'tsx', 'mjs', 'cjs', 'mts', 'cts',\n 'py', 'pyw', 'pyi', 'pyx',\n 'rb', 'rake', 'gemspec',\n 'java', 'kt', 'kts', 'scala', 'sc', 'groovy', 'gradle',\n 'c', 'h', 'cpp', 'cc', 'cxx', 'hpp', 'hh', 'hxx', 'c++', 'h++',\n 'cs', 'fs', 'fsx', 'fsi',\n 'go', 'rs', 'swift', 'dart', 'zig', 'nim', 'v', 'odin',\n 'php', 'phtml', 'php3', 'php4', 'php5', 'php7', 'phps',\n 'pl', 'pm', 'pod', 't', 'psgi',\n 'lua', 'tcl', 'r', 'R', 'jl', 'ex', 'exs', 'erl', 'hrl',\n 'clj', 'cljs', 'cljc', 'edn', 'lisp', 'lsp', 'el', 'scm', 'ss', 'rkt',\n 'hs', 'lhs', 'elm', 'purs', 'ml', 'mli', 'f90', 'f95', 'f03', 'f08', 'for',\n 'asm', 's', 'S', 'vhd', 'vhdl', 'v', 'sv', 'svh',\n 'bas', 'vb', 'vbs', 'vba',\n 'pas', 'pp', 'inc', 'dpr', 'dpk',\n 'sh', 'bash', 'zsh', 'fish', 'ksh', 'csh', 'tcsh', 'ps1', 'psm1', 'psd1', 'bat', 'cmd',\n // Web\n 'html', 'htm', 'xhtml', 'shtml',\n 'css', 'scss', 'sass', 'less', 'styl', 'stylus', 'pcss', 'postcss',\n 'svg', 'xml', 'xsl', 'xslt', 'xsd', 'dtd', 'rss', 'atom', 'rdf', 'wsdl', 'soap',\n 'vue', 'svelte', 'astro', 'mdx',\n 'hbs', 'handlebars', 'mustache', 'ejs', 'pug', 'jade', 'haml', 'slim', 'erb',\n 'graphql', 'gql',\n // Data & Config\n 'json', 'json5', 'jsonc', 'jsonl', 'ndjson', 'geojson',\n 'yaml', 'yml',\n 'toml', 'ini', 'cfg', 'conf', 'config', 'properties', 'env',\n 'csv', 'tsv', 'psv',\n 'txt', 'text', 'log', 'out',\n 'md', 'markdown', 'mdown', 'mkd', 'mkdn', 'mdwn', 'rst', 'rest', 'adoc', 'asciidoc', 'asc',\n 'org', 'tex', 'latex', 'ltx', 'bib', 'sty', 'cls',\n 'rtf', 'diff', 'patch',\n // Version control & Build\n 'gitignore', 'gitattributes', 'gitmodules', 'gitconfig',\n 'dockerignore', 'dockerfile', 'containerfile',\n 'editorconfig', 'prettierrc', 'eslintrc', 'babelrc', 'stylelintrc', 'browserslistrc',\n 'npmrc', 'nvmrc', 'yarnrc', 'pnpmfile',\n 'makefile', 'mk', 'cmake', 'make', 'mak', 'rake', 'podfile', 'gemfile', 'fastfile',\n // Other\n 'sql', 'plsql', 'pgsql', 'mysql', 'sqlite', 'hql', 'cql',\n 'proto', 'protobuf', 'thrift', 'avro', 'capnp', 'fbs', 'flatc',\n 'tf', 'tfvars', 'hcl', 'nomad', 'sentinel',\n 'prisma', 'graphqls',\n 'lock', // package-lock.json, yarn.lock, etc.\n]);\n\n// Known binary file extensions\nconst BINARY_EXTENSIONS = new Set([\n // Images\n 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'ico', 'icns', 'tiff', 'tif', 'webp', 'avif', 'heic', 'heif',\n 'psd', 'ai', 'eps', 'raw', 'cr2', 'nef', 'orf', 'sr2', 'dng',\n // Video\n 'mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm', 'm4v', 'mpeg', 'mpg', '3gp', '3g2', 'ogv',\n // Audio\n 'mp3', 'wav', 'ogg', 'oga', 'flac', 'aac', 'm4a', 'wma', 'aiff', 'aif', 'mid', 'midi', 'opus',\n // Archives\n 'zip', 'rar', '7z', 'tar', 'gz', 'bz2', 'xz', 'lz', 'lzma', 'lz4', 'zst', 'cab', 'iso', 'dmg',\n // Executables & Libraries\n 'exe', 'dll', 'so', 'dylib', 'a', 'lib', 'obj', 'o',\n 'app', 'msi', 'deb', 'rpm', 'apk', 'ipa', 'pkg', 'snap', 'flatpak', 'appimage',\n 'class', 'jar', 'war', 'ear', 'pyc', 'pyo', 'pyd', 'beam',\n 'wasm', 'wat',\n // Documents\n 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'odt', 'ods', 'odp', 'pages', 'numbers', 'key',\n // Fonts\n 'ttf', 'otf', 'woff', 'woff2', 'eot', 'fon', 'fnt',\n // Database\n 'db', 'sqlite', 'sqlite3', 'mdb', 'accdb', 'frm', 'myd', 'myi', 'ibd',\n // Other binary formats\n 'bin', 'dat', 'data', 'sav', 'bak',\n 'swf', 'fla',\n 'blend', 'fbx', 'obj', 'stl', 'gltf', 'glb', '3ds', 'dae', 'ply',\n 'sketch', 'fig', 'xd',\n 'unity', 'unitypackage', 'asset', 'prefab', 'meta',\n]);\n\nconst IMAGE_EXTENSIONS = new Set([\n 'png', 'jpg', 'jpeg', 'gif', 'bmp', 'ico', 'icns', 'tiff', 'tif', 'webp', 'avif', 'heic', 'heif', 'svg',\n]);\n\n/**\n * Determines file type based on extension.\n * @returns 'text' | 'binary' | 'unknown'\n */\nexport function getFileTypeByExtension(filePath: string): 'text' | 'binary' | 'unknown' {\n if (!filePath) return 'unknown';\n\n const extension = getNormalizedExtension(filePath);\n \n if (TEXT_EXTENSIONS.has(extension)) {\n return 'text';\n }\n \n if (BINARY_EXTENSIONS.has(extension)) {\n return 'binary';\n }\n \n return 'unknown';\n}\n\n/**\n * Check if content appears to be binary (contains null bytes or high ratio of non-printable chars).\n * This is used as a fallback when extension-based detection is inconclusive.\n */\nexport function isBinaryContent(content: string): boolean {\n if (!content) return false;\n // Check for null bytes - strong indicator of binary content\n if (content.includes('\\0')) return true;\n // Check first 8KB for non-printable characters\n const sample = content.slice(0, 8192);\n let nonPrintable = 0;\n for (let i = 0; i < sample.length; i++) {\n const code = sample.charCodeAt(i);\n // Allow common whitespace (tab, newline, carriage return) and printable ASCII\n if (code < 32 && code !== 9 && code !== 10 && code !== 13) {\n nonPrintable++;\n }\n }\n // If more than 10% non-printable, likely binary\n return sample.length > 0 && (nonPrintable / sample.length) > 0.1;\n}\n\n/**\n * Determines if a file is binary, using extension-based detection first,\n * then falling back to content analysis if extension is unknown.\n */\nexport function isFileBinary(filePath: string, leftContent?: string, rightContent?: string): boolean {\n // First, try to determine from extension\n const fileType = getFileTypeByExtension(filePath);\n \n if (fileType === 'binary') {\n return true;\n }\n \n if (fileType === 'text') {\n return false;\n }\n \n // Extension is unknown - fall back to content analysis\n return isBinaryContent(leftContent || '') || isBinaryContent(rightContent || '');\n}\n\nexport function isImageFile(filePath: string): boolean {\n return IMAGE_EXTENSIONS.has(getNormalizedExtension(filePath));\n}\n\nexport function getImageMimeType(filePath: string): string {\n const extension = getNormalizedExtension(filePath);\n\n switch (extension) {\n case 'jpg':\n case 'jpeg':\n return 'image/jpeg';\n case 'png':\n return 'image/png';\n case 'gif':\n return 'image/gif';\n case 'bmp':\n return 'image/bmp';\n case 'ico':\n return 'image/x-icon';\n case 'icns':\n return 'image/icns';\n case 'tiff':\n case 'tif':\n return 'image/tiff';\n case 'webp':\n return 'image/webp';\n case 'avif':\n return 'image/avif';\n case 'heic':\n return 'image/heic';\n case 'heif':\n return 'image/heif';\n case 'svg':\n return 'image/svg+xml';\n default:\n return 'application/octet-stream';\n }\n}\n\n/**\n * Counts changed lines in a unified git patch.\n * Includes added/removed lines and skips file header markers.\n */\nexport function getChangedLineCountFromDiff(diff: string | null | undefined): number {\n if (!diff) return 0;\n\n return diff.split('\\n').reduce((count, line) => {\n if (line.startsWith('+++ ') || line.startsWith('--- ')) {\n return count;\n }\n\n if (line.startsWith('+') || line.startsWith('-')) {\n return count + 1;\n }\n\n return count;\n }, 0);\n}\n\n/**\n * Sanitizes a branch name by replacing illegal Git branch name characters with \"-\".\n * Git branch names cannot contain:\n * - Space, ~, ^, :, ?, *, [, \\, control characters\n * - Double dots (..)\n * - @{ sequence\n * - Leading/trailing dots or slashes\n * - Consecutive slashes\n */\nexport function sanitizeBranchName(name: string): string {\n const sanitized = name\n // Replace illegal characters with \"-\"\n .replace(/[\\s~^:?*\\[\\]\\\\@{}<>|\"'`!#$%&()+=;,]/g, '-')\n // Replace double dots with single dash\n .replace(/\\.{2,}/g, '-')\n // Replace consecutive slashes with single slash\n .replace(/\\/{2,}/g, '/')\n // Replace consecutive dashes with single dash\n .replace(/-{2,}/g, '-');\n \n return sanitized;\n}\n","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\nimport { concatArrays } from './utils'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[] | null\n classGroupId: AnyClassGroupIds | undefined // Always define optional props for consistent shape\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (\n classGroupId: AnyClassGroupIds,\n validator: ClassValidator,\n): ClassValidatorObject => ({\n classGroupId,\n validator,\n})\n\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (\n nextPart: Map<string, ClassPartObject> = new Map(),\n validators: ClassValidatorObject[] | null = null,\n classGroupId?: AnyClassGroupIds,\n): ClassPartObject => ({\n nextPart,\n validators,\n classGroupId,\n})\n\nconst CLASS_PART_SEPARATOR = '-'\n\nconst EMPTY_CONFLICTS: readonly AnyClassGroupIds[] = []\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className)\n }\n\n const classParts = className.split(CLASS_PART_SEPARATOR)\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0\n return getGroupRecursive(classParts, startIndex, classMap)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ): readonly AnyClassGroupIds[] => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId]\n const baseConflicts = conflictingClassGroups[classGroupId]\n\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts)\n }\n // Only modifier conflicts\n return modifierConflicts\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS\n }\n\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n startIndex: number,\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n const classPathsLength = classParts.length - startIndex\n if (classPathsLength === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[startIndex]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject)\n if (result) return result\n }\n\n const validators = classPartObject.validators\n if (validators === null) {\n return undefined\n }\n\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest =\n startIndex === 0\n ? classParts.join(CLASS_PART_SEPARATOR)\n : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR)\n const validatorsLength = validators.length\n\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i]!\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId\n }\n }\n\n return undefined\n}\n\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = (className: string): AnyClassGroupIds | undefined =>\n className.slice(1, -1).indexOf(':') === -1\n ? undefined\n : (() => {\n const content = className.slice(1, -1)\n const colonIndex = content.indexOf(':')\n const property = content.slice(0, colonIndex)\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined\n })()\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, classGroups } = config\n return processClassGroups(classGroups, theme)\n}\n\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (\n classGroups: Record<AnyClassGroupIds, ClassGroup<AnyThemeGroupIds>>,\n theme: ThemeObject<AnyThemeGroupIds>,\n): ClassPartObject => {\n const classMap = createClassPartObject()\n\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId]!\n processClassesRecursively(group, classMap, classGroupId, theme)\n }\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup<AnyThemeGroupIds>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const len = classGroup.length\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i]!\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme)\n }\n}\n\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (\n classDefinition: ClassGroup<AnyThemeGroupIds>[number],\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId)\n return\n }\n\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme)\n return\n }\n\n processObjectDefinition(\n classDefinition as Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject,\n classGroupId,\n theme,\n )\n}\n\nconst processStringDefinition = (\n classDefinition: string,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n) => {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n}\n\nconst processFunctionDefinition = (\n classDefinition: Function,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme)\n return\n }\n\n if (classPartObject.validators === null) {\n classPartObject.validators = []\n }\n classPartObject.validators.push(\n createClassValidatorObject(classGroupId, classDefinition as ClassValidator),\n )\n}\n\nconst processObjectDefinition = (\n classDefinition: Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const entries = Object.entries(classDefinition)\n const len = entries.length\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i]!\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme)\n }\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string): ClassPartObject => {\n let current = classPartObject\n const parts = path.split(CLASS_PART_SEPARATOR)\n const len = parts.length\n\n for (let i = 0; i < len; i++) {\n const part = parts[i]!\n\n let next = current.nextPart.get(part)\n if (!next) {\n next = createClassPartObject()\n current.nextPart.set(part, next)\n }\n current = next\n }\n\n return current\n}\n\n// Type guard maintains monomorphic check\nconst isThemeGetter = (func: Function): func is ThemeGetter =>\n 'isThemeGetter' in func && (func as ThemeGetter).isThemeGetter === true\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key extends string, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache implementation using plain objects for simplicity\nexport const createLruCache = <Key extends string, Value>(\n maxCacheSize: number,\n): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache: Record<Key, Value> = Object.create(null)\n let previousCache: Record<Key, Value> = Object.create(null)\n\n const update = (key: Key, value: Value) => {\n cache[key] = value\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = Object.create(null)\n }\n }\n\n return {\n get(key) {\n let value = cache[key]\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nconst MODIFIER_SEPARATOR = ':'\nconst EMPTY_MODIFIERS: string[] = []\n\n// Pre-allocated result object shape for consistency\nconst createResultObject = (\n modifiers: string[],\n hasImportantModifier: boolean,\n baseClassName: string,\n maybePostfixModifierPosition?: number,\n isExternal?: boolean,\n): ParsedClassName => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal,\n})\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { prefix, experimentalParseClassName } = config\n\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = (className: string): ParsedClassName => {\n // Use simple array with push for better performance\n const modifiers: string[] = []\n\n let bracketDepth = 0\n let parenDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n const len = className.length\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index]!\n\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + 1\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') bracketDepth++\n else if (currentCharacter === ']') bracketDepth--\n else if (currentCharacter === '(') parenDepth++\n else if (currentCharacter === ')') parenDepth--\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.slice(modifierStart)\n\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier\n let hasImportantModifier = false\n\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1)\n hasImportantModifier = true\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n ) {\n baseClassName = baseClassNameWithImportantModifier.slice(1)\n hasImportantModifier = true\n }\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return createResultObject(\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n )\n }\n\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n className.startsWith(fullPrefix)\n ? parseClassNameOriginal(className.slice(fullPrefix.length))\n : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true)\n }\n\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n }\n\n return parseClassName\n}\n","import { AnyConfig } from './types'\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const createSortModifiers = (config: AnyConfig) => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map<string, number>()\n\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index) // High weights for sensitive mods\n })\n\n return (modifiers: readonly string[]): string[] => {\n const result: string[] = []\n let currentSegment: string[] = []\n\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i]!\n\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '['\n const isOrderSensitive = modifierWeights.has(modifier)\n\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n currentSegment = []\n }\n result.push(modifier)\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier)\n }\n }\n\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n }\n\n return result\n }\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { createSortModifiers } from './sort-modifiers'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache<string, string>(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } =\n configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n } = parseClassName(originalClassName)\n\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n let hasPostfixModifier = !!maybePostfixModifierPosition\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n // Fast path: skip sorting for empty or single modifier\n const variantModifier =\n modifiers.length === 0\n ? ''\n : modifiers.length === 1\n ? modifiers[0]!\n : sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport const twJoin = (...classLists: ClassNameValue[]): string => {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < classLists.length) {\n if ((argument = classLists[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string): string => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createTailwindMerge = (\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge => {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall: (classList: string) => string\n\n const initTailwindMerge = (classList: string) => {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n const tailwindMerge = (classList: string) => {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n functionToCall = initTailwindMerge\n\n return (...args: ClassNameValue[]) => functionToCall(twJoin(...args))\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nconst fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(\n key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,\n): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || fallbackThemeArr\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i\nconst fractionRegex = /^\\d+\\/\\d+$/\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isFraction = (value: string) => fractionRegex.test(value)\n\nexport const isNumber = (value: string) => !!value && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => !!value && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nexport const isAny = () => true\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n\nexport const isAnyNonArbitrary = (value: string) =>\n !isArbitraryValue(value) && !isArbitraryVariable(value)\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever)\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, isLabelLength, isLengthOnly)\n\nexport const isArbitraryNumber = (value: string) =>\n getIsArbitraryValue(value, isLabelNumber, isNumber)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, isLabelPosition, isNever)\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage)\n\nexport const isArbitraryShadow = (value: string) =>\n getIsArbitraryValue(value, isLabelShadow, isShadow)\n\nexport const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value)\n\nexport const isArbitraryVariableLength = (value: string) =>\n getIsArbitraryVariable(value, isLabelLength)\n\nexport const isArbitraryVariableFamilyName = (value: string) =>\n getIsArbitraryVariable(value, isLabelFamilyName)\n\nexport const isArbitraryVariablePosition = (value: string) =>\n getIsArbitraryVariable(value, isLabelPosition)\n\nexport const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize)\n\nexport const isArbitraryVariableImage = (value: string) =>\n getIsArbitraryVariable(value, isLabelImage)\n\nexport const isArbitraryVariableShadow = (value: string) =>\n getIsArbitraryVariable(value, isLabelShadow, true)\n\n// Helpers\n\nconst getIsArbitraryValue = (\n value: string,\n testLabel: (label: string) => boolean,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst getIsArbitraryVariable = (\n value: string,\n testLabel: (label: string) => boolean,\n shouldMatchNoLabel = false,\n) => {\n const result = arbitraryVariableRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n return shouldMatchNoLabel\n }\n\n return false\n}\n\n// Labels\n\nconst isLabelPosition = (label: string) => label === 'position' || label === 'percentage'\n\nconst isLabelImage = (label: string) => label === 'image' || label === 'url'\n\nconst isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size'\n\nconst isLabelLength = (label: string) => label === 'length'\n\nconst isLabelNumber = (label: string) => label === 'number'\n\nconst isLabelFamilyName = (label: string) => label === 'family-name'\n\nconst isLabelShadow = (label: string) => label === 'shadow'\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n\n const themeColor = fromTheme('color')\n const themeFont = fromTheme('font')\n const themeText = fromTheme('text')\n const themeFontWeight = fromTheme('font-weight')\n const themeTracking = fromTheme('tracking')\n const themeLeading = fromTheme('leading')\n const themeBreakpoint = fromTheme('breakpoint')\n const themeContainer = fromTheme('container')\n const themeSpacing = fromTheme('spacing')\n const themeRadius = fromTheme('radius')\n const themeShadow = fromTheme('shadow')\n const themeInsetShadow = fromTheme('inset-shadow')\n const themeTextShadow = fromTheme('text-shadow')\n const themeDropShadow = fromTheme('drop-shadow')\n const themeBlur = fromTheme('blur')\n const themePerspective = fromTheme('perspective')\n const themeAspect = fromTheme('aspect')\n const themeEase = fromTheme('ease')\n const themeAnimate = fromTheme('animate')\n\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n\n const scaleBreak = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const scalePosition = () =>\n [\n 'center',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top',\n 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top',\n 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom',\n 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom',\n ] as const\n const scalePositionWithArbitrary = () =>\n [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n const scaleUnambiguousSpacing = () =>\n [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] as const\n const scaleGridTemplateColsRows = () =>\n [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridColRowStartAndEnd = () =>\n [\n 'auto',\n { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleGridColRowStartOrEnd = () =>\n [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridAutoColsRows = () =>\n ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const\n const scaleAlignPrimaryAxis = () =>\n [\n 'start',\n 'end',\n 'center',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n 'center-safe',\n 'end-safe',\n ] as const\n const scaleAlignSecondaryAxis = () =>\n ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const\n const scaleSizing = () =>\n [\n isFraction,\n 'auto',\n 'full',\n 'dvw',\n 'dvh',\n 'lvw',\n 'lvh',\n 'svw',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n const scaleBgPosition = () =>\n [\n ...scalePosition(),\n isArbitraryVariablePosition,\n isArbitraryPosition,\n { position: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const\n const scaleBgSize = () =>\n [\n 'auto',\n 'cover',\n 'contain',\n isArbitraryVariableSize,\n isArbitrarySize,\n { size: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleGradientStopPosition = () =>\n [isPercent, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleRadius = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n 'full',\n themeRadius,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleBorderWidth = () =>\n ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const\n const scaleBlendMode = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const scaleMaskImagePosition = () =>\n [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] as const\n const scaleBlur = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeBlur,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] as const\n\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n ],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'],\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [\n {\n aspect: [\n 'auto',\n 'square',\n isFraction,\n isArbitraryValue,\n isArbitraryVariable,\n themeAspect,\n ],\n },\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [\n { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] },\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': scaleBreak() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': scaleBreak() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: scalePositionWithArbitrary() }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: scaleOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': scaleOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': scaleOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: scaleOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: scaleInset() }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': scaleInset() }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': scaleInset() }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{ start: scaleInset() }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{ end: scaleInset() }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: scaleInset() }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: scaleInset() }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: scaleInset() }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: scaleInset() }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [\n {\n basis: [\n isFraction,\n 'full',\n 'auto',\n themeContainer,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [\n {\n order: [\n isInteger,\n 'first',\n 'last',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{ col: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{ row: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: scaleUnambiguousSpacing() }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: [...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [\n { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] },\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: scaleUnambiguousSpacing() }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: scaleUnambiguousSpacing() }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: scaleUnambiguousSpacing() }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: scaleUnambiguousSpacing() }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: scaleUnambiguousSpacing() }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: scaleUnambiguousSpacing() }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: scaleUnambiguousSpacing() }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: scaleUnambiguousSpacing() }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: scaleUnambiguousSpacing() }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: scaleMargin() }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: scaleMargin() }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: scaleMargin() }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: scaleMargin() }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: scaleMargin() }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: scaleMargin() }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: scaleMargin() }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: scaleMargin() }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: scaleMargin() }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{ 'space-x': scaleUnambiguousSpacing() }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{ 'space-y': scaleUnambiguousSpacing() }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n\n // --------------\n // --- Sizing ---\n // --------------\n\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{ size: scaleSizing() }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [\n {\n 'min-w': [\n themeContainer,\n 'screen',\n /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none',\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n themeContainer,\n 'screen',\n 'none',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n { screen: [themeBreakpoint] },\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{ h: ['screen', 'lh', ...scaleSizing()] }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{ 'max-h': ['screen', 'lh', ...scaleSizing()] }],\n\n // ------------------\n // --- Typography ---\n // ------------------\n\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [\n { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [\n {\n 'font-stretch': [\n 'ultra-condensed',\n 'extra-condensed',\n 'condensed',\n 'semi-condensed',\n 'normal',\n 'semi-expanded',\n 'expanded',\n 'extra-expanded',\n 'ultra-expanded',\n isPercent,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [\n { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] },\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [\n { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: scaleColor() }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: scaleColor() }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n {\n decoration: [\n isNumber,\n 'from-font',\n 'auto',\n isArbitraryVariable,\n isArbitraryLength,\n ],\n },\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: scaleColor() }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [\n { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: scaleUnambiguousSpacing() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // -------------------\n // --- Backgrounds ---\n // -------------------\n\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: scaleBgPosition() }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: scaleBgRepeat() }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: scaleBgSize() }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n {\n linear: [\n { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue],\n },\n isArbitraryVariableImage,\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: scaleColor() }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: scaleColor() }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: scaleColor() }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: scaleColor() }],\n\n // ---------------\n // --- Borders ---\n // ---------------\n\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: scaleRadius() }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': scaleRadius() }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': scaleRadius() }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': scaleRadius() }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': scaleRadius() }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': scaleRadius() }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': scaleRadius() }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': scaleRadius() }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': scaleRadius() }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': scaleRadius() }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': scaleRadius() }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': scaleRadius() }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': scaleRadius() }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': scaleRadius() }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': scaleRadius() }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: scaleBorderWidth() }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': scaleBorderWidth() }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': scaleBorderWidth() }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': scaleBorderWidth() }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': scaleBorderWidth() }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': scaleBorderWidth() }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': scaleBorderWidth() }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': scaleBorderWidth() }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': scaleBorderWidth() }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{ 'divide-x': scaleBorderWidth() }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{ 'divide-y': scaleBorderWidth() }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: scaleColor() }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': scaleColor() }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': scaleColor() }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': scaleColor() }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': scaleColor() }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': scaleColor() }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': scaleColor() }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': scaleColor() }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': scaleColor() }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: scaleColor() }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [\n { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [\n { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: scaleColor() }],\n\n // ---------------\n // --- Effects ---\n // ---------------\n\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [\n {\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{ shadow: scaleColor() }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [\n {\n 'inset-shadow': [\n 'none',\n themeInsetShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{ 'inset-shadow': scaleColor() }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{ ring: scaleBorderWidth() }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{ ring: scaleColor() }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{ 'ring-offset': scaleColor() }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{ 'inset-ring': scaleColor() }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [\n {\n 'text-shadow': [\n 'none',\n themeTextShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{ 'text-shadow': scaleColor() }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': scaleBlendMode() }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [\n { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n 'mask-no-clip',\n ],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }],\n 'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }],\n 'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }],\n 'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }],\n 'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }],\n 'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }],\n 'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }],\n 'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }],\n 'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }],\n 'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }],\n 'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }],\n 'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }],\n 'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }],\n 'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }],\n 'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }],\n 'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }],\n 'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }],\n 'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }],\n 'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }],\n 'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }],\n 'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }],\n 'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }],\n 'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }],\n 'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }],\n 'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }],\n 'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }],\n 'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }],\n 'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }],\n 'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }],\n 'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }],\n 'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }],\n 'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }],\n 'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }],\n 'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }],\n 'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }],\n 'mask-image-radial-size': [\n { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] },\n ],\n 'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }],\n 'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }],\n 'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }],\n 'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }],\n 'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }],\n 'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [\n { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n ],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{ mask: scaleBgPosition() }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{ mask: scaleBgRepeat() }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{ mask: scaleBgSize() }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // ---------------\n // --- Filters ---\n // ---------------\n\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [\n {\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: scaleBlur() }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [\n {\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeDropShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{ 'drop-shadow': scaleColor() }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [\n {\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [\n { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [\n { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [\n { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [\n { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [\n { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [\n { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [\n { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [\n { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n\n // --------------\n // --- Tables ---\n // --------------\n\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n '',\n 'all',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{ transition: ['normal', 'discrete'] }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [\n { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------\n // --- Transforms ---\n // ------------------\n\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{ backface: ['hidden', 'visible'] }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [\n { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{ 'perspective-origin': scalePositionWithArbitrary() }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: scaleRotate() }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{ 'rotate-x': scaleRotate() }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{ 'rotate-y': scaleRotate() }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{ 'rotate-z': scaleRotate() }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: scaleScale() }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': scaleScale() }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': scaleScale() }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{ 'scale-z': scaleScale() }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{ skew: scaleSkew() }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': scaleSkew() }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': scaleSkew() }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [\n { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] },\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{ origin: scalePositionWithArbitrary() }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{ transform: ['3d', 'flat'] }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{ translate: scaleTranslate() }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': scaleTranslate() }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': scaleTranslate() }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{ 'translate-z': scaleTranslate() }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: scaleColor() }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: scaleColor() }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [\n { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] },\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['auto', 'none'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', '', 'y', 'x'] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{ touch: ['auto', 'none', 'manipulation'] }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n {\n 'will-change': [\n 'auto',\n 'scroll',\n 'contents',\n 'transform',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n\n // -----------\n // --- SVG ---\n // -----------\n\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: ['none', ...scaleColor()] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [\n {\n stroke: [\n isNumber,\n isArbitraryVariableLength,\n isArbitraryLength,\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: ['none', ...scaleColor()] }],\n\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-x',\n 'border-w-y',\n 'border-w-s',\n 'border-w-e',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-x',\n 'border-color-y',\n 'border-color-s',\n 'border-color-e',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n orderSensitiveModifiers: [\n '*',\n '**',\n 'after',\n 'backdrop',\n 'before',\n 'details-content',\n 'file',\n 'first-letter',\n 'first-line',\n 'marker',\n 'placeholder',\n 'selection',\n ],\n } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { AnyConfig, ConfigExtension, NoInfer } from './types'\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nexport const mergeConfigs = <ClassGroupIds extends string, ThemeGroupIds extends string = never>(\n baseConfig: AnyConfig,\n {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {},\n }: ConfigExtension<ClassGroupIds, ThemeGroupIds>,\n) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize)\n overrideProperty(baseConfig, 'prefix', prefix)\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName)\n\n overrideConfigProperties(baseConfig.theme, override.theme)\n overrideConfigProperties(baseConfig.classGroups, override.classGroups)\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups)\n overrideConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n override.conflictingClassGroupModifiers,\n )\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers)\n\n mergeConfigProperties(baseConfig.theme, extend.theme)\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups)\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups)\n mergeConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n extend.conflictingClassGroupModifiers,\n )\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers')\n\n return baseConfig\n}\n\nconst overrideProperty = <T extends object, K extends keyof T>(\n baseObject: T,\n overrideKey: K,\n overrideValue: T[K] | undefined,\n) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue\n }\n}\n\nconst overrideConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n overrideObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key])\n }\n }\n}\n\nconst mergeConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n mergeObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key)\n }\n }\n}\n\nconst mergeArrayProperties = <Key extends string>(\n baseObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n mergeObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n key: Key,\n) => {\n const mergeValue = mergeObject[key]\n\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue\n }\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\nimport { mergeConfigs } from './merge-configs'\nimport { AnyConfig, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\n\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\n\nexport const extendTailwindMerge = <\n AdditionalClassGroupIds extends string = never,\n AdditionalThemeGroupIds extends string = never,\n>(\n configExtension:\n | ConfigExtension<\n DefaultClassGroupIds | AdditionalClassGroupIds,\n DefaultThemeGroupIds | AdditionalThemeGroupIds\n >\n | CreateConfigSubsequent,\n ...createConfig: CreateConfigSubsequent[]\n) =>\n typeof configExtension === 'function'\n ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig)\n : createTailwindMerge(\n () => mergeConfigs(getDefaultConfig(), configExtension),\n ...createConfig,\n )\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n"],"names":["concatArrays","array1","array2","combinedArray","Array","length","i","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","Map","validators","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","config","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","endsWith","getGroupIdForArbitraryProperty","classParts","split","startIndex","getGroupRecursive","classMap","getConflictingClassGroupIds","hasPostfixModifier","baseConflicts","modifierConflicts","classPartObject","classPathsLength","currentClassPart","nextClassPartObject","get","result","undefined","classRest","slice","join","validatorsLength","validatorObj","indexOf","content","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","classPartObjectToEdit","getPart","processFunctionDefinition","isThemeGetter","processObjectDefinition","Object","entries","key","value","path","current","parts","part","next","set","func","createLruCache","maxCacheSize","cacheSize","cache","create","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","push","baseClassNameWithImportantModifier","startsWith","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","orderSensitiveModifiers","forEach","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","has","sort","createConfigUtils","createParseClassName","sortModifiers","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","originalClassName","substring","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","test","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","exec","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","extend","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","concat","extendTailwindMerge","configExtension","createConfig","twMerge"],"mappings":"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","ignoreList":[0,1,5,6,7,8,9,14,15,16,17,18,19,20,21,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39]}
|