diff --git a/platforms/metagram/package.json b/platforms/metagram/package.json index 143e855b..79994d93 100644 --- a/platforms/metagram/package.json +++ b/platforms/metagram/package.json @@ -32,6 +32,7 @@ "@sveltejs/vite-plugin-svelte": "^5.0.0", "@tailwindcss/vite": "^4.0.0", "clsx": "^2.1.1", + "cupertino-pane": "^1.4.22", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-svelte": "^3.0.0", @@ -42,6 +43,7 @@ "storybook": "^8.6.12", "svelte": "^5.0.0", "svelte-check": "^4.0.0", + "svelte-gestures": "^5.1.3", "tailwindcss": "^4.0.0", "typescript": "^5.0.0", "typescript-eslint": "^8.20.0", diff --git a/platforms/metagram/src/lib/fragments/Drawer/Drawer.stories.snippet.svelte b/platforms/metagram/src/lib/fragments/Drawer/Drawer.stories.snippet.svelte new file mode 100644 index 00000000..cb15ccd9 --- /dev/null +++ b/platforms/metagram/src/lib/fragments/Drawer/Drawer.stories.snippet.svelte @@ -0,0 +1,36 @@ + + +{#snippet DrawerContent()} +

Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero dolore, necessitatibus quam expedita repudiandae cum nulla totam officiis itaque earum explicabo vel soluta libero ea exercitationem iusto velit incidunt quibusdam. + Incidunt maiores sed, voluptas magnam magni reiciendis ipsa. Totam molestias commodi incidunt obcaecati fugiat temporibus voluptatum ea excepturi cumque, nostrum quod quae aperiam, nemo asperiores consectetur doloremque repellat, alias consequatur. + Inventore deleniti aliquam sapiente, vel ipsam tempore veritatis explicabo minus harum hic itaque dolorem nostrum tenetur dicta dolores delectus eveniet nisi accusantium aperiam cumque iure culpa, eos adipisci! Vel, iusto. + Repellendus unde incidunt a saepe reiciendis? Nam, esse voluptas aliquam repellendus cupiditate placeat quis autem minima reiciendis ex unde eveniet neque qui dolorum. Dignissimos inventore quidem ipsum sequi non vel? + Nemo aspernatur incidunt veniam quia animi vel asperiores quidem, expedita eum in qui provident, consequuntur officiis veritatis quisquam quo, necessitatibus similique autem odit officia numquam cum dolore pariatur eius! Cupiditate. + Facilis aliquid nihil doloremque officiis fugit in minus dicta et, omnis nesciunt suscipit sequi atque perferendis alias exercitationem eaque aliquam provident praesentium quae sunt quas magni consequatur. Praesentium, dolor ipsa? + Et, veritatis saepe animi harum eligendi fugit accusamus tempore, reiciendis eveniet, dolores rerum optio earum magnam nam laudantium necessitatibus incidunt minima labore laboriosam voluptatum mollitia quia? Consectetur, reprehenderit! Mollitia, neque. + Optio nam eius voluptatem. Facilis hic cum non est quod modi sapiente ex asperiores earum, temporibus ipsum dolore optio aut mollitia fuga ducimus ipsam deleniti et adipisci maxime in velit. + Praesentium doloribus earum sunt quasi voluptas quo expedita tempora consequatur ratione maiores accusantium dolorem sit corporis quibusdam esse molestias facilis nemo, non quam? Dolores recusandae neque ex consequatur in atque? + Animi recusandae minus eaque nisi dicta earum sit tempore neque porro vero assumenda tempora alias, quis sunt iste illo fuga in inventore quaerat? Magnam cum vero fugiat quaerat provident necessitatibus. + Consequatur iusto est sint doloribus quis porro quibusdam inventore numquam nisi nam ullam consectetur mollitia molestiae molestias necessitatibus recusandae voluptate cum aut pariatur, asperiores nobis et perspiciatis ipsam labore. Delectus. + Laborum quisquam ea eligendi ut nesciunt aut minima iusto sint esse laboriosam! Doloremque deserunt enim et recusandae quo, nobis expedita maxime error inventore, officiis nulla ipsa tempora eos commodi beatae! + Atque vel vitae perspiciatis quam soluta eaque sed illo autem ea ut, exercitationem sit ad quidem eius modi alias facilis labore porro esse. Vel nihil expedita reprehenderit culpa facilis omnis! + Non eum minima eius sapiente quo nulla culpa maiores laudantium quos! Consequatur adipisci ad neque nemo! Iste aperiam, tenetur nisi distinctio saepe, reiciendis sed reprehenderit, eum assumenda vel provident in. + Magni ex commodi soluta quod ipsum repellendus laborum assumenda velit, aperiam praesentium nemo, dolor aut similique libero tenetur eum! Atque maxime laborum tenetur similique nam ipsam possimus eos officia voluptates. + Deleniti quas amet corporis enim possimus nostrum laboriosam nisi. Quisquam, perspiciatis. Quidem unde ut sequi maxime omnis inventore sed qui minima neque, accusamus officia, labore delectus et itaque repellendus. Quia. + Quod unde id ipsum labore ex. Non quam, provident, excepturi expedita in, fuga repellendus quibusdam qui numquam similique eaque corrupti exercitationem dolorem mollitia quas! Eius facere nihil natus rerum saepe. + Quos atque dolorem, eaque explicabo vel sequi, nam debitis nihil velit adipisci libero praesentium. Modi blanditiis odio, quis explicabo minus vel sunt eius! Odit, libero exercitationem dolore sequi odio assumenda. + Cum nostrum iusto ratione excepturi mollitia reiciendis illo eius quisquam veniam non sunt ullam, porro suscipit beatae nesciunt temporibus optio quam tempora possimus. Facere, officia quasi tempora repudiandae quo rem! + Explicabo cum ratione sapiente. Obcaecati at enim delectus aperiam iure ex, dolore, quae, id cupiditate quam facere similique perferendis voluptates vel ut. Dolorum delectus, officiis placeat amet rerum inventore nesciunt! + Qui voluptas dolor similique id ratione magnam quas dolore ipsum dolores consectetur, error consequuntur nemo veniam tempora temporibus modi fugiat, quam officia exercitationem iusto veritatis dicta magni. Doloribus, harum provident. + Veniam tempora quasi, pariatur omnis temporibus ipsam modi mollitia eum fuga tempore quia? Vel aliquam odit aut a! Perspiciatis sint nisi quidem, fuga eligendi architecto porro quos nemo ex provident! + Modi nesciunt, aspernatur iure accusamus laborum incidunt? Suscipit amet dolor nihil odio id blanditiis beatae quos harum. Quasi dolorum voluptatum eaque sed vero cum. Impedit, esse. Voluptates tempora saepe repellendus! + Quaerat quod animi suscipit error. Similique quae eaque accusantium fugit sint vero voluptas alias quidem? Animi cumque repudiandae quas deleniti ea repellat provident, esse, voluptatum nam dolore consequatur non blanditiis? + Qui reiciendis quidem dicta iusto minima aliquam, iste itaque illo dolor earum eligendi, harum sed doloremque quo voluptatum amet consectetur at quod a officiis perspiciatis! Debitis perferendis pariatur cum odio! + Est eveniet commodi dolorem numquam voluptatibus aliquid, unde accusamus, tempora laudantium consequatur autem repudiandae, quaerat magnam ducimus atque hic facilis officiis aspernatur. Ducimus necessitatibus, labore praesentium consectetur libero at voluptatibus. + Consequatur repudiandae magnam sit blanditiis impedit fugiat totam reiciendis facilis porro sapiente harum veniam in, quos excepturi commodi perspiciatis ad voluptas! Perferendis cum nulla soluta ipsa at? Fugit, dignissimos mollitia! + Adipisci voluptatem molestiae doloribus alias quisquam neque commodi incidunt libero maiores aut consequatur error corrupti, modi illo veritatis itaque numquam facere eveniet? Tenetur consectetur ipsum excepturi quaerat, facilis labore modi? + Alias harum dolor tempora voluptatibus nam? Incidunt laborum debitis consequuntur, blanditiis laudantium ad facilis laboriosam, cupiditate optio similique saepe a, praesentium veniam dignissimos modi placeat reiciendis! Quia doloribus blanditiis labore. + Suscipit dolorum nobis incidunt voluptatibus fugiat minima nostrum natus cum, quas magni obcaecati qui perspiciatis maxime, eligendi aperiam doloribus doloremque totam asperiores a labore! Explicabo quaerat doloremque labore harum vitae!

