diff --git a/.pnp.cjs b/.pnp.cjs index 256c5d4b..537a3cff 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -63,6 +63,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@typescript-eslint/parser", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:5.45.0"],\ ["@use-gesture/react", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:10.2.24"],\ ["@vercel/og", "npm:0.5.3"],\ + ["@zag-js/react", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:0.22.0"],\ + ["@zag-js/tags-input", "npm:0.22.0"],\ ["autoprefixer", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:10.4.13"],\ ["axios", "npm:1.2.0"],\ ["babel-loader", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:8.3.0"],\ @@ -96,7 +98,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["storybook-addon-next-router", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:4.0.2"],\ ["tailwindcss", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:3.2.4"],\ ["twin.macro", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:3.1.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util", "npm:0.12.5"]\ ],\ "linkType": "SOFT"\ @@ -7914,7 +7916,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["style-loader", "virtual:8de62122fc7a96cdc92bd3c83415400233625d2b98abc846cf26dfb0065d02af5cc766f8e550f98bc825612a449de94bb96fdfc5eb48ebf94a944833d501bff6#npm:1.3.0"],\ ["terser-webpack-plugin", "virtual:8de62122fc7a96cdc92bd3c83415400233625d2b98abc846cf26dfb0065d02af5cc766f8e550f98bc825612a449de94bb96fdfc5eb48ebf94a944833d501bff6#npm:4.2.3"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["url-loader", "virtual:8de62122fc7a96cdc92bd3c83415400233625d2b98abc846cf26dfb0065d02af5cc766f8e550f98bc825612a449de94bb96fdfc5eb48ebf94a944833d501bff6#npm:4.1.1"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"],\ @@ -7984,7 +7986,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["style-loader", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:2.0.0"],\ ["terser-webpack-plugin", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.3.6"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"],\ ["webpack-dev-middleware", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:4.3.0"],\ @@ -8178,7 +8180,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@types/webpack", null],\ ["react", "npm:18.2.0"],\ ["react-dom", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:18.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"]\ ],\ "packagePeers": [\ @@ -8234,7 +8236,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["react-dom", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:18.2.0"],\ ["regenerator-runtime", "npm:0.13.11"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["unfetch", "npm:4.2.0"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"]\ @@ -8279,7 +8281,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["react-dom", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:18.2.0"],\ ["regenerator-runtime", "npm:0.13.11"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["unfetch", "npm:4.2.0"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"]\ @@ -8433,7 +8435,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["slash", "npm:3.0.0"],\ ["telejson", "npm:6.0.8"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"]\ ],\ @@ -8598,7 +8600,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["slash", "npm:3.0.0"],\ ["telejson", "npm:6.0.8"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util-deprecate", "npm:1.0.2"],\ ["watchpack", "npm:2.4.0"],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"],\ @@ -8751,7 +8753,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["telejson", "npm:6.0.8"],\ ["terser-webpack-plugin", "virtual:8de62122fc7a96cdc92bd3c83415400233625d2b98abc846cf26dfb0065d02af5cc766f8e550f98bc825612a449de94bb96fdfc5eb48ebf94a944833d501bff6#npm:4.2.3"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["url-loader", "virtual:8de62122fc7a96cdc92bd3c83415400233625d2b98abc846cf26dfb0065d02af5cc766f8e550f98bc825612a449de94bb96fdfc5eb48ebf94a944833d501bff6#npm:4.1.1"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"],\ @@ -8814,7 +8816,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["telejson", "npm:6.0.8"],\ ["terser-webpack-plugin", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.3.6"],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"],\ ["webpack-dev-middleware", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:4.3.0"],\ @@ -8991,7 +8993,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["regenerator-runtime", "npm:0.13.11"],\ ["require-from-string", null],\ ["ts-dedent", "npm:2.2.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util-deprecate", "npm:1.0.2"],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"]\ ],\ @@ -9039,7 +9041,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["micromatch", "npm:4.0.5"],\ ["react-docgen-typescript", "virtual:09ad091f08d0983cce5d6a29f4619ee582078cb9456728879201436e4737c568bd1a8738ad3b69dc940bf27623e71845ba93573ace5e8934a327ac217adca112#npm:2.2.2"],\ ["tslib", "npm:2.4.1"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"]\ ],\ "packagePeers": [\ @@ -10437,7 +10439,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["regexpp", "npm:3.2.0"],\ ["semver", "npm:7.3.8"],\ ["tsutils", "virtual:618e6c75ed031fb4573562db88e56420b58b41a72f9beec945d8dc1fa45e3a2f5d52573b3ef05e6c6346cfe397f98c435e54c7a8d83d48d637f0c5418139ffde#npm:3.21.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -10492,7 +10494,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@typescript-eslint/typescript-estree", "virtual:0b43eea60bf9a289a0cd5ffb65c6de92aeae42466ae372536530fe04e627184cc3ba567c3fa13d0d1d4ba5d352dc1d6ac09cedbba03b2fa67f33650a5a84f65c#npm:5.45.0"],\ ["debug", "virtual:dc0e9498d700f80ca3b0d172d2c879b3b5c09eb83d3efd647256b1daa54c605273cda90b8697936295a53fe89b5505efe928551dbf95d9b7e6c2bba5a81cb59c#npm:4.3.4"],\ ["eslint", "npm:8.22.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -10533,7 +10535,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["debug", "virtual:dc0e9498d700f80ca3b0d172d2c879b3b5c09eb83d3efd647256b1daa54c605273cda90b8697936295a53fe89b5505efe928551dbf95d9b7e6c2bba5a81cb59c#npm:4.3.4"],\ ["eslint", "npm:8.22.0"],\ ["tsutils", "virtual:618e6c75ed031fb4573562db88e56420b58b41a72f9beec945d8dc1fa45e3a2f5d52573b3ef05e6c6346cfe397f98c435e54c7a8d83d48d637f0c5418139ffde#npm:3.21.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -10573,7 +10575,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["is-glob", "npm:4.0.3"],\ ["semver", "npm:7.3.8"],\ ["tsutils", "virtual:618e6c75ed031fb4573562db88e56420b58b41a72f9beec945d8dc1fa45e3a2f5d52573b3ef05e6c6346cfe397f98c435e54c7a8d83d48d637f0c5418139ffde#npm:3.21.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -11062,6 +11064,205 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["@zag-js/anatomy", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-anatomy-npm-0.22.0-a05cbd0838-e14e23ff47.zip/node_modules/@zag-js/anatomy/",\ + "packageDependencies": [\ + ["@zag-js/anatomy", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/auto-resize", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-auto-resize-npm-0.22.0-2bbbab6a63-4df147e178.zip/node_modules/@zag-js/auto-resize/",\ + "packageDependencies": [\ + ["@zag-js/auto-resize", "npm:0.22.0"],\ + ["@zag-js/dom-query", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/core", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-core-npm-0.22.0-64a40f63be-3bece42a4e.zip/node_modules/@zag-js/core/",\ + "packageDependencies": [\ + ["@zag-js/core", "npm:0.22.0"],\ + ["@zag-js/store", "npm:0.22.0"],\ + ["klona", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/dom-event", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-dom-event-npm-0.22.0-a9e57489d3-5707cbf931.zip/node_modules/@zag-js/dom-event/",\ + "packageDependencies": [\ + ["@zag-js/dom-event", "npm:0.22.0"],\ + ["@zag-js/text-selection", "npm:0.22.0"],\ + ["@zag-js/types", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/dom-query", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-dom-query-npm-0.22.0-ea68a9c676-862bb13ca1.zip/node_modules/@zag-js/dom-query/",\ + "packageDependencies": [\ + ["@zag-js/dom-query", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/form-utils", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-form-utils-npm-0.22.0-599f8899e9-b3514aa8be.zip/node_modules/@zag-js/form-utils/",\ + "packageDependencies": [\ + ["@zag-js/form-utils", "npm:0.22.0"],\ + ["@zag-js/mutation-observer", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/interact-outside", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-interact-outside-npm-0.22.0-b4b7e97cf0-3fa3d08f4f.zip/node_modules/@zag-js/interact-outside/",\ + "packageDependencies": [\ + ["@zag-js/interact-outside", "npm:0.22.0"],\ + ["@zag-js/dom-event", "npm:0.22.0"],\ + ["@zag-js/dom-query", "npm:0.22.0"],\ + ["@zag-js/tabbable", "npm:0.22.0"],\ + ["@zag-js/utils", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/live-region", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-live-region-npm-0.22.0-196b72618d-ae9f7c458b.zip/node_modules/@zag-js/live-region/",\ + "packageDependencies": [\ + ["@zag-js/live-region", "npm:0.22.0"],\ + ["@zag-js/visually-hidden", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/mutation-observer", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-mutation-observer-npm-0.22.0-8b9fe8b519-0e3b575cdc.zip/node_modules/@zag-js/mutation-observer/",\ + "packageDependencies": [\ + ["@zag-js/mutation-observer", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/react", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-react-npm-0.22.0-db3f283e88-13a30c1faf.zip/node_modules/@zag-js/react/",\ + "packageDependencies": [\ + ["@zag-js/react", "npm:0.22.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:0.22.0", {\ + "packageLocation": "./.yarn/__virtual__/@zag-js-react-virtual-f4247c299c/0/cache/@zag-js-react-npm-0.22.0-db3f283e88-13a30c1faf.zip/node_modules/@zag-js/react/",\ + "packageDependencies": [\ + ["@zag-js/react", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:0.22.0"],\ + ["@types/react", "npm:18.0.25"],\ + ["@types/react-dom", "npm:18.0.9"],\ + ["@zag-js/core", "npm:0.22.0"],\ + ["@zag-js/store", "npm:0.22.0"],\ + ["@zag-js/types", "npm:0.22.0"],\ + ["proxy-compare", "npm:2.5.1"],\ + ["react", "npm:18.2.0"],\ + ["react-dom", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:18.2.0"]\ + ],\ + "packagePeers": [\ + "@types/react-dom",\ + "@types/react",\ + "react-dom",\ + "react"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/store", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-store-npm-0.22.0-9939f3110e-113fa4b8d7.zip/node_modules/@zag-js/store/",\ + "packageDependencies": [\ + ["@zag-js/store", "npm:0.22.0"],\ + ["proxy-compare", "npm:2.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/tabbable", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-tabbable-npm-0.22.0-56032aadc4-2c7a06ef19.zip/node_modules/@zag-js/tabbable/",\ + "packageDependencies": [\ + ["@zag-js/tabbable", "npm:0.22.0"],\ + ["@zag-js/dom-query", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/tags-input", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-tags-input-npm-0.22.0-7fe322c93b-c7d924c4bb.zip/node_modules/@zag-js/tags-input/",\ + "packageDependencies": [\ + ["@zag-js/tags-input", "npm:0.22.0"],\ + ["@zag-js/anatomy", "npm:0.22.0"],\ + ["@zag-js/auto-resize", "npm:0.22.0"],\ + ["@zag-js/core", "npm:0.22.0"],\ + ["@zag-js/dom-event", "npm:0.22.0"],\ + ["@zag-js/dom-query", "npm:0.22.0"],\ + ["@zag-js/form-utils", "npm:0.22.0"],\ + ["@zag-js/interact-outside", "npm:0.22.0"],\ + ["@zag-js/live-region", "npm:0.22.0"],\ + ["@zag-js/types", "npm:0.22.0"],\ + ["@zag-js/utils", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/text-selection", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-text-selection-npm-0.22.0-d750b77b69-71de99233f.zip/node_modules/@zag-js/text-selection/",\ + "packageDependencies": [\ + ["@zag-js/text-selection", "npm:0.22.0"],\ + ["@zag-js/dom-query", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/types", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-types-npm-0.22.0-301a3bccd3-ced7270baa.zip/node_modules/@zag-js/types/",\ + "packageDependencies": [\ + ["@zag-js/types", "npm:0.22.0"],\ + ["csstype", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/utils", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-utils-npm-0.22.0-43c971e097-4317707743.zip/node_modules/@zag-js/utils/",\ + "packageDependencies": [\ + ["@zag-js/utils", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@zag-js/visually-hidden", [\ + ["npm:0.22.0", {\ + "packageLocation": "./.yarn/cache/@zag-js-visually-hidden-npm-0.22.0-c7b467601a-8d16df9a1b.zip/node_modules/@zag-js/visually-hidden/",\ + "packageDependencies": [\ + ["@zag-js/visually-hidden", "npm:0.22.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@zxing/text-encoding", [\ ["npm:0.9.0", {\ "packageLocation": "./.yarn/cache/@zxing-text-encoding-npm-0.9.0-8426ff59e9-c23b12aee7.zip/node_modules/@zxing/text-encoding/",\ @@ -14066,6 +14267,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["csstype", "npm:3.1.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.1.2", {\ + "packageLocation": "./.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip/node_modules/csstype/",\ + "packageDependencies": [\ + ["csstype", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["currently-unhandled", [\ @@ -15069,7 +15277,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["eslint-plugin-jsx-a11y", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:6.6.1"],\ ["eslint-plugin-react", "virtual:062c47353faf746e0b9734ac320faae1688a18a913e4682da4b878e9f5948eb5d9e5a35390bffa459d73b0bb3b11876e9aaeb54daa05dd937877fc6352f6f890#npm:7.31.11"],\ ["eslint-plugin-react-hooks", "virtual:062c47353faf746e0b9734ac320faae1688a18a913e4682da4b878e9f5948eb5d9e5a35390bffa459d73b0bb3b11876e9aaeb54daa05dd937877fc6352f6f890#npm:4.6.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/eslint",\ @@ -16187,7 +16395,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["schema-utils", "npm:2.7.0"],\ ["semver", "npm:7.3.8"],\ ["tapable", "npm:1.1.3"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["vue-template-compiler", null],\ ["webpack", "virtual:4a16c017eb65863a07b071ea32886b327b86b4c5afaedca1630c29bf33216fb017b7e09a1cede97e482e26fe132ec80addbcad29a59f529dc9389582cddd43c2#npm:5.75.0"]\ ],\ @@ -16218,7 +16426,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["minimatch", "npm:3.1.2"],\ ["semver", "npm:5.7.1"],\ ["tapable", "npm:1.1.3"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["vue-template-compiler", null],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"],\ ["worker-rpc", "npm:0.1.1"]\ @@ -16257,7 +16465,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["schema-utils", "npm:2.7.0"],\ ["semver", "npm:7.3.8"],\ ["tapable", "npm:1.1.3"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["vue-template-compiler", null],\ ["webpack", "virtual:fb3b6131aeff41582eece7000bfa79206a1cc3ed6c5f727a55472151808a2aab4196aa5b57d7fd066bab8757ec7437393e00704770fbee1e5dcba9694d867344#npm:4.46.0"]\ ],\ @@ -18868,6 +19076,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["klona", "npm:2.0.5"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:2.0.6", {\ + "packageLocation": "./.yarn/cache/klona-npm-2.0.6-bc83268fb1-ac9ee3732e.zip/node_modules/klona/",\ + "packageDependencies": [\ + ["klona", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["language-subtag-registry", [\ @@ -19962,7 +20177,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["path-to-regexp", "npm:6.2.1"],\ ["strict-event-emitter", "npm:0.2.8"],\ ["type-fest", "npm:2.19.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["yargs", "npm:17.6.2"]\ ],\ "packagePeers": [\ @@ -21939,6 +22154,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["proxy-compare", [\ + ["npm:2.5.1", {\ + "packageLocation": "./.yarn/cache/proxy-compare-npm-2.5.1-e867350620-c7cc151ac2.zip/node_modules/proxy-compare/",\ + "packageDependencies": [\ + ["proxy-compare", "npm:2.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["proxy-from-env", [\ ["npm:1.1.0", {\ "packageLocation": "./.yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-ed7fcc2ba0.zip/node_modules/proxy-from-env/",\ @@ -22191,7 +22415,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "packageDependencies": [\ ["react-docgen-typescript", "virtual:09ad091f08d0983cce5d6a29f4619ee582078cb9456728879201436e4737c568bd1a8738ad3b69dc940bf27623e71845ba93573ace5e8934a327ac217adca112#npm:2.2.2"],\ ["@types/typescript", null],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -24888,7 +25112,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["tsutils", "virtual:618e6c75ed031fb4573562db88e56420b58b41a72f9beec945d8dc1fa45e3a2f5d52573b3ef05e6c6346cfe397f98c435e54c7a8d83d48d637f0c5418139ffde#npm:3.21.0"],\ ["@types/typescript", null],\ ["tslib", "npm:1.14.1"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "packagePeers": [\ "@types/typescript",\ @@ -25048,10 +25272,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { }]\ ]],\ ["typescript", [\ - ["patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830", {\ - "packageLocation": "./.yarn/cache/typescript-patch-b9b216bc0d-67ca21a387.zip/node_modules/typescript/",\ + ["patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4", {\ + "packageLocation": "./.yarn/cache/typescript-patch-38a6667774-d7bdcf5e18.zip/node_modules/typescript/",\ "packageDependencies": [\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"]\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"]\ ],\ "linkType": "HARD"\ }]\ @@ -26515,6 +26739,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["@typescript-eslint/parser", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:5.45.0"],\ ["@use-gesture/react", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:10.2.24"],\ ["@vercel/og", "npm:0.5.3"],\ + ["@zag-js/react", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:0.22.0"],\ + ["@zag-js/tags-input", "npm:0.22.0"],\ ["autoprefixer", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:10.4.13"],\ ["axios", "npm:1.2.0"],\ ["babel-loader", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:8.3.0"],\ @@ -26548,7 +26774,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["storybook-addon-next-router", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:4.0.2"],\ ["tailwindcss", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:3.2.4"],\ ["twin.macro", "virtual:1efb7fe2099bed4120fcc4f39a0c22325b69ada92fc21796c27552c271c245ad70f9ac625ace3d0f903bd6cf322956fda9e646154a3ae6dc5809e9838f04e833#npm:3.1.0"],\ - ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830"],\ + ["typescript", "patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4"],\ ["util", "npm:0.12.5"]\ ],\ "linkType": "SOFT"\ @@ -26638,6 +26864,7 @@ const StringDecoder = require('string_decoder'); const url = require('url'); const os = require('os'); const nodeUtils = require('util'); +const readline = require('readline'); const assert = require('assert'); const stream = require('stream'); const zlib = require('zlib'); @@ -28120,7 +28347,7 @@ const DEFAULT_COMPRESSION_LEVEL = `mixed`; function toUnixTimestamp(time) { if (typeof time === `string` && String(+time) === time) return +time; - if (Number.isFinite(time)) { + if (typeof time === `number` && Number.isFinite(time)) { if (time < 0) { return Date.now() / 1e3; } else { @@ -28272,6 +28499,10 @@ class ZipFS extends BasePortableFakeFS { this.prepareClose(); if (!this.lzSource) throw new Error(`ZipFS was not created from a Buffer`); + if (this.entries.size === 0) { + this.discardAndClose(); + return makeEmptyArchive(); + } try { this.libzip.source.keep(this.lzSource); if (this.libzip.close(this.zip) === -1) @@ -28698,7 +28929,7 @@ class ZipFS extends BasePortableFakeFS { resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); if (!resolveLastComponent || this.symlinkCount === 0) break; - const index = this.libzip.name.locate(this.zip, resolvedP.slice(1)); + const index = this.libzip.name.locate(this.zip, resolvedP.slice(1), 0); if (index === -1) break; if (this.isSymbolicLink(index)) { @@ -28723,7 +28954,7 @@ class ZipFS extends BasePortableFakeFS { allocateUnattachedSource(content) { const error = this.libzip.struct.errorS(); const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, true, error); + const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error); if (source === 0) { this.libzip.free(error); throw this.makeLibzipError(error); @@ -28732,7 +28963,7 @@ class ZipFS extends BasePortableFakeFS { } allocateSource(content) { const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, true); + const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); if (source === 0) { this.libzip.free(buffer); throw this.makeLibzipError(this.libzip.getError(this.zip)); @@ -30551,6 +30782,12 @@ class FileHandle { this[kUnref](); } } + readLines(options) { + return readline.createInterface({ + input: this.createReadStream(options), + crlfDelay: Infinity + }); + } async stat(opts) { try { this[kRef](this.stat); @@ -35160,7 +35397,7 @@ const makeInterface = (libzip) => ({ locate: libzip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) }, source: { - fromUnattachedBuffer: libzip.cwrap(`zip_source_buffer_create`, `number`, [`number`, `number`, `number`, `number`]), + fromUnattachedBuffer: libzip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), fromBuffer: libzip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), free: libzip.cwrap(`zip_source_free`, null, [`number`]), keep: libzip.cwrap(`zip_source_keep`, null, [`number`]), @@ -35246,6 +35483,9 @@ function getPathForDisplay(p) { return npath.normalize(npath.fromPortablePath(p)); } +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; + const builtinModules = new Set(require$$0.Module.builtinModules || Object.keys(process.binding(`natives`))); const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request); function readPackageScope(checkPath) { @@ -35280,13 +35520,19 @@ Instead change the require of ${basename} in ${parentPath} to a dynamic import() err.code = `ERR_REQUIRE_ESM`; return err; } - -const shouldReportRequiredModules = process.env.WATCH_REPORT_DEPENDENCIES; -function reportModuleToWatchMode(filename) { - if (shouldReportRequiredModules && process.send) { - process.send({ "watch:require": npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))) }); +function reportRequiredFilesToWatchMode(files) { + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); + if (WATCH_MODE_MESSAGE_USES_ARRAYS) { + process.send({ "watch:require": files }); + } else { + for (const filename of files) { + process.send({ "watch:require": filename }); + } + } } } + function applyPatch(pnpapi, opts) { const defaultCache = {}; let enableNativeHooks = true; @@ -35346,7 +35592,7 @@ function applyPatch(pnpapi, opts) { } const module = new require$$0.Module(modulePath, parent != null ? parent : void 0); module.pnpApiPath = moduleApiPath; - reportModuleToWatchMode(modulePath); + reportRequiredFilesToWatchMode([modulePath]); entry.cache[modulePath] = module; if (isMain) { process.mainModule = module; @@ -35590,118 +35836,6 @@ function hydrateRuntimeState(data, { basePath }) { }; } -/** - * @param {object} exports - * @param {Set} keys - */ -function loop(exports, keys) { - if (typeof exports === 'string') { - return exports; - } - - if (exports) { - let idx, tmp; - if (Array.isArray(exports)) { - for (idx=0; idx < exports.length; idx++) { - if (tmp = loop(exports[idx], keys)) return tmp; - } - } else { - for (idx in exports) { - if (keys.has(idx)) { - return loop(exports[idx], keys); - } - } - } - } -} - -/** - * @param {string} name The package name - * @param {string} entry The target entry, eg "." - * @param {number} [condition] Unmatched condition? - */ -function bail(name, entry, condition) { - throw new Error( - condition - ? `No known conditions for "${entry}" entry in "${name}" package` - : `Missing "${entry}" export in "${name}" package` - ); -} - -/** - * @param {string} name the package name - * @param {string} entry the target path/import - */ -function toName(name, entry) { - return entry === name ? '.' - : entry[0] === '.' ? entry - : entry.replace(new RegExp('^' + name + '\/'), './'); -} - -/** - * @param {object} pkg package.json contents - * @param {string} [entry] entry name or import path - * @param {object} [options] - * @param {boolean} [options.browser] - * @param {boolean} [options.require] - * @param {string[]} [options.conditions] - * @param {boolean} [options.unsafe] - */ -function resolve(pkg, entry='.', options={}) { - let { name, exports } = pkg; - - if (exports) { - let { browser, require, unsafe, conditions=[] } = options; - - let target = toName(name, entry); - if (target[0] !== '.') target = './' + target; - - if (typeof exports === 'string') { - return target === '.' ? exports : bail(name, target); - } - - let allows = new Set(['default', ...conditions]); - unsafe || allows.add(require ? 'require' : 'import'); - unsafe || allows.add(browser ? 'browser' : 'node'); - - let key, tmp, isSingle=false; - - for (key in exports) { - isSingle = key[0] !== '.'; - break; - } - - if (isSingle) { - return target === '.' - ? loop(exports, allows) || bail(name, target, 1) - : bail(name, target); - } - - if (tmp = exports[target]) { - return loop(tmp, allows) || bail(name, target, 1); - } - - for (key in exports) { - tmp = key[key.length - 1]; - if (tmp === '/' && target.startsWith(key)) { - return (tmp = loop(exports[key], allows)) - ? (tmp + target.substring(key.length)) - : bail(name, target, 1); - } - if (tmp === '*' && target.startsWith(key.slice(0, -1))) { - // do not trigger if no *content* to inject - if (target.substring(key.length - 1).length > 0) { - return (tmp = loop(exports[key], allows)) - ? tmp.replace('*', target.substring(key.length - 1)) - : bail(name, target, 1); - } - } - } - - return bail(name, target); - } -} - const ArrayIsArray = Array.isArray; const JSONStringify = JSON.stringify; const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; @@ -35762,6 +35896,15 @@ const ERR_INVALID_PACKAGE_CONFIG = createErrorType( }, Error ); +const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( + "ERR_PACKAGE_PATH_NOT_EXPORTED", + (pkgPath, subpath, base = void 0) => { + if (subpath === ".") + return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + }, + Error +); function filterOwnProperties(source, keys) { const filtered = /* @__PURE__ */ Object.create(null); @@ -36081,12 +36224,121 @@ function patternKeyCompare(a, b) { return 1; return 0; } -function packageImportsResolve({ - name, +function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { + if (typeof exports === "string" || ArrayIsArray(exports)) + return true; + if (typeof exports !== "object" || exports === null) + return false; + const keys = ObjectGetOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + for (let j = 0; j < keys.length; j++) { + const key = keys[j]; + const curIsConditionalSugar = key === "" || key[0] !== "."; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` + ); + } + } + return isConditionalSugar; +} +function throwExportsNotFound(subpath, packageJSONUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + base && url.fileURLToPath(base) + ); +} +const emittedPackageWarnings = /* @__PURE__ */ new Set(); +function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + const pjsonPath = url.fileURLToPath(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + "|" + match)) + return; + emittedPackageWarnings.add(pjsonPath + "|" + match); + process.emitWarning( + `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, + "DeprecationWarning", + "DEP0155" + ); +} +function packageExportsResolve({ + packageJSONUrl, + packageSubpath, + exports, base, - conditions, - readFileSyncFn + conditions }) { + if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) + exports = { ".": exports }; + if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { + const target = exports[packageSubpath]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + "", + packageSubpath, + base, + false, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(exports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + packageSubpath, + StringPrototypeSlice(key, 0, patternIndex) + )) { + if (StringPrototypeEndsWith(packageSubpath, "/")) + emitTrailingSlashPatternDeprecation( + packageSubpath, + packageJSONUrl, + base + ); + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + packageSubpath, + patternIndex, + packageSubpath.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + throwExportsNotFound(packageSubpath, packageJSONUrl, base); +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { const reason = "is not a valid internal imports specifier name"; throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); @@ -36155,6 +36407,291 @@ function packageImportsResolve({ throwImportNotDefined(name, packageJSONUrl, base); } +const flagSymbol = Symbol('arg flag'); + +class ArgError extends Error { + constructor(msg, code) { + super(msg); + this.name = 'ArgError'; + this.code = code; + + Object.setPrototypeOf(this, ArgError.prototype); + } +} + +function arg( + opts, + { + argv = process.argv.slice(2), + permissive = false, + stopAtPositional = false + } = {} +) { + if (!opts) { + throw new ArgError( + 'argument specification object is required', + 'ARG_CONFIG_NO_SPEC' + ); + } + + const result = { _: [] }; + + const aliases = {}; + const handlers = {}; + + for (const key of Object.keys(opts)) { + if (!key) { + throw new ArgError( + 'argument key cannot be an empty string', + 'ARG_CONFIG_EMPTY_KEY' + ); + } + + if (key[0] !== '-') { + throw new ArgError( + `argument key must start with '-' but found: '${key}'`, + 'ARG_CONFIG_NONOPT_KEY' + ); + } + + if (key.length === 1) { + throw new ArgError( + `argument key must have a name; singular '-' keys are not allowed: ${key}`, + 'ARG_CONFIG_NONAME_KEY' + ); + } + + if (typeof opts[key] === 'string') { + aliases[key] = opts[key]; + continue; + } + + let type = opts[key]; + let isFlag = false; + + if ( + Array.isArray(type) && + type.length === 1 && + typeof type[0] === 'function' + ) { + const [fn] = type; + type = (value, name, prev = []) => { + prev.push(fn(value, name, prev[prev.length - 1])); + return prev; + }; + isFlag = fn === Boolean || fn[flagSymbol] === true; + } else if (typeof type === 'function') { + isFlag = type === Boolean || type[flagSymbol] === true; + } else { + throw new ArgError( + `type missing or not a function or valid array type: ${key}`, + 'ARG_CONFIG_VAD_TYPE' + ); + } + + if (key[1] !== '-' && key.length > 2) { + throw new ArgError( + `short argument keys (with a single hyphen) must have only one character: ${key}`, + 'ARG_CONFIG_SHORTOPT_TOOLONG' + ); + } + + handlers[key] = [type, isFlag]; + } + + for (let i = 0, len = argv.length; i < len; i++) { + const wholeArg = argv[i]; + + if (stopAtPositional && result._.length > 0) { + result._ = result._.concat(argv.slice(i)); + break; + } + + if (wholeArg === '--') { + result._ = result._.concat(argv.slice(i + 1)); + break; + } + + if (wholeArg.length > 1 && wholeArg[0] === '-') { + /* eslint-disable operator-linebreak */ + const separatedArguments = + wholeArg[1] === '-' || wholeArg.length === 2 + ? [wholeArg] + : wholeArg + .slice(1) + .split('') + .map((a) => `-${a}`); + /* eslint-enable operator-linebreak */ + + for (let j = 0; j < separatedArguments.length; j++) { + const arg = separatedArguments[j]; + const [originalArgName, argStr] = + arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; + + let argName = originalArgName; + while (argName in aliases) { + argName = aliases[argName]; + } + + if (!(argName in handlers)) { + if (permissive) { + result._.push(arg); + continue; + } else { + throw new ArgError( + `unknown or unexpected option: ${originalArgName}`, + 'ARG_UNKNOWN_OPTION' + ); + } + } + + const [type, isFlag] = handlers[argName]; + + if (!isFlag && j + 1 < separatedArguments.length) { + throw new ArgError( + `option requires argument (but was followed by another short argument): ${originalArgName}`, + 'ARG_MISSING_REQUIRED_SHORTARG' + ); + } + + if (isFlag) { + result[argName] = type(true, argName, result[argName]); + } else if (argStr === undefined) { + if ( + argv.length < i + 2 || + (argv[i + 1].length > 1 && + argv[i + 1][0] === '-' && + !( + argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && + (type === Number || + // eslint-disable-next-line no-undef + (typeof BigInt !== 'undefined' && type === BigInt)) + )) + ) { + const extended = + originalArgName === argName ? '' : ` (alias for ${argName})`; + throw new ArgError( + `option requires argument: ${originalArgName}${extended}`, + 'ARG_MISSING_REQUIRED_LONGARG' + ); + } + + result[argName] = type(argv[i + 1], argName, result[argName]); + ++i; + } else { + result[argName] = type(argStr, argName, result[argName]); + } + } + } else { + result._.push(wholeArg); + } + } + + return result; +} + +arg.flag = (fn) => { + fn[flagSymbol] = true; + return fn; +}; + +// Utility types +arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); + +// Expose error class +arg.ArgError = ArgError; + +var arg_1 = arg; + +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +function getOptionValue(opt) { + parseOptions(); + return options[opt]; +} +let options; +function parseOptions() { + if (!options) { + options = { + "--conditions": [], + ...parseArgv(getNodeOptionsEnvArgv()), + ...parseArgv(process.execArgv) + }; + } +} +function parseArgv(argv) { + return arg_1( + { + "--conditions": [String], + "-C": "--conditions" + }, + { + argv, + permissive: true + } + ); +} +function getNodeOptionsEnvArgv() { + const errors = []; + const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); + if (errors.length !== 0) ; + return envArgv; +} +function ParseNodeOptionsEnvVar(node_options, errors) { + const env_argv = []; + let is_in_string = false; + let will_start_new_arg = true; + for (let index = 0; index < node_options.length; ++index) { + let c = node_options[index]; + if (c === "\\" && is_in_string) { + if (index + 1 === node_options.length) { + errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); + return env_argv; + } else { + c = node_options[++index]; + } + } else if (c === " " && !is_in_string) { + will_start_new_arg = true; + continue; + } else if (c === '"') { + is_in_string = !is_in_string; + continue; + } + if (will_start_new_arg) { + env_argv.push(c); + will_start_new_arg = false; + } else { + env_argv[env_argv.length - 1] += c; + } + } + if (is_in_string) { + errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); + } + return env_argv; +} + function makeApi(runtimeState, opts) { const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); @@ -36268,8 +36805,12 @@ function makeApi(runtimeState, opts) { return true; return false; } - const defaultExportsConditions = /* @__PURE__ */ new Set([`default`, `node`, `require`]); - function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions) { + const defaultExportsConditions = /* @__PURE__ */ new Set([ + `node`, + `require`, + ...getOptionValue(`--conditions`) + ]); + function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { resolveIgnored: true, includeDiscardFromLookup: true @@ -36285,6 +36826,8 @@ function makeApi(runtimeState, opts) { if (!opts.fakeFs.existsSync(manifestPath)) return null; const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); + if (pkgJson.exports == null) + return null; let subpath = ppath.contains(packageLocation, unqualifiedPath); if (subpath === null) { throw makeError( @@ -36292,25 +36835,25 @@ function makeApi(runtimeState, opts) { `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` ); } - if (!isRelativeRegexp.test(subpath)) + if (subpath !== `.` && !isRelativeRegexp.test(subpath)) subpath = `./${subpath}`; - let resolvedExport; try { - resolvedExport = resolve(pkgJson, ppath.normalize(subpath), { - conditions, - unsafe: true + const resolvedExport = packageExportsResolve({ + packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), + packageSubpath: subpath, + exports: pkgJson.exports, + base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, + conditions }); + return npath.toPortablePath(url.fileURLToPath(resolvedExport)); } catch (error) { throw makeError( ErrorCode.EXPORTS_RESOLUTION_FAILED, error.message, { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, - `ERR_PACKAGE_PATH_NOT_EXPORTED` + error.code ); } - if (typeof resolvedExport === `string`) - return ppath.join(packageLocation, resolvedExport); - return null; } function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { let stat; @@ -36687,10 +37230,10 @@ Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDi } return ppath.normalize(unqualifiedPath); } - function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions) { + function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { if (isStrictRegExp.test(request)) return unqualifiedPath; - const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions); + const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); if (unqualifiedExportPath) { return ppath.normalize(unqualifiedExportPath); } else { @@ -36704,6 +37247,7 @@ Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDi if (qualifiedPath) { return ppath.normalize(qualifiedPath); } else { + reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); const containingPackage = findPackageLocator(unqualifiedPath); if (containingPackage) { @@ -36757,7 +37301,7 @@ ${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} conditions: (_a = opts2.conditions) != null ? _a : defaultExportsConditions, readFileSyncFn: tryReadFile }); - if (resolved instanceof URL) { + if (resolved instanceof url.URL) { return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); } else { if (resolved.startsWith(`#`)) @@ -36776,7 +37320,7 @@ ${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} if (unqualifiedPath === null) return null; const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; - const remappedPath = (!considerBuiltins || !isBuiltinModule(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions) : unqualifiedPath; + const remappedPath = (!considerBuiltins || !isBuiltinModule(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; return resolveUnqualified(remappedPath, { extensions }); } catch (error) { if (Object.prototype.hasOwnProperty.call(error, `pnpCode`)) diff --git a/.pnp.loader.mjs b/.pnp.loader.mjs index dbd09ddd..887f021d 100644 --- a/.pnp.loader.mjs +++ b/.pnp.loader.mjs @@ -1328,6 +1328,13 @@ class VirtualFS extends ProxiedFS { } } +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const HAS_CONSOLIDATED_HOOKS = major > 16 || major === 16 && minor >= 12; +const HAS_UNFLAGGED_JSON_MODULES = major > 17 || major === 17 && minor >= 5 || major === 16 && minor >= 15; +const HAS_JSON_IMPORT_ASSERTION_REQUIREMENT = major > 17 || major === 17 && minor >= 1 || major === 16 && minor > 14; +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; +const HAS_LAZY_LOADED_TRANSLATORS = major > 19 || major === 19 && minor >= 3; + const builtinModules = new Set(Module.builtinModules || Object.keys(process.binding(`natives`))); const isBuiltinModule = (request) => request.startsWith(`node:`) || builtinModules.has(request); function readPackageScope(checkPath) { @@ -1355,11 +1362,6 @@ function readPackage(requestPath) { return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); } -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const HAS_CONSOLIDATED_HOOKS = major > 16 || major === 16 && minor >= 12; -const HAS_UNFLAGGED_JSON_MODULES = major > 17 || major === 17 && minor >= 5 || major === 16 && minor >= 15; -const HAS_JSON_IMPORT_ASSERTION_REQUIREMENT = major > 17 || major === 17 && minor >= 1 || major === 16 && minor > 14; - async function tryReadFile$1(path2) { try { return await fs.promises.readFile(path2, `utf8`); @@ -1458,12 +1460,13 @@ async function load$1(urlString, context, nextLoad) { throw err; } if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + const pathToSend = pathToFileURL( + npath.fromPortablePath( + VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) + ) + ).href; process.send({ - "watch:import": pathToFileURL( - npath.fromPortablePath( - VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) - ) - ).href + "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend }); } return { @@ -1852,12 +1855,7 @@ function patternKeyCompare(a, b) { return 1; return 0; } -function packageImportsResolve({ - name, - base, - conditions, - readFileSyncFn -}) { +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { const reason = "is not a valid internal imports specifier name"; throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); @@ -1944,7 +1942,7 @@ async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { conditions: new Set(context.conditions), readFileSyncFn: tryReadFile }); - if (resolved instanceof URL) { + if (resolved instanceof URL$1) { return { url: resolved.href, shortCircuit: true }; } else { if (resolved.startsWith(`#`)) @@ -1975,7 +1973,7 @@ async function resolve$1(originalSpecifier, context, nextResolve) { let allowLegacyResolve = false; if (dependencyNameMatch) { const [, dependencyName, subPath] = dependencyNameMatch; - if (subPath === ``) { + if (subPath === `` && dependencyName !== `pnpapi`) { const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); if (resolved) { const content = await tryReadFile$1(resolved); @@ -1986,10 +1984,17 @@ async function resolve$1(originalSpecifier, context, nextResolve) { } } } - const result = pnpapi.resolveRequest(specifier, issuer, { - conditions: new Set(conditions), - extensions: allowLegacyResolve ? void 0 : [] - }); + let result; + try { + result = pnpapi.resolveRequest(specifier, issuer, { + conditions: new Set(conditions), + extensions: allowLegacyResolve ? void 0 : [] + }); + } catch (err) { + if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) + err.code = `ERR_MODULE_NOT_FOUND`; + throw err; + } if (!result) throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); const resultURL = pathToFileURL(result); @@ -2005,32 +2010,34 @@ async function resolve$1(originalSpecifier, context, nextResolve) { }; } -const binding = process.binding(`fs`); -const originalfstat = binding.fstat; -const ZIP_MASK = 4278190080; -const ZIP_MAGIC = 704643072; -binding.fstat = function(...args) { - const [fd, useBigint, req] = args; - if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { - try { - const stats = fs.fstatSync(fd); - return new Float64Array([ - stats.dev, - stats.mode, - stats.nlink, - stats.uid, - stats.gid, - stats.rdev, - stats.blksize, - stats.ino, - stats.size, - stats.blocks - ]); - } catch { +if (!HAS_LAZY_LOADED_TRANSLATORS) { + const binding = process.binding(`fs`); + const originalfstat = binding.fstat; + const ZIP_MASK = 4278190080; + const ZIP_MAGIC = 704643072; + binding.fstat = function(...args) { + const [fd, useBigint, req] = args; + if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { + try { + const stats = fs.fstatSync(fd); + return new Float64Array([ + stats.dev, + stats.mode, + stats.nlink, + stats.uid, + stats.gid, + stats.rdev, + stats.blksize, + stats.ino, + stats.size, + stats.blocks + ]); + } catch { + } } - } - return originalfstat.apply(this, args); -}; + return originalfstat.apply(this, args); + }; +} const resolve = resolve$1; const getFormat = HAS_CONSOLIDATED_HOOKS ? void 0 : getFormat$1; diff --git a/.yarn/cache/@zag-js-anatomy-npm-0.22.0-a05cbd0838-e14e23ff47.zip b/.yarn/cache/@zag-js-anatomy-npm-0.22.0-a05cbd0838-e14e23ff47.zip new file mode 100644 index 00000000..90004576 Binary files /dev/null and b/.yarn/cache/@zag-js-anatomy-npm-0.22.0-a05cbd0838-e14e23ff47.zip differ diff --git a/.yarn/cache/@zag-js-auto-resize-npm-0.22.0-2bbbab6a63-4df147e178.zip b/.yarn/cache/@zag-js-auto-resize-npm-0.22.0-2bbbab6a63-4df147e178.zip new file mode 100644 index 00000000..3970db87 Binary files /dev/null and b/.yarn/cache/@zag-js-auto-resize-npm-0.22.0-2bbbab6a63-4df147e178.zip differ diff --git a/.yarn/cache/@zag-js-core-npm-0.22.0-64a40f63be-3bece42a4e.zip b/.yarn/cache/@zag-js-core-npm-0.22.0-64a40f63be-3bece42a4e.zip new file mode 100644 index 00000000..a8e0a17b Binary files /dev/null and b/.yarn/cache/@zag-js-core-npm-0.22.0-64a40f63be-3bece42a4e.zip differ diff --git a/.yarn/cache/@zag-js-dom-event-npm-0.22.0-a9e57489d3-5707cbf931.zip b/.yarn/cache/@zag-js-dom-event-npm-0.22.0-a9e57489d3-5707cbf931.zip new file mode 100644 index 00000000..a8991639 Binary files /dev/null and b/.yarn/cache/@zag-js-dom-event-npm-0.22.0-a9e57489d3-5707cbf931.zip differ diff --git a/.yarn/cache/@zag-js-dom-query-npm-0.22.0-ea68a9c676-862bb13ca1.zip b/.yarn/cache/@zag-js-dom-query-npm-0.22.0-ea68a9c676-862bb13ca1.zip new file mode 100644 index 00000000..81c4fb11 Binary files /dev/null and b/.yarn/cache/@zag-js-dom-query-npm-0.22.0-ea68a9c676-862bb13ca1.zip differ diff --git a/.yarn/cache/@zag-js-form-utils-npm-0.22.0-599f8899e9-b3514aa8be.zip b/.yarn/cache/@zag-js-form-utils-npm-0.22.0-599f8899e9-b3514aa8be.zip new file mode 100644 index 00000000..39848e0c Binary files /dev/null and b/.yarn/cache/@zag-js-form-utils-npm-0.22.0-599f8899e9-b3514aa8be.zip differ diff --git a/.yarn/cache/@zag-js-interact-outside-npm-0.22.0-b4b7e97cf0-3fa3d08f4f.zip b/.yarn/cache/@zag-js-interact-outside-npm-0.22.0-b4b7e97cf0-3fa3d08f4f.zip new file mode 100644 index 00000000..ae2a8579 Binary files /dev/null and b/.yarn/cache/@zag-js-interact-outside-npm-0.22.0-b4b7e97cf0-3fa3d08f4f.zip differ diff --git a/.yarn/cache/@zag-js-live-region-npm-0.22.0-196b72618d-ae9f7c458b.zip b/.yarn/cache/@zag-js-live-region-npm-0.22.0-196b72618d-ae9f7c458b.zip new file mode 100644 index 00000000..ce339b9e Binary files /dev/null and b/.yarn/cache/@zag-js-live-region-npm-0.22.0-196b72618d-ae9f7c458b.zip differ diff --git a/.yarn/cache/@zag-js-mutation-observer-npm-0.22.0-8b9fe8b519-0e3b575cdc.zip b/.yarn/cache/@zag-js-mutation-observer-npm-0.22.0-8b9fe8b519-0e3b575cdc.zip new file mode 100644 index 00000000..6cd2b975 Binary files /dev/null and b/.yarn/cache/@zag-js-mutation-observer-npm-0.22.0-8b9fe8b519-0e3b575cdc.zip differ diff --git a/.yarn/cache/@zag-js-react-npm-0.22.0-db3f283e88-13a30c1faf.zip b/.yarn/cache/@zag-js-react-npm-0.22.0-db3f283e88-13a30c1faf.zip new file mode 100644 index 00000000..f9b4498d Binary files /dev/null and b/.yarn/cache/@zag-js-react-npm-0.22.0-db3f283e88-13a30c1faf.zip differ diff --git a/.yarn/cache/@zag-js-store-npm-0.22.0-9939f3110e-113fa4b8d7.zip b/.yarn/cache/@zag-js-store-npm-0.22.0-9939f3110e-113fa4b8d7.zip new file mode 100644 index 00000000..c208baa6 Binary files /dev/null and b/.yarn/cache/@zag-js-store-npm-0.22.0-9939f3110e-113fa4b8d7.zip differ diff --git a/.yarn/cache/@zag-js-tabbable-npm-0.22.0-56032aadc4-2c7a06ef19.zip b/.yarn/cache/@zag-js-tabbable-npm-0.22.0-56032aadc4-2c7a06ef19.zip new file mode 100644 index 00000000..adc8dc6f Binary files /dev/null and b/.yarn/cache/@zag-js-tabbable-npm-0.22.0-56032aadc4-2c7a06ef19.zip differ diff --git a/.yarn/cache/@zag-js-tags-input-npm-0.22.0-7fe322c93b-c7d924c4bb.zip b/.yarn/cache/@zag-js-tags-input-npm-0.22.0-7fe322c93b-c7d924c4bb.zip new file mode 100644 index 00000000..d1dd662f Binary files /dev/null and b/.yarn/cache/@zag-js-tags-input-npm-0.22.0-7fe322c93b-c7d924c4bb.zip differ diff --git a/.yarn/cache/@zag-js-text-selection-npm-0.22.0-d750b77b69-71de99233f.zip b/.yarn/cache/@zag-js-text-selection-npm-0.22.0-d750b77b69-71de99233f.zip new file mode 100644 index 00000000..c4136faf Binary files /dev/null and b/.yarn/cache/@zag-js-text-selection-npm-0.22.0-d750b77b69-71de99233f.zip differ diff --git a/.yarn/cache/@zag-js-types-npm-0.22.0-301a3bccd3-ced7270baa.zip b/.yarn/cache/@zag-js-types-npm-0.22.0-301a3bccd3-ced7270baa.zip new file mode 100644 index 00000000..1ec29c27 Binary files /dev/null and b/.yarn/cache/@zag-js-types-npm-0.22.0-301a3bccd3-ced7270baa.zip differ diff --git a/.yarn/cache/@zag-js-utils-npm-0.22.0-43c971e097-4317707743.zip b/.yarn/cache/@zag-js-utils-npm-0.22.0-43c971e097-4317707743.zip new file mode 100644 index 00000000..847a0170 Binary files /dev/null and b/.yarn/cache/@zag-js-utils-npm-0.22.0-43c971e097-4317707743.zip differ diff --git a/.yarn/cache/@zag-js-visually-hidden-npm-0.22.0-c7b467601a-8d16df9a1b.zip b/.yarn/cache/@zag-js-visually-hidden-npm-0.22.0-c7b467601a-8d16df9a1b.zip new file mode 100644 index 00000000..98aed5c0 Binary files /dev/null and b/.yarn/cache/@zag-js-visually-hidden-npm-0.22.0-c7b467601a-8d16df9a1b.zip differ diff --git a/.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip b/.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip new file mode 100644 index 00000000..740042eb Binary files /dev/null and b/.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip differ diff --git a/.yarn/cache/klona-npm-2.0.6-bc83268fb1-ac9ee3732e.zip b/.yarn/cache/klona-npm-2.0.6-bc83268fb1-ac9ee3732e.zip new file mode 100644 index 00000000..e7024ad1 Binary files /dev/null and b/.yarn/cache/klona-npm-2.0.6-bc83268fb1-ac9ee3732e.zip differ diff --git a/.yarn/cache/proxy-compare-npm-2.5.1-e867350620-c7cc151ac2.zip b/.yarn/cache/proxy-compare-npm-2.5.1-e867350620-c7cc151ac2.zip new file mode 100644 index 00000000..e7291e4b Binary files /dev/null and b/.yarn/cache/proxy-compare-npm-2.5.1-e867350620-c7cc151ac2.zip differ diff --git a/.yarn/cache/typescript-patch-b9b216bc0d-67ca21a387.zip b/.yarn/cache/typescript-patch-38a6667774-d7bdcf5e18.zip similarity index 68% rename from .yarn/cache/typescript-patch-b9b216bc0d-67ca21a387.zip rename to .yarn/cache/typescript-patch-38a6667774-d7bdcf5e18.zip index 8fb8d53a..6dc4e649 100644 Binary files a/.yarn/cache/typescript-patch-b9b216bc0d-67ca21a387.zip and b/.yarn/cache/typescript-patch-38a6667774-d7bdcf5e18.zip differ diff --git a/package.json b/package.json index 9ae5db4c..bb826e97 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,8 @@ "@tanstack/react-query": "^4.19.1", "@use-gesture/react": "^10.2.24", "@vercel/og": "^0.5.3", + "@zag-js/react": "^0.22.0", + "@zag-js/tags-input": "^0.22.0", "axios": "^1.2.0", "lottie-web": "^5.10.2", "next": "13.0.5", diff --git a/public/icon/delete3.svg b/public/icon/delete3.svg new file mode 100644 index 00000000..398f7062 --- /dev/null +++ b/public/icon/delete3.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/common/components/Chip/Chip.tsx b/src/common/components/Chip/Chip.tsx index e1ab4ce7..686e2c3f 100644 --- a/src/common/components/Chip/Chip.tsx +++ b/src/common/components/Chip/Chip.tsx @@ -4,7 +4,7 @@ type Props = { as?: T; className?: string; label: string; - size: keyof typeof sizes; + size?: keyof typeof sizes; color: keyof typeof colors; } & ComponentPropsWithoutRef; @@ -15,11 +15,13 @@ const sizes = { const colors = { white: "border-[1px] border-gray-200 bg-white text-gray-700", black: "bg-black text-white", + primary: + "bg-gray-100 text-primary-700 focus:bg-white focus:text-primary-500 hover:bg-white hover:text-primary-500 active:bg-gray-300 active:text-primary-800", }; export const Chip = ({ as, - size, + size = "medium", color, className = "", label, diff --git a/src/common/components/Icon/assets.ts b/src/common/components/Icon/assets.ts index 2874871b..a15985a0 100644 --- a/src/common/components/Icon/assets.ts +++ b/src/common/components/Icon/assets.ts @@ -6,6 +6,7 @@ export { default as chevronDown2 } from "/public/icon/chevronDown2.svg"; export { default as collection } from "/public/icon/collection.svg"; export { default as delete } from "/public/icon/delete.svg"; export { default as delete2 } from "/public/icon/delete2.svg"; +export { default as delete3 } from "/public/icon/delete3.svg"; export { default as download } from "/public/icon/download.svg"; export { default as google } from "/public/icon/google.svg"; export { default as instagram } from "/public/icon/instagram-logo.svg"; diff --git a/src/features/upload/components/TagsInput.tsx b/src/features/upload/components/TagsInput.tsx new file mode 100644 index 00000000..b5c959d7 --- /dev/null +++ b/src/features/upload/components/TagsInput.tsx @@ -0,0 +1,89 @@ +import { normalizeProps, useMachine } from "@zag-js/react"; +import * as tagsInput from "@zag-js/tags-input"; +import type { InputHTMLAttributes } from "react"; +import { useState } from "react"; + +import { Chip } from "@/common/components/Chip"; +import { Icon } from "@/common/components/Icon"; + +import { borderStyle } from "../styles"; + +interface Props extends InputHTMLAttributes { + word: string; + description: string; +} + +export const TagsInput = (props: Props) => { + const [focus, setFocus] = useState(false); + const [state, send] = useMachine( + tagsInput.machine({ + id: props.placeholder as string, + max: 3, + allowEditTag: false, + validate(details) { + return details.inputValue.length < 11; + }, + }), + ); + + const api = tagsInput.connect(state, send, normalizeProps); + const isValidInput = api.inputValue.length < 11; + //TODO: 연관 검색 태그 api 연결 + + return ( +
+
+
+
+
+ {api.value.map((value, index) => ( +
+
+ {value.trim()} + +
+ +
+ ))} +
+ setFocus(false)} + onFocus={() => setFocus(true)} + /** + * TODO: 자동으로 포커스가 넘어가게 하는 거 구현 + * api.focus 함수 이용 + */ + /> +
+
+ {props.word} +
+ + {isValidInput ? props.description : "태그는 11자로 이내로 작성해주세요"} + +
+ { + /** + * 입력한 태그의 연관 검색 태그 리스트 + */ + + } +
+ ); +}; diff --git a/src/features/upload/components/TitleInput.tsx b/src/features/upload/components/TitleInput.tsx new file mode 100644 index 00000000..c3ce88dd --- /dev/null +++ b/src/features/upload/components/TitleInput.tsx @@ -0,0 +1,45 @@ +import { useState } from "react"; + +import { borderStyle } from "../styles"; + +export const TitleInput = () => { + const [text, setText] = useState(""); + const [focus, setFocus] = useState(false); + + const isValidInput = text.length < 24; + const isFilled = !focus && text.length; + + return ( + <> + setFocus(false)} + onChange={(e) => setText(e.target.value)} + onFocus={() => setFocus(true)} + /> +
+ + {isValidInput + ? "밈을 잘 설명할 수 있는 제목을 작성해주세요." + : "24자 미만으로 작성해주세요."} + + {text.length}/24 +
+ + 제목 작성 * + + + ); +}; diff --git a/src/features/upload/components/UploadInitialMeme.tsx b/src/features/upload/components/UploadInitialMeme.tsx index 093f8b08..05bec783 100644 --- a/src/features/upload/components/UploadInitialMeme.tsx +++ b/src/features/upload/components/UploadInitialMeme.tsx @@ -1,19 +1,38 @@ -import type { ChangeEventHandler } from "react"; +import type { ChangeEventHandler, Dispatch, SetStateAction } from "react"; import { Icon } from "@/common/components/Icon"; import { useToast } from "@/common/hooks"; import { UploadImage } from "@/features/upload/components/UploadImage"; import { UploadMemeData } from "@/features/upload/components/UploadMemeData"; +import type { MemeUploadFormData } from "@/types"; interface Props { onChange?: () => void; + setMemeData: Dispatch>; } -export const UploadInitialMeme = ({ onChange }: Props) => { +export const UploadInitialMeme = ({ onChange, setMemeData }: Props) => { const { show } = useToast(); const handleChange: ChangeEventHandler = (e) => { + if (!e.target.files) { + return; + } onChange?.(); const length = e.target?.files?.length || 0; + const imageArray = Array.from(e.target.files); + + imageArray.forEach((image, index) => { + const reader = new FileReader(); + + reader.onload = () => { + setMemeData((prevMemeData) => [ + ...prevMemeData, + { index: index, image: reader.result, title: "", tags: [] }, + ]); + }; + + reader.readAsDataURL(image); + }); show(`${length > 1 ? "여러" : length}개의 밈을 선택했어요!`, { className: "mb-16 drop-shadow-[0_0_20px_rgba(255,255,255,0.5)]", }); diff --git a/src/features/upload/components/UploadMemeData.tsx b/src/features/upload/components/UploadMemeData.tsx index 1f836b19..579508dc 100644 --- a/src/features/upload/components/UploadMemeData.tsx +++ b/src/features/upload/components/UploadMemeData.tsx @@ -4,6 +4,9 @@ import { Content, Header, Item, Root, Trigger } from "@radix-ui/react-accordion" import { Icon } from "@/common/components/Icon"; import { Photo } from "@/common/components/Photo"; +import { TagsInput } from "./TagsInput"; +import { TitleInput } from "./TitleInput"; + interface Props { src?: string; className?: string; @@ -18,14 +21,7 @@ export const UploadMemeData = ({ src, className }: Props) => { 분노하는 ISTJ
- - - 제목 작성 * - +
@@ -44,7 +40,19 @@ export const UploadMemeData = ({ src, className }: Props) => { - hello +
+ +
+ +
@@ -63,7 +71,24 @@ export const UploadMemeData = ({ src, className }: Props) => { - hello +
+ +
+ +
+ diff --git a/src/features/upload/styles/borderStyle.ts b/src/features/upload/styles/borderStyle.ts new file mode 100644 index 00000000..799941d7 --- /dev/null +++ b/src/features/upload/styles/borderStyle.ts @@ -0,0 +1,6 @@ +export const borderStyle = { + active: "border-primary-800", + error: "border-secondary-800", + normal: "border-gray-200", + none: "border-b-0", +}; diff --git a/src/features/upload/styles/index.ts b/src/features/upload/styles/index.ts new file mode 100644 index 00000000..f222f082 --- /dev/null +++ b/src/features/upload/styles/index.ts @@ -0,0 +1 @@ +export * from "./borderStyle"; diff --git a/src/pages/upload/index.tsx b/src/pages/upload/index.tsx index 0c880ff2..0ef30168 100644 --- a/src/pages/upload/index.tsx +++ b/src/pages/upload/index.tsx @@ -1,24 +1,39 @@ +import { useState } from "react"; + import { UploadNavigation } from "@/common/components/Navigation"; import { AdditionalUploadButton, UploadInitialMeme, UploadMeme, } from "@/features/upload/components"; +import type { MemeUploadFormData } from "@/types"; const UploadPage = () => { /** * @todo 밈 입력폼 상태관리 + * memeData : {key,image,title,tag}[] */ + const [memeData, setMemeData] = useState([]); + return ( <>
- - - - - + {!memeData.length ? ( + + ) : ( + <> + {memeData.map((meme) => ( + + ))} + + + )}
); diff --git a/src/types/index.d.ts b/src/types/index.d.ts index 5b69e55b..a7238bfb 100644 --- a/src/types/index.d.ts +++ b/src/types/index.d.ts @@ -13,6 +13,13 @@ export interface Meme { author?: string; } +export interface MemeUploadFormData { + index: number; + image: string | ArrayBuffer | null; + title: string; + tags: string[]; +} + export interface MemeImages { images: { imageId: number; diff --git a/yarn.lock b/yarn.lock index f89facd1..0259467f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5688,6 +5688,169 @@ __metadata: languageName: node linkType: hard +"@zag-js/anatomy@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/anatomy@npm:0.22.0" + checksum: e14e23ff473a0bb6cbe6c4389e41df82c601cb2d6d52dd5a4355e889de84699cf49a2978780d61632152998bf37ed10e0dd6ae9074759f01e9f356b8e7031ed9 + languageName: node + linkType: hard + +"@zag-js/auto-resize@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/auto-resize@npm:0.22.0" + dependencies: + "@zag-js/dom-query": 0.22.0 + checksum: 4df147e17804ed96156d88680699eae5887ee14d3000e2b7a6fdda038e8799b5aadf834d54da3ac181d3cac9e41225c359071ea63f066086c2564df3fb44db85 + languageName: node + linkType: hard + +"@zag-js/core@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/core@npm:0.22.0" + dependencies: + "@zag-js/store": 0.22.0 + klona: 2.0.6 + checksum: 3bece42a4ec31f323de03b60d84acbfd77693fe003d0a10132536629365f413710a389d9406a6e03cf5cf0c2f1604bbdf32277c5a924358c70373cb5fbc79e26 + languageName: node + linkType: hard + +"@zag-js/dom-event@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/dom-event@npm:0.22.0" + dependencies: + "@zag-js/text-selection": 0.22.0 + "@zag-js/types": 0.22.0 + checksum: 5707cbf931bac7fb2000dc04b01e0c7ee9641d8c973d39d113360fa1bca25be7a496eddab168a136a82463c6262d7fa0b88ba3586030139fee2c9121c28fc1a1 + languageName: node + linkType: hard + +"@zag-js/dom-query@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/dom-query@npm:0.22.0" + checksum: 862bb13ca1c7457fd159ab8092938b0e535fc76dd2997d2a7e6de61df4797a0bceed092ae44ad36dbba398d0cc569d64084dbe2a9f636767311518062621ea52 + languageName: node + linkType: hard + +"@zag-js/form-utils@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/form-utils@npm:0.22.0" + dependencies: + "@zag-js/mutation-observer": 0.22.0 + checksum: b3514aa8be9446c0f425a8532bfde500838007195a4b7bc748773ca9b5875f8762b24ad22dce8271c334c550b6508774f667e03908a5433494482a53ce259364 + languageName: node + linkType: hard + +"@zag-js/interact-outside@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/interact-outside@npm:0.22.0" + dependencies: + "@zag-js/dom-event": 0.22.0 + "@zag-js/dom-query": 0.22.0 + "@zag-js/tabbable": 0.22.0 + "@zag-js/utils": 0.22.0 + checksum: 3fa3d08f4f30da69b804fb7940b178850d4f211c3e21b8c6a08c47920c85d1a53ddcd443243976a6f6b90dd30157404b6175eab37c7d6b5a954ee23be29471b7 + languageName: node + linkType: hard + +"@zag-js/live-region@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/live-region@npm:0.22.0" + dependencies: + "@zag-js/visually-hidden": 0.22.0 + checksum: ae9f7c458bc18aee3b295aac41b893e872cc55efce2538e2027b14d440369ee32d3f51aba65a30655d1edc1940119ef2e5362a73b82f1e2f8f1179da8f87655b + languageName: node + linkType: hard + +"@zag-js/mutation-observer@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/mutation-observer@npm:0.22.0" + checksum: 0e3b575cdce226690f1454eb35a7ef61bff959ee0a064ed387c1b8a94f8a714b5b95719fc672c92ba4a61b925545ab24b6a015e2b3932b289d3aa8b67d57f4f0 + languageName: node + linkType: hard + +"@zag-js/react@npm:^0.22.0": + version: 0.22.0 + resolution: "@zag-js/react@npm:0.22.0" + dependencies: + "@zag-js/core": 0.22.0 + "@zag-js/store": 0.22.0 + "@zag-js/types": 0.22.0 + proxy-compare: 2.5.1 + peerDependencies: + react: ">=18.0.0" + react-dom: ">=18.0.0" + checksum: 13a30c1faf589e5d89d0c9f096a9c8f2b813fa249028568570924a8e3acf9bc8ea4d1ed8315e152216763f99c15108fd265b23901db128208e9b4e3aca672d0f + languageName: node + linkType: hard + +"@zag-js/store@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/store@npm:0.22.0" + dependencies: + proxy-compare: 2.5.1 + checksum: 113fa4b8d76d8bca462f8d44332e63bce53a091ef7af4b986af6dded3f0e1708ae12e714d8dd6805f5537fb05b56d3ca1ee6b19c14d5e8c28a3c282ed4512b48 + languageName: node + linkType: hard + +"@zag-js/tabbable@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/tabbable@npm:0.22.0" + dependencies: + "@zag-js/dom-query": 0.22.0 + checksum: 2c7a06ef1959695b68842418a823e719ef00ec6cc1f42adf2322578be229cbb5549dff7df2841da83f211f0058e169cd049ed3b8be6eb156e852dbe928a0f3d7 + languageName: node + linkType: hard + +"@zag-js/tags-input@npm:^0.22.0": + version: 0.22.0 + resolution: "@zag-js/tags-input@npm:0.22.0" + dependencies: + "@zag-js/anatomy": 0.22.0 + "@zag-js/auto-resize": 0.22.0 + "@zag-js/core": 0.22.0 + "@zag-js/dom-event": 0.22.0 + "@zag-js/dom-query": 0.22.0 + "@zag-js/form-utils": 0.22.0 + "@zag-js/interact-outside": 0.22.0 + "@zag-js/live-region": 0.22.0 + "@zag-js/types": 0.22.0 + "@zag-js/utils": 0.22.0 + checksum: c7d924c4bba2f1a2bdace365f1e9741213a571718cf5661d99472cd44e018cd883f1a06dd46ddf1bd4731efaab338c163622de49b350dc4954c6da1f7068a8ce + languageName: node + linkType: hard + +"@zag-js/text-selection@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/text-selection@npm:0.22.0" + dependencies: + "@zag-js/dom-query": 0.22.0 + checksum: 71de99233f6e4f5ef6ecf292fa8a57e26ab956fcf57f4d543a00a295bde628780128cd00ba207d0d25678551a31ac5336108ead93331b8c0987a920f070271df + languageName: node + linkType: hard + +"@zag-js/types@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/types@npm:0.22.0" + dependencies: + csstype: 3.1.2 + checksum: ced7270baa93d98b8654fcafda0c1d23adfd27730748d3cae21a75bf04e74c7c79a4b15a86f16573cabba8c2473e38ad0426856b3e039b6f09ce575116ce91cf + languageName: node + linkType: hard + +"@zag-js/utils@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/utils@npm:0.22.0" + checksum: 431770774356fe3e74b80620d8ad5fdd4392c3b087fb8573fad28a725500216b405e1f8659f31a085ea1cc2f029a10aa16f14f12e5b510c1bbc8a7d788c1628c + languageName: node + linkType: hard + +"@zag-js/visually-hidden@npm:0.22.0": + version: 0.22.0 + resolution: "@zag-js/visually-hidden@npm:0.22.0" + checksum: 8d16df9a1b47d57594fd34b5bcc1614b4a13a6718bebfb49a6516fe12c8be2888c93ede3b2383568a13f3901ec1e23aa59fc97c3174deb4642a539c9981a029b + languageName: node + linkType: hard + "@zxing/text-encoding@npm:0.9.0": version: 0.9.0 resolution: "@zxing/text-encoding@npm:0.9.0" @@ -8074,6 +8237,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:3.1.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + "csstype@npm:^3.0.2": version: 3.1.1 resolution: "csstype@npm:3.1.1" @@ -12129,6 +12299,13 @@ __metadata: languageName: node linkType: hard +"klona@npm:2.0.6": + version: 2.0.6 + resolution: "klona@npm:2.0.6" + checksum: ac9ee3732e42b96feb67faae4d27cf49494e8a3bf3fa7115ce242fe04786788e0aff4741a07a45a2462e2079aa983d73d38519c85d65b70ef11447bbc3c58ce7 + languageName: node + linkType: hard + "klona@npm:^2.0.4": version: 2.0.5 resolution: "klona@npm:2.0.5" @@ -14764,6 +14941,13 @@ __metadata: languageName: node linkType: hard +"proxy-compare@npm:2.5.1": + version: 2.5.1 + resolution: "proxy-compare@npm:2.5.1" + checksum: c7cc151ac255150bcb24becde6495b3e399416c31991af377ce082255b51f07eaeb5d861bf8bf482703e92f88b90a5892ad57d3153ea29450d03ef921683d9fa + languageName: node + linkType: hard + "proxy-from-env@npm:^1.1.0": version: 1.1.0 resolution: "proxy-from-env@npm:1.1.0" @@ -17399,11 +17583,11 @@ __metadata: "typescript@patch:typescript@4.9.3#~builtin": version: 4.9.3 - resolution: "typescript@patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=d73830" + resolution: "typescript@patch:typescript@npm%3A4.9.3#~builtin::version=4.9.3&hash=a66ed4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 67ca21a387c0572f1c04936e638dde7782c5aa520c3754aadc7cc9b7c915da9ebc3e27c601bfff4ccb7d7264e82dce6d277ada82ec09dc75024349e0ef64926d + checksum: d7bdcf5e18193f709339540d69577f7b0389000265db2bf10edfaa67336a29d6bcbee11828084150f7fdd110d605794cfa6df33bebc0a2e33daad2dbe2a7a59f languageName: node linkType: hard @@ -18656,6 +18840,8 @@ __metadata: "@typescript-eslint/parser": ^5.45.0 "@use-gesture/react": ^10.2.24 "@vercel/og": ^0.5.3 + "@zag-js/react": ^0.22.0 + "@zag-js/tags-input": ^0.22.0 autoprefixer: ^10.4.13 axios: ^1.2.0 babel-loader: ^8.3.0