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