+{/snippet} \ No newline at end of file diff --git a/platforms/metagram/src/lib/fragments/Drawer/Drawer.stories.ts b/platforms/metagram/src/lib/fragments/Drawer/Drawer.stories.ts new file mode 100644 index 00000000..f95076f2 --- /dev/null +++ b/platforms/metagram/src/lib/fragments/Drawer/Drawer.stories.ts @@ -0,0 +1,19 @@ +import type { ComponentProps } from 'svelte'; +import { Drawer } from '..'; +import { DrawerContent } from './Drawer.stories.snippet.svelte'; + +export default { + title: 'UI/Drawer', + component: Drawer, + tags: ['autodocs'], + render: (args: { Component: Drawer; props: ComponentProps }) => ({ + Component: Drawer, + props: args + }) +}; + +export const Main = { + args: { + children: DrawerContent + } +}; diff --git a/platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte b/platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte new file mode 100644 index 00000000..9c3d5bff --- /dev/null +++ b/platforms/metagram/src/lib/fragments/Drawer/Drawer.svelte @@ -0,0 +1,74 @@ + + +
({ + timeframe: 300, + minSwipeDistance: 60 + })} + onswipe={handleDrawerSwipe} + use:clickOutside={handleClickOutside} + class={cn(restProps.class)} +> +{@render children?.()} +
diff --git a/platforms/metagram/src/lib/fragments/Post/Post.stories.ts b/platforms/metagram/src/lib/fragments/Post/Post.stories.ts index ba051486..d112e836 100644 --- a/platforms/metagram/src/lib/fragments/Post/Post.stories.ts +++ b/platforms/metagram/src/lib/fragments/Post/Post.stories.ts @@ -2,7 +2,7 @@ import type { ComponentProps } from 'svelte'; import Post from './Post.svelte'; export default { - title: 'Fragments/Post', + title: 'ui/Post', component: Post, tags: ['autodocs'], render: (args: { Component: Post; props: ComponentProps }) => ({ diff --git a/platforms/metagram/src/lib/fragments/index.ts b/platforms/metagram/src/lib/fragments/index.ts index 18af613c..2cb98ace 100644 --- a/platforms/metagram/src/lib/fragments/index.ts +++ b/platforms/metagram/src/lib/fragments/index.ts @@ -2,3 +2,4 @@ export { default as BottomNav } from './BottomNav/BottomNav.svelte'; export { default as SettingsNavigationButton } from './SettingsNavigationButton/SettingsNavigationButton.svelte'; export { default as MessageInput } from './MessageInput/MessageInput.svelte'; export { default as InputFile } from './InputFile/InputFile.svelte'; +export { default as Drawer } from './Drawer/Drawer.svelte'; diff --git a/platforms/metagram/src/lib/ui/Input/Input.stories.ts b/platforms/metagram/src/lib/ui/Input/Input.stories.ts index 8ff5e7f4..44fd70fc 100644 --- a/platforms/metagram/src/lib/ui/Input/Input.stories.ts +++ b/platforms/metagram/src/lib/ui/Input/Input.stories.ts @@ -1,58 +1,54 @@ -import { Input } from ".."; +import { Input } from '..'; export default { - title: "UI/Input", - component: Input, - tags: ["autodocs"], - render: (args: { - type: string; - placeholder: string; - helperText: string; - }) => ({ - Component: Input, - props: args, - }), + title: 'UI/Input', + component: Input, + tags: ['autodocs'], + render: (args: { type: string; placeholder: string; helperText: string }) => ({ + Component: Input, + props: args + }) }; export const Text = { - args: { - type: "text", - placeholder: "Joe Biden", - }, + args: { + type: 'text', + placeholder: 'Joe Biden' + } }; export const Tel = { - args: { - type: "tel", - placeholder: "987654321", - }, + args: { + type: 'tel', + placeholder: '987654321' + } }; export const NumberInput = { - args: { - type: "number", - placeholder: "Enter something", - }, + args: { + type: 'number', + placeholder: 'Enter something' + } }; export const Email = { - args: { - type: "email", - placeholder: "example@email.com", - }, + args: { + type: 'email', + placeholder: 'example@email.com' + } }; export const Invalid = { - args: { - type: "email", - placeholder: "Invalid email", - value: "not-an-email", - }, + args: { + type: 'email', + placeholder: 'Invalid email', + value: 'not-an-email' + } }; export const Password = { - args: { - type: "password", - placeholder: "Please enter password", - }, + args: { + type: 'password', + placeholder: 'Please enter password' + } }; diff --git a/platforms/metagram/src/lib/utils/clickOutside.ts b/platforms/metagram/src/lib/utils/clickOutside.ts new file mode 100644 index 00000000..74ad1c69 --- /dev/null +++ b/platforms/metagram/src/lib/utils/clickOutside.ts @@ -0,0 +1,17 @@ +/** Dispatch event on click outside of node */ +export const clickOutside = (node: HTMLElement, callback: () => void) => { + const handleClick = (event: Event) => { + if (node && !node.contains(event.target as Node) && !event.defaultPrevented) { + callback(); // Call the provided callback + node.dispatchEvent(new CustomEvent('click_outside')); + } + }; + + document.addEventListener('click', handleClick, true); + + return { + destroy() { + document.removeEventListener('click', handleClick, true); + } + }; +}; diff --git a/platforms/metagram/src/lib/utils/index.ts b/platforms/metagram/src/lib/utils/index.ts index 7748e43d..e09e7458 100644 --- a/platforms/metagram/src/lib/utils/index.ts +++ b/platforms/metagram/src/lib/utils/index.ts @@ -1 +1,2 @@ export * from './mergeClasses'; +export * from './clickOutside'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e73c9e6..376ed5a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -302,7 +302,7 @@ importers: version: 3.3.0 vitest: specifier: ^3.1.2 - version: 3.1.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@20.17.30)(typescript@5.8.3))(tsx@4.19.3)(yaml@2.7.1) + version: 3.1.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.3))(tsx@4.19.3)(yaml@2.7.1) devDependencies: '@types/jest': specifier: ^29.5.0 @@ -318,10 +318,10 @@ importers: version: 8.57.1 jest: specifier: ^29.5.0 - version: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0) ts-jest: specifier: ^29.1.0 - version: 29.3.2(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.2(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0))(typescript@5.8.3) typescript: specifier: ^5.0.4 version: 5.8.3 @@ -424,6 +424,9 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + cupertino-pane: + specifier: ^1.4.22 + version: 1.4.22 eslint: specifier: ^9.18.0 version: 9.22.0(jiti@2.4.2) @@ -454,6 +457,9 @@ importers: svelte-check: specifier: ^4.0.0 version: 4.1.5(picomatch@4.0.2)(svelte@5.23.2)(typescript@5.8.3) + svelte-gestures: + specifier: ^5.1.3 + version: 5.1.3 tailwindcss: specifier: ^4.0.0 version: 4.0.15 @@ -7442,14 +7448,6 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} - '@inquirer/confirm@5.1.8(@types/node@20.17.30)': - dependencies: - '@inquirer/core': 10.1.9(@types/node@20.17.30) - '@inquirer/type': 3.0.5(@types/node@20.17.30) - optionalDependencies: - '@types/node': 20.17.30 - optional: true - '@inquirer/confirm@5.1.8(@types/node@22.13.10)': dependencies: '@inquirer/core': 10.1.9(@types/node@22.13.10) @@ -7457,20 +7455,6 @@ snapshots: optionalDependencies: '@types/node': 22.13.10 - '@inquirer/core@10.1.9(@types/node@20.17.30)': - dependencies: - '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.5(@types/node@20.17.30) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 20.17.30 - optional: true - '@inquirer/core@10.1.9(@types/node@22.13.10)': dependencies: '@inquirer/figures': 1.0.11 @@ -7486,11 +7470,6 @@ snapshots: '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.5(@types/node@20.17.30)': - optionalDependencies: - '@types/node': 20.17.30 - optional: true - '@inquirer/type@3.0.5(@types/node@22.13.10)': optionalDependencies: '@types/node': 22.13.10 @@ -9333,14 +9312,14 @@ snapshots: vite: 6.3.5(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) optional: true - '@vitest/mocker@3.1.2(msw@2.7.3(@types/node@20.17.30)(typescript@5.8.3))(vite@6.2.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1))': + '@vitest/mocker@3.1.2(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.3))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.1.2 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - msw: 2.7.3(@types/node@20.17.30)(typescript@5.8.3) - vite: 6.2.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) + msw: 2.7.3(@types/node@22.13.10)(typescript@5.8.3) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) '@vitest/pretty-format@2.0.5': dependencies: @@ -10062,6 +10041,21 @@ snapshots: - supports-color - ts-node + create-jest@29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-require@1.1.1: {} cross-inspect@1.0.1: @@ -11547,6 +11541,25 @@ snapshots: - supports-color - ts-node + jest-cli@29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-config@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3)): dependencies: '@babel/core': 7.26.10 @@ -11578,6 +11591,36 @@ snapshots: - babel-plugin-macros - supports-color + jest-config@29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0): + dependencies: + '@babel/core': 7.26.10 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.13.10 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-diff@29.7.0: dependencies: chalk: 4.1.2 @@ -11805,6 +11848,18 @@ snapshots: - supports-color - ts-node + jest@29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jiti@2.4.2: {} jose@5.10.0: {} @@ -12100,32 +12155,6 @@ snapshots: ms@2.1.3: {} - msw@2.7.3(@types/node@20.17.30)(typescript@5.8.3): - dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.8(@types/node@20.17.30) - '@mswjs/interceptors': 0.37.6 - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - graphql: 16.10.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.3.0 - picocolors: 1.1.1 - strict-event-emitter: 0.5.1 - type-fest: 4.37.0 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - '@types/node' - optional: true - msw@2.7.3(@types/node@22.13.10)(typescript@5.6.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 @@ -13455,6 +13484,26 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.10) + ts-jest@29.3.2(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest@29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0))(typescript@5.8.3): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@22.13.10)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.1 + type-fest: 4.40.0 + typescript: 5.8.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.26.10 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -13762,13 +13811,13 @@ snapshots: - tsx - yaml - vite-node@3.1.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1): + vite-node@3.1.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@5.5.0) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -13793,19 +13842,6 @@ snapshots: fsevents: 2.3.3 lightningcss: 1.29.2 - vite@6.2.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1): - dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.36.0 - optionalDependencies: - '@types/node': 20.17.30 - fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 - tsx: 4.19.3 - yaml: 2.7.1 - vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1): dependencies: esbuild: 0.25.1 @@ -13819,22 +13855,6 @@ snapshots: tsx: 4.19.3 yaml: 2.7.1 - vite@6.3.5(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1): - dependencies: - esbuild: 0.25.1 - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.36.0 - tinyglobby: 0.2.13 - optionalDependencies: - '@types/node': 20.17.30 - fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 - tsx: 4.19.3 - yaml: 2.7.1 - vite@6.3.5(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1): dependencies: esbuild: 0.25.1 @@ -14010,10 +14030,10 @@ snapshots: - tsx - yaml - vitest@3.1.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@20.17.30)(typescript@5.8.3))(tsx@4.19.3)(yaml@2.7.1): + vitest@3.1.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.3))(tsx@4.19.3)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.2 - '@vitest/mocker': 3.1.2(msw@2.7.3(@types/node@20.17.30)(typescript@5.8.3))(vite@6.2.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1)) + '@vitest/mocker': 3.1.2(msw@2.7.3(@types/node@22.13.10)(typescript@5.8.3))(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1)) '@vitest/pretty-format': 3.1.2 '@vitest/runner': 3.1.2 '@vitest/snapshot': 3.1.2 @@ -14030,11 +14050,11 @@ snapshots: tinyglobby: 0.2.13 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) - vite-node: 3.1.2(@types/node@20.17.30)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) + vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) + vite-node: 3.1.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.17.30 + '@types/node': 22.13.10 transitivePeerDependencies: - jiti - less